@octostar/platform-api 0.5.4 → 0.5.6

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.
Files changed (115) hide show
  1. package/{lib → dist}/apis.d.ts +4 -1
  2. package/dist/apis.d.ts.map +1 -0
  3. package/{lib → dist}/apis.js +15 -12
  4. package/dist/apis.js.map +1 -0
  5. package/{lib → dist}/components/AbstractContextMenu.js +6 -3
  6. package/dist/components/AbstractContextMenu.js.map +1 -0
  7. package/{lib → dist}/components/OsContextMenu.js.map +1 -1
  8. package/{lib → dist}/components/OsIcon.d.ts +1 -1
  9. package/{lib → dist}/components/OsIcon.d.ts.map +1 -1
  10. package/{lib → dist}/components/OsIcon.js +10 -21
  11. package/dist/components/OsIcon.js.map +1 -0
  12. package/{lib → dist}/components/OsRecordTitle.d.ts +3 -3
  13. package/{lib → dist}/components/OsRecordTitle.d.ts.map +1 -1
  14. package/dist/components/OsRecordTitle.js +89 -0
  15. package/dist/components/OsRecordTitle.js.map +1 -0
  16. package/dist/components/OsSpinner.js.map +1 -0
  17. package/dist/components/OsTag.js +53 -0
  18. package/dist/components/OsTag.js.map +1 -0
  19. package/{lib → dist}/components/OsTags.d.ts.map +1 -1
  20. package/dist/components/OsTags.js +89 -0
  21. package/dist/components/OsTags.js.map +1 -0
  22. package/{lib → dist}/components/OsTagsContextMenu.d.ts +1 -1
  23. package/dist/components/OsTagsContextMenu.d.ts.map +1 -0
  24. package/dist/components/OsTagsContextMenu.js.map +1 -0
  25. package/{lib → dist}/components/TagsDots.d.ts +2 -3
  26. package/{lib → dist}/components/TagsDots.d.ts.map +1 -1
  27. package/dist/components/TagsDots.js +80 -0
  28. package/dist/components/TagsDots.js.map +1 -0
  29. package/{lib → dist}/constants.d.ts +3 -3
  30. package/{lib → dist}/constants.d.ts.map +1 -1
  31. package/dist/constants.js +33 -0
  32. package/dist/constants.js.map +1 -0
  33. package/dist/factory.d.ts.map +1 -0
  34. package/dist/factory.js +154 -0
  35. package/dist/factory.js.map +1 -0
  36. package/dist/index.d.ts +11 -0
  37. package/{lib → dist}/index.d.ts.map +1 -1
  38. package/dist/index.js +11 -0
  39. package/{lib → dist}/index.js.map +1 -1
  40. package/dist/lib/AIClientImpl.d.ts +9 -0
  41. package/dist/lib/AIClientImpl.d.ts.map +1 -0
  42. package/dist/lib/AIClientImpl.js +38 -0
  43. package/dist/lib/AIClientImpl.js.map +1 -0
  44. package/{lib → dist}/lib/AsyncServiceLocator.d.ts.map +1 -1
  45. package/{lib → dist}/lib/AsyncServiceLocator.js +16 -21
  46. package/dist/lib/AsyncServiceLocator.js.map +1 -0
  47. package/dist/lib/JWTProvider.d.ts +14 -0
  48. package/dist/lib/JWTProvider.d.ts.map +1 -0
  49. package/dist/lib/JWTProvider.js +26 -0
  50. package/dist/lib/JWTProvider.js.map +1 -0
  51. package/dist/lib/Proxy.d.ts +2 -0
  52. package/dist/lib/Proxy.d.ts.map +1 -0
  53. package/dist/lib/Proxy.js +17 -0
  54. package/dist/lib/Proxy.js.map +1 -0
  55. package/dist/lib/userWorkspace.d.ts +3 -0
  56. package/dist/lib/userWorkspace.d.ts.map +1 -0
  57. package/dist/lib/userWorkspace.js +19 -0
  58. package/dist/lib/userWorkspace.js.map +1 -0
  59. package/{lib → dist}/permissions.d.ts +1 -0
  60. package/{lib → dist}/permissions.d.ts.map +1 -1
  61. package/{lib → dist}/permissions.js +1 -0
  62. package/{lib → dist}/permissions.js.map +1 -1
  63. package/{lib → dist}/utils.d.ts.map +1 -1
  64. package/dist/utils.js +28 -0
  65. package/dist/utils.js.map +1 -0
  66. package/package.json +25 -19
  67. package/dist/platform-api.d.ts +0 -341
  68. package/lib/apis.d.ts.map +0 -1
  69. package/lib/apis.js.map +0 -1
  70. package/lib/components/AbstractContextMenu.js.map +0 -1
  71. package/lib/components/OsIcon.js.map +0 -1
  72. package/lib/components/OsRecordTitle.js +0 -100
  73. package/lib/components/OsRecordTitle.js.map +0 -1
  74. package/lib/components/OsSpinner.js.map +0 -1
  75. package/lib/components/OsTag.js +0 -64
  76. package/lib/components/OsTag.js.map +0 -1
  77. package/lib/components/OsTags.js +0 -99
  78. package/lib/components/OsTags.js.map +0 -1
  79. package/lib/components/OsTagsContextMenu.d.ts.map +0 -1
  80. package/lib/components/OsTagsContextMenu.js.map +0 -1
  81. package/lib/components/TagsDots.js +0 -86
  82. package/lib/components/TagsDots.js.map +0 -1
  83. package/lib/constants.js +0 -28
  84. package/lib/constants.js.map +0 -1
  85. package/lib/factory.d.ts.map +0 -1
  86. package/lib/factory.js +0 -94
  87. package/lib/factory.js.map +0 -1
  88. package/lib/index.d.ts +0 -7
  89. package/lib/index.js +0 -7
  90. package/lib/lib/AsyncServiceLocator.js.map +0 -1
  91. package/lib/utils.js +0 -38
  92. package/lib/utils.js.map +0 -1
  93. /package/{lib → dist}/components/AbstractContextMenu.d.ts +0 -0
  94. /package/{lib → dist}/components/AbstractContextMenu.d.ts.map +0 -0
  95. /package/{lib → dist}/components/OsContextMenu.d.ts +0 -0
  96. /package/{lib → dist}/components/OsContextMenu.d.ts.map +0 -0
  97. /package/{lib → dist}/components/OsContextMenu.js +0 -0
  98. /package/{lib → dist}/components/OsSpinner.d.ts +0 -0
  99. /package/{lib → dist}/components/OsSpinner.d.ts.map +0 -0
  100. /package/{lib → dist}/components/OsSpinner.js +0 -0
  101. /package/{lib → dist}/components/OsTag.d.ts +0 -0
  102. /package/{lib → dist}/components/OsTag.d.ts.map +0 -0
  103. /package/{lib → dist}/components/OsTags.d.ts +0 -0
  104. /package/{lib → dist}/components/OsTagsContextMenu.js +0 -0
  105. /package/{lib → dist}/components/index.d.ts +0 -0
  106. /package/{lib → dist}/components/index.d.ts.map +0 -0
  107. /package/{lib → dist}/components/index.js +0 -0
  108. /package/{lib → dist}/components/index.js.map +0 -0
  109. /package/{lib → dist}/factory.d.ts +0 -0
  110. /package/{lib → dist}/lib/AsyncServiceLocator.d.ts +0 -0
  111. /package/{lib → dist}/types.d.ts +0 -0
  112. /package/{lib → dist}/types.d.ts.map +0 -0
  113. /package/{lib → dist}/types.js +0 -0
  114. /package/{lib → dist}/types.js.map +0 -0
  115. /package/{lib → dist}/utils.d.ts +0 -0
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @beta
3
+ * Create a set of message names with a namespace.
4
+ */
5
+ export const createPrefixesConstants = (namespace, messages, channelId) => {
6
+ const result = {};
7
+ messages.forEach(message => {
8
+ result[message] = channelId
9
+ ? `${namespace}:${channelId}:${message}`
10
+ : `${namespace}:${message}`;
11
+ });
12
+ return result;
13
+ };
14
+ /**
15
+ * @beta
16
+ * Message names for post messages.
17
+ */
18
+ export const getPostMessageNames = (channelId) => createPrefixesConstants('octostar:post-messages', ['get_api'], channelId);
19
+ /**
20
+ * @beta
21
+ * API names.
22
+ */
23
+ export const apiNames = createPrefixesConstants('octostar:api-names', [
24
+ 'desktop',
25
+ 'ontology',
26
+ 'context',
27
+ 'extras',
28
+ 'remoteApp',
29
+ 'savedSearch',
30
+ ], undefined);
31
+ // test
32
+ // const v = messages.get_api;
33
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +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,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"}
@@ -0,0 +1 @@
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,GAAU,CAAC,SAAS,MAAM,EAC1D,QAAQ,kBAAkB,eAmC3B,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,CAAC,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,KAAG,CAS1D,CAAC"}
@@ -0,0 +1,154 @@
1
+ import postRobot from 'post-robot';
2
+ import { retry } from './utils';
3
+ import { getPostMessageNames } from './constants';
4
+ const hasParent = (window) => window.parent !== window;
5
+ function getOctostarWindow(channelId, currentWindow = window, depth = 0) {
6
+ // Check all iframes in the current window
7
+ let iframes;
8
+ try {
9
+ iframes = currentWindow.document.querySelectorAll('iframe');
10
+ }
11
+ catch (e) {
12
+ // assuming cross-origin iframe
13
+ return currentWindow;
14
+ }
15
+ for (let i = 0; i < iframes.length; i += 1) {
16
+ const iframe = iframes[i];
17
+ if (iframe.getAttribute('data-octostar-iframe') === 'true' &&
18
+ iframe.getAttribute('data-octostar-iframe-channel') === channelId) {
19
+ return currentWindow;
20
+ }
21
+ }
22
+ // Check if we've reached the top window
23
+ if (!hasParent(currentWindow)) {
24
+ console.error('Top window reached without finding the Octostar window. You are trying to view the app from outside Octostar?');
25
+ // could be an old version of Octostar?
26
+ return currentWindow;
27
+ }
28
+ // Prevent infinite loops or excessive searching
29
+ if (depth > 25) {
30
+ throw new Error('Max depth reached. Octostar window not found.');
31
+ }
32
+ // If not found, continue searching in the parent window
33
+ return getOctostarWindow(channelId, currentWindow.parent, depth + 1);
34
+ }
35
+ const handlePostResponse = (response) => {
36
+ if (response.data.error) {
37
+ throw new Error(response.data.error.message);
38
+ }
39
+ return response.data.data;
40
+ };
41
+ const createObjectProxy = (value, options) => new Proxy(value, {
42
+ get: (target, prop) => {
43
+ // This construction does not support nested objects
44
+ if (typeof target[prop] === 'function') {
45
+ return new Proxy(target[prop], {
46
+ apply: (methodTarget, _, args) => {
47
+ const callResult = methodTarget(...args);
48
+ const isPromise = callResult instanceof Promise;
49
+ const isPromiseLike = typeof callResult?.then === 'function' &&
50
+ typeof callResult?.catch === 'function';
51
+ if (isPromise || isPromiseLike) {
52
+ return callResult.catch((e) => {
53
+ const methodFullPath = `${options.name}.${prop}()`;
54
+ const error = new Error(`Error calling ${methodFullPath}: ${e.message}`);
55
+ error.stack = `at ${methodFullPath}: ${e.stack}`;
56
+ error.originalError = e;
57
+ throw error;
58
+ });
59
+ }
60
+ return callResult;
61
+ },
62
+ });
63
+ }
64
+ return target[prop];
65
+ },
66
+ });
67
+ function tryFetchingFomAttributes(currentWindow) {
68
+ try {
69
+ const iframes = currentWindow.parent.document.getElementsByTagName('iframe');
70
+ // eslint-disable-next-line no-restricted-syntax
71
+ for (const iframe of iframes) {
72
+ if (iframe.contentWindow === currentWindow) {
73
+ const channelId = iframe.getAttribute('data-octostar-iframe-channel');
74
+ if (channelId) {
75
+ console.log(`PostRobot: Setting channelId from iframe attribute ${channelId}`);
76
+ window.octostarChannelId = channelId;
77
+ return channelId;
78
+ }
79
+ }
80
+ }
81
+ return undefined;
82
+ }
83
+ catch (e) {
84
+ // Ignore errors, maybe cross-origin iframes
85
+ return undefined;
86
+ }
87
+ }
88
+ function traverseForChannelId(currentWindow = window, depth = 0) {
89
+ // Prevent infinite loops or excessive searching
90
+ if (depth > 25) {
91
+ throw new Error('PostRobot: Max depth reached. octostarChannelId not found.');
92
+ }
93
+ if (currentWindow.octostarChannelId) {
94
+ return currentWindow.octostarChannelId;
95
+ }
96
+ try {
97
+ if (currentWindow.location.search) {
98
+ const urlParams = new URLSearchParams(currentWindow.location.search);
99
+ const channelId = urlParams.get('octostarChannelId');
100
+ if (channelId) {
101
+ console.log(`PostRobot: Setting channelId from queryParams ${channelId}`);
102
+ window.octostarChannelId = channelId;
103
+ return channelId;
104
+ }
105
+ }
106
+ else {
107
+ const channelId = tryFetchingFomAttributes(currentWindow);
108
+ if (channelId) {
109
+ return channelId;
110
+ }
111
+ }
112
+ return traverseForChannelId(currentWindow.parent, depth + 1);
113
+ }
114
+ catch (e) {
115
+ console.error(e);
116
+ return undefined;
117
+ }
118
+ }
119
+ window.addEventListener('message', event => {
120
+ if (event.data?.type === 'SET_CHANNEL_ID') {
121
+ window.octostarChannelId = event.data.channelId;
122
+ console.log('PostRobot: received channelId', event.data.channelId);
123
+ }
124
+ });
125
+ export const createRemoteApiHandle = async (params) => {
126
+ const channelId = traverseForChannelId();
127
+ const octostarWindow = getOctostarWindow(channelId);
128
+ if (!channelId) {
129
+ console.error('PostRobot: No channelId found', channelId);
130
+ }
131
+ console.log(`PostRobot: Trying to get handle ${channelId}`);
132
+ const topic = getPostMessageNames(channelId).get_api;
133
+ try {
134
+ const response = await retry(() => postRobot.send(octostarWindow, topic, params), {
135
+ maxAttempts: 5,
136
+ retryInterval: 2000,
137
+ });
138
+ console.log(`PostRobot: Got remote api handle for ${params.name} on ${channelId}`);
139
+ const api = handlePostResponse(response);
140
+ return createObjectProxy(api, {
141
+ name: params.name,
142
+ });
143
+ }
144
+ catch (e) {
145
+ console.log(`PostRobot: Error while trying to create remote API handle on ${topic}`, e);
146
+ throw e;
147
+ }
148
+ };
149
+ export const forwardCallsToFutureObject = (chain) => new Proxy({}, {
150
+ get: (target, prop) => new Proxy(() => { }, {
151
+ apply: (__, _, args) => chain.then((obj) => obj[prop](...args)),
152
+ }),
153
+ });
154
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export * from './apis';
2
+ export * from './types';
3
+ export * from './constants';
4
+ export * from './utils';
5
+ export * from './permissions';
6
+ export * from './components';
7
+ export * from './lib/JWTProvider';
8
+ export * from './lib/AIClientImpl';
9
+ export * from './lib/Proxy';
10
+ export * from './lib/userWorkspace';
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/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ export * from './apis';
2
+ export * from './types';
3
+ export * from './constants';
4
+ export * from './utils';
5
+ export * from './permissions';
6
+ export * from './components';
7
+ export * from './lib/JWTProvider';
8
+ export * from './lib/AIClientImpl';
9
+ export * from './lib/Proxy';
10
+ export * from './lib/userWorkspace';
11
+ //# sourceMappingURL=index.js.map
@@ -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,38 @@
1
+ export class AIClientImpl {
2
+ constructor(osAPIClient) {
3
+ this.osAPIClient = osAPIClient;
4
+ }
5
+ async getChatModels() {
6
+ if (!this.models) {
7
+ this.models = await this.osAPIClient.fetchData({
8
+ endpoint: '/api/v1/chat/models',
9
+ });
10
+ }
11
+ return this.models;
12
+ }
13
+ async prompt(prompt, options) {
14
+ const model = options?.model || (await this.getChatModels())[0]?.model_name;
15
+ const enableRag = options?.enableRag ?? true; // getPreference is not available to this package.
16
+ // TODO: Streaming is not supported yet.
17
+ const chatMessage = await this.osAPIClient.fetchData({
18
+ endpoint: '/api/v1/chat',
19
+ method: 'POST',
20
+ headers: {
21
+ 'Content-Type': 'application/json',
22
+ },
23
+ body: JSON.stringify({
24
+ model_name: model,
25
+ prompt,
26
+ api_key: options?.apiKey || '',
27
+ streaming: false,
28
+ enable_rag: enableRag,
29
+ cohere_key: options?.cohereKey || '',
30
+ }),
31
+ });
32
+ if (chatMessage.response?.content) {
33
+ return chatMessage.response.content;
34
+ }
35
+ return chatMessage.content;
36
+ }
37
+ }
38
+ //# 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;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAc;gBAC1D,QAAQ,EAAE,qBAAqB;aAChC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,OAAuB;QAClD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;QAC5E,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC,kDAAkD;QAEhG,wCAAwC;QACxC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAc;YAChE,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,UAAU,EAAE,KAAK;gBACjB,MAAM;gBACN,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE;gBAC9B,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE;aACrC,CAAC;SACH,CAAC,CAAC;QACH,IAAK,WAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;YAC3C,OAAQ,WAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC/C,CAAC;QACD,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncServiceLocator.d.ts","sourceRoot":"","sources":["../../src/lib/AsyncServiceLocator.ts"],"names":[],"mappings":"AAAA,KAAK,wBAAwB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAEnE,KAAK,iBAAiB,CACpB,CAAC,EACD,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,IAChD,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEpD,KAAK,gBAAgB,CAAC,CAAC,IAAI,OAAO,CAChC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CACzD,CAAC;AAEF,MAAM,MAAM,2BAA2B,CACrC,CAAC,EACD,CAAC,GAAG,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,IACpD;IACF,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,qBAAa,mBAAmB,CAC9B,CAAC,SAAS,MAAM,CACd,MAAM,EACN,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CACjE;IAED,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAI;IAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAE7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;gBAGnD,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAC3B,OAAO,EAAE,0BAA0B;IAOrC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAM;IAE/D,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B;IAWnE,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,EACnE,IAAI,EAAE,CAAC,EACP,cAAc,EAAE,CAAC,GAChB,mBAAmB,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAWlC,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,EAChC,IAAI,EAAE,CAAC,GAEN,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAa1B"}
1
+ {"version":3,"file":"AsyncServiceLocator.d.ts","sourceRoot":"","sources":["../../src/lib/AsyncServiceLocator.ts"],"names":[],"mappings":"AAAA,KAAK,wBAAwB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAEnE,KAAK,iBAAiB,CACpB,CAAC,EACD,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,IAChD,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEpD,KAAK,gBAAgB,CAAC,CAAC,IAAI,OAAO,CAChC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CACzD,CAAC;AAEF,MAAM,MAAM,2BAA2B,CACrC,CAAC,EACD,CAAC,GAAG,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,IACpD;IACF,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,qBAAa,mBAAmB,CAC9B,CAAC,SAAS,MAAM,CACd,MAAM,EACN,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CACjE;IAED,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAI;IAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAE7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;gBAGnD,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAC3B,OAAO,EAAE,0BAA0B;IAOrC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAM;IAE/D,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B;IAYnE,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,EACnE,IAAI,EAAE,CAAC,EACP,cAAc,EAAE,CAAC,GAChB,mBAAmB,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAWlC,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,EAChC,IAAI,EAAE,CAAC,GAEN,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAc1B"}
@@ -1,12 +1,3 @@
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
1
  export class AsyncServiceLocator {
11
2
  constructor(services, cache, options) {
12
3
  this.services = services;
@@ -21,20 +12,24 @@ export class AsyncServiceLocator {
21
12
  }
22
13
  return this.instances[instanceKey];
23
14
  }
15
+ // @ts-ignore Fix the type system
24
16
  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);
