@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.
Files changed (168) hide show
  1. package/dist/AuthModal-B38pWD3T.js +7 -0
  2. package/dist/AuthModal-B38pWD3T.js.map +1 -0
  3. package/dist/{RouteConfigContext-z8YNimdP.d.ts → RouteConfigContext-DWFg6bll.d.ts} +13 -14
  4. package/dist/RouteConfigContext-DWFg6bll.d.ts.map +1 -0
  5. package/dist/{RunProgress-DyFIALbI.d.ts → RunProgress-BCFXvUsE.d.ts} +18 -18
  6. package/dist/RunProgress-BCFXvUsE.d.ts.map +1 -0
  7. package/dist/{ScreenshotDataGrid-BfxYUThx.d.ts → ScreenshotDataGrid-BAsPWcde.d.ts} +6 -7
  8. package/dist/ScreenshotDataGrid-BAsPWcde.d.ts.map +1 -0
  9. package/dist/{SplitPane-B-BLxZaQ.d.ts → SplitPane-g8w-XF2_.d.ts} +283 -103
  10. package/dist/SplitPane-g8w-XF2_.d.ts.map +1 -0
  11. package/dist/advanced.d.ts +8 -9
  12. package/dist/advanced.d.ts.map +1 -1
  13. package/dist/advanced.js +1 -1
  14. package/dist/advanced.js.map +1 -1
  15. package/dist/{api-ZZ4cc9b9.d.ts → api-BwiRz6pD.d.ts} +27 -28
  16. package/dist/api-BwiRz6pD.d.ts.map +1 -0
  17. package/dist/api-CbzeUNef.js +3 -0
  18. package/dist/api-CbzeUNef.js.map +1 -0
  19. package/dist/api.d.ts +2 -2
  20. package/dist/api.js +1 -1
  21. package/dist/{colors--47Kkns4.js → colors-BbPSDR1X.js} +2 -2
  22. package/dist/colors-BbPSDR1X.js.map +1 -0
  23. package/dist/components-run.d.ts +3 -6
  24. package/dist/components-run.js +1 -1
  25. package/dist/components.d.ts +9 -22
  26. package/dist/components.js +1 -1
  27. package/dist/{constants-DD5vJv2q.js → constants-D-hOGDbU.js} +1 -1
  28. package/dist/{constants-DD5vJv2q.js.map → constants-D-hOGDbU.js.map} +1 -1
  29. package/dist/constants.d.ts +1 -1
  30. package/dist/constants.js +1 -1
  31. package/dist/contexts.d.ts +4 -5
  32. package/dist/contexts.js +1 -1
  33. package/dist/fetchClient-Bqjx8inP.js +3 -0
  34. package/dist/fetchClient-Bqjx8inP.js.map +1 -0
  35. package/dist/fetchClient-CTnJ39EA.d.ts +19 -0
  36. package/dist/fetchClient-CTnJ39EA.d.ts.map +1 -0
  37. package/dist/hooks.d.ts +2 -14
  38. package/dist/hooks.js +1 -1
  39. package/dist/{index-Ba3hp2Ng.d.ts → index-B1IyNkDA.d.ts} +92 -91
  40. package/dist/index-B1IyNkDA.d.ts.map +1 -0
  41. package/dist/{index-CiPcALu4.d.ts → index-BJOCIgE1.d.ts} +6 -4
  42. package/dist/index-BJOCIgE1.d.ts.map +1 -0
  43. package/dist/{index-DTCpHvX_.d.ts → index-C9nBECPv.d.ts} +12 -11
  44. package/dist/index-C9nBECPv.d.ts.map +1 -0
  45. package/dist/{colors-vY9Yzui0.d.ts → index-CHJ0PCEg.d.ts} +131 -6
  46. package/dist/index-CHJ0PCEg.d.ts.map +1 -0
  47. package/dist/{index-CkXLPYZY.d.ts → index-CZ7gueQV.d.ts} +1 -1
  48. package/dist/index-CZ7gueQV.d.ts.map +1 -0
  49. package/dist/{index-h_fw6R9U.d.ts → index-CaKcjGJC.d.ts} +43 -8
  50. package/dist/index-CaKcjGJC.d.ts.map +1 -0
  51. package/dist/{index-o48TPoFN.d.ts → index-D-H3NTdf.d.ts} +38 -28
  52. package/dist/index-D-H3NTdf.d.ts.map +1 -0
  53. package/dist/{index-DVoQsx5c.d.ts → index-Dh6gw0NG.d.ts} +148 -146
  54. package/dist/index-Dh6gw0NG.d.ts.map +1 -0
  55. package/dist/{index-BFkbe0aF.d.ts → index-Dp-BUtpt.d.ts} +21 -15
  56. package/dist/index-Dp-BUtpt.d.ts.map +1 -0
  57. package/dist/index.d.ts +17 -24
  58. package/dist/index.js +1 -1
  59. package/dist/{flag-CiR2E5oz.d.ts → instanceInfo-DNLFhkK8.d.ts} +84 -73
  60. package/dist/instanceInfo-DNLFhkK8.d.ts.map +1 -0
  61. package/dist/keepAlive-Dj0q3fC9.js +3 -0
  62. package/dist/keepAlive-Dj0q3fC9.js.map +1 -0
  63. package/dist/lib/api/{axiosClient.d.ts → queryClient.d.ts} +2 -2
  64. package/dist/lib/api/queryClient.d.ts.map +1 -0
  65. package/dist/lib/api/{axiosClient.js → queryClient.js} +1 -1
  66. package/dist/lib/api/queryClient.js.map +1 -0
  67. package/dist/lib/api/track.d.ts.map +1 -1
  68. package/dist/lib/api/track.js +2 -1
  69. package/dist/lib/api/track.js.map +1 -0
  70. package/dist/lib/api/user.d.ts +2 -2
  71. package/dist/lib/api/user.d.ts.map +1 -1
  72. package/dist/lib/api/user.js +2 -1
  73. package/dist/lib/api/user.js.map +1 -0
  74. package/dist/lib/const.d.ts.map +1 -1
  75. package/dist/lib/const.js +2 -1
  76. package/dist/lib/const.js.map +1 -0
  77. package/dist/lib/result/ResultErrorFallback.d.ts.map +1 -1
  78. package/dist/lib/result/ResultErrorFallback.js +2 -1
  79. package/dist/lib/result/ResultErrorFallback.js.map +1 -0
  80. package/dist/{index-C_kD4ZQ3.d.ts → lineage-DsKqx9yh.d.ts} +388 -168
  81. package/dist/lineage-DsKqx9yh.d.ts.map +1 -0
  82. package/dist/{primitives-CgGUvwHB.d.ts → primitives-D8s_Rs5T.d.ts} +197 -22
  83. package/dist/primitives-D8s_Rs5T.d.ts.map +1 -0
  84. package/dist/primitives.d.ts +7 -11
  85. package/dist/primitives.js +1 -1
  86. package/dist/result.d.ts +1 -2
  87. package/dist/result.js +1 -1
  88. package/dist/src-BH-TT0Mt.js +12 -0
  89. package/dist/src-BH-TT0Mt.js.map +1 -0
  90. package/dist/style.css +290 -0
  91. package/dist/styles.css +2 -2
  92. package/dist/theme-B_XT39eO.js +3 -0
  93. package/dist/theme-B_XT39eO.js.map +1 -0
  94. package/dist/theme.d.ts +1 -2
  95. package/dist/theme.js +1 -1
  96. package/dist/{types-CZre3j02.d.ts → types-DLRfpcrV.d.ts} +7 -4
  97. package/dist/types-DLRfpcrV.d.ts.map +1 -0
  98. package/dist/{types-CFbNxrx2.d.ts → types-qpgIe7MT.d.ts} +7 -7
  99. package/dist/types-qpgIe7MT.d.ts.map +1 -0
  100. package/dist/types.d.ts +10 -14
  101. package/dist/types.js.map +1 -1
  102. package/dist/useThemeColors-OwCMwSrx.d.ts +79 -0
  103. package/dist/useThemeColors-OwCMwSrx.d.ts.map +1 -0
  104. package/dist/utils-BwEuAiEd.js +3 -0
  105. package/dist/utils-BwEuAiEd.js.map +1 -0
  106. package/dist/utils-Crcz1Rb5.js +6 -0
  107. package/dist/utils-Crcz1Rb5.js.map +1 -0
  108. package/dist/utils.d.ts +2 -6
  109. package/dist/utils.js +1 -1
  110. package/package.json +45 -19
  111. package/dist/AuthModal-C8LetZNB.js +0 -23
  112. package/dist/AuthModal-C8LetZNB.js.map +0 -1
  113. package/dist/LineageCanvas-CR38SDYr.d.ts +0 -41
  114. package/dist/LineageCanvas-CR38SDYr.d.ts.map +0 -1
  115. package/dist/ResultErrorFallback-C7c-TN1p.js +0 -3
  116. package/dist/ResultErrorFallback-C7c-TN1p.js.map +0 -1
  117. package/dist/RouteConfigContext-z8YNimdP.d.ts.map +0 -1
  118. package/dist/RunProgress-DyFIALbI.d.ts.map +0 -1
  119. package/dist/ScreenshotDataGrid-BfxYUThx.d.ts.map +0 -1
  120. package/dist/SplitPane-B-BLxZaQ.d.ts.map +0 -1
  121. package/dist/api-ZZ4cc9b9.d.ts.map +0 -1
  122. package/dist/api-_i6BZPkM.js +0 -3
  123. package/dist/api-_i6BZPkM.js.map +0 -1
  124. package/dist/colors--47Kkns4.js.map +0 -1
  125. package/dist/colors-vY9Yzui0.d.ts.map +0 -1
  126. package/dist/const-DbXBkrxT.js +0 -3
  127. package/dist/const-DbXBkrxT.js.map +0 -1
  128. package/dist/flag-CiR2E5oz.d.ts.map +0 -1
  129. package/dist/flag-koeDAqr3.js +0 -3
  130. package/dist/flag-koeDAqr3.js.map +0 -1
  131. package/dist/index-BFkbe0aF.d.ts.map +0 -1
  132. package/dist/index-Ba3hp2Ng.d.ts.map +0 -1
  133. package/dist/index-C_kD4ZQ3.d.ts.map +0 -1
  134. package/dist/index-CiPcALu4.d.ts.map +0 -1
  135. package/dist/index-CkXLPYZY.d.ts.map +0 -1
  136. package/dist/index-DTCpHvX_.d.ts.map +0 -1
  137. package/dist/index-DVoQsx5c.d.ts.map +0 -1
  138. package/dist/index-DmwYRgDR.d.ts +0 -192
  139. package/dist/index-DmwYRgDR.d.ts.map +0 -1
  140. package/dist/index-N8N7XmRj.d.ts +0 -130
  141. package/dist/index-N8N7XmRj.d.ts.map +0 -1
  142. package/dist/index-h_fw6R9U.d.ts.map +0 -1
  143. package/dist/index-o48TPoFN.d.ts.map +0 -1
  144. package/dist/keepAlive-CEzyrDfg.js +0 -3
  145. package/dist/keepAlive-CEzyrDfg.js.map +0 -1
  146. package/dist/lib/api/axiosClient.d.ts.map +0 -1
  147. package/dist/lib/api/axiosClient.js.map +0 -1
  148. package/dist/primitives-CgGUvwHB.d.ts.map +0 -1
  149. package/dist/src-BgHSbbHk.js +0 -67
  150. package/dist/src-BgHSbbHk.js.map +0 -1
  151. package/dist/theme-CeWzymUn.js +0 -64
  152. package/dist/theme-CeWzymUn.js.map +0 -1
  153. package/dist/track-9ZQpBlUK.js +0 -3
  154. package/dist/track-9ZQpBlUK.js.map +0 -1
  155. package/dist/types-CFbNxrx2.d.ts.map +0 -1
  156. package/dist/types-CZre3j02.d.ts.map +0 -1
  157. package/dist/useRecceServerFlag-Bg5R67J4.js +0 -3
  158. package/dist/useRecceServerFlag-Bg5R67J4.js.map +0 -1
  159. package/dist/useThemeColors--prVbMmM.js +0 -3
  160. package/dist/useThemeColors--prVbMmM.js.map +0 -1
  161. package/dist/useThemeColors-DHEroo8f.d.ts +0 -104
  162. package/dist/useThemeColors-DHEroo8f.d.ts.map +0 -1
  163. package/dist/user-DMT7E0fc.js +0 -3
  164. package/dist/user-DMT7E0fc.js.map +0 -1
  165. package/dist/utils-CW2skXm_.js +0 -3
  166. package/dist/utils-CW2skXm_.js.map +0 -1
  167. package/dist/utils-CXWhfyxC.js +0 -5
  168. package/dist/utils-CXWhfyxC.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
 
