@gooddata/sdk-pluggable-application-model 11.25.0-alpha.2

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/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2026 GoodData Corporation
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,10 @@
1
+ # GoodData.UI SDK - Pluggable Application Model
2
+
3
+ This package is a part of the [GoodData.UI SDK](https://sdk.gooddata.com/gooddata-ui/docs/about_gooddataui.html).
4
+ It provides model contracts used to integrate pluggable applications with host applications.
5
+
6
+ ## License
7
+
8
+ (C) 2026 GoodData Corporation
9
+
10
+ This project is under MIT License. See `LICENSE`.
package/esm/index.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Model contracts for pluggable application integration.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ export { type EmbeddingMode, type IOrganization, type IOrganizationPermissions, type IPlatformContext, type IPlatformContextV1, type IPluggableApplicationNavigation, PantherTier, isPlatformContextV1, } from "./platformContext.js";
7
+ export { type ILocale } from "@gooddata/sdk-model";
8
+ export { type IAppInstance, type IPluggableApp, type IPluggableApplicationMountHandle, type IPluggableApplicationMountOptions, type IPluggableAppEvent, type PluggableApplicationMount, } from "./mount.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,+BAA+B,EACpC,WAAW,EACX,mBAAmB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gCAAgC,EACrC,KAAK,iCAAiC,EACtC,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,GACjC,MAAM,YAAY,CAAC"}
package/esm/index.js ADDED
@@ -0,0 +1,9 @@
1
+ // (C) 2026 GoodData Corporation
2
+ /* oxlint-disable no-barrel-files/no-barrel-files */
3
+ /**
4
+ * Model contracts for pluggable application integration.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ export { PantherTier, isPlatformContextV1, } from "./platformContext.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,oDAAoD;AAEpD;;;;GAIG;AAEH,OAAO,EAOH,WAAW,EACX,mBAAmB,GACtB,MAAM,sBAAsB,CAAC"}
package/esm/mount.d.ts ADDED
@@ -0,0 +1,91 @@
1
+ import { type IPlatformContext } from "./platformContext.js";
2
+ /**
3
+ * Event emitted by the pluggable application towards the host.
4
+ *
5
+ * @remarks
6
+ * The host is the single writer of the canonical platform context. Use these events to request changes;
7
+ * the host decides what (if anything) to apply and then pushes updated context down via the `updateContext` callback
8
+ * on the mounted instance.
9
+ *
10
+ * @alpha
11
+ */
12
+ export interface IPluggableAppEvent {
13
+ type: string;
14
+ payload?: unknown;
15
+ }
16
+ /**
17
+ * Options passed by the host into a pluggable application's mount function.
18
+ *
19
+ * @alpha
20
+ */
21
+ export interface IPluggableApplicationMountOptions {
22
+ /**
23
+ * Unique application instance identifier.
24
+ */
25
+ id: string;
26
+ /**
27
+ * DOM element into which the pluggable application should render itself.
28
+ */
29
+ container: HTMLElement;
30
+ /**
31
+ * Platform context snapshot provided by the host.
32
+ */
33
+ ctx: IPlatformContext;
34
+ /**
35
+ * Base path under which the pluggable application should consider itself mounted.
36
+ *
37
+ * @example
38
+ * `/organization/someOrg/apps/someApp`
39
+ */
40
+ basePath: string;
41
+ /**
42
+ * Callback invoked by the pluggable application to emit events.
43
+ *
44
+ * @remarks
45
+ * The host remains the single writer of the canonical platform context; pluggable application emits events
46
+ * and host applies changes (if any) and publishes updated context via the `updateContext` callback on the mounted
47
+ * instance.
48
+ */
49
+ onEvent?: (e: IPluggableAppEvent) => void;
50
+ }
51
+ /**
52
+ * Handle returned from mount for lifecycle management and host -\> module interaction.
53
+ *
54
+ * @alpha
55
+ */
56
+ export interface IPluggableApplicationMountHandle {
57
+ /**
58
+ * Unmounts the pluggable application and releases all resources.
59
+ */
60
+ unmount(): void;
61
+ /**
62
+ * Updates context snapshot in the pluggable application.
63
+ *
64
+ * @remarks
65
+ * Host uses this to push down context changes after initial mount.
66
+ */
67
+ updateContext?: (ctx: IPlatformContext) => void;
68
+ }
69
+ /**
70
+ * Pluggable application mount function signature.
71
+ *
72
+ * @alpha
73
+ */
74
+ export type PluggableApplicationMount = (options: IPluggableApplicationMountOptions) => IPluggableApplicationMountHandle;
75
+ /**
76
+ * Mounted application instance.
77
+ *
78
+ * @alpha
79
+ */
80
+ export interface IAppInstance extends IPluggableApplicationMountHandle {
81
+ id: string;
82
+ }
83
+ /**
84
+ * Pluggable application entrypoint.
85
+ *
86
+ * @alpha
87
+ */
88
+ export interface IPluggableApp {
89
+ mount: PluggableApplicationMount;
90
+ }
91
+ //# sourceMappingURL=mount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IAE/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,iCAAiC;IAC9C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,SAAS,EAAE,WAAW,CAAC;IAEvB;;OAEG;IACH,GAAG,EAAE,gBAAgB,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC7C;AAED;;;;GAIG;AACH,MAAM,WAAW,gCAAgC;IAC7C;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnD;AAED;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,CACpC,OAAO,EAAE,iCAAiC,KACzC,gCAAgC,CAAC;AAEtC;;;;GAIG;AACH,MAAM,WAAW,YAAa,SAAQ,gCAAgC;IAClE,EAAE,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,yBAAyB,CAAC;CACpC"}
package/esm/mount.js ADDED
@@ -0,0 +1,3 @@
1
+ // (C) 2026 GoodData Corporation
2
+ export {};
3
+ //# sourceMappingURL=mount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"AAAA,gCAAgC"}
@@ -0,0 +1,88 @@
1
+ import { type IAnalyticalBackend, type IUserSettings } from "@gooddata/sdk-backend-spi";
2
+ import { type IEntitlementDescriptor, type ILocale, type ITheme, type IUser, type IWhiteLabeling, type IWorkspacePermissions, type ObjRef } from "@gooddata/sdk-model";
3
+ /**
4
+ * Pluggable application embedding mode.
5
+ *
6
+ * @alpha
7
+ */
8
+ export type EmbeddingMode = "none" | "iframe" | "export";
9
+ /**
10
+ * Panther tier.
11
+ *
12
+ * @alpha
13
+ */
14
+ export declare enum PantherTier {
15
+ TRIAL = "TRIAL",
16
+ INTERNAL = "INTERNAL",
17
+ POC = "POC",
18
+ LABS = "LABS",
19
+ DEMO = "DEMO"
20
+ }
21
+ /**
22
+ * Organization information available in the platform context.
23
+ *
24
+ * @alpha
25
+ */
26
+ export interface IOrganization {
27
+ id: string;
28
+ title?: string;
29
+ bootstrapUser?: ObjRef;
30
+ bootstrapUserGroup?: ObjRef;
31
+ identityProviderType?: string;
32
+ }
33
+ /**
34
+ * Organization-level permissions.
35
+ *
36
+ * @remarks
37
+ * There is no canonical org-permissions type in `@gooddata/sdk-model` today; this interface is intentionally minimal
38
+ * and expected to evolve.
39
+ *
40
+ * @alpha
41
+ */
42
+ export interface IOrganizationPermissions {
43
+ canManageOrganization?: boolean;
44
+ }
45
+ /**
46
+ * Navigation facade exposed to pluggable applications.
47
+ *
48
+ * @alpha
49
+ */
50
+ export interface IPluggableApplicationNavigation {
51
+ go(to: string): void;
52
+ openApp(id: string, path?: string): void;
53
+ }
54
+ /**
55
+ * Platform context contract version 1.0.
56
+ *
57
+ * @alpha
58
+ */
59
+ export interface IPlatformContextV1 {
60
+ version: "1.0";
61
+ backend: IAnalyticalBackend;
62
+ user: IUser;
63
+ organization?: IOrganization;
64
+ organizationPermissions?: IOrganizationPermissions;
65
+ workspacePermissions?: IWorkspacePermissions;
66
+ entitlements?: IEntitlementDescriptor[];
67
+ userSettings: IUserSettings;
68
+ whiteLabeling: IWhiteLabeling | undefined;
69
+ preferredLocale?: ILocale;
70
+ pantherTier?: PantherTier;
71
+ theme?: ITheme;
72
+ currentPath?: string;
73
+ currentWorkspaceId?: string;
74
+ embeddingMode: EmbeddingMode;
75
+ }
76
+ /**
77
+ * Platform context contract.
78
+ *
79
+ * @alpha
80
+ */
81
+ export type IPlatformContext = IPlatformContextV1;
82
+ /**
83
+ * Type guard for {@link IPlatformContextV1}.
84
+ *
85
+ * @alpha
86
+ */
87
+ export declare function isPlatformContextV1(context: unknown): context is IPlatformContextV1;
88
+ //# sourceMappingURL=platformContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformContext.d.ts","sourceRoot":"","sources":["../src/platformContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,MAAM,EACd,MAAM,qBAAqB,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzD;;;;GAIG;AACH,oBAAY,WAAW;IACnB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACrC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,+BAA+B;IAC5C,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,KAAK,CAAC;IAEf,OAAO,EAAE,kBAAkB,CAAC;IAC5B,IAAI,EAAE,KAAK,CAAC;IACZ,YAAY,CAAC,EAAE,aAAa,CAAC;IAE7B,uBAAuB,CAAC,EAAE,wBAAwB,CAAC;IACnD,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAE7C,YAAY,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAExC,YAAY,EAAE,aAAa,CAAC;IAE5B,aAAa,EAAE,cAAc,GAAG,SAAS,CAAC;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,aAAa,EAAE,aAAa,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAElD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,kBAAkB,CAOnF"}
@@ -0,0 +1,27 @@
1
+ // (C) 2026 GoodData Corporation
2
+ export { PantherTier };
3
+ /**
4
+ * Panther tier.
5
+ *
6
+ * @alpha
7
+ */
8
+ var PantherTier;
9
+ (function (PantherTier) {
10
+ PantherTier["TRIAL"] = "TRIAL";
11
+ PantherTier["INTERNAL"] = "INTERNAL";
12
+ PantherTier["POC"] = "POC";
13
+ PantherTier["LABS"] = "LABS";
14
+ PantherTier["DEMO"] = "DEMO";
15
+ })(PantherTier || (PantherTier = {}));
16
+ /**
17
+ * Type guard for {@link IPlatformContextV1}.
18
+ *
19
+ * @alpha
20
+ */
21
+ export function isPlatformContextV1(context) {
22
+ return (typeof context === "object" &&
23
+ context !== null &&
24
+ "version" in context &&
25
+ context.version === "1.0");
26
+ }
27
+ //# sourceMappingURL=platformContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformContext.js","sourceRoot":"","sources":["../src/platformContext.ts"],"names":[],"mappings":"AAAA,gCAAgC;SAyBpB,WAAW;AALvB;;;;GAIG;AACH,IAAY,WAMX;AAND,WAAY,WAAW;IACnB,8BAAe,CAAA;IACf,oCAAqB,CAAA;IACrB,0BAAW,CAAA;IACX,4BAAa,CAAA;IACb,4BAAa,CAAA;AAAC,CAClB,EANY,WAAW,KAAX,WAAW,QAMtB;AA2ED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAiC;IACjF,OAAO,CACH,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,SAAS,IAAI,OAAO;QACnB,OAAiC,CAAC,OAAO,KAAK,KAAK,CACvD,CAAC;AAAA,CACL"}
@@ -0,0 +1,207 @@
1
+ /**
2
+ * Model contracts for pluggable application integration.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+
7
+ import { IAnalyticalBackend } from '@gooddata/sdk-backend-spi';
8
+ import { IEntitlementDescriptor } from '@gooddata/sdk-model';
9
+ import { ILocale } from '@gooddata/sdk-model';
10
+ import { ITheme } from '@gooddata/sdk-model';
11
+ import { IUser } from '@gooddata/sdk-model';
12
+ import { IUserSettings } from '@gooddata/sdk-backend-spi';
13
+ import { IWhiteLabeling } from '@gooddata/sdk-model';
14
+ import { IWorkspacePermissions } from '@gooddata/sdk-model';
15
+ import { ObjRef } from '@gooddata/sdk-model';
16
+
17
+ /**
18
+ * Pluggable application embedding mode.
19
+ *
20
+ * @alpha
21
+ */
22
+ export declare type EmbeddingMode = "none" | "iframe" | "export";
23
+
24
+ /**
25
+ * Mounted application instance.
26
+ *
27
+ * @alpha
28
+ */
29
+ export declare interface IAppInstance extends IPluggableApplicationMountHandle {
30
+ id: string;
31
+ }
32
+
33
+ export { ILocale }
34
+
35
+ /**
36
+ * Organization information available in the platform context.
37
+ *
38
+ * @alpha
39
+ */
40
+ export declare interface IOrganization {
41
+ id: string;
42
+ title?: string;
43
+ bootstrapUser?: ObjRef;
44
+ bootstrapUserGroup?: ObjRef;
45
+ identityProviderType?: string;
46
+ }
47
+
48
+ /**
49
+ * Organization-level permissions.
50
+ *
51
+ * @remarks
52
+ * There is no canonical org-permissions type in `@gooddata/sdk-model` today; this interface is intentionally minimal
53
+ * and expected to evolve.
54
+ *
55
+ * @alpha
56
+ */
57
+ export declare interface IOrganizationPermissions {
58
+ canManageOrganization?: boolean;
59
+ }
60
+
61
+ /**
62
+ * Platform context contract.
63
+ *
64
+ * @alpha
65
+ */
66
+ export declare type IPlatformContext = IPlatformContextV1;
67
+
68
+ /**
69
+ * Platform context contract version 1.0.
70
+ *
71
+ * @alpha
72
+ */
73
+ export declare interface IPlatformContextV1 {
74
+ version: "1.0";
75
+ backend: IAnalyticalBackend;
76
+ user: IUser;
77
+ organization?: IOrganization;
78
+ organizationPermissions?: IOrganizationPermissions;
79
+ workspacePermissions?: IWorkspacePermissions;
80
+ entitlements?: IEntitlementDescriptor[];
81
+ userSettings: IUserSettings;
82
+ whiteLabeling: IWhiteLabeling | undefined;
83
+ preferredLocale?: ILocale;
84
+ pantherTier?: PantherTier;
85
+ theme?: ITheme;
86
+ currentPath?: string;
87
+ currentWorkspaceId?: string;
88
+ embeddingMode: EmbeddingMode;
89
+ }
90
+
91
+ /**
92
+ * Pluggable application entrypoint.
93
+ *
94
+ * @alpha
95
+ */
96
+ export declare interface IPluggableApp {
97
+ mount: PluggableApplicationMount;
98
+ }
99
+
100
+ /**
101
+ * Event emitted by the pluggable application towards the host.
102
+ *
103
+ * @remarks
104
+ * The host is the single writer of the canonical platform context. Use these events to request changes;
105
+ * the host decides what (if anything) to apply and then pushes updated context down via the `updateContext` callback
106
+ * on the mounted instance.
107
+ *
108
+ * @alpha
109
+ */
110
+ export declare interface IPluggableAppEvent {
111
+ type: string;
112
+ payload?: unknown;
113
+ }
114
+
115
+ /**
116
+ * Handle returned from mount for lifecycle management and host -\> module interaction.
117
+ *
118
+ * @alpha
119
+ */
120
+ export declare interface IPluggableApplicationMountHandle {
121
+ /**
122
+ * Unmounts the pluggable application and releases all resources.
123
+ */
124
+ unmount(): void;
125
+ /**
126
+ * Updates context snapshot in the pluggable application.
127
+ *
128
+ * @remarks
129
+ * Host uses this to push down context changes after initial mount.
130
+ */
131
+ updateContext?: (ctx: IPlatformContext) => void;
132
+ }
133
+
134
+ /**
135
+ * Options passed by the host into a pluggable application's mount function.
136
+ *
137
+ * @alpha
138
+ */
139
+ export declare interface IPluggableApplicationMountOptions {
140
+ /**
141
+ * Unique application instance identifier.
142
+ */
143
+ id: string;
144
+ /**
145
+ * DOM element into which the pluggable application should render itself.
146
+ */
147
+ container: HTMLElement;
148
+ /**
149
+ * Platform context snapshot provided by the host.
150
+ */
151
+ ctx: IPlatformContext;
152
+ /**
153
+ * Base path under which the pluggable application should consider itself mounted.
154
+ *
155
+ * @example
156
+ * `/organization/someOrg/apps/someApp`
157
+ */
158
+ basePath: string;
159
+ /**
160
+ * Callback invoked by the pluggable application to emit events.
161
+ *
162
+ * @remarks
163
+ * The host remains the single writer of the canonical platform context; pluggable application emits events
164
+ * and host applies changes (if any) and publishes updated context via the `updateContext` callback on the mounted
165
+ * instance.
166
+ */
167
+ onEvent?: (e: IPluggableAppEvent) => void;
168
+ }
169
+
170
+ /**
171
+ * Navigation facade exposed to pluggable applications.
172
+ *
173
+ * @alpha
174
+ */
175
+ export declare interface IPluggableApplicationNavigation {
176
+ go(to: string): void;
177
+ openApp(id: string, path?: string): void;
178
+ }
179
+
180
+ /**
181
+ * Type guard for {@link IPlatformContextV1}.
182
+ *
183
+ * @alpha
184
+ */
185
+ export declare function isPlatformContextV1(context: unknown): context is IPlatformContextV1;
186
+
187
+ /**
188
+ * Panther tier.
189
+ *
190
+ * @alpha
191
+ */
192
+ export declare enum PantherTier {
193
+ TRIAL = "TRIAL",
194
+ INTERNAL = "INTERNAL",
195
+ POC = "POC",
196
+ LABS = "LABS",
197
+ DEMO = "DEMO"
198
+ }
199
+
200
+ /**
201
+ * Pluggable application mount function signature.
202
+ *
203
+ * @alpha
204
+ */
205
+ export declare type PluggableApplicationMount = (options: IPluggableApplicationMountOptions) => IPluggableApplicationMountHandle;
206
+
207
+ export { }
@@ -0,0 +1,11 @@
1
+ // This file is read by tools that parse documentation comments conforming to the TSDoc standard.
2
+ // It should be published with your NPM package. It should not be tracked by Git.
3
+ {
4
+ "tsdocVersion": "0.12",
5
+ "toolPackages": [
6
+ {
7
+ "packageName": "@microsoft/api-extractor",
8
+ "packageVersion": "7.55.2"
9
+ }
10
+ ]
11
+ }
package/package.json ADDED
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "@gooddata/sdk-pluggable-application-model",
3
+ "version": "11.25.0-alpha.2",
4
+ "description": "GoodData SDK model contracts for pluggable applications",
5
+ "license": "MIT",
6
+ "author": "GoodData Corporation",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/gooddata/gooddata-ui-sdk.git",
10
+ "directory": "libs/sdk-pluggable-application-model"
11
+ },
12
+ "files": [
13
+ "esm/**/*.js",
14
+ "esm/**/*.json",
15
+ "esm/**/*.d.ts",
16
+ "esm/**/*.map"
17
+ ],
18
+ "type": "module",
19
+ "sideEffects": false,
20
+ "browser": "./esm/index.js",
21
+ "types": "./esm/index.d.ts",
22
+ "exports": "./esm/index.js",
23
+ "dependencies": {
24
+ "ts-invariant": "0.10.3",
25
+ "tslib": "2.8.1",
26
+ "@gooddata/sdk-backend-spi": "11.25.0-alpha.2",
27
+ "@gooddata/sdk-model": "11.25.0-alpha.2"
28
+ },
29
+ "devDependencies": {
30
+ "@microsoft/api-documenter": "^7.17.0",
31
+ "@microsoft/api-extractor": "^7.55.2",
32
+ "@types/node": "22.13.0",
33
+ "@typescript-eslint/eslint-plugin": "8.52.0",
34
+ "@typescript-eslint/parser": "8.52.0",
35
+ "@typescript/native-preview": "7.0.0-dev.20260202.1",
36
+ "dependency-cruiser": "^14.1.2",
37
+ "eslint": "^9.39.2",
38
+ "eslint-import-resolver-typescript": "4.4.4",
39
+ "eslint-plugin-headers": "1.3.3",
40
+ "eslint-plugin-import-esm": "1.2.1",
41
+ "eslint-plugin-import-x": "4.16.1",
42
+ "eslint-plugin-jsdoc": "62.1.0",
43
+ "eslint-plugin-no-barrel-files": "1.2.2",
44
+ "eslint-plugin-sonarjs": "3.0.6",
45
+ "npm-run-all": "^4.1.5",
46
+ "oxfmt": "0.27.0",
47
+ "oxlint": "^1.43.0",
48
+ "oxlint-tsgolint": "0.11.4",
49
+ "typescript": "5.9.3",
50
+ "vitest": "4.0.8",
51
+ "@gooddata/eslint-config": "11.25.0-alpha.2",
52
+ "@gooddata/oxlint-config": "11.25.0-alpha.2"
53
+ },
54
+ "scripts": {
55
+ "_phase:build": "npm run build",
56
+ "_phase:test": "echo \"No tests for @gooddata/sdk-pluggable-application-model\"",
57
+ "_phase:validate": "npm run validate",
58
+ "api-extractor": "mkdir -p api && [ -z \"${CI}\" ] && (api-extractor run -l) || (api-extractor run)",
59
+ "build": "npm-run-all -p build-check build-ts && npm run api-extractor",
60
+ "build-check": "tsgo",
61
+ "build-ts": "tsgo -p tsconfig.build.json",
62
+ "clean": "../../common/scripts/clean-command-state.sh && rm -rf ci dist esm coverage *.log tsconfig.tsbuildinfo",
63
+ "dep-cruiser": "depcruise --validate .dependency-cruiser.cjs --output-type err-long src/",
64
+ "format-check": "oxfmt --check .",
65
+ "format-write": "oxfmt .",
66
+ "lint": "oxlint . --type-aware --quiet && eslint .",
67
+ "lint-fix": "oxlint . --type-aware --quiet --fix && eslint . --fix",
68
+ "test": "vitest watch",
69
+ "test-once": "vitest run --passWithNoTests",
70
+ "validate": "npm run lint && npm run dep-cruiser && npm run format-check",
71
+ "validate-esm": "node --input-type=module --eval 'import \"@gooddata/sdk-pluggable-application-model\"'"
72
+ }
73
+ }