@gooddata/sdk-model 11.58.0-alpha.3 → 11.58.0-alpha.4

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.
@@ -53,6 +53,13 @@ export interface IDrillToCustomUrlTarget {
53
53
  * Custom url to drill to
54
54
  */
55
55
  url: string;
56
+ /**
57
+ * Object dependencies keyed by the exact URL placeholder that produced them when saved.
58
+ * Local measure identifiers are resolved against the source insight. Backends can use these
59
+ * references to track dependencies without parsing the URL template. Placeholder keys allow
60
+ * removed dependencies to be discarded even when the source insight cannot be read.
61
+ */
62
+ references?: Record<string, ObjRef[]>;
56
63
  }
57
64
  /**
58
65
  * Drill to attribute url target
@@ -1 +1 @@
1
- {"version":3,"file":"drill.d.ts","sourceRoot":"","sources":["../../src/dashboard/drill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drill.d.ts","sourceRoot":"","sources":["../../src/dashboard/drill.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
+ import { type IInsightDefinition } from "../insight/index.js";
1
2
  import { type IAttributeDisplayFormMetadataObject } from "../ldm/metadata/attributeDisplayForm/index.js";
2
3
  import { type IdentifierRef, type ObjRef } from "../objRef/index.js";
4
+ import { type IDrillToCustomUrlTarget } from "./drill.js";
3
5
  /**
4
6
  * @internal
5
7
  */