2
- import * as _tanstack_react_query4 from "@tanstack/react-query";
3
- import { AxiosInstance } from "axios";
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: AxiosInstance): Promise<ServerInfoResult>;
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: AxiosInstance): Promise<ModelInfoResult>;
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: AxiosInstance): Promise<ColumnLineageData>;
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 Axios requests
213
+ * Query parameters for API requests
213
214
  * Supports string, number, and array values with undefined for optional params
214
215
  */
215
- type AxiosQueryParams = Record<string, string | string[] | number | number[] | undefined>;
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 axios instance (no default - library pattern)
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: AxiosInstance): Promise<Run | Pick<Run, "run_id">>;
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 axios instance
301
+ * @param client - Required API client instance
297
302
  * @returns The run object
298
303
  */
299
- declare function getRun(runId: string, client: AxiosInstance): Promise<Run>;
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 axios instance
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: AxiosInstance): Promise<Run>;
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 axios instance
316
+ * @param client - Required API client instance
312
317
  */
313
- declare function cancelRun(runId: string, client: AxiosInstance): Promise<void>;
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 axios instance
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: AxiosInstance): Promise<Run | Pick<Run, "run_id">>;
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 axios instance
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: AxiosInstance): Promise<Run[]>;
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 axios instance
339
+ * @param client - Required API client instance
335
340
  * @returns Array of all runs
