@gooddata/sdk-ui-catalog 11.56.0-alpha.6 → 11.56.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/esm/asCode/aacParity.d.ts +40 -0
  2. package/esm/asCode/aacParity.d.ts.map +1 -0
  3. package/esm/asCode/aacParity.js +2 -0
  4. package/esm/catalogItem/converter.d.ts.map +1 -1
  5. package/esm/catalogItem/converter.js +1 -0
  6. package/esm/catalogItem/query.d.ts +1 -1
  7. package/esm/catalogItem/query.d.ts.map +1 -1
  8. package/esm/catalogItem/query.js +8 -2
  9. package/esm/certification/gate.d.ts.map +1 -1
  10. package/esm/certification/gate.js +6 -1
  11. package/esm/computedAttribute/computedAttributeConverter.d.ts +7 -6
  12. package/esm/computedAttribute/computedAttributeConverter.d.ts.map +1 -1
  13. package/esm/computedAttribute/computedAttributeConverter.js +38 -12
  14. package/esm/computedAttribute/computedAttributeCopy.d.ts.map +1 -1
  15. package/esm/computedAttribute/computedAttributeCopy.js +2 -0
  16. package/esm/computedAttribute/computedAttributeDescriptor.d.ts.map +1 -1
  17. package/esm/computedAttribute/computedAttributeDescriptor.js +7 -3
  18. package/esm/computedAttribute/computedAttributeMutationPort.d.ts +1 -1
  19. package/esm/computedAttribute/computedAttributeMutationPort.d.ts.map +1 -1
  20. package/esm/computedAttribute/computedAttributeMutationPort.js +2 -1
  21. package/esm/computedAttribute/computedAttributeSchema.d.ts +54 -0
  22. package/esm/computedAttribute/computedAttributeSchema.d.ts.map +1 -1
  23. package/esm/computedAttribute/computedAttributeSchema.js +41 -1
  24. package/esm/computedAttribute/computedAttributeSerialization.d.ts +2 -2
  25. package/esm/computedAttribute/computedAttributeSerialization.d.ts.map +1 -1
  26. package/esm/computedAttribute/computedAttributeSerialization.js +24 -2
  27. package/esm/computedAttribute/computedAttributeValidation.d.ts +1 -1
  28. package/esm/computedAttribute/computedAttributeValidation.d.ts.map +1 -1
  29. package/esm/computedAttribute/computedAttributeValidation.js +14 -0
  30. package/esm/localization/bundles/en-US.localization-bundle.d.ts +16 -0
  31. package/esm/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  32. package/esm/localization/bundles/en-US.localization-bundle.js +16 -0
  33. package/esm/localization/bundles/ja-JP.localization-bundle.js +15 -15
  34. package/esm/metric/metricSchema.d.ts +4 -0
  35. package/esm/metric/metricSchema.d.ts.map +1 -1
  36. package/esm/parameter/parameterSchema.d.ts +22 -6
  37. package/esm/parameter/parameterSchema.d.ts.map +1 -1
  38. package/esm/parameter/parameterSchema.js +3 -1
  39. package/package.json +16 -16
