@octostar/platform-api 0.5.4 → 0.5.5

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.
@@ -1,8 +1,15 @@
1
+ import { AIClient } from '@octostar/platform-types';
2
+ import { ChatModel } from '@octostar/platform-types';
1
3
  import { Concept } from '@octostar/platform-types';
2
4
  import { ContextMenuRequest } from '@octostar/platform-types';
3
5
  import { Desktop } from '@octostar/platform-types';
4
6
  import { Entity } from '@octostar/platform-types';
7
+ import { ExtrasApi } from '@octostar/platform-types';
5
8
  import { Ontology } from '@octostar/platform-types';
9
+ import { OsAPIClient } from '@octostar/platform-types';
10
+ import { PromptOptions } from '@octostar/platform-types';
11
+ import { RemoteAppApi } from '@octostar/platform-types';
12
+ import { SavedSearchAPIInterface } from '@octostar/platform-types';
6
13
  import { TagWithRelationship } from '@octostar/platform-types';
7
14
  import { WorkspaceItem } from '@octostar/platform-types';
8
15
 
@@ -25,17 +32,27 @@ export declare abstract class AbstractContextMenu extends HTMLElement {
25
32
  private publishRequest;
26
33
  }
27
34
 
35
+ export declare class AIClientImpl implements AIClient {
36
+ private osAPIClient;
37
+ private models;
38
+ constructor(osAPIClient: OsAPIClient);
39
+ getChatModels(): Promise<ChatModel[]>;
40
+ prompt(prompt: string, options?: PromptOptions): Promise<string>;
41
+ }
42
+
28
43
  /**
29
44
  * @beta
30
45
  * All permissions.
31
46
  */
32
47
  export declare const ALL_PERMISSIONS = "all";
33
48
 
49
+ export declare const ALL_PERMISSIONS_ARRAY: string[];
50
+
34
51
  /**
35
52
  * @beta
36
53
  * API names.
37
54
  */
38
- export declare const apiNames: Record<"desktop", "octostar:api-names:desktop"> & Record<"ontology", "octostar:api-names:ontology"> & Record<"context", "octostar:api-names:context">;
55
+ export declare const apiNames: Record<"desktop", "octostar:api-names:desktop"> & Record<"ontology", "octostar:api-names:ontology"> & Record<"context", "octostar:api-names:context"> & Record<"extras", "octostar:api-names:extras"> & Record<"remoteApp", "octostar:api-names:remoteApp"> & Record<"savedSearch", "octostar:api-names:savedSearch">;
39
56
 
