@attlaz/client 1.77.1

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 (342) hide show
  1. package/README.md +30 -0
  2. package/dist/AttlazResource.d.ts +3 -0
  3. package/dist/AttlazResource.js +4 -0
  4. package/dist/Client.d.ts +114 -0
  5. package/dist/Client.js +278 -0
  6. package/dist/Core/MetaDataAware.d.ts +11 -0
  7. package/dist/Core/MetaDataAware.js +27 -0
  8. package/dist/Core/MetaDataWithIconAware.d.ts +13 -0
  9. package/dist/Core/MetaDataWithIconAware.js +26 -0
  10. package/dist/Helper/LoadAllHelper.d.ts +8 -0
  11. package/dist/Helper/LoadAllHelper.js +25 -0
  12. package/dist/Helper/ResponseParser.d.ts +2 -0
  13. package/dist/Helper/ResponseParser.js +2 -0
  14. package/dist/Http/ClientError.d.ts +22 -0
  15. package/dist/Http/ClientError.js +79 -0
  16. package/dist/Http/ContentTypeHelper.d.ts +6 -0
  17. package/dist/Http/ContentTypeHelper.js +13 -0
  18. package/dist/Http/Data/Headers.d.ts +3 -0
  19. package/dist/Http/Data/Headers.js +1 -0
  20. package/dist/Http/Data/Parameters.d.ts +3 -0
  21. package/dist/Http/Data/Parameters.js +1 -0
  22. package/dist/Http/Data/QueryString.d.ts +18 -0
  23. package/dist/Http/Data/QueryString.js +67 -0
  24. package/dist/Http/HttpClient.d.ts +5 -0
  25. package/dist/Http/HttpClient.js +54 -0
  26. package/dist/Http/HttpClientRequest.d.ts +17 -0
  27. package/dist/Http/HttpClientRequest.js +39 -0
  28. package/dist/Http/HttpClientResponse.d.ts +8 -0
  29. package/dist/Http/HttpClientResponse.js +10 -0
  30. package/dist/Http/HttpStatus.d.ts +13 -0
  31. package/dist/Http/HttpStatus.js +13 -0
  32. package/dist/Http/OAuthClientOptions.d.ts +11 -0
  33. package/dist/Http/OAuthClientOptions.js +15 -0
  34. package/dist/Http/OAuthClientToken.d.ts +11 -0
  35. package/dist/Http/OAuthClientToken.js +32 -0
  36. package/dist/Http/Transport/DirectTransport.d.ts +41 -0
  37. package/dist/Http/Transport/DirectTransport.js +83 -0
  38. package/dist/Http/Transport/ITransport.d.ts +13 -0
  39. package/dist/Http/Transport/ITransport.js +1 -0
  40. package/dist/Http/Transport/OAuthClient.d.ts +45 -0
  41. package/dist/Http/Transport/OAuthClient.js +315 -0
  42. package/dist/Model/AccessToken/UserAccessToken.d.ts +15 -0
  43. package/dist/Model/AccessToken/UserAccessToken.js +28 -0
  44. package/dist/Model/AccessToken/UserAccessTokenStatus.d.ts +11 -0
  45. package/dist/Model/AccessToken/UserAccessTokenStatus.js +12 -0
  46. package/dist/Model/Adapter/Adapter.d.ts +14 -0
  47. package/dist/Model/Adapter/Adapter.js +28 -0
  48. package/dist/Model/Adapter/AdapterCategory.d.ts +6 -0
  49. package/dist/Model/Adapter/AdapterCategory.js +12 -0
  50. package/dist/Model/Adapter/AdapterConfiguration.d.ts +12 -0
  51. package/dist/Model/Adapter/AdapterConfiguration.js +22 -0
  52. package/dist/Model/Adapter/AdapterConnection.d.ts +15 -0
  53. package/dist/Model/Adapter/AdapterConnection.js +24 -0
  54. package/dist/Model/Adapter/AdapterConnectionConfigurationValue.d.ts +7 -0
  55. package/dist/Model/Adapter/AdapterConnectionConfigurationValue.js +6 -0
  56. package/dist/Model/Adapter/AdapterConnectionEvent.d.ts +9 -0
  57. package/dist/Model/Adapter/AdapterConnectionEvent.js +18 -0
  58. package/dist/Model/Adapter/AdapterConnectionStatus.d.ts +9 -0
  59. package/dist/Model/Adapter/AdapterConnectionStatus.js +20 -0
  60. package/dist/Model/Adapter/TestConnectionResult.d.ts +33 -0
  61. package/dist/Model/Adapter/TestConnectionResult.js +19 -0
  62. package/dist/Model/ApiRecord.d.ts +1 -0
  63. package/dist/Model/ApiRecord.js +1 -0
  64. package/dist/Model/Collections/Collection.d.ts +13 -0
  65. package/dist/Model/Collections/Collection.js +15 -0
  66. package/dist/Model/Collections/CollectionRecord.d.ts +6 -0
  67. package/dist/Model/Collections/CollectionRecord.js +12 -0
  68. package/dist/Model/Command/CommandExecutionFilter.d.ts +6 -0
  69. package/dist/Model/Command/CommandExecutionFilter.js +1 -0
  70. package/dist/Model/Command/CommandExecutionHistory.d.ts +15 -0
  71. package/dist/Model/Command/CommandExecutionHistory.js +15 -0
  72. package/dist/Model/Command/CommandExecutionStatus.d.ts +9 -0
  73. package/dist/Model/Command/CommandExecutionStatus.js +20 -0
  74. package/dist/Model/Config.d.ts +17 -0
  75. package/dist/Model/Config.js +31 -0
  76. package/dist/Model/Configuration/Configuration.d.ts +10 -0
  77. package/dist/Model/Configuration/Configuration.js +17 -0
  78. package/dist/Model/DataValue.d.ts +6 -0
  79. package/dist/Model/DataValue.js +8 -0
  80. package/dist/Model/DataValueCollection.d.ts +17 -0
  81. package/dist/Model/DataValueCollection.js +61 -0
  82. package/dist/Model/Deployment/CodeSource.d.ts +24 -0
  83. package/dist/Model/Deployment/CodeSource.js +32 -0
  84. package/dist/Model/Deployment/CodeSourceAccount.d.ts +13 -0
  85. package/dist/Model/Deployment/CodeSourceAccount.js +25 -0
  86. package/dist/Model/Deployment/CodeSourceBuildStrategy.d.ts +10 -0
  87. package/dist/Model/Deployment/CodeSourceBuildStrategy.js +17 -0
  88. package/dist/Model/Deployment/CodeSourceRunStrategy.d.ts +10 -0
  89. package/dist/Model/Deployment/CodeSourceRunStrategy.js +17 -0
  90. package/dist/Model/Deployment/SourcesAccountRepository.d.ts +7 -0
  91. package/dist/Model/Deployment/SourcesAccountRepository.js +14 -0
  92. package/dist/Model/Deployment/SourcesAccountRepositoryBranch.d.ts +4 -0
  93. package/dist/Model/Deployment/SourcesAccountRepositoryBranch.js +8 -0
  94. package/dist/Model/EntityId.d.ts +9 -0
  95. package/dist/Model/EntityId.js +27 -0
  96. package/dist/Model/EntityType.d.ts +25 -0
  97. package/dist/Model/EntityType.js +33 -0
  98. package/dist/Model/Error/ApiError.d.ts +14 -0
  99. package/dist/Model/Error/ApiError.js +16 -0
  100. package/dist/Model/Event/EventType.d.ts +17 -0
  101. package/dist/Model/Event/EventType.js +18 -0
  102. package/dist/Model/Filter/FilterNode.d.ts +18 -0
  103. package/dist/Model/Filter/FilterNode.js +1 -0
  104. package/dist/Model/Filter/FilterOperator.d.ts +1 -0
  105. package/dist/Model/Filter/FilterOperator.js +1 -0
  106. package/dist/Model/Flow/Flow.d.ts +17 -0
  107. package/dist/Model/Flow/Flow.js +27 -0
  108. package/dist/Model/Flow/FlowRun.d.ts +18 -0
  109. package/dist/Model/Flow/FlowRun.js +32 -0
  110. package/dist/Model/Flow/FlowRunHistory.d.ts +8 -0
  111. package/dist/Model/Flow/FlowRunHistory.js +14 -0
  112. package/dist/Model/Flow/FlowRunHistoryStatus.d.ts +16 -0
  113. package/dist/Model/Flow/FlowRunHistoryStatus.js +24 -0
  114. package/dist/Model/Flow/FlowRunLifecycle.d.ts +16 -0
  115. package/dist/Model/Flow/FlowRunLifecycle.js +24 -0
  116. package/dist/Model/Flow/FlowRunPriority.d.ts +9 -0
  117. package/dist/Model/Flow/FlowRunPriority.js +17 -0
  118. package/dist/Model/Flow/FlowRunResponse.d.ts +5 -0
  119. package/dist/Model/Flow/FlowRunResponse.js +6 -0
  120. package/dist/Model/Flow/FlowRunStats.d.ts +13 -0
  121. package/dist/Model/Flow/FlowRunStats.js +27 -0
  122. package/dist/Model/Flow/FlowRunStatus.d.ts +12 -0
  123. package/dist/Model/Flow/FlowRunStatus.js +20 -0
  124. package/dist/Model/Flow/FlowRunSummary.d.ts +17 -0
  125. package/dist/Model/Flow/FlowRunSummary.js +33 -0
  126. package/dist/Model/Flow/FlowSummary.d.ts +11 -0
  127. package/dist/Model/Flow/FlowSummary.js +21 -0
  128. package/dist/Model/Flow/FlowTemplate.d.ts +10 -0
  129. package/dist/Model/Flow/FlowTemplate.js +10 -0
  130. package/dist/Model/HealthAlert/HealthAlert.d.ts +17 -0
  131. package/dist/Model/HealthAlert/HealthAlert.js +34 -0
  132. package/dist/Model/HealthAlert/HealthAlertSeverity.d.ts +8 -0
  133. package/dist/Model/HealthAlert/HealthAlertSeverity.js +16 -0
  134. package/dist/Model/HealthAlert/HealthAlertStatus.d.ts +8 -0
  135. package/dist/Model/HealthAlert/HealthAlertStatus.js +16 -0
  136. package/dist/Model/HealthAlert/HealthTestType.d.ts +14 -0
  137. package/dist/Model/HealthAlert/HealthTestType.js +22 -0
  138. package/dist/Model/Inbox/InboxMessage.d.ts +10 -0
  139. package/dist/Model/Inbox/InboxMessage.js +21 -0
  140. package/dist/Model/Infrastructure/RunnerPool.d.ts +39 -0
  141. package/dist/Model/Infrastructure/RunnerPool.js +77 -0
  142. package/dist/Model/InfrastructureStatus/QueueStatus.d.ts +11 -0
  143. package/dist/Model/InfrastructureStatus/QueueStatus.js +11 -0
  144. package/dist/Model/InfrastructureStatus/RunnersStatus.d.ts +9 -0
  145. package/dist/Model/InfrastructureStatus/RunnersStatus.js +9 -0
  146. package/dist/Model/InfrastructureStatus/StorageStatus.d.ts +13 -0
  147. package/dist/Model/InfrastructureStatus/StorageStatus.js +7 -0
  148. package/dist/Model/JsonSerializable.d.ts +6 -0
  149. package/dist/Model/JsonSerializable.js +12 -0
  150. package/dist/Model/Log/Log.d.ts +17 -0
  151. package/dist/Model/Log/Log.js +37 -0
  152. package/dist/Model/Log/LogLevel.d.ts +15 -0
  153. package/dist/Model/Log/LogLevel.js +54 -0
  154. package/dist/Model/Log/LogQuery.d.ts +26 -0
  155. package/dist/Model/Log/LogQuery.js +15 -0
  156. package/dist/Model/Log/LogStatus.d.ts +8 -0
  157. package/dist/Model/Log/LogStatus.js +16 -0
  158. package/dist/Model/Log/LogStream.d.ts +6 -0
  159. package/dist/Model/Log/LogStream.js +8 -0
  160. package/dist/Model/Log/LogStreamId.d.ts +5 -0
  161. package/dist/Model/Log/LogStreamId.js +7 -0
  162. package/dist/Model/Log/LogStreamInformation.d.ts +18 -0
  163. package/dist/Model/Log/LogStreamInformation.js +58 -0
  164. package/dist/Model/Messaging/Channel/Channel.d.ts +16 -0
  165. package/dist/Model/Messaging/Channel/Channel.js +31 -0
  166. package/dist/Model/Messaging/Channel/ChannelData.d.ts +6 -0
  167. package/dist/Model/Messaging/Channel/ChannelData.js +9 -0
  168. package/dist/Model/Messaging/Channel/ChannelType.d.ts +10 -0
  169. package/dist/Model/Messaging/Channel/ChannelType.js +18 -0
  170. package/dist/Model/Messaging/Channel/EmailChannelData.d.ts +5 -0
  171. package/dist/Model/Messaging/Channel/EmailChannelData.js +9 -0
  172. package/dist/Model/Messaging/Channel/PushChannelData.d.ts +5 -0
  173. package/dist/Model/Messaging/Channel/PushChannelData.js +9 -0
  174. package/dist/Model/Messaging/Channel/SlackChannelData.d.ts +10 -0
  175. package/dist/Model/Messaging/Channel/SlackChannelData.js +19 -0
  176. package/dist/Model/Messaging/Channel/SmsChannelData.d.ts +5 -0
  177. package/dist/Model/Messaging/Channel/SmsChannelData.js +9 -0
  178. package/dist/Model/Messaging/Channel/WebhookChannelData.d.ts +6 -0
  179. package/dist/Model/Messaging/Channel/WebhookChannelData.js +11 -0
  180. package/dist/Model/Messaging/ChannelHistory.d.ts +10 -0
  181. package/dist/Model/Messaging/ChannelHistory.js +31 -0
  182. package/dist/Model/Messaging/Subscriber.d.ts +19 -0
  183. package/dist/Model/Messaging/Subscriber.js +35 -0
  184. package/dist/Model/Pagination/CursorPagination.d.ts +5 -0
  185. package/dist/Model/Pagination/CursorPagination.js +5 -0
  186. package/dist/Model/Pagination/Filters.d.ts +20 -0
  187. package/dist/Model/Pagination/Filters.js +33 -0
  188. package/dist/Model/Project/CodeDeploy.d.ts +28 -0
  189. package/dist/Model/Project/CodeDeploy.js +57 -0
  190. package/dist/Model/Project/CodeDeployStatus.d.ts +12 -0
  191. package/dist/Model/Project/CodeDeployStatus.js +20 -0
  192. package/dist/Model/Project/PlatformLanguage.d.ts +11 -0
  193. package/dist/Model/Project/PlatformLanguage.js +19 -0
  194. package/dist/Model/Project/Project.d.ts +13 -0
  195. package/dist/Model/Project/Project.js +26 -0
  196. package/dist/Model/Project/ProjectDeployCommit.d.ts +7 -0
  197. package/dist/Model/Project/ProjectDeployCommit.js +7 -0
  198. package/dist/Model/Project/ProjectEnvironment.d.ts +16 -0
  199. package/dist/Model/Project/ProjectEnvironment.js +25 -0
  200. package/dist/Model/Project/ProjectEnvironmentType.d.ts +8 -0
  201. package/dist/Model/Project/ProjectEnvironmentType.js +16 -0
  202. package/dist/Model/ProviderToken/ProviderToken.d.ts +11 -0
  203. package/dist/Model/ProviderToken/ProviderToken.js +12 -0
  204. package/dist/Model/ProviderToken/ProviderTokenAccessToken.d.ts +6 -0
  205. package/dist/Model/ProviderToken/ProviderTokenAccessToken.js +11 -0
  206. package/dist/Model/Result/CollectionResult.d.ts +7 -0
  207. package/dist/Model/Result/CollectionResult.js +27 -0
  208. package/dist/Model/Result/ObjectResult.d.ts +5 -0
  209. package/dist/Model/Result/ObjectResult.js +21 -0
  210. package/dist/Model/Result/ObjectWrapper.d.ts +3 -0
  211. package/dist/Model/Result/ObjectWrapper.js +20 -0
  212. package/dist/Model/Result/ResultError.d.ts +4 -0
  213. package/dist/Model/Result/ResultError.js +6 -0
  214. package/dist/Model/Runner/RunnerImage.d.ts +13 -0
  215. package/dist/Model/Runner/RunnerImage.js +12 -0
  216. package/dist/Model/Search/SearchResult.d.ts +23 -0
  217. package/dist/Model/Search/SearchResult.js +94 -0
  218. package/dist/Model/State.d.ts +8 -0
  219. package/dist/Model/State.js +16 -0
  220. package/dist/Model/StateAware.d.ts +4 -0
  221. package/dist/Model/StateAware.js +1 -0
  222. package/dist/Model/Storage/StorageInformation.d.ts +10 -0
  223. package/dist/Model/Storage/StorageInformation.js +7 -0
  224. package/dist/Model/Storage/StorageItem.d.ts +9 -0
  225. package/dist/Model/Storage/StorageItem.js +21 -0
  226. package/dist/Model/Storage/StorageItemInformation.d.ts +8 -0
  227. package/dist/Model/Storage/StorageItemInformation.js +19 -0
  228. package/dist/Model/Storage/StorageType.d.ts +9 -0
  229. package/dist/Model/Storage/StorageType.js +17 -0
  230. package/dist/Model/Trigger/Trigger.d.ts +18 -0
  231. package/dist/Model/Trigger/Trigger.js +34 -0
  232. package/dist/Model/User/User.d.ts +18 -0
  233. package/dist/Model/User/User.js +33 -0
  234. package/dist/Model/User/UserAction.d.ts +14 -0
  235. package/dist/Model/User/UserAction.js +13 -0
  236. package/dist/Model/User/UserActionFilter.d.ts +10 -0
  237. package/dist/Model/User/UserActionFilter.js +1 -0
  238. package/dist/Model/User/UserAuthProvider.d.ts +12 -0
  239. package/dist/Model/User/UserAuthProvider.js +22 -0
  240. package/dist/Model/User/UserNotificationSession.d.ts +13 -0
  241. package/dist/Model/User/UserNotificationSession.js +11 -0
  242. package/dist/Model/User/UserSummary.d.ts +13 -0
  243. package/dist/Model/User/UserSummary.js +11 -0
  244. package/dist/Model/Worker/InfrastructureConfiguration.d.ts +16 -0
  245. package/dist/Model/Worker/InfrastructureConfiguration.js +20 -0
  246. package/dist/Model/Worker/Platform.d.ts +13 -0
  247. package/dist/Model/Worker/Platform.js +24 -0
  248. package/dist/Model/Worker/PlatformImage.d.ts +13 -0
  249. package/dist/Model/Worker/PlatformImage.js +24 -0
  250. package/dist/Model/Workspace/Workspace.d.ts +10 -0
  251. package/dist/Model/Workspace/Workspace.js +14 -0
  252. package/dist/Model/Workspace/WorkspaceMember.d.ts +14 -0
  253. package/dist/Model/Workspace/WorkspaceMember.js +32 -0
  254. package/dist/Model/Workspace/WorkspaceMemberInvite.d.ts +13 -0
  255. package/dist/Model/Workspace/WorkspaceMemberInvite.js +13 -0
  256. package/dist/Model/Workspace/WorkspaceMemberInvite2.d.ts +10 -0
  257. package/dist/Model/Workspace/WorkspaceMemberInvite2.js +19 -0
  258. package/dist/Model/Workspace/WorkspaceMemberInviteState.d.ts +11 -0
  259. package/dist/Model/Workspace/WorkspaceMemberInviteState.js +19 -0
  260. package/dist/Model/Workspace/WorkspaceMemberRole.d.ts +4 -0
  261. package/dist/Model/Workspace/WorkspaceMemberRole.js +4 -0
  262. package/dist/ResourceNamespace.d.ts +2 -0
  263. package/dist/ResourceNamespace.js +2 -0
  264. package/dist/Service/AccessTokenEndpoint.d.ts +11 -0
  265. package/dist/Service/AccessTokenEndpoint.js +82 -0
  266. package/dist/Service/AdapterConnectionEndpoint.d.ts +28 -0
  267. package/dist/Service/AdapterConnectionEndpoint.js +124 -0
  268. package/dist/Service/AdapterEndpoint.d.ts +12 -0
  269. package/dist/Service/AdapterEndpoint.js +64 -0
  270. package/dist/Service/ChannelEndpoint.d.ts +13 -0
  271. package/dist/Service/ChannelEndpoint.js +96 -0
  272. package/dist/Service/CodeDeployEndpoint.d.ts +9 -0
  273. package/dist/Service/CodeDeployEndpoint.js +56 -0
  274. package/dist/Service/CodeSourceStrategiesEndpoint.d.ts +8 -0
  275. package/dist/Service/CodeSourceStrategiesEndpoint.js +13 -0
  276. package/dist/Service/CollectionsEndpoint.d.ts +11 -0
  277. package/dist/Service/CollectionsEndpoint.js +54 -0
  278. package/dist/Service/CommandExecutionEndpoint.d.ts +14 -0
  279. package/dist/Service/CommandExecutionEndpoint.js +60 -0
  280. package/dist/Service/ConfigEndpoint.d.ts +8 -0
  281. package/dist/Service/ConfigEndpoint.js +46 -0
  282. package/dist/Service/ConfigurationEndpoint.d.ts +20 -0
  283. package/dist/Service/ConfigurationEndpoint.js +53 -0
  284. package/dist/Service/Endpoint.d.ts +16 -0
  285. package/dist/Service/Endpoint.js +185 -0
  286. package/dist/Service/FirewallEndpoint.d.ts +29 -0
  287. package/dist/Service/FirewallEndpoint.js +88 -0
  288. package/dist/Service/FlowEndpoint.d.ts +12 -0
  289. package/dist/Service/FlowEndpoint.js +84 -0
  290. package/dist/Service/FlowRunEndpoint.d.ts +21 -0
  291. package/dist/Service/FlowRunEndpoint.js +93 -0
  292. package/dist/Service/FlowRunRequestEndpoint.d.ts +6 -0
  293. package/dist/Service/FlowRunRequestEndpoint.js +32 -0
  294. package/dist/Service/FlowRunStatsEndpoint.d.ts +5 -0
  295. package/dist/Service/FlowRunStatsEndpoint.js +21 -0
  296. package/dist/Service/HealthAlertEndpoint.d.ts +13 -0
  297. package/dist/Service/HealthAlertEndpoint.js +36 -0
  298. package/dist/Service/InboxEndpoint.d.ts +8 -0
  299. package/dist/Service/InboxEndpoint.js +20 -0
  300. package/dist/Service/LogEndpoint.d.ts +18 -0
  301. package/dist/Service/LogEndpoint.js +127 -0
  302. package/dist/Service/PlatformEndpoint.d.ts +9 -0
  303. package/dist/Service/PlatformEndpoint.js +18 -0
  304. package/dist/Service/PlatformLanguageEndpoint.d.ts +6 -0
  305. package/dist/Service/PlatformLanguageEndpoint.js +7 -0
  306. package/dist/Service/ProjectEndpoint.d.ts +11 -0
  307. package/dist/Service/ProjectEndpoint.js +63 -0
  308. package/dist/Service/ProjectEnvironmentEndpoint.d.ts +8 -0
  309. package/dist/Service/ProjectEnvironmentEndpoint.js +48 -0
  310. package/dist/Service/ProviderTokenEndpoint.d.ts +16 -0
  311. package/dist/Service/ProviderTokenEndpoint.js +43 -0
  312. package/dist/Service/RunnerEndpoint.d.ts +6 -0
  313. package/dist/Service/RunnerEndpoint.js +28 -0
  314. package/dist/Service/RunnerPoolEndpoint.d.ts +9 -0
  315. package/dist/Service/RunnerPoolEndpoint.js +20 -0
  316. package/dist/Service/SearchEndpoint.d.ts +6 -0
  317. package/dist/Service/SearchEndpoint.js +14 -0
  318. package/dist/Service/SourcesAccountEndpoint.d.ts +16 -0
  319. package/dist/Service/SourcesAccountEndpoint.js +85 -0
  320. package/dist/Service/StorageEndpoint.d.ts +20 -0
  321. package/dist/Service/StorageEndpoint.js +130 -0
  322. package/dist/Service/SubscriberEndpoint.d.ts +9 -0
  323. package/dist/Service/SubscriberEndpoint.js +29 -0
  324. package/dist/Service/TriggerEndpoint.d.ts +10 -0
  325. package/dist/Service/TriggerEndpoint.js +67 -0
  326. package/dist/Service/UserActionEndpoint.d.ts +16 -0
  327. package/dist/Service/UserActionEndpoint.js +96 -0
  328. package/dist/Service/UserEndpoint.d.ts +29 -0
  329. package/dist/Service/UserEndpoint.js +178 -0
  330. package/dist/Service/WorkspaceEndpoint.d.ts +9 -0
  331. package/dist/Service/WorkspaceEndpoint.js +49 -0
  332. package/dist/Service/WorkspaceMemberEndpoint.d.ts +14 -0
  333. package/dist/Service/WorkspaceMemberEndpoint.js +77 -0
  334. package/dist/Utils.d.ts +11 -0
  335. package/dist/Utils.js +68 -0
  336. package/dist/index.d.ts +169 -0
  337. package/dist/index.js +154 -0
  338. package/dist/main.d.ts +1 -0
  339. package/dist/main.js +1 -0
  340. package/dist/version.d.ts +1 -0
  341. package/dist/version.js +1 -0
  342. package/package.json +72 -0
