@datarecce/ui 0.1.22 → 0.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{RecceCheckContext-DNKi97uE.js → RecceCheckContext-Cb41gigE.js} +4 -3
- package/dist/RecceCheckContext-Cb41gigE.js.map +1 -0
- package/dist/{RecceCheckContext-BETsmiD5.mjs → RecceCheckContext-CzsuuXxT.mjs} +4 -3
- package/dist/RecceCheckContext-CzsuuXxT.mjs.map +1 -0
- package/dist/api.d.mts +2 -2
- package/dist/api.d.ts +2 -2
- package/dist/api.js +12 -37
- package/dist/api.mjs +3 -29
- package/dist/{components-C735_oqD.mjs → components-BHxcVq0D.mjs} +1353 -69
- package/dist/components-BHxcVq0D.mjs.map +1 -0
- package/dist/{components-DeA4kqxK.js → components-Bmc5X473.js} +1557 -248
- package/dist/components-Bmc5X473.js.map +1 -0
- package/dist/components.d.mts +2 -2
- package/dist/components.d.ts +2 -2
- package/dist/components.js +8 -4
- package/dist/components.mjs +5 -5
- package/dist/{hooks-Ba-AoxcK.mjs → hooks-B0XGswIh.mjs} +3 -3
- package/dist/{hooks-Ba-AoxcK.mjs.map → hooks-B0XGswIh.mjs.map} +1 -1
- package/dist/{hooks-D6xvNXEc.js → hooks-C99PZcmB.js} +3 -3
- package/dist/{hooks-D6xvNXEc.js.map → hooks-C99PZcmB.js.map} +1 -1
- package/dist/hooks.d.mts +2 -2
- package/dist/hooks.d.ts +2 -2
- package/dist/hooks.js +4 -3
- package/dist/hooks.mjs +4 -4
- package/dist/{index-Sj_wOmNH.d.mts → index-04n48ic2.d.mts} +129 -105
- package/dist/index-04n48ic2.d.mts.map +1 -0
- package/dist/{index-DYduBYD8.d.ts → index-CgyLTrll.d.ts} +129 -105
- package/dist/index-CgyLTrll.d.ts.map +1 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +20 -14
- package/dist/index.mjs +7 -7
- package/dist/{state-BjKRZMwY.js → state-Ct-DP81O.js} +108 -79
- package/dist/state-Ct-DP81O.js.map +1 -0
- package/dist/{state-BySLlIE7.mjs → state-CwepO01b.mjs} +91 -80
- package/dist/state-CwepO01b.mjs.map +1 -0
- package/dist/types.d.mts +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/{user-Dt_n5IJX.js → version-BgsW-hXj.js} +50 -10
- package/dist/version-BgsW-hXj.js.map +1 -0
- package/dist/version-Bz2CiMHD.mjs +93 -0
- package/dist/version-Bz2CiMHD.mjs.map +1 -0
- package/package.json +5 -4
- package/dist/RecceCheckContext-BETsmiD5.mjs.map +0 -1
- package/dist/RecceCheckContext-DNKi97uE.js.map +0 -1
- package/dist/api.js.map +0 -1
- package/dist/api.mjs.map +0 -1
- package/dist/components-C735_oqD.mjs.map +0 -1
- package/dist/components-DeA4kqxK.js.map +0 -1
- package/dist/index-DYduBYD8.d.ts.map +0 -1
- package/dist/index-Sj_wOmNH.d.mts.map +0 -1
- package/dist/state-BjKRZMwY.js.map +0 -1
- package/dist/state-BySLlIE7.mjs.map +0 -1
- package/dist/user-BHOgMaBf.mjs +0 -65
- package/dist/user-BHOgMaBf.mjs.map +0 -1
- package/dist/user-Dt_n5IJX.js.map +0 -1
package/dist/types.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
2
|
+
import { Cr as isRowCountDiffRun, Dr as isTopKDiffRun, Er as isSimpleRun, G as DisableTooltipMessages, J as columnPrecisionSelectOptions, K as RECCE_SUPPORT_CALENDAR_URL, Or as isValueDiffDetailRun, Q as buildTitle, Sr as isQueryRun, Tr as isSchemaDiffRun, U as PUBLIC_API_URL, W as PUBLIC_CLOUD_WEB_URL, X as buildDescription, Y as isSchemaChanged, Z as buildQuery, _r as isLineageDiffRun, ar as AxiosQueryParams, br as isQueryBaseRun, cr as DataFrame, dr as RowDataTypes, fr as RowObjectType, gr as isHistogramDiffRun, hr as SchemaDiffParams, ir as RunResultViewProps, kr as isValueDiffRun, lr as LineageDiffParams, mr as RunParamTypes, or as ColumnRenderMode, pr as Run, q as deltaPercentageString, rr as RunFormProps, sr as ColumnType, ur as RowData, vr as isProfileDiffRun, wr as isRowCountRun, xr as isQueryDiffRun, yr as isProfileRun } from "./index-04n48ic2.mjs";
|
|
3
3
|
export { AxiosQueryParams, ColumnRenderMode, ColumnType, DataFrame, DisableTooltipMessages, LineageDiffParams, PUBLIC_API_URL, PUBLIC_CLOUD_WEB_URL, RECCE_SUPPORT_CALENDAR_URL, RowData, RowDataTypes, RowObjectType, Run, RunFormProps, RunParamTypes, RunResultViewProps, SchemaDiffParams, buildDescription, buildQuery, buildTitle, columnPrecisionSelectOptions, deltaPercentageString, isHistogramDiffRun, isLineageDiffRun, isProfileDiffRun, isProfileRun, isQueryBaseRun, isQueryDiffRun, isQueryRun, isRowCountDiffRun, isRowCountRun, isSchemaChanged, isSchemaDiffRun, isSimpleRun, isTopKDiffRun, isValueDiffDetailRun, isValueDiffRun };
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
2
|
+
import { Cr as isRowCountDiffRun, Dr as isTopKDiffRun, Er as isSimpleRun, G as DisableTooltipMessages, J as columnPrecisionSelectOptions, K as RECCE_SUPPORT_CALENDAR_URL, Or as isValueDiffDetailRun, Q as buildTitle, Sr as isQueryRun, Tr as isSchemaDiffRun, U as PUBLIC_API_URL, W as PUBLIC_CLOUD_WEB_URL, X as buildDescription, Y as isSchemaChanged, Z as buildQuery, _r as isLineageDiffRun, ar as AxiosQueryParams, br as isQueryBaseRun, cr as DataFrame, dr as RowDataTypes, fr as RowObjectType, gr as isHistogramDiffRun, hr as SchemaDiffParams, ir as RunResultViewProps, kr as isValueDiffRun, lr as LineageDiffParams, mr as RunParamTypes, or as ColumnRenderMode, pr as Run, q as deltaPercentageString, rr as RunFormProps, sr as ColumnType, ur as RowData, vr as isProfileDiffRun, wr as isRowCountRun, xr as isQueryDiffRun, yr as isProfileRun } from "./index-CgyLTrll.js";
|
|
3
3
|
export { AxiosQueryParams, ColumnRenderMode, ColumnType, DataFrame, DisableTooltipMessages, LineageDiffParams, PUBLIC_API_URL, PUBLIC_CLOUD_WEB_URL, RECCE_SUPPORT_CALENDAR_URL, RowData, RowDataTypes, RowObjectType, Run, RunFormProps, RunParamTypes, RunResultViewProps, SchemaDiffParams, buildDescription, buildQuery, buildTitle, columnPrecisionSelectOptions, deltaPercentageString, isHistogramDiffRun, isLineageDiffRun, isProfileDiffRun, isProfileRun, isQueryBaseRun, isQueryDiffRun, isQueryRun, isRowCountDiffRun, isRowCountRun, isSchemaChanged, isSchemaDiffRun, isSimpleRun, isTopKDiffRun, isValueDiffDetailRun, isValueDiffRun };
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use client"
|
|
2
|
-
const require_state = require('./state-
|
|
2
|
+
const require_state = require('./state-Ct-DP81O.js');
|
|
3
|
+
let react = require("react");
|
|
3
4
|
let axios = require("axios");
|
|
4
5
|
axios = require_state.__toESM(axios);
|
|
5
6
|
|
|
6
7
|
//#region recce-source/js/src/lib/api/schemacheck.ts
|
|
7
|
-
async function createSchemaDiffCheck(params) {
|
|
8
|
-
return (await
|
|
8
|
+
async function createSchemaDiffCheck(params, client = require_state.axiosClient) {
|
|
9
|
+
return (await client.post("/api/checks", {
|
|
9
10
|
type: "schema_diff",
|
|
10
11
|
params
|
|
11
12
|
})).data;
|
|
@@ -13,8 +14,8 @@ async function createSchemaDiffCheck(params) {
|
|
|
13
14
|
|
|
14
15
|
//#endregion
|
|
15
16
|
//#region recce-source/js/src/lib/api/select.ts
|
|
16
|
-
async function select(input) {
|
|
17
|
-
return (await
|
|
17
|
+
async function select(input, client = require_state.axiosClient) {
|
|
18
|
+
return (await client.post(`/api/select`, input)).data;
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
//#endregion
|
|
@@ -38,15 +39,15 @@ const localStorageKeys = {
|
|
|
38
39
|
|
|
39
40
|
//#endregion
|
|
40
41
|
//#region recce-source/js/src/lib/api/connectToCloud.ts
|
|
41
|
-
async function connectToCloud() {
|
|
42
|
-
return (await
|
|
42
|
+
async function connectToCloud(client = require_state.axiosClient) {
|
|
43
|
+
return (await client.post("/api/connect")).data;
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
//#endregion
|
|
46
47
|
//#region recce-source/js/src/lib/api/user.ts
|
|
47
|
-
async function fetchUser() {
|
|
48
|
+
async function fetchUser(client = require_state.axiosClient) {
|
|
48
49
|
try {
|
|
49
|
-
return (await
|
|
50
|
+
return (await client.get("/api/users")).data;
|
|
50
51
|
} catch (error) {
|
|
51
52
|
console.error("Error fetching user data:", error);
|
|
52
53
|
throw error;
|
|
@@ -61,6 +62,33 @@ async function fetchGitHubAvatar(userId) {
|
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
64
|
|
|
65
|
+
//#endregion
|
|
66
|
+
//#region recce-source/js/src/lib/api/version.ts
|
|
67
|
+
async function getVersion(client = require_state.axiosClient) {
|
|
68
|
+
return (await client.get("/api/version")).data;
|
|
69
|
+
}
|
|
70
|
+
function useVersionNumber() {
|
|
71
|
+
const [version, setVersion] = (0, react.useState)("");
|
|
72
|
+
const [latestVersion, setLatestVersion] = (0, react.useState)("");
|
|
73
|
+
const { apiClient } = require_state.useApiConfig();
|
|
74
|
+
(0, react.useEffect)(() => {
|
|
75
|
+
async function fetchVersion() {
|
|
76
|
+
try {
|
|
77
|
+
const { version: version$1, latestVersion: latestVersion$1 } = await getVersion(apiClient);
|
|
78
|
+
setVersion(version$1);
|
|
79
|
+
setLatestVersion(latestVersion$1);
|
|
80
|
+
} catch (error) {
|
|
81
|
+
console.error("Error fetching version number:", error);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
fetchVersion();
|
|
85
|
+
}, [apiClient]);
|
|
86
|
+
return {
|
|
87
|
+
version,
|
|
88
|
+
latestVersion
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
64
92
|
//#endregion
|
|
65
93
|
Object.defineProperty(exports, 'connectToCloud', {
|
|
66
94
|
enumerable: true,
|
|
@@ -86,6 +114,12 @@ Object.defineProperty(exports, 'fetchUser', {
|
|
|
86
114
|
return fetchUser;
|
|
87
115
|
}
|
|
88
116
|
});
|
|
117
|
+
Object.defineProperty(exports, 'getVersion', {
|
|
118
|
+
enumerable: true,
|
|
119
|
+
get: function () {
|
|
120
|
+
return getVersion;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
89
123
|
Object.defineProperty(exports, 'localStorageKeys', {
|
|
90
124
|
enumerable: true,
|
|
91
125
|
get: function () {
|
|
@@ -104,4 +138,10 @@ Object.defineProperty(exports, 'sessionStorageKeys', {
|
|
|
104
138
|
return sessionStorageKeys;
|
|
105
139
|
}
|
|
106
140
|
});
|
|
107
|
-
|
|
141
|
+
Object.defineProperty(exports, 'useVersionNumber', {
|
|
142
|
+
enumerable: true,
|
|
143
|
+
get: function () {
|
|
144
|
+
return useVersionNumber;
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
//# sourceMappingURL=version-BgsW-hXj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-BgsW-hXj.js","names":["axiosClient","axiosClient","prefix","axiosClient","axiosClient","axiosClient","useApiConfig","version","latestVersion"],"sources":["../recce-source/js/src/lib/api/schemacheck.ts","../recce-source/js/src/lib/api/select.ts","../recce-source/js/src/lib/api/sessionStorageKeys.ts","../recce-source/js/src/lib/api/localStorageKeys.ts","../recce-source/js/src/lib/api/connectToCloud.ts","../recce-source/js/src/lib/api/user.ts","../recce-source/js/src/lib/api/version.ts"],"sourcesContent":["import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\nimport { Check } from \"./checks\";\n\nexport interface SchemaDiffViewParams {\n node_id?: string | string[];\n select?: string;\n exclude?: string;\n view_mode?: \"all\" | \"changed_models\";\n packages?: string[];\n}\n\ninterface CreateSchemaDiffCheckBody {\n type: string;\n params: SchemaDiffViewParams;\n}\n\nexport async function createSchemaDiffCheck(\n params: SchemaDiffViewParams,\n client: AxiosInstance = axiosClient,\n): Promise<Check> {\n const response = await client.post<\n CreateSchemaDiffCheckBody,\n AxiosResponse<Check>\n >(\"/api/checks\", {\n type: \"schema_diff\",\n params: params,\n });\n\n return response.data;\n}\n","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface SelectInput {\n select?: string;\n exclude?: string;\n packages?: string[];\n view_mode?: \"all\" | \"changed_models\";\n}\n\nexport interface SelectOutput {\n nodes: string[];\n}\n\nexport async function select(\n input: SelectInput,\n client: AxiosInstance = axiosClient,\n): Promise<SelectOutput> {\n return (\n await client.post<SelectInput, AxiosResponse<SelectOutput>>(\n `/api/select`,\n input,\n )\n ).data;\n}\n","const prefix = \"recce\";\n\nexport const sessionStorageKeys = {\n recommendationIgnored: `${prefix}-recommendation-ignored`,\n recommendationShowed: `${prefix}-recommendation-showed`,\n prevRefreshTimeStamp: `${prefix}-prev-refresh-timestamp`,\n lineageNotificationDismissed: `${prefix}-lineage-notification-dismissed`,\n};\n","const prefix = \"recce-\";\n\nexport const localStorageKeys = {\n bypassSaveOverwrite: `${prefix}-bypass-save-overwrite`,\n previewChangeFeedbackID: `${prefix}-preview-change-feedback`,\n prepareEnvGuideID: `${prefix}-prepare-env`,\n};\n","import { AxiosInstance } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface ConnectToCloud {\n connection_url: string;\n}\n\nexport async function connectToCloud(\n client: AxiosInstance = axiosClient,\n): Promise<ConnectToCloud> {\n const data = await client.post<ConnectToCloud>(\"/api/connect\");\n return data.data;\n}\n","import axios, { AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface User {\n id: string;\n login: string;\n login_type: string;\n email: string;\n onboarding_state: string;\n}\n\ninterface GitHubUser {\n login: string;\n id: number;\n avatar_url: string;\n}\n\nexport async function fetchUser(\n client: AxiosInstance = axiosClient,\n): Promise<User> {\n try {\n const response = await client.get<never, AxiosResponse<User>>(\"/api/users\");\n return response.data;\n } catch (error) {\n console.error(\"Error fetching user data:\", error);\n throw error;\n }\n}\n\nexport async function fetchGitHubAvatar(\n userId: string,\n): Promise<string | null> {\n try {\n const response = await axios.get<GitHubUser>(\n `https://api.github.com/user/${userId}`,\n );\n return response.data.avatar_url;\n } catch (error) {\n console.warn(\"Failed to fetch GitHub avatar:\", error);\n return null;\n }\n}\n","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { useEffect, useState } from \"react\";\nimport { useApiConfig } from \"../hooks/ApiConfigContext\";\nimport { axiosClient } from \"./axiosClient\";\n\ninterface VersionResponse {\n version: string;\n latestVersion: string;\n}\n\nexport async function getVersion(\n client: AxiosInstance = axiosClient,\n): Promise<VersionResponse> {\n const response = await client.get<never, AxiosResponse<VersionResponse>>(\n \"/api/version\",\n );\n return response.data;\n}\n\nexport function useVersionNumber() {\n const [version, setVersion] = useState(\"\");\n const [latestVersion, setLatestVersion] = useState(\"\");\n const { apiClient } = useApiConfig();\n\n useEffect(() => {\n async function fetchVersion() {\n try {\n const { version, latestVersion } = await getVersion(apiClient);\n\n setVersion(version);\n setLatestVersion(latestVersion);\n } catch (error) {\n console.error(\"Error fetching version number:\", error);\n }\n }\n void fetchVersion();\n }, [apiClient]);\n\n return { version, latestVersion };\n}\n"],"mappings":";;;;;;;AAiBA,eAAsB,sBACpB,QACA,SAAwBA,2BACR;AAShB,SARiB,MAAM,OAAO,KAG5B,eAAe;EACf,MAAM;EACE;EACT,CAAC,EAEc;;;;;ACflB,eAAsB,OACpB,OACA,SAAwBC,2BACD;AACvB,SACE,MAAM,OAAO,KACX,eACA,MACD,EACD;;;;;ACvBJ,MAAMC,WAAS;AAEf,MAAa,qBAAqB;CAChC,uBAAuB,GAAGA,SAAO;CACjC,sBAAsB,GAAGA,SAAO;CAChC,sBAAsB,GAAGA,SAAO;CAChC,8BAA8B,GAAGA,SAAO;CACzC;;;;ACPD,MAAM,SAAS;AAEf,MAAa,mBAAmB;CAC9B,qBAAqB,GAAG,OAAO;CAC/B,yBAAyB,GAAG,OAAO;CACnC,mBAAmB,GAAG,OAAO;CAC9B;;;;ACCD,eAAsB,eACpB,SAAwBC,2BACC;AAEzB,SADa,MAAM,OAAO,KAAqB,eAAe,EAClD;;;;;ACMd,eAAsB,UACpB,SAAwBC,2BACT;AACf,KAAI;AAEF,UADiB,MAAM,OAAO,IAAgC,aAAa,EAC3D;UACT,OAAO;AACd,UAAQ,MAAM,6BAA6B,MAAM;AACjD,QAAM;;;AAIV,eAAsB,kBACpB,QACwB;AACxB,KAAI;AAIF,UAHiB,MAAM,cAAM,IAC3B,+BAA+B,SAChC,EACe,KAAK;UACd,OAAO;AACd,UAAQ,KAAK,kCAAkC,MAAM;AACrD,SAAO;;;;;;AC7BX,eAAsB,WACpB,SAAwBC,2BACE;AAI1B,SAHiB,MAAM,OAAO,IAC5B,eACD,EACe;;AAGlB,SAAgB,mBAAmB;CACjC,MAAM,CAAC,SAAS,kCAAuB,GAAG;CAC1C,MAAM,CAAC,eAAe,wCAA6B,GAAG;CACtD,MAAM,EAAE,cAAcC,4BAAc;AAEpC,4BAAgB;EACd,eAAe,eAAe;AAC5B,OAAI;IACF,MAAM,EAAE,oBAAS,mCAAkB,MAAM,WAAW,UAAU;AAE9D,eAAWC,UAAQ;AACnB,qBAAiBC,gBAAc;YACxB,OAAO;AACd,YAAQ,MAAM,kCAAkC,MAAM;;;AAG1D,EAAK,cAAc;IAClB,CAAC,UAAU,CAAC;AAEf,QAAO;EAAE;EAAS;EAAe"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
import { Mn as axiosClient, St as useApiConfig } from "./state-CwepO01b.mjs";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import axios, { AxiosInstance, AxiosResponse } from "axios";
|
|
5
|
+
|
|
6
|
+
//#region recce-source/js/src/lib/api/schemacheck.ts
|
|
7
|
+
async function createSchemaDiffCheck(params, client = axiosClient) {
|
|
8
|
+
return (await client.post("/api/checks", {
|
|
9
|
+
type: "schema_diff",
|
|
10
|
+
params
|
|
11
|
+
})).data;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region recce-source/js/src/lib/api/select.ts
|
|
16
|
+
async function select(input, client = axiosClient) {
|
|
17
|
+
return (await client.post(`/api/select`, input)).data;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region recce-source/js/src/lib/api/sessionStorageKeys.ts
|
|
22
|
+
const prefix$1 = "recce";
|
|
23
|
+
const sessionStorageKeys = {
|
|
24
|
+
recommendationIgnored: `${prefix$1}-recommendation-ignored`,
|
|
25
|
+
recommendationShowed: `${prefix$1}-recommendation-showed`,
|
|
26
|
+
prevRefreshTimeStamp: `${prefix$1}-prev-refresh-timestamp`,
|
|
27
|
+
lineageNotificationDismissed: `${prefix$1}-lineage-notification-dismissed`
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region recce-source/js/src/lib/api/localStorageKeys.ts
|
|
32
|
+
const prefix = "recce-";
|
|
33
|
+
const localStorageKeys = {
|
|
34
|
+
bypassSaveOverwrite: `${prefix}-bypass-save-overwrite`,
|
|
35
|
+
previewChangeFeedbackID: `${prefix}-preview-change-feedback`,
|
|
36
|
+
prepareEnvGuideID: `${prefix}-prepare-env`
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region recce-source/js/src/lib/api/connectToCloud.ts
|
|
41
|
+
async function connectToCloud(client = axiosClient) {
|
|
42
|
+
return (await client.post("/api/connect")).data;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
//#endregion
|
|
46
|
+
//#region recce-source/js/src/lib/api/user.ts
|
|
47
|
+
async function fetchUser(client = axiosClient) {
|
|
48
|
+
try {
|
|
49
|
+
return (await client.get("/api/users")).data;
|
|
50
|
+
} catch (error) {
|
|
51
|
+
console.error("Error fetching user data:", error);
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function fetchGitHubAvatar(userId) {
|
|
56
|
+
try {
|
|
57
|
+
return (await axios.get(`https://api.github.com/user/${userId}`)).data.avatar_url;
|
|
58
|
+
} catch (error) {
|
|
59
|
+
console.warn("Failed to fetch GitHub avatar:", error);
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
//#endregion
|
|
65
|
+
//#region recce-source/js/src/lib/api/version.ts
|
|
66
|
+
async function getVersion(client = axiosClient) {
|
|
67
|
+
return (await client.get("/api/version")).data;
|
|
68
|
+
}
|
|
69
|
+
function useVersionNumber() {
|
|
70
|
+
const [version, setVersion] = useState("");
|
|
71
|
+
const [latestVersion, setLatestVersion] = useState("");
|
|
72
|
+
const { apiClient } = useApiConfig();
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
async function fetchVersion() {
|
|
75
|
+
try {
|
|
76
|
+
const { version: version$1, latestVersion: latestVersion$1 } = await getVersion(apiClient);
|
|
77
|
+
setVersion(version$1);
|
|
78
|
+
setLatestVersion(latestVersion$1);
|
|
79
|
+
} catch (error) {
|
|
80
|
+
console.error("Error fetching version number:", error);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
fetchVersion();
|
|
84
|
+
}, [apiClient]);
|
|
85
|
+
return {
|
|
86
|
+
version,
|
|
87
|
+
latestVersion
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
//#endregion
|
|
92
|
+
export { connectToCloud as a, select as c, fetchUser as i, createSchemaDiffCheck as l, useVersionNumber as n, localStorageKeys as o, fetchGitHubAvatar as r, sessionStorageKeys as s, getVersion as t };
|
|
93
|
+
//# sourceMappingURL=version-Bz2CiMHD.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-Bz2CiMHD.mjs","names":["prefix","version","latestVersion"],"sources":["../recce-source/js/src/lib/api/schemacheck.ts","../recce-source/js/src/lib/api/select.ts","../recce-source/js/src/lib/api/sessionStorageKeys.ts","../recce-source/js/src/lib/api/localStorageKeys.ts","../recce-source/js/src/lib/api/connectToCloud.ts","../recce-source/js/src/lib/api/user.ts","../recce-source/js/src/lib/api/version.ts"],"sourcesContent":["import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\nimport { Check } from \"./checks\";\n\nexport interface SchemaDiffViewParams {\n node_id?: string | string[];\n select?: string;\n exclude?: string;\n view_mode?: \"all\" | \"changed_models\";\n packages?: string[];\n}\n\ninterface CreateSchemaDiffCheckBody {\n type: string;\n params: SchemaDiffViewParams;\n}\n\nexport async function createSchemaDiffCheck(\n params: SchemaDiffViewParams,\n client: AxiosInstance = axiosClient,\n): Promise<Check> {\n const response = await client.post<\n CreateSchemaDiffCheckBody,\n AxiosResponse<Check>\n >(\"/api/checks\", {\n type: \"schema_diff\",\n params: params,\n });\n\n return response.data;\n}\n","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface SelectInput {\n select?: string;\n exclude?: string;\n packages?: string[];\n view_mode?: \"all\" | \"changed_models\";\n}\n\nexport interface SelectOutput {\n nodes: string[];\n}\n\nexport async function select(\n input: SelectInput,\n client: AxiosInstance = axiosClient,\n): Promise<SelectOutput> {\n return (\n await client.post<SelectInput, AxiosResponse<SelectOutput>>(\n `/api/select`,\n input,\n )\n ).data;\n}\n","const prefix = \"recce\";\n\nexport const sessionStorageKeys = {\n recommendationIgnored: `${prefix}-recommendation-ignored`,\n recommendationShowed: `${prefix}-recommendation-showed`,\n prevRefreshTimeStamp: `${prefix}-prev-refresh-timestamp`,\n lineageNotificationDismissed: `${prefix}-lineage-notification-dismissed`,\n};\n","const prefix = \"recce-\";\n\nexport const localStorageKeys = {\n bypassSaveOverwrite: `${prefix}-bypass-save-overwrite`,\n previewChangeFeedbackID: `${prefix}-preview-change-feedback`,\n prepareEnvGuideID: `${prefix}-prepare-env`,\n};\n","import { AxiosInstance } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface ConnectToCloud {\n connection_url: string;\n}\n\nexport async function connectToCloud(\n client: AxiosInstance = axiosClient,\n): Promise<ConnectToCloud> {\n const data = await client.post<ConnectToCloud>(\"/api/connect\");\n return data.data;\n}\n","import axios, { AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface User {\n id: string;\n login: string;\n login_type: string;\n email: string;\n onboarding_state: string;\n}\n\ninterface GitHubUser {\n login: string;\n id: number;\n avatar_url: string;\n}\n\nexport async function fetchUser(\n client: AxiosInstance = axiosClient,\n): Promise<User> {\n try {\n const response = await client.get<never, AxiosResponse<User>>(\"/api/users\");\n return response.data;\n } catch (error) {\n console.error(\"Error fetching user data:\", error);\n throw error;\n }\n}\n\nexport async function fetchGitHubAvatar(\n userId: string,\n): Promise<string | null> {\n try {\n const response = await axios.get<GitHubUser>(\n `https://api.github.com/user/${userId}`,\n );\n return response.data.avatar_url;\n } catch (error) {\n console.warn(\"Failed to fetch GitHub avatar:\", error);\n return null;\n }\n}\n","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { useEffect, useState } from \"react\";\nimport { useApiConfig } from \"../hooks/ApiConfigContext\";\nimport { axiosClient } from \"./axiosClient\";\n\ninterface VersionResponse {\n version: string;\n latestVersion: string;\n}\n\nexport async function getVersion(\n client: AxiosInstance = axiosClient,\n): Promise<VersionResponse> {\n const response = await client.get<never, AxiosResponse<VersionResponse>>(\n \"/api/version\",\n );\n return response.data;\n}\n\nexport function useVersionNumber() {\n const [version, setVersion] = useState(\"\");\n const [latestVersion, setLatestVersion] = useState(\"\");\n const { apiClient } = useApiConfig();\n\n useEffect(() => {\n async function fetchVersion() {\n try {\n const { version, latestVersion } = await getVersion(apiClient);\n\n setVersion(version);\n setLatestVersion(latestVersion);\n } catch (error) {\n console.error(\"Error fetching version number:\", error);\n }\n }\n void fetchVersion();\n }, [apiClient]);\n\n return { version, latestVersion };\n}\n"],"mappings":";;;;;;AAiBA,eAAsB,sBACpB,QACA,SAAwB,aACR;AAShB,SARiB,MAAM,OAAO,KAG5B,eAAe;EACf,MAAM;EACE;EACT,CAAC,EAEc;;;;;ACflB,eAAsB,OACpB,OACA,SAAwB,aACD;AACvB,SACE,MAAM,OAAO,KACX,eACA,MACD,EACD;;;;;ACvBJ,MAAMA,WAAS;AAEf,MAAa,qBAAqB;CAChC,uBAAuB,GAAGA,SAAO;CACjC,sBAAsB,GAAGA,SAAO;CAChC,sBAAsB,GAAGA,SAAO;CAChC,8BAA8B,GAAGA,SAAO;CACzC;;;;ACPD,MAAM,SAAS;AAEf,MAAa,mBAAmB;CAC9B,qBAAqB,GAAG,OAAO;CAC/B,yBAAyB,GAAG,OAAO;CACnC,mBAAmB,GAAG,OAAO;CAC9B;;;;ACCD,eAAsB,eACpB,SAAwB,aACC;AAEzB,SADa,MAAM,OAAO,KAAqB,eAAe,EAClD;;;;;ACMd,eAAsB,UACpB,SAAwB,aACT;AACf,KAAI;AAEF,UADiB,MAAM,OAAO,IAAgC,aAAa,EAC3D;UACT,OAAO;AACd,UAAQ,MAAM,6BAA6B,MAAM;AACjD,QAAM;;;AAIV,eAAsB,kBACpB,QACwB;AACxB,KAAI;AAIF,UAHiB,MAAM,MAAM,IAC3B,+BAA+B,SAChC,EACe,KAAK;UACd,OAAO;AACd,UAAQ,KAAK,kCAAkC,MAAM;AACrD,SAAO;;;;;;AC7BX,eAAsB,WACpB,SAAwB,aACE;AAI1B,SAHiB,MAAM,OAAO,IAC5B,eACD,EACe;;AAGlB,SAAgB,mBAAmB;CACjC,MAAM,CAAC,SAAS,cAAc,SAAS,GAAG;CAC1C,MAAM,CAAC,eAAe,oBAAoB,SAAS,GAAG;CACtD,MAAM,EAAE,cAAc,cAAc;AAEpC,iBAAgB;EACd,eAAe,eAAe;AAC5B,OAAI;IACF,MAAM,EAAE,oBAAS,mCAAkB,MAAM,WAAW,UAAU;AAE9D,eAAWC,UAAQ;AACnB,qBAAiBC,gBAAc;YACxB,OAAO;AACd,YAAQ,MAAM,kCAAkC,MAAM;;;AAG1D,EAAK,cAAc;IAClB,CAAC,UAAU,CAAC;AAEf,QAAO;EAAE;EAAS;EAAe"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datarecce/ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.24",
|
|
4
4
|
"description": "Recce UI Components Library - Reusable React components for data validation and review",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -77,9 +77,11 @@
|
|
|
77
77
|
"@amplitude/unified": "^1.0.0-beta.9",
|
|
78
78
|
"@emotion/react": "^11.0.0",
|
|
79
79
|
"@mui/material": "^7.0.0",
|
|
80
|
+
"@mui/system": "^7.0.0",
|
|
80
81
|
"@tanstack/react-query": "^5.0.0",
|
|
81
82
|
"@xyflow/react": "^12.0.0",
|
|
82
|
-
"axios": "^1.0.0"
|
|
83
|
+
"axios": "^1.0.0",
|
|
84
|
+
"next-themes": "^0.4.0"
|
|
83
85
|
},
|
|
84
86
|
"dependencies": {
|
|
85
87
|
"@codemirror/lang-sql": "^6.10.0",
|
|
@@ -91,7 +93,7 @@
|
|
|
91
93
|
"@emotion/styled": "^11.14.1",
|
|
92
94
|
"@hello-pangea/dnd": "^18.0.1",
|
|
93
95
|
"@jeromefitz/date-fns-tz": "3.0.0-canary.8",
|
|
94
|
-
"@mui/
|
|
96
|
+
"@mui/material": "^7.3.6",
|
|
95
97
|
"@sentry/react": "^10.32.1",
|
|
96
98
|
"@types/js-cookie": "^3.0.6",
|
|
97
99
|
"@uiw/codemirror-theme-github": "^4.25.4",
|
|
@@ -107,7 +109,6 @@
|
|
|
107
109
|
"html2canvas-pro": "^1.6.1",
|
|
108
110
|
"js-cookie": "^3.0.5",
|
|
109
111
|
"lodash": "^4.17.21",
|
|
110
|
-
"next-themes": "^0.4.6",
|
|
111
112
|
"react-chartjs-2": "^5.3.1",
|
|
112
113
|
"react-icons": "^5.5.0",
|
|
113
114
|
"react-markdown": "^10.1.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RecceCheckContext-BETsmiD5.mjs","names":["nodeCount"],"sources":["../recce-source/js/src/lib/hooks/RecceQueryContext.tsx","../recce-source/js/src/lib/hooks/RecceShareStateContext.tsx","../recce-source/js/src/components/lineage/useValueDiffAlertDialog.tsx","../recce-source/js/src/lib/hooks/useCheckToast.tsx","../recce-source/js/src/lib/hooks/RecceCheckContext.tsx"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\n\nexport interface QueryContext {\n sqlQuery: string;\n setSqlQuery: (sqlQuery: string) => void;\n primaryKeys: string[] | undefined;\n setPrimaryKeys: (primaryKeys: string[] | undefined) => void;\n isCustomQueries: boolean;\n setCustomQueries: (isCustomQueries: boolean) => void;\n baseSqlQuery?: string;\n setBaseSqlQuery?: (baseSqlQuery: string) => void;\n}\n\nexport const defaultSqlQuery = 'select * from {{ ref(\"mymodel\") }}';\n\nconst defaultQueryContext: QueryContext = {\n sqlQuery: defaultSqlQuery,\n setSqlQuery: () => {\n return void 0;\n },\n primaryKeys: undefined,\n setPrimaryKeys: () => {\n return void 0;\n },\n isCustomQueries: false,\n setCustomQueries: () => {\n return void 0;\n },\n baseSqlQuery: defaultSqlQuery,\n setBaseSqlQuery: () => {\n return void 0;\n },\n};\n\nconst RecceQueryContext = createContext(defaultQueryContext);\n\ninterface QueryContextProps {\n children: React.ReactNode;\n}\n\nexport function RecceQueryContextProvider({ children }: QueryContextProps) {\n const [sqlQuery, setSqlQuery] = React.useState<string>(defaultSqlQuery);\n const [baseSqlQuery, setBaseSqlQuery] =\n React.useState<string>(defaultSqlQuery);\n const [isCustomQueries, setCustomQueries] = React.useState<boolean>(false);\n const [primaryKeys, setPrimaryKeys] = React.useState<string[] | undefined>();\n return (\n <RecceQueryContext.Provider\n value={{\n setSqlQuery,\n sqlQuery,\n setPrimaryKeys,\n primaryKeys,\n isCustomQueries,\n setCustomQueries,\n baseSqlQuery,\n setBaseSqlQuery,\n }}\n >\n {children}\n </RecceQueryContext.Provider>\n );\n}\n\nexport const useRecceQueryContext = () => useContext(RecceQueryContext);\n\nexport interface RowCountStateContext {\n isNodesFetching: string[];\n setIsNodesFetching: (nodes: string[]) => void;\n}\n\nconst defaultRowCountStateContext: RowCountStateContext = {\n isNodesFetching: [],\n setIsNodesFetching: () => {\n return void 0;\n },\n};\n\nconst RowCountStateContext = createContext(defaultRowCountStateContext);\n\ninterface RowCountStateContextProps {\n children: React.ReactNode;\n}\n\nexport function RowCountStateContextProvider({\n children,\n}: RowCountStateContextProps) {\n const [isNodesFetching, setIsNodesFetching] = React.useState<string[]>([]);\n return (\n <RowCountStateContext.Provider\n value={{ isNodesFetching, setIsNodesFetching }}\n >\n {children}\n </RowCountStateContext.Provider>\n );\n}\n\nexport const useRowCountStateContext = () => useContext(RowCountStateContext);\n","import React, { createContext, useContext, useState } from \"react\";\nimport { shareState } from \"@/lib/api/state\";\n\ninterface ShareStateProps {\n shareUrl?: string;\n isLoading: boolean;\n error?: string;\n handleShareClick: () => Promise<void>;\n}\n\nconst ShareState = createContext<ShareStateProps | undefined>(undefined);\n\nexport function RecceShareStateContextProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const [shareUrl, setShareUrl] = useState<string>();\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string>();\n\n const handleShareClick = async () => {\n setIsLoading(true);\n setError(undefined);\n setShareUrl(undefined);\n try {\n const response = await shareState();\n if (response.status !== \"success\") {\n setError(response.message);\n return;\n }\n setShareUrl(response.share_url);\n } catch (err) {\n setError((err as Error).message);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n <ShareState.Provider\n value={{ shareUrl, isLoading, error, handleShareClick }}\n >\n {children}\n </ShareState.Provider>\n );\n}\n\nexport const useRecceShareStateContext = () => {\n const context = useContext(ShareState);\n if (!context) {\n throw new Error(\n \"useRecceShareStateContext must be used within a RecceShareStateContextProvider\",\n );\n }\n return context;\n};\n","import Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport MuiDialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Stack from \"@mui/material/Stack\";\nimport React, { useCallback, useRef, useState } from \"react\";\nimport { IoClose } from \"react-icons/io5\";\nimport {\n EXPLORE_ACTION,\n EXPLORE_FORM_EVENT,\n trackExploreActionForm,\n} from \"@/lib/api/track\";\n\nfunction useValueDiffAlertDialog() {\n const [open, setOpen] = useState(false);\n const [nodeCount, setNodeCount] = useState(0);\n const [resolvePromise, setResolvePromise] =\n useState<(value: boolean) => void>();\n const cancelRef = useRef<HTMLButtonElement>(null);\n\n const confirm = useCallback((nodeCount: number) => {\n setNodeCount(nodeCount);\n return new Promise<boolean>((resolve) => {\n setResolvePromise(() => resolve);\n setOpen(true);\n });\n }, []);\n\n const handleConfirm = () => {\n trackExploreActionForm({\n action: EXPLORE_ACTION.VALUE_DIFF,\n event: EXPLORE_FORM_EVENT.EXECUTE,\n });\n resolvePromise?.(true);\n setOpen(false);\n };\n\n const handleCancel = () => {\n trackExploreActionForm({\n action: EXPLORE_ACTION.VALUE_DIFF,\n event: EXPLORE_FORM_EVENT.CANCEL,\n });\n resolvePromise?.(false);\n setOpen(false);\n };\n\n const ValueDiffAlertDialog = (\n <MuiDialog\n open={open}\n onClose={handleCancel}\n maxWidth=\"md\"\n fullWidth\n aria-labelledby=\"value-diff-alert-dialog-title\"\n >\n <DialogTitle\n id=\"value-diff-alert-dialog-title\"\n sx={{ fontSize: \"1.125rem\", fontWeight: \"bold\" }}\n >\n Value Diff on {nodeCount} nodes\n </DialogTitle>\n <IconButton\n aria-label=\"close\"\n onClick={handleCancel}\n sx={{\n position: \"absolute\",\n right: 8,\n top: 8,\n color: \"grey.500\",\n }}\n >\n <IoClose />\n </IconButton>\n <DialogContent>\n <Stack spacing=\"20px\">\n <Box>\n Value diff will be executed on {nodeCount} nodes in the Lineage,\n which can add extra costs to your bill.\n </Box>\n </Stack>\n </DialogContent>\n <DialogActions sx={{ gap: 0.5 }}>\n <Button\n ref={cancelRef}\n onClick={handleCancel}\n variant=\"outlined\"\n color=\"neutral\"\n >\n Cancel\n </Button>\n <Button\n color=\"iochmara\"\n variant=\"contained\"\n onClick={handleConfirm}\n sx={{ ml: 1.5 }}\n >\n Execute\n </Button>\n </DialogActions>\n </MuiDialog>\n );\n\n return { confirm, AlertDialog: ValueDiffAlertDialog };\n}\n\nexport default useValueDiffAlertDialog;\n","import { toaster } from \"@/components/ui/toaster\";\n\nexport function useCheckToast() {\n function markedAsApprovedToast() {\n toaster.create({\n title: \"Marked as approved\",\n type: \"success\",\n duration: 2000,\n });\n }\n return {\n markedAsApprovedToast,\n };\n}\n","import React, { createContext, useContext } from \"react\";\n\nexport interface CheckContext {\n latestSelectedCheckId: string;\n setLatestSelectedCheckId: (selectCheckId: string) => void;\n}\n\ninterface CheckContextProps {\n children: React.ReactNode;\n}\n\nconst RecceCheckContext = createContext<CheckContext>({\n latestSelectedCheckId: \"\",\n setLatestSelectedCheckId: () => {\n return void 0;\n },\n});\n\nexport function RecceCheckContextProvider({ children }: CheckContextProps) {\n const [selectCheckId, setSelectCheckId] = React.useState<string>(\"\");\n return (\n <RecceCheckContext.Provider\n value={{\n setLatestSelectedCheckId: setSelectCheckId,\n latestSelectedCheckId: selectCheckId,\n }}\n >\n {children}\n </RecceCheckContext.Provider>\n );\n}\n\nexport const useRecceCheckContext = () => useContext(RecceCheckContext);\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RecceCheckContext-DNKi97uE.js","names":["React","shareState","nodeCount","EXPLORE_ACTION","EXPLORE_FORM_EVENT","MuiDialog","DialogTitle","IconButton","IoClose","DialogContent","Stack","Box","DialogActions","Button","React"],"sources":["../recce-source/js/src/lib/hooks/RecceQueryContext.tsx","../recce-source/js/src/lib/hooks/RecceShareStateContext.tsx","../recce-source/js/src/components/lineage/useValueDiffAlertDialog.tsx","../recce-source/js/src/lib/hooks/useCheckToast.tsx","../recce-source/js/src/lib/hooks/RecceCheckContext.tsx"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\n\nexport interface QueryContext {\n sqlQuery: string;\n setSqlQuery: (sqlQuery: string) => void;\n primaryKeys: string[] | undefined;\n setPrimaryKeys: (primaryKeys: string[] | undefined) => void;\n isCustomQueries: boolean;\n setCustomQueries: (isCustomQueries: boolean) => void;\n baseSqlQuery?: string;\n setBaseSqlQuery?: (baseSqlQuery: string) => void;\n}\n\nexport const defaultSqlQuery = 'select * from {{ ref(\"mymodel\") }}';\n\nconst defaultQueryContext: QueryContext = {\n sqlQuery: defaultSqlQuery,\n setSqlQuery: () => {\n return void 0;\n },\n primaryKeys: undefined,\n setPrimaryKeys: () => {\n return void 0;\n },\n isCustomQueries: false,\n setCustomQueries: () => {\n return void 0;\n },\n baseSqlQuery: defaultSqlQuery,\n setBaseSqlQuery: () => {\n return void 0;\n },\n};\n\nconst RecceQueryContext = createContext(defaultQueryContext);\n\ninterface QueryContextProps {\n children: React.ReactNode;\n}\n\nexport function RecceQueryContextProvider({ children }: QueryContextProps) {\n const [sqlQuery, setSqlQuery] = React.useState<string>(defaultSqlQuery);\n const [baseSqlQuery, setBaseSqlQuery] =\n React.useState<string>(defaultSqlQuery);\n const [isCustomQueries, setCustomQueries] = React.useState<boolean>(false);\n const [primaryKeys, setPrimaryKeys] = React.useState<string[] | undefined>();\n return (\n <RecceQueryContext.Provider\n value={{\n setSqlQuery,\n sqlQuery,\n setPrimaryKeys,\n primaryKeys,\n isCustomQueries,\n setCustomQueries,\n baseSqlQuery,\n setBaseSqlQuery,\n }}\n >\n {children}\n </RecceQueryContext.Provider>\n );\n}\n\nexport const useRecceQueryContext = () => useContext(RecceQueryContext);\n\nexport interface RowCountStateContext {\n isNodesFetching: string[];\n setIsNodesFetching: (nodes: string[]) => void;\n}\n\nconst defaultRowCountStateContext: RowCountStateContext = {\n isNodesFetching: [],\n setIsNodesFetching: () => {\n return void 0;\n },\n};\n\nconst RowCountStateContext = createContext(defaultRowCountStateContext);\n\ninterface RowCountStateContextProps {\n children: React.ReactNode;\n}\n\nexport function RowCountStateContextProvider({\n children,\n}: RowCountStateContextProps) {\n const [isNodesFetching, setIsNodesFetching] = React.useState<string[]>([]);\n return (\n <RowCountStateContext.Provider\n value={{ isNodesFetching, setIsNodesFetching }}\n >\n {children}\n </RowCountStateContext.Provider>\n );\n}\n\nexport const useRowCountStateContext = () => useContext(RowCountStateContext);\n","import React, { createContext, useContext, useState } from \"react\";\nimport { shareState } from \"@/lib/api/state\";\n\ninterface ShareStateProps {\n shareUrl?: string;\n isLoading: boolean;\n error?: string;\n handleShareClick: () => Promise<void>;\n}\n\nconst ShareState = createContext<ShareStateProps | undefined>(undefined);\n\nexport function RecceShareStateContextProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const [shareUrl, setShareUrl] = useState<string>();\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string>();\n\n const handleShareClick = async () => {\n setIsLoading(true);\n setError(undefined);\n setShareUrl(undefined);\n try {\n const response = await shareState();\n if (response.status !== \"success\") {\n setError(response.message);\n return;\n }\n setShareUrl(response.share_url);\n } catch (err) {\n setError((err as Error).message);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n <ShareState.Provider\n value={{ shareUrl, isLoading, error, handleShareClick }}\n >\n {children}\n </ShareState.Provider>\n );\n}\n\nexport const useRecceShareStateContext = () => {\n const context = useContext(ShareState);\n if (!context) {\n throw new Error(\n \"useRecceShareStateContext must be used within a RecceShareStateContextProvider\",\n );\n }\n return context;\n};\n","import Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport MuiDialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Stack from \"@mui/material/Stack\";\nimport React, { useCallback, useRef, useState } from \"react\";\nimport { IoClose } from \"react-icons/io5\";\nimport {\n EXPLORE_ACTION,\n EXPLORE_FORM_EVENT,\n trackExploreActionForm,\n} from \"@/lib/api/track\";\n\nfunction useValueDiffAlertDialog() {\n const [open, setOpen] = useState(false);\n const [nodeCount, setNodeCount] = useState(0);\n const [resolvePromise, setResolvePromise] =\n useState<(value: boolean) => void>();\n const cancelRef = useRef<HTMLButtonElement>(null);\n\n const confirm = useCallback((nodeCount: number) => {\n setNodeCount(nodeCount);\n return new Promise<boolean>((resolve) => {\n setResolvePromise(() => resolve);\n setOpen(true);\n });\n }, []);\n\n const handleConfirm = () => {\n trackExploreActionForm({\n action: EXPLORE_ACTION.VALUE_DIFF,\n event: EXPLORE_FORM_EVENT.EXECUTE,\n });\n resolvePromise?.(true);\n setOpen(false);\n };\n\n const handleCancel = () => {\n trackExploreActionForm({\n action: EXPLORE_ACTION.VALUE_DIFF,\n event: EXPLORE_FORM_EVENT.CANCEL,\n });\n resolvePromise?.(false);\n setOpen(false);\n };\n\n const ValueDiffAlertDialog = (\n <MuiDialog\n open={open}\n onClose={handleCancel}\n maxWidth=\"md\"\n fullWidth\n aria-labelledby=\"value-diff-alert-dialog-title\"\n >\n <DialogTitle\n id=\"value-diff-alert-dialog-title\"\n sx={{ fontSize: \"1.125rem\", fontWeight: \"bold\" }}\n >\n Value Diff on {nodeCount} nodes\n </DialogTitle>\n <IconButton\n aria-label=\"close\"\n onClick={handleCancel}\n sx={{\n position: \"absolute\",\n right: 8,\n top: 8,\n color: \"grey.500\",\n }}\n >\n <IoClose />\n </IconButton>\n <DialogContent>\n <Stack spacing=\"20px\">\n <Box>\n Value diff will be executed on {nodeCount} nodes in the Lineage,\n which can add extra costs to your bill.\n </Box>\n </Stack>\n </DialogContent>\n <DialogActions sx={{ gap: 0.5 }}>\n <Button\n ref={cancelRef}\n onClick={handleCancel}\n variant=\"outlined\"\n color=\"neutral\"\n >\n Cancel\n </Button>\n <Button\n color=\"iochmara\"\n variant=\"contained\"\n onClick={handleConfirm}\n sx={{ ml: 1.5 }}\n >\n Execute\n </Button>\n </DialogActions>\n </MuiDialog>\n );\n\n return { confirm, AlertDialog: ValueDiffAlertDialog };\n}\n\nexport default useValueDiffAlertDialog;\n","import { toaster } from \"@/components/ui/toaster\";\n\nexport function useCheckToast() {\n function markedAsApprovedToast() {\n toaster.create({\n title: \"Marked as approved\",\n type: \"success\",\n duration: 2000,\n });\n }\n return {\n markedAsApprovedToast,\n };\n}\n","import React, { createContext, useContext } from \"react\";\n\nexport interface CheckContext {\n latestSelectedCheckId: string;\n setLatestSelectedCheckId: (selectCheckId: string) => void;\n}\n\ninterface CheckContextProps {\n children: React.ReactNode;\n}\n\nconst RecceCheckContext = createContext<CheckContext>({\n latestSelectedCheckId: \"\",\n setLatestSelectedCheckId: () => {\n return void 0;\n },\n});\n\nexport function RecceCheckContextProvider({ children }: CheckContextProps) {\n const [selectCheckId, setSelectCheckId] = React.useState<string>(\"\");\n return (\n <RecceCheckContext.Provider\n value={{\n setLatestSelectedCheckId: setSelectCheckId,\n latestSelectedCheckId: selectCheckId,\n }}\n >\n {children}\n </RecceCheckContext.Provider>\n );\n}\n\nexport const useRecceCheckContext = () => useContext(RecceCheckContext);\n"],"mappings":"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"}
|
package/dist/api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","names":["axiosClient","version","latestVersion"],"sources":["../recce-source/js/src/lib/api/version.ts"],"sourcesContent":["import { AxiosResponse } from \"axios\";\nimport { useEffect, useState } from \"react\";\nimport { axiosClient } from \"./axiosClient\";\n\ninterface VersionResponse {\n version: string;\n latestVersion: string;\n}\n\nexport function useVersionNumber() {\n const [version, setVersion] = useState(\"\");\n const [latestVersion, setLatestVersion] = useState(\"\");\n\n useEffect(() => {\n async function fetchVersion() {\n try {\n const { version, latestVersion } = (\n await axiosClient.get<never, AxiosResponse<VersionResponse>>(\n \"/api/version\",\n )\n ).data;\n\n setVersion(version);\n setLatestVersion(latestVersion);\n } catch (error) {\n console.error(\"Error fetching version number:\", error);\n }\n }\n void fetchVersion();\n }, []);\n\n return { version, latestVersion };\n}\n"],"mappings":";;;;;;;;AASA,SAAgB,mBAAmB;CACjC,MAAM,CAAC,SAAS,kCAAuB,GAAG;CAC1C,MAAM,CAAC,eAAe,wCAA6B,GAAG;AAEtD,4BAAgB;EACd,eAAe,eAAe;AAC5B,OAAI;IACF,MAAM,EAAE,oBAAS,oCACf,MAAMA,0BAAY,IAChB,eACD,EACD;AAEF,eAAWC,UAAQ;AACnB,qBAAiBC,gBAAc;YACxB,OAAO;AACd,YAAQ,MAAM,kCAAkC,MAAM;;;AAG1D,EAAK,cAAc;IAClB,EAAE,CAAC;AAEN,QAAO;EAAE;EAAS;EAAe"}
|
package/dist/api.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.mjs","names":["version","latestVersion"],"sources":["../recce-source/js/src/lib/api/version.ts"],"sourcesContent":["import { AxiosResponse } from \"axios\";\nimport { useEffect, useState } from \"react\";\nimport { axiosClient } from \"./axiosClient\";\n\ninterface VersionResponse {\n version: string;\n latestVersion: string;\n}\n\nexport function useVersionNumber() {\n const [version, setVersion] = useState(\"\");\n const [latestVersion, setLatestVersion] = useState(\"\");\n\n useEffect(() => {\n async function fetchVersion() {\n try {\n const { version, latestVersion } = (\n await axiosClient.get<never, AxiosResponse<VersionResponse>>(\n \"/api/version\",\n )\n ).data;\n\n setVersion(version);\n setLatestVersion(latestVersion);\n } catch (error) {\n console.error(\"Error fetching version number:\", error);\n }\n }\n void fetchVersion();\n }, []);\n\n return { version, latestVersion };\n}\n"],"mappings":";;;;;;;;AASA,SAAgB,mBAAmB;CACjC,MAAM,CAAC,SAAS,cAAc,SAAS,GAAG;CAC1C,MAAM,CAAC,eAAe,oBAAoB,SAAS,GAAG;AAEtD,iBAAgB;EACd,eAAe,eAAe;AAC5B,OAAI;IACF,MAAM,EAAE,oBAAS,oCACf,MAAM,YAAY,IAChB,eACD,EACD;AAEF,eAAWA,UAAQ;AACnB,qBAAiBC,gBAAc;YACxB,OAAO;AACd,YAAQ,MAAM,kCAAkC,MAAM;;;AAG1D,EAAK,cAAc;IAClB,EAAE,CAAC;AAEN,QAAO;EAAE;EAAS;EAAe"}
|