@contrail/extensions-sdk 1.0.16 → 1.0.18-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,6 +9,7 @@ export interface AppContext {
9
9
  appContext?: {
10
10
  plan?: PlanContext;
11
11
  board?: BoardContext;
12
+ showcase?: ShowcaseContext;
12
13
  selectedElements?: any[];
13
14
  vibeIQApp?: VibeIQAppType;
14
15
  };
@@ -50,6 +51,10 @@ export interface BoardContext {
50
51
  typeId?: string;
51
52
  workspaceId?: string;
52
53
  }
54
+ export interface ShowcaseContext {
55
+ currentFrame?: any;
56
+ frames?: any[];
57
+ }
53
58
  export declare const CONTEXT: AppContext;
54
59
  export declare function setAppContext(context: AppContext): void;
55
60
  export declare function getAppContext(): AppContext;
@@ -28,6 +28,7 @@ export declare type FrameFromTemplateParams = {
28
28
  x: number;
29
29
  y: number;
30
30
  };
31
+ name?: string;
31
32
  };
32
33
  frameTemplateId?: never;
33
34
  } | {
@@ -37,6 +38,7 @@ export declare type FrameFromTemplateParams = {
37
38
  x: number;
38
39
  y: number;
39
40
  };
41
+ name?: string;
40
42
  };
41
43
  frameTemplate?: never;
42
44
  };
@@ -1,3 +1,3 @@
1
- export { getAppContext, AppContext, BoardContext, PlanContext, VibeIQAppType } from './app-context';
1
+ export { getAppContext, AppContext, BoardContext, PlanContext, ShowcaseContext, VibeIQAppType } from './app-context';
2
2
  export * from './boards';
3
3
  export * from './plan';
@@ -1,7 +1,12 @@
1
1
  export declare class AppExtension {
2
2
  private static initPromiseResolver;
3
+ private static contextUpdateCallbacks;
4
+ private static messageListener;
3
5
  static registerAppExtension(): Promise<void>;
4
6
  private static getExtensionActions;
5
7
  private static initAppExtension;
6
8
  static close(): void;
9
+ private static setupContextUpdateListener;
10
+ static onContextUpdate(callback: () => void): () => void;
11
+ static cleanup(): void;
7
12
  }
@@ -23,6 +23,7 @@ class AppExtension {
23
23
  const hostApp = yield connection.promise;
24
24
  console.log('[AppExtension] Connected to host app.');
25
25
  (0, actions_1.setExtensionActions)(hostApp);
26
+ AppExtension.setupContextUpdateListener();
26
27
  yield new Promise((resolve) => {
27
28
  AppExtension.initPromiseResolver = resolve;
28
29
  });
@@ -52,6 +53,45 @@ class AppExtension {
52
53
  static close() {
53
54
  (0, actions_1.getExtensionActions)().close();
54
55
  }
56
+ static setupContextUpdateListener() {
57
+ if (AppExtension.messageListener) {
58
+ return;
59
+ }
60
+ AppExtension.messageListener = (event) => {
61
+ var _a, _b, _c;
62
+ if (((_a = event.data) === null || _a === void 0 ? void 0 : _a.type) === 'vibeiq:context_update' && ((_b = event.data) === null || _b === void 0 ? void 0 : _b.appContext)) {
63
+ const existing = (0, app_context_1.getAppContext)();
64
+ (0, app_context_1.setAppContext)(Object.assign(Object.assign({}, existing), { appContext: Object.assign(Object.assign({}, ((_c = existing.appContext) !== null && _c !== void 0 ? _c : {})), event.data.appContext) }));
65
+ AppExtension.contextUpdateCallbacks.forEach((callback) => {
66
+ try {
67
+ callback();
68
+ }
69
+ catch (error) {
70
+ console.error('[AppExtension] Error in context update callback:', error);
71
+ }
72
+ });
73
+ }
74
+ };
75
+ window.addEventListener('message', AppExtension.messageListener);
76
+ }
77
+ static onContextUpdate(callback) {
78
+ AppExtension.contextUpdateCallbacks.push(callback);
79
+ return () => {
80
+ const index = AppExtension.contextUpdateCallbacks.indexOf(callback);
81
+ if (index > -1) {
82
+ AppExtension.contextUpdateCallbacks.splice(index, 1);
83
+ }
84
+ };
85
+ }
86
+ static cleanup() {
87
+ if (AppExtension.messageListener) {
88
+ window.removeEventListener('message', AppExtension.messageListener);
89
+ AppExtension.messageListener = null;
90
+ }
91
+ AppExtension.contextUpdateCallbacks = [];
92
+ }
55
93
  }
56
94
  exports.AppExtension = AppExtension;
57
95
  AppExtension.initPromiseResolver = null;
96
+ AppExtension.contextUpdateCallbacks = [];
97
+ AppExtension.messageListener = null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contrail/extensions-sdk",
3
- "version": "1.0.16",
3
+ "version": "1.0.18-0",
4
4
  "description": "Client library for interfacing with VibeIQ's services and apps from an extension.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",