@@ -0,0 +1,315 @@
1
+ import { JsonSerializable } from '../../Model/JsonSerializable.js';
2
+ import { VERSION } from '../../version.js';
3
+ import { ClientError } from '../ClientError.js';
4
+ import { HttpStatus } from '../HttpStatus.js';
5
+ import { HttpClient } from '../HttpClient.js';
6
+ import { HttpClientRequest } from '../HttpClientRequest.js';
7
+ import { OAuthClientToken } from '../OAuthClientToken.js';
8
+ export class OAuthClient {
9
+ options;
10
+ debug = false;
11
+ oauthClientToken = null;
12
+ refreshTokenPromise = null;
13
+ version = null;
14
+ parseErrorHandler = null;
15
+ constructor(options) {
16
+ this.options = options;
17
+ this.initDefaultHeaders();
18
+ }
19
+ async authenticate(username = null, password = null) {
20
+ // TODO: should we encrypt the password in the client (or is https save enough)?
21
+ try {
22
+ if (username !== null && username !== undefined && password !== null && password !== undefined) {
23
+ // Password flow / Owner Credentials grant
24
+ const params = {
25
+ grant_type: 'password',
26
+ client_id: this.options.clientId,
27
+ username,
28
+ password,
29
+ scope: this.options.scopes.join(' '),
30
+ };
31
+ if (!this.isPublicClient()) {
32
+ params.client_secret = this.options.clientSecret;
33
+ }
34
+ const rawAuthToken = await this.requestToken(params);
35
+ this.oauthClientToken = this.tokenToOauthClientToken(rawAuthToken);
36
+ return true;
37
+ }
38
+ if (this.options.clientId !== null && this.options.clientSecret !== null) {
39
+ // Client credentials flow (only for confidential clients)
40
+ const rawAuthToken = await this.requestToken({
41
+ grant_type: 'client_credentials',
42
+ client_id: this.options.clientId,
43
+ client_secret: this.options.clientSecret,
44
+ scope: this.options.scopes.join(' '),
45
+ });
46
+ this.oauthClientToken = this.tokenToOauthClientToken(rawAuthToken);
47
+ }
48
+ return true;
49
+ }
50
+ catch (requestError) {
51
+ if (this.debug) {
52
+ console.debug('[Client] Error during authentication', requestError);
53
+ }
54
+ throw ClientError.fromError(requestError);
55
+ }
56
+ }
57
+ async refreshToken() {
58
+ if (this.debug) {
59
+ console.debug('[OAuthClient] refresh token');
60
+ }
61
+ if (this.oauthClientToken === null) {
62
+ throw new Error('unable to refresh token, auth token not set');
63
+ }
64
+ if (this.oauthClientToken.refresh_token === undefined || this.oauthClientToken.refresh_token === null || this.oauthClientToken.refresh_token === '') {
65
+ throw new Error('unable to refresh token, refresh token not set');
66
+ }
67
+ try {
68
+ const params = {
69
+ grant_type: 'refresh_token',
70
+ client_id: this.options.clientId,
71
+ refresh_token: this.oauthClientToken.refresh_token,
72
+ scope: this.options.scopes.join(' '),
73
+ };
74
+ if (!this.isPublicClient()) {
75
+ params.client_secret = this.options.clientSecret;
76
+ }
77
+ const rawAuthToken = await this.requestToken(params);
78
+ this.oauthClientToken = this.tokenToOauthClientToken(rawAuthToken);
79
+ }
80
+ catch (e) {
81
+ if (e instanceof ClientError) {
82
+ // A refresh grant rejected by the server (4xx — the refresh token is
83
+ // expired/revoked/invalid_grant) means the session is irrecoverable and
84
+ // the user must re-authenticate. Surface it as 401 Unauthorized so
85
+ // consumers sign out and redirect to login instead of showing a generic
86
+ // error. Transient failures (network / 5xx) are rethrown unchanged so a
87
+ // hiccup doesn't force a logout.
88
+ if (e.httpStatus !== null && e.httpStatus >= 400 && e.httpStatus < 500) {
89
+ throw new ClientError('Refresh token rejected, re-authentication required', HttpStatus.HTTP_UNAUTHORIZED);
90
+ }
91
+ throw e;
92
+ }
93
+ throw ClientError.fromError(e);
94
+ }
95
+ }
96
+ isPublicClient() {
97
+ return this.options.clientSecret === null || this.options.clientSecret === '';
98
+ }
99
+ /**
100
+ * Performs an OAuth token request (password, client_credentials or refresh_token grant) and
101
+ * returns the raw token response. On a non-ok response it throws a ClientError carrying the
102
+ * server's HTTP status and, when the body is JSON, its structured error message.
103
+ */
104
+ async requestToken(params) {
105
+ const response = await fetch(this.getApiEndpointUrl(this.options.accessTokenUri), {
106
+ method: 'POST',
107
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
108
+ body: new URLSearchParams(params).toString(),
109
+ });
110
+ if (!response.ok) {
111
+ const clientError = new ClientError(response.statusText || 'Token request failed', response.status);
112
+ // The token endpoint bypasses HttpClient (and authenticate() bypasses Endpoint.toApiError),
113
+ // so without this the server's body is discarded and callers only see the generic HTTP
114
+ // statusText. Attach the body and surface its structured OAuth error message directly so a
115
+ // failed login shows e.g. an invalid-credentials reason. Mirrors HttpClient.request() +
116
+ // Endpoint.toApiError(). The refresh path replaces this message with a 401, so it's unaffected.
117
+ try {
118
+ const data = await response.json();
119
+ clientError.response = {
120
+ status: response.status,
121
+ statusText: response.statusText,
122
+ data,
123
+ };
124
+ const apiMessage = data?.error?.message;
125
+ if (apiMessage !== undefined && apiMessage !== null && apiMessage !== '') {
126
+ clientError.message = apiMessage;
127
+ }
128
+ }
129
+ catch {
130
+ // Response body is not JSON — leave response/message as-is
131
+ }
132
+ throw clientError;
133
+ }
134
+ return response.json();
135
+ }
136
+ isTokenExpired() {
137
+ if (this.oauthClientToken === null) {
138
+ throw new Error('No token defined');
139
+ }
140
+ return OAuthClientToken.isExpired(this.oauthClientToken);
141
+ }
142
+ async request(action, parameters = null, method = 'GET', signWithOauthToken = true) {
143
+ if (signWithOauthToken) {
144
+ // A single null check both guards and narrows the token type. No access token at
145
+ // all is an auth failure (401), so consumers route it to the same sign-out path as
146
+ // a rejected refresh.
147
+ if (this.oauthClientToken === null) {
148
+ throw new ClientError('Unable to perform request, access token not provided', HttpStatus.HTTP_UNAUTHORIZED);
149
+ }
150
+ if (OAuthClientToken.isExpired(this.oauthClientToken)) {
151
+ if (this.refreshTokenPromise === null) {
152
+ this.refreshTokenPromise = this.refreshToken();
153
+ try {
154
+ await this.refreshTokenPromise;
155
+ }
156
+ finally {
157
+ // Always clear, even on failure, so a single failed refresh doesn't
158
+ // poison every later request with the same rejected promise (e.g.
159
+ // after the user re-authenticates).
160
+ this.refreshTokenPromise = null;
161
+ }
162
+ }
163
+ else {
164
+ await this.refreshTokenPromise;
165
+ }
166
+ }
167
+ }
168
+ const requestData = this.createRequestData(action, parameters, method, signWithOauthToken);
169
+ if (this.debug) {
170
+ console.debug('[OAuthClient] Request: ' + requestData.method.toUpperCase() + ' ' + requestData.getFullUrl(), { headers: requestData.headers });
171
+ }
172
+ try {
173
+ const response = await HttpClient.request(requestData);
174
+ return response.body;
175
+ }
176
+ catch (error) {
177
+ if (!(error instanceof ClientError)) {
178
+ const clientError = ClientError.fromError(error);
179
+ if (this.debug) {
180
+ console.error('[Client] Error:', { error, clientError });
181
+ }
182
+ throw clientError;
183
+ }
184
+ if (this.debug) {
185
+ console.error('[Client] Error:', { error });
186
+ }
187
+ throw error;
188
+ }
189
+ }
190
+ isAuthenticated() {
191
+ // TODO: other ways to determine if the client is authenticated?
192
+ return this.oauthClientToken !== null && this.oauthClientToken !== undefined;
193
+ }
194
+ getToken() {
195
+ return this.oauthClientToken;
196
+ }
197
+ setToken(token) {
198
+ this.oauthClientToken = token;
199
+ }
200
+ unsetToken() {
201
+ this.oauthClientToken = null;
202
+ }
203
+ enableDebug() {
204
+ this.debug = true;
205
+ }
206
+ disableDebug() {
207
+ this.debug = false;
208
+ }
209
+ isDebugEnabled() {
210
+ return this.debug;
211
+ }
212
+ setParseErrorHandler(handler) {
213
+ this.parseErrorHandler = handler;
214
+ }
215
+ reportParseError(message, context) {
216
+ if (this.parseErrorHandler !== null) {
217
+ this.parseErrorHandler(message, context);
218
+ return;
219
+ }
220
+ console.error(message, context);
221
+ }
222
+ defaultHeaders = {};
223
+ getDefaultHeaders() {
224
+ return this.defaultHeaders;
225
+ }
226
+ initDefaultHeaders() {
227
+ const userAgentInfo = {
228
+ version: VERSION,
229
+ language: 'Javascript',
230
+ language_version: '',
231
+ publisher: 'Attlaz',
232
+ };
233
+ const headers = { 'X-Attlaz-Client': JSON.stringify(userAgentInfo) };
234
+ if (this.isNodeEnvironment()) {
235
+ headers['User-Agent'] = 'Attlaz Http/' + VERSION;
236
+ }
237
+ this.defaultHeaders = headers;
238
+ }
239
+ addDefaultHeader(header, value) {
240
+ this.defaultHeaders[header] = value;
241
+ }
242
+ setVersion(version) {
243
+ this.version = version;
244
+ }
245
+ isNodeEnvironment() {
246
+ return typeof process !== 'undefined' && process.versions !== null && process.versions.node !== null;
247
+ }
248
+ tokenToOauthClientToken(oauthToken) {
249
+ let scopes = '';
250
+ if (Object.prototype.hasOwnProperty.call(oauthToken, 'scopes') && oauthToken.scopes !== undefined) {
251
+ scopes = oauthToken.scopes;
252
+ }
253
+ else if (Object.prototype.hasOwnProperty.call(oauthToken, 'scope') && oauthToken.scope !== undefined) {
254
+ scopes = oauthToken.scope;
255
+ }
256
+ const refreshToken = oauthToken.refresh_token === undefined || oauthToken.refresh_token === null ? null : oauthToken.refresh_token;
257
+ const token = new OAuthClientToken(oauthToken.access_token, oauthToken.token_type, refreshToken, scopes);
258
+ const t = new Date();
259
+ t.setSeconds(t.getSeconds() + oauthToken.expires_in);
260
+ token.expires = t;
261
+ return token;
262
+ }
263
+ getApiEndpointUrl(uri) {
264
+ if (uri.startsWith('http://') || uri.startsWith('https://')) {
265
+ return uri;
266
+ }
267
+ return this.options.apiEndpoint.replace(/\/+$/, '') + '/' + uri.replace(/^\/+/g, '');
268
+ }
269
+ createRequestData(action, parameters = null, method = 'GET', signWithOauthToken = true) {
270
+ const url = this.getApiEndpointUrl(action);
271
+ let requestData = new HttpClientRequest(url, method);
272
+ requestData.headers = this.getDefaultHeaders();
273
+ if (this.version !== null) {
274
+ requestData.setHeader('Attlaz-API-Version', this.version);
275
+ }
276
+ if ((method === 'POST' || method === 'DELETE' || method === 'PUT') && parameters !== null && parameters !== undefined) {
277
+ if (typeof parameters === 'object') {
278
+ requestData.body = JsonSerializable.stringify(parameters);
279
+ }
280
+ else if (typeof parameters === 'string') {
281
+ requestData.body = parameters;
282
+ }
283
+ else {
284
+ console.error('Unknown parameter type: ' + typeof parameters);
285
+ }
286
+ requestData.setJsonHeader();
287
+ }
288
+ if (method === 'GET' && parameters !== null && parameters !== undefined) {
289
+ const params = parameters;
290
+ Object.keys(params).forEach((key) => {
291
+ requestData.addQueryParam(key, params[key]);
292
+ });
293
+ }
294
+ if (signWithOauthToken) {
295
+ // request() already ensured a present, non-expired token; this guard only narrows
296
+ // the type before signing.
297
+ if (this.oauthClientToken === null) {
298
+ throw new ClientError('Unable to perform request, access token not provided', HttpStatus.HTTP_UNAUTHORIZED);
299
+ }
300
+ requestData = this.signRequest(requestData, this.oauthClientToken);
301
+ }
302
+ return requestData;
303
+ }
304
+ signRequest(requestObject, token) {
305
+ const tokenType = token.token_type;
306
+ const accessToken = token.access_token;
307
+ if (tokenType !== undefined && tokenType.toLowerCase() === 'bearer') {
308
+ requestObject.setHeader('Authorization', 'Bearer ' + accessToken);
309
+ }
310
+ else {
311
+ throw new ClientError('Unsupported token type "' + (tokenType ?? 'undefined') + '": only Bearer tokens are supported');
312
+ }
313
+ return requestObject;
314
+ }
315
+ }
@@ -0,0 +1,15 @@
1
+ import { StateAware } from '../StateAware.js';
2
+ import { State } from '../State.js';
3
+ export declare class UserAccessToken implements StateAware {
4
+ id: string;
5
+ userId: string;
6
+ ipAllowList: string[];
7
+ name: string;
8
+ scopes: string[];
9
+ token: string;
10
+ createdAt: Date;
11
+ lastUsedAt: Date | null;
12
+ expiresAt: Date | null;
13
+ state: State;
14
+ static parse(rawUser: any): UserAccessToken;
15
+ }
@@ -0,0 +1,28 @@
1
+ import { State } from '../State.js';
2
+ import { Utils } from '../../Utils.js';
3
+ export class UserAccessToken {
4
+ id;
5
+ userId;
6
+ ipAllowList = [];
7
+ name;
8
+ scopes = [];
9
+ token;
10
+ createdAt;
11
+ lastUsedAt = null;
12
+ expiresAt = null;
13
+ state = State.Active;
14
+ static parse(rawUser) {
15
+ const userAccessToken = new UserAccessToken();
16
+ userAccessToken.id = rawUser.id;
17
+ userAccessToken.userId = rawUser.user;
18
+ userAccessToken.ipAllowList = rawUser.ip_allow_list;
19
+ userAccessToken.name = rawUser.name;
20
+ userAccessToken.scopes = rawUser.scopes;
21
+ userAccessToken.token = rawUser.token;
22
+ userAccessToken.createdAt = Utils.parseRawDate(rawUser.created_at);
23
+ userAccessToken.lastUsedAt = rawUser.last_used_at === null ? null : Utils.parseRawDate(rawUser.last_used_at);
24
+ userAccessToken.expiresAt = rawUser.expires_at === null ? null : Utils.parseRawDate(rawUser.expires_at);
25
+ userAccessToken.state = State.fromString(rawUser.state);
26
+ return userAccessToken;
27
+ }
28
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Display/filter status of a user API key. Mirrors the server enum
3
+ * (Library/Core Attlaz-OAuth/Model/UserAccessTokenStatus). Folds the derived "expired" concept
4
+ * (computed from the expiry date, not stored) on top of the stored state.
5
+ */
6
+ export declare enum UserAccessTokenStatus {
7
+ Active = "active",
8
+ Inactive = "inactive",
9
+ Expired = "expired",
10
+ Revoked = "revoked"
11
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Display/filter status of a user API key. Mirrors the server enum
3
+ * (Library/Core Attlaz-OAuth/Model/UserAccessTokenStatus). Folds the derived "expired" concept
4
+ * (computed from the expiry date, not stored) on top of the stored state.
5
+ */
6
+ export var UserAccessTokenStatus;
7
+ (function (UserAccessTokenStatus) {
8
+ UserAccessTokenStatus["Active"] = "active";
9
+ UserAccessTokenStatus["Inactive"] = "inactive";
10
+ UserAccessTokenStatus["Expired"] = "expired";
11
+ UserAccessTokenStatus["Revoked"] = "revoked";
12
+ })(UserAccessTokenStatus || (UserAccessTokenStatus = {}));
@@ -0,0 +1,14 @@
1
+ import { MetaDataWithIconAware } from '../../Core/MetaDataWithIconAware.js';
2
+ import { ApiRecord } from '../ApiRecord.js';
3
+ export declare class Adapter extends MetaDataWithIconAware {
4
+ id: string;
5
+ vendor: string;
6
+ logo: string | null;
7
+ type: string;
8
+ longDescription: string | null;
9
+ capabilities: string[];
10
+ categoryIds: string[];
11
+ docs: string | null;
12
+ website: string | null;
13
+ static parse(rawAdapter: ApiRecord): Adapter;
14
+ }
@@ -0,0 +1,28 @@
1
+ import { MetaDataWithIconAware } from '../../Core/MetaDataWithIconAware.js';
2
+ export class Adapter extends MetaDataWithIconAware {
3
+ id;
4
+ vendor;
5
+ logo;
6
+ type;
7
+ longDescription;
8
+ capabilities;
9
+ categoryIds;
10
+ docs;
11
+ website;
12
+ static parse(rawAdapter) {
13
+ const adapter = MetaDataWithIconAware.parseMetaData(new Adapter(), rawAdapter);
14
+ // adapter.id = rawAdapter.id as string;
15
+ // adapter.name = rawAdapter.name as string;
16
+ // adapter.description = rawAdapter.description as string;
17
+ adapter.vendor = rawAdapter.vendor;
18
+ adapter.longDescription = rawAdapter.long_description;
19
+ adapter.capabilities = rawAdapter.capabilities;
20
+ // adapter.icon = rawAdapter.icon as string;
21
+ adapter.logo = MetaDataWithIconAware.parseIcon(rawAdapter.logo);
22
+ adapter.type = rawAdapter.type;
23
+ adapter.categoryIds = rawAdapter.categories;
24
+ adapter.docs = rawAdapter.docs;
25
+ adapter.website = rawAdapter.website;
26
+ return adapter;
27
+ }
28
+ }
@@ -0,0 +1,6 @@
1
+ export declare class AdapterCategory {
2
+ id: string;
3
+ slug: string;
4
+ name: string;
5
+ static parse(rawAdapterCategory: any): AdapterCategory;
6
+ }
@@ -0,0 +1,12 @@
1
+ export class AdapterCategory {
2
+ id;
3
+ slug;
4
+ name;
5
+ static parse(rawAdapterCategory) {
6
+ const adapterCategory = new AdapterCategory();
7
+ adapterCategory.id = rawAdapterCategory.id;
8
+ adapterCategory.slug = rawAdapterCategory.slug;
9
+ adapterCategory.name = rawAdapterCategory.name;
10
+ return adapterCategory;
11
+ }
12
+ }
@@ -0,0 +1,12 @@
1
+ import { DataValueValue } from '../DataValue.js';
2
+ export declare class AdapterConfiguration {
3
+ id: string;
4
+ key: string;
5
+ type: string;
6
+ adapter: string;
7
+ name: string;
8
+ description: string;
9
+ default: DataValueValue | null;
10
+ validation: string[];
11
+ static parse(rawAdapterConfiguration: any): AdapterConfiguration;
12
+ }
@@ -0,0 +1,22 @@
1
+ export class AdapterConfiguration {
2
+ id;
3
+ key;
4
+ type;
5
+ adapter;
6
+ name;
7
+ description;
8
+ default;
9
+ validation;
10
+ static parse(rawAdapterConfiguration) {
11
+ const configuration = new AdapterConfiguration();
12
+ configuration.id = rawAdapterConfiguration.id;
13
+ configuration.key = rawAdapterConfiguration.key;
14
+ configuration.type = rawAdapterConfiguration.type;
15
+ configuration.adapter = rawAdapterConfiguration.adapter;
16
+ configuration.name = rawAdapterConfiguration.name;
17
+ configuration.description = rawAdapterConfiguration.description;
18
+ configuration.default = rawAdapterConfiguration.default;
19
+ configuration.validation = rawAdapterConfiguration.validation;
20
+ return configuration;
21
+ }
22
+ }
@@ -0,0 +1,15 @@
1
+ import { StateAware } from '../StateAware.js';
2
+ import { State } from '../State.js';
3
+ import { ApiRecord } from '../ApiRecord.js';
4
+ import { MetaDataAware } from '../../Core/MetaDataAware.js';
5
+ import { AdapterConnectionStatus } from './AdapterConnectionStatus.js';
6
+ export declare class AdapterConnection extends MetaDataAware implements StateAware {
7
+ id: string;
8
+ key: string;
9
+ adapter: string;
10
+ projectId: string;
11
+ status: AdapterConnectionStatus;
12
+ state: State;
13
+ lastUsedAt: Date | null;
14
+ static parse(rawAdapterConnection: ApiRecord): AdapterConnection;
15
+ }
@@ -0,0 +1,24 @@
1
+ import { Utils } from '../../Utils.js';
2
+ import { State } from '../State.js';
3
+ import { MetaDataAware } from '../../Core/MetaDataAware.js';
4
+ import { AdapterConnectionStatus } from './AdapterConnectionStatus.js';
5
+ export class AdapterConnection extends MetaDataAware {
6
+ id;
7
+ key;
8
+ adapter;
9
+ projectId;
10
+ status;
11
+ state = State.Active;
12
+ lastUsedAt = null;
13
+ static parse(rawAdapterConnection) {
14
+ const adapterConnection = MetaDataAware.parseMetaData(new AdapterConnection(), rawAdapterConnection);
15
+ adapterConnection.id = rawAdapterConnection.id;
16
+ adapterConnection.key = rawAdapterConnection.key;
17
+ adapterConnection.adapter = rawAdapterConnection.adapter;
18
+ adapterConnection.projectId = rawAdapterConnection.project;
19
+ adapterConnection.state = State.fromString(rawAdapterConnection.state);
20
+ adapterConnection.status = AdapterConnectionStatus.fromString(rawAdapterConnection.status);
21
+ adapterConnection.lastUsedAt = (rawAdapterConnection.last_used_at === null || rawAdapterConnection.last_used_at === undefined) ? null : Utils.parseRawDate(rawAdapterConnection.last_used_at);
22
+ return adapterConnection;
23
+ }
24
+ }
@@ -0,0 +1,7 @@
1
+ import { DataValueValue } from '../DataValue.js';
2
+ export declare class AdapterConnectionConfigurationValue {
3
+ id: string;
4
+ adapterConnectionId: string;
5
+ configurationId: string;
6
+ value: DataValueValue | null;
7
+ }
@@ -0,0 +1,6 @@
1
+ export class AdapterConnectionConfigurationValue {
2
+ id;
3
+ adapterConnectionId;
4
+ configurationId;
5
+ value;
6
+ }
@@ -0,0 +1,9 @@
1
+ import { DataValueCollection } from '../DataValueCollection.js';
2
+ export declare class AdapterConnectionEvent {
3
+ id: string;
4
+ adapterConnection: string;
5
+ type: string;
6
+ time: Date;
7
+ data: DataValueCollection;
8
+ static parse(rawAdapterConnection: any): AdapterConnectionEvent;
9
+ }
@@ -0,0 +1,18 @@
1
+ import { DataValueCollection } from '../DataValueCollection.js';
2
+ import { Utils } from '../../Utils.js';
3
+ export class AdapterConnectionEvent {
4
+ id;
5
+ adapterConnection;
6
+ type;
7
+ time;
8
+ data;
9
+ static parse(rawAdapterConnection) {
10
+ const adapterConnectionEvent = new AdapterConnectionEvent();
11
+ adapterConnectionEvent.id = rawAdapterConnection.id;
12
+ adapterConnectionEvent.adapterConnection = rawAdapterConnection.adapter_connection;
13
+ adapterConnectionEvent.type = rawAdapterConnection.type;
14
+ adapterConnectionEvent.time = Utils.parseRawDate(rawAdapterConnection.time);
15
+ adapterConnectionEvent.data = DataValueCollection.fromObject(rawAdapterConnection.data);
16
+ return adapterConnectionEvent;
17
+ }
18
+ }
@@ -0,0 +1,9 @@
1
+ export declare enum AdapterConnectionStatus {
2
+ Unknown = "unknown",
3
+ Healthy = "healthy",
4
+ Warning = "warning",
5
+ Critical = "critical"
6
+ }
7
+ export declare namespace AdapterConnectionStatus {
8
+ const fromString: (input: string) => AdapterConnectionStatus;
9
+ }
@@ -0,0 +1,20 @@
1
+ import { Utils } from '../../Utils.js';
2
+ export var AdapterConnectionStatus;
3
+ (function (AdapterConnectionStatus) {
4
+ AdapterConnectionStatus["Unknown"] = "unknown";
5
+ AdapterConnectionStatus["Healthy"] = "healthy";
6
+ AdapterConnectionStatus["Warning"] = "warning";
7
+ AdapterConnectionStatus["Critical"] = "critical";
8
+ })(AdapterConnectionStatus || (AdapterConnectionStatus = {}));
9
+ (function (AdapterConnectionStatus) {
10
+ AdapterConnectionStatus.fromString = (input) => {
11
+ if (input === null) {
12
+ return AdapterConnectionStatus.Unknown;
13
+ }
14
+ const result = Utils.parseEnum(input, AdapterConnectionStatus);
15
+ if (result === null) {
16
+ throw new Error('Unable to parse AdapterConnectionStatus from string: Unknown AdapterConnectionStatus "' + input + '"');
17
+ }
18
+ return result;
19
+ };
20
+ })(AdapterConnectionStatus || (AdapterConnectionStatus = {}));
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Result of `AdapterConnectionEndpoint.testConnection()`.
3
+ *
4
+ * Mirrors the shape produced by Services-Api's `ConnectionTestController`. The
5
+ * server derives `state` mechanically (worst of all `checks` entries: skipped <
6
+ * passed < warning < failed) so consumers can treat it as authoritative for the
7
+ * overall connection status.
8
+ *
9
+ * Kept as a local copy of the server shape; if a third consumer ever needs the
10
+ * same type, lift it to Library/Core (see project plan).
11
+ */
12
+ export type ConnectionTestState = 'passed' | 'warning' | 'failed' | 'skipped';
13
+ export interface TestConnectionCheck {
14
+ /** User-visible label, e.g. "Reach Hue bridge" or "Configuration valid". */
15
+ name: string;
16
+ state: ConnectionTestState;
17
+ /** Wall-clock duration of this check in ms. `0` for checks that never ran. */
18
+ durationMs: number;
19
+ /** Free-form additional info, e.g. "HTTP 200" or "Missing scope: playlist-read". */
20
+ detail?: string;
21
+ }
22
+ export interface TestConnectionResult {
23
+ state: ConnectionTestState;
24
+ checks: TestConnectionCheck[];
25
+ /** Top-level message when nothing meaningful ran (e.g. adapter unknown). */
26
+ error?: string;
27
+ }
28
+ /**
29
+ * Parser for the JSON payload returned by `POST /services/:id/test-connection`.
30
+ * The server emits the shape directly (no envelope), so the parser is mostly
31
+ * identity with a defensive default for missing fields.
32
+ */
33
+ export declare function parseTestConnectionResult(raw: any): TestConnectionResult;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Parser for the JSON payload returned by `POST /services/:id/test-connection`.
3
+ * The server emits the shape directly (no envelope), so the parser is mostly
4
+ * identity with a defensive default for missing fields.
5
+ */
6
+ export function parseTestConnectionResult(raw) {
7
+ return {
8
+ state: (raw.state ?? 'skipped'),
9
+ checks: Array.isArray(raw.checks)
10
+ ? raw.checks.map((c) => ({
11
+ name: String(c.name ?? ''),
12
+ state: (c.state ?? 'skipped'),
13
+ durationMs: Number(c.duration_ms ?? c.durationMs ?? 0),
14
+ ...(c.detail !== undefined && c.detail !== null ? { detail: String(c.detail) } : {}),
15
+ }))
16
+ : [],
17
+ ...(raw.error !== undefined && raw.error !== null ? { error: String(raw.error) } : {}),
18
+ };
19
+ }
@@ -0,0 +1 @@
1
+ export type ApiRecord = Record<string, string | number | boolean | Date | null>;