@stack-spot/portal-network 1.0.0-betaadp.3 → 1.0.0-dev.1768422812092

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 (215) hide show
  1. package/CHANGELOG.md +633 -0
  2. package/dist/api/account.d.ts +413 -277
  3. package/dist/api/account.d.ts.map +1 -1
  4. package/dist/api/account.js +261 -176
  5. package/dist/api/account.js.map +1 -1
  6. package/dist/api/accountAssetManager.d.ts +309 -0
  7. package/dist/api/accountAssetManager.d.ts.map +1 -0
  8. package/dist/api/accountAssetManager.js +169 -0
  9. package/dist/api/accountAssetManager.js.map +1 -0
  10. package/dist/api/agent-tools.d.ts +243 -149
  11. package/dist/api/agent-tools.d.ts.map +1 -1
  12. package/dist/api/agent-tools.js +77 -5
  13. package/dist/api/agent-tools.js.map +1 -1
  14. package/dist/api/agent.d.ts +55 -55
  15. package/dist/api/agent.d.ts.map +1 -1
  16. package/dist/api/ai.d.ts +487 -98
  17. package/dist/api/ai.d.ts.map +1 -1
  18. package/dist/api/ai.js +427 -146
  19. package/dist/api/ai.js.map +1 -1
  20. package/dist/api/cloudPlatform.d.ts +374 -221
  21. package/dist/api/cloudPlatform.d.ts.map +1 -1
  22. package/dist/api/cloudPlatform.js +299 -93
  23. package/dist/api/cloudPlatform.js.map +1 -1
  24. package/dist/api/cloudPlatformHorizon.d.ts +178 -9
  25. package/dist/api/cloudPlatformHorizon.d.ts.map +1 -1
  26. package/dist/api/cloudPlatformHorizon.js +69 -1
  27. package/dist/api/cloudPlatformHorizon.js.map +1 -1
  28. package/dist/api/codeShift.d.ts +1125 -83
  29. package/dist/api/codeShift.d.ts.map +1 -1
  30. package/dist/api/codeShift.js +538 -16
  31. package/dist/api/codeShift.js.map +1 -1
  32. package/dist/api/dataIntegration.d.ts +291 -1
  33. package/dist/api/dataIntegration.d.ts.map +1 -1
  34. package/dist/api/dataIntegration.js +254 -0
  35. package/dist/api/dataIntegration.js.map +1 -1
  36. package/dist/api/discover.d.ts +98 -12
  37. package/dist/api/discover.d.ts.map +1 -1
  38. package/dist/api/discover.js +78 -2
  39. package/dist/api/discover.js.map +1 -1
  40. package/dist/api/edpBfa.d.ts +215 -0
  41. package/dist/api/edpBfa.d.ts.map +1 -0
  42. package/dist/api/edpBfa.js +87 -0
  43. package/dist/api/edpBfa.js.map +1 -0
  44. package/dist/api/genAiInference.d.ts +22 -2
  45. package/dist/api/genAiInference.d.ts.map +1 -1
  46. package/dist/api/genAiInference.js +22 -3
  47. package/dist/api/genAiInference.js.map +1 -1
  48. package/dist/api/workflows.d.ts +68 -5
  49. package/dist/api/workflows.d.ts.map +1 -1
  50. package/dist/api/workflows.js +16 -0
  51. package/dist/api/workflows.js.map +1 -1
  52. package/dist/api/workspaceManager.d.ts +16 -10
  53. package/dist/api/workspaceManager.d.ts.map +1 -1
  54. package/dist/api/workspaceManager.js +10 -0
  55. package/dist/api/workspaceManager.js.map +1 -1
  56. package/dist/api-addresses.d.ts +20 -18
  57. package/dist/api-addresses.d.ts.map +1 -1
  58. package/dist/api-addresses.js +81 -21
  59. package/dist/api-addresses.js.map +1 -1
  60. package/dist/apis-itau.json +241 -0
  61. package/dist/apis.json +17 -1
  62. package/dist/client/account-asset-manager.d.ts +112 -0
  63. package/dist/client/account-asset-manager.d.ts.map +1 -0
  64. package/dist/client/account-asset-manager.js +160 -0
  65. package/dist/client/account-asset-manager.js.map +1 -0
  66. package/dist/client/account.d.ts +265 -242
  67. package/dist/client/account.d.ts.map +1 -1
  68. package/dist/client/account.js +80 -34
  69. package/dist/client/account.js.map +1 -1
  70. package/dist/client/agent-tools.d.ts +166 -119
  71. package/dist/client/agent-tools.d.ts.map +1 -1
  72. package/dist/client/agent-tools.js +62 -11
  73. package/dist/client/agent-tools.js.map +1 -1
  74. package/dist/client/agent.d.ts +46 -46
  75. package/dist/client/agent.d.ts.map +1 -1
  76. package/dist/client/ai.d.ts +266 -79
  77. package/dist/client/ai.d.ts.map +1 -1
  78. package/dist/client/ai.js +262 -20
  79. package/dist/client/ai.js.map +1 -1
  80. package/dist/client/api-management.d.ts +10 -1
  81. package/dist/client/api-management.d.ts.map +1 -1
  82. package/dist/client/api-management.js +11 -2
  83. package/dist/client/api-management.js.map +1 -1
  84. package/dist/client/cloud-account.d.ts +13 -13
  85. package/dist/client/cloud-platform-horizon.d.ts +38 -19
  86. package/dist/client/cloud-platform-horizon.d.ts.map +1 -1
  87. package/dist/client/cloud-platform-horizon.js +19 -1
  88. package/dist/client/cloud-platform-horizon.js.map +1 -1
  89. package/dist/client/cloud-platform.d.ts +213 -46
  90. package/dist/client/cloud-platform.d.ts.map +1 -1
  91. package/dist/client/cloud-platform.js +168 -33
  92. package/dist/client/cloud-platform.js.map +1 -1
  93. package/dist/client/cloud-runtimes.d.ts +4 -4
  94. package/dist/client/cloud-services.d.ts +17 -17
  95. package/dist/client/cloud-services.d.ts.map +1 -1
  96. package/dist/client/code-shift.d.ts +535 -162
  97. package/dist/client/code-shift.d.ts.map +1 -1
  98. package/dist/client/code-shift.js +296 -7
  99. package/dist/client/code-shift.js.map +1 -1
  100. package/dist/client/content.d.ts +127 -132
  101. package/dist/client/content.d.ts.map +1 -1
  102. package/dist/client/data-integration.d.ts +92 -53
  103. package/dist/client/data-integration.d.ts.map +1 -1
  104. package/dist/client/data-integration.js +38 -2
  105. package/dist/client/data-integration.js.map +1 -1
  106. package/dist/client/discover.d.ts +31 -10
  107. package/dist/client/discover.d.ts.map +1 -1
  108. package/dist/client/discover.js +239 -3
  109. package/dist/client/discover.js.map +1 -1
  110. package/dist/client/edp-bfa.d.ts +16 -0
  111. package/dist/client/edp-bfa.d.ts.map +1 -0
  112. package/dist/client/edp-bfa.js +24 -0
  113. package/dist/client/edp-bfa.js.map +1 -0
  114. package/dist/client/event-bus.d.ts.map +1 -1
  115. package/dist/client/gen-ai-inference.d.ts +20 -20
  116. package/dist/client/insights.d.ts +7 -7
  117. package/dist/client/notification.d.ts +17 -10
  118. package/dist/client/notification.d.ts.map +1 -1
  119. package/dist/client/notification.js +10 -1
  120. package/dist/client/notification.js.map +1 -1
  121. package/dist/client/runtime-manager.d.ts +8 -8
  122. package/dist/client/secrets.d.ts.map +1 -1
  123. package/dist/client/secrets.js +1 -1
  124. package/dist/client/secrets.js.map +1 -1
  125. package/dist/client/types.d.ts +50 -7
  126. package/dist/client/types.d.ts.map +1 -1
  127. package/dist/client/workflow.d.ts +10 -10
  128. package/dist/client/workspace-ai.d.ts +53 -53
  129. package/dist/client/workspace-ai.d.ts.map +1 -1
  130. package/dist/client/workspace-ai.js +3 -7
  131. package/dist/client/workspace-ai.js.map +1 -1
  132. package/dist/client/workspace-manager.d.ts +115 -76
  133. package/dist/client/workspace-manager.d.ts.map +1 -1
  134. package/dist/client/workspace-manager.js +47 -2
  135. package/dist/client/workspace-manager.js.map +1 -1
  136. package/dist/client/workspace-search.d.ts +2 -2
  137. package/dist/client/workspace.d.ts +58 -105
  138. package/dist/client/workspace.d.ts.map +1 -1
  139. package/dist/error/DefaultAPIError.d.ts.map +1 -1
  140. package/dist/error/DefaultAPIError.js.map +1 -1
  141. package/dist/error/StackspotAPIError.d.ts +3 -4
  142. package/dist/error/StackspotAPIError.d.ts.map +1 -1
  143. package/dist/error/StackspotAPIError.js +3 -3
  144. package/dist/error/StackspotAPIError.js.map +1 -1
  145. package/dist/error/dictionary/accountAssetManager.d.ts +11 -0
  146. package/dist/error/dictionary/accountAssetManager.d.ts.map +1 -0
  147. package/dist/error/dictionary/accountAssetManager.js +11 -0
  148. package/dist/error/dictionary/accountAssetManager.js.map +1 -0
  149. package/dist/error/dictionary/cloud-platform.d.ts +76 -8
  150. package/dist/error/dictionary/cloud-platform.d.ts.map +1 -1
  151. package/dist/error/dictionary/cloud-platform.js +80 -12
  152. package/dist/error/dictionary/cloud-platform.js.map +1 -1
  153. package/dist/error/dictionary/workspace-ai.d.ts +9 -0
  154. package/dist/error/dictionary/workspace-ai.d.ts.map +1 -0
  155. package/dist/error/dictionary/workspace-ai.js +9 -0
  156. package/dist/error/dictionary/workspace-ai.js.map +1 -0
  157. package/dist/index.d.ts +5 -3
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/index.js +4 -2
  160. package/dist/index.js.map +1 -1
  161. package/dist/network/NetworkClient.d.ts +4 -2
  162. package/dist/network/NetworkClient.d.ts.map +1 -1
  163. package/dist/network/NetworkClient.js +16 -4
  164. package/dist/network/NetworkClient.js.map +1 -1
  165. package/dist/network/types.d.ts +2 -0
  166. package/dist/network/types.d.ts.map +1 -1
  167. package/dist/utils/StreamedJson.d.ts +3 -1
  168. package/dist/utils/StreamedJson.d.ts.map +1 -1
  169. package/dist/utils/StreamedJson.js +23 -3
  170. package/dist/utils/StreamedJson.js.map +1 -1
  171. package/package.dev.json +3 -0
  172. package/package.json +10 -9
  173. package/package.stg.json +3 -0
  174. package/readme.md +40 -1
  175. package/src/api/account.ts +701 -540
  176. package/src/api/accountAssetManager.ts +771 -0
  177. package/src/api/agent-tools.ts +332 -151
  178. package/src/api/ai.ts +891 -170
  179. package/src/api/cloudPlatform.ts +667 -298
  180. package/src/api/cloudPlatformHorizon.ts +412 -9
  181. package/src/api/codeShift.ts +2088 -97
  182. package/src/api/dataIntegration.ts +635 -1
  183. package/src/api/discover.ts +180 -14
  184. package/src/api/edpBfa.ts +472 -0
  185. package/src/api/genAiInference.ts +47 -4
  186. package/src/api/workflows.ts +100 -5
  187. package/src/api/workspaceManager.ts +25 -10
  188. package/src/api-addresses.ts +113 -38
  189. package/src/apis-itau.json +241 -0
  190. package/src/apis.json +17 -1
  191. package/src/client/account-asset-manager.ts +100 -0
  192. package/src/client/account.ts +71 -40
  193. package/src/client/agent-tools.ts +57 -17
  194. package/src/client/ai.ts +232 -20
  195. package/src/client/api-management.ts +7 -2
  196. package/src/client/cloud-platform-horizon.ts +12 -4
  197. package/src/client/cloud-platform.ts +101 -27
  198. package/src/client/code-shift.ts +196 -8
  199. package/src/client/data-integration.ts +28 -1
  200. package/src/client/discover.ts +238 -5
  201. package/src/client/edp-bfa.ts +24 -0
  202. package/src/client/notification.ts +6 -1
  203. package/src/client/secrets.ts +1 -1
  204. package/src/client/types.ts +55 -9
  205. package/src/client/workspace-ai.ts +19 -23
  206. package/src/client/workspace-manager.ts +31 -2
  207. package/src/error/DefaultAPIError.ts +5 -5
  208. package/src/error/StackspotAPIError.ts +4 -4
  209. package/src/error/dictionary/accountAssetManager.ts +12 -0
  210. package/src/error/dictionary/cloud-platform.ts +80 -12
  211. package/src/error/dictionary/workspace-ai.ts +10 -0
  212. package/src/index.ts +6 -3
  213. package/src/network/NetworkClient.ts +18 -6
  214. package/src/network/types.ts +3 -0
  215. package/src/utils/StreamedJson.tsx +19 -4
