@octostar/platform-api 0.5.1 → 0.5.3
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/dist/platform-api.d.ts +21 -3
- package/lib/factory.d.ts.map +1 -1
- package/lib/factory.js +36 -10
- package/lib/factory.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/lib/AIClientImpl.d.ts +9 -0
- package/lib/lib/AIClientImpl.d.ts.map +1 -0
- package/lib/lib/AIClientImpl.js +44 -0
- package/lib/lib/AIClientImpl.js.map +1 -0
- package/lib/lib/JWTProvider.d.ts +6 -4
- package/lib/lib/JWTProvider.d.ts.map +1 -1
- package/lib/lib/JWTProvider.js +3 -4
- package/lib/lib/JWTProvider.js.map +1 -1
- package/lib/lib/Proxy.d.ts +2 -0
- package/lib/lib/Proxy.d.ts.map +1 -0
- package/lib/lib/Proxy.js +17 -0
- package/lib/lib/Proxy.js.map +1 -0
- package/package.json +2 -2
package/dist/platform-api.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
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';
|
|
5
7
|
import { ExtrasApi } from '@octostar/platform-types';
|
|
6
8
|
import { Ontology } from '@octostar/platform-types';
|
|
9
|
+
import { OsAPIClient } from '@octostar/platform-types';
|
|
10
|
+
import { PromptOptions } from '@octostar/platform-types';
|
|
7
11
|
import { RemoteAppApi } from '@octostar/platform-types';
|
|
8
12
|
import { SavedSearchAPIInterface } from '@octostar/platform-types';
|
|
9
13
|
import { TagWithRelationship } from '@octostar/platform-types';
|
|
@@ -28,6 +32,14 @@ export declare abstract class AbstractContextMenu extends HTMLElement {
|
|
|
28
32
|
private publishRequest;
|
|
29
33
|
}
|
|
30
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
|
+
|
|
31
43
|
/**
|
|
32
44
|
* @beta
|
|
33
45
|
* All permissions.
|
|
@@ -141,17 +153,19 @@ export declare type GetRemoteApiParams = {
|
|
|
141
153
|
name: string;
|
|
142
154
|
};
|
|
143
155
|
|
|
144
|
-
export declare class JWTProvider {
|
|
156
|
+
export declare class JWTProvider implements TokenProvider {
|
|
145
157
|
private token;
|
|
146
158
|
private decoded;
|
|
147
|
-
private
|
|
159
|
+
private tokenProvider;
|
|
148
160
|
private expiresThreshold;
|
|
149
|
-
constructor(
|
|
161
|
+
constructor(tokenProvider: TokenProvider, expiresThreshold?: number);
|
|
150
162
|
private fetchToken;
|
|
151
163
|
private isExpiredOrExpiringSoon;
|
|
152
164
|
getToken(): Promise<string>;
|
|
153
165
|
}
|
|
154
166
|
|
|
167
|
+
export declare const makeProxy: <T extends object>(obj: T, excludeKeys?: (keyof T)[]) => Record<string, any>;
|
|
168
|
+
|
|
155
169
|
declare type MessageValue<N, M> = `${N & string}:${M & string}`;
|
|
156
170
|
|
|
157
171
|
/**
|
|
@@ -360,4 +374,8 @@ export declare class TagDots extends HTMLElement {
|
|
|
360
374
|
render(): Promise<void>;
|
|
361
375
|
}
|
|
362
376
|
|
|
377
|
+
export declare interface TokenProvider {
|
|
378
|
+
getToken(): Promise<string>;
|
|
379
|
+
}
|
|
380
|
+
|
|
363
381
|
export { }
|
package/lib/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAGnB,MAAM,SAAS,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
|
@@ -11,7 +11,7 @@ import postRobot from 'post-robot';
|
|
|
11
11
|
import { retry } from './utils';
|
|
12
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
|
-
|
|
28
|
-
) {
|
|
27
|
+
iframe.getAttribute('data-octostar-iframe-channel') === channelId) {
|
|
29
28
|
return currentWindow;
|
|
30
29
|
}
|
|
31
30
|
}
|
|
@@ -40,7 +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
|
-
return getOctostarWindow(currentWindow.parent, depth + 1);
|
|
42
|
+
return getOctostarWindow(channelId, currentWindow.parent, depth + 1);
|
|
44
43
|
}
|
|
45
44
|
const handlePostResponse = (response) => {
|
|
46
45
|
if (response.data.error) {
|
|
@@ -74,6 +73,27 @@ const createObjectProxy = (value, options) => new Proxy(value, {
|
|
|
74
73
|
return target[prop];
|
|
75
74
|
},
|
|
76
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
|
+
}
|
|
77
97
|
function traverseForChannelId(currentWindow = window, depth = 0) {
|
|
78
98
|
// Prevent infinite loops or excessive searching
|
|
79
99
|
if (depth > 25) {
|
|
@@ -92,6 +112,12 @@ function traverseForChannelId(currentWindow = window, depth = 0) {
|
|
|
92
112
|
return channelId;
|
|
93
113
|
}
|
|
94
114
|
}
|
|
115
|
+
else {
|
|
116
|
+
const channelId = tryFetchingFomAttributes(currentWindow);
|
|
117
|
+
if (channelId) {
|
|
118
|
+
return channelId;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
95
121
|
return traverseForChannelId(currentWindow.parent, depth + 1);
|
|
96
122
|
}
|
|
97
123
|
catch (e) {
|
|
@@ -107,19 +133,19 @@ window.addEventListener('message', event => {
|
|
|
107
133
|
}
|
|
108
134
|
});
|
|
109
135
|
export const createRemoteApiHandle = (params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
110
|
-
const octostarWindow = getOctostarWindow();
|
|
111
136
|
const channelId = traverseForChannelId();
|
|
137
|
+
const octostarWindow = getOctostarWindow(channelId);
|
|
112
138
|
if (!channelId) {
|
|
113
139
|
console.error('PostRobot: No channelId found', channelId);
|
|
114
140
|
}
|
|
115
141
|
console.log(`PostRobot: Trying to get handle ${channelId}`);
|
|
116
142
|
const topic = getPostMessageNames(channelId).get_api;
|
|
117
|
-
const response = yield retry(() => postRobot.send(octostarWindow, topic, params), {
|
|
118
|
-
maxAttempts: 5,
|
|
119
|
-
retryInterval: 2000,
|
|
120
|
-
});
|
|
121
|
-
console.log(`PostRobot: Got remote api handle for ${params.name} on ${channelId}`);
|
|
122
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}`);
|
|
123
149
|
const api = handlePostResponse(response);
|
|
124
150
|
return createObjectProxy(api, {
|
|
125
151
|
name: params.name,
|
package/lib/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAMnC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,SAAS,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC;AAExE,SAAS,iBAAiB,
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -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;AAC7B,cAAc,mBAAmB,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"}
|
package/lib/index.js
CHANGED
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;AAC7B,cAAc,mBAAmB,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"}
|
|
@@ -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;CAgBvE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
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;
|
|
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 chatMessage = yield this.osAPIClient.fetchData({
|
|
29
|
+
endpoint: '/api/v1/chat/',
|
|
30
|
+
method: 'POST',
|
|
31
|
+
headers: {
|
|
32
|
+
'Content-Type': 'application/json',
|
|
33
|
+
},
|
|
34
|
+
body: JSON.stringify({
|
|
35
|
+
model_name: model,
|
|
36
|
+
prompt,
|
|
37
|
+
api_key: (options === null || options === void 0 ? void 0 : options.apiKey) || '', // TODO: remove this server expects it at the moment, make it optional
|
|
38
|
+
}),
|
|
39
|
+
});
|
|
40
|
+
return chatMessage.content;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# 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,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAc;gBAChE,QAAQ,EAAE,eAAe;gBACzB,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,EAAE,sEAAsE;iBACvG,CAAC;aACH,CAAC,CAAC;YACH,OAAO,WAAW,CAAC,OAAO,CAAC;;KAC5B;CACF"}
|
package/lib/lib/JWTProvider.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export interface TokenProvider {
|
|
2
|
+
getToken(): Promise<string>;
|
|
3
|
+
}
|
|
4
|
+
export declare class JWTProvider implements TokenProvider {
|
|
3
5
|
private token;
|
|
4
6
|
private decoded;
|
|
5
|
-
private
|
|
7
|
+
private tokenProvider;
|
|
6
8
|
private expiresThreshold;
|
|
7
|
-
constructor(
|
|
9
|
+
constructor(tokenProvider: TokenProvider, expiresThreshold?: number);
|
|
8
10
|
private fetchToken;
|
|
9
11
|
private isExpiredOrExpiringSoon;
|
|
10
12
|
getToken(): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JWTProvider.d.ts","sourceRoot":"","sources":["../../src/lib/JWTProvider.ts"],"names":[],"mappings":"
|
|
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"}
|
package/lib/lib/JWTProvider.js
CHANGED
|
@@ -8,16 +8,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
export class JWTProvider {
|
|
11
|
-
constructor(
|
|
11
|
+
constructor(tokenProvider, expiresThreshold = 300) {
|
|
12
12
|
this.token = null;
|
|
13
13
|
this.decoded = null;
|
|
14
|
-
this.
|
|
14
|
+
this.tokenProvider = tokenProvider;
|
|
15
15
|
this.expiresThreshold = expiresThreshold;
|
|
16
16
|
}
|
|
17
17
|
fetchToken() {
|
|
18
18
|
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
-
|
|
20
|
-
this.token = whoami.os_jwt;
|
|
19
|
+
this.token = yield this.tokenProvider.getToken();
|
|
21
20
|
this.decoded = JSON.parse(atob(this.token.split('.')[1])); // Decode the payload
|
|
22
21
|
});
|
|
23
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JWTProvider.js","sourceRoot":"","sources":["../../src/lib/JWTProvider.ts"],"names":[],"mappings":";;;;;;;;;
|
|
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 @@
|
|
|
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"}
|
package/lib/lib/Proxy.js
ADDED
|
@@ -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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@octostar/platform-api",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
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",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "9e4b6e63a51d720054e4d00b57481dcb276eaa19"
|
|
47
47
|
}
|