17
+ return new AsyncServiceLocator({
18
+ ...this.services,
19
+ [name]: serviceFactory,
20
+ }, { ...this.cache, [name]: undefined }, // @varun can you fix?
21
+ this.options);
26
22
  }
27
- getService(name) {
28
- return __awaiter(this, void 0, void 0, function* () {
29
- const service = this.services[name];
30
- if (!service) {
31
- throw new Error(`Service ${String(name)} not found`);
32
- }
33
- if (!this.cache[name] || !this.options.cache) {
34
- this.cache[name] = yield service(this);
35
- }
36
- return this.cache[name];
37
- });
23
+ async getService(name) {
24
+ const service = this.services[name];
25
+ if (!service) {
26
+ throw new Error(`Service ${String(name)} not found`);
27
+ }
28
+ if (!this.cache[name] || !this.options.cache) {
29
+ // @ts-ignore Fix the type system
30
+ this.cache[name] = await service(this);
31
+ }
32
+ return this.cache[name];
38
33
  }
39
34
  }
40
35
  AsyncServiceLocator.instances = {};
@@ -0,0 +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,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,iCAAiC;IACjC,eAAe,CACb,IAAO,EACP,cAAiB;QAEjB,OAAO,IAAI,mBAAmB,CAC5B;YACE,GAAG,IAAI,CAAC,QAAQ;YAChB,CAAC,IAAI,CAAC,EAAE,cAAc;SACvB,EACD,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAS,EAAE,sBAAsB;QACnE,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAO;QAGP,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7C,iCAAiC;YACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;;AA5CM,6BAAS,GAA4C,EAAE,CAAC;AA+CjE,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,26 @@
1
+ export class JWTProvider {
2
+ constructor(tokenProvider, expiresThreshold = 300) {
3
+ this.token = null;
4
+ this.decoded = null;
5
+ this.tokenProvider = tokenProvider;
6
+ this.expiresThreshold = expiresThreshold;
7
+ }
8
+ async fetchToken() {
9
+ this.token = await this.tokenProvider.getToken();
10
+ this.decoded = JSON.parse(atob(this.token.split('.')[1])); // Decode the payload
11
+ }
12
+ isExpiredOrExpiringSoon() {
13
+ if (!this.decoded || !this.decoded.exp) {
14
+ return true; // Treat as expired if there's no expiration time
15
+ }
16
+ const currentTime = Math.floor(Date.now() / 1000);
17
+ return this.decoded.exp < currentTime + this.expiresThreshold;
18
+ }
19
+ async getToken() {
20
+ if (!this.token || this.isExpiredOrExpiringSoon()) {
21
+ await this.fetchToken();
22
+ }
23
+ return this.token;
24
+ }
25
+ }
26
+ //# 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;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QACjD,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;IAClF,CAAC;IAEO,uBAAuB;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,CAAC,iDAAiD;QAChE,CAAC;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;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;YAClD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,KAAM,CAAC;IACrB,CAAC;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,GAAI,CAAC,SAAS,MAAM,EACxC,KAAK,CAAC,EACN,cAAa,CAAC,MAAM,CAAC,CAAC,EAAO,KAC5B,MAAM,CAAC,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,CAAC;QACV,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAmB,EAAE,CAAC;YACtE,IACE,GAAG,KAAK,aAAa;gBACrB,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,UAAU;gBAChC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC1B,CAAC;gBACD,QAAQ,CAAC,GAAa,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;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,GACjD,SAAS,OAAO,EAChB,UAAU,QAAQ,KACjB,OAAO,CAAC,aAAa,CAgBvB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { v5 as uuidv5 } from 'uuid';
2
+ const NAMESPACE = '9a5e7f16-23c0-49c0-8339-b441d8a84373';
3
+ export const getOrCreateUsersPrivateWorkspaceRecord = async (desktop, ontology) => {
4
+ const user = await desktop.whoami();
5
+ const entity_id = uuidv5(user.username, NAMESPACE);
6
+ const not_in_database = `This entity is not in the database ${Date.now()}`;
7
+ const workspace = await ontology.getEntity({
8
+ entity_type: 'os_workspace',
9
+ entity_id,
10
+ entity_label: not_in_database,
11
+ });
12
+ if (workspace.entity_label === not_in_database) {
13
+ return desktop.createWorkspace(`${user.username} Workspace`, {
14
+ id: entity_id,
15
+ });
16
+ }
17
+ return workspace;
18
+ };
19
+ //# 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,KAAK,EACzD,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,CAAC;QAC/C,OAAO,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,QAAQ,YAAY,EAAE;YAC3D,EAAE,EAAE,SAAS;SACd,CAAC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GAAG;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,oBACF,GAAG,+BACP,YAAY,eAsBvB,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GAAG;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,GAAU,CAAC,EAC3B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACpC,UAAU,YAAY,KACrB,OAAO,CAAC,CAAC,CAqBX,CAAC"}
package/dist/utils.js ADDED
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @beta
3
+ * Retry a function until it succeeds or the maximum number of attempts is reached.
4
+ *
5
+ * @param fn - The function to retry.
6
+ * @param options - The retry options.
7
+ * @returns The result of the function.
8
+ */
9
+ export const retry = async (fn, options) => {
10
+ let attempts = 0;
11
+ const maxAttempts = options?.maxAttempts ?? 3;
12
+ const retryInterval = options?.retryInterval ?? 1000;
13
+ while (true) {
14
+ attempts += 1;
15
+ try {
16
+ // eslint-disable-next-line no-await-in-loop
17
+ return await fn();
18
+ }
19
+ catch (e) {
20
+ if (attempts < maxAttempts) {
21
+ // eslint-disable-next-line no-await-in-loop
22
+ await new Promise(resolve => setTimeout(resolve, retryInterval));
23
+ }
24
+ throw e;
25
+ }
26
+ }
27
+ };
28
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EACxB,EAAoC,EACpC,OAAsB,EACV,EAAE;IACd,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,CAAC;IAErD,OAAO,IAAI,EAAE,CAAC;QACZ,QAAQ,IAAI,CAAC,CAAC;QAEd,IAAI,CAAC;YACH,4CAA4C;YAC5C,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,QAAQ,GAAG,WAAW,EAAE,CAAC;gBAC3B,4CAA4C;gBAC5C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;YACnE,CAAC;YAED,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;AACH,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.6",
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",
@@ -9,41 +9,47 @@
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "",
12
- "directory": "superset-frontend/packages/octostar-platform-api"
12
+ "directory": "packages/octostar-platform-api"
13
13
  },