336
341
  */
337
- declare function listRuns(client: AxiosInstance): Promise<Run[]>;
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 axios instance
346
+ * @param client - Required API client instance
342
347
  * @returns Aggregated run results
343
348
  */
344
- declare function aggregateRuns(client: AxiosInstance): Promise<RunsAggregated>;
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: AxiosInstance): Promise<Run | Pick<Run, "run_id">>;
379
- declare function submitQueryBase(params: QueryRunParams, options: SubmitOptions | undefined, client: AxiosInstance): Promise<Run | Pick<Run, "run_id">>;
380
- declare function submitQueryDiff(params: QueryDiffParams, options: SubmitOptions | undefined, client: AxiosInstance): Promise<Run | Pick<Run, "run_id">>;
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: AxiosInstance): Promise<Run | Pick<Run, "run_id">>;
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: AxiosInstance): Promise<Run | Pick<Run, "run_id">>;
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: AxiosInstance): Promise<Run | Pick<Run, "run_id">>;
483
- declare function submitValueDiffDetail(params: ValueDiffParams, options: SubmitOptions | undefined, client: AxiosInstance): Promise<Run | Pick<Run, "run_id">>;
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 axios instance
776
+ * @param client - Required API client instance
768
777
  * @returns The created check
769
778
  */
770
- declare function createSimpleCheck(client: AxiosInstance): Promise<Check>;
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 axios instance
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: AxiosInstance): Promise<Check>;
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 axios instance
790
+ * @param client - Required API client instance
782
791
  * @returns Array of all checks
