react-semaphor 0.1.459 → 0.1.460
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/analytics-protocol/index.cjs +1 -1
- package/dist/analytics-protocol/index.js +32 -32
- package/dist/brand-studio/index.cjs +1 -1
- package/dist/brand-studio/index.js +4 -4
- package/dist/briefings/index.cjs +1 -1
- package/dist/briefings/index.js +4 -4
- package/dist/chunks/{analyze-result-contract-BbRJ-C06.js → analyze-result-contract-DROq4vgY.js} +1 -1
- package/dist/chunks/{analyze-result-contract-LPDNldic.cjs → analyze-result-contract-DSGoFuXQ.cjs} +1 -1
- package/dist/chunks/canonical-result-keys-CEQefvdO.js +33 -0
- package/dist/chunks/canonical-result-keys-Cb96edol.cjs +1 -0
- package/dist/chunks/{common-types-H51FLKB7.js → common-types-BHVKgxRR.js} +1 -1
- package/dist/chunks/{common-types-C57kJ59w.cjs → common-types-BcV9PD9D.cjs} +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-ClCj98sq.js → dashboard-briefing-launcher-B07JnyCb.js} +60 -61
- package/dist/chunks/{dashboard-briefing-launcher-DHtEouuH.cjs → dashboard-briefing-launcher-BCkOKkCv.cjs} +2 -2
- package/dist/chunks/{dashboard-controls-VRShl9J0.cjs → dashboard-controls-BpxouYOZ.cjs} +1 -1
- package/dist/chunks/{dashboard-controls-B8gsKlxc.js → dashboard-controls-C8OxHQV6.js} +44 -45
- package/dist/chunks/dashboard-filter-value-compatibility-KXIyvbhc.js +677 -0
- package/dist/chunks/dashboard-filter-value-compatibility-UapptYnn.cjs +1 -0
- package/dist/chunks/dashboard-input-contract-BkRFQ7Tq.cjs +1 -0
- package/dist/chunks/{dashboard-date-comparison-definition-DC3ekV2S.js → dashboard-input-contract-D5dxTWJ5.js} +41 -25
- package/dist/chunks/dashboard-json-Bc-iIwxF.cjs +1 -0
- package/dist/chunks/{dashboard-json-i_Auue_K.js → dashboard-json-CecgbGtq.js} +13 -14
- package/dist/chunks/{edit-dashboard-visual-B3JF0fe4.js → edit-dashboard-visual-CpJKJaER.js} +880 -894
- package/dist/chunks/{edit-dashboard-visual-DWWyT55u.cjs → edit-dashboard-visual-xacUS2i5.cjs} +28 -28
- package/dist/chunks/{editor-action-buttons-BTlCsP63.cjs → editor-action-buttons-23Wf8EMx.cjs} +2 -2
- package/dist/chunks/{editor-action-buttons-C9x3nGnb.js → editor-action-buttons-DEoieV2G.js} +28 -28
- package/dist/chunks/index-B9c22LmC.cjs +1392 -0
- package/dist/chunks/{index-BS2-ZZGf.js → index-DDoyXYWM.js} +43665 -41560
- package/dist/chunks/{index-BIFLI8ul.js → index-De_7nrwb.js} +10 -10
- package/dist/chunks/index-DjjKJPDy.cjs +4 -0
- package/dist/chunks/{matrix-result-contract-CofATICL.js → matrix-result-contract-BTpPuHOc.js} +88 -104
- package/dist/chunks/matrix-result-contract-ZRNfeIbI.cjs +1 -0
- package/dist/chunks/{pivot-header-presentation-B9nXXKlW.cjs → pivot-header-presentation-BijPbP33.cjs} +1 -1
- package/dist/chunks/{pivot-header-presentation-D-0jvUwn.js → pivot-header-presentation-DW0gKG8g.js} +2 -2
- package/dist/chunks/{pivot-result-identity-Bb4EixVN.cjs → pivot-result-identity-DxHtiKVj.cjs} +1 -1
- package/dist/chunks/{pivot-result-identity-DU1v-5Xk.js → pivot-result-identity-Z9tN2tEV.js} +1 -1
- package/dist/chunks/{pivot-result-lifecycle-DTLRuDEW.cjs → pivot-result-lifecycle-BXzIlQVu.cjs} +1 -1
- package/dist/chunks/{pivot-result-lifecycle-CHWEGU2o.js → pivot-result-lifecycle-g2U-vzQb.js} +7 -7
- package/dist/chunks/{raw-temporal-contract-BtjH_G-d.cjs → raw-temporal-contract-DfAvqNMo.cjs} +1 -1
- package/dist/chunks/{raw-temporal-contract-CxncLze5.js → raw-temporal-contract-UtAqoOZO.js} +1 -1
- package/dist/chunks/{report-preferences-dialog-BDpkcUtz.js → report-preferences-dialog-CZiNX1Ri.js} +6 -6
- package/dist/chunks/{report-preferences-dialog-BK0yAJnQ.cjs → report-preferences-dialog-D_N6NXnq.cjs} +1 -1
- package/dist/chunks/{report-runtime-context-DqxS4wbi.cjs → report-runtime-context-C0NfLPfc.cjs} +1 -1
- package/dist/chunks/{report-runtime-context-SM6YO61_.js → report-runtime-context-CNncA3VD.js} +11 -11
- package/dist/chunks/{saved-temporal-bucket-format-CFfWXRl9.cjs → saved-temporal-bucket-format-3QKveR3v.cjs} +1 -1
- package/dist/chunks/{saved-temporal-bucket-format-SGAV0ivR.js → saved-temporal-bucket-format-Dd2eixTH.js} +11 -11
- package/dist/chunks/switch-DNFbgZz4.cjs +138 -0
- package/dist/chunks/{switch-DQR-Va05.js → switch-DSZobe8w.js} +6542 -5189
- package/dist/chunks/{temporal-bucket-5UYEotyQ.js → temporal-bucket-C85rmFmC.js} +4 -4
- package/dist/chunks/temporal-bucket-authoring-1fZuPAVb.js +653 -0
- package/dist/chunks/temporal-bucket-authoring-BK1UhYpD.cjs +1 -0
- package/dist/chunks/{temporal-bucket-contract-D5d-xEl3.js → temporal-bucket-contract-DXXNZssK.js} +1 -1
- package/dist/chunks/{temporal-bucket-contract-D2-93DGr.cjs → temporal-bucket-contract-xFkvboaw.cjs} +1 -1
- package/dist/chunks/{temporal-bucket-DHY1y9lq.cjs → temporal-bucket-pMfghsLX.cjs} +1 -1
- package/dist/chunks/{token-types-GbxRUozo.js → token-types-BLxc7UwR.js} +1 -1
- package/dist/chunks/{token-types-D7CaaI80.cjs → token-types-BYYO109W.cjs} +1 -1
- package/dist/chunks/{update-policy-hednMF-0.js → update-policy-CB8XJIoY.js} +1 -1
- package/dist/chunks/{update-policy-BmiOd0PB.cjs → update-policy-DMjjGjQY.cjs} +1 -1
- package/dist/chunks/{validators-DEmd8Sin.js → validators-DVd8s3qY.js} +416 -350
- package/dist/chunks/validators-dJlwubP4.cjs +1 -0
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +2 -2
- package/dist/dashboard-authoring/index.cjs +3 -3
- package/dist/dashboard-authoring/index.js +328 -311
- package/dist/data-app-builder/index.cjs +1 -1
- package/dist/data-app-builder/index.js +2 -2
- package/dist/data-app-codegen/index.cjs +1 -1
- package/dist/data-app-codegen/index.js +2 -2
- package/dist/data-app-codegen-node/index.cjs +1 -1
- package/dist/data-app-codegen-node/index.js +3 -3
- package/dist/data-app-sdk/index.cjs +1 -1
- package/dist/data-app-sdk/index.js +55 -55
- package/dist/data-app-sdk-adapters/index.cjs +1 -1
- package/dist/data-app-sdk-adapters/index.js +61 -56
- package/dist/data-app-sdk-validation/index.cjs +1 -1
- package/dist/data-app-sdk-validation/index.js +9 -9
- package/dist/format-utils/index.cjs +1 -1
- package/dist/format-utils/index.js +15 -15
- package/dist/index.cjs +1 -1
- package/dist/index.js +154 -155
- package/dist/report-runtime-context/index.cjs +1 -1
- package/dist/report-runtime-context/index.js +2 -2
- package/dist/style.css +1 -1
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +3 -3
- package/dist/types/analytics-protocol.d.ts +16 -8
- package/dist/types/briefings.d.ts +80 -9
- package/dist/types/dashboard-assistant.d.ts +11 -6
- package/dist/types/dashboard-authoring.d.ts +242 -15
- package/dist/types/dashboard.d.ts +94 -10
- package/dist/types/data-app-builder.d.ts +11 -6
- package/dist/types/data-app-codegen-node.d.ts +16 -8
- package/dist/types/data-app-codegen.d.ts +16 -8
- package/dist/types/data-app-sdk-adapters.d.ts +17 -11
- package/dist/types/data-app-sdk-validation.d.ts +17 -11
- package/dist/types/data-app-sdk.d.ts +17 -11
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.js +4 -4
- package/dist/types/main.d.ts +210 -16
- package/dist/types/shared.d.ts +80 -9
- package/dist/types/surfboard.d.ts +94 -10
- package/dist/types/types.d.ts +94 -10
- package/package.json +1 -1
- package/dist/chunks/canonical-result-keys-BA0HCP4e.cjs +0 -1
- package/dist/chunks/canonical-result-keys-D6avdjpA.js +0 -467
- package/dist/chunks/dashboard-date-comparison-definition-Ces4alFm.cjs +0 -1
- package/dist/chunks/dashboard-json-BhvPMpZA.cjs +0 -1
- package/dist/chunks/index-DHF-2AqS.cjs +0 -1392
- package/dist/chunks/index-k8tEp0ys.cjs +0 -4
- package/dist/chunks/matrix-result-contract-zamd9euI.cjs +0 -1
- package/dist/chunks/switch-f3TuZNLr.cjs +0 -138
- package/dist/chunks/temporal-bucket-authoring-K1kE6R_z.js +0 -222
- package/dist/chunks/temporal-bucket-authoring-o3Emn05L.cjs +0 -1
- package/dist/chunks/validators-BDYprKI9.cjs +0 -1
|
@@ -23,18 +23,18 @@ const Ai = [
|
|
|
23
23
|
"quarter_long",
|
|
24
24
|
"fiscal_quarter_short",
|
|
25
25
|
"fiscal_year"
|
|
26
|
-
],
|
|
26
|
+
], An = {
|
|
27
27
|
invalidMetadata: "invalid_raw_temporal_metadata"
|
|
28
28
|
};
|
|
29
|
-
function
|
|
29
|
+
function Ri(e) {
|
|
30
30
|
return e === "second" || e === "minute" || e === "hour" ? "datetime" : "date";
|
|
31
31
|
}
|
|
32
|
-
const
|
|
32
|
+
const Rn = {
|
|
33
33
|
missingMetadata: "missing_temporal_bucket_metadata",
|
|
34
34
|
invalidMetadata: "invalid_temporal_bucket_metadata",
|
|
35
35
|
invalidValue: "invalid_temporal_bucket_value"
|
|
36
|
-
},
|
|
37
|
-
function
|
|
36
|
+
}, Mn = "__auto_count__";
|
|
37
|
+
function Mi(e) {
|
|
38
38
|
try {
|
|
39
39
|
return new Intl.DateTimeFormat("en-US", { timeZone: e }).format(), !0;
|
|
40
40
|
} catch {
|
|
@@ -85,7 +85,7 @@ const Ti = {
|
|
|
85
85
|
function x(e) {
|
|
86
86
|
return typeof e == "string" && e.trim().length > 0;
|
|
87
87
|
}
|
|
88
|
-
function
|
|
88
|
+
function Tn(e) {
|
|
89
89
|
return e ? e.kind === "semantic" ? !!(x(e.domainId) && (x(e.datasetId) || x(e.datasetName))) : e.kind === "physical" ? x(e.connectionId) && x(e.tableName) : x(e.connectionId) : !1;
|
|
90
90
|
}
|
|
91
91
|
function ae(e) {
|
|
@@ -106,7 +106,7 @@ function ae(e) {
|
|
|
106
106
|
e.label || ""
|
|
107
107
|
].join(":") : "";
|
|
108
108
|
}
|
|
109
|
-
function
|
|
109
|
+
function ge(e, i) {
|
|
110
110
|
return !e || !i ? e === i : e.kind !== i.kind ? !1 : e.kind === "semantic" && i.kind === "semantic" ? e.domainId !== i.domainId ? !1 : e.datasetId && i.datasetId ? e.datasetId === i.datasetId : e.datasetName === i.datasetName : ae(e) === ae(i);
|
|
111
111
|
}
|
|
112
112
|
function Le(e, i) {
|
|
@@ -118,11 +118,11 @@ function Le(e, i) {
|
|
|
118
118
|
connectionId: e.connectionId || i.connectionId
|
|
119
119
|
};
|
|
120
120
|
}
|
|
121
|
-
function
|
|
121
|
+
function jn(e) {
|
|
122
122
|
const i = [];
|
|
123
123
|
for (const t of e) {
|
|
124
124
|
const n = i.findIndex(
|
|
125
|
-
(s) =>
|
|
125
|
+
(s) => ge(s, t)
|
|
126
126
|
);
|
|
127
127
|
if (n === -1) {
|
|
128
128
|
i.push(t);
|
|
@@ -136,24 +136,24 @@ function Mn(e) {
|
|
|
136
136
|
return i;
|
|
137
137
|
}
|
|
138
138
|
function Ei(e, i) {
|
|
139
|
-
return e.name === i.name &&
|
|
139
|
+
return e.name === i.name && ge(e.source, i.source);
|
|
140
140
|
}
|
|
141
141
|
function Ci(e) {
|
|
142
142
|
return [
|
|
143
143
|
e.source ? ae(e.source) : "unknown",
|
|
144
|
-
|
|
144
|
+
he(e),
|
|
145
145
|
e.name
|
|
146
146
|
].filter(Boolean).join(":");
|
|
147
147
|
}
|
|
148
|
-
function
|
|
149
|
-
return
|
|
148
|
+
function he(e) {
|
|
149
|
+
return Fi(
|
|
150
150
|
e.aggregate || ji
|
|
151
151
|
);
|
|
152
152
|
}
|
|
153
|
-
function
|
|
153
|
+
function Fi(e) {
|
|
154
154
|
return e.trim().toUpperCase();
|
|
155
155
|
}
|
|
156
|
-
function
|
|
156
|
+
function En(e, i) {
|
|
157
157
|
return {
|
|
158
158
|
...e,
|
|
159
159
|
label: e.label || i.label,
|
|
@@ -162,19 +162,19 @@ function Rn(e, i) {
|
|
|
162
162
|
source: e.source && i.source ? Le(e.source, i.source) : e.source || i.source
|
|
163
163
|
};
|
|
164
164
|
}
|
|
165
|
-
const ne = "semaphor-data-app-codegen-summary/v1",
|
|
165
|
+
const ne = "semaphor-data-app-codegen-summary/v1", Cn = "semaphor-data-app-codegen-summary-validator/v2", Di = /* @__PURE__ */ new Set([
|
|
166
166
|
"metric",
|
|
167
167
|
"records",
|
|
168
168
|
"matrix",
|
|
169
169
|
"analysis",
|
|
170
170
|
"sql_fallback"
|
|
171
|
-
]),
|
|
171
|
+
]), Ni = /* @__PURE__ */ new Set([
|
|
172
172
|
"semaphor.metric",
|
|
173
173
|
"semaphor.records",
|
|
174
174
|
"semaphor.matrix",
|
|
175
175
|
"semaphor.analysis",
|
|
176
176
|
"semaphor.sql"
|
|
177
|
-
]),
|
|
177
|
+
]), qi = /* @__PURE__ */ new Set([
|
|
178
178
|
"SUM",
|
|
179
179
|
"COUNT",
|
|
180
180
|
"AVG",
|
|
@@ -283,7 +283,7 @@ const ne = "semaphor-data-app-codegen-summary/v1", Tn = "semaphor-data-app-codeg
|
|
|
283
283
|
"requires_sql_escape_hatch",
|
|
284
284
|
"unsupported_sdk_capability"
|
|
285
285
|
]);
|
|
286
|
-
function
|
|
286
|
+
function Fn(e) {
|
|
287
287
|
return Ue(e).ok;
|
|
288
288
|
}
|
|
289
289
|
function Ue(e) {
|
|
@@ -318,12 +318,12 @@ function Ui(e) {
|
|
|
318
318
|
const i = Array.isArray(e.unsupportedInsights) && e.unsupportedInsights.some(
|
|
319
319
|
(l) => {
|
|
320
320
|
var d;
|
|
321
|
-
return
|
|
321
|
+
return xe.has((d = c(l)) == null ? void 0 : d.reason);
|
|
322
322
|
}
|
|
323
323
|
), t = Array.isArray(e.views) && e.views.some((l) => {
|
|
324
324
|
var u;
|
|
325
325
|
const d = c((u = c(l)) == null ? void 0 : u.computation);
|
|
326
|
-
return (d == null ? void 0 : d.kind) === "unsupported" &&
|
|
326
|
+
return (d == null ? void 0 : d.kind) === "unsupported" && xe.has(d.reason);
|
|
327
327
|
});
|
|
328
328
|
if (!i && !t)
|
|
329
329
|
return [];
|
|
@@ -336,7 +336,7 @@ function Ui(e) {
|
|
|
336
336
|
"nextRequiredTool.name must be semaphor_propose_semantic_model_change when semantic model repair gaps are present."
|
|
337
337
|
), n;
|
|
338
338
|
}
|
|
339
|
-
const
|
|
339
|
+
const xe = /* @__PURE__ */ new Set([
|
|
340
340
|
"missing_relationship",
|
|
341
341
|
"raw_identifier_filter_options"
|
|
342
342
|
]);
|
|
@@ -477,7 +477,7 @@ function Wi(e) {
|
|
|
477
477
|
return typeof e.sourceKey == "string" && e.sourceKey.trim() ? [e.sourceKey, Ge(e), e.name].filter(Boolean).join(":") : Ci(e);
|
|
478
478
|
}
|
|
479
479
|
function Ge(e) {
|
|
480
|
-
return
|
|
480
|
+
return he(e);
|
|
481
481
|
}
|
|
482
482
|
function X(e, i) {
|
|
483
483
|
var p;
|
|
@@ -522,16 +522,16 @@ function Ji({
|
|
|
522
522
|
}), s);
|
|
523
523
|
}
|
|
524
524
|
function et(e, i) {
|
|
525
|
-
return !e || !i ? !1 : e.name === i.name && (e.role || "measure") === (i.role || "measure") &&
|
|
525
|
+
return !e || !i ? !1 : e.name === i.name && (e.role || "measure") === (i.role || "measure") && Ae(e) === Ae(i) && it(e, i);
|
|
526
526
|
}
|
|
527
|
-
function
|
|
527
|
+
function Ae(e) {
|
|
528
528
|
return typeof e.aggregate == "string" ? e.aggregate.toUpperCase() : "SUM";
|
|
529
529
|
}
|
|
530
530
|
function it(e, i) {
|
|
531
531
|
const t = c(e.source), n = c(i.source);
|
|
532
532
|
if (tt(t, n))
|
|
533
533
|
return !1;
|
|
534
|
-
const s =
|
|
534
|
+
const s = Re(e), r = Re(i);
|
|
535
535
|
if (s.size > 0 || r.size > 0) {
|
|
536
536
|
for (const l of s)
|
|
537
537
|
if (r.has(l))
|
|
@@ -546,7 +546,7 @@ function tt(e, i) {
|
|
|
546
546
|
const t = typeof e.datasetId == "string" ? e.datasetId.trim() : "", n = typeof i.datasetId == "string" ? i.datasetId.trim() : "";
|
|
547
547
|
return !!(t && n && t !== n);
|
|
548
548
|
}
|
|
549
|
-
function
|
|
549
|
+
function Re(e) {
|
|
550
550
|
const i = typeof e.sourceKey == "string" ? e.sourceKey.trim() : "";
|
|
551
551
|
return i ? /* @__PURE__ */ new Set([i]) : at(c(e.source));
|
|
552
552
|
}
|
|
@@ -628,7 +628,11 @@ function ze(e, i) {
|
|
|
628
628
|
`${i}.filterFieldRef`
|
|
629
629
|
)
|
|
630
630
|
];
|
|
631
|
-
|
|
631
|
+
if (t.builder !== "semaphor.inputOptions" && n.push(`${i}.builder must be semaphor.inputOptions.`), typeof t.sourceKey != "string" && t.source === void 0 && n.push(`${i} must include source or sourceKey.`), t.source !== void 0) {
|
|
632
|
+
const s = c(t.source);
|
|
633
|
+
!s || s.kind !== "semantic" && s.kind !== "physical" ? n.push(`${i}.source.kind must be semantic or physical.`) : n.push(...B(t.source, `${i}.source`));
|
|
634
|
+
}
|
|
635
|
+
return c(t.valueFieldRef) || n.push(`${i}.valueFieldRef is required.`), c(t.labelFieldRef) || n.push(`${i}.labelFieldRef is required.`), t.limit !== void 0 && (typeof t.limit != "number" || !Number.isInteger(t.limit) || t.limit <= 0) && n.push(`${i}.limit must be a positive integer.`), n;
|
|
632
636
|
}
|
|
633
637
|
function st(e) {
|
|
634
638
|
var s;
|
|
@@ -843,7 +847,7 @@ function dt(e, i) {
|
|
|
843
847
|
return t.kind !== "semantic" && t.kind !== "physical" && n.push(`${i}.spec.source.kind must be semantic or physical.`), n;
|
|
844
848
|
}
|
|
845
849
|
function W(e, i) {
|
|
846
|
-
const t =
|
|
850
|
+
const t = ye(e, i);
|
|
847
851
|
return Array.isArray(e) && e.forEach((n, s) => {
|
|
848
852
|
t.push(...h(n, `${i}.${s}`));
|
|
849
853
|
}), t;
|
|
@@ -868,7 +872,7 @@ function ee(e, i) {
|
|
|
868
872
|
] : [`${i} must be an object.`];
|
|
869
873
|
}
|
|
870
874
|
function ut(e, i) {
|
|
871
|
-
const t =
|
|
875
|
+
const t = ye(e, i);
|
|
872
876
|
return Array.isArray(e) && e.forEach((n, s) => {
|
|
873
877
|
const r = c(n);
|
|
874
878
|
if (!r) {
|
|
@@ -896,7 +900,7 @@ function ct(e, i) {
|
|
|
896
900
|
}), t) : [`${i} must be an array.`];
|
|
897
901
|
}
|
|
898
902
|
function pt(e, i) {
|
|
899
|
-
const t =
|
|
903
|
+
const t = ye(e, i);
|
|
900
904
|
return Array.isArray(e) && e.forEach((n, s) => {
|
|
901
905
|
const r = c(n);
|
|
902
906
|
if (!r) {
|
|
@@ -964,7 +968,7 @@ function L(e, i) {
|
|
|
964
968
|
);
|
|
965
969
|
}), t;
|
|
966
970
|
}
|
|
967
|
-
function
|
|
971
|
+
function ye(e, i) {
|
|
968
972
|
return !Array.isArray(e) || e.length === 0 ? [`${i} must be a non-empty array.`] : [];
|
|
969
973
|
}
|
|
970
974
|
function gt(e) {
|
|
@@ -1226,10 +1230,10 @@ function se(e, i) {
|
|
|
1226
1230
|
}), t.kind !== "semantic" && n.push(`${i} must use semantic source identity.`), (typeof t.domainId != "string" || !t.domainId.trim() || typeof t.datasetName != "string" || !t.datasetName.trim()) && n.push(`${i} must include semantic domainId and datasetName.`), n;
|
|
1227
1231
|
}
|
|
1228
1232
|
function C(e) {
|
|
1229
|
-
return
|
|
1233
|
+
return Di.has(e);
|
|
1230
1234
|
}
|
|
1231
1235
|
function Ze(e) {
|
|
1232
|
-
return
|
|
1236
|
+
return Ni.has(e);
|
|
1233
1237
|
}
|
|
1234
1238
|
function w(e, i) {
|
|
1235
1239
|
return e === void 0 ? [] : h(e, i);
|
|
@@ -1239,7 +1243,7 @@ function h(e, i) {
|
|
|
1239
1243
|
if (!t)
|
|
1240
1244
|
return [`${i} must be an object.`];
|
|
1241
1245
|
const n = [];
|
|
1242
|
-
return (typeof t.name != "string" || !t.name.trim()) && n.push(`${i}.name is required.`), !t.source && typeof t.sourceKey != "string" && n.push(`${i} must include source or sourceKey.`), t.aggregate !== void 0 && !
|
|
1246
|
+
return (typeof t.name != "string" || !t.name.trim()) && n.push(`${i}.name is required.`), !t.source && typeof t.sourceKey != "string" && n.push(`${i} must include source or sourceKey.`), t.aggregate !== void 0 && !qi.has(t.aggregate) && n.push(`${i}.aggregate must be a supported aggregate function.`), n;
|
|
1243
1247
|
}
|
|
1244
1248
|
function Xe(e, i) {
|
|
1245
1249
|
const t = c(e), n = h(e, i);
|
|
@@ -1260,7 +1264,7 @@ function c(e) {
|
|
|
1260
1264
|
function $(e) {
|
|
1261
1265
|
return Array.isArray(e) && e.every((i) => typeof i == "string");
|
|
1262
1266
|
}
|
|
1263
|
-
const b = a.record(a.string(), a.unknown()),
|
|
1267
|
+
const b = a.record(a.string(), a.unknown()), R = a.array(b), _ = a.enum([
|
|
1264
1268
|
"SUM",
|
|
1265
1269
|
"COUNT",
|
|
1266
1270
|
"AVG",
|
|
@@ -1279,7 +1283,7 @@ const b = a.record(a.string(), a.unknown()), M = a.array(b), _ = a.enum([
|
|
|
1279
1283
|
"duckdb",
|
|
1280
1284
|
"sqlite",
|
|
1281
1285
|
"unknown"
|
|
1282
|
-
]),
|
|
1286
|
+
]), Rt = a.enum(O), We = a.enum(fe), Q = a.enum([
|
|
1283
1287
|
"dimension",
|
|
1284
1288
|
"measure",
|
|
1285
1289
|
"date",
|
|
@@ -1298,11 +1302,11 @@ const b = a.record(a.string(), a.unknown()), M = a.array(b), _ = a.enum([
|
|
|
1298
1302
|
"minute",
|
|
1299
1303
|
"hour",
|
|
1300
1304
|
"day"
|
|
1301
|
-
]),
|
|
1305
|
+
]), Mt = a.enum(Ai), Tt = a.discriminatedUnion("mode", [
|
|
1302
1306
|
a.object({ mode: a.literal("auto") }).strict(),
|
|
1303
1307
|
a.object({
|
|
1304
1308
|
mode: a.literal("preset"),
|
|
1305
|
-
preset:
|
|
1309
|
+
preset: Mt
|
|
1306
1310
|
}).strict(),
|
|
1307
1311
|
a.object({
|
|
1308
1312
|
mode: a.literal("pattern"),
|
|
@@ -1312,7 +1316,7 @@ const b = a.record(a.string(), a.unknown()), M = a.array(b), _ = a.enum([
|
|
|
1312
1316
|
type: a.literal("temporal_bucket"),
|
|
1313
1317
|
presentation: Tt
|
|
1314
1318
|
}).strict(), jt = a.object({
|
|
1315
|
-
tz: a.string().min(1).refine(
|
|
1319
|
+
tz: a.string().min(1).refine(Mi, {
|
|
1316
1320
|
message: "tz must be a valid IANA timezone"
|
|
1317
1321
|
}),
|
|
1318
1322
|
weekStart: a.number().int().min(0).max(6),
|
|
@@ -1322,7 +1326,7 @@ const b = a.record(a.string(), a.unknown()), M = a.array(b), _ = a.enum([
|
|
|
1322
1326
|
}).strict().optional()
|
|
1323
1327
|
}).strict(), re = a.object({
|
|
1324
1328
|
kind: a.literal("temporal_bucket"),
|
|
1325
|
-
granularity:
|
|
1329
|
+
granularity: Rt,
|
|
1326
1330
|
calendar: jt
|
|
1327
1331
|
}).strict(), Et = a.object({
|
|
1328
1332
|
kind: a.literal("raw_temporal"),
|
|
@@ -1415,7 +1419,7 @@ const ei = a.object({
|
|
|
1415
1419
|
datasetId: a.string().optional(),
|
|
1416
1420
|
label: a.string().optional(),
|
|
1417
1421
|
connectionId: a.string().optional()
|
|
1418
|
-
}).passthrough(),
|
|
1422
|
+
}).passthrough(), Ft = a.object({
|
|
1419
1423
|
kind: a.literal("physical"),
|
|
1420
1424
|
connectionId: a.string(),
|
|
1421
1425
|
connectionType: a.string().optional(),
|
|
@@ -1424,25 +1428,25 @@ const ei = a.object({
|
|
|
1424
1428
|
schemaName: a.string().optional(),
|
|
1425
1429
|
label: a.string().optional(),
|
|
1426
1430
|
dialect: Y.optional()
|
|
1427
|
-
}).passthrough(),
|
|
1431
|
+
}).passthrough(), Dt = a.object({
|
|
1428
1432
|
kind: a.literal("sql"),
|
|
1429
1433
|
connectionId: a.string(),
|
|
1430
1434
|
dialect: Y.optional(),
|
|
1431
1435
|
label: a.string().optional()
|
|
1432
|
-
}).passthrough(),
|
|
1436
|
+
}).passthrough(), F = a.union([
|
|
1433
1437
|
ei,
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
]),
|
|
1438
|
+
Ft,
|
|
1439
|
+
Dt
|
|
1440
|
+
]), M = a.object({
|
|
1437
1441
|
name: a.string(),
|
|
1438
1442
|
label: a.string().optional(),
|
|
1439
1443
|
role: Q.optional(),
|
|
1440
1444
|
dataType: Z.optional(),
|
|
1441
|
-
source:
|
|
1445
|
+
source: F.optional(),
|
|
1442
1446
|
aggregate: _.optional()
|
|
1443
|
-
}).passthrough(),
|
|
1447
|
+
}).passthrough(), Nt = a.object({
|
|
1444
1448
|
kind: a.literal("field"),
|
|
1445
|
-
field:
|
|
1449
|
+
field: M,
|
|
1446
1450
|
aggregate: _.optional()
|
|
1447
1451
|
}).passthrough(), ii = a.object({
|
|
1448
1452
|
kind: a.literal("derived_field"),
|
|
@@ -1454,7 +1458,7 @@ const ei = a.object({
|
|
|
1454
1458
|
computeStage: a.enum(["row", "aggregate"]),
|
|
1455
1459
|
expression: a.string(),
|
|
1456
1460
|
expressionLanguage: a.literal("semaphor_sql_template").optional(),
|
|
1457
|
-
inputs: a.record(
|
|
1461
|
+
inputs: a.record(Nt),
|
|
1458
1462
|
defaultAggregate: _.optional(),
|
|
1459
1463
|
aggregationBehavior: a.enum([
|
|
1460
1464
|
"additive",
|
|
@@ -1472,11 +1476,11 @@ const ei = a.object({
|
|
|
1472
1476
|
]).optional(),
|
|
1473
1477
|
format: Je.optional(),
|
|
1474
1478
|
tags: a.array(a.string()).optional()
|
|
1475
|
-
}).passthrough(),
|
|
1479
|
+
}).passthrough(), be = M.and(
|
|
1476
1480
|
a.object({
|
|
1477
1481
|
derivedField: ii.optional()
|
|
1478
1482
|
}).passthrough()
|
|
1479
|
-
),
|
|
1483
|
+
), qt = ei, Ot = a.object({
|
|
1480
1484
|
kind: a.literal("physical"),
|
|
1481
1485
|
connectionId: a.string().optional(),
|
|
1482
1486
|
connectionType: a.string().optional(),
|
|
@@ -1491,7 +1495,7 @@ const ei = a.object({
|
|
|
1491
1495
|
dialect: Y.optional(),
|
|
1492
1496
|
label: a.string().optional()
|
|
1493
1497
|
}).passthrough(), Pt = a.union([
|
|
1494
|
-
|
|
1498
|
+
qt,
|
|
1495
1499
|
Ot,
|
|
1496
1500
|
Bt
|
|
1497
1501
|
]), Kt = a.object({
|
|
@@ -1503,14 +1507,14 @@ const ei = a.object({
|
|
|
1503
1507
|
source: Pt.optional(),
|
|
1504
1508
|
aggregate: _.optional(),
|
|
1505
1509
|
derivedField: a.never().optional()
|
|
1506
|
-
}).passthrough(),
|
|
1510
|
+
}).passthrough(), N = a.object({
|
|
1507
1511
|
key: a.string(),
|
|
1508
1512
|
name: a.string(),
|
|
1509
1513
|
label: a.string(),
|
|
1510
1514
|
role: Q.optional(),
|
|
1511
1515
|
dataType: Z.optional(),
|
|
1512
1516
|
aggregate: _.optional(),
|
|
1513
|
-
source:
|
|
1517
|
+
source: F.optional(),
|
|
1514
1518
|
derivedField: ii.optional(),
|
|
1515
1519
|
temporalBucket: re.optional(),
|
|
1516
1520
|
rawTemporal: Et.optional(),
|
|
@@ -1531,7 +1535,7 @@ const ei = a.object({
|
|
|
1531
1535
|
path: ["rawTemporal"],
|
|
1532
1536
|
message: "A result column cannot carry both temporalBucket and rawTemporal metadata."
|
|
1533
1537
|
}), e.temporalBucket) {
|
|
1534
|
-
const t =
|
|
1538
|
+
const t = Ri(
|
|
1535
1539
|
e.temporalBucket.granularity
|
|
1536
1540
|
);
|
|
1537
1541
|
e.dataType !== t && i.addIssue({
|
|
@@ -1548,12 +1552,12 @@ const ei = a.object({
|
|
|
1548
1552
|
message: `${e.rawTemporal.valueKind} raw temporal values require dataType ${t}.`
|
|
1549
1553
|
});
|
|
1550
1554
|
}
|
|
1551
|
-
}),
|
|
1552
|
-
records:
|
|
1553
|
-
columns: a.array(
|
|
1554
|
-
}).passthrough(),
|
|
1555
|
-
records:
|
|
1556
|
-
columns: a.array(
|
|
1555
|
+
}), Dn = a.object({
|
|
1556
|
+
records: R,
|
|
1557
|
+
columns: a.array(N).optional()
|
|
1558
|
+
}).passthrough(), Nn = a.object({
|
|
1559
|
+
records: R,
|
|
1560
|
+
columns: a.array(N)
|
|
1557
1561
|
}).passthrough(), ti = a.object({
|
|
1558
1562
|
code: a.string(),
|
|
1559
1563
|
message: a.string().optional(),
|
|
@@ -1601,17 +1605,17 @@ const ei = a.object({
|
|
|
1601
1605
|
delta: a.union([a.number(), a.null()]).optional(),
|
|
1602
1606
|
deltaPercent: a.union([a.number(), a.null()]).optional()
|
|
1603
1607
|
}).passthrough().optional(),
|
|
1604
|
-
records:
|
|
1608
|
+
records: R.optional()
|
|
1605
1609
|
}).passthrough(), Ht = a.object({
|
|
1606
1610
|
...K,
|
|
1607
1611
|
kind: a.literal("records"),
|
|
1608
|
-
columns: a.array(
|
|
1609
|
-
records:
|
|
1612
|
+
columns: a.array(N),
|
|
1613
|
+
records: R,
|
|
1610
1614
|
totals: a.object({
|
|
1611
1615
|
mode: a.literal("server"),
|
|
1612
1616
|
scope: a.literal("filtered_result"),
|
|
1613
1617
|
row: a.record(a.string(), a.unknown()),
|
|
1614
|
-
columns: a.array(
|
|
1618
|
+
columns: a.array(N).optional()
|
|
1615
1619
|
}).passthrough().optional()
|
|
1616
1620
|
}).passthrough(), Ut = a.object({
|
|
1617
1621
|
...K,
|
|
@@ -1630,8 +1634,8 @@ const ei = a.object({
|
|
|
1630
1634
|
}).passthrough(), Gt = a.object({
|
|
1631
1635
|
...K,
|
|
1632
1636
|
kind: a.literal("sql"),
|
|
1633
|
-
columns: a.array(
|
|
1634
|
-
records:
|
|
1637
|
+
columns: a.array(N),
|
|
1638
|
+
records: R,
|
|
1635
1639
|
sqlShape: a.object({
|
|
1636
1640
|
statementType: a.string().optional(),
|
|
1637
1641
|
explicitLimit: a.number().optional(),
|
|
@@ -1641,14 +1645,14 @@ const ei = a.object({
|
|
|
1641
1645
|
enabled: a.boolean().optional(),
|
|
1642
1646
|
position: a.enum(["before", "after"]).optional(),
|
|
1643
1647
|
label: a.string().optional()
|
|
1644
|
-
}).passthrough(),
|
|
1648
|
+
}).passthrough(), Te = a.object({
|
|
1645
1649
|
id: a.enum(["rows", "columns"]),
|
|
1646
1650
|
levels: a.array(
|
|
1647
1651
|
a.object({
|
|
1648
1652
|
instanceId: a.string(),
|
|
1649
1653
|
fieldKey: a.string(),
|
|
1650
1654
|
label: a.string(),
|
|
1651
|
-
field:
|
|
1655
|
+
field: M,
|
|
1652
1656
|
grain: We.optional(),
|
|
1653
1657
|
temporalBucket: re.optional(),
|
|
1654
1658
|
subtotal: zt.optional()
|
|
@@ -1667,7 +1671,7 @@ const ei = a.object({
|
|
|
1667
1671
|
a.object({ kind: a.literal("member") }).passthrough(),
|
|
1668
1672
|
a.object({
|
|
1669
1673
|
kind: a.literal("field"),
|
|
1670
|
-
field:
|
|
1674
|
+
field: M,
|
|
1671
1675
|
aggregate: _.optional()
|
|
1672
1676
|
}).passthrough(),
|
|
1673
1677
|
a.object({
|
|
@@ -1692,7 +1696,7 @@ const ei = a.object({
|
|
|
1692
1696
|
]), Xt = a.object({
|
|
1693
1697
|
instanceId: a.string(),
|
|
1694
1698
|
fieldKey: a.string(),
|
|
1695
|
-
field:
|
|
1699
|
+
field: M,
|
|
1696
1700
|
role: a.enum(["row", "column", "measure", "sort", "filter"]),
|
|
1697
1701
|
label: a.string().optional()
|
|
1698
1702
|
}).passthrough(), Wt = a.union([
|
|
@@ -1722,7 +1726,7 @@ const ei = a.object({
|
|
|
1722
1726
|
instanceId: a.string(),
|
|
1723
1727
|
fieldKey: a.string(),
|
|
1724
1728
|
label: a.string(),
|
|
1725
|
-
field:
|
|
1729
|
+
field: M,
|
|
1726
1730
|
aggregate: _.optional(),
|
|
1727
1731
|
format: Je.optional(),
|
|
1728
1732
|
totalBehavior: Ct.optional(),
|
|
@@ -1884,8 +1888,8 @@ const ei = a.object({
|
|
|
1884
1888
|
measuresById: a.record(a.string(), Jt),
|
|
1885
1889
|
calculationsById: a.record(a.string(), ea).optional(),
|
|
1886
1890
|
axes: a.object({
|
|
1887
|
-
rows:
|
|
1888
|
-
columns:
|
|
1891
|
+
rows: Te,
|
|
1892
|
+
columns: Te
|
|
1889
1893
|
}).passthrough(),
|
|
1890
1894
|
nodesById: a.record(a.string(), ta),
|
|
1891
1895
|
layout: aa,
|
|
@@ -1910,22 +1914,22 @@ const ei = a.object({
|
|
|
1910
1914
|
"fanout_risk",
|
|
1911
1915
|
"unknown"
|
|
1912
1916
|
]),
|
|
1913
|
-
requiredSources: a.array(
|
|
1917
|
+
requiredSources: a.array(F).optional(),
|
|
1914
1918
|
relationshipsUsed: a.array(a.string()).optional(),
|
|
1915
1919
|
missingSources: a.array(a.string()).optional(),
|
|
1916
1920
|
warnings: a.array(a.string()).optional(),
|
|
1917
1921
|
message: a.string().optional(),
|
|
1918
1922
|
recommendedNextStep: a.string().optional(),
|
|
1919
1923
|
joinPlanSummary: a.object({
|
|
1920
|
-
baseSource:
|
|
1921
|
-
joinedSources: a.array(
|
|
1924
|
+
baseSource: F.optional(),
|
|
1925
|
+
joinedSources: a.array(F).optional(),
|
|
1922
1926
|
joinCount: a.number().optional()
|
|
1923
1927
|
}).passthrough().optional(),
|
|
1924
1928
|
fanoutRisk: a.object({
|
|
1925
1929
|
status: a.enum(["none", "warning", "error", "unknown"]),
|
|
1926
1930
|
message: a.string().optional()
|
|
1927
1931
|
}).passthrough().optional()
|
|
1928
|
-
}).passthrough(),
|
|
1932
|
+
}).passthrough(), je = a.enum([
|
|
1929
1933
|
"ambiguous_fields",
|
|
1930
1934
|
"empty_result",
|
|
1931
1935
|
"missing_grounded_fields",
|
|
@@ -1945,14 +1949,14 @@ const ei = a.object({
|
|
|
1945
1949
|
queryId: a.string().optional(),
|
|
1946
1950
|
summary: a.string(),
|
|
1947
1951
|
evidenceIds: a.array(a.string()).optional(),
|
|
1948
|
-
fieldsUsed: a.array(
|
|
1952
|
+
fieldsUsed: a.array(be).optional()
|
|
1949
1953
|
}).passthrough()
|
|
1950
1954
|
),
|
|
1951
1955
|
blocked: a.array(
|
|
1952
1956
|
a.object({
|
|
1953
1957
|
slotId: a.string().optional(),
|
|
1954
1958
|
queryId: a.string().optional(),
|
|
1955
|
-
reasonCode:
|
|
1959
|
+
reasonCode: je,
|
|
1956
1960
|
message: a.string(),
|
|
1957
1961
|
missingFields: a.array(a.string()).optional(),
|
|
1958
1962
|
availableFields: a.array(a.string()).optional(),
|
|
@@ -1965,7 +1969,7 @@ const ei = a.object({
|
|
|
1965
1969
|
),
|
|
1966
1970
|
semanticModelRecommendations: a.array(
|
|
1967
1971
|
a.object({
|
|
1968
|
-
reasonCode:
|
|
1972
|
+
reasonCode: je,
|
|
1969
1973
|
message: a.string(),
|
|
1970
1974
|
recommendedNextStep: a.string().optional()
|
|
1971
1975
|
}).passthrough()
|
|
@@ -1992,7 +1996,7 @@ const ei = a.object({
|
|
|
1992
1996
|
]).optional(),
|
|
1993
1997
|
intent: a.unknown().optional(),
|
|
1994
1998
|
compiledQuery: a.unknown().optional(),
|
|
1995
|
-
fieldsUsed: a.array(
|
|
1999
|
+
fieldsUsed: a.array(be).optional(),
|
|
1996
2000
|
result: pa.optional(),
|
|
1997
2001
|
validation: ai,
|
|
1998
2002
|
coverage: oi.optional(),
|
|
@@ -2014,7 +2018,7 @@ function ga(e) {
|
|
|
2014
2018
|
case "diagnosticFeedback":
|
|
2015
2019
|
return ni.optional();
|
|
2016
2020
|
case "executionFieldArray":
|
|
2017
|
-
return a.array(
|
|
2021
|
+
return a.array(be).optional();
|
|
2018
2022
|
case "executionResult":
|
|
2019
2023
|
return fa.optional();
|
|
2020
2024
|
case "number":
|
|
@@ -2024,7 +2028,7 @@ function ga(e) {
|
|
|
2024
2028
|
case "record":
|
|
2025
2029
|
return b.optional();
|
|
2026
2030
|
case "recordArray":
|
|
2027
|
-
return
|
|
2031
|
+
return R.optional();
|
|
2028
2032
|
case "responseDetail":
|
|
2029
2033
|
return a.enum(["compact", "standard", "debug"]).optional();
|
|
2030
2034
|
case "string":
|
|
@@ -2043,7 +2047,7 @@ const ha = Object.fromEntries(
|
|
|
2043
2047
|
Object.entries(Ti).map(
|
|
2044
2048
|
([e, i]) => [e, ga(i)]
|
|
2045
2049
|
)
|
|
2046
|
-
),
|
|
2050
|
+
), qn = a.object(ha).strict(), _e = a.object({
|
|
2047
2051
|
sourceKey: a.string().optional(),
|
|
2048
2052
|
kind: a.enum(["semantic", "physical", "sql"]).optional(),
|
|
2049
2053
|
domainId: a.string().optional(),
|
|
@@ -2059,11 +2063,11 @@ const ha = Object.fromEntries(
|
|
|
2059
2063
|
dataType: a.enum(["string", "number", "boolean", "date", "datetime", "unknown"]).optional(),
|
|
2060
2064
|
aggregate: _.optional(),
|
|
2061
2065
|
sourceKey: a.string().optional(),
|
|
2062
|
-
source:
|
|
2066
|
+
source: _e.optional()
|
|
2063
2067
|
}).passthrough(), ri = a.object({
|
|
2064
2068
|
id: a.string().optional(),
|
|
2065
2069
|
builder: a.literal("semaphor.inputOptions"),
|
|
2066
|
-
source:
|
|
2070
|
+
source: _e.optional(),
|
|
2067
2071
|
sourceKey: a.string().optional(),
|
|
2068
2072
|
valueFieldRef: S,
|
|
2069
2073
|
labelFieldRef: S,
|
|
@@ -2132,13 +2136,13 @@ const ha = Object.fromEntries(
|
|
|
2132
2136
|
bindings: a.array(li),
|
|
2133
2137
|
appliesToViewIds: a.array(a.string()),
|
|
2134
2138
|
notAppliedToViewIds: a.array(a.string())
|
|
2135
|
-
}).passthrough(),
|
|
2139
|
+
}).passthrough(), On = a.object({
|
|
2136
2140
|
schemaVersion: a.literal(ne),
|
|
2137
2141
|
title: a.string(),
|
|
2138
2142
|
purpose: a.string().optional(),
|
|
2139
2143
|
userGoal: a.string().optional(),
|
|
2140
2144
|
nextStep: a.string().optional(),
|
|
2141
|
-
sources: a.array(
|
|
2145
|
+
sources: a.array(_e),
|
|
2142
2146
|
inputs: a.array(ya),
|
|
2143
2147
|
views: a.array(_a),
|
|
2144
2148
|
filterContracts: a.array(va),
|
|
@@ -2178,70 +2182,97 @@ const ha = Object.fromEntries(
|
|
|
2178
2182
|
message: n
|
|
2179
2183
|
});
|
|
2180
2184
|
});
|
|
2181
|
-
function
|
|
2185
|
+
function ve(e) {
|
|
2182
2186
|
return typeof e == "string" ? e.trim().toLowerCase() : "";
|
|
2183
2187
|
}
|
|
2184
2188
|
function $a(e) {
|
|
2185
|
-
return String(
|
|
2189
|
+
return String(
|
|
2190
|
+
e.column_name || e.name || e.qualifiedFieldName || ""
|
|
2191
|
+
);
|
|
2186
2192
|
}
|
|
2187
2193
|
function wa(e) {
|
|
2188
2194
|
return Array.from(
|
|
2189
2195
|
new Set(
|
|
2190
|
-
[
|
|
2191
|
-
e.column_name,
|
|
2192
|
-
e.name,
|
|
2193
|
-
e.qualifiedFieldName,
|
|
2194
|
-
e.alias
|
|
2195
|
-
].filter(
|
|
2196
|
+
[e.column_name, e.name, e.qualifiedFieldName, e.alias].filter(
|
|
2196
2197
|
(i) => typeof i == "string" && i.trim().length > 0
|
|
2197
2198
|
).map((i) => i.trim())
|
|
2198
2199
|
)
|
|
2199
2200
|
);
|
|
2200
2201
|
}
|
|
2201
|
-
function
|
|
2202
|
-
const i =
|
|
2203
|
-
return i ?
|
|
2202
|
+
function $e(e) {
|
|
2203
|
+
const i = xa(e);
|
|
2204
|
+
return i ? Ia(i) ? "number" : i.includes("timestamp") || i.includes("datetime") || i.startsWith("time") ? "datetime" : i.includes("date") ? "date" : i.includes("bool") ? "boolean" : "string" : "unknown";
|
|
2205
|
+
}
|
|
2206
|
+
const Sa = /* @__PURE__ */ new Set([
|
|
2207
|
+
"int",
|
|
2208
|
+
"uint",
|
|
2209
|
+
"integer",
|
|
2210
|
+
"bigint",
|
|
2211
|
+
"smallint",
|
|
2212
|
+
"tinyint",
|
|
2213
|
+
"numeric",
|
|
2214
|
+
"decimal",
|
|
2215
|
+
"double",
|
|
2216
|
+
"float",
|
|
2217
|
+
"number",
|
|
2218
|
+
"real",
|
|
2219
|
+
"money",
|
|
2220
|
+
"currency",
|
|
2221
|
+
"percent"
|
|
2222
|
+
]), ka = [
|
|
2223
|
+
"int",
|
|
2224
|
+
"uint",
|
|
2225
|
+
"decimal",
|
|
2226
|
+
"float"
|
|
2227
|
+
];
|
|
2228
|
+
function Ia(e) {
|
|
2229
|
+
const i = e.split(/[\s(]/, 1)[0] || "";
|
|
2230
|
+
return Sa.has(i) ? !0 : ka.some((t) => {
|
|
2231
|
+
if (!i.startsWith(t)) return !1;
|
|
2232
|
+
const n = i.slice(t.length);
|
|
2233
|
+
return n.length > 0 && Array.from(n).every((s) => s >= "0" && s <= "9");
|
|
2234
|
+
});
|
|
2204
2235
|
}
|
|
2205
|
-
function
|
|
2206
|
-
let i =
|
|
2236
|
+
function xa(e) {
|
|
2237
|
+
let i = ve(e), t = "";
|
|
2207
2238
|
for (; i && i !== t; )
|
|
2208
|
-
t = i, i =
|
|
2239
|
+
t = i, i = Ee(i, "nullable"), i = Ee(i, "lowcardinality");
|
|
2209
2240
|
return i;
|
|
2210
2241
|
}
|
|
2211
|
-
function
|
|
2242
|
+
function Ee(e, i) {
|
|
2212
2243
|
const t = `${i}(`;
|
|
2213
2244
|
return !e.startsWith(t) || !e.endsWith(")") ? e : e.slice(t.length, -1).trim();
|
|
2214
2245
|
}
|
|
2215
|
-
function
|
|
2216
|
-
const i =
|
|
2246
|
+
function Aa(e) {
|
|
2247
|
+
const i = $e(e);
|
|
2217
2248
|
return i === "date" || i === "datetime";
|
|
2218
2249
|
}
|
|
2219
2250
|
function di(e) {
|
|
2220
|
-
return
|
|
2251
|
+
return Aa(e.dataType || e.data_type);
|
|
2221
2252
|
}
|
|
2222
2253
|
function ui(e) {
|
|
2223
2254
|
const i = ci(e);
|
|
2224
2255
|
return i === "id" || i === "row_id";
|
|
2225
2256
|
}
|
|
2226
|
-
function
|
|
2257
|
+
function Ce(e) {
|
|
2227
2258
|
const i = ci(e);
|
|
2228
2259
|
return ui(e) || i.endsWith("_id") || i.endsWith("_key") || i.endsWith("_number");
|
|
2229
2260
|
}
|
|
2230
2261
|
function ci(e) {
|
|
2231
|
-
return
|
|
2262
|
+
return ve(
|
|
2232
2263
|
$a(e) || e.name || e.alias
|
|
2233
2264
|
).replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "");
|
|
2234
2265
|
}
|
|
2235
2266
|
function pi(e, i = {}) {
|
|
2236
|
-
const t =
|
|
2237
|
-
return t === "metric" || t === "measure" ? !i.excludeIdentifiers || !
|
|
2267
|
+
const t = ve(e.role);
|
|
2268
|
+
return t === "metric" || t === "measure" ? !i.excludeIdentifiers || !Ce(e) : t === "groupby" || t === "dimension" || t === "date" || t === "id" ? !1 : $e(
|
|
2238
2269
|
e.dataType || e.data_type
|
|
2239
|
-
) === "number" && (!i.excludeIdentifiers || !
|
|
2270
|
+
) === "number" && (!i.excludeIdentifiers || !Ce(e));
|
|
2240
2271
|
}
|
|
2241
|
-
function
|
|
2272
|
+
function Bn(e) {
|
|
2242
2273
|
return !pi(e) && !di(e);
|
|
2243
2274
|
}
|
|
2244
|
-
function
|
|
2275
|
+
function Pn(e) {
|
|
2245
2276
|
const i = /* @__PURE__ */ new Set(), t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
|
|
2246
2277
|
for (const s of e) {
|
|
2247
2278
|
if (ui(s))
|
|
@@ -2265,7 +2296,7 @@ function Nn(e) {
|
|
|
2265
2296
|
validDimensionCandidates: Array.from(n).sort()
|
|
2266
2297
|
};
|
|
2267
2298
|
}
|
|
2268
|
-
const
|
|
2299
|
+
const Ra = [
|
|
2269
2300
|
"YYYY",
|
|
2270
2301
|
"MMMM",
|
|
2271
2302
|
"MMM",
|
|
@@ -2275,7 +2306,7 @@ const Ia = [
|
|
|
2275
2306
|
"HH",
|
|
2276
2307
|
"mm",
|
|
2277
2308
|
"ss"
|
|
2278
|
-
],
|
|
2309
|
+
], Ma = /* @__PURE__ */ new Set([" ", "-", "/", ":", ".", ",", "T"]), mi = {
|
|
2279
2310
|
week_of_short: "week",
|
|
2280
2311
|
week_of_long: "week",
|
|
2281
2312
|
quarter_short: "quarter",
|
|
@@ -2283,15 +2314,15 @@ const Ia = [
|
|
|
2283
2314
|
fiscal_quarter_short: "quarter",
|
|
2284
2315
|
fiscal_year: "year"
|
|
2285
2316
|
};
|
|
2286
|
-
function
|
|
2317
|
+
function Kn(e) {
|
|
2287
2318
|
return typeof e == "string" && Object.prototype.hasOwnProperty.call(mi, e);
|
|
2288
2319
|
}
|
|
2289
|
-
function
|
|
2290
|
-
return
|
|
2320
|
+
function Ta(e, i) {
|
|
2321
|
+
return Ra.find(
|
|
2291
2322
|
(t) => e.startsWith(t, i)
|
|
2292
2323
|
);
|
|
2293
2324
|
}
|
|
2294
|
-
function
|
|
2325
|
+
function ja(e) {
|
|
2295
2326
|
var s;
|
|
2296
2327
|
if (!e || e.trim() !== e)
|
|
2297
2328
|
return {
|
|
@@ -2302,7 +2333,7 @@ function Ma(e) {
|
|
|
2302
2333
|
const i = [];
|
|
2303
2334
|
let t = 0, n = !1;
|
|
2304
2335
|
for (; t < e.length; ) {
|
|
2305
|
-
const r =
|
|
2336
|
+
const r = Ta(e, t);
|
|
2306
2337
|
if (r) {
|
|
2307
2338
|
if (n)
|
|
2308
2339
|
return {
|
|
@@ -2314,7 +2345,7 @@ function Ma(e) {
|
|
|
2314
2345
|
continue;
|
|
2315
2346
|
}
|
|
2316
2347
|
const l = e[t];
|
|
2317
|
-
if (!
|
|
2348
|
+
if (!Ma.has(l))
|
|
2318
2349
|
return {
|
|
2319
2350
|
ok: !1,
|
|
2320
2351
|
code: "invalid_temporal_bucket_pattern",
|
|
@@ -2335,23 +2366,23 @@ function Ma(e) {
|
|
|
2335
2366
|
message: "Temporal bucket patterns cannot end with a separator."
|
|
2336
2367
|
} : { ok: !0, segments: i };
|
|
2337
2368
|
}
|
|
2338
|
-
function
|
|
2369
|
+
function Ea(e) {
|
|
2339
2370
|
return e.flatMap(
|
|
2340
2371
|
(i) => i.kind === "token" ? [i.value] : []
|
|
2341
2372
|
);
|
|
2342
2373
|
}
|
|
2343
|
-
function
|
|
2374
|
+
function Fe(e, i) {
|
|
2344
2375
|
return e.filter((t) => i.includes(t)).length === 1;
|
|
2345
2376
|
}
|
|
2346
2377
|
function H(e, i) {
|
|
2347
2378
|
return e.some((t) => i.includes(t));
|
|
2348
2379
|
}
|
|
2349
|
-
function
|
|
2380
|
+
function Ca(e) {
|
|
2350
2381
|
return new Set(e).size !== e.length;
|
|
2351
2382
|
}
|
|
2352
|
-
function
|
|
2353
|
-
if (
|
|
2354
|
-
const t = ["YYYY", "YY"], n = ["MMMM", "MMM", "MM"], s = ["HH", "mm", "ss"], r =
|
|
2383
|
+
function Fa(e, i) {
|
|
2384
|
+
if (Ca(e)) return !1;
|
|
2385
|
+
const t = ["YYYY", "YY"], n = ["MMMM", "MMM", "MM"], s = ["HH", "mm", "ss"], r = Fe(e, t), l = Fe(e, n), d = e.includes("DD"), u = H(e, s);
|
|
2355
2386
|
switch (i) {
|
|
2356
2387
|
case "second":
|
|
2357
2388
|
return e.includes("HH") && e.includes("mm") && e.includes("ss") && (!H(e, [...t, ...n, "DD"]) || r && l && d);
|
|
@@ -2381,9 +2412,9 @@ function de(e, i) {
|
|
|
2381
2412
|
message: `Preset ${e.presentation.preset} requires ${n} granularity.`
|
|
2382
2413
|
};
|
|
2383
2414
|
}
|
|
2384
|
-
const t =
|
|
2385
|
-
return t.ok ?
|
|
2386
|
-
|
|
2415
|
+
const t = ja(e.presentation.pattern);
|
|
2416
|
+
return t.ok ? Fa(
|
|
2417
|
+
Ea(t.segments),
|
|
2387
2418
|
i
|
|
2388
2419
|
) ? { ok: !0, segments: t.segments } : {
|
|
2389
2420
|
ok: !1,
|
|
@@ -2391,14 +2422,14 @@ function de(e, i) {
|
|
|
2391
2422
|
message: `Pattern ${e.presentation.pattern} is not compatible with ${i} granularity.`
|
|
2392
2423
|
} : t;
|
|
2393
2424
|
}
|
|
2394
|
-
function
|
|
2425
|
+
function Vn(e, i) {
|
|
2395
2426
|
if (!(!e || !i))
|
|
2396
2427
|
return de(e, i).ok ? e : void 0;
|
|
2397
2428
|
}
|
|
2398
2429
|
function o(e, i, t) {
|
|
2399
2430
|
return t ? { code: e, message: i, path: t } : { code: e, message: i };
|
|
2400
2431
|
}
|
|
2401
|
-
function
|
|
2432
|
+
function Da(e) {
|
|
2402
2433
|
for (let i = 0; i < e.length; i += 1) {
|
|
2403
2434
|
const t = e[i];
|
|
2404
2435
|
if (e.some(
|
|
@@ -2412,15 +2443,15 @@ function fi(e, i) {
|
|
|
2412
2443
|
return Ei(e, i);
|
|
2413
2444
|
}
|
|
2414
2445
|
function gi(e, i) {
|
|
2415
|
-
return fi(e, i) &&
|
|
2446
|
+
return fi(e, i) && q(e) === q(i);
|
|
2416
2447
|
}
|
|
2417
|
-
function
|
|
2418
|
-
return `Metric intent has duplicate measure "${e.name}" with the same aggregate (${
|
|
2448
|
+
function Na(e) {
|
|
2449
|
+
return `Metric intent has duplicate measure "${e.name}" with the same aggregate (${q(e)}). Use different aggregates to request both, or remove one entry.`;
|
|
2419
2450
|
}
|
|
2420
2451
|
function De(e) {
|
|
2421
2452
|
return typeof e == "string" || typeof e == "number" || typeof e == "boolean" || e === null;
|
|
2422
2453
|
}
|
|
2423
|
-
function
|
|
2454
|
+
function qa(e, i, t) {
|
|
2424
2455
|
if (e !== void 0) {
|
|
2425
2456
|
if (!e || typeof e != "object" || Array.isArray(e)) {
|
|
2426
2457
|
t.push(
|
|
@@ -2453,77 +2484,77 @@ function Da(e, i, t) {
|
|
|
2453
2484
|
});
|
|
2454
2485
|
}
|
|
2455
2486
|
}
|
|
2456
|
-
function
|
|
2457
|
-
return
|
|
2487
|
+
function Oa(e, i) {
|
|
2488
|
+
return we(e, i).length === 1;
|
|
2458
2489
|
}
|
|
2459
|
-
function
|
|
2460
|
-
return
|
|
2490
|
+
function Ba(e, i) {
|
|
2491
|
+
return we(e, i).length === 1;
|
|
2461
2492
|
}
|
|
2462
|
-
function
|
|
2493
|
+
function we(e, i) {
|
|
2463
2494
|
return i.filter(
|
|
2464
|
-
(n) =>
|
|
2495
|
+
(n) => Pa(e, n)
|
|
2465
2496
|
);
|
|
2466
2497
|
}
|
|
2467
|
-
function
|
|
2468
|
-
return
|
|
2498
|
+
function Pa(e, i) {
|
|
2499
|
+
return Ka(e, i) ? e.source ? fi(i, e) : !0 : !1;
|
|
2469
2500
|
}
|
|
2470
|
-
function
|
|
2471
|
-
return !(i.name !== e.name || e.role !== void 0 && i.role !== void 0 && i.role !== e.role ||
|
|
2501
|
+
function Ka(e, i) {
|
|
2502
|
+
return !(i.name !== e.name || e.role !== void 0 && i.role !== void 0 && i.role !== e.role || Va(e, i) && q(i) !== q(e));
|
|
2472
2503
|
}
|
|
2473
|
-
function
|
|
2504
|
+
function Va(e, i) {
|
|
2474
2505
|
return e.role === "measure" || i.role === "measure" || e.aggregate !== void 0 || i.aggregate !== void 0;
|
|
2475
2506
|
}
|
|
2476
|
-
function
|
|
2477
|
-
return
|
|
2507
|
+
function q(e) {
|
|
2508
|
+
return he(e);
|
|
2478
2509
|
}
|
|
2479
|
-
const
|
|
2510
|
+
const La = /^(\d{4})-(\d{2})-(\d{2})$/, hi = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d+))?)?(Z|[+-]\d{2}:\d{2})$/;
|
|
2480
2511
|
function ue(e) {
|
|
2481
2512
|
if (typeof e != "string")
|
|
2482
2513
|
return null;
|
|
2483
|
-
const i = e.trim(), t =
|
|
2514
|
+
const i = e.trim(), t = La.exec(i);
|
|
2484
2515
|
if (t) {
|
|
2485
2516
|
const [, v, T, j] = t;
|
|
2486
|
-
return
|
|
2517
|
+
return Ne(v, T, j) ? new Date(Date.UTC(Number(v), Number(T) - 1, Number(j))) : null;
|
|
2487
2518
|
}
|
|
2488
2519
|
const n = hi.exec(i);
|
|
2489
2520
|
if (!n)
|
|
2490
2521
|
return null;
|
|
2491
2522
|
const [, s, r, l, d, u, p = "00", , y] = n;
|
|
2492
|
-
if (!
|
|
2523
|
+
if (!Ne(s, r, l) || !D(d, 0, 23) || !D(u, 0, 59) || !D(p, 0, 59) || !Ha(y))
|
|
2493
2524
|
return null;
|
|
2494
2525
|
const I = new Date(i);
|
|
2495
2526
|
return Number.isFinite(I.getTime()) ? I : null;
|
|
2496
2527
|
}
|
|
2497
|
-
function
|
|
2528
|
+
function Ln(e) {
|
|
2498
2529
|
return typeof e != "string" || !hi.test(e.trim()) ? null : ue(e);
|
|
2499
2530
|
}
|
|
2500
|
-
function
|
|
2531
|
+
function Ne(e, i, t) {
|
|
2501
2532
|
const n = Number(e), s = Number(i), r = Number(t);
|
|
2502
2533
|
if (!Number.isInteger(n) || !Number.isInteger(s) || !Number.isInteger(r) || s < 1 || s > 12)
|
|
2503
2534
|
return !1;
|
|
2504
2535
|
const l = new Date(Date.UTC(n, s - 1, r));
|
|
2505
2536
|
return l.getUTCFullYear() === n && l.getUTCMonth() === s - 1 && l.getUTCDate() === r;
|
|
2506
2537
|
}
|
|
2507
|
-
function
|
|
2538
|
+
function D(e, i, t) {
|
|
2508
2539
|
const n = Number(e);
|
|
2509
2540
|
return Number.isInteger(n) && n >= i && n <= t;
|
|
2510
2541
|
}
|
|
2511
|
-
function
|
|
2542
|
+
function Ha(e) {
|
|
2512
2543
|
if (e === "Z")
|
|
2513
2544
|
return !0;
|
|
2514
2545
|
const i = /^([+-])(\d{2}):(\d{2})$/.exec(e);
|
|
2515
|
-
return !!(i &&
|
|
2546
|
+
return !!(i && D(i[2], 0, 23) && D(i[3], 0, 59));
|
|
2516
2547
|
}
|
|
2517
2548
|
function f(e) {
|
|
2518
2549
|
return typeof e == "string" && e.trim().length > 0;
|
|
2519
2550
|
}
|
|
2520
|
-
function
|
|
2551
|
+
function Ua(e) {
|
|
2521
2552
|
const i = /* @__PURE__ */ new Set();
|
|
2522
2553
|
let t = 0;
|
|
2523
2554
|
for (; t < e.length; ) {
|
|
2524
2555
|
const n = e[t];
|
|
2525
2556
|
if (n === "'" || n === '"') {
|
|
2526
|
-
t =
|
|
2557
|
+
t = Ga(e, t);
|
|
2527
2558
|
continue;
|
|
2528
2559
|
}
|
|
2529
2560
|
if (n === "{") {
|
|
@@ -2540,7 +2571,7 @@ function Va(e) {
|
|
|
2540
2571
|
}
|
|
2541
2572
|
return Array.from(i);
|
|
2542
2573
|
}
|
|
2543
|
-
function
|
|
2574
|
+
function Ga(e, i) {
|
|
2544
2575
|
const t = e[i];
|
|
2545
2576
|
let n = i + 1;
|
|
2546
2577
|
for (; n < e.length; ) {
|
|
@@ -2605,7 +2636,7 @@ function te(e, i, t, n) {
|
|
|
2605
2636
|
)
|
|
2606
2637
|
);
|
|
2607
2638
|
}
|
|
2608
|
-
const
|
|
2639
|
+
const za = /* @__PURE__ */ new Set([
|
|
2609
2640
|
"SUM",
|
|
2610
2641
|
"COUNT",
|
|
2611
2642
|
"AVG",
|
|
@@ -2614,7 +2645,7 @@ const Ha = /* @__PURE__ */ new Set([
|
|
|
2614
2645
|
"MEDIAN",
|
|
2615
2646
|
"DISTINCT"
|
|
2616
2647
|
]);
|
|
2617
|
-
function
|
|
2648
|
+
function Se(e, i, t) {
|
|
2618
2649
|
if (!e || typeof e != "object") {
|
|
2619
2650
|
t.push(
|
|
2620
2651
|
o("missing_source", "Analytics intent needs a source.", i)
|
|
@@ -2680,9 +2711,9 @@ function g(e, i, t, n = {}) {
|
|
|
2680
2711
|
"Field reference needs a name.",
|
|
2681
2712
|
`${i}.name`
|
|
2682
2713
|
)
|
|
2683
|
-
), e.source !== void 0 &&
|
|
2714
|
+
), e.source !== void 0 && Se(e.source, `${i}.source`, t), k(e.aggregate, `${i}.aggregate`, t);
|
|
2684
2715
|
}
|
|
2685
|
-
function
|
|
2716
|
+
function Ya(e, i, t) {
|
|
2686
2717
|
if (!m(e)) {
|
|
2687
2718
|
t.push(
|
|
2688
2719
|
o(
|
|
@@ -2705,13 +2736,13 @@ function Ua(e, i, t) {
|
|
|
2705
2736
|
"Input binding kind must be filter or control.",
|
|
2706
2737
|
`${i}.kind`
|
|
2707
2738
|
)
|
|
2708
|
-
), e.field !== void 0 && g(e.field, `${i}.field`, t), e.relationshipHint !== void 0 &&
|
|
2739
|
+
), e.field !== void 0 && g(e.field, `${i}.field`, t), e.relationshipHint !== void 0 && ke(
|
|
2709
2740
|
e.relationshipHint,
|
|
2710
2741
|
`${i}.relationshipHint`,
|
|
2711
2742
|
t
|
|
2712
2743
|
);
|
|
2713
2744
|
}
|
|
2714
|
-
function
|
|
2745
|
+
function ke(e, i, t) {
|
|
2715
2746
|
if (!m(e)) {
|
|
2716
2747
|
t.push(
|
|
2717
2748
|
o(
|
|
@@ -2730,13 +2761,32 @@ function Se(e, i, t) {
|
|
|
2730
2761
|
)
|
|
2731
2762
|
);
|
|
2732
2763
|
}
|
|
2733
|
-
function
|
|
2734
|
-
|
|
2764
|
+
function Qa(e, i) {
|
|
2765
|
+
var n, s;
|
|
2766
|
+
if (((n = e.source) == null ? void 0 : n.kind) !== "semantic" && ((s = e.source) == null ? void 0 : s.kind) !== "physical" && i.push(
|
|
2767
|
+
o(
|
|
2768
|
+
"invalid_input_options_source",
|
|
2769
|
+
"Input options must use a semantic or physical source.",
|
|
2770
|
+
"source"
|
|
2771
|
+
)
|
|
2772
|
+
), f(e.inputId) || i.push(
|
|
2735
2773
|
o(
|
|
2736
2774
|
"missing_input_options_input_id",
|
|
2737
2775
|
"Input options intent needs the inputId it populates.",
|
|
2738
2776
|
"inputId"
|
|
2739
2777
|
)
|
|
2778
|
+
), e.search !== void 0 && typeof e.search != "string" && i.push(
|
|
2779
|
+
o(
|
|
2780
|
+
"invalid_input_options_search",
|
|
2781
|
+
"Input options search must be a string.",
|
|
2782
|
+
"search"
|
|
2783
|
+
)
|
|
2784
|
+
), e.limit !== void 0 && (typeof e.limit != "number" || !Number.isFinite(e.limit) || !Number.isInteger(e.limit) || e.limit <= 0) && i.push(
|
|
2785
|
+
o(
|
|
2786
|
+
"invalid_input_options_limit",
|
|
2787
|
+
"Input options limit must be a positive finite number.",
|
|
2788
|
+
"limit"
|
|
2789
|
+
)
|
|
2740
2790
|
), (!e.labelField || !f(e.labelField.name)) && i.push(
|
|
2741
2791
|
o(
|
|
2742
2792
|
"missing_input_options_label_field",
|
|
@@ -2755,8 +2805,8 @@ function Ga(e, i) {
|
|
|
2755
2805
|
required: !0
|
|
2756
2806
|
}), e.searchField !== void 0 && g(e.searchField, "searchField", i, {
|
|
2757
2807
|
required: !0
|
|
2758
|
-
}), e.disambiguationFields !== void 0 && (Array.isArray(e.disambiguationFields) ? e.disambiguationFields.forEach((
|
|
2759
|
-
g(
|
|
2808
|
+
}), e.disambiguationFields !== void 0 && (Array.isArray(e.disambiguationFields) ? e.disambiguationFields.forEach((r, l) => {
|
|
2809
|
+
g(r, `disambiguationFields.${l}`, i, {
|
|
2760
2810
|
required: !0
|
|
2761
2811
|
});
|
|
2762
2812
|
}) : i.push(
|
|
@@ -2765,9 +2815,25 @@ function Ga(e, i) {
|
|
|
2765
2815
|
"Input options disambiguationFields must be an array of field refs.",
|
|
2766
2816
|
"disambiguationFields"
|
|
2767
2817
|
)
|
|
2768
|
-
)),
|
|
2769
|
-
|
|
2770
|
-
|
|
2818
|
+
)), [
|
|
2819
|
+
{ field: e.labelField, path: "labelField" },
|
|
2820
|
+
{ field: e.valueField, path: "valueField" },
|
|
2821
|
+
...e.searchField ? [{ field: e.searchField, path: "searchField" }] : [],
|
|
2822
|
+
...Array.isArray(e.disambiguationFields) ? e.disambiguationFields.map((r, l) => ({
|
|
2823
|
+
field: r,
|
|
2824
|
+
path: `disambiguationFields.${l}`
|
|
2825
|
+
})) : []
|
|
2826
|
+
].forEach(({ field: r, path: l }) => {
|
|
2827
|
+
r != null && r.source && !ge(r.source, e.source) && i.push(
|
|
2828
|
+
o(
|
|
2829
|
+
"input_options_field_source_mismatch",
|
|
2830
|
+
"Input option fields must belong to the declared option source.",
|
|
2831
|
+
`${l}.source`
|
|
2832
|
+
)
|
|
2833
|
+
);
|
|
2834
|
+
}), e.dependencies !== void 0) {
|
|
2835
|
+
const r = e.dependencies;
|
|
2836
|
+
if (!m(r))
|
|
2771
2837
|
i.push(
|
|
2772
2838
|
o(
|
|
2773
2839
|
"invalid_input_options_dependencies",
|
|
@@ -2776,29 +2842,29 @@ function Ga(e, i) {
|
|
|
2776
2842
|
)
|
|
2777
2843
|
);
|
|
2778
2844
|
else {
|
|
2779
|
-
const
|
|
2780
|
-
|
|
2845
|
+
const l = r.mode;
|
|
2846
|
+
l !== void 0 && l !== "independent" && l !== "explicit" && i.push(
|
|
2781
2847
|
o(
|
|
2782
2848
|
"invalid_input_options_dependencies",
|
|
2783
2849
|
"Input options dependencies mode must be independent or explicit.",
|
|
2784
2850
|
"dependencies.mode"
|
|
2785
2851
|
)
|
|
2786
|
-
),
|
|
2787
|
-
|
|
2852
|
+
), Oe(
|
|
2853
|
+
r.includeInputIds,
|
|
2788
2854
|
"dependencies.includeInputIds",
|
|
2789
2855
|
i,
|
|
2790
2856
|
"Input options includeInputIds must be non-empty strings."
|
|
2791
|
-
),
|
|
2792
|
-
|
|
2857
|
+
), Oe(
|
|
2858
|
+
r.excludeInputIds,
|
|
2793
2859
|
"dependencies.excludeInputIds",
|
|
2794
2860
|
i,
|
|
2795
2861
|
"Input options excludeInputIds must be non-empty strings."
|
|
2796
|
-
),
|
|
2862
|
+
), Xa(e, i);
|
|
2797
2863
|
}
|
|
2798
2864
|
}
|
|
2799
2865
|
if (e.population !== void 0) {
|
|
2800
|
-
const
|
|
2801
|
-
if (!m(
|
|
2866
|
+
const r = e.population;
|
|
2867
|
+
if (!m(r))
|
|
2802
2868
|
i.push(
|
|
2803
2869
|
o(
|
|
2804
2870
|
"invalid_input_options_population",
|
|
@@ -2807,38 +2873,38 @@ function Ga(e, i) {
|
|
|
2807
2873
|
)
|
|
2808
2874
|
);
|
|
2809
2875
|
else {
|
|
2810
|
-
const
|
|
2811
|
-
|
|
2876
|
+
const l = r.kind;
|
|
2877
|
+
l !== "option_source" && l !== "related_population" && i.push(
|
|
2812
2878
|
o(
|
|
2813
2879
|
"invalid_input_options_population",
|
|
2814
2880
|
"Input options population kind must be option_source or related_population.",
|
|
2815
2881
|
"population.kind"
|
|
2816
2882
|
)
|
|
2817
|
-
),
|
|
2883
|
+
), l === "option_source" && r.baseSource !== void 0 && i.push(
|
|
2818
2884
|
o(
|
|
2819
2885
|
"invalid_input_options_population",
|
|
2820
2886
|
"Input options population baseSource is only valid for related_population.",
|
|
2821
2887
|
"population.baseSource"
|
|
2822
2888
|
)
|
|
2823
|
-
),
|
|
2889
|
+
), l === "option_source" && r.relationshipHint !== void 0 && i.push(
|
|
2824
2890
|
o(
|
|
2825
2891
|
"invalid_input_options_population",
|
|
2826
2892
|
"Input options population relationshipHint is only valid for related_population.",
|
|
2827
2893
|
"population.relationshipHint"
|
|
2828
2894
|
)
|
|
2829
|
-
),
|
|
2830
|
-
|
|
2895
|
+
), l === "related_population" && (Se(
|
|
2896
|
+
r.baseSource,
|
|
2831
2897
|
"population.baseSource",
|
|
2832
2898
|
i
|
|
2833
|
-
),
|
|
2834
|
-
|
|
2899
|
+
), r.relationshipHint !== void 0 && ke(
|
|
2900
|
+
r.relationshipHint,
|
|
2835
2901
|
"population.relationshipHint",
|
|
2836
2902
|
i
|
|
2837
2903
|
));
|
|
2838
2904
|
}
|
|
2839
2905
|
}
|
|
2840
2906
|
}
|
|
2841
|
-
function
|
|
2907
|
+
function Za(e, i) {
|
|
2842
2908
|
if (!(!("inputs" in e) || e.inputs === void 0)) {
|
|
2843
2909
|
if (!Array.isArray(e.inputs)) {
|
|
2844
2910
|
i.push(
|
|
@@ -2851,11 +2917,11 @@ function za(e, i) {
|
|
|
2851
2917
|
return;
|
|
2852
2918
|
}
|
|
2853
2919
|
e.inputs.forEach(
|
|
2854
|
-
(t, n) =>
|
|
2920
|
+
(t, n) => Ya(t, `inputs.${n}`, i)
|
|
2855
2921
|
);
|
|
2856
2922
|
}
|
|
2857
2923
|
}
|
|
2858
|
-
function
|
|
2924
|
+
function Xa(e, i) {
|
|
2859
2925
|
var n, s;
|
|
2860
2926
|
const t = new Set(
|
|
2861
2927
|
Array.isArray(e.inputs) ? e.inputs.map((r) => m(r) ? r.inputId : void 0).filter((r) => typeof r == "string") : []
|
|
@@ -2877,11 +2943,11 @@ function Ya(e, i) {
|
|
|
2877
2943
|
)
|
|
2878
2944
|
);
|
|
2879
2945
|
}
|
|
2880
|
-
function
|
|
2946
|
+
function Oe(e, i, t, n) {
|
|
2881
2947
|
e !== void 0 && (!Array.isArray(e) || e.some((s) => !f(s))) && t.push(o("invalid_input_options_dependencies", n, i));
|
|
2882
2948
|
}
|
|
2883
2949
|
function k(e, i, t) {
|
|
2884
|
-
e !== void 0 && (typeof e != "string" || !
|
|
2950
|
+
e !== void 0 && (typeof e != "string" || !za.has(e)) && t.push(
|
|
2885
2951
|
o(
|
|
2886
2952
|
"invalid_aggregate",
|
|
2887
2953
|
"Field aggregate must be SUM, COUNT, AVG, MIN, MAX, MEDIAN, or DISTINCT.",
|
|
@@ -2889,20 +2955,20 @@ function k(e, i, t) {
|
|
|
2889
2955
|
)
|
|
2890
2956
|
);
|
|
2891
2957
|
}
|
|
2892
|
-
const
|
|
2958
|
+
const Wa = /* @__PURE__ */ new Set([
|
|
2893
2959
|
"measure",
|
|
2894
2960
|
"dimension",
|
|
2895
2961
|
"date",
|
|
2896
2962
|
"id",
|
|
2897
2963
|
"unknown"
|
|
2898
|
-
]),
|
|
2964
|
+
]), Ja = /* @__PURE__ */ new Set(["row", "aggregate"]), yi = /* @__PURE__ */ new Set([
|
|
2899
2965
|
"string",
|
|
2900
2966
|
"number",
|
|
2901
2967
|
"boolean",
|
|
2902
2968
|
"date",
|
|
2903
2969
|
"datetime",
|
|
2904
2970
|
"unknown"
|
|
2905
|
-
]),
|
|
2971
|
+
]), en = /* @__PURE__ */ new Set([
|
|
2906
2972
|
"number",
|
|
2907
2973
|
"currency",
|
|
2908
2974
|
"percent",
|
|
@@ -2913,13 +2979,13 @@ const Qa = /* @__PURE__ */ new Set([
|
|
|
2913
2979
|
"duration",
|
|
2914
2980
|
"string",
|
|
2915
2981
|
"temporal_bucket"
|
|
2916
|
-
]),
|
|
2982
|
+
]), tn = new Set(O), an = /* @__PURE__ */ new Set([
|
|
2917
2983
|
"millisecond",
|
|
2918
2984
|
"second",
|
|
2919
2985
|
"minute",
|
|
2920
2986
|
"hour",
|
|
2921
2987
|
"day"
|
|
2922
|
-
]),
|
|
2988
|
+
]), nn = /* @__PURE__ */ new Set(["compact", "digital", "long"]);
|
|
2923
2989
|
function bi(e, i, t) {
|
|
2924
2990
|
if (e === void 0)
|
|
2925
2991
|
return;
|
|
@@ -2934,7 +3000,7 @@ function bi(e, i, t) {
|
|
|
2934
3000
|
return;
|
|
2935
3001
|
}
|
|
2936
3002
|
const n = e;
|
|
2937
|
-
(typeof n.type != "string" || !
|
|
3003
|
+
(typeof n.type != "string" || !en.has(n.type)) && t.push(
|
|
2938
3004
|
o(
|
|
2939
3005
|
"invalid_value_format_type",
|
|
2940
3006
|
"Value format type must be number, currency, percent, percentage, scientific, date, datetime, duration, string, or temporal_bucket.",
|
|
@@ -2981,7 +3047,7 @@ function bi(e, i, t) {
|
|
|
2981
3047
|
);
|
|
2982
3048
|
for (const s of ["inputUnit", "largestUnit", "smallestUnit"]) {
|
|
2983
3049
|
const r = e[s];
|
|
2984
|
-
r !== void 0 && (typeof r != "string" || !
|
|
3050
|
+
r !== void 0 && (typeof r != "string" || !an.has(r)) && t.push(
|
|
2985
3051
|
o(
|
|
2986
3052
|
"invalid_value_format_duration_unit",
|
|
2987
3053
|
"Duration format units must be millisecond, second, minute, hour, or day.",
|
|
@@ -2989,7 +3055,7 @@ function bi(e, i, t) {
|
|
|
2989
3055
|
)
|
|
2990
3056
|
);
|
|
2991
3057
|
}
|
|
2992
|
-
e.outputStyle !== void 0 && (typeof e.outputStyle != "string" || !
|
|
3058
|
+
e.outputStyle !== void 0 && (typeof e.outputStyle != "string" || !nn.has(e.outputStyle)) && t.push(
|
|
2993
3059
|
o(
|
|
2994
3060
|
"invalid_value_format_duration_style",
|
|
2995
3061
|
"Duration format outputStyle must be compact, digital, or long.",
|
|
@@ -3019,20 +3085,20 @@ function U(e, i, t) {
|
|
|
3019
3085
|
)
|
|
3020
3086
|
);
|
|
3021
3087
|
}
|
|
3022
|
-
const
|
|
3088
|
+
const sn = /* @__PURE__ */ new Set([
|
|
3023
3089
|
"additive",
|
|
3024
3090
|
"non_additive",
|
|
3025
3091
|
"ratio_of_sums",
|
|
3026
3092
|
"weighted",
|
|
3027
3093
|
"pre_aggregated",
|
|
3028
3094
|
"snapshot"
|
|
3029
|
-
]),
|
|
3095
|
+
]), on = /* @__PURE__ */ new Set([
|
|
3030
3096
|
"default",
|
|
3031
3097
|
"symmetric_aggregate",
|
|
3032
3098
|
"aggregate_then_join",
|
|
3033
3099
|
"weighted"
|
|
3034
3100
|
]);
|
|
3035
|
-
function
|
|
3101
|
+
function rn(e, i, t) {
|
|
3036
3102
|
if (!e || !m(e)) {
|
|
3037
3103
|
t.push(
|
|
3038
3104
|
o(
|
|
@@ -3055,7 +3121,7 @@ function nn(e, i, t) {
|
|
|
3055
3121
|
)
|
|
3056
3122
|
);
|
|
3057
3123
|
}
|
|
3058
|
-
function
|
|
3124
|
+
function Be(e, i, t) {
|
|
3059
3125
|
if (!m(e)) {
|
|
3060
3126
|
t.push(
|
|
3061
3127
|
o(
|
|
@@ -3081,7 +3147,7 @@ function Oe(e, i, t) {
|
|
|
3081
3147
|
required: !0
|
|
3082
3148
|
});
|
|
3083
3149
|
}
|
|
3084
|
-
function
|
|
3150
|
+
function ln(e, i, t) {
|
|
3085
3151
|
if (!m(e)) {
|
|
3086
3152
|
t.push(
|
|
3087
3153
|
o(
|
|
@@ -3106,7 +3172,7 @@ function sn(e, i, t) {
|
|
|
3106
3172
|
)
|
|
3107
3173
|
), _i(e.format, `${i}.format`, t);
|
|
3108
3174
|
}
|
|
3109
|
-
function
|
|
3175
|
+
function dn(e, i, t) {
|
|
3110
3176
|
e !== void 0 && (xi(e) || t.push(
|
|
3111
3177
|
o(
|
|
3112
3178
|
"invalid_time_grain",
|
|
@@ -3132,7 +3198,7 @@ function wi(e, i, t, n) {
|
|
|
3132
3198
|
o(n, "Sort scope must be global or withinParent.", i)
|
|
3133
3199
|
);
|
|
3134
3200
|
}
|
|
3135
|
-
function
|
|
3201
|
+
function un(e, i, t) {
|
|
3136
3202
|
e.enabled !== void 0 && typeof e.enabled != "boolean" && t.push(
|
|
3137
3203
|
o(
|
|
3138
3204
|
"invalid_matrix_subtotal",
|
|
@@ -3153,7 +3219,7 @@ function rn(e, i, t) {
|
|
|
3153
3219
|
)
|
|
3154
3220
|
);
|
|
3155
3221
|
}
|
|
3156
|
-
function
|
|
3222
|
+
function cn(e, i, t) {
|
|
3157
3223
|
if (vi(
|
|
3158
3224
|
e.direction,
|
|
3159
3225
|
`${i}.direction`,
|
|
@@ -3195,7 +3261,7 @@ function ln(e, i, t) {
|
|
|
3195
3261
|
);
|
|
3196
3262
|
}
|
|
3197
3263
|
}
|
|
3198
|
-
function
|
|
3264
|
+
function Pe(e, i, t, n) {
|
|
3199
3265
|
if (!Array.isArray(e))
|
|
3200
3266
|
return n.required ? t.push(
|
|
3201
3267
|
o(
|
|
@@ -3240,8 +3306,8 @@ function Be(e, i, t, n) {
|
|
|
3240
3306
|
)
|
|
3241
3307
|
), g(u.field, `${d}.field`, t, {
|
|
3242
3308
|
required: !0
|
|
3243
|
-
}),
|
|
3244
|
-
const p =
|
|
3309
|
+
}), dn(u.grain, `${d}.grain`, t);
|
|
3310
|
+
const p = $e(
|
|
3245
3311
|
(T = u.field) == null ? void 0 : T.dataType
|
|
3246
3312
|
), y = ((j = u.field) == null ? void 0 : j.role) === "date" || p === "date" || p === "datetime", I = p === "string" || p === "number" || p === "boolean";
|
|
3247
3313
|
y && !u.grain && t.push(
|
|
@@ -3274,15 +3340,15 @@ function Be(e, i, t, n) {
|
|
|
3274
3340
|
));
|
|
3275
3341
|
const v = u.semanticTemporalPresentation;
|
|
3276
3342
|
if (v !== void 0) {
|
|
3277
|
-
const
|
|
3278
|
-
!u.grain || (v == null ? void 0 : v.granularity) !== u.grain || !oe.safeParse(
|
|
3343
|
+
const Ie = v == null ? void 0 : v.format;
|
|
3344
|
+
!u.grain || (v == null ? void 0 : v.granularity) !== u.grain || !oe.safeParse(Ie).success ? t.push(
|
|
3279
3345
|
o(
|
|
3280
3346
|
"invalid_matrix_temporal_format",
|
|
3281
3347
|
"Matrix semantic temporal presentation must match the selected grain.",
|
|
3282
3348
|
`${d}.semanticTemporalPresentation`
|
|
3283
3349
|
)
|
|
3284
3350
|
) : de(
|
|
3285
|
-
|
|
3351
|
+
Ie,
|
|
3286
3352
|
u.grain
|
|
3287
3353
|
).ok || t.push(
|
|
3288
3354
|
o(
|
|
@@ -3298,7 +3364,7 @@ function Be(e, i, t, n) {
|
|
|
3298
3364
|
"Matrix axis level label must be a string.",
|
|
3299
3365
|
`${d}.label`
|
|
3300
3366
|
)
|
|
3301
|
-
), u.subtotal !== void 0 && typeof u.subtotal != "boolean" && (m(u.subtotal) ?
|
|
3367
|
+
), u.subtotal !== void 0 && typeof u.subtotal != "boolean" && (m(u.subtotal) ? un(
|
|
3302
3368
|
u.subtotal,
|
|
3303
3369
|
`${d}.subtotal`,
|
|
3304
3370
|
t
|
|
@@ -3308,7 +3374,7 @@ function Be(e, i, t, n) {
|
|
|
3308
3374
|
"Matrix subtotal must be a boolean or structured options object.",
|
|
3309
3375
|
`${d}.subtotal`
|
|
3310
3376
|
)
|
|
3311
|
-
)), u.sortBy !== void 0 && (m(u.sortBy) ?
|
|
3377
|
+
)), u.sortBy !== void 0 && (m(u.sortBy) ? cn(
|
|
3312
3378
|
u.sortBy,
|
|
3313
3379
|
`${d}.sortBy`,
|
|
3314
3380
|
t
|
|
@@ -3321,7 +3387,7 @@ function Be(e, i, t, n) {
|
|
|
3321
3387
|
));
|
|
3322
3388
|
}), s;
|
|
3323
3389
|
}
|
|
3324
|
-
function
|
|
3390
|
+
function pn(e, i, t) {
|
|
3325
3391
|
if (!m(e)) {
|
|
3326
3392
|
t.push(
|
|
3327
3393
|
o(
|
|
@@ -3362,7 +3428,7 @@ function dn(e, i, t) {
|
|
|
3362
3428
|
)
|
|
3363
3429
|
);
|
|
3364
3430
|
}
|
|
3365
|
-
function
|
|
3431
|
+
function mn(e, i, t) {
|
|
3366
3432
|
if (!Array.isArray(e) || e.length === 0)
|
|
3367
3433
|
return t.push(
|
|
3368
3434
|
o(
|
|
@@ -3407,14 +3473,14 @@ function un(e, i, t) {
|
|
|
3407
3473
|
"Matrix value label must be a string.",
|
|
3408
3474
|
`${l}.label`
|
|
3409
3475
|
)
|
|
3410
|
-
), d.totalBehavior !== void 0 &&
|
|
3476
|
+
), d.totalBehavior !== void 0 && pn(
|
|
3411
3477
|
d.totalBehavior,
|
|
3412
3478
|
`${l}.totalBehavior`,
|
|
3413
3479
|
t
|
|
3414
3480
|
);
|
|
3415
3481
|
}), n;
|
|
3416
3482
|
}
|
|
3417
|
-
function
|
|
3483
|
+
function fn(e, i, t) {
|
|
3418
3484
|
if (!m(e)) {
|
|
3419
3485
|
t.push(
|
|
3420
3486
|
o(
|
|
@@ -3518,7 +3584,7 @@ function pe(e, i, t, n) {
|
|
|
3518
3584
|
);
|
|
3519
3585
|
});
|
|
3520
3586
|
}
|
|
3521
|
-
function
|
|
3587
|
+
function Ke(e, i, t, n) {
|
|
3522
3588
|
if (!m(e)) {
|
|
3523
3589
|
n.push(
|
|
3524
3590
|
o(
|
|
@@ -3556,7 +3622,7 @@ function Pe(e, i, t, n) {
|
|
|
3556
3622
|
)
|
|
3557
3623
|
));
|
|
3558
3624
|
}
|
|
3559
|
-
function
|
|
3625
|
+
function gn(e, i, t, n) {
|
|
3560
3626
|
if (e !== void 0) {
|
|
3561
3627
|
if (!m(e)) {
|
|
3562
3628
|
n.push(
|
|
@@ -3568,12 +3634,12 @@ function pn(e, i, t, n) {
|
|
|
3568
3634
|
);
|
|
3569
3635
|
return;
|
|
3570
3636
|
}
|
|
3571
|
-
e.rows !== void 0 &&
|
|
3637
|
+
e.rows !== void 0 && Ke(
|
|
3572
3638
|
e.rows,
|
|
3573
3639
|
"expansion.rows",
|
|
3574
3640
|
i,
|
|
3575
3641
|
n
|
|
3576
|
-
), e.columns !== void 0 &&
|
|
3642
|
+
), e.columns !== void 0 && Ke(
|
|
3577
3643
|
e.columns,
|
|
3578
3644
|
"expansion.columns",
|
|
3579
3645
|
t,
|
|
@@ -3581,7 +3647,7 @@ function pn(e, i, t, n) {
|
|
|
3581
3647
|
);
|
|
3582
3648
|
}
|
|
3583
3649
|
}
|
|
3584
|
-
function
|
|
3650
|
+
function hn(e, i, t, n, s) {
|
|
3585
3651
|
if (e !== void 0) {
|
|
3586
3652
|
if (!Array.isArray(e)) {
|
|
3587
3653
|
s.push(
|
|
@@ -3687,7 +3753,7 @@ function mn(e, i, t, n, s) {
|
|
|
3687
3753
|
});
|
|
3688
3754
|
}
|
|
3689
3755
|
}
|
|
3690
|
-
function
|
|
3756
|
+
function yn(e, i) {
|
|
3691
3757
|
if (e !== void 0) {
|
|
3692
3758
|
if (!m(e)) {
|
|
3693
3759
|
i.push(
|
|
@@ -3726,7 +3792,7 @@ function fn(e, i) {
|
|
|
3726
3792
|
);
|
|
3727
3793
|
}
|
|
3728
3794
|
}
|
|
3729
|
-
function
|
|
3795
|
+
function Ve(e, i, t) {
|
|
3730
3796
|
if (!m(e)) {
|
|
3731
3797
|
t.push(
|
|
3732
3798
|
o(
|
|
@@ -3753,7 +3819,7 @@ function Ke(e, i, t) {
|
|
|
3753
3819
|
)
|
|
3754
3820
|
);
|
|
3755
3821
|
}
|
|
3756
|
-
function
|
|
3822
|
+
function bn(e, i) {
|
|
3757
3823
|
if (e !== void 0) {
|
|
3758
3824
|
if (!m(e)) {
|
|
3759
3825
|
i.push(
|
|
@@ -3765,11 +3831,11 @@ function gn(e, i) {
|
|
|
3765
3831
|
);
|
|
3766
3832
|
return;
|
|
3767
3833
|
}
|
|
3768
|
-
e.rows !== void 0 &&
|
|
3834
|
+
e.rows !== void 0 && Ve(
|
|
3769
3835
|
e.rows,
|
|
3770
3836
|
"displayLimits.rows",
|
|
3771
3837
|
i
|
|
3772
|
-
), e.columns !== void 0 &&
|
|
3838
|
+
), e.columns !== void 0 && Ve(
|
|
3773
3839
|
e.columns,
|
|
3774
3840
|
"displayLimits.columns",
|
|
3775
3841
|
i
|
|
@@ -3784,7 +3850,7 @@ function gn(e, i) {
|
|
|
3784
3850
|
);
|
|
3785
3851
|
}
|
|
3786
3852
|
}
|
|
3787
|
-
function
|
|
3853
|
+
function _n(e, i) {
|
|
3788
3854
|
var u;
|
|
3789
3855
|
((u = e.source) == null ? void 0 : u.kind) === "sql" && i.push(
|
|
3790
3856
|
o(
|
|
@@ -3793,12 +3859,12 @@ function hn(e, i) {
|
|
|
3793
3859
|
"source.kind"
|
|
3794
3860
|
)
|
|
3795
3861
|
);
|
|
3796
|
-
const t =
|
|
3862
|
+
const t = Pe(e.rows, "rows", i, {
|
|
3797
3863
|
required: !0
|
|
3798
|
-
}), n =
|
|
3864
|
+
}), n = Pe(e.columns, "columns", i, {
|
|
3799
3865
|
required: !1
|
|
3800
|
-
}), s =
|
|
3801
|
-
z(e.filters, "filters", i), e.totals !== void 0 &&
|
|
3866
|
+
}), s = mn(e.values, "values", i);
|
|
3867
|
+
z(e.filters, "filters", i), e.totals !== void 0 && fn(e.totals, "totals", i), te(
|
|
3802
3868
|
t.map((p) => p.id),
|
|
3803
3869
|
"rows",
|
|
3804
3870
|
"row axis level",
|
|
@@ -3821,20 +3887,20 @@ function hn(e, i) {
|
|
|
3821
3887
|
), d = new Set(
|
|
3822
3888
|
s.map((p) => p.id).filter((p) => f(p))
|
|
3823
3889
|
);
|
|
3824
|
-
|
|
3890
|
+
hn(
|
|
3825
3891
|
e.sort,
|
|
3826
3892
|
r,
|
|
3827
3893
|
l,
|
|
3828
3894
|
d,
|
|
3829
3895
|
i
|
|
3830
|
-
),
|
|
3896
|
+
), gn(
|
|
3831
3897
|
e.expansion,
|
|
3832
3898
|
r,
|
|
3833
3899
|
l,
|
|
3834
3900
|
i
|
|
3835
|
-
),
|
|
3901
|
+
), yn(e.layout, i), bn(e.displayLimits, i);
|
|
3836
3902
|
}
|
|
3837
|
-
function
|
|
3903
|
+
function vn(e, i) {
|
|
3838
3904
|
if (e.analysis === void 0)
|
|
3839
3905
|
return;
|
|
3840
3906
|
if (!m(e.analysis)) {
|
|
@@ -3933,7 +3999,7 @@ function me(e, i, t) {
|
|
|
3933
3999
|
}
|
|
3934
4000
|
return;
|
|
3935
4001
|
}
|
|
3936
|
-
(typeof e.unit != "string" || !
|
|
4002
|
+
(typeof e.unit != "string" || !tn.has(e.unit)) && t.push(
|
|
3937
4003
|
o(
|
|
3938
4004
|
"invalid_time_window",
|
|
3939
4005
|
`Time window unit must be one of: ${O.join(", ")}.`,
|
|
@@ -4056,7 +4122,7 @@ function z(e, i, t) {
|
|
|
4056
4122
|
});
|
|
4057
4123
|
}
|
|
4058
4124
|
}
|
|
4059
|
-
function
|
|
4125
|
+
function $n(e) {
|
|
4060
4126
|
const i = [];
|
|
4061
4127
|
if (!m(e))
|
|
4062
4128
|
return i.push(
|
|
@@ -4083,7 +4149,7 @@ function bn(e) {
|
|
|
4083
4149
|
"Derived field needs a label.",
|
|
4084
4150
|
"label"
|
|
4085
4151
|
)
|
|
4086
|
-
),
|
|
4152
|
+
), Wa.has(e.resultRole) || i.push(
|
|
4087
4153
|
o(
|
|
4088
4154
|
"invalid_derived_field_role",
|
|
4089
4155
|
"Derived field resultRole must be measure, dimension, date, id, or unknown.",
|
|
@@ -4095,7 +4161,7 @@ function bn(e) {
|
|
|
4095
4161
|
"Derived field dataType must be string, number, boolean, date, datetime, or unknown.",
|
|
4096
4162
|
"dataType"
|
|
4097
4163
|
)
|
|
4098
|
-
),
|
|
4164
|
+
), Ja.has(e.computeStage) || i.push(
|
|
4099
4165
|
o(
|
|
4100
4166
|
"invalid_derived_field_compute_stage",
|
|
4101
4167
|
"Derived field computeStage must be row or aggregate.",
|
|
@@ -4123,7 +4189,7 @@ function bn(e) {
|
|
|
4123
4189
|
e.defaultAggregate,
|
|
4124
4190
|
"defaultAggregate",
|
|
4125
4191
|
i
|
|
4126
|
-
), e.aggregationBehavior !== void 0 && !
|
|
4192
|
+
), e.aggregationBehavior !== void 0 && !sn.has(
|
|
4127
4193
|
e.aggregationBehavior
|
|
4128
4194
|
) && i.push(
|
|
4129
4195
|
o(
|
|
@@ -4131,7 +4197,7 @@ function bn(e) {
|
|
|
4131
4197
|
"Derived field aggregationBehavior is not supported.",
|
|
4132
4198
|
"aggregationBehavior"
|
|
4133
4199
|
)
|
|
4134
|
-
), e.aggregationStrategy !== void 0 && !
|
|
4200
|
+
), e.aggregationStrategy !== void 0 && !on.has(
|
|
4135
4201
|
e.aggregationStrategy
|
|
4136
4202
|
) && i.push(
|
|
4137
4203
|
o(
|
|
@@ -4168,13 +4234,13 @@ function bn(e) {
|
|
|
4168
4234
|
);
|
|
4169
4235
|
return;
|
|
4170
4236
|
}
|
|
4171
|
-
|
|
4237
|
+
rn(
|
|
4172
4238
|
s,
|
|
4173
4239
|
`inputs.${n}`,
|
|
4174
4240
|
i
|
|
4175
4241
|
);
|
|
4176
4242
|
}), f(e.expression) && m(e.inputs)) {
|
|
4177
|
-
const n =
|
|
4243
|
+
const n = Ua(
|
|
4178
4244
|
e.expression
|
|
4179
4245
|
), s = new Set(n), r = Object.keys(e.inputs).filter(
|
|
4180
4246
|
(l) => f(l)
|
|
@@ -4212,7 +4278,7 @@ function bn(e) {
|
|
|
4212
4278
|
)
|
|
4213
4279
|
), { ok: i.length === 0, errors: i, warnings: [] };
|
|
4214
4280
|
}
|
|
4215
|
-
function
|
|
4281
|
+
function Hn(e) {
|
|
4216
4282
|
const i = [];
|
|
4217
4283
|
if (!m(e))
|
|
4218
4284
|
return i.push(
|
|
@@ -4239,7 +4305,7 @@ function Kn(e) {
|
|
|
4239
4305
|
"Result calculation kind must be percent_of_total, rank, running_total, or previous_row_delta.",
|
|
4240
4306
|
"kind"
|
|
4241
4307
|
)
|
|
4242
|
-
),
|
|
4308
|
+
), Be(e.input, "input", i), ln(e.output, "output", i), e.kind === "percent_of_total") {
|
|
4243
4309
|
const t = e.denominator;
|
|
4244
4310
|
t !== void 0 && (m(t) ? t.scope === "population" ? (g(t.metric, "denominator.metric", i, {
|
|
4245
4311
|
required: !0
|
|
@@ -4267,7 +4333,7 @@ function Kn(e) {
|
|
|
4267
4333
|
"Rank result calculation order must be asc or desc.",
|
|
4268
4334
|
"order"
|
|
4269
4335
|
)
|
|
4270
|
-
), (e.kind === "running_total" || e.kind === "previous_row_delta") && e.orderBy !== void 0 &&
|
|
4336
|
+
), (e.kind === "running_total" || e.kind === "previous_row_delta") && e.orderBy !== void 0 && Be(e.orderBy, "orderBy", i), { ok: i.length === 0, errors: i, warnings: [] };
|
|
4271
4337
|
}
|
|
4272
4338
|
function Si(e) {
|
|
4273
4339
|
var n;
|
|
@@ -4295,7 +4361,7 @@ function Si(e) {
|
|
|
4295
4361
|
"Analytics intent version must be 1.",
|
|
4296
4362
|
"version"
|
|
4297
4363
|
)
|
|
4298
|
-
),
|
|
4364
|
+
), Se(e.source, "source", i), wn(e, i), Za(e, i), "relationshipHint" in e && e.relationshipHint !== void 0 && ke(
|
|
4299
4365
|
e.relationshipHint,
|
|
4300
4366
|
"relationshipHint",
|
|
4301
4367
|
i
|
|
@@ -4321,7 +4387,7 @@ function Si(e) {
|
|
|
4321
4387
|
g(r, `measures.${l}`, i, {
|
|
4322
4388
|
required: !0
|
|
4323
4389
|
});
|
|
4324
|
-
}), s.length > 0 && !
|
|
4390
|
+
}), s.length > 0 && !Da(s)) {
|
|
4325
4391
|
const r = s.find(
|
|
4326
4392
|
(l, d) => s.some(
|
|
4327
4393
|
(u, p) => p !== d && gi(u, l)
|
|
@@ -4330,12 +4396,12 @@ function Si(e) {
|
|
|
4330
4396
|
r && i.push(
|
|
4331
4397
|
o(
|
|
4332
4398
|
"duplicate_measure",
|
|
4333
|
-
|
|
4399
|
+
Na(r),
|
|
4334
4400
|
"measures"
|
|
4335
4401
|
)
|
|
4336
4402
|
);
|
|
4337
4403
|
}
|
|
4338
|
-
if (m(e.primaryMeasure) && f(e.primaryMeasure.name) &&
|
|
4404
|
+
if (m(e.primaryMeasure) && f(e.primaryMeasure.name) && we(
|
|
4339
4405
|
e.primaryMeasure,
|
|
4340
4406
|
s
|
|
4341
4407
|
).length > 1 && i.push(
|
|
@@ -4346,7 +4412,7 @@ function Si(e) {
|
|
|
4346
4412
|
)
|
|
4347
4413
|
), e.primaryMeasure !== void 0 && (g(e.primaryMeasure, "primaryMeasure", i, {
|
|
4348
4414
|
required: !0
|
|
4349
|
-
}), m(e.primaryMeasure) && f(e.primaryMeasure.name) && s.length > 0 && !
|
|
4415
|
+
}), m(e.primaryMeasure) && f(e.primaryMeasure.name) && s.length > 0 && !Oa(
|
|
4350
4416
|
e.primaryMeasure,
|
|
4351
4417
|
s
|
|
4352
4418
|
) && i.push(
|
|
@@ -4402,7 +4468,7 @@ function Si(e) {
|
|
|
4402
4468
|
(l) => m(l) && f(l.name)
|
|
4403
4469
|
) : []
|
|
4404
4470
|
];
|
|
4405
|
-
r.length > 0 && !
|
|
4471
|
+
r.length > 0 && !Ba(
|
|
4406
4472
|
e.orderBy.field,
|
|
4407
4473
|
r
|
|
4408
4474
|
) && i.push(
|
|
@@ -4414,7 +4480,7 @@ function Si(e) {
|
|
|
4414
4480
|
);
|
|
4415
4481
|
}
|
|
4416
4482
|
}
|
|
4417
|
-
|
|
4483
|
+
vn(e, i);
|
|
4418
4484
|
} else if (e.kind === "records") {
|
|
4419
4485
|
if (!Array.isArray(e.fields) || e.fields.length === 0 ? i.push(
|
|
4420
4486
|
o(
|
|
@@ -4496,7 +4562,7 @@ function Si(e) {
|
|
|
4496
4562
|
);
|
|
4497
4563
|
});
|
|
4498
4564
|
}
|
|
4499
|
-
} else e.kind === "inputOptions" ?
|
|
4565
|
+
} else e.kind === "inputOptions" ? Qa(e, i) : e.kind === "matrix" ? _n(e, i) : e.kind === "sql" ? (((n = e.source) == null ? void 0 : n.kind) !== "sql" && i.push(
|
|
4500
4566
|
o(
|
|
4501
4567
|
"invalid_sql_source",
|
|
4502
4568
|
"SQL analytics intent must use a SQL execution source.",
|
|
@@ -4504,7 +4570,7 @@ function Si(e) {
|
|
|
4504
4570
|
)
|
|
4505
4571
|
), f(e.sql) || i.push(
|
|
4506
4572
|
o("missing_sql", "SQL analytics intent needs SQL text.", "sql")
|
|
4507
|
-
),
|
|
4573
|
+
), qa(
|
|
4508
4574
|
e.defaultParameters,
|
|
4509
4575
|
"defaultParameters",
|
|
4510
4576
|
i
|
|
@@ -4521,10 +4587,10 @@ function Si(e) {
|
|
|
4521
4587
|
ok: i.length === 0,
|
|
4522
4588
|
errors: i,
|
|
4523
4589
|
warnings: t,
|
|
4524
|
-
repairHints:
|
|
4590
|
+
repairHints: kn(i)
|
|
4525
4591
|
};
|
|
4526
4592
|
}
|
|
4527
|
-
function
|
|
4593
|
+
function wn(e, i) {
|
|
4528
4594
|
if (!(!("derivedFields" in e) || e.derivedFields === void 0)) {
|
|
4529
4595
|
if (!Array.isArray(e.derivedFields)) {
|
|
4530
4596
|
i.push(
|
|
@@ -4537,7 +4603,7 @@ function _n(e, i) {
|
|
|
4537
4603
|
return;
|
|
4538
4604
|
}
|
|
4539
4605
|
e.derivedFields.forEach((t, n) => {
|
|
4540
|
-
|
|
4606
|
+
$n(
|
|
4541
4607
|
t
|
|
4542
4608
|
).errors.forEach((r) => {
|
|
4543
4609
|
i.push({
|
|
@@ -4548,7 +4614,7 @@ function _n(e, i) {
|
|
|
4548
4614
|
});
|
|
4549
4615
|
}
|
|
4550
4616
|
}
|
|
4551
|
-
function
|
|
4617
|
+
function Sn(e) {
|
|
4552
4618
|
const i = [], t = [];
|
|
4553
4619
|
if (!e || typeof e != "object")
|
|
4554
4620
|
return {
|
|
@@ -4623,7 +4689,7 @@ function vn(e) {
|
|
|
4623
4689
|
repairHints: ki(i)
|
|
4624
4690
|
};
|
|
4625
4691
|
}
|
|
4626
|
-
function
|
|
4692
|
+
function Un(e) {
|
|
4627
4693
|
const i = [], t = [];
|
|
4628
4694
|
if (!e || typeof e != "object")
|
|
4629
4695
|
return {
|
|
@@ -4651,7 +4717,7 @@ function Vn(e) {
|
|
|
4651
4717
|
"kind"
|
|
4652
4718
|
)
|
|
4653
4719
|
);
|
|
4654
|
-
const n =
|
|
4720
|
+
const n = Sn(
|
|
4655
4721
|
e.operationIntent
|
|
4656
4722
|
);
|
|
4657
4723
|
return i.push(...n.errors), t.push(...n.warnings), Array.isArray(e.plannedToolCalls) || i.push(
|
|
@@ -4673,7 +4739,7 @@ function ki(e) {
|
|
|
4673
4739
|
recommendedNextStep: i.code === "missing_obligations" ? "Normalize the user request into one or more typed analytics obligations before recovery planning." : "Correct the operation/recovery contract shape before planning execution."
|
|
4674
4740
|
}));
|
|
4675
4741
|
}
|
|
4676
|
-
function
|
|
4742
|
+
function kn(e) {
|
|
4677
4743
|
return e.map((i) => {
|
|
4678
4744
|
switch (i.code) {
|
|
4679
4745
|
case "missing_source":
|
|
@@ -4756,7 +4822,7 @@ function $n(e) {
|
|
|
4756
4822
|
}
|
|
4757
4823
|
}).filter((i) => !!i);
|
|
4758
4824
|
}
|
|
4759
|
-
function
|
|
4825
|
+
function In(e, i, t, n) {
|
|
4760
4826
|
if (!e || typeof e != "object") {
|
|
4761
4827
|
t.push(
|
|
4762
4828
|
o("invalid_view", "Dashboard view must be an object.", i)
|
|
@@ -4820,7 +4886,7 @@ function wn(e, i, t, n) {
|
|
|
4820
4886
|
)
|
|
4821
4887
|
);
|
|
4822
4888
|
}
|
|
4823
|
-
function
|
|
4889
|
+
function Gn(e) {
|
|
4824
4890
|
const i = [], t = [];
|
|
4825
4891
|
if (!e || typeof e != "object")
|
|
4826
4892
|
return {
|
|
@@ -4913,7 +4979,7 @@ function Ln(e) {
|
|
|
4913
4979
|
continue;
|
|
4914
4980
|
}
|
|
4915
4981
|
for (const [I, v] of p.views.entries())
|
|
4916
|
-
|
|
4982
|
+
In(
|
|
4917
4983
|
v,
|
|
4918
4984
|
`${y}.views.${I}`,
|
|
4919
4985
|
i,
|
|
@@ -4923,82 +4989,82 @@ function Ln(e) {
|
|
|
4923
4989
|
return { ok: i.length === 0, errors: i, warnings: t };
|
|
4924
4990
|
}
|
|
4925
4991
|
export {
|
|
4926
|
-
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
|
|
4930
|
-
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
|
|
4934
|
-
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4939
|
-
|
|
4940
|
-
|
|
4941
|
-
|
|
4942
|
-
|
|
4943
|
-
|
|
4944
|
-
|
|
4992
|
+
Dn as $,
|
|
4993
|
+
Un as A,
|
|
4994
|
+
Gn as B,
|
|
4995
|
+
ve as C,
|
|
4996
|
+
$a as D,
|
|
4997
|
+
wa as E,
|
|
4998
|
+
$e as F,
|
|
4999
|
+
Aa as G,
|
|
5000
|
+
di as H,
|
|
5001
|
+
ui as I,
|
|
5002
|
+
Ce as J,
|
|
5003
|
+
pi as K,
|
|
5004
|
+
Bn as L,
|
|
5005
|
+
Pn as M,
|
|
5006
|
+
Rt as N,
|
|
5007
|
+
oe as O,
|
|
5008
|
+
Et as P,
|
|
5009
|
+
ei as Q,
|
|
5010
|
+
An as R,
|
|
4945
5011
|
ne as S,
|
|
4946
|
-
|
|
4947
|
-
|
|
4948
|
-
|
|
4949
|
-
|
|
4950
|
-
|
|
4951
|
-
|
|
4952
|
-
|
|
4953
|
-
|
|
4954
|
-
|
|
4955
|
-
|
|
4956
|
-
|
|
4957
|
-
|
|
4958
|
-
|
|
4959
|
-
|
|
4960
|
-
|
|
4961
|
-
|
|
4962
|
-
|
|
4963
|
-
|
|
4964
|
-
|
|
4965
|
-
|
|
4966
|
-
|
|
4967
|
-
|
|
4968
|
-
|
|
4969
|
-
|
|
4970
|
-
|
|
4971
|
-
|
|
4972
|
-
|
|
4973
|
-
|
|
4974
|
-
|
|
4975
|
-
|
|
4976
|
-
|
|
4977
|
-
|
|
4978
|
-
|
|
4979
|
-
|
|
4980
|
-
|
|
4981
|
-
|
|
4982
|
-
|
|
4983
|
-
|
|
4984
|
-
|
|
4985
|
-
|
|
4986
|
-
|
|
4987
|
-
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
|
|
4993
|
-
|
|
4994
|
-
|
|
4995
|
-
|
|
5012
|
+
Rn as T,
|
|
5013
|
+
Ft as U,
|
|
5014
|
+
Dt as V,
|
|
5015
|
+
F as W,
|
|
5016
|
+
M as X,
|
|
5017
|
+
ii as Y,
|
|
5018
|
+
be as Z,
|
|
5019
|
+
N as _,
|
|
5020
|
+
Cn as a,
|
|
5021
|
+
Nn as a0,
|
|
5022
|
+
le as a1,
|
|
5023
|
+
ai as a2,
|
|
5024
|
+
Lt as a3,
|
|
5025
|
+
Ht as a4,
|
|
5026
|
+
Ut as a5,
|
|
5027
|
+
Gt as a6,
|
|
5028
|
+
pa as a7,
|
|
5029
|
+
ma as a8,
|
|
5030
|
+
ni as a9,
|
|
5031
|
+
si as aa,
|
|
5032
|
+
oi as ab,
|
|
5033
|
+
fa as ac,
|
|
5034
|
+
ha as ad,
|
|
5035
|
+
On as ae,
|
|
5036
|
+
ge as af,
|
|
5037
|
+
Le as ag,
|
|
5038
|
+
jn as ah,
|
|
5039
|
+
Ci as ai,
|
|
5040
|
+
de as aj,
|
|
5041
|
+
Kn as ak,
|
|
5042
|
+
ja as al,
|
|
5043
|
+
Ra as am,
|
|
5044
|
+
Vn as an,
|
|
5045
|
+
Mi as b,
|
|
5046
|
+
he as c,
|
|
5047
|
+
ca as d,
|
|
5048
|
+
Ri as e,
|
|
5049
|
+
Ti as f,
|
|
5050
|
+
qn as g,
|
|
5051
|
+
Ln as h,
|
|
5052
|
+
Fn as i,
|
|
5053
|
+
Tn as j,
|
|
5054
|
+
ae as k,
|
|
5055
|
+
O as l,
|
|
5056
|
+
Ii as m,
|
|
5057
|
+
fe as n,
|
|
5058
|
+
xi as o,
|
|
5059
|
+
En as p,
|
|
5060
|
+
Ai as q,
|
|
5061
|
+
Mn as r,
|
|
4996
5062
|
Ei as s,
|
|
4997
5063
|
re as t,
|
|
4998
|
-
|
|
5064
|
+
ue as u,
|
|
4999
5065
|
Ue as v,
|
|
5000
|
-
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
|
|
5066
|
+
$n as w,
|
|
5067
|
+
Hn as x,
|
|
5068
|
+
Si as y,
|
|
5069
|
+
Sn as z
|
|
5004
5070
|
};
|