14
14
  "license": "MIT",
15
15
  "author": "",
16
- "main": "lib/index.js",
17
- "types": "dist/platform-api.d.ts",
18
16
  "files": [
19
- "dist/platform-api.d.ts",
20
- "lib/**/*"
17
+ "dist"
21
18
  ],
22
- "scripts": {
23
- "browserify": "browserify lib/index.js -s octostar -t [ babelify --presets [@babel/preset-env] ] -o dist/octostar-platform-api.js",
24
- "build": "npm run clear && npm run compile && npm run run:api-extractor && npm run browserify",
25
- "clear": "rimraf ./lib ./dist ./temp tsconfig.tsbuildinfo",
26
- "compile": "tsc",
27
- "dev": "tsc -b -w",
28
- "run:api-extractor": "api-extractor run --local --verbose"
19
+ "exports": {
20
+ ".": {
21
+ "import": "./dist/index.js",
22
+ "require": "./dist/index.js",
23
+ "types": "./dist/index.d.ts",
24
+ "source": "./src/index.ts"
25
+ }
29
26
  },
27
+ "main": "dist/index.js",
28
+ "module": "dist/index.js",
29
+ "types": "dist/index.d.ts",
30
30
  "dependencies": {
31
31
  "@types/uuid": "^9.0.2",
32
32
  "post-robot": "^10.0.46",
33
33
  "uuid": "^9.0.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@microsoft/api-extractor": "^7.42.3",
37
- "@octostar/platform-types": "file:./packages/octostar-platform-types",
38
36
  "babelify": "^10.0.0",
39
37
  "browserify": "^17.0.0",
40
- "rimraf": "^5.0.5"
38
+ "rimraf": "^5.0.5",
39
+ "tsup": "^8.4.0",
40
+ "typescript": "^5.8.2",
41
+ "@octostar/platform-types": "0.5.6"
41
42
  },
42
43
  "peerDependencies": {
43
- "@octostar/platform-types": "^0.5.1"
44
+ "@octostar/platform-types": "^0.5.6"
44
45
  },
45
46
  "publishConfig": {
46
47
  "access": "public"
47
48
  },
48
- "gitHead": "9258c6a5a3ac5086dcc287c014d250438b3f1dc8"
49
- }
49
+ "scripts": {
50
+ "build": "pnpm run clean && pnpm run compile",
51
+ "clean": "rimraf ./dist ./temp tsconfig.tsbuildinfo",
52
+ "compile": "tsc",
53
+ "dev": "tsc -b -w"
54
+ }
55
+ }