783
792
  */
784
- declare function listChecks(client: AxiosInstance): Promise<Check[]>;
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 axios instance
797
+ * @param client - Required API client instance
789
798
  * @returns The check object
790
799
  */
791
- declare function getCheck(checkId: string, client: AxiosInstance): Promise<Check>;
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 axios instance
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: AxiosInstance): Promise<Check>;
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 axios instance
812
+ * @param client - Required API client instance
804
813
  * @returns The deleted check ID
805
814
  */
806
- declare function deleteCheck(checkId: string, client: AxiosInstance): Promise<Pick<Check, "check_id">>;
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 axios instance
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: AxiosInstance): Promise<void>;
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 axios instance
828
+ * @param client - Required API client instance
820
829
  */
821
- declare function markAsPresetCheck(checkId: string, client: AxiosInstance): Promise<void>;
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 axios client.
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): _tanstack_react_query4.UseQueryResult<Check<unknown, unknown>[], Error>;
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: AxiosInstance): Promise<Check>;
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: AxiosInstance): Promise<RecceInstanceInfo>;
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, ServerMode 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, RecceInstanceInfo 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, getServerFlag as n, LineageDiffResult as nn, RowCountDiffResult as nt, getRecceInstanceInfo as o, NodeData as on, HistogramDiffParams as ot, deleteCheck as p, TopKDiffResult as pt, ValueDiffDetailResult as q, CllNodeData as qt, markRelaunchHintCompleted as r, ManifestMetadata as rn, RowCountParams as rt, LineageDiffViewOptions as s, PullRequestInfo as sn, HistogramDiffResult as st, RecceServerFlags 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 };
898
- //# sourceMappingURL=flag-CiR2E5oz.d.ts.map
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/axiosClient.d.ts
4
+ //#region src/lib/api/queryClient.d.ts
5
5
  declare const reactQueryClient: QueryClient;
