@keboola/api-client 44.0.0 → 45.0.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/CHANGELOG.md +17 -0
- package/dist/{index-BMiZx-4_.d.cts → index-BKOFRmTB.d.cts} +2 -2
- package/dist/{index-DzGmgUvQ.d.ts → index-Bl2EloC0.d.ts} +12 -6
- package/dist/{index-DZcQUZaO.d.cts → index-CGFGd3tF.d.cts} +12 -6
- package/dist/{index-B72LTF-k.d.ts → index-DtuwWYDR.d.ts} +2 -2
- package/dist/index.cjs +5 -5
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -5
- package/dist/{jobStatus-CcNlIy5R.cjs → jobStatus-B0E-MZ9I.cjs} +2 -2
- package/dist/{jobStatus-CcNlIy5R.cjs.map → jobStatus-B0E-MZ9I.cjs.map} +1 -1
- package/dist/{jobStatus-CDp4r5JQ.js → jobStatus-BJdbZ72V.js} +2 -2
- package/dist/{jobStatus-CDp4r5JQ.js.map → jobStatus-BJdbZ72V.js.map} +1 -1
- package/dist/metastore/index.d.cts +1 -1
- package/dist/metastore/index.d.ts +1 -1
- package/dist/metastore/types.d.cts +1 -1
- package/dist/metastore/types.d.ts +1 -1
- package/dist/queryService/index.cjs +1 -1
- package/dist/queryService/index.d.cts +1 -1
- package/dist/queryService/index.d.ts +1 -1
- package/dist/queryService/index.js +1 -1
- package/dist/{queryService-OgdbrBjA.js → queryService-Blfz59Ms.js} +2 -2
- package/dist/{queryService-OgdbrBjA.js.map → queryService-Blfz59Ms.js.map} +1 -1
- package/dist/{queryService-e2ql5eev.cjs → queryService-RlNYw7LG.cjs} +2 -2
- package/dist/{queryService-e2ql5eev.cjs.map → queryService-RlNYw7LG.cjs.map} +1 -1
- package/dist/queue/index.cjs +1 -1
- package/dist/queue/index.d.cts +8 -2
- package/dist/queue/index.d.ts +8 -2
- package/dist/queue/index.js +1 -1
- package/dist/queue/types.d.cts +1 -1
- package/dist/queue/types.d.ts +1 -1
- package/dist/{queue-DGoMbK1X.cjs → queue-BrgRdtOr.cjs} +2 -2
- package/dist/{queue-DGoMbK1X.cjs.map → queue-BrgRdtOr.cjs.map} +1 -1
- package/dist/{queue-BZwZuZZx.js → queue-CNvR-M23.js} +2 -2
- package/dist/{queue-BZwZuZZx.js.map → queue-CNvR-M23.js.map} +1 -1
- package/dist/sdk/configurations/index.d.cts +1 -1
- package/dist/sdk/configurations/index.d.ts +1 -1
- package/dist/sdk/kaiMemory/index.d.cts +1 -1
- package/dist/sdk/kaiMemory/index.d.ts +1 -1
- package/dist/sdk/kaiMemory/types.d.cts +1 -1
- package/dist/sdk/kaiMemory/types.d.ts +1 -1
- package/dist/sdk/queryService/index.cjs +1 -1
- package/dist/sdk/queryService/index.d.cts +1 -1
- package/dist/sdk/queryService/index.d.ts +1 -1
- package/dist/sdk/queryService/index.js +1 -1
- package/dist/sdk/semanticLayer/index.cjs +1 -2
- package/dist/sdk/semanticLayer/index.d.cts +3 -20
- package/dist/sdk/semanticLayer/index.d.ts +3 -20
- package/dist/sdk/semanticLayer/index.js +2 -2
- package/dist/sdk/semanticLayer/types.d.cts +2 -2
- package/dist/sdk/semanticLayer/types.d.ts +2 -2
- package/dist/sdk/storage/index.d.cts +1 -1
- package/dist/sdk/storage/index.d.ts +1 -1
- package/dist/sdk/tag/index.d.cts +2 -2
- package/dist/sdk/tag/index.d.ts +2 -2
- package/dist/sdk/tag/types.d.cts +1 -1
- package/dist/sdk/tag/types.d.ts +1 -1
- package/dist/{semanticLayer-Cz22bIjd.cjs → semanticLayer-7BejcMj_.cjs} +10 -84
- package/dist/semanticLayer-7BejcMj_.cjs.map +1 -0
- package/dist/{semanticLayer-JSE51K68.js → semanticLayer-DvjS_nzo.js} +11 -79
- package/dist/semanticLayer-DvjS_nzo.js.map +1 -0
- package/dist/storage/index.cjs +1 -1
- package/dist/storage/index.d.cts +1 -1
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.js +1 -1
- package/dist/{storage-B4AnXas_.cjs → storage-76Sf_z_H.cjs} +2 -2
- package/dist/{storage-B4AnXas_.cjs.map → storage-76Sf_z_H.cjs.map} +1 -1
- package/dist/{storage-CsdA47AL.js → storage-RkNaOFJ-.js} +2 -2
- package/dist/{storage-CsdA47AL.js.map → storage-RkNaOFJ-.js.map} +1 -1
- package/dist/{types-DwVSj-Da.d.ts → types-9SEE4icc.d.ts} +29 -2
- package/dist/{types-CwZgZqrA.d.ts → types-B-5ya_L5.d.ts} +12 -1
- package/dist/{types-DUMal2E-.d.cts → types-BjR8Yodc.d.cts} +29 -2
- package/dist/{types-CigD_EF5.d.ts → types-CABWhTa9.d.ts} +4 -8
- package/dist/{types-04GTqleJ.d.cts → types-CalDJHCX.d.cts} +3 -3
- package/dist/{types-BgHtMe8s.d.cts → types-Ccd9O6ca.d.cts} +3 -3
- package/dist/{types-QSchmyvO.d.ts → types-DVZpKGBJ.d.ts} +3 -3
- package/dist/{types-DyArI_Jq.d.cts → types-DdsYv2WG.d.cts} +4 -8
- package/dist/{types-CAAgCRmE.d.cts → types-tgU8XvPs.d.cts} +12 -1
- package/dist/{types-CV7jmgtX.d.ts → types-z82gSTx8.d.ts} +3 -3
- package/package.json +1 -1
- package/surface/queue.md +7 -7
- package/dist/semanticLayer-Cz22bIjd.cjs.map +0 -1
- package/dist/semanticLayer-JSE51K68.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_jobStatus = require("../../jobStatus-
|
|
2
|
+
const require_jobStatus = require("../../jobStatus-B0E-MZ9I.cjs");
|
|
3
3
|
const require_QueryJobTimeoutError = require("../../QueryJobTimeoutError-CVNPdCWX.cjs");
|
|
4
4
|
const require_ValidationError = require("../../ValidationError-D65QU0uq.cjs");
|
|
5
5
|
//#region src/sdks/queryService/queryServiceSdk.ts
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as createQueryServiceSdk, n as ExecuteQueryOptions, r as WaitForJobOptions } from "../../index-
|
|
1
|
+
import { i as createQueryServiceSdk, n as ExecuteQueryOptions, r as WaitForJobOptions } from "../../index-CGFGd3tF.cjs";
|
|
2
2
|
export { ExecuteQueryOptions, WaitForJobOptions, createQueryServiceSdk };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as createQueryServiceSdk, n as ExecuteQueryOptions, r as WaitForJobOptions } from "../../index-
|
|
1
|
+
import { i as createQueryServiceSdk, n as ExecuteQueryOptions, r as WaitForJobOptions } from "../../index-Bl2EloC0.js";
|
|
2
2
|
export { ExecuteQueryOptions, WaitForJobOptions, createQueryServiceSdk };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as poll, t as jobStatus } from "../../jobStatus-
|
|
1
|
+
import { i as poll, t as jobStatus } from "../../jobStatus-BJdbZ72V.js";
|
|
2
2
|
import { r as QueryJobError, t as QueryJobTimeoutError } from "../../QueryJobTimeoutError-C7JbNGOM.js";
|
|
3
3
|
import { t as ValidationError } from "../../ValidationError-DjhtNMfZ.js";
|
|
4
4
|
//#region src/sdks/queryService/queryServiceSdk.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_semanticLayer = require("../../semanticLayer-
|
|
2
|
+
const require_semanticLayer = require("../../semanticLayer-7BejcMj_.cjs");
|
|
3
3
|
exports.CONSTRAINT_SCOPES = require_semanticLayer.CONSTRAINT_SCOPES;
|
|
4
4
|
exports.CONSTRAINT_SEVERITIES = require_semanticLayer.CONSTRAINT_SEVERITIES;
|
|
5
5
|
exports.CONSTRAINT_TYPES = require_semanticLayer.CONSTRAINT_TYPES;
|
|
@@ -11,7 +11,6 @@ exports.SEMANTIC_CHILD_OBJECT_SCHEMAS = require_semanticLayer.SEMANTIC_CHILD_OBJ
|
|
|
11
11
|
exports.SEMANTIC_OBJECT_SCOPES = require_semanticLayer.SEMANTIC_OBJECT_SCOPES;
|
|
12
12
|
exports.SEMANTIC_OBJECT_TYPE = require_semanticLayer.SEMANTIC_OBJECT_TYPE;
|
|
13
13
|
exports.SQL_DIALECTS = require_semanticLayer.SQL_DIALECTS;
|
|
14
|
-
exports.SemanticLayerCascadeDeleteError = require_semanticLayer.SemanticLayerCascadeDeleteError;
|
|
15
14
|
exports.SemanticLayerUnreadableChildrenError = require_semanticLayer.SemanticLayerUnreadableChildrenError;
|
|
16
15
|
exports.createSemanticLayerSdk = require_semanticLayer.createSemanticLayerSdk;
|
|
17
16
|
exports.metastoreErrorMessage = require_semanticLayer.metastoreErrorMessage;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as CONSTRAINT_TYPES, D as UpdateSemanticObjectMeta, F as SQL_DIALECTS, M as RELATIONSHIP_JOIN_TYPES, N as RULE_OPERATORS, O as CONSTRAINT_SCOPES, P as SEMANTIC_OBJECT_SCOPES, T as SemanticUnreadableObjectRef, _ as SemanticObject, a as SemanticChildObjectType, b as SemanticObjectType, g as SemanticModelData, h as SemanticModelChildRef, i as SemanticChildObjectDataMap, j as FIELD_ROLES, k as CONSTRAINT_SEVERITIES, m as SemanticMetricData, n as MetastoreClient, o as SemanticConstraintData, p as SemanticGlossaryData, t as CreateSemanticObjectMeta, u as SemanticDatasetData, x as SemanticRelationshipData } from "../../types-DdsYv2WG.cjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
//#region src/sdks/semanticLayer/errorMessage.d.ts
|
|
4
4
|
/**
|
|
@@ -93,26 +93,9 @@ declare const SEMANTIC_CHILD_OBJECT_SCHEMAS: {
|
|
|
93
93
|
};
|
|
94
94
|
//#endregion
|
|
95
95
|
//#region src/sdks/semanticLayer/semanticLayerSdk.d.ts
|
|
96
|
-
/**
|
|
97
|
-
* Thrown by `deleteModel` when the child cascade partially fails.
|
|
98
|
-
*
|
|
99
|
-
* - Every child delete has settled; the model was kept.
|
|
100
|
-
* - `deletedChildren` are gone, `failedChildren` still exist; `errors` holds per-child reasons.
|
|
101
|
-
*/
|
|
102
|
-
declare class SemanticLayerCascadeDeleteError extends AggregateError {
|
|
103
|
-
readonly modelUUID: string;
|
|
104
|
-
readonly deletedChildren: SemanticModelChildRef[];
|
|
105
|
-
readonly failedChildren: SemanticModelChildDeleteFailure[];
|
|
106
|
-
constructor({ modelUUID, deletedChildren, failedChildren }: {
|
|
107
|
-
modelUUID: string;
|
|
108
|
-
deletedChildren: SemanticModelChildRef[];
|
|
109
|
-
failedChildren: SemanticModelChildDeleteFailure[];
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
96
|
/**
|
|
113
97
|
* Thrown by `listModelChildren` when some child could not be parsed; fails closed.
|
|
114
98
|
*
|
|
115
|
-
* - `deleteModel` reads before the cascade, so nothing is deleted when this throws.
|
|
116
99
|
* - An `unreadable` entry with `modelUUID: null` counts against every model.
|
|
117
100
|
*/
|
|
118
101
|
declare class SemanticLayerUnreadableChildrenError extends Error {
|
|
@@ -131,7 +114,7 @@ declare const SEMANTIC_OBJECT_TYPE: {
|
|
|
131
114
|
readonly GLOSSARY: 'semantic-glossary';
|
|
132
115
|
readonly CONSTRAINT: 'semantic-constraint';
|
|
133
116
|
};
|
|
134
|
-
/** `readonly`: it drives what a
|
|
117
|
+
/** `readonly`: it drives what a model delete confirmation lists. */
|
|
135
118
|
declare const MODEL_CHILD_OBJECT_TYPES: readonly SemanticChildObjectType[];
|
|
136
119
|
type Options = {
|
|
137
120
|
metastoreClient: MetastoreClient;
|
|
@@ -163,5 +146,5 @@ declare const createSemanticLayerSdk: ({ metastoreClient }: Options) => {
|
|
|
163
146
|
listMyPendingScopeElevationRequests: (objectType: SemanticObjectType, signal?: AbortSignal) => Promise<SemanticObject<Record<string, unknown>>[]>;
|
|
164
147
|
};
|
|
165
148
|
//#endregion
|
|
166
|
-
export { CONSTRAINT_SCOPES, CONSTRAINT_SEVERITIES, CONSTRAINT_TYPES, FIELD_ROLES, MODEL_CHILD_OBJECT_TYPES, RELATIONSHIP_JOIN_TYPES, RULE_OPERATORS, SEMANTIC_CHILD_OBJECT_SCHEMAS, SEMANTIC_OBJECT_SCOPES, SEMANTIC_OBJECT_TYPE, SQL_DIALECTS,
|
|
149
|
+
export { CONSTRAINT_SCOPES, CONSTRAINT_SEVERITIES, CONSTRAINT_TYPES, FIELD_ROLES, MODEL_CHILD_OBJECT_TYPES, RELATIONSHIP_JOIN_TYPES, RULE_OPERATORS, SEMANTIC_CHILD_OBJECT_SCHEMAS, SEMANTIC_OBJECT_SCOPES, SEMANTIC_OBJECT_TYPE, SQL_DIALECTS, SemanticLayerUnreadableChildrenError, createSemanticLayerSdk, metastoreErrorMessage, semanticConstraintSchema, semanticDatasetSchema, semanticGlossarySchema, semanticMetricSchema, semanticModelSchema, semanticRelationshipSchema };
|
|
167
150
|
//# sourceMappingURL=index.d.cts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as CONSTRAINT_TYPES, D as UpdateSemanticObjectMeta, F as SQL_DIALECTS, M as RELATIONSHIP_JOIN_TYPES, N as RULE_OPERATORS, O as CONSTRAINT_SCOPES, P as SEMANTIC_OBJECT_SCOPES, T as SemanticUnreadableObjectRef, _ as SemanticObject, a as SemanticChildObjectType, b as SemanticObjectType, g as SemanticModelData, h as SemanticModelChildRef, i as SemanticChildObjectDataMap, j as FIELD_ROLES, k as CONSTRAINT_SEVERITIES, m as SemanticMetricData, n as MetastoreClient, o as SemanticConstraintData, p as SemanticGlossaryData, t as CreateSemanticObjectMeta, u as SemanticDatasetData, x as SemanticRelationshipData } from "../../types-CABWhTa9.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
//#region src/sdks/semanticLayer/errorMessage.d.ts
|
|
4
4
|
/**
|
|
@@ -93,26 +93,9 @@ declare const SEMANTIC_CHILD_OBJECT_SCHEMAS: {
|
|
|
93
93
|
};
|
|
94
94
|
//#endregion
|
|
95
95
|
//#region src/sdks/semanticLayer/semanticLayerSdk.d.ts
|
|
96
|
-
/**
|
|
97
|
-
* Thrown by `deleteModel` when the child cascade partially fails.
|
|
98
|
-
*
|
|
99
|
-
* - Every child delete has settled; the model was kept.
|
|
100
|
-
* - `deletedChildren` are gone, `failedChildren` still exist; `errors` holds per-child reasons.
|
|
101
|
-
*/
|
|
102
|
-
declare class SemanticLayerCascadeDeleteError extends AggregateError {
|
|
103
|
-
readonly modelUUID: string;
|
|
104
|
-
readonly deletedChildren: SemanticModelChildRef[];
|
|
105
|
-
readonly failedChildren: SemanticModelChildDeleteFailure[];
|
|
106
|
-
constructor({ modelUUID, deletedChildren, failedChildren }: {
|
|
107
|
-
modelUUID: string;
|
|
108
|
-
deletedChildren: SemanticModelChildRef[];
|
|
109
|
-
failedChildren: SemanticModelChildDeleteFailure[];
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
96
|
/**
|
|
113
97
|
* Thrown by `listModelChildren` when some child could not be parsed; fails closed.
|
|
114
98
|
*
|
|
115
|
-
* - `deleteModel` reads before the cascade, so nothing is deleted when this throws.
|
|
116
99
|
* - An `unreadable` entry with `modelUUID: null` counts against every model.
|
|
117
100
|
*/
|
|
118
101
|
declare class SemanticLayerUnreadableChildrenError extends Error {
|
|
@@ -131,7 +114,7 @@ declare const SEMANTIC_OBJECT_TYPE: {
|
|
|
131
114
|
readonly GLOSSARY: 'semantic-glossary';
|
|
132
115
|
readonly CONSTRAINT: 'semantic-constraint';
|
|
133
116
|
};
|
|
134
|
-
/** `readonly`: it drives what a
|
|
117
|
+
/** `readonly`: it drives what a model delete confirmation lists. */
|
|
135
118
|
declare const MODEL_CHILD_OBJECT_TYPES: readonly SemanticChildObjectType[];
|
|
136
119
|
type Options = {
|
|
137
120
|
metastoreClient: MetastoreClient;
|
|
@@ -163,5 +146,5 @@ declare const createSemanticLayerSdk: ({ metastoreClient }: Options) => {
|
|
|
163
146
|
listMyPendingScopeElevationRequests: (objectType: SemanticObjectType, signal?: AbortSignal) => Promise<SemanticObject<Record<string, unknown>>[]>;
|
|
164
147
|
};
|
|
165
148
|
//#endregion
|
|
166
|
-
export { CONSTRAINT_SCOPES, CONSTRAINT_SEVERITIES, CONSTRAINT_TYPES, FIELD_ROLES, MODEL_CHILD_OBJECT_TYPES, RELATIONSHIP_JOIN_TYPES, RULE_OPERATORS, SEMANTIC_CHILD_OBJECT_SCHEMAS, SEMANTIC_OBJECT_SCOPES, SEMANTIC_OBJECT_TYPE, SQL_DIALECTS,
|
|
149
|
+
export { CONSTRAINT_SCOPES, CONSTRAINT_SEVERITIES, CONSTRAINT_TYPES, FIELD_ROLES, MODEL_CHILD_OBJECT_TYPES, RELATIONSHIP_JOIN_TYPES, RULE_OPERATORS, SEMANTIC_CHILD_OBJECT_SCHEMAS, SEMANTIC_OBJECT_SCOPES, SEMANTIC_OBJECT_TYPE, SQL_DIALECTS, SemanticLayerUnreadableChildrenError, createSemanticLayerSdk, metastoreErrorMessage, semanticConstraintSchema, semanticDatasetSchema, semanticGlossarySchema, semanticMetricSchema, semanticModelSchema, semanticRelationshipSchema };
|
|
167
150
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as
|
|
2
|
-
export { CONSTRAINT_SCOPES, CONSTRAINT_SEVERITIES, CONSTRAINT_TYPES, FIELD_ROLES, MODEL_CHILD_OBJECT_TYPES, RELATIONSHIP_JOIN_TYPES, RULE_OPERATORS, SEMANTIC_CHILD_OBJECT_SCHEMAS, SEMANTIC_OBJECT_SCOPES, SEMANTIC_OBJECT_TYPE, SQL_DIALECTS,
|
|
1
|
+
import { _ as RULE_OPERATORS, a as SEMANTIC_CHILD_OBJECT_SCHEMAS, b as metastoreErrorMessage, c as semanticGlossarySchema, d as semanticRelationshipSchema, f as CONSTRAINT_SCOPES, g as RELATIONSHIP_JOIN_TYPES, h as FIELD_ROLES, i as createSemanticLayerSdk, l as semanticMetricSchema, m as CONSTRAINT_TYPES, n as SEMANTIC_OBJECT_TYPE, o as semanticConstraintSchema, p as CONSTRAINT_SEVERITIES, r as SemanticLayerUnreadableChildrenError, s as semanticDatasetSchema, t as MODEL_CHILD_OBJECT_TYPES, u as semanticModelSchema, v as SEMANTIC_OBJECT_SCOPES, y as SQL_DIALECTS } from "../../semanticLayer-DvjS_nzo.js";
|
|
2
|
+
export { CONSTRAINT_SCOPES, CONSTRAINT_SEVERITIES, CONSTRAINT_TYPES, FIELD_ROLES, MODEL_CHILD_OBJECT_TYPES, RELATIONSHIP_JOIN_TYPES, RULE_OPERATORS, SEMANTIC_CHILD_OBJECT_SCHEMAS, SEMANTIC_OBJECT_SCOPES, SEMANTIC_OBJECT_TYPE, SQL_DIALECTS, SemanticLayerUnreadableChildrenError, createSemanticLayerSdk, metastoreErrorMessage, semanticConstraintSchema, semanticDatasetSchema, semanticGlossarySchema, semanticMetricSchema, semanticModelSchema, semanticRelationshipSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as
|
|
2
|
-
export { CreateSemanticObjectMeta, MetastoreClient, SemanticAiMetadata, SemanticChildObjectDataMap, SemanticChildObjectType, SemanticConstraintData, SemanticConstraintScope, SemanticConstraintSeverity, SemanticConstraintType, SemanticDatasetData, SemanticFieldData, SemanticFieldRole, SemanticGlossaryData, SemanticMetricData,
|
|
1
|
+
import { C as SemanticRuleExpression, D as UpdateSemanticObjectMeta, E as SemanticValidationQuery, S as SemanticRelationshipJoinType, T as SemanticUnreadableObjectRef, _ as SemanticObject, a as SemanticChildObjectType, b as SemanticObjectType, c as SemanticConstraintSeverity, d as SemanticFieldData, f as SemanticFieldRole, g as SemanticModelData, h as SemanticModelChildRef, i as SemanticChildObjectDataMap, l as SemanticConstraintType, m as SemanticMetricData, n as MetastoreClient, o as SemanticConstraintData, p as SemanticGlossaryData, r as SemanticAiMetadata, s as SemanticConstraintScope, t as CreateSemanticObjectMeta, u as SemanticDatasetData, v as SemanticObjectMeta, w as SemanticRuleOperator, x as SemanticRelationshipData, y as SemanticObjectScope } from "../../types-DdsYv2WG.cjs";
|
|
2
|
+
export { CreateSemanticObjectMeta, MetastoreClient, SemanticAiMetadata, SemanticChildObjectDataMap, SemanticChildObjectType, SemanticConstraintData, SemanticConstraintScope, SemanticConstraintSeverity, SemanticConstraintType, SemanticDatasetData, SemanticFieldData, SemanticFieldRole, SemanticGlossaryData, SemanticMetricData, SemanticModelChildRef, SemanticModelData, SemanticObject, SemanticObjectMeta, SemanticObjectScope, SemanticObjectType, SemanticRelationshipData, SemanticRelationshipJoinType, SemanticRuleExpression, SemanticRuleOperator, SemanticUnreadableObjectRef, SemanticValidationQuery, UpdateSemanticObjectMeta };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as
|
|
2
|
-
export { CreateSemanticObjectMeta, MetastoreClient, SemanticAiMetadata, SemanticChildObjectDataMap, SemanticChildObjectType, SemanticConstraintData, SemanticConstraintScope, SemanticConstraintSeverity, SemanticConstraintType, SemanticDatasetData, SemanticFieldData, SemanticFieldRole, SemanticGlossaryData, SemanticMetricData,
|
|
1
|
+
import { C as SemanticRuleExpression, D as UpdateSemanticObjectMeta, E as SemanticValidationQuery, S as SemanticRelationshipJoinType, T as SemanticUnreadableObjectRef, _ as SemanticObject, a as SemanticChildObjectType, b as SemanticObjectType, c as SemanticConstraintSeverity, d as SemanticFieldData, f as SemanticFieldRole, g as SemanticModelData, h as SemanticModelChildRef, i as SemanticChildObjectDataMap, l as SemanticConstraintType, m as SemanticMetricData, n as MetastoreClient, o as SemanticConstraintData, p as SemanticGlossaryData, r as SemanticAiMetadata, s as SemanticConstraintScope, t as CreateSemanticObjectMeta, u as SemanticDatasetData, v as SemanticObjectMeta, w as SemanticRuleOperator, x as SemanticRelationshipData, y as SemanticObjectScope } from "../../types-CABWhTa9.js";
|
|
2
|
+
export { CreateSemanticObjectMeta, MetastoreClient, SemanticAiMetadata, SemanticChildObjectDataMap, SemanticChildObjectType, SemanticConstraintData, SemanticConstraintScope, SemanticConstraintSeverity, SemanticConstraintType, SemanticDatasetData, SemanticFieldData, SemanticFieldRole, SemanticGlossaryData, SemanticMetricData, SemanticModelChildRef, SemanticModelData, SemanticObject, SemanticObjectMeta, SemanticObjectScope, SemanticObjectType, SemanticRelationshipData, SemanticRelationshipJoinType, SemanticRuleExpression, SemanticRuleOperator, SemanticUnreadableObjectRef, SemanticValidationQuery, UpdateSemanticObjectMeta };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as parseCurrentDevBranchIdFromUrl, c as FQID_TYPES, d as parseFQID, f as parse, l as ParsedFQID, m as createStorageSdk, o as parseDevBranchId, p as tableIdParser, s as prefixTagsWithDevBranchId, u as constructFQID } from "../../index-
|
|
1
|
+
import { a as parseCurrentDevBranchIdFromUrl, c as FQID_TYPES, d as parseFQID, f as parse, l as ParsedFQID, m as createStorageSdk, o as parseDevBranchId, p as tableIdParser, s as prefixTagsWithDevBranchId, u as constructFQID } from "../../index-CGFGd3tF.cjs";
|
|
2
2
|
export { FQID_TYPES, ParsedFQID, constructFQID, createStorageSdk, parse, parseCurrentDevBranchIdFromUrl, parseDevBranchId, parseFQID, prefixTagsWithDevBranchId, tableIdParser };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as parseCurrentDevBranchIdFromUrl, c as FQID_TYPES, d as parseFQID, f as parse, l as ParsedFQID, m as createStorageSdk, o as parseDevBranchId, p as tableIdParser, s as prefixTagsWithDevBranchId, u as constructFQID } from "../../index-
|
|
1
|
+
import { a as parseCurrentDevBranchIdFromUrl, c as FQID_TYPES, d as parseFQID, f as parse, l as ParsedFQID, m as createStorageSdk, o as parseDevBranchId, p as tableIdParser, s as prefixTagsWithDevBranchId, u as constructFQID } from "../../index-Bl2EloC0.js";
|
|
2
2
|
export { FQID_TYPES, ParsedFQID, constructFQID, createStorageSdk, parse, parseCurrentDevBranchIdFromUrl, parseDevBranchId, parseFQID, prefixTagsWithDevBranchId, tableIdParser };
|
package/dist/sdk/tag/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as MetaObject } from "../../types-
|
|
1
|
+
import { S as MetaObject } from "../../types-tgU8XvPs.cjs";
|
|
2
2
|
import { n as KeboolaObjectId } from "../../index-BfqkgPGI.cjs";
|
|
3
|
-
import { a as TagWithBindings, i as TagData, n as MetastoreClient, o as UpdateMetaObjectMetaDataInput, t as CreateMetaObjectMetaDataInput } from "../../types-
|
|
3
|
+
import { a as TagWithBindings, i as TagData, n as MetastoreClient, o as UpdateMetaObjectMetaDataInput, t as CreateMetaObjectMetaDataInput } from "../../types-Ccd9O6ca.cjs";
|
|
4
4
|
//#region src/sdks/tag/tagSdk.d.ts
|
|
5
5
|
type Options = {
|
|
6
6
|
metastoreClient: MetastoreClient;
|
package/dist/sdk/tag/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as MetaObject } from "../../types-
|
|
1
|
+
import { S as MetaObject } from "../../types-B-5ya_L5.js";
|
|
2
2
|
import { n as KeboolaObjectId } from "../../index-BfqkgPGI.js";
|
|
3
|
-
import { a as TagWithBindings, i as TagData, n as MetastoreClient, o as UpdateMetaObjectMetaDataInput, t as CreateMetaObjectMetaDataInput } from "../../types-
|
|
3
|
+
import { a as TagWithBindings, i as TagData, n as MetastoreClient, o as UpdateMetaObjectMetaDataInput, t as CreateMetaObjectMetaDataInput } from "../../types-DVZpKGBJ.js";
|
|
4
4
|
//#region src/sdks/tag/tagSdk.d.ts
|
|
5
5
|
type Options = {
|
|
6
6
|
metastoreClient: MetastoreClient;
|
package/dist/sdk/tag/types.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as TagWithBindings, i as TagData, n as MetastoreClient, o as UpdateMetaObjectMetaDataInput, r as TagBindingData, t as CreateMetaObjectMetaDataInput } from "../../types-
|
|
1
|
+
import { a as TagWithBindings, i as TagData, n as MetastoreClient, o as UpdateMetaObjectMetaDataInput, r as TagBindingData, t as CreateMetaObjectMetaDataInput } from "../../types-Ccd9O6ca.cjs";
|
|
2
2
|
export { CreateMetaObjectMetaDataInput, MetastoreClient, TagBindingData, TagData, TagWithBindings, UpdateMetaObjectMetaDataInput };
|
package/dist/sdk/tag/types.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as TagWithBindings, i as TagData, n as MetastoreClient, o as UpdateMetaObjectMetaDataInput, r as TagBindingData, t as CreateMetaObjectMetaDataInput } from "../../types-
|
|
1
|
+
import { a as TagWithBindings, i as TagData, n as MetastoreClient, o as UpdateMetaObjectMetaDataInput, r as TagBindingData, t as CreateMetaObjectMetaDataInput } from "../../types-DVZpKGBJ.js";
|
|
2
2
|
export { CreateMetaObjectMetaDataInput, MetastoreClient, TagBindingData, TagData, TagWithBindings, UpdateMetaObjectMetaDataInput };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
const require_concurrent = require("./concurrent-CdVfR1N5.cjs");
|
|
2
2
|
const require_generateUUID = require("./generateUUID-C6qKBPIv.cjs");
|
|
3
|
-
const require_createFetchClient = require("./createFetchClient-ClWD4ua3.cjs");
|
|
4
3
|
const require_ValidationError = require("./ValidationError-D65QU0uq.cjs");
|
|
5
4
|
let zod = require("zod");
|
|
6
5
|
//#region src/sdks/semanticLayer/errorMessage.ts
|
|
@@ -265,28 +264,8 @@ const semanticObjectReadSchema = (dataSchema) => zod.z.object({
|
|
|
265
264
|
//#endregion
|
|
266
265
|
//#region src/sdks/semanticLayer/semanticLayerSdk.ts
|
|
267
266
|
/**
|
|
268
|
-
* Thrown by `deleteModel` when the child cascade partially fails.
|
|
269
|
-
*
|
|
270
|
-
* - Every child delete has settled; the model was kept.
|
|
271
|
-
* - `deletedChildren` are gone, `failedChildren` still exist; `errors` holds per-child reasons.
|
|
272
|
-
*/
|
|
273
|
-
var SemanticLayerCascadeDeleteError = class extends AggregateError {
|
|
274
|
-
modelUUID;
|
|
275
|
-
deletedChildren;
|
|
276
|
-
failedChildren;
|
|
277
|
-
constructor({ modelUUID, deletedChildren, failedChildren }) {
|
|
278
|
-
const total = deletedChildren.length + failedChildren.length;
|
|
279
|
-
super(failedChildren.map((failure) => failure.error), `The model was kept because ${failedChildren.length} of its ${total} child objects could not be deleted (${deletedChildren.length} deleted).`);
|
|
280
|
-
this.name = "SemanticLayerCascadeDeleteError";
|
|
281
|
-
this.modelUUID = modelUUID;
|
|
282
|
-
this.deletedChildren = deletedChildren;
|
|
283
|
-
this.failedChildren = failedChildren;
|
|
284
|
-
}
|
|
285
|
-
};
|
|
286
|
-
/**
|
|
287
267
|
* Thrown by `listModelChildren` when some child could not be parsed; fails closed.
|
|
288
268
|
*
|
|
289
|
-
* - `deleteModel` reads before the cascade, so nothing is deleted when this throws.
|
|
290
269
|
* - An `unreadable` entry with `modelUUID: null` counts against every model.
|
|
291
270
|
*/
|
|
292
271
|
var SemanticLayerUnreadableChildrenError = class extends Error {
|
|
@@ -307,7 +286,7 @@ const SEMANTIC_OBJECT_TYPE = {
|
|
|
307
286
|
GLOSSARY: "semantic-glossary",
|
|
308
287
|
CONSTRAINT: "semantic-constraint"
|
|
309
288
|
};
|
|
310
|
-
/** `readonly`: it drives what a
|
|
289
|
+
/** `readonly`: it drives what a model delete confirmation lists. */
|
|
311
290
|
const MODEL_CHILD_OBJECT_TYPES = [
|
|
312
291
|
SEMANTIC_OBJECT_TYPE.DATASET,
|
|
313
292
|
SEMANTIC_OBJECT_TYPE.METRIC,
|
|
@@ -498,12 +477,6 @@ const createSemanticLayerSdk = ({ metastoreClient }) => {
|
|
|
498
477
|
});
|
|
499
478
|
return mapObject(response.data);
|
|
500
479
|
};
|
|
501
|
-
/**
|
|
502
|
-
* Whether a failed delete left the object gone anyway (lost a race).
|
|
503
|
-
*
|
|
504
|
-
* - Only `404`: the metastore's "already deleted" `500` is indistinguishable from a real one.
|
|
505
|
-
*/
|
|
506
|
-
const isAlreadyDeleted = (error) => require_createFetchClient.isApiError(error) && error.response.status === require_createFetchClient.HttpStatus.NOT_FOUND;
|
|
507
480
|
const deleteObject = async (objectType, objectUUID) => {
|
|
508
481
|
await metastoreClient.repository.deleteMetaObject({
|
|
509
482
|
objectType,
|
|
@@ -513,10 +486,10 @@ const createSemanticLayerSdk = ({ metastoreClient }) => {
|
|
|
513
486
|
/**
|
|
514
487
|
* Every child object of a model, flattened; `name` is the display label.
|
|
515
488
|
*
|
|
516
|
-
* -
|
|
489
|
+
* - Delete confirmations use this to say what a model delete would destroy.
|
|
517
490
|
* - Costs five list requests, one per child type, each server-side filtered to this model.
|
|
518
491
|
* - Throws `SemanticLayerUnreadableChildrenError` rather than degrading — a short list would
|
|
519
|
-
*
|
|
492
|
+
* under-report what a delete destroys.
|
|
520
493
|
*/
|
|
521
494
|
const listModelChildren = async (modelUUID, signal) => {
|
|
522
495
|
const perType = await Promise.all(MODEL_CHILD_OBJECT_TYPES.map(async (objectType) => {
|
|
@@ -542,57 +515,16 @@ const createSemanticLayerSdk = ({ metastoreClient }) => {
|
|
|
542
515
|
return perType.flatMap((result) => result.children);
|
|
543
516
|
};
|
|
544
517
|
/**
|
|
545
|
-
*
|
|
518
|
+
* Deletes a model; the metastore deletes all its child objects in the same transaction.
|
|
546
519
|
*
|
|
547
|
-
* -
|
|
548
|
-
* -
|
|
549
|
-
* - The model's own 404 is tolerated only after a child was deleted here.
|
|
520
|
+
* - `409`: another object holds a `restrict` reference to the model; nothing was deleted.
|
|
521
|
+
* - `404`: no such model, or it was already deleted.
|
|
550
522
|
*/
|
|
551
523
|
const deleteModel = async (modelUUID) => {
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
process: async (child) => {
|
|
556
|
-
try {
|
|
557
|
-
await deleteObject(child.objectType, child.objectUUID);
|
|
558
|
-
return {
|
|
559
|
-
ok: true,
|
|
560
|
-
child
|
|
561
|
-
};
|
|
562
|
-
} catch (error) {
|
|
563
|
-
if (isAlreadyDeleted(error)) return {
|
|
564
|
-
ok: true,
|
|
565
|
-
child
|
|
566
|
-
};
|
|
567
|
-
return {
|
|
568
|
-
ok: false,
|
|
569
|
-
child,
|
|
570
|
-
error
|
|
571
|
-
};
|
|
572
|
-
}
|
|
573
|
-
},
|
|
574
|
-
concurrency: WRITE_CONCURRENCY
|
|
575
|
-
});
|
|
576
|
-
const deletedChildren = [];
|
|
577
|
-
const failedChildren = [];
|
|
578
|
-
for (const outcome of outcomes) if (outcome.ok) deletedChildren.push(outcome.child);
|
|
579
|
-
else failedChildren.push({
|
|
580
|
-
...outcome.child,
|
|
581
|
-
error: outcome.error
|
|
582
|
-
});
|
|
583
|
-
if (failedChildren.length > 0) throw new SemanticLayerCascadeDeleteError({
|
|
584
|
-
modelUUID,
|
|
585
|
-
deletedChildren,
|
|
586
|
-
failedChildren
|
|
524
|
+
await metastoreClient.repository.deleteMetaObject({
|
|
525
|
+
objectType: SEMANTIC_OBJECT_TYPE.MODEL,
|
|
526
|
+
UUID: modelUUID
|
|
587
527
|
});
|
|
588
|
-
try {
|
|
589
|
-
await metastoreClient.repository.deleteMetaObject({
|
|
590
|
-
objectType: SEMANTIC_OBJECT_TYPE.MODEL,
|
|
591
|
-
UUID: modelUUID
|
|
592
|
-
});
|
|
593
|
-
} catch (error) {
|
|
594
|
-
if (deletedChildren.length === 0 || !isAlreadyDeleted(error)) throw error;
|
|
595
|
-
}
|
|
596
528
|
};
|
|
597
529
|
/**
|
|
598
530
|
* Replace the projects granted read access to a `targeted`-scope object.
|
|
@@ -754,12 +686,6 @@ Object.defineProperty(exports, "SQL_DIALECTS", {
|
|
|
754
686
|
return SQL_DIALECTS;
|
|
755
687
|
}
|
|
756
688
|
});
|
|
757
|
-
Object.defineProperty(exports, "SemanticLayerCascadeDeleteError", {
|
|
758
|
-
enumerable: true,
|
|
759
|
-
get: function() {
|
|
760
|
-
return SemanticLayerCascadeDeleteError;
|
|
761
|
-
}
|
|
762
|
-
});
|
|
763
689
|
Object.defineProperty(exports, "SemanticLayerUnreadableChildrenError", {
|
|
764
690
|
enumerable: true,
|
|
765
691
|
get: function() {
|
|
@@ -815,4 +741,4 @@ Object.defineProperty(exports, "semanticRelationshipSchema", {
|
|
|
815
741
|
}
|
|
816
742
|
});
|
|
817
743
|
|
|
818
|
-
//# sourceMappingURL=semanticLayer-
|
|
744
|
+
//# sourceMappingURL=semanticLayer-7BejcMj_.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semanticLayer-7BejcMj_.cjs","names":["z","z","formatValidationIssues","generateUUID","parseOrThrow","z","formatValidationIssues","concurrent"],"sources":["../src/sdks/semanticLayer/errorMessage.ts","../src/sdks/semanticLayer/vocabulary.ts","../src/sdks/semanticLayer/schemas.ts","../src/sdks/semanticLayer/readSchemas.ts","../src/sdks/semanticLayer/semanticLayerSdk.ts"],"sourcesContent":["/**\n * The message out of a metastore error body.\n *\n * - Only `errors[].message` says what is wrong; the top-level message is just \"Validation failed\".\n * - Any other shape returns `undefined`, so the caller keeps its own fallback.\n * - Only the first error: the metastore reports fields one at a time.\n */\nexport const metastoreErrorMessage = (data: unknown): string | undefined => {\n if (typeof data !== 'object' || data === null) return undefined;\n const errors = (data as { errors?: unknown }).errors;\n if (!Array.isArray(errors)) return undefined;\n const first = errors[0];\n if (typeof first !== 'object' || first === null) return undefined;\n const message = (first as { message?: unknown }).message;\n return typeof message === 'string' && message ? message : undefined;\n};\n","/**\n * The closed value sets the metastore accepts on a semantic object.\n *\n * - The single runtime source for the unions `./types` derives from these arrays.\n * - Imports nothing: `./types` reads it, never the reverse.\n */\n\n/**\n * The dialects the metastore accepts, case-sensitive.\n *\n * - `SemanticModelData.sql_dialect` stays `string` (narrowing is a major bump); validate against this.\n */\nexport const SQL_DIALECTS = ['Snowflake', 'BigQuery'] as const;\n\nexport const CONSTRAINT_TYPES = [\n 'inequality',\n 'equality',\n 'range',\n 'composition',\n 'exclusion',\n 'temporal',\n 'conditional',\n] as const;\n\n/** Dataset field roles; enumerated, unlike a field's free-form `type`. */\nexport const FIELD_ROLES = ['key', 'dimension', 'measure', 'timestamp'] as const;\n\n/** Constraint severities; unset is stored as `warning`. */\nexport const CONSTRAINT_SEVERITIES = ['error', 'warning', 'info'] as const;\n\n/** Constraint scopes; unset is stored as `global`. */\nexport const CONSTRAINT_SCOPES = ['global', 'per_location', 'per_date', 'per_category'] as const;\n\nexport const RULE_OPERATORS = [\n '<',\n '<=',\n '=',\n '>=',\n '>',\n '!=',\n 'between',\n 'in',\n 'sum_equals',\n 'ratio_between',\n] as const;\n\nexport const RELATIONSHIP_JOIN_TYPES = ['left', 'inner'] as const;\n\n/** Who can read an object, narrowest first; an envelope `meta` field, not part of `data`. */\nexport const SEMANTIC_OBJECT_SCOPES = ['project', 'targeted', 'organization'] as const;\n","import { z } from 'zod';\n\nimport { CONSTRAINT_TYPES, SQL_DIALECTS } from './vocabulary';\n\n/**\n * Write validators for untrusted input; the metastore's own validation errors are opaque.\n *\n * - Only required fields are declared; `looseObject` passes the rest through (the metastore owns the full schema).\n * - The SDK does not parse its own writes.\n * - `modelUUID` is omitted: the SDK injects it.\n */\n\nexport const semanticModelSchema = z.looseObject({\n name: z.string().min(1),\n sql_dialect: z.enum(SQL_DIALECTS),\n});\n\nexport const semanticDatasetSchema = z.looseObject({\n name: z.string().min(1),\n tableId: z.string().min(1),\n fqn: z.string().min(1),\n});\n\nexport const semanticMetricSchema = z.looseObject({\n name: z.string().min(1),\n sql: z.string().min(1),\n});\n\nexport const semanticRelationshipSchema = z.looseObject({\n from: z.string().min(1),\n to: z.string().min(1),\n on: z.string().min(1),\n});\n\nexport const semanticGlossarySchema = z.looseObject({\n term: z.string().min(1),\n definition: z.string().min(1),\n});\n\nexport const semanticConstraintSchema = z.looseObject({\n name: z.string().min(1),\n constraintType: z.enum(CONSTRAINT_TYPES),\n metrics: z.array(z.string()),\n rule: z.string().min(1),\n});\n\nexport const SEMANTIC_CHILD_OBJECT_SCHEMAS = {\n 'semantic-dataset': semanticDatasetSchema,\n 'semantic-metric': semanticMetricSchema,\n 'semantic-relationship': semanticRelationshipSchema,\n 'semantic-glossary': semanticGlossarySchema,\n 'semantic-constraint': semanticConstraintSchema,\n} as const;\n","import { z } from 'zod';\n\nimport { formatValidationIssues } from '../../errors';\n\nimport type {\n SemanticAiMetadata,\n SemanticChildObjectDataMap,\n SemanticChildObjectType,\n SemanticConstraintData,\n SemanticDatasetData,\n SemanticFieldData,\n SemanticGlossaryData,\n SemanticMetricData,\n SemanticModelData,\n SemanticObjectMeta,\n SemanticRelationshipData,\n SemanticRuleExpression,\n SemanticValidationQuery,\n} from './types';\nimport {\n CONSTRAINT_SCOPES,\n CONSTRAINT_SEVERITIES,\n CONSTRAINT_TYPES,\n FIELD_ROLES,\n RELATIONSHIP_JOIN_TYPES,\n RULE_OPERATORS,\n SEMANTIC_OBJECT_SCOPES,\n} from './vocabulary';\n\n/**\n * What a read of the metastore is allowed to hand back, per object type.\n *\n * - Each schema is annotated with its `./types` type, so the two cannot drift apart.\n * - `looseObject`: fields the metastore adds still reach callers.\n * - An unknown value in an optional enum reads as absent; in a required enum it drops the object.\n */\n\nconst aiMetadataSchema: z.ZodType<SemanticAiMetadata, unknown> = z.looseObject({\n synonyms: z.array(z.string()).optional(),\n keywords: z.array(z.string()).optional(),\n antiKeywords: z.array(z.string()).optional(),\n hints: z.array(z.string()).optional(),\n warnings: z.array(z.string()).optional(),\n});\n\nconst fieldSchema: z.ZodType<SemanticFieldData, unknown> = z.looseObject({\n name: z.string(),\n description: z.string().optional(),\n type: z.string().optional(),\n role: z.enum(FIELD_ROLES).optional().catch(undefined),\n values: z.array(z.string()).optional(),\n ai: aiMetadataSchema.optional(),\n});\n\n/**\n * A dataset's `fields`, where a malformed column is dropped rather than the whole dataset.\n *\n * - `schemas.ts` does not validate `fields` on write, so a nameless column can be stored.\n */\nconst datasetFieldsSchema = z.array(z.unknown()).transform((items) =>\n items.flatMap((element, index) => {\n const result = fieldSchema.safeParse(element);\n if (result.success) return [result.data];\n\n console.warn(\n `semanticLayerSdk: dropped field #${index} from a semantic-dataset, it does not match ` +\n `its declared shape`,\n formatValidationIssues(result.error.issues),\n );\n return [];\n }),\n);\n\nconst ruleExpressionSchema: z.ZodType<SemanticRuleExpression, unknown> = z.looseObject({\n operator: z.enum(RULE_OPERATORS).optional().catch(undefined),\n left: z.string().optional(),\n right: z.string().optional(),\n bounds: z\n .looseObject({\n min: z.number().optional(),\n max: z.number().optional(),\n })\n .optional(),\n});\n\nconst validationQuerySchema: z.ZodType<SemanticValidationQuery, unknown> = z.looseObject({\n default: z.string().optional(),\n snowflake: z.string().optional(),\n bigquery: z.string().optional(),\n});\n\nexport const semanticModelReadSchema: z.ZodType<SemanticModelData, unknown> = z.looseObject({\n name: z.string(),\n description: z.string().optional(),\n sql_dialect: z.string(),\n});\n\nconst semanticDatasetReadSchema: z.ZodType<SemanticDatasetData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n tableId: z.string(),\n fqn: z.string(),\n description: z.string().optional(),\n grain: z.string().optional(),\n primaryKey: z.array(z.string()).optional(),\n fields: datasetFieldsSchema.optional(),\n ai: aiMetadataSchema.optional(),\n});\n\nconst semanticMetricReadSchema: z.ZodType<SemanticMetricData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n sql: z.string(),\n dataset: z.string().optional(),\n description: z.string().optional(),\n});\n\nconst semanticRelationshipReadSchema: z.ZodType<SemanticRelationshipData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string().optional(),\n from: z.string(),\n to: z.string(),\n on: z.string(),\n type: z.enum(RELATIONSHIP_JOIN_TYPES).optional().catch(undefined),\n});\n\nconst semanticGlossaryReadSchema: z.ZodType<SemanticGlossaryData, unknown> = z.looseObject({\n modelUUID: z.string(),\n term: z.string(),\n definition: z.string(),\n seeAlso: z.array(z.string()).optional(),\n});\n\nconst semanticConstraintReadSchema: z.ZodType<SemanticConstraintData, unknown> = z.looseObject({\n modelUUID: z.string(),\n name: z.string(),\n displayName: z.string().optional(),\n description: z.string().optional(),\n constraintType: z.enum(CONSTRAINT_TYPES),\n metrics: z.array(z.string()),\n datasets: z.array(z.string()).optional(),\n rule: z.string(),\n ruleExpression: ruleExpressionSchema.optional(),\n validationQuery: validationQuerySchema.optional(),\n severity: z.enum(CONSTRAINT_SEVERITIES).optional().catch(undefined),\n errorMessage: z.string().optional(),\n remediation: z.string().optional(),\n isActive: z.boolean().optional(),\n scope: z.enum(CONSTRAINT_SCOPES).optional().catch(undefined),\n owner: z.string().optional(),\n tags: z.array(z.string()).optional(),\n});\n\n/** Keyed by object type so a read can pick the schema from a `SemanticChildObjectType`. */\nexport const SEMANTIC_CHILD_OBJECT_READ_SCHEMAS: {\n [T in SemanticChildObjectType]: z.ZodType<SemanticChildObjectDataMap[T], unknown>;\n} = {\n 'semantic-dataset': semanticDatasetReadSchema,\n 'semantic-metric': semanticMetricReadSchema,\n 'semantic-relationship': semanticRelationshipReadSchema,\n 'semantic-glossary': semanticGlossaryReadSchema,\n 'semantic-constraint': semanticConstraintReadSchema,\n};\n\nconst semanticObjectMetaSchema: z.ZodType<SemanticObjectMeta, unknown> = z.looseObject({\n name: z.string().optional(),\n branch: z.string().optional(),\n projectId: z.number().nullable().optional(),\n organizationId: z.string().optional(),\n revision: z.number().optional(),\n schemaVersion: z.string().optional(),\n createdAt: z.string().optional(),\n lastUpdated: z.string().optional(),\n revisionCreatedAt: z.string().optional(),\n scope: z.enum(SEMANTIC_OBJECT_SCOPES).optional().catch(undefined),\n // `.catch`: a malformed value, `null` included, reads as unset rather than dropping the object.\n sourceProjectId: z.number().optional().catch(undefined),\n targetProjectIds: z.array(z.number()).optional().catch(undefined),\n});\n\n/**\n * The envelope every read comes wrapped in, mapped to the `SemanticObject` the SDK returns.\n *\n * - A missing or `null` `meta` normalizes rather than drops the object; no caller needs its fields.\n */\nexport const semanticObjectReadSchema = <TData>(dataSchema: z.ZodType<TData, unknown>) =>\n z\n .object({\n id: z.string(),\n attributes: dataSchema,\n meta: semanticObjectMetaSchema.nullish(),\n })\n .transform(({ id, attributes, meta }) => ({ uuid: id, data: attributes, meta: meta ?? {} }));\n","import { z } from 'zod';\n\nimport { formatValidationIssues, parseOrThrow } from '../../errors';\nimport { concurrent, generateUUID } from '../../utils';\n\nimport {\n SEMANTIC_CHILD_OBJECT_READ_SCHEMAS,\n semanticModelReadSchema,\n semanticObjectReadSchema,\n} from './readSchemas';\nimport type {\n CreateSemanticObjectMeta,\n MetastoreClient,\n SemanticChildObjectDataMap,\n SemanticChildObjectType,\n SemanticModelChildRef,\n SemanticModelData,\n SemanticObject,\n SemanticObjectMeta,\n SemanticObjectType,\n SemanticUnreadableObjectRef,\n UpdateSemanticObjectMeta,\n} from './types';\n\n/**\n * Thrown by `listModelChildren` when some child could not be parsed; fails closed.\n *\n * - An `unreadable` entry with `modelUUID: null` counts against every model.\n */\nexport class SemanticLayerUnreadableChildrenError extends Error {\n readonly modelUUID: string;\n readonly unreadable: SemanticUnreadableObjectRef[];\n\n constructor({\n modelUUID,\n unreadable,\n }: {\n modelUUID: string;\n unreadable: SemanticUnreadableObjectRef[];\n }) {\n super(\n `${unreadable.length} child object(s) of the model could not be read, so what it holds ` +\n `is unknown and nothing was deleted.`,\n );\n this.name = 'SemanticLayerUnreadableChildrenError';\n this.modelUUID = modelUUID;\n this.unreadable = unreadable;\n }\n}\n\nexport const SEMANTIC_OBJECT_TYPE = {\n MODEL: 'semantic-model',\n DATASET: 'semantic-dataset',\n METRIC: 'semantic-metric',\n RELATIONSHIP: 'semantic-relationship',\n GLOSSARY: 'semantic-glossary',\n CONSTRAINT: 'semantic-constraint',\n} as const satisfies Record<string, SemanticObjectType>;\n\n/** `readonly`: it drives what a model delete confirmation lists. */\nexport const MODEL_CHILD_OBJECT_TYPES: readonly SemanticChildObjectType[] = [\n SEMANTIC_OBJECT_TYPE.DATASET,\n SEMANTIC_OBJECT_TYPE.METRIC,\n SEMANTIC_OBJECT_TYPE.RELATIONSHIP,\n SEMANTIC_OBJECT_TYPE.GLOSSARY,\n SEMANTIC_OBJECT_TYPE.CONSTRAINT,\n] as const;\n\nconst DEFAULT_BRANCH = 'main';\n\n// The metastore has no bulk endpoint; writes are concurrent single POSTs.\nconst WRITE_CONCURRENCY = 5;\n\n/**\n * The live metastore envelope; the types in clients/metastore/repository/types.ts do not match it.\n *\n * - Reads parse it (`./readSchemas`); writes assert it, as the metastore echoes a validated object.\n */\ntype RawSemanticObject<TData> = {\n type: string;\n id: string;\n attributes: TData;\n meta: SemanticObjectMeta;\n};\n\nconst mapObject = <TData>(item: RawSemanticObject<TData>): SemanticObject<TData> => ({\n uuid: item.id,\n data: item.attributes,\n meta: item.meta,\n});\n\n/** The raw `id` of an envelope that failed to parse; `null` means unaddressable. */\nconst envelopeId = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { id } = value as { id?: unknown };\n return typeof id === 'string' && id !== '' ? id : null;\n};\n\n/** The raw `modelUUID` of a dropped envelope; `null` is treated as \"could be any model's\". */\nconst envelopeModelUUID = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { attributes } = value as { attributes?: unknown };\n if (typeof attributes !== 'object' || attributes === null) return null;\n const { modelUUID } = attributes as { modelUUID?: unknown };\n return typeof modelUUID === 'string' && modelUUID !== '' ? modelUUID : null;\n};\n\nconst deriveOptionalObjectName = (data: Record<string, unknown>): string | undefined => {\n if (typeof data.name === 'string') return data.name;\n if (typeof data.term === 'string') return data.term;\n return undefined;\n};\n\nconst deriveObjectName = (data: Record<string, unknown>) =>\n deriveOptionalObjectName(data) ?? generateUUID();\n\n/**\n * The UI label: `displayName ?? name`, matching kbc-ui's constraint tables.\n *\n * - Not used for lookup: `displayName` is not unique.\n */\nconst deriveObjectLabel = (data: Record<string, unknown>): string | undefined => {\n if (typeof data.displayName === 'string' && data.displayName !== '') return data.displayName;\n return deriveOptionalObjectName(data);\n};\n\n/**\n * The value sibling objects reference a child by.\n *\n * - A metric's `dataset` and a relationship's `from`/`to` hold a dataset's `tableId`.\n * - A constraint's `metrics[]` holds metric `name`s, never their `displayName`.\n */\nconst deriveReferenceKey = (\n objectType: SemanticChildObjectType,\n data: Record<string, unknown>,\n): string | undefined => {\n const key =\n objectType === SEMANTIC_OBJECT_TYPE.DATASET\n ? data.tableId\n : objectType === SEMANTIC_OBJECT_TYPE.METRIC\n ? data.name\n : undefined;\n return typeof key === 'string' && key !== '' ? key : undefined;\n};\n\ntype Options = {\n metastoreClient: MetastoreClient;\n};\n\nexport const createSemanticLayerSdk = ({ metastoreClient }: Options) => {\n /**\n * Every object of one type, parsed rather than asserted.\n *\n * - A malformed element is dropped, logged and reported in `unreadable`; the rest still list.\n * - A response that is not a collection throws rather than reading as empty.\n */\n const _listObjects = async <TData>(\n objectType: SemanticObjectType,\n dataSchema: z.ZodType<TData, unknown>,\n signal?: AbortSignal,\n options: { modelUUID?: string; pendingElevationOnly?: boolean } = {},\n ): Promise<{ objects: SemanticObject<TData>[]; unreadable: SemanticUnreadableObjectRef[] }> => {\n const response = await metastoreClient.repository.getMetaObjects(\n { objectType, ...options },\n signal,\n );\n const items = parseOrThrow(z.array(z.unknown()), response.data);\n const schema = semanticObjectReadSchema(dataSchema);\n\n const objects: SemanticObject<TData>[] = [];\n const unreadable: SemanticUnreadableObjectRef[] = [];\n\n for (const item of items) {\n const result = schema.safeParse(item);\n if (result.success) {\n objects.push(result.data);\n continue;\n }\n\n unreadable.push({\n objectType,\n objectUUID: envelopeId(item),\n modelUUID: envelopeModelUUID(item),\n });\n\n // Never log the payload: it is customer data.\n console.warn(\n `semanticLayerSdk: dropped ${objectType} \"${envelopeId(item) ?? '<no id>'}\" from the ` +\n `metastore response, it does not match its declared shape`,\n formatValidationIssues(result.error.issues),\n );\n }\n\n return { objects, unreadable };\n };\n\n const listModels = async (signal?: AbortSignal) =>\n (await _listObjects(SEMANTIC_OBJECT_TYPE.MODEL, semanticModelReadSchema, signal)).objects;\n\n /**\n * One model by UUID, with the envelope `meta` that carries its `scope`.\n *\n * - A model that does not parse throws a `ValidationError` rather than reading as missing.\n */\n const getModel = async (\n modelUUID: string,\n signal?: AbortSignal,\n ): Promise<SemanticObject<SemanticModelData>> => {\n const response = await metastoreClient.repository.getMetaObject(\n { objectType: SEMANTIC_OBJECT_TYPE.MODEL, UUID: modelUUID },\n signal,\n );\n return parseOrThrow(semanticObjectReadSchema(semanticModelReadSchema), response.data);\n };\n\n const createModel = async (data: SemanticModelData, meta: CreateSemanticObjectMeta = {}) => {\n const response = await metastoreClient.repository.createMetaObject<SemanticModelData>({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n // Derived name wins over meta.\n name: data.name,\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticModelData>);\n };\n\n const updateModel = async (\n modelUUID: string,\n data: Partial<SemanticModelData>,\n meta: UpdateSemanticObjectMeta = {},\n ) => {\n const response = await metastoreClient.repository.updateMetaObject<SemanticModelData>({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n UUID: modelUUID,\n data,\n ...meta,\n // Derived name wins over meta.\n ...(data.name ? { name: data.name } : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticModelData>);\n };\n\n /**\n * One child collection scoped to a model.\n *\n * - `unreadable` includes objects whose envelope names this model or no model.\n */\n const _listChildObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n modelUUID: string,\n signal?: AbortSignal,\n ) => {\n // Server-side filter (every child object schema declares modelUUID x-filterable: true)\n // instead of fetching the type's whole list and filtering client-side.\n const { objects, unreadable } = await _listObjects(\n objectType,\n SEMANTIC_CHILD_OBJECT_READ_SCHEMAS[objectType],\n signal,\n { modelUUID },\n );\n\n // An unreadable item still needs this client-side check: the server filters by modelUUID on\n // the parsed field it trusts, but a malformed item that failed to parse is exactly the case\n // that field can't be trusted for — so an item naming another model still gets excluded here.\n return {\n objects,\n unreadable: unreadable.filter((ref) => ref.modelUUID === null || ref.modelUUID === modelUUID),\n };\n };\n\n const listObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n modelUUID: string,\n signal?: AbortSignal,\n ) => (await _listChildObjects(objectType, modelUUID, signal)).objects;\n\n /**\n * A model's child objects by name (`term` for glossary).\n *\n * - Returns every match: names are not unique, the caller decides.\n */\n const findObjectsByName = async <T extends SemanticChildObjectType>(\n objectType: T,\n name: string,\n modelUUID: string,\n signal?: AbortSignal,\n ) => {\n const objects = await listObjects(objectType, modelUUID, signal);\n return objects.filter((object) => deriveOptionalObjectName(object.data) === name);\n };\n\n const createObject = async <T extends SemanticChildObjectType>(\n objectType: T,\n data: SemanticChildObjectDataMap[T],\n meta: CreateSemanticObjectMeta = {},\n ) => {\n const response = await metastoreClient.repository.createMetaObject<\n SemanticChildObjectDataMap[T]\n >({\n objectType,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n // Derived name wins over meta.\n name: deriveObjectName(data),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticChildObjectDataMap[T]>);\n };\n\n const createObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n items: SemanticChildObjectDataMap[T][],\n meta: CreateSemanticObjectMeta = {},\n ) =>\n concurrent({\n items,\n process: async (data) => createObject(objectType, data, meta),\n concurrency: WRITE_CONCURRENCY,\n });\n\n /**\n * Creates a model, then every child concurrently, one request each.\n *\n * - Rejects on the first failed child and leaves the objects already written in place.\n * @deprecated Use `createModel`, then `createObject` or `createObjects`. Removed in the next major.\n */\n const createModelTree = async (\n model: SemanticModelData,\n children: Partial<{\n [T in SemanticChildObjectType]: Omit<SemanticChildObjectDataMap[T], 'modelUUID'>[];\n }>,\n meta: CreateSemanticObjectMeta = {},\n ) => {\n const createdModel = await createModel(model, meta);\n\n const items = MODEL_CHILD_OBJECT_TYPES.flatMap((objectType) =>\n (children[objectType] ?? []).map((data) => ({\n objectType,\n data: {\n ...data,\n modelUUID: createdModel.uuid,\n } satisfies SemanticChildObjectDataMap[typeof objectType],\n })),\n );\n\n const createdChildren = await concurrent({\n items,\n process: async ({ objectType, data }) => createObject(objectType, data, meta),\n concurrency: WRITE_CONCURRENCY,\n });\n\n return { model: createdModel, children: createdChildren };\n };\n\n const updateObject = async <T extends SemanticChildObjectType>(\n objectType: T,\n objectUUID: string,\n data: Partial<SemanticChildObjectDataMap[T]>,\n meta: UpdateSemanticObjectMeta = {},\n ) => {\n const name = deriveOptionalObjectName(data);\n const response = await metastoreClient.repository.updateMetaObject<\n SemanticChildObjectDataMap[T]\n >({\n objectType,\n UUID: objectUUID,\n data,\n ...meta,\n // Derived name wins over meta.\n ...(name ? { name } : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticChildObjectDataMap[T]>);\n };\n\n const deleteObject = async (objectType: SemanticChildObjectType, objectUUID: string) => {\n await metastoreClient.repository.deleteMetaObject({\n objectType,\n UUID: objectUUID,\n });\n };\n\n /**\n * Every child object of a model, flattened; `name` is the display label.\n *\n * - Delete confirmations use this to say what a model delete would destroy.\n * - Costs five list requests, one per child type, each server-side filtered to this model.\n * - Throws `SemanticLayerUnreadableChildrenError` rather than degrading — a short list would\n * under-report what a delete destroys.\n */\n const listModelChildren = async (\n modelUUID: string,\n signal?: AbortSignal,\n ): Promise<SemanticModelChildRef[]> => {\n const perType = await Promise.all(\n MODEL_CHILD_OBJECT_TYPES.map(async (objectType) => {\n const { objects, unreadable } = await _listChildObjects(objectType, modelUUID, signal);\n return {\n children: objects.map((object) => {\n const referenceKey = deriveReferenceKey(objectType, object.data);\n return {\n objectType,\n objectUUID: object.uuid,\n name: deriveObjectLabel(object.data),\n ...(referenceKey === undefined ? {} : { referenceKey }),\n };\n }),\n unreadable,\n };\n }),\n );\n\n const unreadable = perType.flatMap((result) => result.unreadable);\n if (unreadable.length > 0) {\n throw new SemanticLayerUnreadableChildrenError({ modelUUID, unreadable });\n }\n\n return perType.flatMap((result) => result.children);\n };\n\n /**\n * Deletes a model; the metastore deletes all its child objects in the same transaction.\n *\n * - `409`: another object holds a `restrict` reference to the model; nothing was deleted.\n * - `404`: no such model, or it was already deleted.\n */\n const deleteModel = async (modelUUID: string) => {\n await metastoreClient.repository.deleteMetaObject({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n UUID: modelUUID,\n });\n };\n\n /**\n * Replace the projects granted read access to a `targeted`-scope object.\n *\n * - An empty array clears every grant.\n * - Read-only is enforced metastore-side.\n */\n const replaceTargetProjects = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n targetProjectIds: number[],\n ) => {\n await metastoreClient.repository.replaceTargetProjects({\n objectType,\n UUID: objectUUID,\n targetProjectIds,\n });\n };\n\n /**\n * Step a project-scoped object up to the organization scope, keeping its UUID and history.\n *\n * - Requires the organization-admin role for the target org; callers should surface the\n * metastore's 403 rather than pre-empt it.\n * - `dropSourceProject` opts out of recording the pre-promotion `projectId` as\n * `sourceProjectId`; omitted (the default), the source project is preserved.\n */\n const promoteToOrganizationScope = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n options: { dropSourceProject?: boolean } = {},\n ) => {\n // Scope ONLY (plus the optional drop flag). No `data`, not even `{}`: the metastore's\n // step-up guard rejects a PATCH that also carries name or data, and `Data *JSONData` treats\n // `{}` as present — which 400s with \"A scope change cannot be combined with name or data\n // changes\".\n const response = await metastoreClient.repository.updateMetaObject({\n objectType,\n UUID: objectUUID,\n scope: 'organization',\n ...(options.dropSourceProject !== undefined\n ? { dropSourceProject: options.dropSourceProject }\n : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<Record<string, unknown>>);\n };\n\n /**\n * Flag a `project`-scope object as awaiting an organization admin's decision to promote it.\n * Only the owning project may call this; idempotent — requesting again just refreshes the\n * timestamp rather than erroring.\n */\n const requestScopeElevation = async (objectType: SemanticObjectType, objectUUID: string) => {\n await metastoreClient.repository.requestScopeElevation({ objectType, UUID: objectUUID });\n };\n\n /**\n * Clear a pending scope-elevation request, whether withdrawn by the owner or declined by an\n * organization admin. Idempotent — clearing an object with no pending request is a no-op.\n */\n const withdrawScopeElevationRequest = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n ) => {\n await metastoreClient.repository.withdrawScopeElevationRequest({\n objectType,\n UUID: objectUUID,\n });\n };\n\n /**\n * Every object of `objectType`, across every project in the organization, currently awaiting an\n * org-admin's elevation decision. Backs the org-admin pending-elevation banner.\n */\n const listPendingScopeElevationRequests = async (\n objectType: SemanticObjectType,\n signal?: AbortSignal,\n ) => {\n const response = await metastoreClient.repository.getPendingScopeElevationRequests<\n Record<string, unknown>\n >({ objectType }, signal);\n return (response.data as unknown as RawSemanticObject<Record<string, unknown>>[]).map(\n mapObject,\n );\n };\n\n /**\n * The current project's own objects with a pending scope-elevation request — for the\n * requester, as opposed to `listPendingScopeElevationRequests`, which is the org-admin's\n * org-wide approval queue. Uses the regular (per-project) list endpoint, not `/organization`:\n * only project-scope objects can have a pending request, and only their owner can set one, so\n * filtering the objects this project can already see is sufficient — no org-wide access needed.\n */\n const listMyPendingScopeElevationRequests = async (\n objectType: SemanticObjectType,\n signal?: AbortSignal,\n ) => {\n const response = await metastoreClient.repository.getMetaObjects<Record<string, unknown>>(\n { objectType, pendingElevationOnly: true },\n signal,\n );\n return (response.data as unknown as RawSemanticObject<Record<string, unknown>>[]).map(\n mapObject,\n );\n };\n\n return {\n // models\n listModels,\n getModel,\n createModel,\n updateModel,\n deleteModel,\n listModelChildren,\n\n // child objects (datasets, metrics, relationships, glossary, constraints)\n listObjects,\n findObjectsByName,\n createObject,\n createObjects,\n createModelTree,\n updateObject,\n deleteObject,\n\n // scoping / sharing\n replaceTargetProjects,\n promoteToOrganizationScope,\n requestScopeElevation,\n withdrawScopeElevationRequest,\n listPendingScopeElevationRequests,\n listMyPendingScopeElevationRequests,\n };\n};\n"],"mappings":";;;;;;;;;;;;AAOA,MAAa,yBAAyB,SAAsC;CAC1E,IAAI,OAAO,SAAS,YAAY,SAAS,MAAM,OAAO,KAAA;CACtD,MAAM,SAAU,KAA8B;CAC9C,IAAI,CAAC,MAAM,QAAQ,MAAM,GAAG,OAAO,KAAA;CACnC,MAAM,QAAQ,OAAO;CACrB,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,OAAO,KAAA;CACxD,MAAM,UAAW,MAAgC;CACjD,OAAO,OAAO,YAAY,YAAY,UAAU,UAAU,KAAA;AAC5D;;;;;;;;;;;;;;ACHA,MAAa,eAAe,CAAC,aAAa,UAAU;AAEpD,MAAa,mBAAmB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;AACF;;AAGA,MAAa,cAAc;CAAC;CAAO;CAAa;CAAW;AAAW;;AAGtE,MAAa,wBAAwB;CAAC;CAAS;CAAW;AAAM;;AAGhE,MAAa,oBAAoB;CAAC;CAAU;CAAgB;CAAY;AAAc;AAEtF,MAAa,iBAAiB;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAa,0BAA0B,CAAC,QAAQ,OAAO;;AAGvD,MAAa,yBAAyB;CAAC;CAAW;CAAY;AAAc;;;;;;;;;;ACrC5E,MAAa,sBAAsBA,IAAAA,EAAE,YAAY;CAC/C,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CACtB,aAAaA,IAAAA,EAAE,KAAK,YAAY;AAClC,CAAC;AAED,MAAa,wBAAwBA,IAAAA,EAAE,YAAY;CACjD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CACtB,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CACzB,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;AACvB,CAAC;AAED,MAAa,uBAAuBA,IAAAA,EAAE,YAAY;CAChD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CACtB,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;AACvB,CAAC;AAED,MAAa,6BAA6BA,IAAAA,EAAE,YAAY;CACtD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CACtB,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CACpB,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;AACtB,CAAC;AAED,MAAa,yBAAyBA,IAAAA,EAAE,YAAY;CAClD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CACtB,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;AAC9B,CAAC;AAED,MAAa,2BAA2BA,IAAAA,EAAE,YAAY;CACpD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CACtB,gBAAgBA,IAAAA,EAAE,KAAK,gBAAgB;CACvC,SAASA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC;CAC3B,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;AACxB,CAAC;AAED,MAAa,gCAAgC;CAC3C,oBAAoB;CACpB,mBAAmB;CACnB,yBAAyB;CACzB,qBAAqB;CACrB,uBAAuB;AACzB;;;;;;;;;;ACfA,MAAM,mBAA2DC,IAAAA,EAAE,YAAY;CAC7E,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACvC,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACvC,cAAcA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CAC3C,OAAOA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACpC,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;AACzC,CAAC;AAED,MAAM,cAAqDA,IAAAA,EAAE,YAAY;CACvE,MAAMA,IAAAA,EAAE,OAAO;CACf,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC1B,MAAMA,IAAAA,EAAE,KAAK,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAA,CAAS;CACpD,QAAQA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACrC,IAAI,iBAAiB,SAAS;AAChC,CAAC;;;;;;AAOD,MAAM,sBAAsBA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,UAC1D,MAAM,SAAS,SAAS,UAAU;CAChC,MAAM,SAAS,YAAY,UAAU,OAAO;CAC5C,IAAI,OAAO,SAAS,OAAO,CAAC,OAAO,IAAI;CAEvC,QAAQ,KACN,oCAAoC,MAAM,iEAE1CC,wBAAAA,uBAAuB,OAAO,MAAM,MAAM,CAC5C;CACA,OAAO,CAAC;AACV,CAAC,CACH;AAEA,MAAM,uBAAmED,IAAAA,EAAE,YAAY;CACrF,UAAUA,IAAAA,EAAE,KAAK,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAA,CAAS;CAC3D,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC1B,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,QAAQA,IAAAA,EACL,YAAY;EACX,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EACzB,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,CAAC,CAAC,CACD,SAAS;AACd,CAAC;AAED,MAAM,wBAAqEA,IAAAA,EAAE,YAAY;CACvF,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;AAChC,CAAC;AAED,MAAa,0BAAiEA,IAAAA,EAAE,YAAY;CAC1F,MAAMA,IAAAA,EAAE,OAAO;CACf,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,aAAaA,IAAAA,EAAE,OAAO;AACxB,CAAC;;AA2DD,MAAa,qCAET;CACF,oBA5DyEA,IAAAA,EAAE,YAAY;EACvF,WAAWA,IAAAA,EAAE,OAAO;EACpB,MAAMA,IAAAA,EAAE,OAAO;EACf,SAASA,IAAAA,EAAE,OAAO;EAClB,KAAKA,IAAAA,EAAE,OAAO;EACd,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EACjC,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EAC3B,YAAYA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;EACzC,QAAQ,oBAAoB,SAAS;EACrC,IAAI,iBAAiB,SAAS;CAChC,CAkDsB;CACpB,mBAjDuEA,IAAAA,EAAE,YAAY;EACrF,WAAWA,IAAAA,EAAE,OAAO;EACpB,MAAMA,IAAAA,EAAE,OAAO;EACf,KAAKA,IAAAA,EAAE,OAAO;EACd,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EAC7B,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CACnC,CA2CqB;CACnB,yBA1CmFA,IAAAA,EAAE,YAAY;EACjG,WAAWA,IAAAA,EAAE,OAAO;EACpB,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EAC1B,MAAMA,IAAAA,EAAE,OAAO;EACf,IAAIA,IAAAA,EAAE,OAAO;EACb,IAAIA,IAAAA,EAAE,OAAO;EACb,MAAMA,IAAAA,EAAE,KAAK,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAA,CAAS;CAClE,CAmC2B;CACzB,qBAlC2EA,IAAAA,EAAE,YAAY;EACzF,WAAWA,IAAAA,EAAE,OAAO;EACpB,MAAMA,IAAAA,EAAE,OAAO;EACf,YAAYA,IAAAA,EAAE,OAAO;EACrB,SAASA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACxC,CA6BuB;CACrB,uBA5B+EA,IAAAA,EAAE,YAAY;EAC7F,WAAWA,IAAAA,EAAE,OAAO;EACpB,MAAMA,IAAAA,EAAE,OAAO;EACf,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EACjC,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EACjC,gBAAgBA,IAAAA,EAAE,KAAK,gBAAgB;EACvC,SAASA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC;EAC3B,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;EACvC,MAAMA,IAAAA,EAAE,OAAO;EACf,gBAAgB,qBAAqB,SAAS;EAC9C,iBAAiB,sBAAsB,SAAS;EAChD,UAAUA,IAAAA,EAAE,KAAK,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAA,CAAS;EAClE,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EAClC,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EACjC,UAAUA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS;EAC/B,OAAOA,IAAAA,EAAE,KAAK,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAA,CAAS;EAC3D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;EAC3B,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACrC,CAUyB;AACzB;AAEA,MAAM,2BAAmEA,IAAAA,EAAE,YAAY;CACrF,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC1B,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1C,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CACpC,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CACnC,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,mBAAmBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CACvC,OAAOA,IAAAA,EAAE,KAAK,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAA,CAAS;CAEhE,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAA,CAAS;CACtD,kBAAkBA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAA,CAAS;AAClE,CAAC;;;;;;AAOD,MAAa,4BAAmC,eAC9CA,IAAAA,EACG,OAAO;CACN,IAAIA,IAAAA,EAAE,OAAO;CACb,YAAY;CACZ,MAAM,yBAAyB,QAAQ;AACzC,CAAC,CAAC,CACD,WAAW,EAAE,IAAI,YAAY,YAAY;CAAE,MAAM;CAAI,MAAM;CAAY,MAAM,QAAQ,CAAC;AAAE,EAAE;;;;;;;;ACnK/F,IAAa,uCAAb,cAA0D,MAAM;CAC9D;CACA;CAEA,YAAY,EACV,WACA,cAIC;EACD,MACE,GAAG,WAAW,OAAO,sGAEvB;EACA,KAAK,OAAO;EACZ,KAAK,YAAY;EACjB,KAAK,aAAa;CACpB;AACF;AAEA,MAAa,uBAAuB;CAClC,OAAO;CACP,SAAS;CACT,QAAQ;CACR,cAAc;CACd,UAAU;CACV,YAAY;AACd;;AAGA,MAAa,2BAA+D;CAC1E,qBAAqB;CACrB,qBAAqB;CACrB,qBAAqB;CACrB,qBAAqB;CACrB,qBAAqB;AACvB;AAEA,MAAM,iBAAiB;AAGvB,MAAM,oBAAoB;AAc1B,MAAM,aAAoB,UAA2D;CACnF,MAAM,KAAK;CACX,MAAM,KAAK;CACX,MAAM,KAAK;AACb;;AAGA,MAAM,cAAc,UAAkC;CACpD,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,OAAO;CACxD,MAAM,EAAE,OAAO;CACf,OAAO,OAAO,OAAO,YAAY,OAAO,KAAK,KAAK;AACpD;;AAGA,MAAM,qBAAqB,UAAkC;CAC3D,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,OAAO;CACxD,MAAM,EAAE,eAAe;CACvB,IAAI,OAAO,eAAe,YAAY,eAAe,MAAM,OAAO;CAClE,MAAM,EAAE,cAAc;CACtB,OAAO,OAAO,cAAc,YAAY,cAAc,KAAK,YAAY;AACzE;AAEA,MAAM,4BAA4B,SAAsD;CACtF,IAAI,OAAO,KAAK,SAAS,UAAU,OAAO,KAAK;CAC/C,IAAI,OAAO,KAAK,SAAS,UAAU,OAAO,KAAK;AAEjD;AAEA,MAAM,oBAAoB,SACxB,yBAAyB,IAAI,KAAKE,qBAAAA,aAAa;;;;;;AAOjD,MAAM,qBAAqB,SAAsD;CAC/E,IAAI,OAAO,KAAK,gBAAgB,YAAY,KAAK,gBAAgB,IAAI,OAAO,KAAK;CACjF,OAAO,yBAAyB,IAAI;AACtC;;;;;;;AAQA,MAAM,sBACJ,YACA,SACuB;CACvB,MAAM,MACJ,eAAe,qBAAqB,UAChC,KAAK,UACL,eAAe,qBAAqB,SAClC,KAAK,OACL,KAAA;CACR,OAAO,OAAO,QAAQ,YAAY,QAAQ,KAAK,MAAM,KAAA;AACvD;AAMA,MAAa,0BAA0B,EAAE,sBAA+B;;;;;;;CAOtE,MAAM,eAAe,OACnB,YACA,YACA,QACA,UAAkE,CAAC,MAC0B;EAC7F,MAAM,WAAW,MAAM,gBAAgB,WAAW,eAChD;GAAE;GAAY,GAAG;EAAQ,GACzB,MACF;EACA,MAAM,QAAQC,wBAAAA,aAAaC,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,GAAG,SAAS,IAAI;EAC9D,MAAM,SAAS,yBAAyB,UAAU;EAElD,MAAM,UAAmC,CAAC;EAC1C,MAAM,aAA4C,CAAC;EAEnD,KAAK,MAAM,QAAQ,OAAO;GACxB,MAAM,SAAS,OAAO,UAAU,IAAI;GACpC,IAAI,OAAO,SAAS;IAClB,QAAQ,KAAK,OAAO,IAAI;IACxB;GACF;GAEA,WAAW,KAAK;IACd;IACA,YAAY,WAAW,IAAI;IAC3B,WAAW,kBAAkB,IAAI;GACnC,CAAC;GAGD,QAAQ,KACN,6BAA6B,WAAW,IAAI,WAAW,IAAI,KAAK,UAAU,sEAE1EC,wBAAAA,uBAAuB,OAAO,MAAM,MAAM,CAC5C;EACF;EAEA,OAAO;GAAE;GAAS;EAAW;CAC/B;CAEA,MAAM,aAAa,OAAO,YACvB,MAAM,aAAa,qBAAqB,OAAO,yBAAyB,MAAM,EAAA,CAAG;;;;;;CAOpF,MAAM,WAAW,OACf,WACA,WAC+C;EAC/C,MAAM,WAAW,MAAM,gBAAgB,WAAW,cAChD;GAAE,YAAY,qBAAqB;GAAO,MAAM;EAAU,GAC1D,MACF;EACA,OAAOF,wBAAAA,aAAa,yBAAyB,uBAAuB,GAAG,SAAS,IAAI;CACtF;CAEA,MAAM,cAAc,OAAO,MAAyB,OAAiC,CAAC,MAAM;EAC1F,MAAM,WAAW,MAAM,gBAAgB,WAAW,iBAAoC;GACpF,YAAY,qBAAqB;GACjC;GACA,QAAQ;GACR,GAAG;GAEH,MAAM,KAAK;EACb,CAAC;EAED,OAAO,UAAU,SAAS,IAAuD;CACnF;CAEA,MAAM,cAAc,OAClB,WACA,MACA,OAAiC,CAAC,MAC/B;EACH,MAAM,WAAW,MAAM,gBAAgB,WAAW,iBAAoC;GACpF,YAAY,qBAAqB;GACjC,MAAM;GACN;GACA,GAAG;GAEH,GAAI,KAAK,OAAO,EAAE,MAAM,KAAK,KAAK,IAAI,CAAC;EACzC,CAAC;EAED,OAAO,UAAU,SAAS,IAAuD;CACnF;;;;;;CAOA,MAAM,oBAAoB,OACxB,YACA,WACA,WACG;EAGH,MAAM,EAAE,SAAS,eAAe,MAAM,aACpC,YACA,mCAAmC,aACnC,QACA,EAAE,UAAU,CACd;EAKA,OAAO;GACL;GACA,YAAY,WAAW,QAAQ,QAAQ,IAAI,cAAc,QAAQ,IAAI,cAAc,SAAS;EAC9F;CACF;CAEA,MAAM,cAAc,OAClB,YACA,WACA,YACI,MAAM,kBAAkB,YAAY,WAAW,MAAM,EAAA,CAAG;;;;;;CAO9D,MAAM,oBAAoB,OACxB,YACA,MACA,WACA,WACG;EAEH,QAAO,MADe,YAAY,YAAY,WAAW,MAAM,EAAA,CAChD,QAAQ,WAAW,yBAAyB,OAAO,IAAI,MAAM,IAAI;CAClF;CAEA,MAAM,eAAe,OACnB,YACA,MACA,OAAiC,CAAC,MAC/B;EACH,MAAM,WAAW,MAAM,gBAAgB,WAAW,iBAEhD;GACA;GACA;GACA,QAAQ;GACR,GAAG;GAEH,MAAM,iBAAiB,IAAI;EAC7B,CAAC;EAED,OAAO,UAAU,SAAS,IAAmE;CAC/F;CAEA,MAAM,gBAAgB,OACpB,YACA,OACA,OAAiC,CAAC,MAElCG,mBAAAA,WAAW;EACT;EACA,SAAS,OAAO,SAAS,aAAa,YAAY,MAAM,IAAI;EAC5D,aAAa;CACf,CAAC;;;;;;;CAQH,MAAM,kBAAkB,OACtB,OACA,UAGA,OAAiC,CAAC,MAC/B;EACH,MAAM,eAAe,MAAM,YAAY,OAAO,IAAI;EAElD,MAAM,QAAQ,yBAAyB,SAAS,gBAC7C,SAAS,eAAe,CAAC,EAAA,CAAG,KAAK,UAAU;GAC1C;GACA,MAAM;IACJ,GAAG;IACH,WAAW,aAAa;GAC1B;EACF,EAAE,CACJ;EAQA,OAAO;GAAE,OAAO;GAAc,UAAU,MANVA,mBAAAA,WAAW;IACvC;IACA,SAAS,OAAO,EAAE,YAAY,WAAW,aAAa,YAAY,MAAM,IAAI;IAC5E,aAAa;GACf,CAAC;EAEuD;CAC1D;CAEA,MAAM,eAAe,OACnB,YACA,YACA,MACA,OAAiC,CAAC,MAC/B;EACH,MAAM,OAAO,yBAAyB,IAAI;EAC1C,MAAM,WAAW,MAAM,gBAAgB,WAAW,iBAEhD;GACA;GACA,MAAM;GACN;GACA,GAAG;GAEH,GAAI,OAAO,EAAE,KAAK,IAAI,CAAC;EACzB,CAAC;EAED,OAAO,UAAU,SAAS,IAAmE;CAC/F;CAEA,MAAM,eAAe,OAAO,YAAqC,eAAuB;EACtF,MAAM,gBAAgB,WAAW,iBAAiB;GAChD;GACA,MAAM;EACR,CAAC;CACH;;;;;;;;;CAUA,MAAM,oBAAoB,OACxB,WACA,WACqC;EACrC,MAAM,UAAU,MAAM,QAAQ,IAC5B,yBAAyB,IAAI,OAAO,eAAe;GACjD,MAAM,EAAE,SAAS,eAAe,MAAM,kBAAkB,YAAY,WAAW,MAAM;GACrF,OAAO;IACL,UAAU,QAAQ,KAAK,WAAW;KAChC,MAAM,eAAe,mBAAmB,YAAY,OAAO,IAAI;KAC/D,OAAO;MACL;MACA,YAAY,OAAO;MACnB,MAAM,kBAAkB,OAAO,IAAI;MACnC,GAAI,iBAAiB,KAAA,IAAY,CAAC,IAAI,EAAE,aAAa;KACvD;IACF,CAAC;IACD;GACF;EACF,CAAC,CACH;EAEA,MAAM,aAAa,QAAQ,SAAS,WAAW,OAAO,UAAU;EAChE,IAAI,WAAW,SAAS,GACtB,MAAM,IAAI,qCAAqC;GAAE;GAAW;EAAW,CAAC;EAG1E,OAAO,QAAQ,SAAS,WAAW,OAAO,QAAQ;CACpD;;;;;;;CAQA,MAAM,cAAc,OAAO,cAAsB;EAC/C,MAAM,gBAAgB,WAAW,iBAAiB;GAChD,YAAY,qBAAqB;GACjC,MAAM;EACR,CAAC;CACH;;;;;;;CAQA,MAAM,wBAAwB,OAC5B,YACA,YACA,qBACG;EACH,MAAM,gBAAgB,WAAW,sBAAsB;GACrD;GACA,MAAM;GACN;EACF,CAAC;CACH;;;;;;;;;CAUA,MAAM,6BAA6B,OACjC,YACA,YACA,UAA2C,CAAC,MACzC;EAKH,MAAM,WAAW,MAAM,gBAAgB,WAAW,iBAAiB;GACjE;GACA,MAAM;GACN,OAAO;GACP,GAAI,QAAQ,sBAAsB,KAAA,IAC9B,EAAE,mBAAmB,QAAQ,kBAAkB,IAC/C,CAAC;EACP,CAAC;EAED,OAAO,UAAU,SAAS,IAA6D;CACzF;;;;;;CAOA,MAAM,wBAAwB,OAAO,YAAgC,eAAuB;EAC1F,MAAM,gBAAgB,WAAW,sBAAsB;GAAE;GAAY,MAAM;EAAW,CAAC;CACzF;;;;;CAMA,MAAM,gCAAgC,OACpC,YACA,eACG;EACH,MAAM,gBAAgB,WAAW,8BAA8B;GAC7D;GACA,MAAM;EACR,CAAC;CACH;;;;;CAMA,MAAM,oCAAoC,OACxC,YACA,WACG;EAIH,QAAQ,MAHe,gBAAgB,WAAW,iCAEhD,EAAE,WAAW,GAAG,MAAM,EAAA,CACP,KAAiE,IAChF,SACF;CACF;;;;;;;;CASA,MAAM,sCAAsC,OAC1C,YACA,WACG;EAKH,QAAQ,MAJe,gBAAgB,WAAW,eAChD;GAAE;GAAY,sBAAsB;EAAK,GACzC,MACF,EAAA,CACiB,KAAiE,IAChF,SACF;CACF;CAEA,OAAO;EAEL;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { t as concurrent } from "./concurrent-BacWxPwi.js";
|
|
2
2
|
import { t as generateUUID } from "./generateUUID-Dr8l-aoc.js";
|
|
3
|
-
import { g as HttpStatus, r as isApiError } from "./createFetchClient-DITkTV2k.js";
|
|
4
3
|
import { i as parseOrThrow, n as formatValidationIssues } from "./ValidationError-DjhtNMfZ.js";
|
|
5
4
|
import { z } from "zod";
|
|
6
5
|
//#region src/sdks/semanticLayer/errorMessage.ts
|
|
@@ -265,28 +264,8 @@ const semanticObjectReadSchema = (dataSchema) => z.object({
|
|
|
265
264
|
//#endregion
|
|
266
265
|
//#region src/sdks/semanticLayer/semanticLayerSdk.ts
|
|
267
266
|
/**
|
|
268
|
-
* Thrown by `deleteModel` when the child cascade partially fails.
|
|
269
|
-
*
|
|
270
|
-
* - Every child delete has settled; the model was kept.
|
|
271
|
-
* - `deletedChildren` are gone, `failedChildren` still exist; `errors` holds per-child reasons.
|
|
272
|
-
*/
|
|
273
|
-
var SemanticLayerCascadeDeleteError = class extends AggregateError {
|
|
274
|
-
modelUUID;
|
|
275
|
-
deletedChildren;
|
|
276
|
-
failedChildren;
|
|
277
|
-
constructor({ modelUUID, deletedChildren, failedChildren }) {
|
|
278
|
-
const total = deletedChildren.length + failedChildren.length;
|
|
279
|
-
super(failedChildren.map((failure) => failure.error), `The model was kept because ${failedChildren.length} of its ${total} child objects could not be deleted (${deletedChildren.length} deleted).`);
|
|
280
|
-
this.name = "SemanticLayerCascadeDeleteError";
|
|
281
|
-
this.modelUUID = modelUUID;
|
|
282
|
-
this.deletedChildren = deletedChildren;
|
|
283
|
-
this.failedChildren = failedChildren;
|
|
284
|
-
}
|
|
285
|
-
};
|
|
286
|
-
/**
|
|
287
267
|
* Thrown by `listModelChildren` when some child could not be parsed; fails closed.
|
|
288
268
|
*
|
|
289
|
-
* - `deleteModel` reads before the cascade, so nothing is deleted when this throws.
|
|
290
269
|
* - An `unreadable` entry with `modelUUID: null` counts against every model.
|
|
291
270
|
*/
|
|
292
271
|
var SemanticLayerUnreadableChildrenError = class extends Error {
|
|
@@ -307,7 +286,7 @@ const SEMANTIC_OBJECT_TYPE = {
|
|
|
307
286
|
GLOSSARY: "semantic-glossary",
|
|
308
287
|
CONSTRAINT: "semantic-constraint"
|
|
309
288
|
};
|
|
310
|
-
/** `readonly`: it drives what a
|
|
289
|
+
/** `readonly`: it drives what a model delete confirmation lists. */
|
|
311
290
|
const MODEL_CHILD_OBJECT_TYPES = [
|
|
312
291
|
SEMANTIC_OBJECT_TYPE.DATASET,
|
|
313
292
|
SEMANTIC_OBJECT_TYPE.METRIC,
|
|
@@ -498,12 +477,6 @@ const createSemanticLayerSdk = ({ metastoreClient }) => {
|
|
|
498
477
|
});
|
|
499
478
|
return mapObject(response.data);
|
|
500
479
|
};
|
|
501
|
-
/**
|
|
502
|
-
* Whether a failed delete left the object gone anyway (lost a race).
|
|
503
|
-
*
|
|
504
|
-
* - Only `404`: the metastore's "already deleted" `500` is indistinguishable from a real one.
|
|
505
|
-
*/
|
|
506
|
-
const isAlreadyDeleted = (error) => isApiError(error) && error.response.status === HttpStatus.NOT_FOUND;
|
|
507
480
|
const deleteObject = async (objectType, objectUUID) => {
|
|
508
481
|
await metastoreClient.repository.deleteMetaObject({
|
|
509
482
|
objectType,
|
|
@@ -513,10 +486,10 @@ const createSemanticLayerSdk = ({ metastoreClient }) => {
|
|
|
513
486
|
/**
|
|
514
487
|
* Every child object of a model, flattened; `name` is the display label.
|
|
515
488
|
*
|
|
516
|
-
* -
|
|
489
|
+
* - Delete confirmations use this to say what a model delete would destroy.
|
|
517
490
|
* - Costs five list requests, one per child type, each server-side filtered to this model.
|
|
518
491
|
* - Throws `SemanticLayerUnreadableChildrenError` rather than degrading — a short list would
|
|
519
|
-
*
|
|
492
|
+
* under-report what a delete destroys.
|
|
520
493
|
*/
|
|
521
494
|
const listModelChildren = async (modelUUID, signal) => {
|
|
522
495
|
const perType = await Promise.all(MODEL_CHILD_OBJECT_TYPES.map(async (objectType) => {
|
|
@@ -542,57 +515,16 @@ const createSemanticLayerSdk = ({ metastoreClient }) => {
|
|
|
542
515
|
return perType.flatMap((result) => result.children);
|
|
543
516
|
};
|
|
544
517
|
/**
|
|
545
|
-
*
|
|
518
|
+
* Deletes a model; the metastore deletes all its child objects in the same transaction.
|
|
546
519
|
*
|
|
547
|
-
* -
|
|
548
|
-
* -
|
|
549
|
-
* - The model's own 404 is tolerated only after a child was deleted here.
|
|
520
|
+
* - `409`: another object holds a `restrict` reference to the model; nothing was deleted.
|
|
521
|
+
* - `404`: no such model, or it was already deleted.
|
|
550
522
|
*/
|
|
551
523
|
const deleteModel = async (modelUUID) => {
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
process: async (child) => {
|
|
556
|
-
try {
|
|
557
|
-
await deleteObject(child.objectType, child.objectUUID);
|
|
558
|
-
return {
|
|
559
|
-
ok: true,
|
|
560
|
-
child
|
|
561
|
-
};
|
|
562
|
-
} catch (error) {
|
|
563
|
-
if (isAlreadyDeleted(error)) return {
|
|
564
|
-
ok: true,
|
|
565
|
-
child
|
|
566
|
-
};
|
|
567
|
-
return {
|
|
568
|
-
ok: false,
|
|
569
|
-
child,
|
|
570
|
-
error
|
|
571
|
-
};
|
|
572
|
-
}
|
|
573
|
-
},
|
|
574
|
-
concurrency: WRITE_CONCURRENCY
|
|
575
|
-
});
|
|
576
|
-
const deletedChildren = [];
|
|
577
|
-
const failedChildren = [];
|
|
578
|
-
for (const outcome of outcomes) if (outcome.ok) deletedChildren.push(outcome.child);
|
|
579
|
-
else failedChildren.push({
|
|
580
|
-
...outcome.child,
|
|
581
|
-
error: outcome.error
|
|
582
|
-
});
|
|
583
|
-
if (failedChildren.length > 0) throw new SemanticLayerCascadeDeleteError({
|
|
584
|
-
modelUUID,
|
|
585
|
-
deletedChildren,
|
|
586
|
-
failedChildren
|
|
524
|
+
await metastoreClient.repository.deleteMetaObject({
|
|
525
|
+
objectType: SEMANTIC_OBJECT_TYPE.MODEL,
|
|
526
|
+
UUID: modelUUID
|
|
587
527
|
});
|
|
588
|
-
try {
|
|
589
|
-
await metastoreClient.repository.deleteMetaObject({
|
|
590
|
-
objectType: SEMANTIC_OBJECT_TYPE.MODEL,
|
|
591
|
-
UUID: modelUUID
|
|
592
|
-
});
|
|
593
|
-
} catch (error) {
|
|
594
|
-
if (deletedChildren.length === 0 || !isAlreadyDeleted(error)) throw error;
|
|
595
|
-
}
|
|
596
528
|
};
|
|
597
529
|
/**
|
|
598
530
|
* Replace the projects granted read access to a `targeted`-scope object.
|
|
@@ -688,6 +620,6 @@ const createSemanticLayerSdk = ({ metastoreClient }) => {
|
|
|
688
620
|
};
|
|
689
621
|
};
|
|
690
622
|
//#endregion
|
|
691
|
-
export {
|
|
623
|
+
export { RULE_OPERATORS as _, SEMANTIC_CHILD_OBJECT_SCHEMAS as a, metastoreErrorMessage as b, semanticGlossarySchema as c, semanticRelationshipSchema as d, CONSTRAINT_SCOPES as f, RELATIONSHIP_JOIN_TYPES as g, FIELD_ROLES as h, createSemanticLayerSdk as i, semanticMetricSchema as l, CONSTRAINT_TYPES as m, SEMANTIC_OBJECT_TYPE as n, semanticConstraintSchema as o, CONSTRAINT_SEVERITIES as p, SemanticLayerUnreadableChildrenError as r, semanticDatasetSchema as s, MODEL_CHILD_OBJECT_TYPES as t, semanticModelSchema as u, SEMANTIC_OBJECT_SCOPES as v, SQL_DIALECTS as y };
|
|
692
624
|
|
|
693
|
-
//# sourceMappingURL=semanticLayer-
|
|
625
|
+
//# sourceMappingURL=semanticLayer-DvjS_nzo.js.map
|