@@ -1,9 +1,10 @@
1
- import { AuthenticationError, SessionExpiredError } from '@stack-spot/auth'
2
- import { requestPermission } from '@stack-spot/opa'
1
+ import { AuthenticationError, Session, SessionExpiredError } from '@stack-spot/auth'
2
+ import { requestPermission, setup as setupPermissions } from '@stack-spot/opa'
3
3
  import { events } from 'fetch-event-stream'
4
+ import { getApisBaseUrlConfig, getBaseUrlByTenantWithOverride, getPermissionsAPIMap } from '../api-addresses'
4
5
  import { StackspotAPIError } from '../error/StackspotAPIError'
5
- import { Env, FetchEventStream, HTTPMethod, SessionManager } from './types'
6
- import { getBaseUrlWithOverride } from '../api-addresses'
6
+ import { queryClient } from './react-query-client'
7
+ import { Env, FetchEventStream, HTTPMethod, SessionManager, Tenant } from './types'
7
8
 
8
9
  /**
9
10
  * A set of methods for performing network requests to an API.
@@ -21,6 +22,7 @@ export abstract class NetworkClient {
21
22
  private baseURL: Record<Env, string>
22
23
  static readonly sessionManager?: SessionManager
23
24
  private static env?: Env
25
+ private static tenant?: Tenant
24
26
 
25
27
  /**
26
28
  * @param baseURL An object with the keys "dev", "stg" and "prd". The values must be the url for each of these environments.
@@ -33,11 +35,21 @@ export abstract class NetworkClient {
33
35
  * Sets up all network clients. Must be called before attempting to make any request.
34
36
  * @param sessionManager An object with functions capable of checking, retrieving and ending the current session.
35
37
  * @param env The environment to send the requests to.
38
+ * @param tenant - {@link Tenant} tenant identifier used to scope requests.
36
39
  */