40
57
  declare type BasePostResponsePayload<D, E> = {
41
58
  data: D;
@@ -71,7 +88,7 @@ declare type CreateMessageNamesResult<N, M> = M extends readonly [infer F, ...in
71
88
  * @beta
72
89
  * Create a set of message names with a namespace.
73
90
  */
74
- export declare const createPrefixesConstants: <N extends string, M extends readonly [string, ...string[]]>(namespace: N, messages: M) => CreateMessageNamesResult<N, M>;
91
+ export declare const createPrefixesConstants: <N extends string, M extends readonly [string, ...string[]]>(namespace: N, messages: M, channelId?: string) => CreateMessageNamesResult<N, M>;
75
92
 
76
93
  /**
77
94
  * @beta
@@ -102,6 +119,8 @@ export declare type ErrorPostResponsePayload = BasePostResponsePayload<null, {
102
119
  message: string;
103
120
  }>;
104
121
 
122
+ export declare const extrasApi: () => EnsureMethodsReturnPromise<ExtrasApi>;
123
+
105
124
  /**
106
125
  * @beta
107
126
  * Get the context API asynchronously.
@@ -120,6 +139,14 @@ export declare const getDesktopApi: () => Promise<EnsureMethodsReturnPromise<Des
120
139
  */
121
140
  export declare const getOntologyApi: () => Promise<EnsureMethodsReturnPromise<Ontology>>;
122
141
 
142
+ export declare const getOrCreateUsersPrivateWorkspaceRecord: (desktop: Desktop, ontology: Ontology) => Promise<WorkspaceItem>;
143
+
144
+ /**
145
+ * @beta
146
+ * Message names for post messages.
147
+ */
148
+ export declare const getPostMessageNames: (channelId: string) => Record<"get_api", "octostar:post-messages:get_api">;
149
+
123
150
  /**
124
151
  * @beta
125
152
  * Type representing a message value.
@@ -128,6 +155,19 @@ export declare type GetRemoteApiParams = {
128
155
  name: string;
129
156
  };
130
157
 
158
+ export declare class JWTProvider implements TokenProvider {
159
+ private token;
160
+ private decoded;
161
+ private tokenProvider;
162
+ private expiresThreshold;
163
+ constructor(tokenProvider: TokenProvider, expiresThreshold?: number);
164
+ private fetchToken;
165
+ private isExpiredOrExpiringSoon;
166
+ getToken(): Promise<string>;
167
+ }
168
+
169
+ export declare const makeProxy: <T extends object>(obj: T, excludeKeys?: (keyof T)[]) => Record<string, any>;
170
+
131
171
  declare type MessageValue<N, M> = `${N & string}:${M & string}`;
132
172
 
133
173
  /**
@@ -258,12 +298,6 @@ export declare class OsTagsContextMenu extends AbstractContextMenu {
258
298
  private update;
259
299
  }
260
300
 
261
- /**
262
- * @beta
263
- * Message names for post messages.
264
- */
265
- export declare const postMessageNames: Record<"get_api", "octostar:post-messages:get_api">;
266
-
267
301
  /**
268
302
  * @beta
269
303
  * Type representing a POST request.
@@ -303,6 +337,8 @@ export declare type RemoteApiError = Error & {
303
337
  originalError: Error;
304
338
  };
305
339
 
340
+ export declare const remoteAppApi: () => EnsureMethodsReturnPromise<RemoteAppApi>;
341
+
306
342
  /**
307
343
  * @beta
308
344
  * Retry a function until it succeeds or the maximum number of attempts is reached.
@@ -318,6 +354,8 @@ declare type RetryOptions = {
318
354
  retryInterval?: number;
319
355
  };
320
356
 
357
+ export declare const savedSearchApi: () => EnsureMethodsReturnPromise<SavedSearchAPIInterface>;
358
+
321
359
  /**
322
360
  * @beta
323
361
  * Type representing a POST response payload with a success.
@@ -338,4 +376,8 @@ export declare class TagDots extends HTMLElement {
338
376
  render(): Promise<void>;
339
377
  }
340
378
 
379
+ export declare interface TokenProvider {
380
+ getToken(): Promise<string>;
381
+ }
382
+
341
383
  export { }
package/lib/apis.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Desktop, Ontology } from '@octostar/platform-types';
1
+ import { Desktop, Ontology, ExtrasApi, RemoteAppApi, SavedSearchAPIInterface } from '@octostar/platform-types';
2
2
  import { ContextApi, EnsureMethodsReturnPromise } from './types';
3
3
  /**
4
4
  * @beta
@@ -6,6 +6,9 @@ import { ContextApi, EnsureMethodsReturnPromise } from './types';
6
6
  * For asynchronous access, use {@link getDesktopApi}.
7
7
  */
8
8
  export declare const desktopApi: () => EnsureMethodsReturnPromise<Desktop>;
9
+ export declare const extrasApi: () => EnsureMethodsReturnPromise<ExtrasApi>;
10
+ export declare const remoteAppApi: () => EnsureMethodsReturnPromise<RemoteAppApi>;
11
+ export declare const savedSearchApi: () => EnsureMethodsReturnPromise<SavedSearchAPIInterface>;
9
12
  /**
10
13
  * @beta
11
14
  * Provides access to the ontology API.
package/lib/apis.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"apis.d.ts","sourceRoot":"","sources":["../src/apis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAuBjE;;;;GAIG;AACH,eAAO,MAAM,UAAU,2CACwC,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,WAAW,4CACwC,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,UAAU,uDACwC,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,aAAa,oDACoB,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,cAAc,qDACqB,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,aAAa,gEACoB,CAAC"}
1
+ {"version":3,"file":"apis.d.ts","sourceRoot":"","sources":["../src/apis.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAsCjE;;;;GAIG;AACH,eAAO,MAAM,UAAU,2CACwC,CAAC;AAEhE,eAAO,MAAM,SAAS,6CACwC,CAAC;AAE/D,eAAO,MAAM,YAAY,gDACwC,CAAC;AAElE,eAAO,MAAM,cAAc,2DACwC,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,WAAW,4CACwC,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,UAAU,uDACwC,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,aAAa,oDACoB,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,cAAc,qDACqB,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,aAAa,gEACoB,CAAC"}
package/lib/apis.js CHANGED
@@ -23,6 +23,15 @@ const apisLocator = AsyncServiceLocator.getInstance('platform-api', {
23
23
  // TODO: clarify about the context type
24
24
  createRemoteApiHandle({
25
25
  name: apiNames.context,
26
+ }))
27
+ .registerService('extras', () => createRemoteApiHandle({
28
+ name: apiNames.extras,
29
+ }))
30
+ .registerService('remoteApp', () => createRemoteApiHandle({
31
+ name: apiNames.remoteApp,
32
+ }))
33
+ .registerService('savedSearch', () => createRemoteApiHandle({
34
+ name: apiNames.savedSearch,
26
35
  }));
27
36
  /**
28
37
  * @beta
@@ -30,6 +39,9 @@ createRemoteApiHandle({
30
39
  * For asynchronous access, use {@link getDesktopApi}.
31
40
  */
32
41
  export const desktopApi = () => forwardCallsToFutureObject(apisLocator.getService('desktop'));
42
+ export const extrasApi = () => forwardCallsToFutureObject(apisLocator.getService('extras'));
43
+ export const remoteAppApi = () => forwardCallsToFutureObject(apisLocator.getService('remoteApp'));
44
+ export const savedSearchApi = () => forwardCallsToFutureObject(apisLocator.getService('savedSearch'));
33
45
  /**
34
46
  * @beta
35
47
  * Provides access to the ontology API.
package/lib/apis.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"apis.js","sourceRoot":"","sources":["../src/apis.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAE9E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,cAAc,EAAE;IAClE,KAAK,EAAE,KAAK;CACb,CAAC;KACC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,CAC/B,qBAAqB,CAAsC;IACzD,IAAI,EAAE,QAAQ,CAAC,OAAO;CACvB,CAAC,CACH;KACA,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,CAChC,qBAAqB,CAAuC;IAC1D,IAAI,EAAE,QAAQ,CAAC,QAAQ;CACxB,CAAC,CACH;KACA,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE;AAC/B,uCAAuC;AACvC,qBAAqB,CAAkD;IACrE,IAAI,EAAE,QAAQ,CAAC,OAAO;CACvB,CAAC,CACH,CAAC;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAC7B,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAEhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAC9B,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAC7B,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAEhE;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAS,EAAE,kDACtC,OAAA,WAAW,CAAC,UAAU,CAAY,SAAS,CAAC,CAAA,GAAA,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAS,EAAE,kDACvC,OAAA,WAAW,CAAC,UAAU,CAAa,UAAU,CAAC,CAAA,GAAA,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAS,EAAE,kDACtC,OAAA,WAAW,CAAC,UAAU,CAAY,SAAS,CAAC,CAAA,GAAA,CAAC"}
1
+ {"version":3,"file":"apis.js","sourceRoot":"","sources":["../src/apis.ts"],"names":[],"mappings":";;;;;;;;;AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAE9E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,cAAc,EAAE;IAClE,KAAK,EAAE,KAAK;CACb,CAAC;KACC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,CAC/B,qBAAqB,CAAsC;IACzD,IAAI,EAAE,QAAQ,CAAC,OAAO;CACvB,CAAC,CACH;KACA,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,CAChC,qBAAqB,CAAuC;IAC1D,IAAI,EAAE,QAAQ,CAAC,QAAQ;CACxB,CAAC,CACH;KACA,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE;AAC/B,uCAAuC;AACvC,qBAAqB,CAAkD;IACrE,IAAI,EAAE,QAAQ,CAAC,OAAO;CACvB,CAAC,CACH;KACA,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,CAC9B,qBAAqB,CAAwC;IAC3D,IAAI,EAAE,QAAQ,CAAC,MAAM;CACtB,CAAC,CACH;KACA,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE,CACjC,qBAAqB,CAA2C;IAC9D,IAAI,EAAE,QAAQ,CAAC,SAAS;CACzB,CAAC,CACH;KACA,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE,CACnC,qBAAqB,CAAsD;IACzE,IAAI,EAAE,QAAQ,CAAC,WAAW;CAC3B,CAAC,CACH,CAAC;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAC7B,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAC5B,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAC/B,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CACjC,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;AAEpE;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAC9B,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAC7B,0BAA0B,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAEhE;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAS,EAAE,kDACtC,OAAA,WAAW,CAAC,UAAU,CAAY,SAAS,CAAC,CAAA,GAAA,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAS,EAAE,kDACvC,OAAA,WAAW,CAAC,UAAU,CAAa,UAAU,CAAC,CAAA,GAAA,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAS,EAAE,kDACtC,OAAA,WAAW,CAAC,UAAU,CAAY,SAAS,CAAC,CAAA,GAAA,CAAC"}
@@ -4,16 +4,16 @@ type CreateMessageNamesResult<N, M> = M extends readonly [infer F, ...infer R] ?
4
4
  * @beta
5
5
  * Create a set of message names with a namespace.
6
6
  */
7
- export declare const createPrefixesConstants: <N extends string, M extends readonly [string, ...string[]]>(namespace: N, messages: M) => CreateMessageNamesResult<N, M>;
7
+ export declare const createPrefixesConstants: <N extends string, M extends readonly [string, ...string[]]>(namespace: N, messages: M, channelId?: string) => CreateMessageNamesResult<N, M>;
8
8
  /**
9
9
  * @beta
10
10
  * Message names for post messages.
11
11
  */
12
- export declare const postMessageNames: Record<"get_api", "octostar:post-messages:get_api">;
12
+ export declare const getPostMessageNames: (channelId: string) => Record<"get_api", "octostar:post-messages:get_api">;
13
13
  /**
14
14
  * @beta
15
15
  * API names.
16
16
  */
17
- export declare const apiNames: Record<"desktop", "octostar:api-names:desktop"> & Record<"ontology", "octostar:api-names:ontology"> & Record<"context", "octostar:api-names:context">;
17
+ export declare const apiNames: Record<"desktop", "octostar:api-names:desktop"> & Record<"ontology", "octostar:api-names:ontology"> & Record<"context", "octostar:api-names:context"> & Record<"extras", "octostar:api-names:extras"> & Record<"remoteApp", "octostar:api-names:remoteApp"> & Record<"savedSearch", "octostar:api-names:savedSearch">;
18
18
  export {};
19
19
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;AAExD,KAAK,wBAAwB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAC1E,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvE,EAAE,CAAC;AAEP;;;GAGG;AACH,eAAO,MAAM,uBAAuB,2HAcnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,qDAG5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,uJAIV,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;AAExD,KAAK,wBAAwB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAC1E,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvE,EAAE,CAAC;AAEP;;;GAGG;AACH,eAAO,MAAM,uBAAuB,sGAMtB,MAAM,mCAWnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,cAAe,MAAM,wDAKlD,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,QAAQ,uTAWpB,CAAC"}
package/lib/constants.js CHANGED
@@ -2,10 +2,12 @@
2
2
  * @beta
3
3
  * Create a set of message names with a namespace.
4
4
  */
5
- export const createPrefixesConstants = (namespace, messages) => {
5
+ export const createPrefixesConstants = (namespace, messages, channelId) => {
6
6
  const result = {};
7
7
  messages.forEach(message => {
8
- result[message] = `${namespace}:${message}`;
8
+ result[message] = channelId
9
+ ? `${namespace}:${channelId}:${message}`
10
+ : `${namespace}:${message}`;
9
11
  });
10
12
  return result;
11
13
  };
@@ -13,7 +15,7 @@ export const createPrefixesConstants = (namespace, messages) => {
13
15
  * @beta
14
16
  * Message names for post messages.
15
17
  */
16
- export const postMessageNames = createPrefixesConstants('octostar:post-messages', ['get_api']);
18
+ export const getPostMessageNames = (channelId) => createPrefixesConstants('octostar:post-messages', ['get_api'], channelId);
17
19
  /**
18
20
  * @beta
19
21
  * API names.
@@ -22,7 +24,10 @@ export const apiNames = createPrefixesConstants('octostar:api-names', [
22
24
  'desktop',
23
25
  'ontology',
24
26
  'context',
25
- ]);
27
+ 'extras',
28
+ 'remoteApp',
29
+ 'savedSearch',
30
+ ], undefined);
26
31
  // test
27
32
  // const v = messages.get_api;
28
33
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAIrC,SAAY,EACZ,QAAW,EACqB,EAAE;IAClC,MAAM,MAAM,GAA+C,EAAE,CAAC;IAE9D,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACzB,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,OAAO,MAAwC,CAAC;AAClD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CACrD,wBAAwB,EACxB,CAAC,SAAS,CAAU,CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,oBAAoB,EAAE;IACpE,SAAS;IACT,UAAU;IACV,SAAS;CACD,CAAC,CAAC;AAEZ,OAAO;AACP,8BAA8B"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAIrC,SAAY,EACZ,QAAW,EACX,SAAkB,EACc,EAAE;IAClC,MAAM,MAAM,GAA+C,EAAE,CAAC;IAE9D,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACzB,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS;YACzB,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,IAAI,OAAO,EAAE;YACxC,CAAC,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAwC,CAAC;AAClD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAE,EAAE,CACvD,uBAAuB,CACrB,wBAAwB,EACxB,CAAC,SAAS,CAAU,EACpB,SAAS,CACV,CAAC;AAEJ;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,uBAAuB,CAC7C,oBAAoB,EACpB;IACE,SAAS;IACT,UAAU;IACV,SAAS;IACT,QAAQ;IACR,WAAW;IACX,aAAa;CACL,EACV,SAAS,CACV,CAAC;AAEF,OAAO;AACP,8BAA8B"}
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAGnB,MAAM,SAAS,CAAC;AA0FjB,eAAO,MAAM,qBAAqB,6BACxB,kBAAkB,eAgB3B,CAAC;AAEF,eAAO,MAAM,0BAA0B,6BAS/B,CAAC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAGnB,MAAM,SAAS,CAAC;AA+JjB,eAAO,MAAM,qBAAqB,6BACxB,kBAAkB,eAmC3B,CAAC;AAEF,eAAO,MAAM,0BAA0B,6BAS/B,CAAC"}
package/lib/factory.js CHANGED
@@ -9,9 +9,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import postRobot from 'post-robot';
11
11
  import { retry } from './utils';
12
- import { postMessageNames } from './constants';
12
+ import { getPostMessageNames } from './constants';
13
13
  const hasParent = (window) => window.parent !== window;
14
- function getOctostarWindow(currentWindow = window, depth = 0) {
14
+ function getOctostarWindow(channelId, currentWindow = window, depth = 0) {
15
15
  // Check all iframes in the current window
16
16
  let iframes;
17
17
  try {
@@ -24,8 +24,7 @@ function getOctostarWindow(currentWindow = window, depth = 0) {
24
24
  for (let i = 0; i < iframes.length; i += 1) {
25
25
  const iframe = iframes[i];
26
26
  if (iframe.getAttribute('data-octostar-iframe') === 'true' &&
27
- new URL(iframe.baseURI).pathname === '/octostar/' // TODO: this is fragileremove this once we have a better way to check if the iframe is from Octostar
28
- ) {
27
+ iframe.getAttribute('data-octostar-iframe-channel') === channelId) {
29
28
  return currentWindow;
30
29
  }
31
30
  }
@@ -40,8 +39,7 @@ function getOctostarWindow(currentWindow = window, depth = 0) {
40
39
  throw new Error('Max depth reached. Octostar window not found.');
41
40
  }
42
41
  // If not found, continue searching in the parent window
43
- // @ts-ignore
44
- return getOctostarWindow(currentWindow.parent, depth + 1);
42
+ return getOctostarWindow(channelId, currentWindow.parent, depth + 1);
45
43
  }
46
44
  const handlePostResponse = (response) => {
47
45
  if (response.data.error) {
@@ -75,16 +73,88 @@ const createObjectProxy = (value, options) => new Proxy(value, {
75
73
  return target[prop];
76
74
  },
77
75
  });
76
+ function tryFetchingFomAttributes(currentWindow) {
77
+ try {
78
+ const iframes = currentWindow.parent.document.getElementsByTagName('iframe');
79
+ // eslint-disable-next-line no-restricted-syntax
80
+ for (const iframe of iframes) {
81
+ if (iframe.contentWindow === currentWindow) {
82
+ const channelId = iframe.getAttribute('data-octostar-iframe-channel');
83
+ if (channelId) {
84
+ console.log(`PostRobot: Setting channelId from iframe attribute ${channelId}`);
85
+ window.octostarChannelId = channelId;
86
+ return channelId;
87
+ }
88
+ }
89
+ }
90
+ return undefined;
91
+ }
92
+ catch (e) {
93
+ // Ignore errors, maybe cross-origin iframes
94
+ return undefined;
95
+ }
96
+ }
97
+ function traverseForChannelId(currentWindow = window, depth = 0) {
98
+ // Prevent infinite loops or excessive searching
99
+ if (depth > 25) {
100
+ throw new Error('PostRobot: Max depth reached. octostarChannelId not found.');
101
+ }
102
+ if (currentWindow.octostarChannelId) {
103
+ return currentWindow.octostarChannelId;
104
+ }
105
+ try {
106
+ if (currentWindow.location.search) {
107
+ const urlParams = new URLSearchParams(currentWindow.location.search);
108
+ const channelId = urlParams.get('octostarChannelId');
109
+ if (channelId) {
110
+ console.log(`PostRobot: Setting channelId from queryParams ${channelId}`);
111
+ window.octostarChannelId = channelId;
112
+ return channelId;
113
+ }
114
+ }
115
+ else {
116
+ const channelId = tryFetchingFomAttributes(currentWindow);
117
+ if (channelId) {
118
+ return channelId;
119
+ }
120
+ }
121
+ return traverseForChannelId(currentWindow.parent, depth + 1);
122
+ }
123
+ catch (e) {
124
+ console.error(e);
125
+ return undefined;
126
+ }
127
+ }
128
+ window.addEventListener('message', event => {
129
+ var _a;
130
+ if (((_a = event.data) === null || _a === void 0 ? void 0 : _a.type) === 'SET_CHANNEL_ID') {
131
+ window.octostarChannelId = event.data.channelId;
132
+ console.log('PostRobot: received channelId', event.data.channelId);
133
+ }
134
+ });
78
135
  export const createRemoteApiHandle = (params) => __awaiter(void 0, void 0, void 0, function* () {
79
- const topWindow = getOctostarWindow();
80
- const response = yield retry(() => postRobot.send(topWindow, postMessageNames.get_api, params), {
81
- maxAttempts: 5,
82
- retryInterval: 2000,
83
- });
84
- const api = handlePostResponse(response);
85
- return createObjectProxy(api, {
86
- name: params.name,
87
- });
136
+ const channelId = traverseForChannelId();
137
+ const octostarWindow = getOctostarWindow(channelId);
138
+ if (!channelId) {
139
+ console.error('PostRobot: No channelId found', channelId);
140
+ }
141
+ console.log(`PostRobot: Trying to get handle ${channelId}`);
142
+ const topic = getPostMessageNames(channelId).get_api;
143
+ try {
144
+ const response = yield retry(() => postRobot.send(octostarWindow, topic, params), {
145
+ maxAttempts: 5,
146
+ retryInterval: 2000,
147
+ });
148
+ console.log(`PostRobot: Got remote api handle for ${params.name} on ${channelId}`);
149
+ const api = handlePostResponse(response);
150
+ return createObjectProxy(api, {
151
+ name: params.name,
152
+ });
153
+ }
154
+ catch (e) {
155
+ console.log(`PostRobot: Error while trying to create remote API handle on ${topic}`, e);
156
+ throw e;
157
+ }
88
158
  });
89
159
  export const forwardCallsToFutureObject = (chain) => new Proxy({}, {
90
160
  get: (target, prop) => new Proxy(() => { }, {
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -4,4 +4,8 @@ export * from './constants';
4
4
  export * from './utils';
5
5
  export * from './permissions';
6
6
  export * from './components';
7
+ export * from './lib/JWTProvider';
8
+ export * from './lib/AIClientImpl';
9
+ export * from './lib/Proxy';
10
+ export * from './lib/userWorkspace';
7
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC"}
package/lib/index.js CHANGED
@@ -4,4 +4,8 @@ export * from './constants';
4
4
  export * from './utils';
5
5
  export * from './permissions';
6
6
  export * from './components';
7
+ export * from './lib/JWTProvider';
8
+ export * from './lib/AIClientImpl';
9
+ export * from './lib/Proxy';
10
+ export * from './lib/userWorkspace';
7
11
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { AIClient, ChatModel, OsAPIClient, PromptOptions } from '@octostar/platform-types';
2
+ export declare class AIClientImpl implements AIClient {
3
+ private osAPIClient;
4
+ private models;
5
+ constructor(osAPIClient: OsAPIClient);
6
+ getChatModels(): Promise<ChatModel[]>;
7
+ prompt(prompt: string, options?: PromptOptions): Promise<string>;
8
+ }
9
+ //# sourceMappingURL=AIClientImpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIClientImpl.d.ts","sourceRoot":"","sources":["../../src/lib/AIClientImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAER,SAAS,EACT,WAAW,EACX,aAAa,EACd,MAAM,0BAA0B,CAAC;AAElC,qBAAa,YAAa,YAAW,QAAQ;IAC3C,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,MAAM,CAA0B;gBAE5B,WAAW,EAAE,WAAW;IAI9B,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IASrC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;CAyBvE"}
@@ -0,0 +1,52 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ export class AIClientImpl {
11
+ constructor(osAPIClient) {
12
+ this.osAPIClient = osAPIClient;
13
+ }
14
+ getChatModels() {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ if (!this.models) {
17
+ this.models = yield this.osAPIClient.fetchData({
18
+ endpoint: '/api/v1/chat/models',
19
+ });
20
+ }
21
+ return this.models;
22
+ });
23
+ }
24
+ prompt(prompt, options) {
25
+ var _a, _b, _c;
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const model = (options === null || options === void 0 ? void 0 : options.model) || ((_a = (yield this.getChatModels())[0]) === null || _a === void 0 ? void 0 : _a.model_name);
28
+ const enableRag = (_b = options === null || options === void 0 ? void 0 : options.enableRag) !== null && _b !== void 0 ? _b : true; // getPreference is not available to this package.
29
+ // TODO: Streaming is not supported yet.
30
+ const chatMessage = yield this.osAPIClient.fetchData({
31
+ endpoint: '/api/v1/chat',
32
+ method: 'POST',
33
+ headers: {
34
+ 'Content-Type': 'application/json',
35
+ },
36
+ body: JSON.stringify({
37
+ model_name: model,
38
+ prompt,
39
+ api_key: (options === null || options === void 0 ? void 0 : options.apiKey) || '',
40
+ streaming: false,
41
+ enable_rag: enableRag,
42
+ cohere_key: (options === null || options === void 0 ? void 0 : options.cohereKey) || '',
43
+ }),
44
+ });
45
+ if ((_c = chatMessage.response) === null || _c === void 0 ? void 0 : _c.content) {
46
+ return chatMessage.response.content;
47
+ }
48
+ return chatMessage.content;
49
+ });
50
+ }
51
+ }
52
+ //# sourceMappingURL=AIClientImpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIClientImpl.js","sourceRoot":"","sources":["../../src/lib/AIClientImpl.ts"],"names":[],"mappings":";;;;;;;;;AAQA,MAAM,OAAO,YAAY;IAKvB,YAAY,WAAwB;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAEK,aAAa;;YACjB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAc;oBAC1D,QAAQ,EAAE,qBAAqB;iBAChC,CAAC,CAAC;aACJ;YACD,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;KAAA;IAEK,MAAM,CAAC,MAAc,EAAE,OAAuB;;;YAClD,MAAM,KAAK,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,MAAI,MAAA,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,0CAAE,UAAU,CAAA,CAAC;YAC5E,MAAM,SAAS,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,IAAI,CAAC,CAAC,kDAAkD;YAEhG,wCAAwC;YACxC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAc;gBAChE,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,UAAU,EAAE,KAAK;oBACjB,MAAM;oBACN,OAAO,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,EAAE;oBAC9B,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE,SAAS;oBACrB,UAAU,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,KAAI,EAAE;iBACrC,CAAC;aACH,CAAC,CAAC;YACH,IAAI,MAAC,WAAmB,CAAC,QAAQ,0CAAE,OAAO,EAAE;gBAC1C,OAAQ,WAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;aAC9C;YACD,OAAO,WAAW,CAAC,OAAO,CAAC;;KAC5B;CACF"}
@@ -22,7 +22,8 @@ export class AsyncServiceLocator {
22
22
  return this.instances[instanceKey];
23
23
  }
24
24
  registerService(name, serviceFactory) {
25
- return new AsyncServiceLocator(Object.assign(Object.assign({}, this.services), { [name]: serviceFactory }), Object.assign(Object.assign({}, this.cache), { [name]: undefined }), this.options);
25
+ return new AsyncServiceLocator(Object.assign(Object.assign({}, this.services), { [name]: serviceFactory }), Object.assign(Object.assign({}, this.cache), { [name]: undefined }), // @varun can you fix?
26
+ this.options);
26
27
  }
27
28
  getService(name) {
28
29
  return __awaiter(this, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncServiceLocator.js","sourceRoot":"","sources":["../../src/lib/AsyncServiceLocator.ts"],"names":[],"mappings":";;;;;;;;;AAsBA,MAAM,OAAO,mBAAmB;IAY9B,YACE,QAAW,EACX,KAA2B,EAC3B,OAAmC;QAEnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAID,MAAM,CAAC,WAAW,CAAC,GAAW,EAAE,OAAmC;QACjE,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;YAChC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;SACxE;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,eAAe,CACb,IAAO,EACP,cAAiB;QAEjB,OAAO,IAAI,mBAAmB,iCAEvB,IAAI,CAAC,QAAQ,KAChB,CAAC,IAAI,CAAC,EAAE,cAAc,qCAEnB,IAAI,CAAC,KAAK,KAAE,CAAC,IAAI,CAAC,EAAE,SAAS,KAClC,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAEK,UAAU,CACd,IAAO;;YAGP,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEpC,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACtD;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBAC5C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;aACxC;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;KAAA;;AA1CM,6BAAS,GAA4C,EAAE,CAAC;AA6CjE,eAAe;AACf,iDAAiD;AACjD,EAAE;AACF,oBAAoB;AACpB,qBAAqB;AACrB,MAAM;AACN,IAAI;AACJ,EAAE;AACF,gBAAgB;AAChB,iDAAiD;AACjD,EAAE;AACF,uBAAuB;AACvB,sBAAsB;AACtB,MAAM;AACN,EAAE;AACF,oBAAoB;AACpB,sBAAsB;AACtB,MAAM;AACN,IAAI;AACJ,EAAE;AACF,iEAAiE;AACjE,qDAAqD;AACrD,gDAAgD;AAChD,sBAAsB;AACtB,eAAe;AACf,oEAAoE;AACpE,OAAO;AACP,4DAA4D;AAC5D,8DAA8D;AAC9D,EAAE;AACF,sBAAsB;AACtB,0BAA0B"}
1
+ {"version":3,"file":"AsyncServiceLocator.js","sourceRoot":"","sources":["../../src/lib/AsyncServiceLocator.ts"],"names":[],"mappings":";;;;;;;;;AAsBA,MAAM,OAAO,mBAAmB;IAY9B,YACE,QAAW,EACX,KAA2B,EAC3B,OAAmC;QAEnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAID,MAAM,CAAC,WAAW,CAAC,GAAW,EAAE,OAAmC;QACjE,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;YAChC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;SACxE;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,eAAe,CACb,IAAO,EACP,cAAiB;QAEjB,OAAO,IAAI,mBAAmB,iCAEvB,IAAI,CAAC,QAAQ,KAChB,CAAC,IAAI,CAAC,EAAE,cAAc,KAExB,gCAAK,IAAI,CAAC,KAAK,KAAE,CAAC,IAAI,CAAC,EAAE,SAAS,GAAS,EAAE,sBAAsB;QACnE,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAEK,UAAU,CACd,IAAO;;YAGP,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEpC,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACtD;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBAC5C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;aACxC;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;KAAA;;AA1CM,6BAAS,GAA4C,EAAE,CAAC;AA6CjE,eAAe;AACf,iDAAiD;AACjD,EAAE;AACF,oBAAoB;AACpB,qBAAqB;AACrB,MAAM;AACN,IAAI;AACJ,EAAE;AACF,gBAAgB;AAChB,iDAAiD;AACjD,EAAE;AACF,uBAAuB;AACvB,sBAAsB;AACtB,MAAM;AACN,EAAE;AACF,oBAAoB;AACpB,sBAAsB;AACtB,MAAM;AACN,IAAI;AACJ,EAAE;AACF,iEAAiE;AACjE,qDAAqD;AACrD,gDAAgD;AAChD,sBAAsB;AACtB,eAAe;AACf,oEAAoE;AACpE,OAAO;AACP,4DAA4D;AAC5D,8DAA8D;AAC9D,EAAE;AACF,sBAAsB;AACtB,0BAA0B"}
@@ -0,0 +1,14 @@
1
+ export interface TokenProvider {
2
+ getToken(): Promise<string>;
3
+ }
4
+ export declare class JWTProvider implements TokenProvider {
5
+ private token;
6
+ private decoded;
7
+ private tokenProvider;
8
+ private expiresThreshold;
9
+ constructor(tokenProvider: TokenProvider, expiresThreshold?: number);
10
+ private fetchToken;
11
+ private isExpiredOrExpiringSoon;
12
+ getToken(): Promise<string>;
13
+ }
14
+ //# sourceMappingURL=JWTProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JWTProvider.d.ts","sourceRoot":"","sources":["../../src/lib/JWTProvider.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,qBAAa,WAAY,YAAW,aAAa;IAC/C,OAAO,CAAC,KAAK,CAAuB;IAEpC,OAAO,CAAC,OAAO,CAAiC;IAEhD,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,gBAAgB,CAAS;gBAErB,aAAa,EAAE,aAAa,EAAE,gBAAgB,SAAM;YAKlD,UAAU;IAKxB,OAAO,CAAC,uBAAuB;IAQzB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;CAMlC"}
@@ -0,0 +1,39 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ export class JWTProvider {
11
+ constructor(tokenProvider, expiresThreshold = 300) {
12
+ this.token = null;
13
+ this.decoded = null;
14
+ this.tokenProvider = tokenProvider;
15
+ this.expiresThreshold = expiresThreshold;
16
+ }
17
+ fetchToken() {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ this.token = yield this.tokenProvider.getToken();
20
+ this.decoded = JSON.parse(atob(this.token.split('.')[1])); // Decode the payload
21
+ });
22
+ }
23
+ isExpiredOrExpiringSoon() {
24
+ if (!this.decoded || !this.decoded.exp) {
25
+ return true; // Treat as expired if there's no expiration time
26
+ }
27
+ const currentTime = Math.floor(Date.now() / 1000);
28
+ return this.decoded.exp < currentTime + this.expiresThreshold;
29
+ }
30
+ getToken() {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ if (!this.token || this.isExpiredOrExpiringSoon()) {
33
+ yield this.fetchToken();
34
+ }
35
+ return this.token;
36
+ });
37
+ }
38
+ }
39
+ //# sourceMappingURL=JWTProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JWTProvider.js","sourceRoot":"","sources":["../../src/lib/JWTProvider.ts"],"names":[],"mappings":";;;;;;;;;AAMA,MAAM,OAAO,WAAW;IAStB,YAAY,aAA4B,EAAE,gBAAgB,GAAG,GAAG;QARxD,UAAK,GAAkB,IAAI,CAAC;QAE5B,YAAO,GAA4B,IAAI,CAAC;QAO9C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IAEa,UAAU;;YACtB,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;QAClF,CAAC;KAAA;IAEO,uBAAuB;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACtC,OAAO,IAAI,CAAC,CAAC,iDAAiD;SAC/D;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAChE,CAAC;IAEK,QAAQ;;YACZ,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;gBACjD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;aACzB;YACD,OAAO,IAAI,CAAC,KAAM,CAAC;QACrB,CAAC;KAAA;CACF"}
@@ -0,0 +1,2 @@
1
+ export declare const makeProxy: <T extends object>(obj: T, excludeKeys?: (keyof T)[]) => Record<string, any>;
2
+ //# sourceMappingURL=Proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Proxy.d.ts","sourceRoot":"","sources":["../../src/lib/Proxy.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,2DAGnB,OAAO,MAAM,EAAE,GAAG,CAkBpB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /* eslint-disable no-restricted-syntax */
2
+ export const makeProxy = (obj, excludeKeys = []) => {
3
+ const proxyObj = {};
4
+ // Get prototype methods
5
+ const proto = Object.getPrototypeOf(obj);
6
+ if (proto) {
7
+ for (const key of Object.getOwnPropertyNames(proto)) {
8
+ if (key !== 'constructor' &&
9
+ typeof proto[key] === 'function' &&
10
+ !excludeKeys.includes(key)) {
11
+ proxyObj[key] = proto[key].bind(obj);
12
+ }
13
+ }
14
+ }
15
+ return proxyObj;
16
+ };
17
+ //# sourceMappingURL=Proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Proxy.js","sourceRoot":"","sources":["../../src/lib/Proxy.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,GAAM,EACN,cAA2B,EAAE,EACR,EAAE;IACvB,MAAM,QAAQ,GAAwB,EAAE,CAAC;IAEzC,wBAAwB;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,KAAK,EAAE;QACT,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAmB,EAAE;YACrE,IACE,GAAG,KAAK,aAAa;gBACrB,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,UAAU;gBAChC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC1B;gBACA,QAAQ,CAAC,GAAa,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAChD;SACF;KACF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Desktop, Ontology, WorkspaceItem } from '@octostar/platform-types';
2
+ export declare const getOrCreateUsersPrivateWorkspaceRecord: (desktop: Desktop, ontology: Ontology) => Promise<WorkspaceItem>;
3
+ //# sourceMappingURL=userWorkspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userWorkspace.d.ts","sourceRoot":"","sources":["../../src/lib/userWorkspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAK5E,eAAO,MAAM,sCAAsC,YACxC,OAAO,YACN,QAAQ,KACjB,QAAQ,aAAa,CAgBvB,CAAC"}
@@ -0,0 +1,28 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { v5 as uuidv5 } from 'uuid';
11
+ const NAMESPACE = '9a5e7f16-23c0-49c0-8339-b441d8a84373';
12
+ export const getOrCreateUsersPrivateWorkspaceRecord = (desktop, ontology) => __awaiter(void 0, void 0, void 0, function* () {
13
+ const user = yield desktop.whoami();
14
+ const entity_id = uuidv5(user.username, NAMESPACE);
15
+ const not_in_database = `This entity is not in the database ${Date.now()}`;
16
+ const workspace = yield ontology.getEntity({
17
+ entity_type: 'os_workspace',
18
+ entity_id,
19
+ entity_label: not_in_database,
20
+ });
21
+ if (workspace.entity_label === not_in_database) {
22
+ return desktop.createWorkspace(`${user.username} Workspace`, {
23
+ id: entity_id,
24
+ });
25
+ }
26
+ return workspace;
27
+ });
28
+ //# sourceMappingURL=userWorkspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userWorkspace.js","sourceRoot":"","sources":["../../src/lib/userWorkspace.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,SAAS,GAAG,sCAAsC,CAAC;AAEzD,MAAM,CAAC,MAAM,sCAAsC,GAAG,CACpD,OAAgB,EAChB,QAAkB,EACM,EAAE;IAC1B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,sCAAsC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAE3E,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAgB;QACxD,WAAW,EAAE,cAAc;QAC3B,SAAS;QACT,YAAY,EAAE,eAAe;KAC9B,CAAC,CAAC;IACH,IAAI,SAAS,CAAC,YAAY,KAAK,eAAe,EAAE;QAC9C,OAAO,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,QAAQ,YAAY,EAAE;YAC3D,EAAE,EAAE,SAAS;SACd,CAAC,CAAC;KACJ;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAA,CAAC"}
@@ -13,4 +13,5 @@ export declare const ONTOLOGY_PERMISSION_GROUP = "octostar:ontology:";
13
13
  * All permissions.
14
14
  */
15
15
  export declare const ALL_PERMISSIONS = "all";
16
+ export declare const ALL_PERMISSIONS_ARRAY: string[];
16
17
  //# sourceMappingURL=permissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC,eAAO,MAAM,qBAAqB,UAAoB,CAAC"}
@@ -14,4 +14,5 @@ export const ONTOLOGY_PERMISSION_GROUP = 'octostar:ontology:';
14
14
  * All permissions.
15
15
  */
16
16
  export const ALL_PERMISSIONS = 'all';
17
+ export const ALL_PERMISSIONS_ARRAY = [ALL_PERMISSIONS];
17
18
  //# sourceMappingURL=permissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,oBAAoB,CAAC;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,oBAAoB,CAAC;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,eAAe,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@octostar/platform-api",
3
- "version": "0.5.4",
3
+ "version": "0.5.5",
4
4
  "description": "Provides access to the API exposed by Octostar platform to an application run in an iframe",
5
5
  "keywords": [
6
6
  "octostar",
@@ -45,5 +45,5 @@
45
45
  "publishConfig": {
46
46
  "access": "public"
47
47
  },
48
- "gitHead": "9258c6a5a3ac5086dcc287c014d250438b3f1dc8"
48
+ "gitHead": "f24049c72a3c1068ff312de8da074b271b812f0a"
49
49
  }