@@ -13,6 +15,49 @@ export interface IDrillToUrlPlaceholder {
13
15
  * @internal
14
16
  */
15
17
  export type IDrillUrlPart = string | IdentifierRef;
18
+ /** Context placeholders carry no object dependency. @internal */
19
+ export declare enum DRILL_TO_URL_PLACEHOLDER {
20
+ DRILL_TO_URL_PLACEHOLDER_PROJECT_ID = "{project_id}",
21
+ DRILL_TO_URL_PLACEHOLDER_WORKSPACE_ID = "{workspace_id}",
22
+ DRILL_TO_URL_PLACEHOLDER_INSIGHT_ID = "{visualization_id}",
23
+ DRILL_TO_URL_PLACEHOLDER_WIDGET_ID = "{widget_id}",
24
+ DRILL_TO_URL_PLACEHOLDER_DASHBOARD_ID = "{dashboard_id}",
25
+ DRILL_TO_URL_PLACEHOLDER_CLIENT_ID = "{client_id}",
26
+ DRILL_TO_URL_PLACEHOLDER_DATA_PRODUCT_ID = "{data_product_id}"
27
+ }
28
+ type DrillUrlDependency = "displayForm" | "measure" | "insightMeasure" | "none";
29
+ /**
30
+ * Shared grammar for URL resolution and dependency collection. Every entry must declare its
31
+ * dependency policy; the dashboard resolver exhaustively handles the resulting type union.
32
+ * @internal
33
+ */
34
+ declare const drillUrlPlaceholderDefinitions: ({
35
+ type: "attribute_filter_selection";
36
+ pattern: RegExp;
37
+ dependency: DrillUrlDependency;
38
+ } | {
39
+ type: "attribute_title";
40
+ pattern: RegExp;
41
+ dependency: DrillUrlDependency;
42
+ } | {
43
+ type: "dash_attribute_filter_selection";
44
+ pattern: RegExp;
45
+ dependency: DrillUrlDependency;
46
+ } | {
47
+ type: "dash_mvf_condition";
48
+ pattern: RegExp;
49
+ dependency: DrillUrlDependency;
50
+ } | {
51
+ type: "mvf_condition";
52
+ pattern: RegExp;
53
+ dependency: DrillUrlDependency;
54
+ } | {
55
+ type: DRILL_TO_URL_PLACEHOLDER;
56
+ pattern: RegExp;
57
+ dependency: DrillUrlDependency;
58
+ })[];
59
+ /** Supported grammar keys; URL resolvers must handle every key. @internal */
60
+ export type DrillUrlPlaceholderType = (typeof drillUrlPlaceholderDefinitions)[number]["type"];
16
61
  /**
17
62
  * The identifier text a placeholder uses to name the given object, exactly as it appears inside the
18
63
  * placeholder in the URL - type-prefixed for a computed attribute, bare for a display form.
@@ -56,24 +101,25 @@ export declare const splitDrillUrlParts: (url: string) => IDrillUrlPart[];
56
101
  * @internal
57
102
  */
58
103
  export declare const joinDrillUrlParts: (parts: IDrillUrlPart[] | string) => string;
59
- /**
60
- * @internal
61
- */
104
+ /** @internal */
62
105
  export declare const getAttributeIdentifiersPlaceholdersFromUrl: (url: string) => IDrillToUrlPlaceholder[];
63
- /**
64
- * @internal
65
- */
106
+ /** @internal */
66
107
  export declare const getDashboardAttributeFilterPlaceholdersFromUrl: (url: string) => IDrillToUrlPlaceholder[];
67
- /**
68
- * @internal
69
- */
108
+ /** @internal */
70
109
  export declare const getDashboardMeasureValueFilterPlaceholdersFromUrl: (url: string) => IDrillToUrlPlaceholder[];
71
- /**
72
- * @internal
73
- */
110
+ /** @internal */
74
111
  export declare const getInsightAttributeFilterPlaceholdersFromUrl: (url: string) => IDrillToUrlPlaceholder[];
112
+ /** @internal */
113
+ export declare const getInsightMeasureValueFilterPlaceholdersFromUrl: (url: string) => IDrillToUrlPlaceholder[];
114
+ /** Returns the registered placeholder families present in the URL. @internal */
115
+ export declare function getDrillUrlPlaceholderTypes(url: string): DrillUrlPlaceholderType[];
75
116
  /**
117
+ * Collects dependencies by exact placeholder. Without the source insight, only dependencies saved
118
+ * for the same insight-filter placeholder can be retained; removed/renamed placeholders disappear.
76
119
  * @internal
77
120
  */
78
- export declare const getInsightMeasureValueFilterPlaceholdersFromUrl: (url: string) => IDrillToUrlPlaceholder[];
121
+ export declare function getDrillToCustomUrlReferenceMap(target: IDrillToCustomUrlTarget, insight?: IInsightDefinition): Record<string, ObjRef[]>;
122
+ /** Returns distinct object dependencies of the current URL for restriction checks. @internal */
123
+ export declare function getDrillToCustomUrlReferences(target: IDrillToCustomUrlTarget, insight?: IInsightDefinition): ObjRef[];
124
+ export {};
79
125
  //# sourceMappingURL=drillUrl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drillUrl.d.ts","sourceRoot":"","sources":["../../src/dashboard/drillUrl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,+CAA+C,CAAC;AAEzG,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAA2C,MAAM,oBAAoB,CAAC;AAE9G;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,aAAa,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC;AA6CnD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,QAAS,MAAM,KAAG,MAMvD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,OAAQ,mCAAmC,KAAG,MACgB,CAAC;AAErG;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,QAAS,MAAM,KAAG,MACL,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,QAAS,MAAM,KAAG,MACM,CAAC;AAE3E;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,QAAS,MAAM,KAAG,MACG,CAAC;AAkBtE;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAAS,MAAM,KAAG,aAAa,EAS7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAAW,aAAa,EAAE,GAAG,MAAM,KAAG,MAenE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0CAA0C,QAAS,MAAM,KAAG,sBAAsB,EACnB,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,8CAA8C,QAAS,MAAM,KAAG,sBAAsB,EAClB,CAAC;AAElF;;GAEG;AACH,eAAO,MAAM,iDAAiD,QAAS,MAAM,KAAG,sBAAsB,EACX,CAAC;AAE5F;;GAEG;AACH,eAAO,MAAM,4CAA4C,QAAS,MAAM,KAAG,sBAAsB,EAClB,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,+CAA+C,QAAS,MAAM,KAAG,sBAAsB,EACX,CAAC"}
1
+ {"version":3,"file":"drillUrl.d.ts","sourceRoot":"","sources":["../../src/dashboard/drillUrl.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,kBAAkB,EAAmC,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,+CAA+C,CAAC;AAEzG,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,MAAM,EAMd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,aAAa,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC;AAanD,iEAAiE;AACjE,oBAAY,wBAAwB;IAChC,mCAAmC,iBAAiB;IACpD,qCAAqC,mBAAmB;IACxD,mCAAmC,uBAAuB;IAC1D,kCAAkC,gBAAgB;IAClD,qCAAqC,mBAAmB;IACxD,kCAAkC,gBAAgB;IAClD,wCAAwC,sBAAsB;CACjE;AAED,KAAK,kBAAkB,GAAG,aAAa,GAAG,SAAS,GAAG,gBAAgB,GAAG,MAAM,CAAC;AAMhF;;;;GAIG;AACH,QAAA,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;IAiBnC,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AA6B9F;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,QAAS,MAAM,KAAG,MAMvD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,OAAQ,mCAAmC,KAAG,MACgB,CAAC;AAErG;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,QAAS,MAAM,KAAG,MACL,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,QAAS,MAAM,KAAG,MACM,CAAC;AAE3E;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,QAAS,MAAM,KAAG,MACG,CAAC;AAkBtE;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAAS,MAAM,KAAG,aAAa,EAS7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAAW,aAAa,EAAE,GAAG,MAAM,KAAG,MAenE,CAAC;AAaF,gBAAgB;AAChB,eAAO,MAAM,0CAA0C,QAAS,MAAM,KAAG,sBAAsB,EAC9C,CAAC;AAElD,gBAAgB;AAChB,eAAO,MAAM,8CAA8C,QAAS,MAAM,KAAG,sBAAsB,EAClC,CAAC;AAElE,gBAAgB;AAChB,eAAO,MAAM,iDAAiD,QAAS,MAAM,KAAG,sBAAsB,EAClD,CAAC;AAErD,gBAAgB;AAChB,eAAO,MAAM,4CAA4C,QAAS,MAAM,KAAG,sBAAsB,EACrC,CAAC;AAE7D,gBAAgB;AAChB,eAAO,MAAM,+CAA+C,QAAS,MAAM,KAAG,sBAAsB,EACrD,CAAC;AAEhD,gFAAgF;AAChF,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,EAAE,CAIlF;AAqBD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC3C,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,kBAAkB,GAC7B,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA0B1B;AAED,gGAAgG;AAChG,wBAAgB,6BAA6B,CACzC,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,kBAAkB,GAC7B,MAAM,EAAE,CAMV"}
@@ -1,6 +1,9 @@
1
1
  // (C) 2022-2026 GoodData Corporation
2
+ import { isMeasureValueFilter, measureValueFilterMeasure } from "../execution/filter/index.js";
3
+ import { measureArithmeticOperands, measureItem, measureLocalId, measureMasterIdentifier, } from "../execution/measure/index.js";
4
+ import { insightFilters, insightMeasures } from "../insight/index.js";
2
5
  import { idRef } from "../objRef/factory.js";
3
- import { isComputedAttributeRef, isIdentifierRef } from "../objRef/index.js";
6
+ import { areObjRefsEqual, isComputedAttributeRef, isIdentifierRef, isLocalIdRef, objRefToString, } from "../objRef/index.js";
4
7
  function matchAll(regex, text) {
5
8
  const matches = [];
6
9
  let match = null;
@@ -10,11 +13,33 @@ function matchAll(regex, text) {
10
13
  return matches;
11
14
  }
12
15
  const attributeIdentifierSplitRegexp = /(\{attribute_title\(.*?\)\})/;
13
- const attributeIdentifierMatchRegexp = /\{attribute_title\((.*?)\)\}/g;
14
- const dashboardAttributeFilterMatchRegexp = /\{dash_attribute_filter_selection\((.*?)\)\}/g;
15
- const dashboardMeasureValueFilterMatchRegexp = /\{dash_mvf_condition\((.*?)\)\}/g;
16
- const insightAttributeFilterMatchRegexp = /\{attribute_filter_selection\((.*?)\)\}/g;
17
- const insightMeasureValueFilterMatchRegexp = /\{mvf_condition\((.*?)\)\}/g;
16
+ /** Context placeholders carry no object dependency. @internal */
17
+ export var DRILL_TO_URL_PLACEHOLDER;
18
+ (function (DRILL_TO_URL_PLACEHOLDER) {
19
+ DRILL_TO_URL_PLACEHOLDER["DRILL_TO_URL_PLACEHOLDER_PROJECT_ID"] = "{project_id}";
20
+ DRILL_TO_URL_PLACEHOLDER["DRILL_TO_URL_PLACEHOLDER_WORKSPACE_ID"] = "{workspace_id}";
21
+ DRILL_TO_URL_PLACEHOLDER["DRILL_TO_URL_PLACEHOLDER_INSIGHT_ID"] = "{visualization_id}";
22
+ DRILL_TO_URL_PLACEHOLDER["DRILL_TO_URL_PLACEHOLDER_WIDGET_ID"] = "{widget_id}";
23
+ DRILL_TO_URL_PLACEHOLDER["DRILL_TO_URL_PLACEHOLDER_DASHBOARD_ID"] = "{dashboard_id}";
24
+ DRILL_TO_URL_PLACEHOLDER["DRILL_TO_URL_PLACEHOLDER_CLIENT_ID"] = "{client_id}";
25
+ DRILL_TO_URL_PLACEHOLDER["DRILL_TO_URL_PLACEHOLDER_DATA_PRODUCT_ID"] = "{data_product_id}";
26
+ })(DRILL_TO_URL_PLACEHOLDER || (DRILL_TO_URL_PLACEHOLDER = {}));
27
+ function definePlaceholder(type, pattern, dependency) {
28
+ return { type, pattern, dependency };
29
+ }
30
+ /**
31
+ * Shared grammar for URL resolution and dependency collection. Every entry must declare its
32
+ * dependency policy; the dashboard resolver exhaustively handles the resulting type union.
33
+ * @internal
34
+ */
35
+ const drillUrlPlaceholderDefinitions = [
36
+ definePlaceholder("attribute_title", /\{attribute_title\((.*?)\)\}/g, "displayForm"),
37
+ definePlaceholder("dash_attribute_filter_selection", /\{dash_attribute_filter_selection\((.*?)\)\}/g, "displayForm"),
38
+ definePlaceholder("attribute_filter_selection", /\{attribute_filter_selection\((.*?)\)\}/g, "displayForm"),
39
+ definePlaceholder("dash_mvf_condition", /\{dash_mvf_condition\((.*?)\)\}/g, "measure"),
40
+ definePlaceholder("mvf_condition", /\{mvf_condition\((.*?)\)\}/g, "insightMeasure"),
41
+ ...Object.values(DRILL_TO_URL_PLACEHOLDER).map((placeholder) => definePlaceholder(placeholder, new RegExp(placeholder, "g"), "none")),
42
+ ];
18
43
  /**
19
44
  * A placeholder names its target by identifier alone, which used to be enough because every target
20
45
  * was a display form. A computed attribute has no labels on the backend and must be referenced by
@@ -93,7 +118,7 @@ const splitAttributeIdentifierUrl = (url) => url.split(attributeIdentifierSplitR
93
118
  */
94
119
  export const splitDrillUrlParts = (url) => {
95
120
  return splitAttributeIdentifierUrl(url).map((urlPart) => {
96
- const match = attributeIdentifierMatchRegexp.exec(urlPart);
121
+ const match = /\{attribute_title\((.*?)\)\}/.exec(urlPart);
97
122
  if (match !== null) {
98
123
  return matchToUrlPlaceholder(match).ref;
99
124
  }
@@ -117,23 +142,83 @@ export const joinDrillUrlParts = (parts) => {
117
142
  })
118
143
  .join("");
119
144
  };
145
+ /** Parses one registered object-placeholder family using the shared grammar. */
146
+ function getObjectPlaceholders(url, type) {
147
+ const definition = drillUrlPlaceholderDefinitions.find((candidate) => candidate.type === type);
148
+ if (!definition || definition.dependency === "none") {
149
+ return [];
150
+ }
151
+ return matchAll(definition.pattern, url).map(definition.dependency === "displayForm" ? matchToUrlPlaceholder : matchToMeasureUrlPlaceholder);
152
+ }
153
+ /** @internal */
154
+ export const getAttributeIdentifiersPlaceholdersFromUrl = (url) => getObjectPlaceholders(url, "attribute_title");
155
+ /** @internal */
156
+ export const getDashboardAttributeFilterPlaceholdersFromUrl = (url) => getObjectPlaceholders(url, "dash_attribute_filter_selection");
157
+ /** @internal */
158
+ export const getDashboardMeasureValueFilterPlaceholdersFromUrl = (url) => getObjectPlaceholders(url, "dash_mvf_condition");
159
+ /** @internal */
160
+ export const getInsightAttributeFilterPlaceholdersFromUrl = (url) => getObjectPlaceholders(url, "attribute_filter_selection");
161
+ /** @internal */
162
+ export const getInsightMeasureValueFilterPlaceholdersFromUrl = (url) => getObjectPlaceholders(url, "mvf_condition");
163
+ /** Returns the registered placeholder families present in the URL. @internal */
164
+ export function getDrillUrlPlaceholderTypes(url) {
165
+ return drillUrlPlaceholderDefinitions
166
+ .filter(({ pattern }) => matchAll(pattern, url).length > 0)
167
+ .map(({ type }) => type);
168
+ }
169
+ /** Resolves local arithmetic/derived measures without interpreting local IDs as object IDs. */
170
+ function localMeasureReferences(identifier, measures, visited) {
171
+ if (visited.has(identifier)) {
172
+ return [];
173
+ }
174
+ visited.add(identifier);
175
+ const measure = measures.find((candidate) => measureLocalId(candidate) === identifier);
176
+ if (!measure) {
177
+ return [];
178
+ }
179
+ const item = measureItem(measure);
180
+ if (item) {
181
+ return [item];
182
+ }
183
+ const master = measureMasterIdentifier(measure);
184
+ const operands = master ? [master] : (measureArithmeticOperands(measure) ?? []);
185
+ return operands.flatMap((operand) => localMeasureReferences(operand, measures, visited));
186
+ }
120
187
  /**
188
+ * Collects dependencies by exact placeholder. Without the source insight, only dependencies saved
189
+ * for the same insight-filter placeholder can be retained; removed/renamed placeholders disappear.
121
190
  * @internal
122
191
  */
123
- export const getAttributeIdentifiersPlaceholdersFromUrl = (url) => matchAll(attributeIdentifierMatchRegexp, url).map(matchToUrlPlaceholder);
124
- /**
125
- * @internal
126
- */
127
- export const getDashboardAttributeFilterPlaceholdersFromUrl = (url) => matchAll(dashboardAttributeFilterMatchRegexp, url).map(matchToUrlPlaceholder);
128
- /**
129
- * @internal
130
- */
131
- export const getDashboardMeasureValueFilterPlaceholdersFromUrl = (url) => matchAll(dashboardMeasureValueFilterMatchRegexp, url).map(matchToMeasureUrlPlaceholder);
132
- /**
133
- * @internal
134
- */
135
- export const getInsightAttributeFilterPlaceholdersFromUrl = (url) => matchAll(insightAttributeFilterMatchRegexp, url).map(matchToUrlPlaceholder);
136
- /**
137
- * @internal
138
- */
139
- export const getInsightMeasureValueFilterPlaceholdersFromUrl = (url) => matchAll(insightMeasureValueFilterMatchRegexp, url).map(matchToMeasureUrlPlaceholder);
192
+ export function getDrillToCustomUrlReferenceMap(target, insight) {
193
+ const references = {};
194
+ for (const definition of drillUrlPlaceholderDefinitions) {
195
+ for (const { placeholder, identifier, ref } of getObjectPlaceholders(target.url, definition.type)) {
196
+ if (definition.dependency !== "insightMeasure") {
197
+ references[placeholder] = [ref];
198
+ continue;
199
+ }
200
+ if (!insight) {
201
+ references[placeholder] = target.references?.[placeholder] ?? [];
202
+ continue;
203
+ }
204
+ const filter = insightFilters(insight)
205
+ .filter(isMeasureValueFilter)
206
+ .find((candidate) => objRefToString(measureValueFilterMeasure(candidate)) === identifier);
207
+ if (!filter) {
208
+ references[placeholder] = [];
209
+ continue;
210
+ }
211
+ const measureRef = measureValueFilterMeasure(filter);
212
+ references[placeholder] = isLocalIdRef(measureRef)
213
+ ? localMeasureReferences(measureRef.localIdentifier, insightMeasures(insight), new Set())
214
+ : [measureRef];
215
+ }
216
+ }
217
+ return references;
218
+ }
219
+ /** Returns distinct object dependencies of the current URL for restriction checks. @internal */
220
+ export function getDrillToCustomUrlReferences(target, insight) {
221
+ return Object.values(getDrillToCustomUrlReferenceMap(target, insight))
222
+ .flat()
223
+ .filter((ref, index, refs) => refs.findIndex((candidate) => areObjRefsEqual(candidate, ref)) === index);
224
+ }
package/esm/internal.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { type IDrillToUrlPlaceholder, attributeIdentifierToPlaceholder, dashboardAttributeFilterToPlaceholder, displayFormPlaceholderRef, insightAttributeFilterToPlaceholder, joinDrillUrlParts, placeholderIdentifierText, splitDrillUrlParts, getAttributeIdentifiersPlaceholdersFromUrl, getDashboardAttributeFilterPlaceholdersFromUrl, getDashboardMeasureValueFilterPlaceholdersFromUrl, getInsightAttributeFilterPlaceholdersFromUrl, getInsightMeasureValueFilterPlaceholdersFromUrl, } from "./dashboard/drillUrl.js";
1
+ export { type IDrillToUrlPlaceholder, type DrillUrlPlaceholderType, DRILL_TO_URL_PLACEHOLDER, getDrillUrlPlaceholderTypes, getDrillToCustomUrlReferenceMap, attributeIdentifierToPlaceholder, dashboardAttributeFilterToPlaceholder, displayFormPlaceholderRef, insightAttributeFilterToPlaceholder, joinDrillUrlParts, placeholderIdentifierText, splitDrillUrlParts, getDrillToCustomUrlReferences, getAttributeIdentifiersPlaceholdersFromUrl, getDashboardAttributeFilterPlaceholdersFromUrl, getDashboardMeasureValueFilterPlaceholdersFromUrl, getInsightAttributeFilterPlaceholdersFromUrl, getInsightMeasureValueFilterPlaceholdersFromUrl, } from "./dashboard/drillUrl.js";
2
2
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,sBAAsB,EAC3B,gCAAgC,EAChC,qCAAqC,EACrC,yBAAyB,EACzB,mCAAmC,EACnC,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,0CAA0C,EAC1C,8CAA8C,EAC9C,iDAAiD,EACjD,4CAA4C,EAC5C,+CAA+C,GAClD,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,wBAAwB,EACxB,2BAA2B,EAC3B,+BAA+B,EAC/B,gCAAgC,EAChC,qCAAqC,EACrC,yBAAyB,EACzB,mCAAmC,EACnC,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,6BAA6B,EAC7B,0CAA0C,EAC1C,8CAA8C,EAC9C,iDAAiD,EACjD,4CAA4C,EAC5C,+CAA+C,GAClD,MAAM,yBAAyB,CAAC"}
package/esm/internal.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // (C) 2023-2026 GoodData Corporation
2
2
  // oxlint-disable no-barrel-files/no-barrel-files
3
- export { attributeIdentifierToPlaceholder, dashboardAttributeFilterToPlaceholder, displayFormPlaceholderRef, insightAttributeFilterToPlaceholder, joinDrillUrlParts, placeholderIdentifierText, splitDrillUrlParts, getAttributeIdentifiersPlaceholdersFromUrl, getDashboardAttributeFilterPlaceholdersFromUrl, getDashboardMeasureValueFilterPlaceholdersFromUrl, getInsightAttributeFilterPlaceholdersFromUrl, getInsightMeasureValueFilterPlaceholdersFromUrl, } from "./dashboard/drillUrl.js";
3
+ export { DRILL_TO_URL_PLACEHOLDER, getDrillUrlPlaceholderTypes, getDrillToCustomUrlReferenceMap, attributeIdentifierToPlaceholder, dashboardAttributeFilterToPlaceholder, displayFormPlaceholderRef, insightAttributeFilterToPlaceholder, joinDrillUrlParts, placeholderIdentifierText, splitDrillUrlParts, getDrillToCustomUrlReferences, getAttributeIdentifiersPlaceholdersFromUrl, getDashboardAttributeFilterPlaceholdersFromUrl, getDashboardMeasureValueFilterPlaceholdersFromUrl, getInsightAttributeFilterPlaceholdersFromUrl, getInsightMeasureValueFilterPlaceholdersFromUrl, } from "./dashboard/drillUrl.js";
@@ -6960,6 +6960,13 @@ export declare interface IDrillToCustomUrlTarget {
6960
6960
  * Custom url to drill to
6961
6961
  */
6962
6962
  url: string;
6963
+ /**
6964
+ * Object dependencies keyed by the exact URL placeholder that produced them when saved.
6965
+ * Local measure identifiers are resolved against the source insight. Backends can use these
6966
+ * references to track dependencies without parsing the URL template. Placeholder keys allow
6967
+ * removed dependencies to be discarded even when the source insight cannot be read.
6968
+ */
6969
+ references?: Record<string, ObjRef[]>;
6963
6970
  }
6964
6971
 
6965
6972
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-model",
3
- "version": "11.58.0-alpha.3",
3
+ "version": "11.58.0-alpha.4",
4
4
  "description": "GoodData Model definitions used by UI components and Backend SPI",
5
5
  "license": "MIT",
6
6
  "author": "GoodData",
@@ -55,8 +55,8 @@
55
55
  "oxlint-tsgolint": "7.0.2001",
56
56
  "typescript": "7.0.2",
57
57
  "vitest": "4.1.11",
58
- "@gooddata/eslint-config": "11.58.0-alpha.3",
59
- "@gooddata/oxlint-config": "11.58.0-alpha.3"
58
+ "@gooddata/eslint-config": "11.58.0-alpha.4",
59
+ "@gooddata/oxlint-config": "11.58.0-alpha.4"
60
60
  },
61
61
  "scripts": {
62
62
  "_phase:build": "npm run build",