37
- static setup(sessionManager: SessionManager, env: Env) {
40
+ static setup(sessionManager: SessionManager, env: Env, tenant?: Tenant) {
38
41
  //@ts-ignore This is the only place we would link session manager to be set.
39
42
  NetworkClient.sessionManager = sessionManager
40
43
  NetworkClient.env = env
44
+ NetworkClient.tenant = tenant
45
+ const url = getApisBaseUrlConfig(env, tenant).permissionValidation
46
+ const apiMap = getPermissionsAPIMap(env, tenant)
47
+ const onChange = (session?: Session) => {
48
+ queryClient.invalidateQueries()
49
+ session && setupPermissions({ url, session, apiMap })
50
+ }
51
+ sessionManager.onChange?.(onChange)
52
+ if (sessionManager.hasSession()) onChange(sessionManager.getSession())
41
53
  }
42
54
 
43
55
  /**
@@ -62,7 +74,7 @@ export abstract class NetworkClient {
62
74
  * @returns the final baseURL for the current environment, considering overrides if available.
63
75
  */
64
76
  protected getBaseURL(): string {
65
- return getBaseUrlWithOverride(this.baseURL, NetworkClient.env);
77
+ return getBaseUrlByTenantWithOverride(this.baseURL, NetworkClient.env, NetworkClient.tenant)
66
78
  }
67
79
 
68
80
  /**
@@ -8,8 +8,11 @@ export interface SessionManager {
8
8
  hasSession(): boolean,
9
9
  endSession(): void,
10
10
  getSession(): Session,
11
+ onChange?: (listener: (session: Session | undefined) => void) => (() => void),
11
12
  }
12
13
 
14
+ export type Tenant = 'stackspot' | 'itau'
15
+
13
16
  export type Env = 'dev' | 'stg' | 'prd'
14
17
 
15
18
  export type HTTPMethod = 'post' | 'patch' | 'delete' | 'put' | 'get'
@@ -31,6 +31,7 @@ interface ConstructorParams<T> {
31
31
  * of merged.
32
32
  */
33
33
  ignoreKeys?: (keyof T)[],
34
+ textFromErrorEvent?: (data: Partial<T>) => string,
34
35
  }
