yamchart 0.9.4 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{advisor-SC64RTZO.js → advisor-O2BRAI4T.js} +24 -14
- package/dist/advisor-O2BRAI4T.js.map +1 -0
- package/dist/{chunk-NXQ6ZO3V.js → chunk-5FHV22X2.js} +6 -6
- package/dist/chunk-5FHV22X2.js.map +1 -0
- package/dist/{chunk-7CD6UQAV.js → chunk-DZVT6PHW.js} +9 -1
- package/dist/chunk-DZVT6PHW.js.map +1 -0
- package/dist/chunk-FN6R2LAC.js +15442 -0
- package/dist/chunk-FN6R2LAC.js.map +1 -0
- package/dist/chunk-QJ5CPQJK.js +2053 -0
- package/dist/chunk-QJ5CPQJK.js.map +1 -0
- package/dist/{chunk-S7YQXEKM.js → chunk-QUIDZO5G.js} +103 -275
- package/dist/chunk-QUIDZO5G.js.map +1 -0
- package/dist/{chunk-RMIDEBHD.js → chunk-S2CH4HUZ.js} +6 -6
- package/dist/{chunk-UND73EOB.js → chunk-UFDQ3C7Q.js} +473 -4
- package/dist/chunk-UFDQ3C7Q.js.map +1 -0
- package/dist/{chunk-H4L3FNLS.js → chunk-ZBCQNWVN.js} +2 -2
- package/dist/{chunk-RM6MNDVF.js → chunk-ZIY22VO7.js} +192 -11
- package/dist/chunk-ZIY22VO7.js.map +1 -0
- package/dist/{connection-utils-C4FQGBW6.js → connection-utils-FEUWER5I.js} +5 -5
- package/dist/{describe-X75C2VDU.js → describe-MEP72B56.js} +6 -6
- package/dist/{dev-7YLRQ6SA.js → dev-LZ4YHNDJ.js} +1334 -77
- package/dist/dev-LZ4YHNDJ.js.map +1 -0
- package/dist/dist-5IFWLWND.js +48 -0
- package/dist/{dist-NGQG7Z4G.js → dist-MIKFZKSD.js} +2 -2
- package/dist/{dist-MX5K2ABB.js → dist-PPAD6KOM.js} +44 -2
- package/dist/{dist-JMLAZUL7.js → dist-XNCED7JW.js} +29 -12
- package/dist/fileFromPath-7TNUU6RI.js +130 -0
- package/dist/fileFromPath-7TNUU6RI.js.map +1 -0
- package/dist/index.js +25 -25
- package/dist/public/assets/DataView-DUCz_96y.js +9 -0
- package/dist/public/assets/{EventManagement-B7leMxfo.js → EventManagement-BnmeJDQl.js} +1 -1
- package/dist/public/assets/{ExplorePage-zI1OiYlH.js → ExplorePage-kk4z9ldZ.js} +1 -1
- package/dist/public/assets/{LoginPage-Dyk2ILmo.js → LoginPage-CzaFkkjg.js} +1 -1
- package/dist/public/assets/{PublicViewer-C2tNYBR2.js → PublicViewer-irjxqH6a.js} +1 -1
- package/dist/public/assets/{SetupWizard-BzZSJlbt.js → SetupWizard-ConWIcmy.js} +1 -1
- package/dist/public/assets/{ShareManagement-C7RIZRWe.js → ShareManagement-CP4wdwLR.js} +1 -1
- package/dist/public/assets/SourceDetailView-DZS5518E.js +1 -0
- package/dist/public/assets/{UserManagement-BD-lLbVH.js → UserManagement-AubGd9hl.js} +1 -1
- package/dist/public/assets/data-3vtzSuAZ.js +1 -0
- package/dist/public/assets/{index-CfyF2Wf-.css → index-C1X8RW4Z.css} +1 -1
- package/dist/public/assets/{index-lklRbe2I.js → index-jlfTO7f5.js} +44 -44
- package/dist/public/assets/{index.es-CLyC5-GY.js → index.es-CgnvEWi5.js} +1 -1
- package/dist/public/assets/{jspdf.es.min-CTZVk96E.js → jspdf.es.min-Cw5WefMt.js} +3 -3
- package/dist/public/index.html +2 -2
- package/dist/{query-QNRDS74I.js → query-2H3YOPI2.js} +5 -5
- package/dist/{reset-password-HDCLH7PZ.js → reset-password-YVCZKZPC.js} +2 -2
- package/dist/{sample-SKLHBZBU.js → sample-ODUGGSFA.js} +5 -5
- package/dist/{search-4KMETZVX.js → search-IPE4ISFB.js} +6 -6
- package/dist/{semantic-6WKELH5V.js → semantic-K3MYXXJI.js} +3 -2
- package/dist/{semantic-6WKELH5V.js.map → semantic-K3MYXXJI.js.map} +1 -1
- package/dist/{source-resolver-R7WBIL7M.js → source-resolver-HZQLOODU.js} +6 -6
- package/dist/source-resolver-HZQLOODU.js.map +1 -0
- package/dist/{sync-warehouse-UWRNUXE7.js → sync-warehouse-26L6JDSV.js} +10 -10
- package/dist/{tables-V65QUGHK.js → tables-K5NAN2WK.js} +6 -6
- package/dist/templates/default/docs/yamchart-reference.md +46 -0
- package/dist/{test-UE5OWG3E.js → test-SRHVOXZB.js} +8 -7
- package/dist/{test-UE5OWG3E.js.map → test-SRHVOXZB.js.map} +1 -1
- package/package.json +2 -2
- package/dist/advisor-SC64RTZO.js.map +0 -1
- package/dist/chunk-7CD6UQAV.js.map +0 -1
- package/dist/chunk-NXQ6ZO3V.js.map +0 -1
- package/dist/chunk-RM6MNDVF.js.map +0 -1
- package/dist/chunk-S7YQXEKM.js.map +0 -1
- package/dist/chunk-UND73EOB.js.map +0 -1
- package/dist/dev-7YLRQ6SA.js.map +0 -1
- package/dist/dist-MNXSMGV6.js +0 -790
- package/dist/dist-MNXSMGV6.js.map +0 -1
- /package/dist/{chunk-RMIDEBHD.js.map → chunk-S2CH4HUZ.js.map} +0 -0
- /package/dist/{chunk-H4L3FNLS.js.map → chunk-ZBCQNWVN.js.map} +0 -0
- /package/dist/{connection-utils-C4FQGBW6.js.map → connection-utils-FEUWER5I.js.map} +0 -0
- /package/dist/{describe-X75C2VDU.js.map → describe-MEP72B56.js.map} +0 -0
- /package/dist/{dist-JMLAZUL7.js.map → dist-5IFWLWND.js.map} +0 -0
- /package/dist/{dist-MX5K2ABB.js.map → dist-MIKFZKSD.js.map} +0 -0
- /package/dist/{dist-NGQG7Z4G.js.map → dist-PPAD6KOM.js.map} +0 -0
- /package/dist/{source-resolver-R7WBIL7M.js.map → dist-XNCED7JW.js.map} +0 -0
- /package/dist/{query-QNRDS74I.js.map → query-2H3YOPI2.js.map} +0 -0
- /package/dist/{reset-password-HDCLH7PZ.js.map → reset-password-YVCZKZPC.js.map} +0 -0
- /package/dist/{sample-SKLHBZBU.js.map → sample-ODUGGSFA.js.map} +0 -0
- /package/dist/{search-4KMETZVX.js.map → search-IPE4ISFB.js.map} +0 -0
- /package/dist/{sync-warehouse-UWRNUXE7.js.map → sync-warehouse-26L6JDSV.js.map} +0 -0
- /package/dist/{tables-V65QUGHK.js.map → tables-K5NAN2WK.js.map} +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AdvisorAgent,
|
|
3
|
+
AnthropicProvider,
|
|
4
|
+
KNOWLEDGE_TOPICS,
|
|
5
|
+
OpenAICompatibleProvider,
|
|
6
|
+
SYSTEM_PROMPT,
|
|
7
|
+
TOOL_DEFINITIONS,
|
|
8
|
+
buildModelPath,
|
|
9
|
+
buildProvider,
|
|
10
|
+
buildSchemaYmlEntry,
|
|
11
|
+
createEmbedder,
|
|
12
|
+
createProviderForTask,
|
|
13
|
+
detectConventions,
|
|
14
|
+
formatModelSql,
|
|
15
|
+
getKnowledgeOverview,
|
|
16
|
+
listDbtModels,
|
|
17
|
+
loadKnowledge,
|
|
18
|
+
readDbtModel,
|
|
19
|
+
updateSchemaYml,
|
|
20
|
+
writeDbtModel
|
|
21
|
+
} from "./chunk-FN6R2LAC.js";
|
|
22
|
+
import "./chunk-QUIDZO5G.js";
|
|
23
|
+
import "./chunk-UFDQ3C7Q.js";
|
|
24
|
+
import "./chunk-ZIY22VO7.js";
|
|
25
|
+
import "./chunk-QJ5CPQJK.js";
|
|
26
|
+
import "./chunk-7D4SUZUM.js";
|
|
27
|
+
export {
|
|
28
|
+
AdvisorAgent,
|
|
29
|
+
AnthropicProvider,
|
|
30
|
+
KNOWLEDGE_TOPICS,
|
|
31
|
+
OpenAICompatibleProvider,
|
|
32
|
+
SYSTEM_PROMPT,
|
|
33
|
+
TOOL_DEFINITIONS,
|
|
34
|
+
buildModelPath,
|
|
35
|
+
buildProvider,
|
|
36
|
+
buildSchemaYmlEntry,
|
|
37
|
+
createEmbedder,
|
|
38
|
+
createProviderForTask,
|
|
39
|
+
detectConventions,
|
|
40
|
+
formatModelSql,
|
|
41
|
+
getKnowledgeOverview,
|
|
42
|
+
listDbtModels,
|
|
43
|
+
loadKnowledge,
|
|
44
|
+
readDbtModel,
|
|
45
|
+
updateSchemaYml,
|
|
46
|
+
writeDbtModel
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=dist-5IFWLWND.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
hashToken,
|
|
7
7
|
parseTtl,
|
|
8
8
|
verifyPassword
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DZVT6PHW.js";
|
|
10
10
|
import "./chunk-7D4SUZUM.js";
|
|
11
11
|
export {
|
|
12
12
|
AuthDatabase,
|
|
@@ -17,4 +17,4 @@ export {
|
|
|
17
17
|
parseTtl,
|
|
18
18
|
verifyPassword
|
|
19
19
|
};
|
|
20
|
-
//# sourceMappingURL=dist-
|
|
20
|
+
//# sourceMappingURL=dist-MIKFZKSD.js.map
|
|
@@ -1,56 +1,98 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentDefinitionSchema,
|
|
3
|
+
AiConfigSchema,
|
|
4
|
+
BlindspotKindSchema,
|
|
5
|
+
BlindspotSchema,
|
|
6
|
+
BlindspotStatusSchema,
|
|
3
7
|
ChartSchema,
|
|
8
|
+
ColumnProfileSchema,
|
|
4
9
|
ConnectionSchema,
|
|
10
|
+
CuratedDimensionSchema,
|
|
11
|
+
CuratedMetricSchema,
|
|
12
|
+
CuratedSourceSchema,
|
|
5
13
|
DashboardSchema,
|
|
6
14
|
DimensionSchema,
|
|
7
15
|
DimensionTypeSchema,
|
|
8
16
|
EventSchema,
|
|
9
17
|
EventsFileSchema,
|
|
18
|
+
HunchSampleSchema,
|
|
19
|
+
HunchSchema,
|
|
20
|
+
HunchStatusSchema,
|
|
21
|
+
KnowledgeDocSchema,
|
|
10
22
|
MeasureSchema,
|
|
11
23
|
MeasureTypeSchema,
|
|
12
24
|
ModelMetadataSchema,
|
|
13
25
|
ModelSchema,
|
|
26
|
+
NamedFilterSchema,
|
|
27
|
+
NewBlindspotSchema,
|
|
28
|
+
NewHunchSchema,
|
|
29
|
+
NewKnowledgeDocSchema,
|
|
14
30
|
ParameterSchema,
|
|
15
31
|
ProjectSchema,
|
|
32
|
+
ProviderConfigSchema,
|
|
16
33
|
RelationshipSchema,
|
|
17
34
|
ScheduleSchema,
|
|
18
35
|
SemanticConfigSchema,
|
|
36
|
+
SemanticDefinitionSchema,
|
|
19
37
|
SemanticEntitySchema,
|
|
20
38
|
SemanticFilterOperatorSchema,
|
|
21
39
|
SemanticFilterSchema,
|
|
22
40
|
SemanticModelSchema,
|
|
23
41
|
SemanticQuerySchema,
|
|
42
|
+
SourceProfileSchema,
|
|
43
|
+
SuggestedModelSchema,
|
|
44
|
+
TableProfileSchema,
|
|
24
45
|
VERSION,
|
|
25
46
|
deepMerge,
|
|
26
47
|
resolveProjectConfig
|
|
27
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-ZIY22VO7.js";
|
|
28
49
|
import "./chunk-7D4SUZUM.js";
|
|
29
50
|
export {
|
|
30
51
|
AgentDefinitionSchema,
|
|
52
|
+
AiConfigSchema,
|
|
53
|
+
BlindspotKindSchema,
|
|
54
|
+
BlindspotSchema,
|
|
55
|
+
BlindspotStatusSchema,
|
|
31
56
|
ChartSchema,
|
|
57
|
+
ColumnProfileSchema,
|
|
32
58
|
ConnectionSchema,
|
|
59
|
+
CuratedDimensionSchema,
|
|
60
|
+
CuratedMetricSchema,
|
|
61
|
+
CuratedSourceSchema,
|
|
33
62
|
DashboardSchema,
|
|
34
63
|
DimensionSchema,
|
|
35
64
|
DimensionTypeSchema,
|
|
36
65
|
EventSchema,
|
|
37
66
|
EventsFileSchema,
|
|
67
|
+
HunchSampleSchema,
|
|
68
|
+
HunchSchema,
|
|
69
|
+
HunchStatusSchema,
|
|
70
|
+
KnowledgeDocSchema,
|
|
38
71
|
MeasureSchema,
|
|
39
72
|
MeasureTypeSchema,
|
|
40
73
|
ModelMetadataSchema,
|
|
41
74
|
ModelSchema,
|
|
75
|
+
NamedFilterSchema,
|
|
76
|
+
NewBlindspotSchema,
|
|
77
|
+
NewHunchSchema,
|
|
78
|
+
NewKnowledgeDocSchema,
|
|
42
79
|
ParameterSchema,
|
|
43
80
|
ProjectSchema,
|
|
81
|
+
ProviderConfigSchema,
|
|
44
82
|
RelationshipSchema,
|
|
45
83
|
ScheduleSchema,
|
|
46
84
|
SemanticConfigSchema,
|
|
85
|
+
SemanticDefinitionSchema,
|
|
47
86
|
SemanticEntitySchema,
|
|
48
87
|
SemanticFilterOperatorSchema,
|
|
49
88
|
SemanticFilterSchema,
|
|
50
89
|
SemanticModelSchema,
|
|
51
90
|
SemanticQuerySchema,
|
|
91
|
+
SourceProfileSchema,
|
|
92
|
+
SuggestedModelSchema,
|
|
93
|
+
TableProfileSchema,
|
|
52
94
|
VERSION,
|
|
53
95
|
deepMerge,
|
|
54
96
|
resolveProjectConfig
|
|
55
97
|
};
|
|
56
|
-
//# sourceMappingURL=dist-
|
|
98
|
+
//# sourceMappingURL=dist-PPAD6KOM.js.map
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BigQueryConnector,
|
|
3
|
-
DATE_PRESETS,
|
|
4
3
|
DuckDBConnector,
|
|
5
4
|
MySQLConnector,
|
|
6
5
|
PostgresConnector,
|
|
@@ -11,18 +10,14 @@ import {
|
|
|
11
10
|
SqlList,
|
|
12
11
|
VERSION,
|
|
13
12
|
bigQueryTypeToString,
|
|
13
|
+
buildSourceProfile,
|
|
14
|
+
buildTableStatsSql,
|
|
15
|
+
buildTopValuesSql,
|
|
14
16
|
checkSchema,
|
|
15
|
-
computePreviousPeriod,
|
|
16
17
|
createTemplateContext,
|
|
17
|
-
expandCustomDateRange,
|
|
18
|
-
expandDatePreset,
|
|
19
|
-
expandRelativeDateRange,
|
|
20
18
|
expandThis,
|
|
21
19
|
extractTemplateVariables,
|
|
22
|
-
|
|
23
|
-
isCustomDateRange,
|
|
24
|
-
isDatePreset,
|
|
25
|
-
isRelativeDateRange,
|
|
20
|
+
isReadOnlySql,
|
|
26
21
|
parseModelMetadata,
|
|
27
22
|
renderTemplate,
|
|
28
23
|
resolveBigQueryAuth,
|
|
@@ -35,16 +30,30 @@ import {
|
|
|
35
30
|
runModel,
|
|
36
31
|
serializeDateValue,
|
|
37
32
|
templateHasVariable
|
|
38
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-QUIDZO5G.js";
|
|
39
34
|
import {
|
|
35
|
+
DATE_PRESETS,
|
|
40
36
|
SemanticModelBuilder,
|
|
41
37
|
SemanticQueryCompiler,
|
|
42
38
|
SemanticValidationError,
|
|
39
|
+
buildSemanticLayer,
|
|
43
40
|
classifyCatalogColumns,
|
|
44
41
|
classifyField,
|
|
42
|
+
compileMetricQuery,
|
|
43
|
+
computePreviousPeriod,
|
|
44
|
+
expandCustomDateRange,
|
|
45
|
+
expandDatePreset,
|
|
46
|
+
expandRelativeDateRange,
|
|
47
|
+
formatPeriodLabel,
|
|
48
|
+
getDialect,
|
|
45
49
|
inferAggregationType,
|
|
50
|
+
isCustomDateRange,
|
|
51
|
+
isDatePreset,
|
|
52
|
+
isRelativeDateRange,
|
|
53
|
+
loadSemanticDefinitions,
|
|
46
54
|
validateSemanticQuery
|
|
47
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-UFDQ3C7Q.js";
|
|
56
|
+
import "./chunk-ZIY22VO7.js";
|
|
48
57
|
import "./chunk-7D4SUZUM.js";
|
|
49
58
|
export {
|
|
50
59
|
BigQueryConnector,
|
|
@@ -62,9 +71,14 @@ export {
|
|
|
62
71
|
SqlList,
|
|
63
72
|
VERSION,
|
|
64
73
|
bigQueryTypeToString,
|
|
74
|
+
buildSemanticLayer,
|
|
75
|
+
buildSourceProfile,
|
|
76
|
+
buildTableStatsSql,
|
|
77
|
+
buildTopValuesSql,
|
|
65
78
|
checkSchema,
|
|
66
79
|
classifyCatalogColumns,
|
|
67
80
|
classifyField,
|
|
81
|
+
compileMetricQuery,
|
|
68
82
|
computePreviousPeriod,
|
|
69
83
|
createTemplateContext,
|
|
70
84
|
expandCustomDateRange,
|
|
@@ -73,10 +87,13 @@ export {
|
|
|
73
87
|
expandThis,
|
|
74
88
|
extractTemplateVariables,
|
|
75
89
|
formatPeriodLabel,
|
|
90
|
+
getDialect,
|
|
76
91
|
inferAggregationType,
|
|
77
92
|
isCustomDateRange,
|
|
78
93
|
isDatePreset,
|
|
94
|
+
isReadOnlySql,
|
|
79
95
|
isRelativeDateRange,
|
|
96
|
+
loadSemanticDefinitions,
|
|
80
97
|
parseModelMetadata,
|
|
81
98
|
renderTemplate,
|
|
82
99
|
resolveBigQueryAuth,
|
|
@@ -91,4 +108,4 @@ export {
|
|
|
91
108
|
templateHasVariable,
|
|
92
109
|
validateSemanticQuery
|
|
93
110
|
};
|
|
94
|
-
//# sourceMappingURL=dist-
|
|
111
|
+
//# sourceMappingURL=dist-XNCED7JW.js.map
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import {
|
|
2
|
+
File,
|
|
3
|
+
isFile
|
|
4
|
+
} from "./chunk-QJ5CPQJK.js";
|
|
5
|
+
import {
|
|
6
|
+
__commonJS,
|
|
7
|
+
__require,
|
|
8
|
+
__toESM
|
|
9
|
+
} from "./chunk-7D4SUZUM.js";
|
|
10
|
+
|
|
11
|
+
// ../../node_modules/.pnpm/node-domexception@1.0.0/node_modules/node-domexception/index.js
|
|
12
|
+
var require_node_domexception = __commonJS({
|
|
13
|
+
"../../node_modules/.pnpm/node-domexception@1.0.0/node_modules/node-domexception/index.js"(exports, module) {
|
|
14
|
+
"use strict";
|
|
15
|
+
if (!globalThis.DOMException) {
|
|
16
|
+
try {
|
|
17
|
+
const { MessageChannel } = __require("worker_threads"), port = new MessageChannel().port1, ab = new ArrayBuffer();
|
|
18
|
+
port.postMessage(ab, [ab, ab]);
|
|
19
|
+
} catch (err) {
|
|
20
|
+
err.constructor.name === "DOMException" && (globalThis.DOMException = err.constructor);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
module.exports = globalThis.DOMException;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
// ../../node_modules/.pnpm/formdata-node@4.4.1/node_modules/formdata-node/lib/esm/fileFromPath.js
|
|
28
|
+
var import_node_domexception = __toESM(require_node_domexception(), 1);
|
|
29
|
+
import { statSync, createReadStream, promises as fs } from "fs";
|
|
30
|
+
import { basename } from "path";
|
|
31
|
+
|
|
32
|
+
// ../../node_modules/.pnpm/formdata-node@4.4.1/node_modules/formdata-node/lib/esm/isPlainObject.js
|
|
33
|
+
var getType = (value) => Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
|
|
34
|
+
function isPlainObject(value) {
|
|
35
|
+
if (getType(value) !== "object") {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
const pp = Object.getPrototypeOf(value);
|
|
39
|
+
if (pp === null || pp === void 0) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
const Ctor = pp.constructor && pp.constructor.toString();
|
|
43
|
+
return Ctor === Object.toString();
|
|
44
|
+
}
|
|
45
|
+
var isPlainObject_default = isPlainObject;
|
|
46
|
+
|
|
47
|
+
// ../../node_modules/.pnpm/formdata-node@4.4.1/node_modules/formdata-node/lib/esm/fileFromPath.js
|
|
48
|
+
var __classPrivateFieldSet = function(receiver, state, value, kind, f) {
|
|
49
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
50
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
51
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
52
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
|
|
53
|
+
};
|
|
54
|
+
var __classPrivateFieldGet = function(receiver, state, kind, f) {
|
|
55
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
56
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
57
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
58
|
+
};
|
|
59
|
+
var _FileFromPath_path;
|
|
60
|
+
var _FileFromPath_start;
|
|
61
|
+
var MESSAGE = "The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.";
|
|
62
|
+
var FileFromPath = class _FileFromPath {
|
|
63
|
+
constructor(input) {
|
|
64
|
+
_FileFromPath_path.set(this, void 0);
|
|
65
|
+
_FileFromPath_start.set(this, void 0);
|
|
66
|
+
__classPrivateFieldSet(this, _FileFromPath_path, input.path, "f");
|
|
67
|
+
__classPrivateFieldSet(this, _FileFromPath_start, input.start || 0, "f");
|
|
68
|
+
this.name = basename(__classPrivateFieldGet(this, _FileFromPath_path, "f"));
|
|
69
|
+
this.size = input.size;
|
|
70
|
+
this.lastModified = input.lastModified;
|
|
71
|
+
}
|
|
72
|
+
slice(start, end) {
|
|
73
|
+
return new _FileFromPath({
|
|
74
|
+
path: __classPrivateFieldGet(this, _FileFromPath_path, "f"),
|
|
75
|
+
lastModified: this.lastModified,
|
|
76
|
+
size: end - start,
|
|
77
|
+
start
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
async *stream() {
|
|
81
|
+
const { mtimeMs } = await fs.stat(__classPrivateFieldGet(this, _FileFromPath_path, "f"));
|
|
82
|
+
if (mtimeMs > this.lastModified) {
|
|
83
|
+
throw new import_node_domexception.default(MESSAGE, "NotReadableError");
|
|
84
|
+
}
|
|
85
|
+
if (this.size) {
|
|
86
|
+
yield* createReadStream(__classPrivateFieldGet(this, _FileFromPath_path, "f"), {
|
|
87
|
+
start: __classPrivateFieldGet(this, _FileFromPath_start, "f"),
|
|
88
|
+
end: __classPrivateFieldGet(this, _FileFromPath_start, "f") + this.size - 1
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
get [(_FileFromPath_path = /* @__PURE__ */ new WeakMap(), _FileFromPath_start = /* @__PURE__ */ new WeakMap(), Symbol.toStringTag)]() {
|
|
93
|
+
return "File";
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
function createFileFromPath(path, { mtimeMs, size }, filenameOrOptions, options = {}) {
|
|
97
|
+
let filename;
|
|
98
|
+
if (isPlainObject_default(filenameOrOptions)) {
|
|
99
|
+
[options, filename] = [filenameOrOptions, void 0];
|
|
100
|
+
} else {
|
|
101
|
+
filename = filenameOrOptions;
|
|
102
|
+
}
|
|
103
|
+
const file = new FileFromPath({ path, size, lastModified: mtimeMs });
|
|
104
|
+
if (!filename) {
|
|
105
|
+
filename = file.name;
|
|
106
|
+
}
|
|
107
|
+
return new File([file], filename, {
|
|
108
|
+
...options,
|
|
109
|
+
lastModified: file.lastModified
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
function fileFromPathSync(path, filenameOrOptions, options = {}) {
|
|
113
|
+
const stats = statSync(path);
|
|
114
|
+
return createFileFromPath(path, stats, filenameOrOptions, options);
|
|
115
|
+
}
|
|
116
|
+
async function fileFromPath(path, filenameOrOptions, options) {
|
|
117
|
+
const stats = await fs.stat(path);
|
|
118
|
+
return createFileFromPath(path, stats, filenameOrOptions, options);
|
|
119
|
+
}
|
|
120
|
+
export {
|
|
121
|
+
fileFromPath,
|
|
122
|
+
fileFromPathSync,
|
|
123
|
+
isFile
|
|
124
|
+
};
|
|
125
|
+
/*! Bundled license information:
|
|
126
|
+
|
|
127
|
+
node-domexception/index.js:
|
|
128
|
+
(*! node-domexception. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *)
|
|
129
|
+
*/
|
|
130
|
+
//# sourceMappingURL=fileFromPath-7TNUU6RI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/node-domexception@1.0.0/node_modules/node-domexception/index.js","../../../node_modules/.pnpm/formdata-node@4.4.1/node_modules/formdata-node/lib/esm/fileFromPath.js","../../../node_modules/.pnpm/formdata-node@4.4.1/node_modules/formdata-node/lib/esm/isPlainObject.js"],"sourcesContent":["/*! node-domexception. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nif (!globalThis.DOMException) {\n try {\n const { MessageChannel } = require('worker_threads'),\n port = new MessageChannel().port1,\n ab = new ArrayBuffer()\n port.postMessage(ab, [ab, ab])\n } catch (err) {\n err.constructor.name === 'DOMException' && (\n globalThis.DOMException = err.constructor\n )\n }\n}\n\nmodule.exports = globalThis.DOMException\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _FileFromPath_path, _FileFromPath_start;\nimport { statSync, createReadStream, promises as fs } from \"fs\";\nimport { basename } from \"path\";\nimport DOMException from \"node-domexception\";\nimport { File } from \"./File.js\";\nimport isPlainObject from \"./isPlainObject.js\";\nexport * from \"./isFile.js\";\nconst MESSAGE = \"The requested file could not be read, \"\n + \"typically due to permission problems that have occurred after a reference \"\n + \"to a file was acquired.\";\nclass FileFromPath {\n constructor(input) {\n _FileFromPath_path.set(this, void 0);\n _FileFromPath_start.set(this, void 0);\n __classPrivateFieldSet(this, _FileFromPath_path, input.path, \"f\");\n __classPrivateFieldSet(this, _FileFromPath_start, input.start || 0, \"f\");\n this.name = basename(__classPrivateFieldGet(this, _FileFromPath_path, \"f\"));\n this.size = input.size;\n this.lastModified = input.lastModified;\n }\n slice(start, end) {\n return new FileFromPath({\n path: __classPrivateFieldGet(this, _FileFromPath_path, \"f\"),\n lastModified: this.lastModified,\n size: end - start,\n start\n });\n }\n async *stream() {\n const { mtimeMs } = await fs.stat(__classPrivateFieldGet(this, _FileFromPath_path, \"f\"));\n if (mtimeMs > this.lastModified) {\n throw new DOMException(MESSAGE, \"NotReadableError\");\n }\n if (this.size) {\n yield* createReadStream(__classPrivateFieldGet(this, _FileFromPath_path, \"f\"), {\n start: __classPrivateFieldGet(this, _FileFromPath_start, \"f\"),\n end: __classPrivateFieldGet(this, _FileFromPath_start, \"f\") + this.size - 1\n });\n }\n }\n get [(_FileFromPath_path = new WeakMap(), _FileFromPath_start = new WeakMap(), Symbol.toStringTag)]() {\n return \"File\";\n }\n}\nfunction createFileFromPath(path, { mtimeMs, size }, filenameOrOptions, options = {}) {\n let filename;\n if (isPlainObject(filenameOrOptions)) {\n [options, filename] = [filenameOrOptions, undefined];\n }\n else {\n filename = filenameOrOptions;\n }\n const file = new FileFromPath({ path, size, lastModified: mtimeMs });\n if (!filename) {\n filename = file.name;\n }\n return new File([file], filename, {\n ...options, lastModified: file.lastModified\n });\n}\nexport function fileFromPathSync(path, filenameOrOptions, options = {}) {\n const stats = statSync(path);\n return createFileFromPath(path, stats, filenameOrOptions, options);\n}\nexport async function fileFromPath(path, filenameOrOptions, options) {\n const stats = await fs.stat(path);\n return createFileFromPath(path, stats, filenameOrOptions, options);\n}\n","const getType = (value) => (Object.prototype.toString.call(value).slice(8, -1).toLowerCase());\nfunction isPlainObject(value) {\n if (getType(value) !== \"object\") {\n return false;\n }\n const pp = Object.getPrototypeOf(value);\n if (pp === null || pp === undefined) {\n return true;\n }\n const Ctor = pp.constructor && pp.constructor.toString();\n return Ctor === Object.toString();\n}\nexport default isPlainObject;\n"],"mappings":"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","names":["DOMException"]}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
findProjectRoot,
|
|
7
7
|
loadEnvFile,
|
|
8
8
|
validateProject
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-S2CH4HUZ.js";
|
|
10
10
|
import {
|
|
11
11
|
detail,
|
|
12
12
|
error,
|
|
@@ -17,9 +17,9 @@ import {
|
|
|
17
17
|
success,
|
|
18
18
|
warning
|
|
19
19
|
} from "./chunk-HJVVHYVN.js";
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-QUIDZO5G.js";
|
|
21
|
+
import "./chunk-UFDQ3C7Q.js";
|
|
22
|
+
import "./chunk-ZIY22VO7.js";
|
|
23
23
|
import "./chunk-7D4SUZUM.js";
|
|
24
24
|
|
|
25
25
|
// src/index.ts
|
|
@@ -105,7 +105,7 @@ program.command("dev").description("Start development server with hot reload").a
|
|
|
105
105
|
process.exit(2);
|
|
106
106
|
}
|
|
107
107
|
const globalOpts = program.opts();
|
|
108
|
-
const { runDevServer } = await import("./dev-
|
|
108
|
+
const { runDevServer } = await import("./dev-LZ4YHNDJ.js");
|
|
109
109
|
await runDevServer(projectDir, {
|
|
110
110
|
port: parseInt(options.port, 10),
|
|
111
111
|
apiOnly: options.apiOnly ?? false,
|
|
@@ -179,7 +179,7 @@ program.command("sync-dbt").description("Sync dbt project metadata into AI-reada
|
|
|
179
179
|
if (!options.targetDatabase) {
|
|
180
180
|
try {
|
|
181
181
|
const { readFile } = await import("fs/promises");
|
|
182
|
-
const { resolveConnection } = await import("./connection-utils-
|
|
182
|
+
const { resolveConnection } = await import("./connection-utils-FEUWER5I.js");
|
|
183
183
|
const { detectDatabaseMismatch } = await import("./rewrite-database-BOA4QPUR.js");
|
|
184
184
|
const catalogJsonStr = await readFile(join(projectDir, ".yamchart", "catalog.json"), "utf-8");
|
|
185
185
|
const catalogData = JSON.parse(catalogJsonStr);
|
|
@@ -233,7 +233,7 @@ program.command("test").description("Run model tests (@returns schema checks and
|
|
|
233
233
|
}
|
|
234
234
|
loadEnvFile(projectDir);
|
|
235
235
|
try {
|
|
236
|
-
const { testProject, formatTestOutput } = await import("./test-
|
|
236
|
+
const { testProject, formatTestOutput } = await import("./test-SRHVOXZB.js");
|
|
237
237
|
const result = await testProject(projectDir, model, {
|
|
238
238
|
connection: options.connection,
|
|
239
239
|
json: options.json
|
|
@@ -268,7 +268,7 @@ program.command("reset-password").description("Reset a user password (requires a
|
|
|
268
268
|
process.exit(2);
|
|
269
269
|
}
|
|
270
270
|
loadEnvFile(projectDir);
|
|
271
|
-
const { resetPassword } = await import("./reset-password-
|
|
271
|
+
const { resetPassword } = await import("./reset-password-YVCZKZPC.js");
|
|
272
272
|
await resetPassword(projectDir, options.email);
|
|
273
273
|
});
|
|
274
274
|
program.command("tables").description("List tables and views in the connected database").option("-c, --connection <name>", "Connection to use (overrides default)").option("-s, --schema <name>", "Filter to schema").option("-d, --database <name>", "Filter to database (Snowflake/Databricks)").option("--json", "Output as JSON").option("--source <type>", "Data source: auto, catalog, model, or db (default: auto)").option("--compare", "Compare local metadata against live database").action(async (options) => {
|
|
@@ -282,7 +282,7 @@ program.command("tables").description("List tables and views in the connected da
|
|
|
282
282
|
loadEnvFile(projectDir);
|
|
283
283
|
try {
|
|
284
284
|
if (options.compare) {
|
|
285
|
-
const { resolveTablesSource } = await import("./source-resolver-
|
|
285
|
+
const { resolveTablesSource } = await import("./source-resolver-HZQLOODU.js");
|
|
286
286
|
const { compareTables, formatCompareTables } = await import("./compare-RQFCEZIK.js");
|
|
287
287
|
let localResult;
|
|
288
288
|
try {
|
|
@@ -313,7 +313,7 @@ program.command("tables").description("List tables and views in the connected da
|
|
|
313
313
|
}
|
|
314
314
|
return;
|
|
315
315
|
}
|
|
316
|
-
const { listTables } = await import("./tables-
|
|
316
|
+
const { listTables } = await import("./tables-K5NAN2WK.js");
|
|
317
317
|
const result = await listTables(projectDir, {
|
|
318
318
|
...options,
|
|
319
319
|
source: options.source || "auto"
|
|
@@ -351,7 +351,7 @@ program.command("describe").description("Show columns and types for a table").ar
|
|
|
351
351
|
loadEnvFile(projectDir);
|
|
352
352
|
try {
|
|
353
353
|
if (options.compare) {
|
|
354
|
-
const { resolveDescribeSource } = await import("./source-resolver-
|
|
354
|
+
const { resolveDescribeSource } = await import("./source-resolver-HZQLOODU.js");
|
|
355
355
|
const { compareColumns, formatCompareColumns } = await import("./compare-RQFCEZIK.js");
|
|
356
356
|
let localResult;
|
|
357
357
|
try {
|
|
@@ -373,7 +373,7 @@ program.command("describe").description("Show columns and types for a table").ar
|
|
|
373
373
|
}
|
|
374
374
|
return;
|
|
375
375
|
}
|
|
376
|
-
const { describeTable } = await import("./describe-
|
|
376
|
+
const { describeTable } = await import("./describe-MEP72B56.js");
|
|
377
377
|
const result = await describeTable(projectDir, table, {
|
|
378
378
|
...options,
|
|
379
379
|
source: options.source || "auto"
|
|
@@ -412,8 +412,8 @@ program.command("query").description("Execute SQL against a connection").argumen
|
|
|
412
412
|
}
|
|
413
413
|
loadEnvFile(projectDir);
|
|
414
414
|
try {
|
|
415
|
-
const { executeQuery } = await import("./query-
|
|
416
|
-
const { formatTable, formatJSON } = await import("./connection-utils-
|
|
415
|
+
const { executeQuery } = await import("./query-2H3YOPI2.js");
|
|
416
|
+
const { formatTable, formatJSON } = await import("./connection-utils-FEUWER5I.js");
|
|
417
417
|
const limit = options.limit ? parseInt(options.limit, 10) : void 0;
|
|
418
418
|
const result = await executeQuery(projectDir, sql, {
|
|
419
419
|
connection: options.connection,
|
|
@@ -440,8 +440,8 @@ program.command("sample").description("Show sample rows from a table or dbt mode
|
|
|
440
440
|
}
|
|
441
441
|
loadEnvFile(projectDir);
|
|
442
442
|
try {
|
|
443
|
-
const { sampleTable } = await import("./sample-
|
|
444
|
-
const { formatTable, formatJSON } = await import("./connection-utils-
|
|
443
|
+
const { sampleTable } = await import("./sample-ODUGGSFA.js");
|
|
444
|
+
const { formatTable, formatJSON } = await import("./connection-utils-FEUWER5I.js");
|
|
445
445
|
const limit = options.limit ? parseInt(options.limit, 10) : void 0;
|
|
446
446
|
const result = await sampleTable(projectDir, table, {
|
|
447
447
|
connection: options.connection,
|
|
@@ -471,7 +471,7 @@ program.command("search").description("Search for tables and columns by keyword"
|
|
|
471
471
|
}
|
|
472
472
|
loadEnvFile(projectDir);
|
|
473
473
|
try {
|
|
474
|
-
const { searchDatabase } = await import("./search-
|
|
474
|
+
const { searchDatabase } = await import("./search-IPE4ISFB.js");
|
|
475
475
|
const result = await searchDatabase(projectDir, keyword, {
|
|
476
476
|
...options,
|
|
477
477
|
source: options.source || "auto"
|
|
@@ -525,7 +525,7 @@ catalogCmd.command("tables").description("List tables from cached catalog").opti
|
|
|
525
525
|
process.exit(2);
|
|
526
526
|
}
|
|
527
527
|
try {
|
|
528
|
-
const { listTables } = await import("./tables-
|
|
528
|
+
const { listTables } = await import("./tables-K5NAN2WK.js");
|
|
529
529
|
const result = await listTables(projectDir, {
|
|
530
530
|
source: "catalog",
|
|
531
531
|
schema: options.schema
|
|
@@ -567,7 +567,7 @@ catalogCmd.command("describe").description("Show cached columns and types for a
|
|
|
567
567
|
process.exit(2);
|
|
568
568
|
}
|
|
569
569
|
try {
|
|
570
|
-
const { describeTable } = await import("./describe-
|
|
570
|
+
const { describeTable } = await import("./describe-MEP72B56.js");
|
|
571
571
|
const result = await describeTable(projectDir, table, { source: "catalog" });
|
|
572
572
|
if (options.json) {
|
|
573
573
|
console.log(JSON.stringify(result.columns, null, 2));
|
|
@@ -609,7 +609,7 @@ catalogCmd.command("search").description("Search cached metadata for tables and
|
|
|
609
609
|
process.exit(2);
|
|
610
610
|
}
|
|
611
611
|
try {
|
|
612
|
-
const { searchDatabase } = await import("./search-
|
|
612
|
+
const { searchDatabase } = await import("./search-IPE4ISFB.js");
|
|
613
613
|
const result = await searchDatabase(projectDir, keyword, { source: "catalog" });
|
|
614
614
|
if (options.json) {
|
|
615
615
|
console.log(JSON.stringify(result.results, null, 2));
|
|
@@ -734,7 +734,7 @@ program.command("sync-warehouse").description("Sync warehouse table metadata int
|
|
|
734
734
|
}
|
|
735
735
|
loadEnvFile(projectDir);
|
|
736
736
|
try {
|
|
737
|
-
const { runSyncWarehouse } = await import("./sync-warehouse-
|
|
737
|
+
const { runSyncWarehouse } = await import("./sync-warehouse-26L6JDSV.js");
|
|
738
738
|
await runSyncWarehouse(projectDir, options);
|
|
739
739
|
} catch (err) {
|
|
740
740
|
error(err instanceof Error ? err.message : String(err));
|
|
@@ -785,7 +785,7 @@ program.command("advisor").description("AI-powered dbt model advisor \u2014 sugg
|
|
|
785
785
|
process.exit(2);
|
|
786
786
|
}
|
|
787
787
|
loadEnvFile(projectDir);
|
|
788
|
-
const { runAdvisor } = await import("./advisor-
|
|
788
|
+
const { runAdvisor } = await import("./advisor-O2BRAI4T.js");
|
|
789
789
|
await runAdvisor(projectDir, question, {
|
|
790
790
|
top: options.top ? parseInt(options.top, 10) : 5,
|
|
791
791
|
json: options.json,
|
|
@@ -806,7 +806,7 @@ var semanticCmd = program.command("semantic").description("Explore the semantic
|
|
|
806
806
|
const { readFile } = await import("fs/promises");
|
|
807
807
|
const catalogPath = join(projectDir, ".yamchart", "catalog.json");
|
|
808
808
|
const catalogJson = JSON.parse(await readFile(catalogPath, "utf-8"));
|
|
809
|
-
const { listSemanticEntities } = await import("./semantic-
|
|
809
|
+
const { listSemanticEntities } = await import("./semantic-K3MYXXJI.js");
|
|
810
810
|
const result = listSemanticEntities(catalogJson);
|
|
811
811
|
if (options.json) {
|
|
812
812
|
console.log(JSON.stringify(result.entities, null, 2));
|
|
@@ -853,7 +853,7 @@ semanticCmd.command("query").description("Run a structured query against the sem
|
|
|
853
853
|
const { readFile } = await import("fs/promises");
|
|
854
854
|
const catalogPath = join(projectDir, ".yamchart", "catalog.json");
|
|
855
855
|
const catalogJson = JSON.parse(await readFile(catalogPath, "utf-8"));
|
|
856
|
-
const { querySemanticEntity } = await import("./semantic-
|
|
856
|
+
const { querySemanticEntity } = await import("./semantic-K3MYXXJI.js");
|
|
857
857
|
const filters = (options.filter || []).map((f) => {
|
|
858
858
|
const eqIdx = f.indexOf("=");
|
|
859
859
|
if (eqIdx === -1) throw new Error(`Invalid filter format: "${f}". Use dimension=value`);
|
|
@@ -875,7 +875,7 @@ semanticCmd.command("query").description("Run a structured query against the sem
|
|
|
875
875
|
console.log(result.sql);
|
|
876
876
|
return;
|
|
877
877
|
}
|
|
878
|
-
const { resolveConnection, createConnector, formatTable, formatJSON } = await import("./connection-utils-
|
|
878
|
+
const { resolveConnection, createConnector, formatTable, formatJSON } = await import("./connection-utils-FEUWER5I.js");
|
|
879
879
|
const connection = await resolveConnection(projectDir, options.connection, program.opts().env);
|
|
880
880
|
const connector = createConnector(connection, projectDir);
|
|
881
881
|
const start = performance.now();
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{v as S,j as e,Q as $,e as W}from"./index-jlfTO7f5.js";import{a as h}from"./echarts-DtOYsfLX.js";import{l as I}from"./data-3vtzSuAZ.js";function O({label:o,value:s}){return e.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[e.jsx("span",{style:{fontSize:"18px",fontWeight:600,color:"var(--yc-color-text)"},children:s}),e.jsx("span",{style:{fontSize:"12px",color:"var(--yc-color-text-secondary)"},children:o})]})}function M({source:o,onOpen:s}){return e.jsxs("div",{onClick:()=>s(o.name),style:{border:"1px solid var(--yc-color-border)",borderRadius:"8px",padding:"16px",background:"var(--yc-color-surface)",cursor:"pointer",display:"flex",flexDirection:"column",gap:"12px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[e.jsx("span",{style:{fontSize:"15px",fontWeight:600,color:"var(--yc-color-text)"},children:o.name}),e.jsx("span",{style:{fontSize:"11px",fontWeight:500,padding:"2px 8px",borderRadius:"9999px",background:"var(--yc-color-bg)",color:"var(--yc-color-text-secondary)",border:"1px solid var(--yc-color-border)",letterSpacing:"0.04em"},children:o.type.toUpperCase()})]}),e.jsxs("div",{style:{display:"flex",gap:"24px"},children:[e.jsx(O,{label:"Tables",value:o.counts.tables}),e.jsx(O,{label:"Hunches",value:o.counts.pendingHunches}),e.jsx(O,{label:"Blindspots",value:o.counts.openBlindspots})]}),e.jsx("button",{onClick:t=>{t.stopPropagation(),s(o.name)},style:{alignSelf:"flex-start",fontSize:"13px",fontWeight:500,color:"var(--yc-color-primary)",background:"none",border:"none",padding:0,cursor:"pointer"},children:"Open →"})]})}function K(){const{data:o,isLoading:s,error:t}=S({queryKey:["sources"],queryFn:I}),n=c=>{window.location.hash=`/data/sources/${encodeURIComponent(c)}`};return e.jsxs("div",{className:"p-6 w-full",children:[e.jsx("h2",{className:"text-lg font-semibold mb-1",style:{color:"var(--yc-color-text)"},children:"Data Sources"}),e.jsx("p",{className:"text-sm mb-4",style:{color:"var(--yc-color-text-secondary)"},children:"Your connected data sources. Open one to browse its tables and add business context."}),t&&e.jsx("p",{className:"text-sm",style:{color:"var(--yc-color-danger)"},children:"Failed to load sources."}),s?e.jsx("p",{className:"text-sm",style:{color:"var(--yc-color-text-secondary)"},children:"Loading…"}):!o||o.length===0?e.jsxs("p",{className:"text-sm",style:{color:"var(--yc-color-text-secondary)"},children:["No connections configured. Add one in your project's ",e.jsx("code",{children:"connections/"})," directory."]}):e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(260px, 1fr))",gap:"16px"},children:o.map(c=>e.jsx(M,{source:c,onOpen:n},c.name))})]})}function J(o){const s=o.match(/event:\s*(\w+)\s*\ndata:\s*(\{[\s\S]*\})/);if(!s)return null;try{return{event:s[1],data:JSON.parse(s[2])}}catch{return null}}async function L(o,s="pending"){const t=new URLSearchParams({status:s,...o?{connection:o}:{}}),n=await fetch(`/api/hunches?${t}`);if(!n.ok)throw new Error("Failed to load hunches");return n.json()}async function U(o,s){return(await fetch(`/api/hunches/${o}/confirm`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s?{sql:s}:{})})).json()}async function V(o){return(await fetch(`/api/hunches/${o}/reject`,{method:"POST"})).json()}async function Q(o){return(await fetch(`/api/hunches/${o}/run`,{method:"POST"})).json()}async function G(o,s){const n=(await fetch("/api/learn",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({connection:o})})).body.getReader(),c=new TextDecoder;let d="";for(;;){const{done:p,value:a}=await n.read();if(p)break;d+=c.decode(a,{stream:!0});const l=d.split(`
|
|
2
|
+
|
|
3
|
+
`);d=l.pop()??"";for(const y of l){const u=J(y+`
|
|
4
|
+
|
|
5
|
+
`);u&&s(u)}}}async function R(o="open",s){const t=new URLSearchParams({status:o});return s&&t.set("connection",s),(await fetch(`/api/blindspots?${t}`)).json()}async function Y(o,s){return(await fetch(`/api/blindspots/${o}/answer`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({answer:s})})).json()}async function D(o){return(await fetch(`/api/blindspots/${o}/dismiss`,{method:"POST"})).json()}async function X(o,s){const n=(await fetch("/api/blindspots/scan",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({connection:o})})).body.getReader(),c=new TextDecoder;let d="";for(;;){const{done:p,value:a}=await n.read();if(p)break;d+=c.decode(a,{stream:!0});const l=d.split(`
|
|
6
|
+
|
|
7
|
+
`);d=l.pop()??"";for(const y of l){const u=J(y+`
|
|
8
|
+
|
|
9
|
+
`);u&&s(u)}}}const x=$(o=>({learning:!1,hunches:[],setLearning:s=>o({learning:s}),setPhase:s=>o({phase:s}),setHunches:s=>o({hunches:s}),removeHunch:s=>o(t=>({hunches:t.hunches.filter(n=>n.id!==s)}))}));function z({hunch:o,onConfirm:s,onReject:t,onRun:n,running:c}){const[d,p]=h.useState(o.sql);return e.jsxs("div",{className:"rounded-lg p-4 mb-3",style:{border:"1px solid var(--yc-color-border)",backgroundColor:"var(--yc-color-surface)"},children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsx("h3",{className:"font-medium",style:{color:"var(--yc-color-text)"},children:o.question}),o.confidence!=null&&e.jsxs("span",{className:"text-xs whitespace-nowrap",style:{color:"var(--yc-color-text-muted)"},children:[Math.round(o.confidence*100),"%"]})]}),o.rationale&&e.jsx("p",{className:"text-sm mt-1",style:{color:"var(--yc-color-text-secondary)"},children:o.rationale}),e.jsx("textarea",{className:"w-full font-mono text-sm mt-2 p-2 rounded",style:{backgroundColor:"var(--yc-color-input-bg)",border:"1px solid var(--yc-color-border)",color:"var(--yc-color-text)"},rows:3,value:d,onChange:a=>p(a.target.value),spellCheck:!1}),o.lastRunSample&&e.jsx("div",{className:"text-xs mt-2 overflow-auto max-h-40 rounded p-2",style:{backgroundColor:"var(--yc-color-input-bg)",color:"var(--yc-color-text-secondary)"},children:e.jsx("pre",{className:"font-mono",children:JSON.stringify(o.lastRunSample.rows.slice(0,5),null,2)})}),e.jsxs("div",{className:"flex gap-2 mt-3",children:[e.jsx("button",{onClick:()=>s(o.id,d),className:"px-3 py-1 rounded text-white text-sm hover:opacity-90",style:{backgroundColor:"var(--yc-color-primary)"},children:"Confirm"}),e.jsx("button",{onClick:()=>n(o.id,d),disabled:c,className:"px-3 py-1 rounded text-sm hover:opacity-80 disabled:opacity-50",style:{border:"1px solid var(--yc-color-border)",color:"var(--yc-color-text)"},children:c?"Running…":"Run"}),e.jsx("button",{onClick:()=>t(o.id),className:"px-3 py-1 rounded text-sm hover:opacity-80",style:{border:"1px solid var(--yc-color-border)",color:"var(--yc-color-text-secondary)"},children:"Reject"})]})]})}function Z({connection:o,onComplete:s}){const t=x(l=>l.learning),n=x(l=>l.phase),c=x(l=>l.setLearning),d=x(l=>l.setPhase),p=l=>l==="profiling"?"Profiling the source…":l==="generating"?"Generating hunches…":l==="error"?"Something went wrong.":"Learning…",a=async()=>{c(!0),d("profiling");try{await G(o,l=>{if(l.event==="status")d(l.data.phase);else if(l.event==="done"){const y=l.data.hunches??[];s==null||s(y)}else l.event==="error"&&d("error")})}catch{d("error")}finally{c(!1)}};return e.jsxs("div",{className:"rounded-lg p-5 mb-4 flex items-center justify-between gap-4",style:{border:"1px solid var(--yc-color-border)",backgroundColor:"var(--yc-color-surface)"},children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-medium",style:{color:"var(--yc-color-text)"},children:"Learn this source"}),e.jsxs("p",{className:"text-sm mt-1",style:{color:"var(--yc-color-text-secondary)"},children:["Profile ",e.jsx("span",{className:"font-mono",children:o})," and propose business questions you can confirm or edit."]}),t&&e.jsx("p",{className:"text-sm mt-2",style:{color:"var(--yc-color-primary)"},children:p(n)})]}),e.jsx("button",{onClick:a,disabled:t,className:"px-4 py-2 rounded text-white text-sm whitespace-nowrap hover:opacity-90 disabled:opacity-50",style:{backgroundColor:"var(--yc-color-primary)"},children:t?"Learning…":"Learn this source"})]})}function _({connection:o}={}){var r,g,A;const{data:s}=W(),t=((r=s==null?void 0:s.defaults)==null?void 0:r.connection)??((A=(g=s==null?void 0:s.connections)==null?void 0:g[0])==null?void 0:A.name)??"",n=o??t,[c,d]=h.useState("pending"),p=x(i=>i.hunches),a=x(i=>i.setHunches),l=x(i=>i.removeHunch),[y,u]=h.useState(null),{data:f,isLoading:P,error:H}=S({queryKey:["hunches",n,"pending"],queryFn:()=>L(n||void 0,"pending"),enabled:!!n&&c==="pending"}),{data:b,isLoading:T,error:q}=S({queryKey:["hunches",n,"confirmed"],queryFn:()=>L(n||void 0,"confirmed"),enabled:!!n&&c==="approved"});h.useEffect(()=>{f&&a(f)},[f,a]);const C=async(i,m)=>{l(i);try{await U(i,m)}catch{a(await L(n||void 0,"pending"))}},k=async i=>{l(i);try{await V(i)}catch{a(await L(n||void 0,"pending"))}},j=async i=>{u(i);try{const m=await Q(i);m.sample&&a(x.getState().hunches.map(N=>N.id===i?{...N,lastRunSample:m.sample}:N))}finally{u(null)}},B=i=>{const m=new Set(x.getState().hunches.map(F=>F.id)),N=i.filter(F=>!m.has(F.id));a([...N,...x.getState().hunches])},w=(i,m)=>e.jsx("button",{onClick:()=>d(i),style:{color:c===i?"var(--yc-color-primary)":"var(--yc-color-text-secondary)",borderBottom:c===i?"2px solid var(--yc-color-primary)":"2px solid transparent",paddingBottom:"6px",marginRight:"16px",background:"none",border:"none",cursor:"pointer",fontSize:"14px",fontWeight:c===i?600:400},children:m});return e.jsxs("div",{className:"p-6 max-w-3xl mx-auto w-full",children:[e.jsx("h2",{className:"text-lg font-semibold mb-1",style:{color:"var(--yc-color-text)"},children:"Hunches"}),e.jsx("p",{className:"text-sm mb-4",style:{color:"var(--yc-color-text-secondary)"},children:"Confirm, edit, run, or reject the questions learned from your source."}),e.jsxs("div",{style:{display:"flex",borderBottom:"1px solid var(--yc-color-border)",marginBottom:"16px"},children:[w("pending","Pending"),w("approved","Approved")]}),c==="pending"&&e.jsxs(e.Fragment,{children:[n?e.jsx(Z,{connection:n,onComplete:B}):e.jsx("p",{className:"text-sm",style:{color:"var(--yc-color-text-secondary)"},children:"No connection configured."}),H&&e.jsx("p",{className:"text-sm",style:{color:"var(--yc-color-danger)"},children:"Failed to load hunches."}),P?e.jsx("p",{className:"text-sm",style:{color:"var(--yc-color-text-secondary)"},children:"Loading…"}):p.length===0?e.jsx("p",{className:"text-sm",style:{color:"var(--yc-color-text-secondary)"},children:"No pending hunches. Learn this source to generate some."}):p.map(i=>e.jsx(z,{hunch:i,onConfirm:C,onReject:k,onRun:j,running:y===i.id},i.id))]}),c==="approved"&&e.jsxs(e.Fragment,{children:[q&&e.jsx("p",{className:"text-sm",style:{color:"var(--yc-color-danger)"},children:"Failed to load approved hunches."}),T?e.jsx("p",{className:"text-sm",style:{color:"var(--yc-color-text-secondary)"},children:"Loading…"}):!b||b.length===0?e.jsx("p",{className:"text-sm",style:{color:"var(--yc-color-text-secondary)"},children:"No approved hunches yet. Confirm some from the Pending tab."}):b.map(i=>e.jsx(z,{hunch:i,onConfirm:C,onReject:k,onRun:j,running:y===i.id},i.id))]})]})}const v=$(o=>({scanning:!1,blindspots:[],setScanning:s=>o({scanning:s}),setPhase:s=>o({phase:s}),setBlindspots:s=>o({blindspots:s}),removeBlindspot:s=>o(t=>({blindspots:t.blindspots.filter(n=>n.id!==s)}))}));function ee({blindspot:o,onAnswer:s,onDismiss:t,onAccept:n}){const[c,d]=h.useState(""),p=o.kind==="opportunity";return e.jsxs("div",{className:"rounded-lg p-4 mb-3",style:{border:"1px solid var(--yc-color-border)",backgroundColor:"var(--yc-color-surface)"},children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full",style:{border:"1px solid var(--yc-color-border)",color:"var(--yc-color-text-secondary)"},children:p?"opportunity":"context"}),e.jsx("h3",{className:"font-medium",style:{color:"var(--yc-color-text)"},children:o.title})]}),e.jsx("p",{className:"text-sm mt-1",style:{color:"var(--yc-color-text-secondary)"},children:o.detail}),p&&o.suggestedModel&&e.jsxs("div",{className:"text-xs mt-2 p-2 rounded",style:{backgroundColor:"var(--yc-color-input-bg)"},children:[e.jsx("div",{className:"font-mono",style:{color:"var(--yc-color-text)"},children:o.suggestedModel.name}),e.jsx("div",{style:{color:"var(--yc-color-text-secondary)"},children:o.suggestedModel.description}),o.suggestedModel.columns.length>0&&e.jsxs("div",{className:"mt-1",style:{color:"var(--yc-color-text-secondary)"},children:["cols: ",o.suggestedModel.columns.map(a=>a.name).join(", ")]})]}),!p&&e.jsx("textarea",{className:"w-full text-sm mt-2 p-2 rounded",style:{backgroundColor:"var(--yc-color-input-bg)",border:"1px solid var(--yc-color-border)",color:"var(--yc-color-text)"},rows:2,placeholder:"Explain this in business terms…",value:c,onChange:a=>d(a.target.value)}),e.jsxs("div",{className:"flex gap-2 mt-3",children:[p?e.jsx("button",{onClick:()=>n(o.id),className:"px-3 py-1 rounded text-white text-sm hover:opacity-90",style:{backgroundColor:"var(--yc-color-primary)"},children:"Accept"}):e.jsx("button",{onClick:()=>s(o.id,c),className:"px-3 py-1 rounded text-white text-sm hover:opacity-90",style:{backgroundColor:"var(--yc-color-primary)"},children:"Save"}),e.jsx("button",{onClick:()=>t(o.id),className:"px-3 py-1 rounded text-sm hover:opacity-80",style:{border:"1px solid var(--yc-color-border)",color:"var(--yc-color-text-secondary)"},children:"Dismiss"})]})]})}function oe({connection:o}={}){var j,B,w;const{data:s}=W(),t=((j=s==null?void 0:s.defaults)==null?void 0:j.connection)??((w=(B=s==null?void 0:s.connections)==null?void 0:B[0])==null?void 0:w.name)??"",n=o??t,c=v(r=>r.blindspots),d=v(r=>r.setBlindspots),p=v(r=>r.removeBlindspot),a=v(r=>r.scanning),l=v(r=>r.phase),y=v(r=>r.setScanning),u=v(r=>r.setPhase),{data:f,isLoading:P,error:H}=S({queryKey:["blindspots",n,"open"],queryFn:()=>R("open",n||void 0),enabled:!!n});h.useEffect(()=>{f&&d(f)},[f,d]);const b=async(r,g)=>{if(g.trim()){p(r);try{await Y(r,g)}catch{d(await R("open",n||void 0))}}},T=async r=>{p(r);try{await D(r)}catch{d(await R("open",n||void 0))}},q=async r=>{p(r);try{await D(r),alert("Sent to the dbt advisor — coming soon")}catch{d(await R("open",n||void 0))}},C=async()=>{if(n){y(!0),u("scanning");try{await X(n,r=>{if(r.event==="status")u(r.data.phase);else if(r.event==="done"){const g=r.data.blindspots??[];d(g)}else r.event==="error"&&u("error")})}catch{u("error")}finally{y(!1)}}},k=r=>r==="scanning"?"Scanning the source…":r==="error"?"Something went wrong.":"Scanning…";return e.jsxs("div",{className:"p-6 max-w-3xl mx-auto w-full",children:[e.jsx("h2",{className:"text-lg font-semibold mb-1",style:{color:"var(--yc-color-text)"},children:"Blindspots"}),e.jsx("p",{className:"text-sm mb-4",style:{color:"var(--yc-color-text-secondary)"},children:"Where the system lacks business context, plus useful marts it thinks are missing."}),e.jsxs("div",{className:"rounded-lg p-5 mb-4 flex items-center justify-between gap-4",style:{border:"1px solid var(--yc-color-border)",backgroundColor:"var(--yc-color-surface)"},children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-medium",style:{color:"var(--yc-color-text)"},children:"Scan for blindspots"}),e.jsx("p",{className:"text-sm mt-1",style:{color:"var(--yc-color-text-secondary)"},children:n?e.jsxs(e.Fragment,{children:["Audit ",e.jsx("span",{className:"font-mono",children:n})," for ambiguities and missing marts."]}):"No connection configured."}),a&&e.jsx("p",{className:"text-sm mt-2",style:{color:"var(--yc-color-primary)"},children:k(l)})]}),e.jsx("button",{onClick:C,disabled:a||!n,className:"px-4 py-2 rounded text-white text-sm whitespace-nowrap hover:opacity-90 disabled:opacity-50",style:{backgroundColor:"var(--yc-color-primary)"},children:a?"Scanning…":"Scan for blindspots"})]}),H&&e.jsx("p",{className:"text-sm",style:{color:"var(--yc-color-danger)"},children:"Failed to load blindspots."}),P?e.jsx("p",{className:"text-sm",style:{color:"var(--yc-color-text-secondary)"},children:"Loading…"}):c.length===0?e.jsx("p",{className:"text-sm",style:{color:"var(--yc-color-text-secondary)"},children:"No open blindspots. Scan this source to find some."}):c.map(r=>e.jsx(ee,{blindspot:r,onAnswer:b,onDismiss:T,onAccept:q},r.id))]})}const se=[{id:"sources",label:"Data Sources"},{id:"hunches",label:"Hunches"},{id:"blindspots",label:"Blindspots"}];function E({value:o,onChange:s}){const{data:t}=S({queryKey:["sources"],queryFn:I});return e.jsxs("div",{style:{padding:"12px 24px 0",display:"flex",alignItems:"center",gap:"8px"},children:[e.jsx("label",{htmlFor:"source-selector",style:{fontSize:"13px",color:"var(--yc-color-text-secondary)",whiteSpace:"nowrap"},children:"Source:"}),e.jsxs("select",{id:"source-selector",value:o,onChange:n=>s(n.target.value),style:{fontSize:"13px",padding:"4px 8px",borderRadius:"6px",border:"1px solid var(--yc-color-border)",backgroundColor:"var(--yc-color-surface)",color:"var(--yc-color-text)",cursor:"pointer"},children:[e.jsx("option",{value:"",children:"All sources"}),t==null?void 0:t.map(n=>e.jsx("option",{value:n.name,children:n.name},n.name))]})]})}function ce({tab:o,onTabChange:s}){const[t,n]=h.useState(""),[c,d]=h.useState(""),p=(a,l)=>e.jsx("button",{onClick:()=>s(a),style:{color:o===a?"var(--yc-color-primary)":"var(--yc-color-text-secondary)",borderBottom:o===a?"2px solid var(--yc-color-primary)":"2px solid transparent",paddingBottom:"6px",marginRight:"16px",background:"none",border:"none",cursor:"pointer",fontSize:"14px",fontWeight:o===a?600:400},children:l},a);return e.jsxs("div",{className:"flex flex-col h-full w-full",children:[e.jsx("div",{style:{display:"flex",borderBottom:"1px solid var(--yc-color-border)",padding:"16px 24px 0"},children:se.map(a=>p(a.id,a.label))}),e.jsxs("div",{className:"flex-1 overflow-y-auto",children:[o==="sources"&&e.jsx(K,{}),o==="hunches"&&e.jsxs(e.Fragment,{children:[e.jsx(E,{value:t,onChange:n}),e.jsx(_,{connection:t||void 0})]}),o==="blindspots"&&e.jsxs(e.Fragment,{children:[e.jsx(E,{value:c,onChange:d}),e.jsx(oe,{connection:c||void 0})]})]})]})}export{ce as DataView};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as xe,u as he,v as me,e as be,w as $,j as t,x as E,E as ce,M as fe,y as ve,z as je,I as Ce,a as S}from"./index-
|
|
1
|
+
import{t as xe,u as he,v as me,e as be,w as $,j as t,x as E,E as ce,M as fe,y as ve,z as je,I as Ce,a as S}from"./index-jlfTO7f5.js";import{a as s}from"./echarts-DtOYsfLX.js";const ge=`
|
|
2
2
|
.rdp-root {
|
|
3
3
|
--rdp-accent-color: var(--yc-color-primary, #2563eb);
|
|
4
4
|
--rdp-accent-background-color: color-mix(in srgb, var(--yc-color-primary, #2563eb) 15%, transparent);
|