6
6
  //#endregion
7
7
  export { reactQueryClient };
8
- //# sourceMappingURL=axiosClient.d.ts.map
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"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
2
  import{QueryClient as e}from"@tanstack/react-query";const t=new e;export{t as reactQueryClient};
3
- //# sourceMappingURL=axiosClient.js.map
3
+ //# sourceMappingURL=queryClient.js.map
@@ -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"],"sourcesContent":[],"mappings":";;iBAuBgB,SAAA,CAAA;AAAhB,UAoCU,oBAAA,CApCe;EAoCf,IAAA,EAAA,WAAA,GAAA,gBAAoB,GAAA,YAAA,GAAA,aAAA,GAAA,cAAA;EAUd,QAAA,EAAA,QAAA,GAAA,OAAqB,GAAA,MAAQ;AAE5C;AAMe,iBARA,qBAAA,CAQ0B,KAAA,EARG,oBAQe,CAAA,EAAA,IAAA;AAE3D,UANS,kBAAA,CAQkB;EAMZ,IAAA,EAAA,MAAA,GAAA,MAAkB,GAAA,WAAQ,GAAA,kBAAkB,GAAA,aAAA;AAE3D;AAOe,iBAnBA,kBAAA,CAmB0B,KAAQ,EAnBR,kBAmBQ,CAAA,EAAA,IAA0B;AAE3E,UAjBS,kBAAA,CAmBsB;EAUhB,MAAA,EAAA,SAAA,GAAA,KAAsB,GAAA,OAAA;EAItB,IAAA,CAAA,EAAA,MAAA;EAIN,MAAA,CAAA,EAAA,SAAA,GAAA,SAAuB;AAKjC;AAIU,iBAxCM,kBAAA,CAwCS,KAAA,EAxCiB,kBAwCjB,CAAA,EAAA,IAAA;AAIzB,UAxCU,0BAAA,CAwC6B;EAI7B,QAAA,EAAA,MAAA,GAAgB,SAAA,GAAA,MAAA;EAIV,IAAA,CAAA,EAAA,MAAA;AAEf;AAOe,iBApDA,0BAAA,CAoD4B,KAAA,EApDM,0BAoDc,CAAA,EAAA,IAAA;AAE/D,UAlDS,sBAAA,CAoDa;EAKP,MAAA,EAAA,YAAe,GAAA,eAAQ,GAAA,iBAAa,GAAA,mBAAA;EAInC,IAAA,CAAA,EAAA,YAAA,GAAA,iBAAsB;EASvB,IAAA,CAAA,EAAA,MAAA;AAIhB;AAqBgB,iBArFA,sBAAA,CAqF8B,KAAA,EArFA,sBAqFsB,CAAA,EAAA,IAAA;AAKvD,iBAtFG,0CAAA,CAAA,CAiGN,EAAA,OAAA;AAGV,UAhGU,uBAAA,CAwGA;EAEE,MAAA,EAAA,MAAA;EAEA,MAAA,EAAA,eAAiB,GAAA,gBACnB,GAAA,YAA6B;AAAgB;AAQvC,iBAhHA,uBAAA,CAgH0B,KAAA,EAhHK,uBAgHa,CAAA,EAAA,IAAA;AAK5D,UAjHU,eAAA,CAoHA;EAEE,IAAA,EAAA,QAAA,GAAA,QAAoB,GAAA,MAAA;AAC+B;AAO/C,iBA1HA,eAAA,CA0HsB,KAAQ,EA1HP,eA0HO,CAAA,EAAsB,IAAA;AAKpE,UA3HU,gBAAA,CA2HqB;EAKlB,IAAA,EAAA,QAAA,GAAA,QAAA;AAOb;AAGU,iBAtIM,gBAAA,CAuIN,KAAA,EAvI8B,gBAuI9B,CAAA,EAA0B,IAAA;AAIpC,UAvIU,oBAAA,CAuI2B;;;;iBAlIrB,oBAAA,QAA4B;UAIlC,aAAA;;;;iBAKM,eAAA,QAAuB;UAItB,sBAAA;;;;;;;;iBASD,sBAAA,QAA8B;UAI7B,sBAAA;;;;;;;;;;;;;;;;;;;iBAqBD,sBAAA,QAA8B;cAKjC;;;;;;;;;;;;cAcA;;;;;;;;;KAUD,iBAAA,WACF,6BAA6B;KAC3B,iBAAA,WACF,6BAA6B;UAE7B,kBAAA;UACA;UACA;;;iBAIM,kBAAA,QAA0B;cAK7B;;;;KAKD,oBAAA,WACF,iCAAiC;UAEjC,sBAAA;UACA;SACD;;iBAGO,sBAAA,QAA8B;iBAK9B,eAAA,wBAAuC;cAK1C;;;;;;KAOD,0BAAA,WACF,uCAAuC;UAEvC,qBAAA;UACA;;;iBAIM,qBAAA,QAA6B"}
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"}
@@ -1,2 +1,3 @@
1
1
  "use client";