@@ -0,0 +1,40 @@
1
+ import type { v1 } from "@gooddata/sdk-code-schemas";
2
+ import type { ObjectTypes } from "../objectType/constants.js";
3
+ /**
4
+ * The analytics-as-code (AAC) document type each as-code editor mirrors, keyed by catalog object type.
5
+ * Register a type here when its editor gets a YAML schema; `AacSchemaParity` then knows what to
6
+ * compare that schema against.
7
+ */
8
+ export type AacShapeByObjectType = {
9
+ [ObjectTypes.METRIC]: v1.Metric;
10
+ [ObjectTypes.PARAMETER]: v1.Parameter;
11
+ [ObjectTypes.COMPUTED_ATTRIBUTE]: v1.ComputedAttribute;
12
+ };
13
+ /**
14
+ * Compile-time parity between an as-code editor's zod shape and the AAC document type it mirrors.
15
+ *
16
+ * Resolves to `true` when the two agree, otherwise to an object naming what drifted: a key the AAC
17
+ * schema has but the editor does not (`aacKeysMissingInEditor`), a key the editor accepts that AAC
18
+ * does not know (`editorKeysUnknownToAac`), or, in the default `"shape"` mode, editor values that do
19
+ * not fit the AAC type. Pass `"keys"` for an editor that deliberately accepts values AAC cannot express
20
+ * yet, so only the key set is compared. Declare it once next to the schema through
21
+ * {@link AssertAacParity}, which turns a drift into a build error, for example
22
+ * `Type '{ aacKeysMissingInEditor: "sort_direction"; }' does not satisfy the constraint 'true'`.
23
+ *
24
+ * The AAC type comes from `@gooddata/sdk-code-schemas`, generated from the JSON Schema and gated by
25
+ * its `schema-check`, so a field added to `schemas/v1/src/*.json` reaches this guard through the
26
+ * regenerated type once the schemas package is rebuilt.
27
+ */
28
+ export type AacSchemaParity<TObjectType extends keyof AacShapeByObjectType, TEditorShape, TMode extends "shape" | "keys" = "shape"> = [Exclude<keyof AacShapeByObjectType[TObjectType], keyof TEditorShape>] extends [never] ? [Exclude<keyof TEditorShape, keyof AacShapeByObjectType[TObjectType]>] extends [never] ? TMode extends "keys" ? true : TEditorShape extends Omit<AacShapeByObjectType[TObjectType], "id"> ? true : {
29
+ editorValuesDoNotFitAac: true;
30
+ } : {
31
+ editorKeysUnknownToAac: Exclude<keyof TEditorShape, keyof AacShapeByObjectType[TObjectType]>;
32
+ } : {
33
+ aacKeysMissingInEditor: Exclude<keyof AacShapeByObjectType[TObjectType], keyof TEditorShape>;
34
+ };
35
+ /**
36
+ * Fails the build unless the parity resolved to `true`:
37
+ * `export type MetricAacParity = AssertAacParity<AacSchemaParity<typeof ObjectTypes.METRIC, MetricSchema>>;`
38
+ */
39
+ export type AssertAacParity<TParity extends true> = TParity;
40
+ //# sourceMappingURL=aacParity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aacParity.d.ts","sourceRoot":"","sources":["../../src/asCode/aacParity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC;IAChC,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;IACtC,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;CAC1D,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,eAAe,CACvB,WAAW,SAAS,MAAM,oBAAoB,EAC9C,YAAY,EACZ,KAAK,SAAS,OAAO,GAAG,MAAM,GAAG,OAAO,IACxC,CAAC,OAAO,CAAC,MAAM,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,YAAY,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACpF,CAAC,OAAO,CAAC,MAAM,YAAY,EAAE,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAClF,KAAK,SAAS,MAAM,GAChB,IAAI,GACJ,YAAY,SAAS,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,GAChE,IAAI,GACJ;IAAE,uBAAuB,EAAE,IAAI,CAAA;CAAE,GACvC;IAAE,sBAAsB,EAAE,OAAO,CAAC,MAAM,YAAY,EAAE,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAA;CAAE,GACpG;IAAE,sBAAsB,EAAE,OAAO,CAAC,MAAM,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,YAAY,CAAC,CAAA;CAAE,CAAC;AAEvG;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,IAAI,IAAI,OAAO,CAAC"}
@@ -0,0 +1,2 @@
1
+ // (C) 2026 GoodData Corporation
2
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/catalogItem/converter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAEH,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAE3B,KAAK,wBAAwB,EAC7B,KAAK,KAAK,EAUb,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EACR,YAAY,EACZ,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EAExB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,0BAA0B,CACtC,MAAM,EACA,QAAQ,GACR,gBAAgB,GAChB,sBAAsB,GACtB,wBAAwB,GACxB,gCAAgC,GAChC,mBAAmB,GACnB,wBAAwB,GACxB,sBAAsB,GACtB,SAAS,GAChB,YAAY,CA0Bd;AAED,wBAAgB,6BAA6B,CACzC,SAAS,EAAE,UAAU,GAAG,gBAAgB,GACzC,qBAAqB,CAiBvB;AAED,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,GAAG,mBAAmB,CAkBtF;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,sBAAsB,GAAG,mBAAmB,CAwBhG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CAgBpF;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,wBAAwB,GAAG,qBAAqB,CAiBxG;AAED,wBAAgB,qCAAqC,CACjD,iBAAiB,EAAE,gCAAgC,GACpD,6BAA6B,CAgB/B;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,wBAAwB,GAAG,qBAAqB,CAgBxG;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,sBAAsB,GAAG,mBAAmB,CAehG;AAED,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAW1D;AAcD,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,+BAA+B,GAAG,YAAY,CAuBrG"}
1
+ {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/catalogItem/converter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAEH,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAE3B,KAAK,wBAAwB,EAC7B,KAAK,KAAK,EAUb,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EACR,YAAY,EACZ,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EAExB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,0BAA0B,CACtC,MAAM,EACA,QAAQ,GACR,gBAAgB,GAChB,sBAAsB,GACtB,wBAAwB,GACxB,gCAAgC,GAChC,mBAAmB,GACnB,wBAAwB,GACxB,sBAAsB,GACtB,SAAS,GAChB,YAAY,CA0Bd;AAED,wBAAgB,6BAA6B,CACzC,SAAS,EAAE,UAAU,GAAG,gBAAgB,GACzC,qBAAqB,CAiBvB;AAED,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,GAAG,mBAAmB,CAkBtF;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,sBAAsB,GAAG,mBAAmB,CAwBhG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CAgBpF;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,wBAAwB,GAAG,qBAAqB,CAiBxG;AAED,wBAAgB,qCAAqC,CACjD,iBAAiB,EAAE,gCAAgC,GACpD,6BAA6B,CAiB/B;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,wBAAwB,GAAG,qBAAqB,CAgBxG;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,sBAAsB,GAAG,mBAAmB,CAehG;AAED,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAW1D;AAcD,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,+BAA+B,GAAG,YAAY,CAuBrG"}
@@ -130,6 +130,7 @@ export function convertComputedAttributeToCatalogItem(computedAttribute) {
130
130
  type: "computedAttribute",
131
131
  title: computedAttribute.title,
132
132
  description: computedAttribute.description,
133
+ certification: convertCertification(computedAttribute.certification),
133
134
  tags: computedAttribute.tags ?? [],
134
135
  createdBy: getDisplayName(computedAttribute.createdBy),
135
136
  createdAt: computedAttribute.created ? parseBackendDate(computedAttribute.created) : null,
@@ -5,7 +5,7 @@ export declare function getDashboardsQuery({ backend, workspace, search, origin,
5
5
  export declare function getInsightsQuery({ backend, workspace, search, origin, id, excludeId, createdBy, excludeCreatedBy, tags, excludeTags, isHidden, certification, pageSize, }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IInsightsQuery;
6
6
  export declare function getMetricsQuery({ backend, workspace, search, origin, id, excludeId, createdBy, excludeCreatedBy, tags, excludeTags, isHidden, certification, pageSize, loadPermissions, }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IMeasuresQuery;
7
7
  export declare function getParametersQuery({ backend, workspace, search, origin, id, excludeId, createdBy, excludeCreatedBy, tags, excludeTags, pageSize, }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IParametersQuery;
8
- export declare function getComputedAttributesQuery({ backend, workspace, search, origin, id, excludeId, createdBy, excludeCreatedBy, tags, excludeTags, pageSize, }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IComputedAttributesQuery;
8
+ export declare function getComputedAttributesQuery({ backend, workspace, search, origin, id, excludeId, createdBy, excludeCreatedBy, tags, excludeTags, certification, pageSize, }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IComputedAttributesQuery;
9
9
  export declare function getAttributesQuery({ backend, workspace, search, origin, id, excludeId, tags, excludeTags, isHidden, pageSize, }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IAttributesQuery;
10
10
  export declare function getFactsQuery({ backend, workspace, search, origin, id, excludeId, tags, excludeTags, isHidden, pageSize, }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IFactsQuery;
11
11
  export declare function getDateDatasetsQuery({ backend, workspace, search, origin, id, excludeId, tags, excludeTags, isHidden, pageSize, }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IDatasetsQuery;
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/catalogItem/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/catalogItem/query.ts"],"names":[],"mappings":"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"}
@@ -95,14 +95,14 @@ export function getParametersQuery({ backend, workspace, search, origin, id, exc
95
95
  })
96
96
  .withMethod("POST");
97
97
  }
98
- export function getComputedAttributesQuery({ backend, workspace, search, origin, id, excludeId, createdBy, excludeCreatedBy, tags, excludeTags, pageSize = PAGE_SIZE, }) {
98
+ export function getComputedAttributesQuery({ backend, workspace, search, origin, id, excludeId, createdBy, excludeCreatedBy, tags, excludeTags, certification, pageSize = PAGE_SIZE, }) {
99
99
  return backend
100
100
  .workspace(workspace)
101
101
  .computedAttributes()
102
102
  .getComputedAttributesQuery()
103
103
  .withPage(0)
104
104
  .withSize(pageSize)
105
- .withInclude(["createdBy", "modifiedBy"])
105
+ .withInclude(["createdBy", "modifiedBy", "certifiedBy"])
106
106
  .withSorting(["title,asc"])
107
107
  .withOrigin(origin)
108
108
  .withFilter({
@@ -113,6 +113,7 @@ export function getComputedAttributesQuery({ backend, workspace, search, origin,
113
113
  excludeTags,
114
114
  createdBy,
115
115
  excludeCreatedBy,
116
+ certification,
116
117
  })
117
118
  .withMethod("POST");
118
119
  }
@@ -352,6 +353,11 @@ export function updateCatalogItemCertification(backend, workspace, item) {
352
353
  return backend.workspace(workspace).insights().setCertification(ref, item.certification);
353
354
  case "measure":
354
355
  return backend.workspace(workspace).measures().setCertification(ref, item.certification);
356
+ case "computedAttribute":
357
+ return backend
358
+ .workspace(workspace)
359
+ .computedAttributes()
360
+ .setCertification(ref, item.certification);
355
361
  default:
356
362
  throw new Error("Unsupported catalog item type for certification update.");
357
363
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/certification/gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKzD;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAM1E"}
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/certification/gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAUzD;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAM1E"}
@@ -1,6 +1,11 @@
1
1
  // (C) 2026 GoodData Corporation
2
2
  import { useFeatureFlag } from "../permission/PermissionsContext.js";
3
- const SUPPORTED_CERTIFICATION_TYPES = ["analyticalDashboard", "insight", "measure"];
3
+ const SUPPORTED_CERTIFICATION_TYPES = [
4
+ "analyticalDashboard",
5
+ "insight",
6
+ "measure",
7
+ "computedAttribute",
8
+ ];
4
9
  /**
5
10
  * Catalog certification feature gate.
6
11
  */
@@ -15,9 +15,10 @@ export type ComputedAttributeYaml = Omit<v1.ComputedAttribute, "id"> & {
15
15
  * Maps a computed attribute definition (or a loaded computed attribute, which is a superset) to the
16
16
  * canonical AAC object for YAML serialization.
17
17
  *
18
- * Optional meta fields are omitted when empty so the rendered YAML stays terse, matching the
19
- * analytics-as-code tooling output. The `id` is omitted when the definition has none (e.g. seeding
20
- * the create dialog from a duplicate) so the server derives a fresh one.
18
+ * Optional fields are omitted when unset so the rendered YAML stays terse, matching the
19
+ * analytics-as-code tooling output; a hidden computed attribute is expressed as
20
+ * `show_in_ai_results: false`. The `id` is omitted when the definition has none (e.g. seeding the
21
+ * create dialog from a duplicate) so the server derives a fresh one.
21
22
  */
22
23
  export declare function definitionToComputedAttributeYaml(definition: IComputedAttributeMetadataObjectDefinition): ComputedAttributeYaml;
23
24
  /**
@@ -28,9 +29,9 @@ export declare function computedAttributeYamlToDefinition(computedAttribute: Com
28
29
  * The computed attribute's `reconcile`: layers the author's parsed YAML edits over the base
29
30
  * definition — the loaded object on an edit, the copy source on a duplicate.
30
31
  *
31
- * The base carries fields the YAML cannot express (`format`, `metricType`, `dataType`, ...), which
32
- * survive because only the YAML-owned fields are overlaid on top. Identity stays YAML-authoritative:
33
- * the parsed `id` wins, and its absence lets the server derive a fresh one, so the base's id is
32
+ * The base carries what the YAML cannot express (identity and server-managed state), which survives
33
+ * because only the YAML-owned fields are overlaid on top. Identity stays YAML-authoritative: the
34
+ * parsed `id` wins, and its absence lets the server derive a fresh one, so the base's id is
34
35
  * intentionally dropped first. (On an edit this is moot — validation pins the parsed id to the loaded
35
36
  * object's — but on a duplicate it is what frees the copy from the source's identity.)
36
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"computedAttributeConverter.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeConverter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,qBAAqB,CAAC;AAEtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvF;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC7C,UAAU,EAAE,0CAA0C,GACvD,qBAAqB,CAUvB;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC7C,iBAAiB,EAAE,uBAAuB,GAC3C,0CAA0C,CAU5C;AA2BD;;;;;;;;;GASG;AACH,wBAAgB,oCAAoC,CAChD,IAAI,EAAE,0CAA0C,EAChD,MAAM,EAAE,0CAA0C,GACnD,0CAA0C,CAO5C"}
1
+ {"version":3,"file":"computedAttributeConverter.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeConverter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,qBAAqB,CAAC;AAEtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvF;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAC7C,UAAU,EAAE,0CAA0C,GACvD,qBAAqB,CAiBvB;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC7C,iBAAiB,EAAE,uBAAuB,GAC3C,0CAA0C,CAqB5C;AA6CD;;;;;;;;;GASG;AACH,wBAAgB,oCAAoC,CAChD,IAAI,EAAE,0CAA0C,EAChD,MAAM,EAAE,0CAA0C,GACnD,0CAA0C,CAO5C"}
@@ -3,9 +3,10 @@
3
3
  * Maps a computed attribute definition (or a loaded computed attribute, which is a superset) to the
4
4
  * canonical AAC object for YAML serialization.
5
5
  *
6
- * Optional meta fields are omitted when empty so the rendered YAML stays terse, matching the
7
- * analytics-as-code tooling output. The `id` is omitted when the definition has none (e.g. seeding
8
- * the create dialog from a duplicate) so the server derives a fresh one.
6
+ * Optional fields are omitted when unset so the rendered YAML stays terse, matching the
7
+ * analytics-as-code tooling output; a hidden computed attribute is expressed as
8
+ * `show_in_ai_results: false`. The `id` is omitted when the definition has none (e.g. seeding the
9
+ * create dialog from a duplicate) so the server derives a fresh one.
9
10
  */
10
11
  export function definitionToComputedAttributeYaml(definition) {
11
12
  return {
@@ -15,6 +16,13 @@ export function definitionToComputedAttributeYaml(definition) {
15
16
  ...(definition.description ? { description: definition.description } : {}),
16
17
  ...(definition.tags && definition.tags.length > 0 ? { tags: definition.tags } : {}),
17
18
  maql: definition.expression,
19
+ ...(definition.format ? { format: definition.format } : {}),
20
+ ...(definition.metricType === undefined ? {} : { metric_type: definition.metricType }),
21
+ ...(definition.dataType === undefined ? {} : { data_type: definition.dataType }),
22
+ ...(definition.valueType === undefined ? {} : { value_type: definition.valueType }),
23
+ ...(definition.isNullable === undefined ? {} : { is_nullable: definition.isNullable }),
24
+ ...(definition.nullValue === undefined ? {} : { null_value_join_replacement: definition.nullValue }),
25
+ ...(definition.isHidden === true ? { show_in_ai_results: false } : {}),
18
26
  ...(definition.locale ? { locale: definition.locale } : {}),
19
27
  };
20
28
  }
@@ -29,18 +37,29 @@ export function computedAttributeYamlToDefinition(computedAttribute) {
29
37
  description: computedAttribute.description ?? "",
30
38
  tags: computedAttribute.tags ?? [],
31
39
  expression: computedAttribute.maql,
40
+ ...(computedAttribute.format === undefined ? {} : { format: computedAttribute.format }),
41
+ ...(computedAttribute.metric_type === undefined ? {} : { metricType: computedAttribute.metric_type }),
42
+ ...(computedAttribute.data_type === undefined ? {} : { dataType: computedAttribute.data_type }),
43
+ ...(computedAttribute.value_type === undefined ? {} : { valueType: computedAttribute.value_type }),
44
+ ...(computedAttribute.is_nullable === undefined ? {} : { isNullable: computedAttribute.is_nullable }),
45
+ ...(computedAttribute.null_value_join_replacement === undefined
46
+ ? {}
47
+ : { nullValue: computedAttribute.null_value_join_replacement }),
48
+ ...(computedAttribute.show_in_ai_results === undefined
49
+ ? {}
50
+ : { isHidden: computedAttribute.show_in_ai_results === false }),
32
51
  ...(computedAttribute.locale === undefined ? {} : { locale: computedAttribute.locale }),
33
52
  };
34
53
  }
35
54
  /**
36
55
  * The fields the as-code computed attribute YAML owns, extracted from a parsed definition and
37
- * normalized for persistence. Every other field — `format`, `metricType`, `dataType`, `isNullable`,
38
- * `nullValue`, and a loaded object's identity (`ref`, `uri`) — lies outside the YAML projection and
39
- * is preserved by layering these fields over a base object rather than replacing it.
56
+ * normalized for persistence. Only a loaded object's identity and server-managed state (`ref`, `uri`,
57
+ * `isLocked`, `dataSet`, `certification`, `displayForms`, audit fields) lie outside the YAML
58
+ * projection and are preserved by layering these fields over a base object rather than replacing it.
40
59
  *
41
- * `locale` is always returned (normalized to `undefined` when absent), never omitted: it must
42
- * overwrite the base so that clearing the `locale` line drops a previously set collation. Were it
43
- * omitted when undefined, the base's stale `locale` would leak through the overlay.
60
+ * Every optional field is always returned (normalized to `undefined` when absent, `isHidden` to
61
+ * `false`), never omitted: it must overwrite the base so that removing a line drops the previously
62
+ * set value. Were a field omitted when undefined, the base's stale value would leak through the overlay.
44
63
  */
45
64
  function pickComputedAttributeYamlFields(definition) {
46
65
  return {
@@ -48,6 +67,13 @@ function pickComputedAttributeYamlFields(definition) {
48
67
  description: definition.description ?? "",
49
68
  tags: definition.tags ?? [],
50
69
  expression: definition.expression,
70
+ format: definition.format,
71
+ metricType: definition.metricType,
72
+ dataType: definition.dataType,
73
+ valueType: definition.valueType,
74
+ isNullable: definition.isNullable,
75
+ nullValue: definition.nullValue,
76
+ isHidden: definition.isHidden ?? false,
51
77
  locale: definition.locale,
52
78
  };
53
79
  }
@@ -55,9 +81,9 @@ function pickComputedAttributeYamlFields(definition) {
55
81
  * The computed attribute's `reconcile`: layers the author's parsed YAML edits over the base
56
82
  * definition — the loaded object on an edit, the copy source on a duplicate.
57
83
  *
58
- * The base carries fields the YAML cannot express (`format`, `metricType`, `dataType`, ...), which
59
- * survive because only the YAML-owned fields are overlaid on top. Identity stays YAML-authoritative:
60
- * the parsed `id` wins, and its absence lets the server derive a fresh one, so the base's id is
84
+ * The base carries what the YAML cannot express (identity and server-managed state), which survives
85
+ * because only the YAML-owned fields are overlaid on top. Identity stays YAML-authoritative: the
86
+ * parsed `id` wins, and its absence lets the server derive a fresh one, so the base's id is
61
87
  * intentionally dropped first. (On an edit this is moot — validation pins the parsed id to the loaded
62
88
  * object's — but on a duplicate it is what frees the copy from the source's identity.)
63
89
  */
@@ -1 +1 @@
1
- {"version":3,"file":"computedAttributeCopy.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeCopy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,qBAAqB,CAAC;AAItF,wBAAgB,6BAA6B,CACzC,iBAAiB,EAAE,0CAA0C,GAC9D,0CAA0C,CAiB5C"}
1
+ {"version":3,"file":"computedAttributeCopy.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeCopy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,qBAAqB,CAAC;AAItF,wBAAgB,6BAA6B,CACzC,iBAAiB,EAAE,0CAA0C,GAC9D,0CAA0C,CAmB5C"}
@@ -13,8 +13,10 @@ export function createCopiedComputedAttribute(computedAttribute) {
13
13
  ...(computedAttribute.format === undefined ? {} : { format: computedAttribute.format }),
14
14
  ...(computedAttribute.metricType === undefined ? {} : { metricType: computedAttribute.metricType }),
15
15
  ...(computedAttribute.dataType === undefined ? {} : { dataType: computedAttribute.dataType }),
16
+ ...(computedAttribute.valueType === undefined ? {} : { valueType: computedAttribute.valueType }),
16
17
  ...(computedAttribute.isNullable === undefined ? {} : { isNullable: computedAttribute.isNullable }),
17
18
  ...(computedAttribute.nullValue === undefined ? {} : { nullValue: computedAttribute.nullValue }),
18
19
  ...(computedAttribute.locale === undefined ? {} : { locale: computedAttribute.locale }),
20
+ ...(computedAttribute.isHidden === undefined ? {} : { isHidden: computedAttribute.isHidden }),
19
21
  };
20
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"computedAttributeDescriptor.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeDescriptor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,qBAAqB,CAAC;AAQtF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAmF7E;;GAEG;AACH,eAAO,MAAM,2BAA2B,gIAmCtC,CAAC"}
1
+ {"version":3,"file":"computedAttributeDescriptor.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeDescriptor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,qBAAqB,CAAC;AAQtF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAuF7E;;GAEG;AACH,eAAO,MAAM,2BAA2B,gIAmCtC,CAAC"}
@@ -41,6 +41,10 @@ const errorMessages = defineMessages({
41
41
  missingMaql: { id: "analyticsCatalog.computedAttribute.validation.missingMaql" },
42
42
  invalidType: { id: "analyticsCatalog.computedAttribute.validation.invalidType" },
43
43
  invalidTags: { id: "analyticsCatalog.computedAttribute.validation.invalidTags" },
44
+ invalidLocale: { id: "analyticsCatalog.computedAttribute.validation.invalidLocale" },
45
+ invalidDataType: { id: "analyticsCatalog.computedAttribute.validation.invalidDataType" },
46
+ invalidValueType: { id: "analyticsCatalog.computedAttribute.validation.invalidValueType" },
47
+ invalidMetricType: { id: "analyticsCatalog.computedAttribute.validation.invalidMetricType" },
44
48
  });
45
49
  function useComputedAttributeEditing() {
46
50
  const intl = useIntl();
@@ -84,9 +88,9 @@ export const computedAttributeDescriptor = defineAsCodeDescriptor({
84
88
  }),
85
89
  // The catalog item carries no MAQL, so the full object is fetched for editing.
86
90
  seed: { load: loadComputedAttribute, loadError: capabilityMessages.loadError },
87
- // Refuses the deletion while a visualization, metric, or dashboard still references it,
88
- // and names those objects. The backend currently allows the delete (it would break the
89
- // dependents silently), so the catalog is the guard.
91
+ // Refuses the deletion while a visualization, metric, dashboard, or another computed
92
+ // attribute still references it, and names those objects. The backend currently allows the
93
+ // delete (it would break the dependents silently), so the catalog is the guard.
90
94
  referenceCounted: {
91
95
  load: listComputedAttributeReferences,
92
96
  usageWarning: capabilityMessages.deleteUsageWarning,
@@ -8,7 +8,7 @@ import type { ICatalogItemComputedAttribute } from "../catalogItem/types.js";
8
8
  export type IComputedAttributeMutationPort = IAsCodeMutationPort<IComputedAttributeMetadataObjectDefinition, ICatalogItemComputedAttribute>;
9
9
  /** Fetches the full computed attribute for editing (the catalog item carries no MAQL). @internal */
10
10
  export declare function loadComputedAttribute(backend: IAnalyticalBackend, workspace: string, item: ICatalogItemComputedAttribute): Promise<IComputedAttributeMetadataObjectDefinition>;
11
- /** Titles of the insights, metrics, and dashboards referencing a computed attribute. @internal */
11
+ /** Titles of the insights, metrics, dashboards, and computed attributes referencing a computed attribute. @internal */
12
12
  export declare function listComputedAttributeReferences(backend: IAnalyticalBackend, workspace: string, item: ICatalogItemComputedAttribute): Promise<string[]>;
13
13
  /**
14
14
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"computedAttributeMutationPort.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeMutationPort.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAEH,KAAK,0CAA0C,EAIlD,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAE7E;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,mBAAmB,CAC5D,0CAA0C,EAC1C,6BAA6B,CAChC,CAAC;AAYF,oGAAoG;AACpG,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,6BAA6B,GACpC,OAAO,CAAC,0CAA0C,CAAC,CAKrD;AAED,kGAAkG;AAClG,wBAAsB,+BAA+B,CACjD,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,6BAA6B,GACpC,OAAO,CAAC,MAAM,EAAE,CAAC,CAUnB;AAED;;GAEG;AACH,wBAAgB,sCAAsC,CAClD,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,GAClB,8BAA8B,CAyBhC"}
1
+ {"version":3,"file":"computedAttributeMutationPort.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeMutationPort.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAEH,KAAK,0CAA0C,EAIlD,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAE7E;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,mBAAmB,CAC5D,0CAA0C,EAC1C,6BAA6B,CAChC,CAAC;AAYF,oGAAoG;AACpG,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,6BAA6B,GACpC,OAAO,CAAC,0CAA0C,CAAC,CAKrD;AAED,uHAAuH;AACvH,wBAAsB,+BAA+B,CACjD,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,6BAA6B,GACpC,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED;;GAEG;AACH,wBAAgB,sCAAsC,CAClD,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,GAClB,8BAA8B,CAyBhC"}
@@ -13,7 +13,7 @@ export function loadComputedAttribute(backend, workspace, item) {
13
13
  .computedAttributes()
14
14
  .getComputedAttribute(idRef(item.identifier, "computedAttribute"));
15
15
  }
16
- /** Titles of the insights, metrics, and dashboards referencing a computed attribute. @internal */
16
+ /** Titles of the insights, metrics, dashboards, and computed attributes referencing a computed attribute. @internal */
17
17
  export async function listComputedAttributeReferences(backend, workspace, item) {
18
18
  const referencing = await backend
19
19
  .workspace(workspace)
@@ -23,6 +23,7 @@ export async function listComputedAttributeReferences(backend, workspace, item)
23
23
  ...(referencing.insights ?? []).map((insight) => insightTitle(insight)),
24
24
  ...(referencing.measures ?? []).map((measure) => measure.title),
25
25
  ...(referencing.analyticalDashboards ?? []).map((dashboard) => dashboard.title),
26
+ ...(referencing.computedAttributes ?? []).map((computedAttribute) => computedAttribute.title),
26
27
  ];
27
28
  }
28
29
  /**
@@ -1,4 +1,26 @@
1
1
  import * as z from "zod/mini";
2
+ import type { ComputedAttributeDataType, ComputedAttributeValueType, MetricType } from "@gooddata/sdk-model";
3
+ import type { AacSchemaParity, AssertAacParity } from "../asCode/aacParity.js";
4
+ import type { ObjectTypes } from "../objectType/constants.js";
5
+ /**
6
+ * The value lists mirror the sdk-model unions the definition is typed with. `satisfies` makes a value
7
+ * the model does not know a compile error, and the reverse check below makes a model value the list
8
+ * forgot one too, so the two cannot drift apart silently.
9
+ */
10
+ declare const DATA_TYPES: readonly ["INT", "STRING", "DATE", "NUMERIC", "TIMESTAMP", "TIMESTAMP_TZ", "BOOLEAN", "HLL"];
11
+ declare const VALUE_TYPES: readonly ["TEXT", "HYPERLINK", "GEO", "GEO_LONGITUDE", "GEO_LATITUDE", "GEO_AREA", "GEO_ICON", "IMAGE", "HYPERLOGLOG"];
12
+ declare const METRIC_TYPES: readonly ["UNSPECIFIED", "CURRENCY"];
13
+ type Assert<T extends true> = T;
14
+ type Covers<TList extends readonly string[], TUnion extends string> = [TUnion] extends [TList[number]] ? true : false;
15
+ export type DataTypesCoverModel = Assert<Covers<typeof DATA_TYPES, ComputedAttributeDataType>>;
16
+ export type ValueTypesCoverModel = Assert<Covers<typeof VALUE_TYPES, ComputedAttributeValueType>>;
17
+ export type MetricTypesCoverModel = Assert<Covers<typeof METRIC_TYPES, MetricType>>;
18
+ /**
19
+ * BCP 47 shape a `locale` must have: a 2 or 3 letter language followed by dash-separated alphanumeric
20
+ * subtags (for example `en-US` or `cs-CZ-u-kn-true`). The same pattern the analytics-as-code schema
21
+ * applies to label and computed attribute locales; the backend performs the authoritative check.
22
+ */
23
+ export declare const LOCALE_PATTERN: RegExp;
2
24
  /**
3
25
  * Zod schema for the analytics-as-code (AAC) computed attribute YAML shape.
4
26
  *
@@ -14,14 +36,46 @@ export declare const computedAttributeSchema: z.ZodMiniObject<{
14
36
  description: z.ZodMiniOptional<z.ZodMiniString<string>>;
15
37
  tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
16
38
  maql: z.ZodMiniString<string>;
39
+ format: z.ZodMiniOptional<z.ZodMiniString<string>>;
40
+ metric_type: z.ZodMiniOptional<z.ZodMiniEnum<{
41
+ CURRENCY: "CURRENCY";
42
+ UNSPECIFIED: "UNSPECIFIED";
43
+ }>>;
44
+ data_type: z.ZodMiniOptional<z.ZodMiniEnum<{
45
+ BOOLEAN: "BOOLEAN";
46
+ DATE: "DATE";
47
+ HLL: "HLL";
48
+ INT: "INT";
49
+ NUMERIC: "NUMERIC";
50
+ STRING: "STRING";
51
+ TIMESTAMP: "TIMESTAMP";
52
+ TIMESTAMP_TZ: "TIMESTAMP_TZ";
53
+ }>>;
54
+ value_type: z.ZodMiniOptional<z.ZodMiniEnum<{
55
+ GEO: "GEO";
56
+ GEO_AREA: "GEO_AREA";
57
+ GEO_ICON: "GEO_ICON";
58
+ GEO_LATITUDE: "GEO_LATITUDE";
59
+ GEO_LONGITUDE: "GEO_LONGITUDE";
60
+ HYPERLINK: "HYPERLINK";
61
+ HYPERLOGLOG: "HYPERLOGLOG";
62
+ IMAGE: "IMAGE";
63
+ TEXT: "TEXT";
64
+ }>>;
65
+ is_nullable: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
66
+ null_value_join_replacement: z.ZodMiniOptional<z.ZodMiniString<string>>;
67
+ show_in_ai_results: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
17
68
  locale: z.ZodMiniOptional<z.ZodMiniString<string>>;
18
69
  }, z.core.$strict>;
19
70
  export type ComputedAttributeSchemaInput = z.input<typeof computedAttributeSchema>;
20
71
  export type ComputedAttributeSchema = z.infer<typeof computedAttributeSchema>;
72
+ /** Fails the build when this schema drifts from the AAC `computed_attribute` document type. */
73
+ export type ComputedAttributeAacParity = AssertAacParity<AacSchemaParity<typeof ObjectTypes.COMPUTED_ATTRIBUTE, ComputedAttributeSchema>>;
21
74
  /**
22
75
  * Allowed YAML property names keyed by parent mapping, used to power editor autocompletion.
23
76
  * The computed attribute schema is flat, so the only entry is the top-level mapping (keyed by `""`),
24
77
  * whose value is the object's property names read from zod's public `shape`.
25
78
  */
26
79
  export declare const COMPUTED_ATTRIBUTE_SCHEMA_KEYS: Record<string, string[]>;
80
+ export {};
27
81
  //# sourceMappingURL=computedAttributeSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"computedAttributeSchema.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeSchema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;kBAQlC,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACnF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAEnE,CAAC"}
1
+ {"version":3,"file":"computedAttributeSchema.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeSchema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7G,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;;;GAIG;AACH,QAAA,MAAM,UAAU,8FASyC,CAAC;AAC1D,QAAA,MAAM,WAAW,wHAUyC,CAAC;AAC3D,QAAA,MAAM,YAAY,sCAAuE,CAAC;AAE1F,KAAK,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;AAChC,KAAK,MAAM,CAAC,KAAK,SAAS,SAAS,MAAM,EAAE,EAAE,MAAM,SAAS,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAChG,IAAI,GACJ,KAAK,CAAC;AACZ,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,UAAU,EAAE,yBAAyB,CAAC,CAAC,CAAC;AAC/F,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,WAAW,EAAE,0BAA0B,CAAC,CAAC,CAAC;AAClG,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;AAEpF;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAwC,CAAC;AAEpE;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAelC,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACnF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE9E,+FAA+F;AAC/F,MAAM,MAAM,0BAA0B,GAAG,eAAe,CACpD,eAAe,CAAC,OAAO,WAAW,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAClF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAEnE,CAAC"}
@@ -1,5 +1,38 @@
1
1
  // (C) 2026 GoodData Corporation
2
2
  import * as z from "zod/mini";
3
+ /**
4
+ * The value lists mirror the sdk-model unions the definition is typed with. `satisfies` makes a value
5
+ * the model does not know a compile error, and the reverse check below makes a model value the list
6
+ * forgot one too, so the two cannot drift apart silently.
7
+ */
8
+ const DATA_TYPES = [
9
+ "INT",
10
+ "STRING",
11
+ "DATE",
12
+ "NUMERIC",
13
+ "TIMESTAMP",
14
+ "TIMESTAMP_TZ",
15
+ "BOOLEAN",
16
+ "HLL",
17
+ ];
18
+ const VALUE_TYPES = [
19
+ "TEXT",
20
+ "HYPERLINK",
21
+ "GEO",
22
+ "GEO_LONGITUDE",
23
+ "GEO_LATITUDE",
24
+ "GEO_AREA",
25
+ "GEO_ICON",
26
+ "IMAGE",
27
+ "HYPERLOGLOG",
28
+ ];
29
+ const METRIC_TYPES = ["UNSPECIFIED", "CURRENCY"];
30
+ /**
31
+ * BCP 47 shape a `locale` must have: a 2 or 3 letter language followed by dash-separated alphanumeric
32
+ * subtags (for example `en-US` or `cs-CZ-u-kn-true`). The same pattern the analytics-as-code schema
33
+ * applies to label and computed attribute locales; the backend performs the authoritative check.
34
+ */
35
+ export const LOCALE_PATTERN = /^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{1,8})*$/;
3
36
  /**
4
37
  * Zod schema for the analytics-as-code (AAC) computed attribute YAML shape.
5
38
  *
@@ -15,7 +48,14 @@ export const computedAttributeSchema = z.strictObject({
15
48
  description: z.optional(z.string()),
16
49
  tags: z.optional(z.array(z.string())),
17
50
  maql: z.string(),
18
- locale: z.optional(z.string()),
51
+ format: z.optional(z.string()),
52
+ metric_type: z.optional(z.enum(METRIC_TYPES)),
53
+ data_type: z.optional(z.enum(DATA_TYPES)),
54
+ value_type: z.optional(z.enum(VALUE_TYPES)),
55
+ is_nullable: z.optional(z.boolean()),
56
+ null_value_join_replacement: z.optional(z.string()),
57
+ show_in_ai_results: z.optional(z.boolean()),
58
+ locale: z.optional(z.string().check(z.regex(LOCALE_PATTERN))),
19
59
  });
20
60
  /**
21
61
  * Allowed YAML property names keyed by parent mapping, used to power editor autocompletion.
@@ -3,8 +3,8 @@ import type { ComputedAttributeYaml } from "./computedAttributeConverter.js";
3
3
  * Serializes a canonical AAC computed attribute object to YAML.
4
4
  *
5
5
  * The document is a flat, gap-free list of lines in the order the design prescribes: `id`, `type`,
6
- * `title`, `description`, then `maql` last, so the expression the author came to write sits at the
7
- * bottom with the room below it. The `id` line is always rendered, empty when the computed attribute
6
+ * `title`, `description`, `tags`, the optional value-shaping fields, then `maql` last, so the
7
+ * expression the author came to write sits at the bottom with the room below it. The `id` line is always rendered, empty when the computed attribute
8
8
  * has none, so an author who wants to choose the identity has the key waiting; left blank it is
9
9
  * dropped on validation and the server derives one on create.
10
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"computedAttributeSerialization.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeSerialization.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gCAAgC,CAAC,iBAAiB,EAAE,qBAAqB,GAAG,MAAM,CAkBjG"}
1
+ {"version":3,"file":"computedAttributeSerialization.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeSerialization.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gCAAgC,CAAC,iBAAiB,EAAE,qBAAqB,GAAG,MAAM,CAwCjG"}
@@ -4,8 +4,8 @@ import { Document } from "yaml";
4
4
  * Serializes a canonical AAC computed attribute object to YAML.
5
5
  *
6
6
  * The document is a flat, gap-free list of lines in the order the design prescribes: `id`, `type`,
7
- * `title`, `description`, then `maql` last, so the expression the author came to write sits at the
8
- * bottom with the room below it. The `id` line is always rendered, empty when the computed attribute
7
+ * `title`, `description`, `tags`, the optional value-shaping fields, then `maql` last, so the
8
+ * expression the author came to write sits at the bottom with the room below it. The `id` line is always rendered, empty when the computed attribute
9
9
  * has none, so an author who wants to choose the identity has the key waiting; left blank it is
10
10
  * dropped on validation and the server derives one on create.
11
11
  *
@@ -21,6 +21,28 @@ export function serializeComputedAttributeToYaml(computedAttribute) {
21
21
  if (computedAttribute.tags && computedAttribute.tags.length > 0) {
22
22
  doc.add(doc.createPair("tags", computedAttribute.tags));
23
23
  }
24
+ // Value-shaping fields are rendered only when set, as the analytics-as-code tooling does.
25
+ if (computedAttribute.format) {
26
+ doc.add(doc.createPair("format", computedAttribute.format));
27
+ }
28
+ if (computedAttribute.metric_type !== undefined) {
29
+ doc.add(doc.createPair("metric_type", computedAttribute.metric_type));
30
+ }
31
+ if (computedAttribute.data_type !== undefined) {
32
+ doc.add(doc.createPair("data_type", computedAttribute.data_type));
33
+ }
34
+ if (computedAttribute.value_type !== undefined) {
35
+ doc.add(doc.createPair("value_type", computedAttribute.value_type));
36
+ }
37
+ if (computedAttribute.is_nullable !== undefined) {
38
+ doc.add(doc.createPair("is_nullable", computedAttribute.is_nullable));
39
+ }
40
+ if (computedAttribute.null_value_join_replacement !== undefined) {
41
+ doc.add(doc.createPair("null_value_join_replacement", computedAttribute.null_value_join_replacement));
42
+ }
43
+ if (computedAttribute.show_in_ai_results === false) {
44
+ doc.add(doc.createPair("show_in_ai_results", false));
45
+ }
24
46
  if (computedAttribute.locale) {
25
47
  doc.add(doc.createPair("locale", computedAttribute.locale));
26
48
  }
@@ -6,7 +6,7 @@ export type ComputedAttributeValidationResult = {
6
6
  isValid: false;
7
7
  errorCode: ComputedAttributeValidationErrorCode;
8
8
  };
9
- export type ComputedAttributeValidationErrorCode = "empty" | "syntax" | "invalidStructure" | "idImmutable" | "missingMaql" | "invalidType" | "invalidTags";
9
+ export type ComputedAttributeValidationErrorCode = "empty" | "syntax" | "invalidStructure" | "idImmutable" | "missingMaql" | "invalidType" | "invalidTags" | "invalidLocale" | "invalidDataType" | "invalidValueType" | "invalidMetricType";
10
10
  type ValidateComputedAttributeYamlOptions = {
11
11
  fixedIdentifier?: string;
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"computedAttributeValidation.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeValidation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,qBAAqB,CAAC;AAOtF,MAAM,MAAM,iCAAiC,GACvC;IACI,OAAO,EAAE,IAAI,CAAC;IACd,iBAAiB,EAAE,0CAA0C,CAAC;CACjE,GACD;IACI,OAAO,EAAE,KAAK,CAAC;IACf,SAAS,EAAE,oCAAoC,CAAC;CACnD,CAAC;AAER,MAAM,MAAM,oCAAoC,GAC1C,OAAO,GACP,QAAQ,GACR,kBAAkB,GAClB,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,CAAC;AAEpB,KAAK,oCAAoC,GAAG;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,wBAAgB,6BAA6B,CACzC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,oCAAyC,GACnD,iCAAiC,CAgBnC"}
1
+ {"version":3,"file":"computedAttributeValidation.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeValidation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,qBAAqB,CAAC;AAOtF,MAAM,MAAM,iCAAiC,GACvC;IACI,OAAO,EAAE,IAAI,CAAC;IACd,iBAAiB,EAAE,0CAA0C,CAAC;CACjE,GACD;IACI,OAAO,EAAE,KAAK,CAAC;IACf,SAAS,EAAE,oCAAoC,CAAC;CACnD,CAAC;AAER,MAAM,MAAM,oCAAoC,GAC1C,OAAO,GACP,QAAQ,GACR,kBAAkB,GAClB,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,eAAe,GACf,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,CAAC;AAE1B,KAAK,oCAAoC,GAAG;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,wBAAgB,6BAA6B,CACzC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,oCAAyC,GACnD,iCAAiC,CAgBnC"}
@@ -37,6 +37,20 @@ function classifyComputedAttributeError(error, parsed) {
37
37
  if (path === "tags" || path.startsWith("tags.")) {
38
38
  return "invalidTags";
39
39
  }
40
+ // The value-shaping fields each get a message naming what they accept; a generic structure
41
+ // error would leave the author guessing which of several optional lines is wrong.
42
+ if (path === "locale") {
43
+ return "invalidLocale";
44
+ }
45
+ if (path === "data_type") {
46
+ return "invalidDataType";
47
+ }
48
+ if (path === "value_type") {
49
+ return "invalidValueType";
50
+ }
51
+ if (path === "metric_type") {
52
+ return "invalidMetricType";
53
+ }
40
54
  }
41
55
  return "invalidStructure";
42
56
  }
@@ -855,6 +855,22 @@ export declare const en_US: {
855
855
  text: string;
856
856
  crowdinContext: string;
857
857
  };
858
+ "analyticsCatalog.computedAttribute.validation.invalidLocale": {
859
+ text: string;
860
+ crowdinContext: string;
861
+ };
862
+ "analyticsCatalog.computedAttribute.validation.invalidDataType": {
863
+ text: string;
864
+ crowdinContext: string;
865
+ };
866
+ "analyticsCatalog.computedAttribute.validation.invalidValueType": {
867
+ text: string;
868
+ crowdinContext: string;
869
+ };
870
+ "analyticsCatalog.computedAttribute.validation.invalidMetricType": {
871
+ text: string;
872
+ crowdinContext: string;
873
+ };
858
874
  "analyticsCatalog.computedAttribute.create.defaultTitle": {
859
875
  text: string;
860
876
  crowdinContext: string;
@@ -1 +1 @@
1
- {"version":3,"file":"en-US.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/en-US.localization-bundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"en-US.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/en-US.localization-bundle.ts"],"names":[],"mappings":"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"}
@@ -857,6 +857,22 @@ export const en_US = {
857
857
  "text": "Tags must be a list of text values.",
858
858
  "crowdinContext": "Validation error shown when the computed attribute tags are not a list of strings."
859
859
  },
860
+ "analyticsCatalog.computedAttribute.validation.invalidLocale": {
861
+ "text": "The locale must be a BCP 47 language tag, for example en-US.",
862
+ "crowdinContext": "Validation error shown when the computed attribute locale is not a valid BCP 47 language tag. en-US is a literal example value and must not be translated."
863
+ },
864
+ "analyticsCatalog.computedAttribute.validation.invalidDataType": {
865
+ "text": "The data type must be one of INT, STRING, DATE, NUMERIC, TIMESTAMP, TIMESTAMP_TZ, BOOLEAN or HLL.",
866
+ "crowdinContext": "Validation error shown when the computed attribute data_type is not one of the allowed values. The uppercase values are literals and must not be translated."
867
+ },
868
+ "analyticsCatalog.computedAttribute.validation.invalidValueType": {
869
+ "text": "The value type must be one of TEXT, HYPERLINK, IMAGE, GEO, GEO_LONGITUDE, GEO_LATITUDE, GEO_AREA, GEO_ICON or HYPERLOGLOG.",
870
+ "crowdinContext": "Validation error shown when the computed attribute value_type is not one of the allowed values. The uppercase values are literals and must not be translated."
871
+ },
872
+ "analyticsCatalog.computedAttribute.validation.invalidMetricType": {
873
+ "text": "The metric type must be UNSPECIFIED or CURRENCY.",
874
+ "crowdinContext": "Validation error shown when the computed attribute metric_type is not one of the allowed values. The uppercase values are literals and must not be translated."
875
+ },
860
876
  "analyticsCatalog.computedAttribute.create.defaultTitle": {
861
877
  "text": "My computed attribute",
862
878
  "crowdinContext": "Default placeholder title seeded into the new computed attribute as-code editor before the user types their own."
@@ -121,7 +121,7 @@ export const ja_JP = {
121
121
  "analyticsCatalog.catalogItem.tab.quality.empty": "バリデーションの問題は見つかりませんでした。",
122
122
  "analyticsCatalog.catalogItem.lock": "このカタログ項目は親ワークスペースで作成されているため、編集または削除することはできません。変更するには、親ワークスペースを開いてください。",
123
123
  "analyticsCatalog.catalogItem.actionsMenu.ariaLabel": "{name} のアクション",
124
- "analyticsCatalog.tooltip.content": "ダッシュボード、メトリック、可視化、ファクト、属性を集中管理するカタログです。すべてのオブジェクトを 1 か所で探索、管理、更新し、一貫したガバナンスの維持、インサイト取得の高速化、およびコラボレーションの向上を実現します。",
124
+ "analyticsCatalog.tooltip.content": "ダッシュボード、メトリック、ビジュアライゼーション、ファクト、アトリビュートを集中管理するカタログです。すべてのオブジェクトを 1 か所で探索、管理、更新し、一貫したガバナンスの維持、インサイト取得の高速化、およびコラボレーションの向上を実現します。",
125
125
  "analyticsCatalog.search.label": "タイトルまたは説明で検索…",
126
126
  "analyticsCatalog.empty.search.title": "一致するものがありません",
127
127
  "analyticsCatalog.empty.search.description": "スペルをチェックするか、フィルターを調整する。",
@@ -228,7 +228,7 @@ export const ja_JP = {
228
228
  "analyticsCatalog.computedAttribute.delete.error": "計算アトリビュートを削除できませんでした。",
229
229
  "analyticsCatalog.metric.dialog.create.title": "メトリックを作成",
230
230
  "analyticsCatalog.metric.dialog.edit.title": "メトリックを編集",
231
- "analyticsCatalog.metric.dialog.sectionHeader": "基準の定義",
231
+ "analyticsCatalog.metric.dialog.sectionHeader": "メトリックの定義",
232
232
  "analyticsCatalog.metric.dialog.sectionHeader.tooltip": "MAQL 式と書式を含め、YAML でメトリックを定義します。",
233
233
  "analyticsCatalog.metric.actions.openInEditor": "メトリックエディターで開く",
234
234
  "analyticsCatalog.metric.dialog.edit.duplicate": "複製",
@@ -259,23 +259,23 @@ export const ja_JP = {
259
259
  "analyticsCatalog.metric.delete.success": "メトリックを削除しました。",
260
260
  "analyticsCatalog.metric.delete.error": "メトリックを削除できませんでした。",
261
261
  "analyticsCatalog.visualization.dialog.create.title": "ビジュアライゼーションの作成",
262
- "analyticsCatalog.visualization.dialog.edit.title": "可視化を編集",
263
- "analyticsCatalog.visualization.dialog.sectionHeader": "可視化の定義",
264
- "analyticsCatalog.visualization.dialog.sectionHeader.tooltip": "タイプ、クエリ、および設定を含め、YAML で可視化を定義します。",
262
+ "analyticsCatalog.visualization.dialog.edit.title": "ビジュアライゼーションを編集",
263
+ "analyticsCatalog.visualization.dialog.sectionHeader": "ビジュアライゼーションの定義",
264
+ "analyticsCatalog.visualization.dialog.sectionHeader.tooltip": "タイプ、クエリ、および設定を含め、YAML でビジュアライゼーションを定義します。",
265
265
  "analyticsCatalog.visualization.actions.openInAnalyticalDesigner": "Analytical Designer で開く",
266
266
  "analyticsCatalog.visualization.dialog.edit.duplicate": "複製",
267
- "analyticsCatalog.visualization.dialog.help": "可視化の記述方法",
268
- "analyticsCatalog.visualization.dialog.submit.error": "可視化を保存できませんでした。",
269
- "analyticsCatalog.visualization.create.defaultTitle": "自分の可視化",
270
- "analyticsCatalog.visualization.create.success": "可視化が作成されました。",
271
- "analyticsCatalog.visualization.update.success": "可視化が保存されました。",
272
- "analyticsCatalog.visualization.load.error": "可視化を読み込めませんでした。",
273
- "analyticsCatalog.visualization.dialog.delete.title": "可視化を削除",
267
+ "analyticsCatalog.visualization.dialog.help": "ビジュアライゼーションの記述方法",
268
+ "analyticsCatalog.visualization.dialog.submit.error": "ビジュアライゼーションを保存できませんでした。",
269
+ "analyticsCatalog.visualization.create.defaultTitle": "自分のビジュアライゼーション",
270
+ "analyticsCatalog.visualization.create.success": "ビジュアライゼーションが作成されました。",
271
+ "analyticsCatalog.visualization.update.success": "ビジュアライゼーションが保存されました。",
272
+ "analyticsCatalog.visualization.load.error": "ビジュアライゼーションを読み込めませんでした。",
273
+ "analyticsCatalog.visualization.dialog.delete.title": "ビジュアライゼーションを削除",
274
274
  "analyticsCatalog.visualization.dialog.delete.body": "<b>{name}</b> を削除してもよろしいですか?",
275
- "analyticsCatalog.visualization.dialog.delete.usageWarning": "この可視化は{count, plural, other {#個のダッシュボード}}で使用されています。削除すると、それらが破損する可能性があります。",
275
+ "analyticsCatalog.visualization.dialog.delete.usageWarning": "このビジュアライゼーションは{count, plural, other {#個のダッシュボード}}で使用されています。削除すると、それらが破損する可能性があります。",
276
276
  "analyticsCatalog.visualization.dialog.delete.submit": "削除",
277
- "analyticsCatalog.visualization.delete.success": "可視化が削除されました。",
278
- "analyticsCatalog.visualization.delete.error": "可視化を削除できませんでした。",
277
+ "analyticsCatalog.visualization.delete.success": "ビジュアライゼーションが削除されました。",
278
+ "analyticsCatalog.visualization.delete.error": "ビジュアライゼーションを削除できませんでした。",
279
279
  "analyticsCatalog.share.button": "共有する",
280
280
  "analyticsCatalog.share.access.row.label": "アクセス",
281
281
  "analyticsCatalog.share.access.row.error": "アクセスを読み込めませんでした。",
@@ -1,4 +1,6 @@
1
1
  import * as z from "zod/mini";
2
+ import type { AacSchemaParity, AssertAacParity } from "../asCode/aacParity.js";
3
+ import type { ObjectTypes } from "../objectType/constants.js";
2
4
  /**
3
5
  * Zod schema for the analytics-as-code (AAC) metric YAML shape.
4
6
  *
@@ -20,6 +22,8 @@ export declare const metricSchema: z.ZodMiniObject<{
20
22
  }, z.core.$strict>;
21
23
  export type MetricSchemaInput = z.input<typeof metricSchema>;
22
24
  export type MetricSchema = z.infer<typeof metricSchema>;
25
+ /** Fails the build when this schema drifts from the AAC `metric` document type. */
26
+ export type MetricAacParity = AssertAacParity<AacSchemaParity<typeof ObjectTypes.METRIC, MetricSchema>>;
23
27
  /**
24
28
  * Allowed YAML property names keyed by parent mapping, used to power editor autocompletion.
25
29
  * The metric schema is flat, so the only entry is the top-level mapping (keyed by `""`), whose
@@ -1 +1 @@
1
- {"version":3,"file":"metricSchema.d.ts","sourceRoot":"","sources":["../../src/metric/metricSchema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;kBAWvB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAC7D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAEvD,CAAC"}
1
+ {"version":3,"file":"metricSchema.d.ts","sourceRoot":"","sources":["../../src/metric/metricSchema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;kBAWvB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAC7D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC,OAAO,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;AAExG;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAEvD,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import * as z from "zod/mini";
2
2
  import type { ParameterType } from "@gooddata/sdk-model";
3
+ import type { AacSchemaParity, AssertAacParity } from "../asCode/aacParity.js";
4
+ import type { ObjectTypes } from "../objectType/constants.js";
3
5
  /**
4
6
  * Codes carried by schema issues via `issue.message`; `classifySchemaError` routes each to the
5
7
  * equally named validation error code, so every entry needs a localized message wired up.
@@ -8,6 +10,8 @@ export declare const schemaErrorCodes: readonly ["invalidConstraintRange", "inva
8
10
  export type SchemaErrorCode = (typeof schemaErrorCodes)[number];
9
11
  export type ParameterSchemaInput = z.input<typeof parameterSchema>;
10
12
  export type ParameterSchema = z.infer<typeof parameterSchema>;
13
+ /** Fails the build when this schema drifts from the AAC `parameter` document type. */
14
+ export type ParameterAacParity = AssertAacParity<AacSchemaParity<typeof ObjectTypes.PARAMETER, ParameterSchema>>;
11
15
  export type ParameterSchemaKeys = Record<string, SchemaKeysEntry>;
12
16
  /** Child keys reachable under a parent key: directly in its mapping, or inside each item of its sequence. */
13
17
  export type SchemaKeysEntry = {
@@ -45,10 +49,16 @@ declare const parameterSchema: z.ZodMiniObject<{
45
49
  constraints: z.ZodMiniOptional<z.ZodMiniObject<{
46
50
  minLength: z.ZodMiniOptional<z.ZodMiniNumberFormat>;
47
51
  maxLength: z.ZodMiniOptional<z.ZodMiniNumberFormat>;
48
- allowedValues: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
52
+ allowedValues: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniArray<z.ZodMiniObject<{
49
53
  value: z.ZodMiniString<string>;
50
54
  title: z.ZodMiniOptional<z.ZodMiniString<string>>;
51
- }, z.core.$strict>>>;
55
+ }, z.core.$strict>>, z.ZodMiniTuple<readonly [z.ZodMiniObject<{
56
+ value: z.ZodMiniString<string>;
57
+ title: z.ZodMiniOptional<z.ZodMiniString<string>>;
58
+ }, z.core.$strict>], z.ZodMiniObject<{
59
+ value: z.ZodMiniString<string>;
60
+ title: z.ZodMiniOptional<z.ZodMiniString<string>>;
61
+ }, z.core.$strict>>>>;
52
62
  }, z.core.$strict>>;
53
63
  cardinality: z.ZodMiniOptional<z.ZodMiniLiteral<"multi" | "single">>;
54
64
  }, z.core.$strict>, z.ZodMiniTransform<{
@@ -57,10 +67,13 @@ declare const parameterSchema: z.ZodMiniObject<{
57
67
  constraints?: {
58
68
  minLength?: number | undefined;
59
69
  maxLength?: number | undefined;
60
- allowedValues?: {
70
+ allowedValues?: [{
61
71
  value: string;
62
72
  title?: string | undefined;
63
- }[] | undefined;
73
+ }, ...{
74
+ value: string;
75
+ title?: string | undefined;
76
+ }[]] | undefined;
64
77
  } | undefined;
65
78
  }, {
66
79
  type: "STRING";
@@ -68,10 +81,13 @@ declare const parameterSchema: z.ZodMiniObject<{
68
81
  constraints?: {
69
82
  minLength?: number | undefined;
70
83
  maxLength?: number | undefined;
71
- allowedValues?: {
84
+ allowedValues?: [{
85
+ value: string;
86
+ title?: string | undefined;
87
+ }, ...{
72
88
  value: string;
73
89
  title?: string | undefined;
74
- }[] | undefined;
90
+ }[]] | undefined;
75
91
  } | undefined;
76
92
  cardinality?: "multi" | "single" | undefined;
77
93
  }>>], "type">;
@@ -1 +1 @@
1
- {"version":3,"file":"parameterSchema.d.ts","sourceRoot":"","sources":["../../src/parameter/parameterSchema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,YACzB,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,mCAAmC,EACnC,wBAAwB,EACxB,qBAAqB,CACf,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACnE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAElE,6GAA6G;AAC7G,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,mHAAmH;AACnH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,aAAa,EAAE,GAAG,mBAAmB,CAEtF;AAED,uGAAuG;AACvG,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,aAAa,EAAE;;;;;;;mBAMjE;AAkFD,kHAAkH;AAClH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAOnB,CAAC"}
1
+ {"version":3,"file":"parameterSchema.d.ts","sourceRoot":"","sources":["../../src/parameter/parameterSchema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,gBAAgB,YACzB,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,mCAAmC,EACnC,wBAAwB,EACxB,qBAAqB,CACf,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACnE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,sFAAsF;AACtF,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAC5C,eAAe,CAAC,OAAO,WAAW,CAAC,SAAS,EAAE,eAAe,CAAC,CACjE,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAElE,6GAA6G;AAC7G,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,mHAAmH;AACnH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,aAAa,EAAE,GAAG,mBAAmB,CAEtF;AAED,uGAAuG;AACvG,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,aAAa,EAAE;;;;;;;mBAMjE;AAuFD,kHAAkH;AAClH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAOnB,CAAC"}
@@ -40,7 +40,9 @@ const allowedValueSchema = z
40
40
  title: z.optional(z.string("invalidAllowedValueTitle")),
41
41
  })
42
42
  .check(rule("invalidAllowedValue", ({ value }) => value !== ""), rule("invalidAllowedValueTitle", ({ value, title }) => (title ?? value).trim() !== ""));
43
- const allowedValuesSchema = z.array(allowedValueSchema).check(rule("emptyAllowedValues", (entries) => entries.length > 0), rule("duplicateAllowedValues", (entries) => allUnique(entries.map((entry) => entry.value))), rule("duplicateAllowedValues", (entries) => allUnique(entries.map((entry) => entry.title ?? entry.value))));
43
+ // The array carries the editor's own error codes; the tuple it pipes into types the result as non-empty,
44
+ // the shape the AAC schema's `minItems: 1` generates, so the two stay assignable.
45
+ const allowedValuesSchema = z.pipe(z.array(allowedValueSchema).check(rule("emptyAllowedValues", (entries) => entries.length > 0), rule("duplicateAllowedValues", (entries) => allUnique(entries.map((entry) => entry.value))), rule("duplicateAllowedValues", (entries) => allUnique(entries.map((entry) => entry.title ?? entry.value)))), z.tuple([allowedValueSchema], allowedValueSchema));
44
46
  const stringConstraintsSchema = z
45
47
  .strictObject({
46
48
  minLength: z.optional(lengthSchema),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-catalog",
3
- "version": "11.56.0-alpha.6",
3
+ "version": "11.56.0-alpha.7",
4
4
  "description": "GoodData SDK - Analytics Catalog",
5
5
  "license": "MIT",
6
6
  "author": "GoodData Corporation",
@@ -40,15 +40,15 @@
40
40
  "tslib": "2.8.1",
41
41
  "yaml": "2.8.3",
42
42
  "zod": "4.3.6",
43
- "@gooddata/sdk-backend-spi": "11.56.0-alpha.6",
44
- "@gooddata/sdk-model": "11.56.0-alpha.6",
45
- "@gooddata/sdk-code-schemas": "11.56.0-alpha.6",
46
- "@gooddata/sdk-ui": "11.56.0-alpha.6",
47
- "@gooddata/sdk-ui-ext": "11.56.0-alpha.6",
48
- "@gooddata/sdk-ui-kit": "11.56.0-alpha.6",
49
- "@gooddata/sdk-ui-theme-provider": "11.56.0-alpha.6",
50
- "@gooddata/sdk-ui-semantic-search": "11.56.0-alpha.6",
51
- "@gooddata/util": "11.56.0-alpha.6"
43
+ "@gooddata/sdk-backend-spi": "11.56.0-alpha.7",
44
+ "@gooddata/sdk-code-schemas": "11.56.0-alpha.7",
45
+ "@gooddata/sdk-ui": "11.56.0-alpha.7",
46
+ "@gooddata/sdk-model": "11.56.0-alpha.7",
47
+ "@gooddata/sdk-ui-ext": "11.56.0-alpha.7",
48
+ "@gooddata/sdk-ui-kit": "11.56.0-alpha.7",
49
+ "@gooddata/sdk-ui-semantic-search": "11.56.0-alpha.7",
50
+ "@gooddata/sdk-ui-theme-provider": "11.56.0-alpha.7",
51
+ "@gooddata/util": "11.56.0-alpha.7"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@microsoft/api-documenter": "7.30.10",
@@ -79,16 +79,16 @@
79
79
  "raf": "3.4.1",
80
80
  "react": "19.1.1",
81
81
  "react-dom": "19.1.1",
82
- "sass": "1.80.0",
82
+ "sass": "1.100.0",
83
83
  "stylelint": "16.26.1",
84
84
  "typescript": "7.0.2",
85
85
  "vitest": "4.1.8",
86
86
  "vitest-dom": "0.1.1",
87
- "@gooddata/i18n-toolkit": "11.56.0-alpha.6",
88
- "@gooddata/eslint-config": "11.56.0-alpha.6",
89
- "@gooddata/oxlint-config": "11.56.0-alpha.6",
90
- "@gooddata/stylelint-config": "11.56.0-alpha.6",
91
- "@gooddata/sdk-backend-mockingbird": "11.56.0-alpha.6"
87
+ "@gooddata/eslint-config": "11.56.0-alpha.7",
88
+ "@gooddata/i18n-toolkit": "11.56.0-alpha.7",
89
+ "@gooddata/oxlint-config": "11.56.0-alpha.7",
90
+ "@gooddata/stylelint-config": "11.56.0-alpha.7",
91
+ "@gooddata/sdk-backend-mockingbird": "11.56.0-alpha.7"
92
92
  },
93
93
  "peerDependencies": {
94
94
  "react": "^18.0.0 || ^19.0.0",