35
36
 
36
37
  /**
@@ -44,16 +45,18 @@ export class StreamedJson<T> {
44
45
  private abortController: AbortController | undefined
45
46
  private transform?: (event: Partial<T>, data: Partial<T>) => void | Promise<void>
46
47
  private ignoreKeys?: (keyof T)[]
48
+ private textFromErrorEvent: (data: Partial<T>) => string
47
49
 
48
50
  /**
49
51
  * @param response the fetch response.
50
52
  * @param minChangeIntervalMS a stream can be too fast. This sets a minimum interval between running the listeners. The default is 50ms.
51
53
  */
52
- constructor({ eventsPromise, abortController, minChangeIntervalMS = 50, transform, ignoreKeys }: ConstructorParams<T>) {
54
+ constructor({ eventsPromise, abortController, minChangeIntervalMS = 50, transform, ignoreKeys, textFromErrorEvent }: ConstructorParams<T>) {
53
55
  this.abortController = abortController
54
56
  this.transform = transform
55
57
  this.ignoreKeys = ignoreKeys
56
58
  this.run(eventsPromise, minChangeIntervalMS)
59
+ this.textFromErrorEvent = textFromErrorEvent ?? ((data) => JSON.stringify(data))
57
60
  }
58
61
 
59
62
  private async run(eventsPromise: Promise<FetchEventStream>, minChangeIntervalMS: number) {
@@ -64,10 +67,17 @@ export class StreamedJson<T> {
64
67
  for await (const event of events) {
65
68
  if (this.error) return
66
69
  if (event.data) {
67
- const json = JSON.parse(event.data)
70
+ let json
71
+ try {
72
+ json = JSON.parse(event.data)
73
+ } catch (e) {
74
+ // eslint-disable-next-line no-console
75
+ console.warn('Mal formed JSON in streaming:', event.data)
76
+ continue
77
+ }
68
78
  await this.transform?.(json, this.data)
69
79
  this.merge(json, this.data)
70
- if (new Date().getTime() - lastChangeCall >= minChangeIntervalMS) {
80
+ if (event.event !== 'error' && new Date().getTime() - lastChangeCall >= minChangeIntervalMS) {
71
81
  this.onChangeListeners.forEach(l => l(this.data))
72
82
  lastChangeCall = new Date().getTime()
73
83
  flushed = true
@@ -75,6 +85,11 @@ export class StreamedJson<T> {
75
85
  flushed = false
76
86
  }
77
87
  }
88
+ if (event.event === 'error') {
89
+ const error = new Error(this.textFromErrorEvent(this.data))
90
+ this.data = {}
91
+ throw error
92
+ }
78
93
  }
79
94
  if (!flushed) this.onChangeListeners.forEach(l => l(this.data))
80
95
  } catch (error: any) {
@@ -138,7 +153,7 @@ export class StreamedJson<T> {
138
153
  onChange(listener: (value: Partial<T>) => void) {
139
154
  if (this.fullPromise.resolved) {
140
155
  listener(this.data)
141
- return () => {}
156
+ return () => { }
142
157
  }
143
158
  this.onChangeListeners.push(listener)
144
159
  return () => {