2
- import{S as e,_ as t,a as n,b as r,c as i,d as a,f as o,g as s,h as c,i as l,l as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v,v as y,x as b,y as x}from"../../track-9ZQpBlUK.js";export{_ as EXPLORE_ACTION,f as EXPLORE_FORM_EVENT,h as EXPLORE_SOURCE,l as LINEAGE_SELECTION_ACTION,n as getExperimentTrackingBreakingChangeEnabled,p as isExploreAction,g as trackColumnLevelLineage,i as trackCopyToClipboard,u as trackEnvironmentConfig,v as trackExploreAction,a as trackExploreActionForm,o as trackHistoryAction,m as trackInit,d as trackLineageSelection,c as trackLineageViewRender,s as trackMultiNodesAction,t as trackNavigation,y as trackPreviewChange,x as trackPreviewChangeFeedback,r as trackShareState,b as trackSingleEnvironment,e as trackStateAction};
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"}
@@ -1,5 +1,5 @@
1
1
 
2
- import { AxiosInstance } from "axios";
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?: AxiosInstance): Promise<User>;
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"],"sourcesContent":[],"mappings":";;;;UAEiB,IAAA;;EAAA,KAAA,EAAI,MAAA;EAcC,UAAA,EAAS,MAAA;EAAS,KAAA,EAAA,MAAA;EAAgC,gBAAA,EAAA,MAAA;;AAAD,iBAAjD,SAAA,CAAiD,MAAA,CAAA,EAA/B,aAA+B,CAAA,EAAP,OAAO,CAAC,IAAD,CAAA;AAYjD,iBAAA,iBAAA,CAEnB,MAAO,EAAA,MAAA,CAAA,EAAP,OAAO,CAAA,MAAA,GAAA,IAAA,CAAA"}
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"}
@@ -1,2 +1,3 @@
1
1
  "use client";
2
- import{n as e,t}from"../../user-DMT7E0fc.js";export{t as fetchGitHubAvatar,e as fetchUser};
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","names":[],"sources":["../../src/lib/const.ts"],"sourcesContent":[],"mappings":";;cAGa;AAAA,cAKA,oBALuB,EAAA,MAAA;AAKvB,cAMA,0BANkC,EAAA,MAAA"}
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
- import{n as e,r as t,t as n}from"../const-DbXBkrxT.js";export{n as PUBLIC_API_URL,e as PUBLIC_CLOUD_WEB_URL,t as RECCE_SUPPORT_CALENDAR_URL};
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"],"sourcesContent":[],"mappings":";;;;cAIM,qBAAqB"}
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{t as e}from"../../ResultErrorFallback-C7c-TN1p.js";export{e as default};
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"}