@datarecce/ui 0.2.0 → 0.2.1-nightly.20260402
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/AuthModal-B38pWD3T.js +7 -0
- package/dist/AuthModal-B38pWD3T.js.map +1 -0
- package/dist/{RouteConfigContext-z8YNimdP.d.ts → RouteConfigContext-DWFg6bll.d.ts} +13 -14
- package/dist/RouteConfigContext-DWFg6bll.d.ts.map +1 -0
- package/dist/{RunProgress-DyFIALbI.d.ts → RunProgress-BCFXvUsE.d.ts} +18 -18
- package/dist/RunProgress-BCFXvUsE.d.ts.map +1 -0
- package/dist/{ScreenshotDataGrid-BfxYUThx.d.ts → ScreenshotDataGrid-BAsPWcde.d.ts} +6 -7
- package/dist/ScreenshotDataGrid-BAsPWcde.d.ts.map +1 -0
- package/dist/{SplitPane-B-BLxZaQ.d.ts → SplitPane-g8w-XF2_.d.ts} +283 -103
- package/dist/SplitPane-g8w-XF2_.d.ts.map +1 -0
- package/dist/advanced.d.ts +8 -9
- package/dist/advanced.d.ts.map +1 -1
- package/dist/advanced.js +1 -1
- package/dist/advanced.js.map +1 -1
- package/dist/{api-ZZ4cc9b9.d.ts → api-BwiRz6pD.d.ts} +27 -28
- package/dist/api-BwiRz6pD.d.ts.map +1 -0
- package/dist/api-CbzeUNef.js +3 -0
- package/dist/api-CbzeUNef.js.map +1 -0
- package/dist/api.d.ts +2 -2
- package/dist/api.js +1 -1
- package/dist/{colors--47Kkns4.js → colors-BbPSDR1X.js} +2 -2
- package/dist/colors-BbPSDR1X.js.map +1 -0
- package/dist/components-run.d.ts +3 -6
- package/dist/components-run.js +1 -1
- package/dist/components.d.ts +9 -22
- package/dist/components.js +1 -1
- package/dist/{constants-DD5vJv2q.js → constants-D-hOGDbU.js} +1 -1
- package/dist/{constants-DD5vJv2q.js.map → constants-D-hOGDbU.js.map} +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/contexts.d.ts +4 -5
- package/dist/contexts.js +1 -1
- package/dist/fetchClient-Bqjx8inP.js +3 -0
- package/dist/fetchClient-Bqjx8inP.js.map +1 -0
- package/dist/fetchClient-CTnJ39EA.d.ts +19 -0
- package/dist/fetchClient-CTnJ39EA.d.ts.map +1 -0
- package/dist/hooks.d.ts +2 -14
- package/dist/hooks.js +1 -1
- package/dist/{index-Ba3hp2Ng.d.ts → index-B1IyNkDA.d.ts} +92 -91
- package/dist/index-B1IyNkDA.d.ts.map +1 -0
- package/dist/{index-CiPcALu4.d.ts → index-BJOCIgE1.d.ts} +6 -4
- package/dist/index-BJOCIgE1.d.ts.map +1 -0
- package/dist/{index-DTCpHvX_.d.ts → index-C9nBECPv.d.ts} +12 -11
- package/dist/index-C9nBECPv.d.ts.map +1 -0
- package/dist/{colors-vY9Yzui0.d.ts → index-CHJ0PCEg.d.ts} +131 -6
- package/dist/index-CHJ0PCEg.d.ts.map +1 -0
- package/dist/{index-CkXLPYZY.d.ts → index-CZ7gueQV.d.ts} +1 -1
- package/dist/index-CZ7gueQV.d.ts.map +1 -0
- package/dist/{index-h_fw6R9U.d.ts → index-CaKcjGJC.d.ts} +43 -8
- package/dist/index-CaKcjGJC.d.ts.map +1 -0
- package/dist/{index-o48TPoFN.d.ts → index-D-H3NTdf.d.ts} +38 -28
- package/dist/index-D-H3NTdf.d.ts.map +1 -0
- package/dist/{index-DVoQsx5c.d.ts → index-Dh6gw0NG.d.ts} +148 -146
- package/dist/index-Dh6gw0NG.d.ts.map +1 -0
- package/dist/{index-BFkbe0aF.d.ts → index-Dp-BUtpt.d.ts} +21 -15
- package/dist/index-Dp-BUtpt.d.ts.map +1 -0
- package/dist/index.d.ts +17 -24
- package/dist/index.js +1 -1
- package/dist/{flag-CiR2E5oz.d.ts → instanceInfo-DNLFhkK8.d.ts} +84 -73
- package/dist/instanceInfo-DNLFhkK8.d.ts.map +1 -0
- package/dist/keepAlive-Dj0q3fC9.js +3 -0
- package/dist/keepAlive-Dj0q3fC9.js.map +1 -0
- package/dist/lib/api/{axiosClient.d.ts → queryClient.d.ts} +2 -2
- package/dist/lib/api/queryClient.d.ts.map +1 -0
- package/dist/lib/api/{axiosClient.js → queryClient.js} +1 -1
- package/dist/lib/api/queryClient.js.map +1 -0
- package/dist/lib/api/track.d.ts.map +1 -1
- package/dist/lib/api/track.js +2 -1
- package/dist/lib/api/track.js.map +1 -0
- package/dist/lib/api/user.d.ts +2 -2
- package/dist/lib/api/user.d.ts.map +1 -1
- package/dist/lib/api/user.js +2 -1
- package/dist/lib/api/user.js.map +1 -0
- package/dist/lib/const.d.ts.map +1 -1
- package/dist/lib/const.js +2 -1
- package/dist/lib/const.js.map +1 -0
- package/dist/lib/result/ResultErrorFallback.d.ts.map +1 -1
- package/dist/lib/result/ResultErrorFallback.js +2 -1
- package/dist/lib/result/ResultErrorFallback.js.map +1 -0
- package/dist/{index-C_kD4ZQ3.d.ts → lineage-DsKqx9yh.d.ts} +388 -168
- package/dist/lineage-DsKqx9yh.d.ts.map +1 -0
- package/dist/{primitives-CgGUvwHB.d.ts → primitives-D8s_Rs5T.d.ts} +197 -22
- package/dist/primitives-D8s_Rs5T.d.ts.map +1 -0
- package/dist/primitives.d.ts +7 -11
- package/dist/primitives.js +1 -1
- package/dist/result.d.ts +1 -2
- package/dist/result.js +1 -1
- package/dist/src-BH-TT0Mt.js +12 -0
- package/dist/src-BH-TT0Mt.js.map +1 -0
- package/dist/style.css +290 -0
- package/dist/styles.css +2 -2
- package/dist/theme-B_XT39eO.js +3 -0
- package/dist/theme-B_XT39eO.js.map +1 -0
- package/dist/theme.d.ts +1 -2
- package/dist/theme.js +1 -1
- package/dist/{types-CZre3j02.d.ts → types-DLRfpcrV.d.ts} +7 -4
- package/dist/types-DLRfpcrV.d.ts.map +1 -0
- package/dist/{types-CFbNxrx2.d.ts → types-qpgIe7MT.d.ts} +7 -7
- package/dist/types-qpgIe7MT.d.ts.map +1 -0
- package/dist/types.d.ts +10 -14
- package/dist/types.js.map +1 -1
- package/dist/useThemeColors-OwCMwSrx.d.ts +79 -0
- package/dist/useThemeColors-OwCMwSrx.d.ts.map +1 -0
- package/dist/utils-BwEuAiEd.js +3 -0
- package/dist/utils-BwEuAiEd.js.map +1 -0
- package/dist/utils-Crcz1Rb5.js +6 -0
- package/dist/utils-Crcz1Rb5.js.map +1 -0
- package/dist/utils.d.ts +2 -6
- package/dist/utils.js +1 -1
- package/package.json +45 -19
- package/dist/AuthModal-C8LetZNB.js +0 -23
- package/dist/AuthModal-C8LetZNB.js.map +0 -1
- package/dist/LineageCanvas-CR38SDYr.d.ts +0 -41
- package/dist/LineageCanvas-CR38SDYr.d.ts.map +0 -1
- package/dist/ResultErrorFallback-C7c-TN1p.js +0 -3
- package/dist/ResultErrorFallback-C7c-TN1p.js.map +0 -1
- package/dist/RouteConfigContext-z8YNimdP.d.ts.map +0 -1
- package/dist/RunProgress-DyFIALbI.d.ts.map +0 -1
- package/dist/ScreenshotDataGrid-BfxYUThx.d.ts.map +0 -1
- package/dist/SplitPane-B-BLxZaQ.d.ts.map +0 -1
- package/dist/api-ZZ4cc9b9.d.ts.map +0 -1
- package/dist/api-_i6BZPkM.js +0 -3
- package/dist/api-_i6BZPkM.js.map +0 -1
- package/dist/colors--47Kkns4.js.map +0 -1
- package/dist/colors-vY9Yzui0.d.ts.map +0 -1
- package/dist/const-DbXBkrxT.js +0 -3
- package/dist/const-DbXBkrxT.js.map +0 -1
- package/dist/flag-CiR2E5oz.d.ts.map +0 -1
- package/dist/flag-koeDAqr3.js +0 -3
- package/dist/flag-koeDAqr3.js.map +0 -1
- package/dist/index-BFkbe0aF.d.ts.map +0 -1
- package/dist/index-Ba3hp2Ng.d.ts.map +0 -1
- package/dist/index-C_kD4ZQ3.d.ts.map +0 -1
- package/dist/index-CiPcALu4.d.ts.map +0 -1
- package/dist/index-CkXLPYZY.d.ts.map +0 -1
- package/dist/index-DTCpHvX_.d.ts.map +0 -1
- package/dist/index-DVoQsx5c.d.ts.map +0 -1
- package/dist/index-DmwYRgDR.d.ts +0 -192
- package/dist/index-DmwYRgDR.d.ts.map +0 -1
- package/dist/index-N8N7XmRj.d.ts +0 -130
- package/dist/index-N8N7XmRj.d.ts.map +0 -1
- package/dist/index-h_fw6R9U.d.ts.map +0 -1
- package/dist/index-o48TPoFN.d.ts.map +0 -1
- package/dist/keepAlive-CEzyrDfg.js +0 -3
- package/dist/keepAlive-CEzyrDfg.js.map +0 -1
- package/dist/lib/api/axiosClient.d.ts.map +0 -1
- package/dist/lib/api/axiosClient.js.map +0 -1
- package/dist/primitives-CgGUvwHB.d.ts.map +0 -1
- package/dist/src-BgHSbbHk.js +0 -67
- package/dist/src-BgHSbbHk.js.map +0 -1
- package/dist/theme-CeWzymUn.js +0 -64
- package/dist/theme-CeWzymUn.js.map +0 -1
- package/dist/track-9ZQpBlUK.js +0 -3
- package/dist/track-9ZQpBlUK.js.map +0 -1
- package/dist/types-CFbNxrx2.d.ts.map +0 -1
- package/dist/types-CZre3j02.d.ts.map +0 -1
- package/dist/useRecceServerFlag-Bg5R67J4.js +0 -3
- package/dist/useRecceServerFlag-Bg5R67J4.js.map +0 -1
- package/dist/useThemeColors--prVbMmM.js +0 -3
- package/dist/useThemeColors--prVbMmM.js.map +0 -1
- package/dist/useThemeColors-DHEroo8f.d.ts +0 -104
- package/dist/useThemeColors-DHEroo8f.d.ts.map +0 -1
- package/dist/user-DMT7E0fc.js +0 -3
- package/dist/user-DMT7E0fc.js.map +0 -1
- package/dist/utils-CW2skXm_.js +0 -3
- package/dist/utils-CW2skXm_.js.map +0 -1
- package/dist/utils-CXWhfyxC.js +0 -5
- package/dist/utils-CXWhfyxC.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import { t as ApiClient } from "./fetchClient-CTnJ39EA.js";
|
|
3
|
+
import * as _$_tanstack_react_query0 from "@tanstack/react-query";
|
|
4
4
|
|
|
5
5
|
//#region src/api/info.d.ts
|
|
6
6
|
/**
|
|
@@ -31,6 +31,9 @@ interface NodeData {
|
|
|
31
31
|
package_name?: string;
|
|
32
32
|
columns?: Record<string, NodeColumnData | undefined>;
|
|
33
33
|
primary_key?: string;
|
|
34
|
+
config?: {
|
|
35
|
+
materialized?: string;
|
|
36
|
+
};
|
|
34
37
|
}
|
|
35
38
|
/**
|
|
36
39
|
* dbt artifact metadata
|
|
@@ -144,7 +147,7 @@ interface ServerInfoResult {
|
|
|
144
147
|
/**
|
|
145
148
|
* Fetch server info from API
|
|
146
149
|
*/
|
|
147
|
-
declare function getServerInfo(client:
|
|
150
|
+
declare function getServerInfo(client: ApiClient): Promise<ServerInfoResult>;
|
|
148
151
|
/**
|
|
149
152
|
* Model info result from /api/model/:model endpoint
|
|
150
153
|
*/
|
|
@@ -163,7 +166,7 @@ interface ModelInfoResult {
|
|
|
163
166
|
/**
|
|
164
167
|
* Fetch model info (columns and primary key) from API
|
|
165
168
|
*/
|
|
166
|
-
declare function getModelInfo(model: string, client:
|
|
169
|
+
declare function getModelInfo(model: string, client: ApiClient): Promise<ModelInfoResult>;
|
|
167
170
|
//#endregion
|
|
168
171
|
//#region src/api/cll.d.ts
|
|
169
172
|
interface CllInput {
|
|
@@ -191,10 +194,8 @@ interface CllNodeData {
|
|
|
191
194
|
interface ColumnLineageData {
|
|
192
195
|
current: {
|
|
193
196
|
nodes: Record<string, CllNodeData>;
|
|
194
|
-
columns: Record<string, NodeColumnData>;
|
|
195
|
-
/** JSON arrays from API - iterable like Set but properly typed */
|
|
196
|
-
parent_map: Record<string, string[]>;
|
|
197
|
-
/** JSON arrays from API - iterable like Set but properly typed */
|
|
197
|
+
columns: Record<string, NodeColumnData>; /** JSON arrays from API - iterable like Set but properly typed */
|
|
198
|
+
parent_map: Record<string, string[]>; /** JSON arrays from API - iterable like Set but properly typed */
|
|
198
199
|
child_map: Record<string, string[]>;
|
|
199
200
|
};
|
|
200
201
|
}
|
|
@@ -205,14 +206,16 @@ interface ColumnLineageData {
|
|
|
205
206
|
* @param client - Axios instance for API configuration
|
|
206
207
|
* @returns Promise resolving to column lineage data
|
|
207
208
|
*/
|
|
208
|
-
declare function getCll(input: CllInput, client:
|
|
209
|
+
declare function getCll(input: CllInput, client: ApiClient): Promise<ColumnLineageData>;
|
|
209
210
|
//#endregion
|
|
210
211
|
//#region src/api/types/base.d.ts
|
|
211
212
|
/**
|
|
212
|
-
* Query parameters for
|
|
213
|
+
* Query parameters for API requests
|
|
213
214
|
* Supports string, number, and array values with undefined for optional params
|
|
214
215
|
*/
|
|
215
|
-
type
|
|
216
|
+
type QueryParams$1 = Record<string, string | string[] | number | number[] | undefined>;
|
|
217
|
+
/** @deprecated Use QueryParams instead */
|
|
218
|
+
type AxiosQueryParams = QueryParams$1;
|
|
216
219
|
/**
|
|
217
220
|
* Primitive data types that can appear in a row
|
|
218
221
|
*/
|
|
@@ -256,6 +259,8 @@ interface DataFrame {
|
|
|
256
259
|
limit?: number;
|
|
257
260
|
/** Whether more rows are available beyond the limit */
|
|
258
261
|
more?: boolean;
|
|
262
|
+
/** Total row count from full query result (before preview limit) */
|
|
263
|
+
total_row_count?: number;
|
|
259
264
|
}
|
|
260
265
|
//#endregion
|
|
261
266
|
//#region src/api/runs.d.ts
|
|
@@ -286,62 +291,62 @@ interface SubmitOptions {
|
|
|
286
291
|
* @param type - The type of run to execute
|
|
287
292
|
* @param params - Parameters specific to the run type
|
|
288
293
|
* @param options - Submission options (nowait, tracking)
|
|
289
|
-
* @param client - Required
|
|
294
|
+
* @param client - Required API client instance (no default - library pattern)
|
|
290
295
|
* @returns The created run, or just run_id if nowait is true
|
|
291
296
|
*/
|
|
292
|
-
declare function submitRun(type: RunType, params: unknown, options: SubmitOptions | undefined, client:
|
|
297
|
+
declare function submitRun(type: RunType, params: unknown, options: SubmitOptions | undefined, client: ApiClient): Promise<Run | Pick<Run, "run_id">>;
|
|
293
298
|
/**
|
|
294
299
|
* Get a run by ID.
|
|
295
300
|
* @param runId - The ID of the run to retrieve
|
|
296
|
-
* @param client - Required
|
|
301
|
+
* @param client - Required API client instance
|
|
297
302
|
* @returns The run object
|
|
298
303
|
*/
|
|
299
|
-
declare function getRun(runId: string, client:
|
|
304
|
+
declare function getRun(runId: string, client: ApiClient): Promise<Run>;
|
|
300
305
|
/**
|
|
301
306
|
* Wait for a run to complete.
|
|
302
307
|
* @param runId - The ID of the run to wait for
|
|
303
308
|
* @param timeout - Optional timeout in seconds
|
|
304
|
-
* @param client - Required
|
|
309
|
+
* @param client - Required API client instance
|
|
305
310
|
* @returns The completed run object with result
|
|
306
311
|
*/
|
|
307
|
-
declare function waitRun(runId: string, timeout: number | undefined, client:
|
|
312
|
+
declare function waitRun(runId: string, timeout: number | undefined, client: ApiClient): Promise<Run>;
|
|
308
313
|
/**
|
|
309
314
|
* Cancel a running run.
|
|
310
315
|
* @param runId - The ID of the run to cancel
|
|
311
|
-
* @param client - Required
|
|
316
|
+
* @param client - Required API client instance
|
|
312
317
|
*/
|
|
313
|
-
declare function cancelRun(runId: string, client:
|
|
318
|
+
declare function cancelRun(runId: string, client: ApiClient): Promise<void>;
|
|
314
319
|
/**
|
|
315
320
|
* Submit a run from an existing check.
|
|
316
321
|
* Re-runs the check with its stored parameters.
|
|
317
322
|
* @param checkId - The ID of the check to run
|
|
318
323
|
* @param options - Submission options (nowait)
|
|
319
|
-
* @param client - Required
|
|
324
|
+
* @param client - Required API client instance
|
|
320
325
|
* @returns The created run, or just run_id if nowait is true
|
|
321
326
|
*/
|
|
322
|
-
declare function submitRunFromCheck(checkId: string, options: SubmitOptions | undefined, client:
|
|
327
|
+
declare function submitRunFromCheck(checkId: string, options: SubmitOptions | undefined, client: ApiClient): Promise<Run | Pick<Run, "run_id">>;
|
|
323
328
|
/**
|
|
324
329
|
* Search for runs matching criteria.
|
|
325
330
|
* @param type - The run type to search for
|
|
326
331
|
* @param params - Parameters to match against run params
|
|
327
332
|
* @param limit - Maximum number of results to return
|
|
328
|
-
* @param client - Required
|
|
333
|
+
* @param client - Required API client instance
|
|
329
334
|
* @returns Array of matching runs
|
|
330
335
|
*/
|
|
331
|
-
declare function searchRuns(type: string, params: Record<string, unknown> | undefined, limit: number | undefined, client:
|
|
336
|
+
declare function searchRuns(type: string, params: Record<string, unknown> | undefined, limit: number | undefined, client: ApiClient): Promise<Run[]>;
|
|
332
337
|
/**
|
|
333
338
|
* List all runs.
|
|
334
|
-
* @param client - Required
|
|
339
|
+
* @param client - Required API client instance
|
|
335
340
|
* @returns Array of all runs
|
|
336
341
|
*/
|
|
337
|
-
declare function listRuns(client:
|
|
342
|
+
declare function listRuns(client: ApiClient): Promise<Run[]>;
|
|
338
343
|
/**
|
|
339
344
|
* Aggregate runs from API.
|
|
340
345
|
* Returns run results grouped by model and run type.
|
|
341
|
-
* @param client - Required
|
|
346
|
+
* @param client - Required API client instance
|
|
342
347
|
* @returns Aggregated run results
|
|
343
348
|
*/
|
|
344
|
-
declare function aggregateRuns(client:
|
|
349
|
+
declare function aggregateRuns(client: ApiClient): Promise<RunsAggregated>;
|
|
345
350
|
//#endregion
|
|
346
351
|
//#region src/api/adhocQuery.d.ts
|
|
347
352
|
interface QueryRunParams {
|
|
@@ -375,9 +380,9 @@ interface QueryPreviewChangeParams {
|
|
|
375
380
|
primary_keys?: string[];
|
|
376
381
|
}
|
|
377
382
|
interface QueryParams extends QueryRunParams, QueryDiffParams, QueryPreviewChangeParams {}
|
|
378
|
-
declare function submitQuery(params: QueryRunParams, options: SubmitOptions | undefined, client:
|
|
379
|
-
declare function submitQueryBase(params: QueryRunParams, options: SubmitOptions | undefined, client:
|
|
380
|
-
declare function submitQueryDiff(params: QueryDiffParams, options: SubmitOptions | undefined, client:
|
|
383
|
+
declare function submitQuery(params: QueryRunParams, options: SubmitOptions | undefined, client: ApiClient): Promise<Run | Pick<Run, "run_id">>;
|
|
384
|
+
declare function submitQueryBase(params: QueryRunParams, options: SubmitOptions | undefined, client: ApiClient): Promise<Run | Pick<Run, "run_id">>;
|
|
385
|
+
declare function submitQueryDiff(params: QueryDiffParams, options: SubmitOptions | undefined, client: ApiClient): Promise<Run | Pick<Run, "run_id">>;
|
|
381
386
|
//#endregion
|
|
382
387
|
//#region src/api/profile.d.ts
|
|
383
388
|
interface ProfileDiffParams {
|
|
@@ -393,7 +398,7 @@ interface ProfileDiffViewOptions {
|
|
|
393
398
|
display_mode?: "side_by_side" | "inline";
|
|
394
399
|
columnsRenderMode?: Record<string, ColumnRenderMode>;
|
|
395
400
|
}
|
|
396
|
-
declare function submitProfileDiff(params: ProfileDiffParams, options: SubmitOptions | undefined, client:
|
|
401
|
+
declare function submitProfileDiff(params: ProfileDiffParams, options: SubmitOptions | undefined, client: ApiClient): Promise<Run | Pick<Run, "run_id">>;
|
|
397
402
|
interface TopKDiffParams {
|
|
398
403
|
model: string;
|
|
399
404
|
column_name: string;
|
|
@@ -455,7 +460,7 @@ interface RowCountDiff {
|
|
|
455
460
|
curr: number | null;
|
|
456
461
|
}
|
|
457
462
|
type RowCountDiffResult = Record<string, RowCountDiff>;
|
|
458
|
-
declare function submitRowCountDiff(params: RowCountDiffParams, options: SubmitOptions | undefined, client:
|
|
463
|
+
declare function submitRowCountDiff(params: RowCountDiffParams, options: SubmitOptions | undefined, client: ApiClient): Promise<Run | Pick<Run, "run_id">>;
|
|
459
464
|
//#endregion
|
|
460
465
|
//#region src/api/valuediff.d.ts
|
|
461
466
|
interface ValueDiffParams {
|
|
@@ -479,8 +484,8 @@ interface ValueDiffDetailViewOptions {
|
|
|
479
484
|
display_mode?: "inline" | "side_by_side";
|
|
480
485
|
columnsRenderMode?: Record<string, ColumnRenderMode>;
|
|
481
486
|
}
|
|
482
|
-
declare function submitValueDiff(params: ValueDiffParams, options: SubmitOptions | undefined, client:
|
|
483
|
-
declare function submitValueDiffDetail(params: ValueDiffParams, options: SubmitOptions | undefined, client:
|
|
487
|
+
declare function submitValueDiff(params: ValueDiffParams, options: SubmitOptions | undefined, client: ApiClient): Promise<Run | Pick<Run, "run_id">>;
|
|
488
|
+
declare function submitValueDiffDetail(params: ValueDiffParams, options: SubmitOptions | undefined, client: ApiClient): Promise<Run | Pick<Run, "run_id">>;
|
|
484
489
|
//#endregion
|
|
485
490
|
//#region src/api/types/run.d.ts
|
|
486
491
|
/**
|
|
@@ -520,6 +525,8 @@ interface BaseRun {
|
|
|
520
525
|
error?: string;
|
|
521
526
|
/** Current status of the run */
|
|
522
527
|
status?: RunStatus;
|
|
528
|
+
/** Who triggered this run: "user" | "recce_ai" */
|
|
529
|
+
triggered_by?: string;
|
|
523
530
|
}
|
|
524
531
|
/**
|
|
525
532
|
* Schema diff params - used by schema_diff runs
|
|
@@ -749,6 +756,8 @@ interface Check<PT = unknown, VO = unknown> {
|
|
|
749
756
|
is_checked?: boolean;
|
|
750
757
|
is_preset?: boolean;
|
|
751
758
|
last_run?: Run;
|
|
759
|
+
is_outdated?: boolean;
|
|
760
|
+
actor_type?: string;
|
|
752
761
|
}
|
|
753
762
|
/**
|
|
754
763
|
* Request body for creating a new check.
|
|
@@ -764,69 +773,69 @@ interface CreateCheckBody {
|
|
|
764
773
|
}
|
|
765
774
|
/**
|
|
766
775
|
* Create a simple check (no run association).
|
|
767
|
-
* @param client - Required
|
|
776
|
+
* @param client - Required API client instance
|
|
768
777
|
* @returns The created check
|
|
769
778
|
*/
|
|
770
|
-
declare function createSimpleCheck(client:
|
|
779
|
+
declare function createSimpleCheck(client: ApiClient): Promise<Check>;
|
|
771
780
|
/**
|
|
772
781
|
* Create a check from an existing run.
|
|
773
782
|
* @param runId - The ID of the run to create a check from
|
|
774
783
|
* @param viewOptions - Optional view options for the check
|
|
775
|
-
* @param client - Required
|
|
784
|
+
* @param client - Required API client instance
|
|
776
785
|
* @returns The created check
|
|
777
786
|
*/
|
|
778
|
-
declare function createCheckByRun(runId: string, viewOptions: Record<string, unknown> | undefined, client:
|
|
787
|
+
declare function createCheckByRun(runId: string, viewOptions: Record<string, unknown> | undefined, client: ApiClient): Promise<Check>;
|
|
779
788
|
/**
|
|
780
789
|
* List all checks.
|
|
781
|
-
* @param client - Required
|
|
790
|
+
* @param client - Required API client instance
|
|
782
791
|
* @returns Array of all checks
|
|
783
792
|
*/
|
|
784
|
-
declare function listChecks(client:
|
|
793
|
+
declare function listChecks(client: ApiClient): Promise<Check[]>;
|
|
785
794
|
/**
|
|
786
795
|
* Get a check by ID.
|
|
787
796
|
* @param checkId - The ID of the check to retrieve
|
|
788
|
-
* @param client - Required
|
|
797
|
+
* @param client - Required API client instance
|
|
789
798
|
* @returns The check object
|
|
790
799
|
*/
|
|
791
|
-
declare function getCheck(checkId: string, client:
|
|
800
|
+
declare function getCheck(checkId: string, client: ApiClient): Promise<Check>;
|
|
792
801
|
/**
|
|
793
802
|
* Update an existing check.
|
|
794
803
|
* @param checkId - The ID of the check to update
|
|
795
804
|
* @param payload - Partial check data to update
|
|
796
|
-
* @param client - Required
|
|
805
|
+
* @param client - Required API client instance
|
|
797
806
|
* @returns The updated check
|
|
798
807
|
*/
|
|
799
|
-
declare function updateCheck(checkId: string, payload: Partial<Check>, client:
|
|
808
|
+
declare function updateCheck(checkId: string, payload: Partial<Check>, client: ApiClient): Promise<Check>;
|
|
800
809
|
/**
|
|
801
810
|
* Delete a check.
|
|
802
811
|
* @param checkId - The ID of the check to delete
|
|
803
|
-
* @param client - Required
|
|
812
|
+
* @param client - Required API client instance
|
|
804
813
|
* @returns The deleted check ID
|
|
805
814
|
*/
|
|
806
|
-
declare function deleteCheck(checkId: string, client:
|
|
815
|
+
declare function deleteCheck(checkId: string, client: ApiClient): Promise<Pick<Check, "check_id">>;
|
|
807
816
|
/**
|
|
808
817
|
* Reorder checks.
|
|
809
818
|
* @param order - Source and destination indices
|
|
810
|
-
* @param client - Required
|
|
819
|
+
* @param client - Required API client instance
|
|
811
820
|
*/
|
|
812
821
|
declare function reorderChecks(order: {
|
|
813
822
|
source: number;
|
|
814
823
|
destination: number;
|
|
815
|
-
}, client:
|
|
824
|
+
}, client: ApiClient): Promise<void>;
|
|
816
825
|
/**
|
|
817
826
|
* Mark a check as a preset check.
|
|
818
827
|
* @param checkId - The ID of the check to mark as preset
|
|
819
|
-
* @param client - Required
|
|
828
|
+
* @param client - Required API client instance
|
|
820
829
|
*/
|
|
821
|
-
declare function markAsPresetCheck(checkId: string, client:
|
|
830
|
+
declare function markAsPresetCheck(checkId: string, client: ApiClient): Promise<void>;
|
|
822
831
|
/**
|
|
823
832
|
* Hook to fetch and cache the list of checks.
|
|
824
|
-
* Can be used outside RecceProvider with a fallback to default
|
|
833
|
+
* Can be used outside RecceProvider with a fallback to default API client.
|
|
825
834
|
*
|
|
826
835
|
* @param enabled - Whether the query should be enabled
|
|
827
836
|
* @returns TanStack Query result with checks data
|
|
828
837
|
*/
|
|
829
|
-
declare function useChecks(enabled: boolean):
|
|
838
|
+
declare function useChecks(enabled: boolean): _$_tanstack_react_query0.UseQueryResult<Check<unknown, unknown>[], Error>;
|
|
830
839
|
//#endregion
|
|
831
840
|
//#region src/api/lineagecheck.d.ts
|
|
832
841
|
interface LineageDiffViewOptions {
|
|
@@ -844,7 +853,25 @@ interface LineageDiffViewOptions {
|
|
|
844
853
|
* @param client - Axios instance for API configuration
|
|
845
854
|
* @returns Promise resolving to the created check
|
|
846
855
|
*/
|
|
847
|
-
declare function createLineageDiffCheck(viewOptions: LineageDiffViewOptions, client:
|
|
856
|
+
declare function createLineageDiffCheck(viewOptions: LineageDiffViewOptions, client: ApiClient): Promise<Check>;
|
|
857
|
+
//#endregion
|
|
858
|
+
//#region src/api/flag.d.ts
|
|
859
|
+
/**
|
|
860
|
+
* Server-side feature flags
|
|
861
|
+
*/
|
|
862
|
+
interface RecceServerFlags {
|
|
863
|
+
single_env_onboarding: boolean;
|
|
864
|
+
show_relaunch_hint: boolean;
|
|
865
|
+
disable_cll_cache: boolean;
|
|
866
|
+
}
|
|
867
|
+
/**
|
|
868
|
+
* Fetch server flags from API
|
|
869
|
+
*/
|
|
870
|
+
declare function getServerFlag(client: ApiClient): Promise<RecceServerFlags>;
|
|
871
|
+
/**
|
|
872
|
+
* Mark relaunch hint as completed
|
|
873
|
+
*/
|
|
874
|
+
declare function markRelaunchHintCompleted(client: ApiClient): Promise<void>;
|
|
848
875
|
//#endregion
|
|
849
876
|
//#region src/api/instanceInfo.d.ts
|
|
850
877
|
/**
|
|
@@ -868,6 +895,7 @@ interface RecceInstanceInfo {
|
|
|
868
895
|
session_id?: string;
|
|
869
896
|
organization_name?: string;
|
|
870
897
|
web_url?: string;
|
|
898
|
+
python_version?: string;
|
|
871
899
|
}
|
|
872
900
|
/**
|
|
873
901
|
* Fetches instance information from the Recce server.
|
|
@@ -875,24 +903,7 @@ interface RecceInstanceInfo {
|
|
|
875
903
|
* @param client - Axios instance to use for the request
|
|
876
904
|
* @returns Promise resolving to RecceInstanceInfo
|
|
877
905
|
*/
|
|
878
|
-
declare function getRecceInstanceInfo(client:
|
|
879
|
-
//#endregion
|
|
880
|
-
//#region src/api/flag.d.ts
|
|
881
|
-
/**
|
|
882
|
-
* Server-side feature flags
|
|
883
|
-
*/
|
|
884
|
-
interface RecceServerFlags {
|
|
885
|
-
single_env_onboarding: boolean;
|
|
886
|
-
show_relaunch_hint: boolean;
|
|
887
|
-
}
|
|
888
|
-
/**
|
|
889
|
-
* Fetch server flags from API
|
|
890
|
-
*/
|
|
891
|
-
declare function getServerFlag(client: AxiosInstance): Promise<RecceServerFlags>;
|
|
892
|
-
/**
|
|
893
|
-
* Mark relaunch hint as completed
|
|
894
|
-
*/
|
|
895
|
-
declare function markRelaunchHintCompleted(client: AxiosInstance): Promise<void>;
|
|
906
|
+
declare function getRecceInstanceInfo(client: ApiClient): Promise<RecceInstanceInfo>;
|
|
896
907
|
//#endregion
|
|
897
|
-
export { RowCount as $, LineageData as $t, isLineageDiffRun as A, SubmitRunTrackProps as At, isSimpleRun as B, ColumnRenderMode as Bt, Run as C, QueryRunParams as Ct, RunType as D, submitQueryDiff as Dt, RunStatus as E, submitQueryBase as Et, isQueryRun as F, searchRuns as Ft, runTypeHasRef as G, RowObjectType as Gt, isValidRunType as H, DataFrame as Ht, isRowCountDiffRun as I, submitRun as It, ValueDiffDetailViewOptions as J, ColumnLineageData as Jt, ValueDiffDetailParams as K, CllInput as Kt, isRowCountRun as L, submitRunFromCheck as Lt, isProfileRun as M, cancelRun as Mt, isQueryBaseRun as N, getRun as Nt, SchemaDiffParams as O, RunsAggregated as Ot, isQueryDiffRun as P, listRuns as Pt, submitValueDiffDetail as Q, GitInfo as Qt, isSandboxRun as R, waitRun as Rt, RUN_TYPES as S, QueryResult as St, RunProgress as T, submitQuery as Tt, isValueDiffDetailRun as U, RowData as Ut, isTopKDiffRun as V, ColumnType as Vt, isValueDiffRun as W, RowDataTypes as Wt, ValueDiffResult as X, getCll as Xt, ValueDiffParams as Y, ImpactRadiusParams as Yt, submitValueDiff as Z, CatalogMetadata as Zt, reorderChecks as _, QueryDiffParams as _t,
|
|
898
|
-
//# sourceMappingURL=
|
|
908
|
+
export { RowCount as $, LineageData as $t, isLineageDiffRun as A, SubmitRunTrackProps as At, isSimpleRun as B, ColumnRenderMode as Bt, Run as C, QueryRunParams as Ct, RunType as D, submitQueryDiff as Dt, RunStatus as E, submitQueryBase as Et, isQueryRun as F, searchRuns as Ft, runTypeHasRef as G, RowObjectType as Gt, isValidRunType as H, DataFrame as Ht, isRowCountDiffRun as I, submitRun as It, ValueDiffDetailViewOptions as J, ColumnLineageData as Jt, ValueDiffDetailParams as K, CllInput as Kt, isRowCountRun as L, submitRunFromCheck as Lt, isProfileRun as M, cancelRun as Mt, isQueryBaseRun as N, getRun as Nt, SchemaDiffParams as O, RunsAggregated as Ot, isQueryDiffRun as P, listRuns as Pt, submitValueDiffDetail as Q, GitInfo as Qt, isSandboxRun as R, waitRun as Rt, RUN_TYPES as S, QueryResult as St, RunProgress as T, submitQuery as Tt, isValueDiffDetailRun as U, RowData as Ut, isTopKDiffRun as V, ColumnType as Vt, isValueDiffRun as W, RowDataTypes as Wt, ValueDiffResult as X, getCll as Xt, ValueDiffParams as Y, ImpactRadiusParams as Yt, submitValueDiff as Z, CatalogMetadata as Zt, reorderChecks as _, QueryDiffParams as _t, getServerFlag as a, NodeColumnData as an, submitRowCountDiff as at, BaseRun as b, QueryParams as bt, createLineageDiffCheck as c, SQLMeshInfo as cn, HistogramResult as ct, createCheckByRun as d, getModelInfo as dn, ProfileDiffViewOptions as dt, LineageDataFromMetadata as en, RowCountDiff as et, createSimpleCheck as f, getServerInfo as fn, TopKDiffParams as ft, markAsPresetCheck as g, submitProfileDiff as gt, listChecks as h, TopKViewOptions as ht, RecceServerFlags as i, ModelInfoResult as in, RowCountResult as it, isProfileDiffRun as j, aggregateRuns as jt, isHistogramDiffRun as k, SubmitOptions as kt, Check as l, ServerInfoResult as ln, ProfileDiffParams as lt, getCheck as m, TopKResult as mt, ServerMode as n, LineageDiffResult as nn, RowCountDiffResult as nt, markRelaunchHintCompleted as o, NodeData as on, HistogramDiffParams as ot, deleteCheck as p, TopKDiffResult as pt, ValueDiffDetailResult as q, CllNodeData as qt, getRecceInstanceInfo as r, ManifestMetadata as rn, RowCountParams as rt, LineageDiffViewOptions as s, PullRequestInfo as sn, HistogramDiffResult as st, RecceInstanceInfo as t, LineageDiffData as tn, RowCountDiffParams as tt, CreateCheckBody as u, StateMetadata as un, ProfileDiffResult as ut, updateCheck as v, QueryDiffResult as vt, RunParamTypes as w, QueryViewOptions as wt, LineageDiffParams as x, QueryPreviewChangeParams as xt, useChecks as y, QueryDiffViewOptions as yt, isSchemaDiffRun as z, AxiosQueryParams as zt };
|
|
909
|
+
//# sourceMappingURL=instanceInfo-DNLFhkK8.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instanceInfo-DNLFhkK8.d.ts","names":[],"sources":["../src/api/info.ts","../src/api/cll.ts","../src/api/types/base.ts","../src/api/runs.ts","../src/api/adhocQuery.ts","../src/api/profile.ts","../src/api/rowcount.ts","../src/api/valuediff.ts","../src/api/types/run.ts","../src/api/checks.ts","../src/api/lineagecheck.ts","../src/api/flag.ts","../src/api/instanceInfo.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{n as e}from"./fetchClient-Bqjx8inP.js";import{createContext as t,useContext as n,useMemo as r,useRef as i}from"react";import{jsx as a}from"react/jsx-runtime";const o={rowCount:e=>[`row_count`,e],lineage:()=>[`lineage`],checks:()=>[`checks`,`list`],check:e=>[`checks`,e],checkEvents:e=>[`checks`,e,`events`],runs:()=>[`runs`],run:e=>[`runs`,e],runsAggregated:()=>[`runs_aggregated`],flag:()=>[`flag`],instanceInfo:()=>[`instance_info`],user:()=>[`user`]},s=t(null);s.displayName=`RecceApiContext`;function c(){let e=n(s);if(!e)throw Error(`useApiConfig must be used within RecceProvider`);return e}function l(){return n(s)}function u(){return c().apiClient}function d(e){let t=i(e),n=i(e?JSON.stringify(e):``),r=e?JSON.stringify(e):``;return r!==n.current&&(t.current=e,n.current=r),t.current}function f(t,n,r,i,a){return e({baseURL:t,headers:i,timeout:a,middleware:n||r?(e,t)=>{try{let i=e;if(n){let e=i.endsWith(`/api`)?i.lastIndexOf(`/api`):-1,t=i.indexOf(`/api/`);e>=0?i=i.slice(0,e)+n:t>=0&&(i=i.slice(0,t)+n+i.slice(t+4))}return r&&t.headers.set(`Authorization`,`Bearer ${r}`),{url:i,init:t}}catch(n){return console.warn(`API request middleware error, proceeding with unmodified request:`,n),{url:e,init:t}}}:void 0})}function p({children:e,config:t}){let n=`client`in t,i=n?t.client:null,o=n?t.baseUrl??``:t.baseUrl,c=n?void 0:t.timeout,l=n?void 0:t.headers,u=t.apiPrefix??``,p=t.authToken,m=d(l),h=r(()=>i||f(o,u,p,m,c??3e4),[i,o,u,p,m,c]),g=r(()=>({apiClient:h,apiPrefix:u,authToken:p,baseUrl:o}),[h,u,p,o]);return a(s.Provider,{value:g,children:e})}async function m(e){return(await e.get(`/api/flag`)).data}async function h(e){try{await e.post(`/api/relaunch-hint/completed`)}catch{}}async function g(e){return(await e.get(`/api/instance-info`)).data}function _(){return typeof window<`u`&&!!window.RECCE_DEBUG_IDLE}let v=0,y=!1,b=null;function x(e){b=e}async function S(e){if(Date.now()-v<3e3||y)return!1;try{return y=!0,await e.post(`/api/keep-alive`),v=Date.now(),b&&b(v),!0}catch(e){if(_()){let t=e instanceof Error?e.message:String(e);console.log(`[Keep-Alive] Failed to send`,{error:t,timestamp:new Date().toISOString(),willRetryOnNextActivity:!0})}return!1}finally{y=!1}}function C(){return v}function w(){v=0,y=!1,b=null}export{g as a,p as c,l as d,o as f,x as i,u as l,w as n,m as o,S as r,h as s,C as t,c as u};
|
|
3
|
+
//# sourceMappingURL=keepAlive-Dj0q3fC9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keepAlive-Dj0q3fC9.js","names":[],"sources":["../src/api/cacheKeys.ts","../src/providers/contexts/ApiContext.tsx","../src/api/flag.ts","../src/api/instanceInfo.ts","../src/api/keepAlive.ts"],"sourcesContent":["\"use client\";\n\n/**\n * Cache keys for TanStack Query.\n * Provides consistent query keys for API caching.\n */\nexport const cacheKeys = {\n rowCount: (model: string) => [\"row_count\", model],\n lineage: () => [\"lineage\"],\n checks: () => [\"checks\", \"list\"],\n check: (checkId: string) => [\"checks\", checkId],\n checkEvents: (checkId: string) => [\"checks\", checkId, \"events\"],\n runs: () => [\"runs\"],\n run: (runId: string) => [\"runs\", runId],\n runsAggregated: () => [\"runs_aggregated\"],\n flag: () => [\"flag\"],\n instanceInfo: () => [\"instance_info\"],\n user: () => [\"user\"],\n};\n","\"use client\";\n\nimport {\n createContext,\n type ReactNode,\n useContext,\n useMemo,\n useRef,\n} from \"react\";\nimport { type ApiClient, createFetchClient } from \"../../lib/fetchClient\";\n\n/**\n * API Configuration\n *\n * baseUrl: Base URL for all requests\n * apiPrefix: Replaces /api in URLs (for cloud mode sessions)\n * authToken: Bearer token for Authorization header\n * headers: Additional headers\n * timeout: Request timeout in ms\n */\n/**\n * API configuration inputs for {@link ApiProvider}.\n */\ninterface ApiConfig {\n baseUrl: string;\n apiPrefix?: string;\n authToken?: string;\n headers?: Record<string, string>;\n timeout?: number;\n}\n\n/**\n * Resolved API context values exposed by {@link useApiConfig}.\n */\ninterface ApiContextValue {\n apiClient: ApiClient;\n apiPrefix: string;\n authToken?: string;\n baseUrl: string;\n}\n\nconst ApiContext = createContext<ApiContextValue | null>(null);\nApiContext.displayName = \"RecceApiContext\";\n\n/**\n * Access the API configuration, including the configured API client.\n *\n * @returns The API context values (client, baseUrl, apiPrefix, authToken).\n * @throws Error if used outside {@link RecceProvider}.\n */\nexport function useApiConfig(): ApiContextValue {\n const context = useContext(ApiContext);\n if (!context) {\n throw new Error(\"useApiConfig must be used within RecceProvider\");\n }\n return context;\n}\n\n/**\n * Non-throwing version of {@link useApiConfig}.\n *\n * @returns The API context values, or null if outside {@link RecceProvider}.\n */\nexport function useApiConfigOptional(): ApiContextValue | null {\n return useContext(ApiContext);\n}\n\n/**\n * Convenience hook for the configured API client.\n *\n * @returns ApiClient configured with API prefix and auth token.\n * @throws Error if used outside {@link RecceProvider}.\n */\nexport function useApiClient() {\n return useApiConfig().apiClient;\n}\n\n/**\n * Custom client config that allows passing a pre-configured API client\n * along with the API configuration values for context.\n */\n/**\n * Custom client configuration for {@link ApiProvider}.\n */\ninterface CustomClientConfig {\n client: ApiClient;\n apiPrefix?: string;\n authToken?: string;\n baseUrl?: string;\n}\n\n/**\n * Props for {@link ApiProvider}.\n */\ninterface ApiProviderProps {\n children: ReactNode;\n config: ApiConfig | CustomClientConfig;\n}\n\n// Hook to memoize headers by value (JSON comparison) instead of reference\nfunction useStableHeaders(\n headers: Record<string, string> | undefined,\n): Record<string, string> | undefined {\n const headersRef = useRef(headers);\n const keyRef = useRef(headers ? JSON.stringify(headers) : \"\");\n\n const currentKey = headers ? JSON.stringify(headers) : \"\";\n if (currentKey !== keyRef.current) {\n headersRef.current = headers;\n keyRef.current = currentKey;\n }\n\n return headersRef.current;\n}\n\n/**\n * Creates an ApiClient configured with the given API config.\n *\n * Uses middleware to:\n * 1. Replace /api prefix with the configured apiPrefix (if provided)\n * 2. Add Authorization header with Bearer token (if authToken provided)\n */\nfunction createApiClient(\n baseUrl: string,\n apiPrefix: string,\n authToken: string | undefined,\n headers: Record<string, string> | undefined,\n timeout: number,\n): ApiClient {\n return createFetchClient({\n baseURL: baseUrl,\n headers: headers,\n timeout: timeout,\n middleware:\n apiPrefix || authToken\n ? (url, init) => {\n try {\n let resolvedUrl = url;\n\n // Replace /api prefix with configured apiPrefix (only if apiPrefix is non-empty).\n // Uses string ops instead of new URL() to handle both absolute URLs\n // (cloud mode with baseURL) and relative paths (OSS mode with baseURL=\"\").\n if (apiPrefix) {\n // Find the /api path segment — could be at start of path (relative)\n // or after the origin (absolute). We match both patterns.\n const apiExact = resolvedUrl.endsWith(\"/api\")\n ? resolvedUrl.lastIndexOf(\"/api\")\n : -1;\n const apiSlash = resolvedUrl.indexOf(\"/api/\");\n\n if (apiExact >= 0) {\n // Exact \"/api\" at end of URL\n resolvedUrl = resolvedUrl.slice(0, apiExact) + apiPrefix;\n } else if (apiSlash >= 0) {\n // \"/api/...\" — replace /api with apiPrefix, keep the rest\n resolvedUrl =\n resolvedUrl.slice(0, apiSlash) +\n apiPrefix +\n resolvedUrl.slice(apiSlash + 4);\n }\n }\n\n // Add auth header if token is provided\n if (authToken) {\n init.headers.set(\"Authorization\", `Bearer ${authToken}`);\n }\n\n return { url: resolvedUrl, init };\n } catch (error) {\n // If anything goes wrong in the middleware, fall back to the original config\n // to avoid breaking all API requests.\n console.warn(\n \"API request middleware error, proceeding with unmodified request:\",\n error,\n );\n return { url, init };\n }\n }\n : undefined,\n });\n}\n\n/**\n * Provides API configuration and an API client to the subtree.\n */\nexport function ApiProvider({ children, config }: ApiProviderProps) {\n // Extract primitive values to stabilize dependency - prevents client recreation\n // when parent re-renders with new object reference but same values\n const isCustomClient = \"client\" in config;\n const customClient = isCustomClient ? config.client : null;\n const baseUrl = isCustomClient ? (config.baseUrl ?? \"\") : config.baseUrl;\n const timeout = !isCustomClient ? config.timeout : undefined;\n const headersFromConfig = !isCustomClient ? config.headers : undefined;\n const apiPrefix = config.apiPrefix ?? \"\";\n const authToken = config.authToken;\n\n // Use stable headers reference (compared by value, not reference)\n const headers = useStableHeaders(headersFromConfig);\n\n const client = useMemo(() => {\n if (customClient) {\n return customClient;\n }\n return createApiClient(\n baseUrl,\n apiPrefix,\n authToken,\n headers,\n timeout ?? 30000,\n );\n }, [customClient, baseUrl, apiPrefix, authToken, headers, timeout]);\n\n const contextValue: ApiContextValue = useMemo(\n () => ({\n apiClient: client,\n apiPrefix,\n authToken,\n baseUrl,\n }),\n [client, apiPrefix, authToken, baseUrl],\n );\n\n return (\n <ApiContext.Provider value={contextValue}>{children}</ApiContext.Provider>\n );\n}\n","import type { ApiClient, ApiResponse } from \"../lib/fetchClient\";\n\n/**\n * Server-side feature flags\n */\nexport interface RecceServerFlags {\n single_env_onboarding: boolean;\n show_relaunch_hint: boolean;\n disable_cll_cache: boolean;\n}\n\n/**\n * Fetch server flags from API\n */\nexport async function getServerFlag(\n client: ApiClient,\n): Promise<RecceServerFlags> {\n const response = await client.get<never, ApiResponse<RecceServerFlags>>(\n \"/api/flag\",\n );\n return response.data;\n}\n\n/**\n * Mark relaunch hint as completed\n */\nexport async function markRelaunchHintCompleted(\n client: ApiClient,\n): Promise<void> {\n try {\n await client.post<never, ApiResponse<never>>(\n \"/api/relaunch-hint/completed\",\n );\n } catch {\n // Skip any errors\n }\n}\n","\"use client\";\n\nimport type { ApiClient, ApiResponse } from \"../lib/fetchClient\";\n\n/**\n * Server mode for the Recce instance.\n * - \"server\": Full read-write mode\n * - \"preview\": Metadata only mode (no database queries)\n * - \"read-only\": Read-only mode (no modifications allowed)\n */\nexport type ServerMode = \"server\" | \"preview\" | \"read-only\";\n\n/**\n * Information about the Recce instance returned from the server.\n */\nexport interface RecceInstanceInfo {\n server_mode: ServerMode;\n single_env: boolean;\n authed: boolean;\n cloud_instance: boolean;\n lifetime_expired_at?: Date;\n idle_timeout?: number;\n share_url?: string;\n session_id?: string;\n organization_name?: string;\n web_url?: string;\n python_version?: string;\n}\n\n/**\n * Fetches instance information from the Recce server.\n *\n * @param client - Axios instance to use for the request\n * @returns Promise resolving to RecceInstanceInfo\n */\nexport async function getRecceInstanceInfo(\n client: ApiClient,\n): Promise<RecceInstanceInfo> {\n return (\n await client.get<never, ApiResponse<RecceInstanceInfo>>(\n \"/api/instance-info\",\n )\n ).data;\n}\n","\"use client\";\n\nimport type { ApiClient } from \"../lib/fetchClient\";\n\n/**\n * Check if debug logging is enabled via window.RECCE_DEBUG_IDLE\n */\nfunction isDebugEnabled(): boolean {\n // biome-ignore lint/suspicious/noExplicitAny: window flag for debug logging\n return typeof window !== \"undefined\" && !!(window as any).RECCE_DEBUG_IDLE;\n}\n\n/**\n * Minimum interval between keep-alive API calls (3 seconds)\n * This prevents excessive API calls while still maintaining responsive idle detection\n */\nconst MIN_KEEP_ALIVE_INTERVAL_MS = 3 * 1000;\n\n/**\n * State for API-layer throttling\n * - lastKeepAliveTime: timestamp of last SUCCESSFUL keep-alive sent to server\n * - isSending: lock to prevent concurrent API calls\n */\nlet lastKeepAliveTime = 0;\nlet isSending = false;\n\n/** Callback to notify listeners when keep-alive is successfully sent */\ntype KeepAliveCallback = (timestamp: number) => void;\nlet onKeepAliveSuccess: KeepAliveCallback | null = null;\n\n/**\n * Register a callback to be notified when keep-alive is successfully sent\n * Used by IdleTimeoutContext to track server sync time\n */\nexport function setKeepAliveCallback(callback: KeepAliveCallback | null): void {\n onKeepAliveSuccess = callback;\n}\n\n/**\n * Send a keep-alive signal to the server to reset the idle timeout timer.\n * This prevents the server from shutting down due to inactivity.\n *\n * Includes built-in throttling at the API layer:\n * - Minimum 3 seconds between API calls\n * - Prevents concurrent API calls with a lock\n *\n * @param client - API client instance (required)\n * @returns true if keep-alive was sent, false if throttled/skipped\n */\nexport async function sendKeepAlive(client: ApiClient): Promise<boolean> {\n const now = Date.now();\n const elapsed = now - lastKeepAliveTime;\n\n // Throttle: skip if called within minimum interval\n if (elapsed < MIN_KEEP_ALIVE_INTERVAL_MS) {\n return false;\n }\n\n // Prevent concurrent sends\n if (isSending) {\n return false;\n }\n\n try {\n // Acquire lock inside try to ensure finally always releases it\n isSending = true;\n await client.post(\"/api/keep-alive\");\n // Update timestamp only on SUCCESS\n lastKeepAliveTime = Date.now();\n // Notify listeners\n if (onKeepAliveSuccess) {\n onKeepAliveSuccess(lastKeepAliveTime);\n }\n return true;\n } catch (error) {\n // Silent fail - don't disrupt user experience if keep-alive fails\n if (isDebugEnabled()) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n console.log(\"[Keep-Alive] Failed to send\", {\n error: errorMessage,\n timestamp: new Date().toISOString(),\n willRetryOnNextActivity: true,\n });\n }\n return false;\n } finally {\n isSending = false;\n }\n}\n\n/**\n * Get the last successful keep-alive timestamp\n * This represents the last time the server confirmed it received our keep-alive\n */\nexport function getLastKeepAliveTime(): number {\n return lastKeepAliveTime;\n}\n\n/**\n * Reset all module state (for testing purposes)\n */\nexport function resetKeepAliveState(): void {\n lastKeepAliveTime = 0;\n isSending = false;\n onKeepAliveSuccess = null;\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
import { QueryClient } from "@tanstack/react-query";
|
|
3
3
|
|
|
4
|
-
//#region src/lib/api/
|
|
4
|
+
//#region src/lib/api/queryClient.d.ts
|
|
5
5
|
declare const reactQueryClient: QueryClient;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { reactQueryClient };
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=queryClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryClient.d.ts","names":[],"sources":["../../../src/lib/api/queryClient.ts"],"mappings":";;;;cAEa,gBAAA,EAAgB,WAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryClient.js","names":[],"sources":["../../../src/lib/api/queryClient.ts"],"sourcesContent":["import { QueryClient } from \"@tanstack/react-query\";\n\nexport const reactQueryClient = new QueryClient();\n"],"mappings":";oDAEA,MAAa,EAAmB,IAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track.d.ts","names":[],"sources":["../../../src/lib/api/track.ts"],"
|
|
1
|
+
{"version":3,"file":"track.d.ts","names":[],"sources":["../../../src/lib/api/track.ts"],"mappings":";;iBAuBgB,SAAA,CAAA;AAAA,UAoCN,oBAAA;EACR,IAAA;EAMA,QAAA;AAAA;AAAA,iBAGc,qBAAA,CAAsB,KAAA,EAAO,oBAAA;AAAA,UAInC,kBAAA;EACR,IAAA;AAAA;AAAA,iBAGc,kBAAA,CAAmB,KAAA,EAAO,kBAAA;AAAA,UAIhC,kBAAA;EACR,MAAA;EACA,IAAA;EACA,MAAA;AAAA;AAAA,iBAGc,kBAAA,CAAmB,KAAA,EAAO,kBAAA;AAAA,UAIhC,0BAAA;EACR,QAAA;EACA,IAAA;AAAA;AAAA,iBAGc,0BAAA,CAA2B,KAAA,EAAO,0BAAA;AAAA,UAIxC,sBAAA;EACR,MAAA;EAKA,IAAA;EACA,IAAA;AAAA;AAAA,iBAGc,sBAAA,CAAuB,KAAA,EAAO,sBAAA;AAAA,iBAI9B,0CAAA,CAAA;AAAA,UAIN,uBAAA;EACR,MAAA;EACA,MAAA;AAAA;AAAA,iBAGc,uBAAA,CAAwB,KAAA,EAAO,uBAAA;AAAA,UAIrC,eAAA;EACR,IAAA;AAAA;AAAA,iBAGc,eAAA,CAAgB,KAAA,EAAO,eAAA;AAAA,UAI7B,gBAAA;EACR,IAAA;AAAA;AAAA,iBAGc,gBAAA,CAAiB,KAAA,EAAO,gBAAA;AAAA,UAI9B,oBAAA;EACR,IAAA;EACA,IAAA;AAAA;AAAA,iBAGc,oBAAA,CAAqB,KAAA,EAAO,oBAAA;AAAA,UAIlC,aAAA;EACR,IAAA;EACA,EAAA;AAAA;AAAA,iBAGc,eAAA,CAAgB,KAAA,EAAO,aAAA;AAAA,UAItB,sBAAA;EACf,UAAA;EACA,SAAA;EACA,qBAAA;EACA,iBAAA;EACA,kBAAA;EAAA,CACC,MAAA;AAAA;AAAA,iBAGa,sBAAA,CAAuB,KAAA,EAAO,sBAAA;AAAA,UAI7B,sBAAA;EACf,WAAA;EACA,YAAA;EACA,YAAA;EACA,WAAA;EAEA,IAAA;IACE,YAAA;IACA,WAAA;IACA,SAAA;IACA,OAAA;EAAA;EAEF,OAAA;IACE,YAAA;IACA,WAAA;IACA,SAAA;IACA,OAAA;EAAA;EAEF,aAAA;AAAA;AAAA,iBAGc,sBAAA,CAAuB,KAAA,EAAO,sBAAA;AAAA,cAKjC,cAAA;EAAA;;;;;;;;;;;cAcA,cAAA;EAAA;;;;;;;;KAUD,iBAAA,WACF,cAAA,eAA6B,cAAA;AAAA,KAC3B,iBAAA,WACF,cAAA,eAA6B,cAAA;AAAA,UAE7B,kBAAA;EACR,MAAA,EAAQ,iBAAA;EACR,MAAA,EAAQ,iBAAA;EACR,UAAA;AAAA;AAAA,iBAGc,kBAAA,CAAmB,KAAA,EAAO,kBAAA;AAAA,cAK7B,kBAAA;EAAA,SAGH,OAAA;EAAA,SAAA,MAAA;AAAA;AAAA,KAEE,oBAAA,WACF,kBAAA,eAAiC,kBAAA;AAAA,UAEjC,sBAAA;EACR,MAAA,EAAQ,iBAAA;EACR,KAAA,EAAO,oBAAA;AAAA;AAAA,iBAGO,sBAAA,CAAuB,KAAA,EAAO,sBAAA;AAAA,iBAK9B,eAAA,CAAgB,IAAA,WAAe,IAAA,IAAQ,iBAAA;AAAA,cAK1C,wBAAA;EAAA;;;;;KAOD,0BAAA,WACF,wBAAA,eAAuC,wBAAA;AAAA,UAEvC,qBAAA;EACR,MAAA,EAAQ,0BAAA;EACR,UAAA;AAAA;AAAA,iBAGc,qBAAA,CAAsB,KAAA,EAAO,qBAAA"}
|
package/dist/lib/api/track.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{
|
|
2
|
+
import{initAll as e,track as t}from"@amplitude/unified";function n(e,n,i){return r||console.log(`[Tracking]`,e,n,i),t(e,n,i)}let r=!1;function i(){function t(e){let t=document.cookie.match(`(^|;)\\s*`+e+`\\s*=\\s*([^;]+)`);return t?t.pop():``}let n=t(`recce_user_id`),i=process.env.AMPLITUDE_API_KEY;if(n&&i)try{e(i,{analytics:{userId:n,autocapture:!0},sessionReplay:{sampleRate:1}}),r=!0}catch(e){console.error(e)}r||console.log(`[Tracking] Amplitude not initialized (missing API key or user ID). Events will be logged to console instead.`)}function a(e){n(`[Web] multi_nodes_action`,e)}function o(e){n(`[Web] history_action`,e)}function s(e){n(`[Experiment] preview_change`,e)}function c(e){n(`[Experiment] preview_change`,e)}function l(e){n(`[Experiment] single_environment`,e)}function u(){return!1}function d(e){n(`[Web] column_level_lineage`,e)}function f(e){n(`[Web] share_state`,e)}function p(e){n(`[Web] state_action`,e)}function m(e){n(`[Click] copy_to_clipboard`,e)}function h(e){n(`[Web] navigation_change`,e)}function g(e){n(`[Web] lineage_view_render`,e)}function _(e){n(`[Web] environment_config`,e)}const v={ROW_COUNT:`row_count`,ROW_COUNT_DIFF:`row_count_diff`,PROFILE:`profile`,PROFILE_DIFF:`profile_diff`,VALUE_DIFF:`value_diff`,SCHEMA_DIFF:`schema_diff`,LINEAGE_DIFF:`lineage_diff`,QUERY:`query`,HISTOGRAM_DIFF:`histogram_diff`,TOP_K_DIFF:`top_k_diff`},y={LINEAGE_VIEW_TOP_BAR:`lineage_view_top_bar`,LINEAGE_VIEW_CONTEXT_MENU:`lineage_view_context_menu`,NODE_KEBAB_MENU:`node_kebab_menu`,NODE_SIDEBAR_SINGLE_ENV:`node_sidebar_single_env`,NODE_SIDEBAR_MULTI_ENV:`node_sidebar_multi_env`,SCHEMA_ROW_COUNT_BUTTON:`schema_row_count_button`,SCHEMA_COLUMN_MENU:`schema_column_menu`};function b(e){n(`[Web] explore_action`,e)}const x={EXECUTE:`execute`,CANCEL:`cancel`};function S(e){n(`[Web] explore_action_form`,e)}function C(e){return Object.values(v).includes(e)}const w={SELECT_PARENT_NODES:`select_parent_nodes`,SELECT_CHILD_NODES:`select_child_nodes`,SELECT_ALL_UPSTREAM:`select_all_upstream`,SELECT_ALL_DOWNSTREAM:`select_all_downstream`};function T(e){n(`[Web] lineage_selection`,e)}export{v as EXPLORE_ACTION,x as EXPLORE_FORM_EVENT,y as EXPLORE_SOURCE,w as LINEAGE_SELECTION_ACTION,u as getExperimentTrackingBreakingChangeEnabled,C as isExploreAction,d as trackColumnLevelLineage,m as trackCopyToClipboard,_ as trackEnvironmentConfig,b as trackExploreAction,S as trackExploreActionForm,o as trackHistoryAction,i as trackInit,T as trackLineageSelection,g as trackLineageViewRender,a as trackMultiNodesAction,h as trackNavigation,s as trackPreviewChange,c as trackPreviewChangeFeedback,f as trackShareState,l as trackSingleEnvironment,p as trackStateAction};
|
|
3
|
+
//# sourceMappingURL=track.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track.js","names":["track","trk"],"sources":["../../../src/lib/api/track.ts"],"sourcesContent":["import {\n AmplitudeReturn,\n BaseEvent,\n EventOptions,\n Result,\n} from \"@amplitude/analytics-core\";\nimport { initAll, track as trk } from \"@amplitude/unified\";\n\nfunction track(\n eventInput: string | BaseEvent,\n // biome-ignore lint/suspicious/noExplicitAny: Amplitude library uses any for event properties\n eventProperties?: Record<string, any> | undefined,\n eventOptions?: EventOptions | undefined,\n): AmplitudeReturn<Result> {\n // If Amplitude isn't initialized, log to console instead (but not during tests)\n if (!amplitudeInitialized && process.env.NODE_ENV !== \"test\") {\n console.log(\"[Tracking]\", eventInput, eventProperties, eventOptions);\n }\n return trk(eventInput, eventProperties, eventOptions);\n}\n\nlet amplitudeInitialized = false;\n\nexport function trackInit() {\n function getCookie(key: string) {\n const b = document.cookie.match(\"(^|;)\\\\s*\" + key + \"\\\\s*=\\\\s*([^;]+)\");\n return b ? b.pop() : \"\";\n }\n\n const userId =\n process.env.NODE_ENV === \"development\"\n ? \"web_dev\"\n : getCookie(\"recce_user_id\");\n const apiKey = process.env.AMPLITUDE_API_KEY;\n if (userId && apiKey) {\n try {\n void initAll(apiKey, {\n analytics: {\n userId,\n autocapture: true,\n },\n sessionReplay: {\n sampleRate: 1,\n },\n });\n amplitudeInitialized = true;\n } catch (e) {\n console.error(e);\n }\n }\n\n // Log when Amplitude is not initialized (for development/debugging)\n if (!amplitudeInitialized) {\n console.log(\n \"[Tracking] Amplitude not initialized (missing API key or user ID). Events will be logged to console instead.\",\n );\n }\n}\n\ninterface MultiNodeActionProps {\n type:\n | \"row_count\"\n | \"row_count_diff\"\n | \"value_diff\"\n | \"schema_diff\"\n | \"lineage_diff\";\n selected: \"single\" | \"multi\" | \"none\";\n}\n\nexport function trackMultiNodesAction(props: MultiNodeActionProps) {\n track(\"[Web] multi_nodes_action\", props);\n}\n\ninterface HistoryActionProps {\n name: \"show\" | \"hide\" | \"click_run\" | \"add_to_checklist\" | \"go_to_check\";\n}\n\nexport function trackHistoryAction(props: HistoryActionProps) {\n track(\"[Web] history_action\", props);\n}\n\ninterface PreviewChangeProps {\n action: \"explore\" | \"run\" | \"close\";\n node?: string;\n status?: \"success\" | \"failure\";\n}\n\nexport function trackPreviewChange(props: PreviewChangeProps) {\n track(\"[Experiment] preview_change\", props);\n}\n\ninterface PreviewChangeFeedbackProps {\n feedback: \"like\" | \"dislike\" | \"form\";\n node?: string;\n}\n\nexport function trackPreviewChangeFeedback(props: PreviewChangeFeedbackProps) {\n track(\"[Experiment] preview_change\", props);\n}\n\ninterface SingleEnvironmentProps {\n action:\n | \"onboarding\"\n | \"external_link\"\n | \"preview_changes\"\n | `target_base_added`;\n from?: \"onboarding\" | \"preview_changes\";\n node?: string;\n}\n\nexport function trackSingleEnvironment(props: SingleEnvironmentProps) {\n track(\"[Experiment] single_environment\", props);\n}\n\nexport function getExperimentTrackingBreakingChangeEnabled() {\n return false;\n}\n\ninterface ColumnLevelLineageProps {\n action: \"view\";\n source: \"schema_column\" | \"changed_column\" | \"cll_column\";\n}\n\nexport function trackColumnLevelLineage(props: ColumnLevelLineageProps) {\n track(\"[Web] column_level_lineage\", props);\n}\n\ninterface ShareStateProps {\n name: \"enable\" | \"create\" | \"copy\";\n}\n\nexport function trackShareState(props: ShareStateProps) {\n track(\"[Web] share_state\", props);\n}\n\ninterface StateActionProps {\n name: \"import\" | \"export\";\n}\n\nexport function trackStateAction(props: StateActionProps) {\n track(\"[Web] state_action\", props);\n}\n\ninterface CopyToClipboardProps {\n from: \"run\" | \"check\" | \"lineage_view\";\n type: string;\n}\n\nexport function trackCopyToClipboard(props: CopyToClipboardProps) {\n track(\"[Click] copy_to_clipboard\", props);\n}\n\ninterface TrackNavProps {\n from: string;\n to: string;\n}\n\nexport function trackNavigation(props: TrackNavProps) {\n track(\"[Web] navigation_change\", props);\n}\n\nexport interface LineageViewRenderProps {\n node_count: number;\n view_mode: string;\n impact_radius_enabled: boolean;\n cll_column_active?: boolean;\n right_sidebar_open: boolean;\n [status: string]: number | string | boolean | undefined;\n}\n\nexport function trackLineageViewRender(props: LineageViewRenderProps) {\n track(\"[Web] lineage_view_render\", props);\n}\n\nexport interface EnvironmentConfigProps {\n review_mode: boolean;\n adapter_type: string | null;\n has_git_info: boolean;\n has_pr_info: boolean;\n // Adapter-specific (shape varies by adapter_type)\n base?: {\n schema_count?: number;\n dbt_version?: string | null;\n timestamp?: string | null;\n has_env?: boolean;\n };\n current?: {\n schema_count?: number;\n dbt_version?: string | null;\n timestamp?: string | null;\n has_env?: boolean;\n };\n schemas_match?: boolean;\n}\n\nexport function trackEnvironmentConfig(props: EnvironmentConfigProps) {\n track(\"[Web] environment_config\", props);\n}\n\n// Explore action types\nexport const EXPLORE_ACTION = {\n ROW_COUNT: \"row_count\",\n ROW_COUNT_DIFF: \"row_count_diff\",\n PROFILE: \"profile\",\n PROFILE_DIFF: \"profile_diff\",\n VALUE_DIFF: \"value_diff\",\n SCHEMA_DIFF: \"schema_diff\",\n LINEAGE_DIFF: \"lineage_diff\",\n QUERY: \"query\",\n HISTOGRAM_DIFF: \"histogram_diff\",\n TOP_K_DIFF: \"top_k_diff\",\n} as const;\n\n// Explore action sources\nexport const EXPLORE_SOURCE = {\n LINEAGE_VIEW_TOP_BAR: \"lineage_view_top_bar\",\n LINEAGE_VIEW_CONTEXT_MENU: \"lineage_view_context_menu\",\n NODE_KEBAB_MENU: \"node_kebab_menu\",\n NODE_SIDEBAR_SINGLE_ENV: \"node_sidebar_single_env\",\n NODE_SIDEBAR_MULTI_ENV: \"node_sidebar_multi_env\",\n SCHEMA_ROW_COUNT_BUTTON: \"schema_row_count_button\",\n SCHEMA_COLUMN_MENU: \"schema_column_menu\",\n} as const;\n\nexport type ExploreActionType =\n (typeof EXPLORE_ACTION)[keyof typeof EXPLORE_ACTION];\nexport type ExploreSourceType =\n (typeof EXPLORE_SOURCE)[keyof typeof EXPLORE_SOURCE];\n\ninterface ExploreActionProps {\n action: ExploreActionType;\n source: ExploreSourceType;\n node_count?: number;\n}\n\nexport function trackExploreAction(props: ExploreActionProps) {\n track(\"[Web] explore_action\", props);\n}\n\n// Explore action form events\nexport const EXPLORE_FORM_EVENT = {\n EXECUTE: \"execute\",\n CANCEL: \"cancel\",\n} as const;\n\nexport type ExploreFormEventType =\n (typeof EXPLORE_FORM_EVENT)[keyof typeof EXPLORE_FORM_EVENT];\n\ninterface ExploreActionFormProps {\n action: ExploreActionType;\n event: ExploreFormEventType;\n}\n\nexport function trackExploreActionForm(props: ExploreActionFormProps) {\n track(\"[Web] explore_action_form\", props);\n}\n\n// Helper to check if a run type is an explore action\nexport function isExploreAction(type: string): type is ExploreActionType {\n return Object.values(EXPLORE_ACTION).includes(type as ExploreActionType);\n}\n\n// Lineage selection action types\nexport const LINEAGE_SELECTION_ACTION = {\n SELECT_PARENT_NODES: \"select_parent_nodes\",\n SELECT_CHILD_NODES: \"select_child_nodes\",\n SELECT_ALL_UPSTREAM: \"select_all_upstream\",\n SELECT_ALL_DOWNSTREAM: \"select_all_downstream\",\n} as const;\n\nexport type LineageSelectionActionType =\n (typeof LINEAGE_SELECTION_ACTION)[keyof typeof LINEAGE_SELECTION_ACTION];\n\ninterface LineageSelectionProps {\n action: LineageSelectionActionType;\n node_count?: number;\n}\n\nexport function trackLineageSelection(props: LineageSelectionProps) {\n track(\"[Web] lineage_selection\", props);\n}\n"],"mappings":";wDAQA,SAASA,EACP,EAEA,EACA,EACyB,CAKzB,OAHK,GACH,QAAQ,IAAI,aAAc,EAAY,EAAiB,EAAa,CAE/DC,EAAI,EAAY,EAAiB,EAAa,CAGvD,IAAI,EAAuB,GAE3B,SAAgB,GAAY,CAC1B,SAAS,EAAU,EAAa,CAC9B,IAAM,EAAI,SAAS,OAAO,MAAM,YAAc,EAAM,mBAAmB,CACvE,OAAO,EAAI,EAAE,KAAK,CAAG,GAGvB,IAAM,EAGA,EAAU,gBAAgB,CAC1B,EAAS,QAAQ,IAAI,kBAC3B,GAAI,GAAU,EACZ,GAAI,CACG,EAAQ,EAAQ,CACnB,UAAW,CACT,SACA,YAAa,GACd,CACD,cAAe,CACb,WAAY,EACb,CACF,CAAC,CACF,EAAuB,SAChB,EAAG,CACV,QAAQ,MAAM,EAAE,CAKf,GACH,QAAQ,IACN,+GACD,CAcL,SAAgB,EAAsB,EAA6B,CACjE,EAAM,2BAA4B,EAAM,CAO1C,SAAgB,EAAmB,EAA2B,CAC5D,EAAM,uBAAwB,EAAM,CAStC,SAAgB,EAAmB,EAA2B,CAC5D,EAAM,8BAA+B,EAAM,CAQ7C,SAAgB,EAA2B,EAAmC,CAC5E,EAAM,8BAA+B,EAAM,CAa7C,SAAgB,EAAuB,EAA+B,CACpE,EAAM,kCAAmC,EAAM,CAGjD,SAAgB,GAA6C,CAC3D,MAAO,GAQT,SAAgB,EAAwB,EAAgC,CACtE,EAAM,6BAA8B,EAAM,CAO5C,SAAgB,EAAgB,EAAwB,CACtD,EAAM,oBAAqB,EAAM,CAOnC,SAAgB,EAAiB,EAAyB,CACxD,EAAM,qBAAsB,EAAM,CAQpC,SAAgB,EAAqB,EAA6B,CAChE,EAAM,4BAA6B,EAAM,CAQ3C,SAAgB,EAAgB,EAAsB,CACpD,EAAM,0BAA2B,EAAM,CAYzC,SAAgB,EAAuB,EAA+B,CACpE,EAAM,4BAA6B,EAAM,CAwB3C,SAAgB,EAAuB,EAA+B,CACpE,EAAM,2BAA4B,EAAM,CAI1C,MAAa,EAAiB,CAC5B,UAAW,YACX,eAAgB,iBAChB,QAAS,UACT,aAAc,eACd,WAAY,aACZ,YAAa,cACb,aAAc,eACd,MAAO,QACP,eAAgB,iBAChB,WAAY,aACb,CAGY,EAAiB,CAC5B,qBAAsB,uBACtB,0BAA2B,4BAC3B,gBAAiB,kBACjB,wBAAyB,0BACzB,uBAAwB,yBACxB,wBAAyB,0BACzB,mBAAoB,qBACrB,CAaD,SAAgB,EAAmB,EAA2B,CAC5D,EAAM,uBAAwB,EAAM,CAItC,MAAa,EAAqB,CAChC,QAAS,UACT,OAAQ,SACT,CAUD,SAAgB,EAAuB,EAA+B,CACpE,EAAM,4BAA6B,EAAM,CAI3C,SAAgB,EAAgB,EAAyC,CACvE,OAAO,OAAO,OAAO,EAAe,CAAC,SAAS,EAA0B,CAI1E,MAAa,EAA2B,CACtC,oBAAqB,sBACrB,mBAAoB,qBACpB,oBAAqB,sBACrB,sBAAuB,wBACxB,CAUD,SAAgB,EAAsB,EAA8B,CAClE,EAAM,0BAA2B,EAAM"}
|
package/dist/lib/api/user.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
2
|
+
import { t as ApiClient } from "../../fetchClient-CTnJ39EA.js";
|
|
3
3
|
|
|
4
4
|
//#region src/lib/api/user.d.ts
|
|
5
5
|
interface User {
|
|
@@ -9,7 +9,7 @@ interface User {
|
|
|
9
9
|
email: string;
|
|
10
10
|
onboarding_state: string;
|
|
11
11
|
}
|
|
12
|
-
declare function fetchUser(client?:
|
|
12
|
+
declare function fetchUser(client?: ApiClient): Promise<User>;
|
|
13
13
|
declare function fetchGitHubAvatar(userId: string): Promise<string | null>;
|
|
14
14
|
//#endregion
|
|
15
15
|
export { User, fetchGitHubAvatar, fetchUser };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","names":[],"sources":["../../../src/lib/api/user.ts"],"
|
|
1
|
+
{"version":3,"file":"user.d.ts","names":[],"sources":["../../../src/lib/api/user.ts"],"mappings":";;;;UAMiB,IAAA;EACf,EAAA;EACA,KAAA;EACA,UAAA;EACA,KAAA;EACA,gBAAA;AAAA;AAAA,iBAYoB,SAAA,CACpB,MAAA,GAAQ,SAAA,GACP,OAAA,CAAQ,IAAA;AAAA,iBAYW,iBAAA,CACpB,MAAA,WACC,OAAA"}
|
package/dist/lib/api/user.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{n as e
|
|
2
|
+
import{n as e}from"../../fetchClient-Bqjx8inP.js";const t=e({baseURL:``}),n=e({baseURL:`https://api.github.com`});async function r(e=t){try{return(await e.get(`/api/users`)).data}catch(e){throw console.error(`Error fetching user data:`,e),e}}async function i(e){try{return(await n.get(`/user/${e}`)).data.avatar_url}catch(e){return console.warn(`Failed to fetch GitHub avatar:`,e),null}}export{i as fetchGitHubAvatar,r as fetchUser};
|
|
3
|
+
//# sourceMappingURL=user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","names":[],"sources":["../../../src/lib/api/user.ts"],"sourcesContent":["import {\n type ApiClient,\n type ApiResponse,\n createFetchClient,\n} from \"../fetchClient\";\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\nconst defaultClient = createFetchClient({ baseURL: \"\" });\nconst githubClient = createFetchClient({ baseURL: \"https://api.github.com\" });\n\nexport async function fetchUser(\n client: ApiClient = defaultClient,\n): Promise<User> {\n try {\n const response = await client.get<never, ApiResponse<User>>(\"/api/users\");\n return response.data;\n } catch (error) {\n if (process.env.NODE_ENV !== \"test\") {\n console.error(\"Error fetching user data:\", error);\n }\n throw error;\n }\n}\n\nexport async function fetchGitHubAvatar(\n userId: string,\n): Promise<string | null> {\n try {\n const response = await githubClient.get<never, ApiResponse<GitHubUser>>(\n `/user/${userId}`,\n );\n return response.data.avatar_url;\n } catch (error) {\n if (process.env.NODE_ENV !== \"test\") {\n console.warn(\"Failed to fetch GitHub avatar:\", error);\n }\n return null;\n }\n}\n"],"mappings":";kDAoBA,MAAM,EAAgB,EAAkB,CAAE,QAAS,GAAI,CAAC,CAClD,EAAe,EAAkB,CAAE,QAAS,yBAA0B,CAAC,CAE7E,eAAsB,EACpB,EAAoB,EACL,CACf,GAAI,CAEF,OADiB,MAAM,EAAO,IAA8B,aAAa,EACzD,WACT,EAAO,CAId,MAFE,QAAQ,MAAM,4BAA6B,EAAM,CAE7C,GAIV,eAAsB,EACpB,EACwB,CACxB,GAAI,CAIF,OAHiB,MAAM,EAAa,IAClC,SAAS,IACV,EACe,KAAK,iBACd,EAAO,CAId,OAFE,QAAQ,KAAK,iCAAkC,EAAM,CAEhD"}
|
package/dist/lib/const.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.d.ts","names":[],"sources":["../../src/lib/const.ts"],"
|
|
1
|
+
{"version":3,"file":"const.d.ts","names":[],"sources":["../../src/lib/const.ts"],"mappings":";;cAGa,cAAA;AAAA,cAKA,oBAAA;AAAA,cAMA,0BAAA"}
|
package/dist/lib/const.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
2
|
+
let e=process.env.NEXT_PUBLIC_API_URL;e??=typeof window<`u`?window.location.origin:``;const t=e;let n=process.env.NEXT_PUBLIC_CLOUD_WEB_URL;n??=`https://cloud.reccehq.com`;const r=n;let i=process.env.NEXT_PUBLIC_RECCE_SUPPORT_CALENDAR_URL;i??=`https://cal.com/team/recce/chat`;const a=i;export{t as PUBLIC_API_URL,r as PUBLIC_CLOUD_WEB_URL,a as RECCE_SUPPORT_CALENDAR_URL};
|
|
3
|
+
//# sourceMappingURL=const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","names":[],"sources":["../../src/lib/const.ts"],"sourcesContent":["let apiUrl = process.env.NEXT_PUBLIC_API_URL;\napiUrl ??= typeof window !== \"undefined\" ? window.location.origin : \"\";\n\nexport const PUBLIC_API_URL = apiUrl;\n\nlet cloudWebUrl = process.env.NEXT_PUBLIC_CLOUD_WEB_URL;\ncloudWebUrl ??= \"https://cloud.reccehq.com\";\n\nexport const PUBLIC_CLOUD_WEB_URL = cloudWebUrl;\n\nlet recceSupportCalendarUrl =\n process.env.NEXT_PUBLIC_RECCE_SUPPORT_CALENDAR_URL;\nrecceSupportCalendarUrl ??= \"https://cal.com/team/recce/chat\";\n\nexport const RECCE_SUPPORT_CALENDAR_URL = recceSupportCalendarUrl;\n"],"mappings":";AAAA,IAAI,EAAS,QAAQ,IAAI,oBACzB,IAAW,OAAO,OAAW,IAAc,OAAO,SAAS,OAAS,GAEpE,MAAa,EAAiB,EAE9B,IAAI,EAAc,QAAQ,IAAI,0BAC9B,IAAgB,4BAEhB,MAAa,EAAuB,EAEpC,IAAI,EACF,QAAQ,IAAI,uCACd,IAA4B,kCAE5B,MAAa,EAA6B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResultErrorFallback.d.ts","names":[],"sources":["../../../src/lib/result/ResultErrorFallback.tsx"],"
|
|
1
|
+
{"version":3,"file":"ResultErrorFallback.d.ts","names":[],"sources":["../../../src/lib/result/ResultErrorFallback.tsx"],"mappings":";;;;cAIM,mBAAA,EAAqB,cAAA"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{
|
|
2
|
+
import"react";import{jsx as e}from"react/jsx-runtime";import t from"@mui/material/Alert";const n=n=>e(t,{severity:`error`,children:String(n.error)});export{n as default};
|
|
3
|
+
//# sourceMappingURL=ResultErrorFallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResultErrorFallback.js","names":[],"sources":["../../../src/lib/result/ResultErrorFallback.tsx"],"sourcesContent":["import MuiAlert from \"@mui/material/Alert\";\nimport type { FallbackRender } from \"@sentry/react\";\nimport * as React from \"react\";\n\nconst ResultErrorFallback: FallbackRender = (errorData) => {\n return <MuiAlert severity=\"error\">{String(errorData.error)}</MuiAlert>;\n};\n\nexport default ResultErrorFallback;\n"],"mappings":";yFAIA,MAAM,EAAuC,GACpC,EAAC,EAAD,CAAU,SAAS,iBAAS,OAAO,EAAU,MAAM,CAAY,CAAA"}
|