@factset/frontgate-js-sdk 6.10.3 → 7.0.0

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 (314) hide show
  1. package/CHANGELOG.md +0 -14
  2. package/dist/lib/esnext/FrontgateClient.js +0 -3
  3. package/dist/lib/esnext/FrontgateClient.js.map +1 -1
  4. package/dist/lib/esnext/authentication/index.js +3 -4
  5. package/dist/lib/esnext/authentication/index.js.map +1 -1
  6. package/dist/lib/esnext/common/errors.js +0 -35
  7. package/dist/lib/esnext/common/errors.js.map +1 -1
  8. package/dist/lib/esnext/common/functions.js +0 -84
  9. package/dist/lib/esnext/common/functions.js.map +1 -1
  10. package/dist/lib/esnext/common/interfaces/index.js +0 -1
  11. package/dist/lib/esnext/common/interfaces/index.js.map +1 -1
  12. package/dist/lib/esnext/compat/index.js +0 -3
  13. package/dist/lib/esnext/compat/index.js.map +1 -1
  14. package/dist/lib/esnext/connection/index.js +19 -6
  15. package/dist/lib/esnext/connection/index.js.map +1 -1
  16. package/dist/lib/esnext/connection/util/functions.js +0 -56
  17. package/dist/lib/esnext/connection/util/functions.js.map +1 -1
  18. package/dist/lib/esnext/index.js +0 -1
  19. package/dist/lib/esnext/index.js.map +1 -1
  20. package/dist/lib/esnext/message/index.js +1 -1
  21. package/dist/lib/esnext/message/index.js.map +1 -1
  22. package/dist/lib/esnext/message/interfaces/index.js +0 -1
  23. package/dist/lib/esnext/message/interfaces/index.js.map +1 -1
  24. package/dist/lib/esnext/message/request/TransportLayerClientRequestHeader.js +1 -1
  25. package/dist/lib/esnext/message/request/TransportLayerClientRequestHeader.js.map +1 -1
  26. package/dist/lib/esnext/message/request/raw/example/CreateNotationSearchRequest.js +1 -1
  27. package/dist/lib/esnext/message/request/raw/example/CreateNotationSearchRequest.js.map +1 -1
  28. package/dist/lib/esnext/message/request/raw/index.js +0 -1
  29. package/dist/lib/esnext/message/request/raw/index.js.map +1 -1
  30. package/dist/lib/esnext/message/response/index.js +0 -5
  31. package/dist/lib/esnext/message/response/index.js.map +1 -1
  32. package/dist/lib/esnext/message/update/index.js +0 -1
  33. package/dist/lib/esnext/message/update/index.js.map +1 -1
  34. package/dist/lib/esnext/mixins/EndpointRequestMixin.js +1 -1
  35. package/dist/lib/esnext/mixins/EndpointRequestMixin.js.map +1 -1
  36. package/dist/lib/esnext/mixins/HTTPProxyRequestMixin.js.map +1 -1
  37. package/dist/lib/esnext/mixins/RemoteLoggerMixin.js +30 -0
  38. package/dist/lib/esnext/mixins/RemoteLoggerMixin.js.map +1 -0
  39. package/dist/lib/esnext/mixins/auth/AppAuthMixin.js +79 -11
  40. package/dist/lib/esnext/mixins/auth/AppAuthMixin.js.map +1 -1
  41. package/dist/lib/esnext/mixins/auth/SessionAuthMixin.js +76 -36
  42. package/dist/lib/esnext/mixins/auth/SessionAuthMixin.js.map +1 -1
  43. package/dist/lib/esnext/mixins/auth/UserCredentialAuthMixin.js +82 -12
  44. package/dist/lib/esnext/mixins/auth/UserCredentialAuthMixin.js.map +1 -1
  45. package/dist/lib/esnext/mixins/auth/UserPasswordAuthMixin.js +80 -13
  46. package/dist/lib/esnext/mixins/auth/UserPasswordAuthMixin.js.map +1 -1
  47. package/dist/lib/esnext/mixins/auth/index.js +0 -31
  48. package/dist/lib/esnext/mixins/auth/index.js.map +1 -1
  49. package/dist/lib/esnext/mixins/index.js +1 -0
  50. package/dist/lib/esnext/mixins/index.js.map +1 -1
  51. package/dist/lib/esnext/version.js +1 -1
  52. package/dist/lib/esnext/version.js.map +1 -1
  53. package/dist/lib/node/FrontgateClient.js +0 -3
  54. package/dist/lib/node/FrontgateClient.js.map +1 -1
  55. package/dist/lib/node/authentication/index.js +4 -4
  56. package/dist/lib/node/authentication/index.js.map +1 -1
  57. package/dist/lib/node/common/errors.js +1 -41
  58. package/dist/lib/node/common/errors.js.map +1 -1
  59. package/dist/lib/node/common/functions.js +0 -92
  60. package/dist/lib/node/common/functions.js.map +1 -1
  61. package/dist/lib/node/common/interfaces/index.js +0 -1
  62. package/dist/lib/node/common/interfaces/index.js.map +1 -1
  63. package/dist/lib/node/compat/index.js +0 -3
  64. package/dist/lib/node/compat/index.js.map +1 -1
  65. package/dist/lib/node/connection/index.js +20 -6
  66. package/dist/lib/node/connection/index.js.map +1 -1
  67. package/dist/lib/node/connection/util/functions.js +0 -63
  68. package/dist/lib/node/connection/util/functions.js.map +1 -1
  69. package/dist/lib/node/index.js +1 -3
  70. package/dist/lib/node/index.js.map +1 -1
  71. package/dist/lib/node/message/index.js +2 -1
  72. package/dist/lib/node/message/index.js.map +1 -1
  73. package/dist/lib/node/message/interfaces/index.js +0 -1
  74. package/dist/lib/node/message/interfaces/index.js.map +1 -1
  75. package/dist/lib/node/message/request/TransportLayerClientRequestHeader.js +3 -3
  76. package/dist/lib/node/message/request/TransportLayerClientRequestHeader.js.map +1 -1
  77. package/dist/lib/node/message/request/raw/example/CreateNotationSearchRequest.js +3 -3
  78. package/dist/lib/node/message/request/raw/example/CreateNotationSearchRequest.js.map +1 -1
  79. package/dist/lib/node/message/request/raw/index.js +0 -1
  80. package/dist/lib/node/message/request/raw/index.js.map +1 -1
  81. package/dist/lib/node/message/response/index.js +0 -5
  82. package/dist/lib/node/message/response/index.js.map +1 -1
  83. package/dist/lib/node/message/update/index.js +0 -1
  84. package/dist/lib/node/message/update/index.js.map +1 -1
  85. package/dist/lib/node/mixins/EndpointRequestMixin.js +2 -2
  86. package/dist/lib/node/mixins/EndpointRequestMixin.js.map +1 -1
  87. package/dist/lib/node/mixins/HTTPProxyRequestMixin.js.map +1 -1
  88. package/dist/lib/node/mixins/RemoteLoggerMixin.js +34 -0
  89. package/dist/lib/node/mixins/RemoteLoggerMixin.js.map +1 -0
  90. package/dist/lib/node/mixins/auth/AppAuthMixin.js +78 -10
  91. package/dist/lib/node/mixins/auth/AppAuthMixin.js.map +1 -1
  92. package/dist/lib/node/mixins/auth/SessionAuthMixin.js +75 -35
  93. package/dist/lib/node/mixins/auth/SessionAuthMixin.js.map +1 -1
  94. package/dist/lib/node/mixins/auth/UserCredentialAuthMixin.js +80 -10
  95. package/dist/lib/node/mixins/auth/UserCredentialAuthMixin.js.map +1 -1
  96. package/dist/lib/node/mixins/auth/UserPasswordAuthMixin.js +78 -11
  97. package/dist/lib/node/mixins/auth/UserPasswordAuthMixin.js.map +1 -1
  98. package/dist/lib/node/mixins/auth/index.js +0 -33
  99. package/dist/lib/node/mixins/auth/index.js.map +1 -1
  100. package/dist/lib/node/mixins/index.js +1 -0
  101. package/dist/lib/node/mixins/index.js.map +1 -1
  102. package/dist/lib/node/version.js +1 -1
  103. package/dist/lib/node/version.js.map +1 -1
  104. package/dist/lib/types/FrontgateClient.d.ts +0 -1
  105. package/dist/lib/types/authentication/index.d.ts +3 -4
  106. package/dist/lib/types/authentication/util/ChallengeResolver.d.ts +2 -1
  107. package/dist/lib/types/common/errors.d.ts +0 -21
  108. package/dist/lib/types/common/functions.d.ts +0 -8
  109. package/dist/lib/types/common/interfaces/index.d.ts +0 -1
  110. package/dist/lib/types/compat/index.d.ts +0 -3
  111. package/dist/lib/types/connection/index.d.ts +16 -6
  112. package/dist/lib/types/connection/util/functions.d.ts +0 -18
  113. package/dist/lib/types/index.d.ts +0 -1
  114. package/dist/lib/types/message/index.d.ts +1 -1
  115. package/dist/lib/types/message/interfaces/index.d.ts +0 -1
  116. package/dist/lib/types/message/request/TransportLayerClientRequestHeader.d.ts +1 -0
  117. package/dist/lib/types/message/request/raw/index.d.ts +0 -1
  118. package/dist/lib/types/message/response/index.d.ts +0 -5
  119. package/dist/lib/types/message/update/index.d.ts +0 -1
  120. package/dist/lib/types/mixins/AuthTokenRequestMixin.d.ts +2 -2
  121. package/dist/lib/types/mixins/EndpointRequestMixin.d.ts +2 -2
  122. package/dist/lib/types/mixins/HTTPProxyRequestMixin.d.ts +2 -4
  123. package/dist/lib/types/mixins/LoggerMixin.d.ts +2 -2
  124. package/dist/lib/types/mixins/MessageCompressorMixin.d.ts +2 -2
  125. package/dist/lib/types/mixins/OpenTelemetryMixin.d.ts +2 -2
  126. package/dist/lib/types/mixins/PingMixin.d.ts +2 -2
  127. package/dist/lib/types/mixins/ReconnectMixin.d.ts +2 -2
  128. package/dist/lib/types/mixins/RemoteLoggerMixin.d.ts +16 -0
  129. package/dist/lib/types/mixins/RequestMixin.d.ts +2 -2
  130. package/dist/lib/types/mixins/auth/AppAuthMixin.d.ts +16 -8
  131. package/dist/lib/types/mixins/auth/CookieTokenAuthMixin.d.ts +2 -2
  132. package/dist/lib/types/mixins/auth/FetchAuthenticationMixin.d.ts +2 -2
  133. package/dist/lib/types/mixins/auth/SessionAuthMixin.d.ts +11 -5
  134. package/dist/lib/types/mixins/auth/TokenAuthMixin.d.ts +2 -2
  135. package/dist/lib/types/mixins/auth/UserCredentialAuthMixin.d.ts +16 -8
  136. package/dist/lib/types/mixins/auth/UserPasswordAuthMixin.d.ts +16 -8
  137. package/dist/lib/types/mixins/auth/index.d.ts +0 -8
  138. package/dist/lib/types/mixins/connection/FrontgateWSMixin.d.ts +2 -2
  139. package/dist/lib/types/mixins/index.d.ts +2 -1
  140. package/dist/lib/types/mixins/subscription/EndpointSubscriptionMixin.d.ts +2 -2
  141. package/dist/lib/types/mixins/subscription/RawSubscriptionMixin.d.ts +2 -2
  142. package/dist/lib/umd/mdg2.client.min.umd.js +1 -12
  143. package/dist/lib/umd/mdg2.client.umd.js +3891 -7990
  144. package/package.json +7 -11
  145. package/dist/lib/esnext/Mdg2Client.js +0 -186
  146. package/dist/lib/esnext/Mdg2Client.js.map +0 -1
  147. package/dist/lib/esnext/authentication/AbstractAuthentication.js +0 -50
  148. package/dist/lib/esnext/authentication/AbstractAuthentication.js.map +0 -1
  149. package/dist/lib/esnext/authentication/AppAuthentication.js +0 -71
  150. package/dist/lib/esnext/authentication/AppAuthentication.js.map +0 -1
  151. package/dist/lib/esnext/authentication/AuthenticationInterface.js +0 -2
  152. package/dist/lib/esnext/authentication/AuthenticationInterface.js.map +0 -1
  153. package/dist/lib/esnext/authentication/CookieTokenAuthentication.js +0 -19
  154. package/dist/lib/esnext/authentication/CookieTokenAuthentication.js.map +0 -1
  155. package/dist/lib/esnext/authentication/TokenAuthentication.js +0 -43
  156. package/dist/lib/esnext/authentication/TokenAuthentication.js.map +0 -1
  157. package/dist/lib/esnext/authentication/UserCredentialAuthentication.js +0 -74
  158. package/dist/lib/esnext/authentication/UserCredentialAuthentication.js.map +0 -1
  159. package/dist/lib/esnext/authentication/UserPasswordAuthentication.js +0 -72
  160. package/dist/lib/esnext/authentication/UserPasswordAuthentication.js.map +0 -1
  161. package/dist/lib/esnext/common/Mdg2ClientOptions.js +0 -2
  162. package/dist/lib/esnext/common/Mdg2ClientOptions.js.map +0 -1
  163. package/dist/lib/esnext/common/constants.js +0 -11
  164. package/dist/lib/esnext/common/constants.js.map +0 -1
  165. package/dist/lib/esnext/common/interfaces/observe/ObserveOptions.js +0 -2
  166. package/dist/lib/esnext/common/interfaces/observe/ObserveOptions.js.map +0 -1
  167. package/dist/lib/esnext/connection/AbstractFrontgateConnection.js +0 -325
  168. package/dist/lib/esnext/connection/AbstractFrontgateConnection.js.map +0 -1
  169. package/dist/lib/esnext/connection/ConnectionInterface.js +0 -2
  170. package/dist/lib/esnext/connection/ConnectionInterface.js.map +0 -1
  171. package/dist/lib/esnext/connection/FrontgateWSConnection.js +0 -282
  172. package/dist/lib/esnext/connection/FrontgateWSConnection.js.map +0 -1
  173. package/dist/lib/esnext/connection/JobPromise.js +0 -3
  174. package/dist/lib/esnext/connection/JobPromise.js.map +0 -1
  175. package/dist/lib/esnext/connection/LatencyHandler.js +0 -2
  176. package/dist/lib/esnext/connection/LatencyHandler.js.map +0 -1
  177. package/dist/lib/esnext/connection/LatencyTracker.js +0 -48
  178. package/dist/lib/esnext/connection/LatencyTracker.js.map +0 -1
  179. package/dist/lib/esnext/connection/MessageProcessor.js +0 -2
  180. package/dist/lib/esnext/connection/MessageProcessor.js.map +0 -1
  181. package/dist/lib/esnext/connection/util/Encoding.js +0 -15
  182. package/dist/lib/esnext/connection/util/Encoding.js.map +0 -1
  183. package/dist/lib/esnext/core/RequestModule.js +0 -350
  184. package/dist/lib/esnext/core/RequestModule.js.map +0 -1
  185. package/dist/lib/esnext/core/SubscriptionModule.js +0 -105
  186. package/dist/lib/esnext/core/SubscriptionModule.js.map +0 -1
  187. package/dist/lib/esnext/core/subscription/EndpointHandler.js +0 -122
  188. package/dist/lib/esnext/core/subscription/EndpointHandler.js.map +0 -1
  189. package/dist/lib/esnext/core/subscription/SubjectManager.js +0 -40
  190. package/dist/lib/esnext/core/subscription/SubjectManager.js.map +0 -1
  191. package/dist/lib/esnext/message/MessageFactory.js +0 -37
  192. package/dist/lib/esnext/message/MessageFactory.js.map +0 -1
  193. package/dist/lib/esnext/message/guards.js +0 -22
  194. package/dist/lib/esnext/message/guards.js.map +0 -1
  195. package/dist/lib/esnext/message/interfaces/JobObservable.js +0 -2
  196. package/dist/lib/esnext/message/interfaces/JobObservable.js.map +0 -1
  197. package/dist/lib/esnext/message/request/raw/RawRequestFactory.js +0 -19
  198. package/dist/lib/esnext/message/request/raw/RawRequestFactory.js.map +0 -1
  199. package/dist/lib/esnext/message/response/AuthenticationByTokenResponse.js +0 -2
  200. package/dist/lib/esnext/message/response/AuthenticationByTokenResponse.js.map +0 -1
  201. package/dist/lib/esnext/message/response/CancelSubscriptionResponse.js +0 -4
  202. package/dist/lib/esnext/message/response/CancelSubscriptionResponse.js.map +0 -1
  203. package/dist/lib/esnext/message/response/LoadNotificationMessage.js +0 -2
  204. package/dist/lib/esnext/message/response/LoadNotificationMessage.js.map +0 -1
  205. package/dist/lib/esnext/message/response/PermissionDeniedResponse.js +0 -7
  206. package/dist/lib/esnext/message/response/PermissionDeniedResponse.js.map +0 -1
  207. package/dist/lib/esnext/message/response/RejectResponse.js +0 -10
  208. package/dist/lib/esnext/message/response/RejectResponse.js.map +0 -1
  209. package/dist/lib/esnext/message/update/SubscriptionLossMessage.js +0 -11
  210. package/dist/lib/esnext/message/update/SubscriptionLossMessage.js.map +0 -1
  211. package/dist/lib/esnext/util/TimeOutWrapper.js +0 -52
  212. package/dist/lib/esnext/util/TimeOutWrapper.js.map +0 -1
  213. package/dist/lib/node/Mdg2Client.js +0 -190
  214. package/dist/lib/node/Mdg2Client.js.map +0 -1
  215. package/dist/lib/node/authentication/AbstractAuthentication.js +0 -54
  216. package/dist/lib/node/authentication/AbstractAuthentication.js.map +0 -1
  217. package/dist/lib/node/authentication/AppAuthentication.js +0 -75
  218. package/dist/lib/node/authentication/AppAuthentication.js.map +0 -1
  219. package/dist/lib/node/authentication/AuthenticationInterface.js +0 -3
  220. package/dist/lib/node/authentication/AuthenticationInterface.js.map +0 -1
  221. package/dist/lib/node/authentication/CookieTokenAuthentication.js +0 -23
  222. package/dist/lib/node/authentication/CookieTokenAuthentication.js.map +0 -1
  223. package/dist/lib/node/authentication/TokenAuthentication.js +0 -47
  224. package/dist/lib/node/authentication/TokenAuthentication.js.map +0 -1
  225. package/dist/lib/node/authentication/UserCredentialAuthentication.js +0 -78
  226. package/dist/lib/node/authentication/UserCredentialAuthentication.js.map +0 -1
  227. package/dist/lib/node/authentication/UserPasswordAuthentication.js +0 -76
  228. package/dist/lib/node/authentication/UserPasswordAuthentication.js.map +0 -1
  229. package/dist/lib/node/common/Mdg2ClientOptions.js +0 -3
  230. package/dist/lib/node/common/Mdg2ClientOptions.js.map +0 -1
  231. package/dist/lib/node/common/constants.js +0 -14
  232. package/dist/lib/node/common/constants.js.map +0 -1
  233. package/dist/lib/node/common/interfaces/observe/ObserveOptions.js +0 -3
  234. package/dist/lib/node/common/interfaces/observe/ObserveOptions.js.map +0 -1
  235. package/dist/lib/node/connection/AbstractFrontgateConnection.js +0 -329
  236. package/dist/lib/node/connection/AbstractFrontgateConnection.js.map +0 -1
  237. package/dist/lib/node/connection/ConnectionInterface.js +0 -3
  238. package/dist/lib/node/connection/ConnectionInterface.js.map +0 -1
  239. package/dist/lib/node/connection/FrontgateWSConnection.js +0 -289
  240. package/dist/lib/node/connection/FrontgateWSConnection.js.map +0 -1
  241. package/dist/lib/node/connection/JobPromise.js +0 -7
  242. package/dist/lib/node/connection/JobPromise.js.map +0 -1
  243. package/dist/lib/node/connection/LatencyHandler.js +0 -3
  244. package/dist/lib/node/connection/LatencyHandler.js.map +0 -1
  245. package/dist/lib/node/connection/LatencyTracker.js +0 -52
  246. package/dist/lib/node/connection/LatencyTracker.js.map +0 -1
  247. package/dist/lib/node/connection/MessageProcessor.js +0 -3
  248. package/dist/lib/node/connection/MessageProcessor.js.map +0 -1
  249. package/dist/lib/node/connection/util/Encoding.js +0 -19
  250. package/dist/lib/node/connection/util/Encoding.js.map +0 -1
  251. package/dist/lib/node/core/RequestModule.js +0 -354
  252. package/dist/lib/node/core/RequestModule.js.map +0 -1
  253. package/dist/lib/node/core/SubscriptionModule.js +0 -109
  254. package/dist/lib/node/core/SubscriptionModule.js.map +0 -1
  255. package/dist/lib/node/core/subscription/EndpointHandler.js +0 -126
  256. package/dist/lib/node/core/subscription/EndpointHandler.js.map +0 -1
  257. package/dist/lib/node/core/subscription/SubjectManager.js +0 -44
  258. package/dist/lib/node/core/subscription/SubjectManager.js.map +0 -1
  259. package/dist/lib/node/message/MessageFactory.js +0 -74
  260. package/dist/lib/node/message/MessageFactory.js.map +0 -1
  261. package/dist/lib/node/message/guards.js +0 -31
  262. package/dist/lib/node/message/guards.js.map +0 -1
  263. package/dist/lib/node/message/interfaces/JobObservable.js +0 -3
  264. package/dist/lib/node/message/interfaces/JobObservable.js.map +0 -1
  265. package/dist/lib/node/message/request/raw/RawRequestFactory.js +0 -23
  266. package/dist/lib/node/message/request/raw/RawRequestFactory.js.map +0 -1
  267. package/dist/lib/node/message/response/AuthenticationByTokenResponse.js +0 -3
  268. package/dist/lib/node/message/response/AuthenticationByTokenResponse.js.map +0 -1
  269. package/dist/lib/node/message/response/CancelSubscriptionResponse.js +0 -8
  270. package/dist/lib/node/message/response/CancelSubscriptionResponse.js.map +0 -1
  271. package/dist/lib/node/message/response/LoadNotificationMessage.js +0 -3
  272. package/dist/lib/node/message/response/LoadNotificationMessage.js.map +0 -1
  273. package/dist/lib/node/message/response/PermissionDeniedResponse.js +0 -11
  274. package/dist/lib/node/message/response/PermissionDeniedResponse.js.map +0 -1
  275. package/dist/lib/node/message/response/RejectResponse.js +0 -14
  276. package/dist/lib/node/message/response/RejectResponse.js.map +0 -1
  277. package/dist/lib/node/message/update/SubscriptionLossMessage.js +0 -15
  278. package/dist/lib/node/message/update/SubscriptionLossMessage.js.map +0 -1
  279. package/dist/lib/node/util/TimeOutWrapper.js +0 -56
  280. package/dist/lib/node/util/TimeOutWrapper.js.map +0 -1
  281. package/dist/lib/types/Mdg2Client.d.ts +0 -52
  282. package/dist/lib/types/authentication/AbstractAuthentication.d.ts +0 -17
  283. package/dist/lib/types/authentication/AppAuthentication.d.ts +0 -12
  284. package/dist/lib/types/authentication/AuthenticationInterface.d.ts +0 -9
  285. package/dist/lib/types/authentication/CookieTokenAuthentication.d.ts +0 -6
  286. package/dist/lib/types/authentication/TokenAuthentication.d.ts +0 -14
  287. package/dist/lib/types/authentication/UserCredentialAuthentication.d.ts +0 -13
  288. package/dist/lib/types/authentication/UserPasswordAuthentication.d.ts +0 -14
  289. package/dist/lib/types/common/Mdg2ClientOptions.d.ts +0 -12
  290. package/dist/lib/types/common/constants.d.ts +0 -11
  291. package/dist/lib/types/common/interfaces/observe/ObserveOptions.d.ts +0 -5
  292. package/dist/lib/types/connection/AbstractFrontgateConnection.d.ts +0 -116
  293. package/dist/lib/types/connection/ConnectionInterface.d.ts +0 -53
  294. package/dist/lib/types/connection/FrontgateWSConnection.d.ts +0 -23
  295. package/dist/lib/types/connection/JobPromise.d.ts +0 -3
  296. package/dist/lib/types/connection/LatencyHandler.d.ts +0 -1
  297. package/dist/lib/types/connection/LatencyTracker.d.ts +0 -13
  298. package/dist/lib/types/connection/MessageProcessor.d.ts +0 -2
  299. package/dist/lib/types/connection/util/Encoding.d.ts +0 -9
  300. package/dist/lib/types/core/RequestModule.d.ts +0 -78
  301. package/dist/lib/types/core/SubscriptionModule.d.ts +0 -24
  302. package/dist/lib/types/core/subscription/EndpointHandler.d.ts +0 -37
  303. package/dist/lib/types/core/subscription/SubjectManager.d.ts +0 -21
  304. package/dist/lib/types/message/MessageFactory.d.ts +0 -29
  305. package/dist/lib/types/message/guards.d.ts +0 -11
  306. package/dist/lib/types/message/interfaces/JobObservable.d.ts +0 -4
  307. package/dist/lib/types/message/request/raw/RawRequestFactory.d.ts +0 -4
  308. package/dist/lib/types/message/response/AuthenticationByTokenResponse.d.ts +0 -20
  309. package/dist/lib/types/message/response/CancelSubscriptionResponse.d.ts +0 -3
  310. package/dist/lib/types/message/response/LoadNotificationMessage.d.ts +0 -8
  311. package/dist/lib/types/message/response/PermissionDeniedResponse.d.ts +0 -4
  312. package/dist/lib/types/message/response/RejectResponse.d.ts +0 -5
  313. package/dist/lib/types/message/update/SubscriptionLossMessage.d.ts +0 -17
  314. package/dist/lib/types/util/TimeOutWrapper.d.ts +0 -12
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@factset/frontgate-js-sdk",
3
3
  "author": "Factset GmbH",
4
- "version": "6.10.3",
4
+ "version": "7.0.0",
5
5
  "description": "Typescript based client to request and subscribe values from mdg2 (frontgate)",
6
6
  "license": "Apache-2.0",
7
7
  "main": "./dist/lib/node/index.js",
@@ -55,15 +55,12 @@
55
55
  "big-integer": "^1.6.52",
56
56
  "buffer": "^6.0.3",
57
57
  "core-js": "^3.36.0",
58
- "crypto-browserify": "^3.12.1",
59
58
  "deepmerge": "^4.3.1",
60
59
  "fast-json-patch": "^3.1.1",
61
60
  "fb-tiger-hash": "^1.0.0",
62
61
  "fflate": "^0.8.2",
63
62
  "hookable": "^5.5.3",
64
63
  "isomorphic-ws": "^5.0.0",
65
- "rxjs": "^7.8.1",
66
- "stream-browserify": "^3.0.0",
67
64
  "winston": "^3.11.0",
68
65
  "ws": "^8.16.0"
69
66
  },
@@ -72,22 +69,21 @@
72
69
  "@types/ws": "^8.5.10",
73
70
  "@typescript-eslint/eslint-plugin": "^8.26.1",
74
71
  "@vitest/coverage-v8": "^3.1.1",
75
- "conventional-changelog-cli": "^4.1.0",
72
+ "conventional-changelog-cli": "^5.0.0",
76
73
  "cross-env": "^7.0.3",
77
74
  "eslint": "^9.22.0",
78
75
  "eslint-config-prettier": "^10.1.1",
79
76
  "globals": "^16.0.0",
80
- "happy-dom": "^15.0.0",
77
+ "happy-dom": "^18.0.0",
81
78
  "mock-socket": "^9.3.1",
82
79
  "npm-run-all": "^4.1.5",
83
80
  "prettier": "^3.2.5",
84
81
  "replace": "^1.2.2",
85
- "rimraf": "^5.0.5",
86
- "typedoc": "^0.25.8",
82
+ "rimraf": "^6.0.0",
83
+ "typedoc": "^0.28.0",
87
84
  "typescript": "^5.3.3",
88
- "vite": "^6.2.5",
89
- "vite-node": "^3.1.1",
85
+ "vite": "^7.0.0",
90
86
  "vitest": "^3.1.1"
91
87
  },
92
- "packageManager": "yarn@4.3.0"
88
+ "packageManager": "yarn@4.9.2"
93
89
  }
@@ -1,186 +0,0 @@
1
- import { DEFAULT_ENABLE_SESSION_HANDLING, DEFAULT_FLAG_PERMISSION_DENIED, DEFAULT_MAX_TIMEOUTS_BEFORE_RECONNECT, DEFAULT_QUALITY, DEFAULT_REPLAY_SUBJECT_BUFFER_SIZE, DEFAULT_TIMEOUT_IN_MS, DEFAULT_TIMEOUT_TOKEN_IN_MS, } from './common/constants';
2
- import { createConnection, fetchConnectionConfiguration, FrontgateWSConnection, getConnectionConfiguration, setConnectionConfiguration } from './connection';
3
- import { RequestModule } from './core/RequestModule';
4
- import { SubscriptionModule } from './core/SubscriptionModule';
5
- import { NullLogger } from './logger';
6
- import { CookieTokenAuthentication, ID_APP_AUTHENTICATED, ID_USER_AUTHENTICATED } from './authentication';
7
- import { AuthenticationTokenRequest } from './message';
8
- export class Mdg2Client {
9
- constructor(connection, options = {}) {
10
- this.options = options;
11
- this.flagPermissionDenied = options.flagPermissionDenied ?? DEFAULT_FLAG_PERMISSION_DENIED;
12
- this.shouldRestartSubscriptions = options.shouldRestartSubscriptions ?? true;
13
- this.defaultTimeoutInMs = options.defaultTimeoutInMs ?? DEFAULT_TIMEOUT_IN_MS;
14
- this.defaultTimeoutTokenInMs = options.defaultTimeoutTokenInMs ?? DEFAULT_TIMEOUT_TOKEN_IN_MS;
15
- this.maxTimeoutsBeforeReconnect = options.maxTimeoutsBeforeReconnect ?? DEFAULT_MAX_TIMEOUTS_BEFORE_RECONNECT;
16
- this.enableSessionHandling = options.enableSessionHandling ?? DEFAULT_ENABLE_SESSION_HANDLING;
17
- this.replaySubjectBufferSize = options.replaySubjectBufferSize ?? DEFAULT_REPLAY_SUBJECT_BUFFER_SIZE;
18
- this.requestModule = new RequestModule(this.getConnection.bind(this), this.logger, {
19
- defaultTimeoutInMs: this.defaultTimeoutInMs,
20
- defaultTimeoutTokenInMs: this.defaultTimeoutTokenInMs,
21
- flagPermissionDenied: this.flagPermissionDenied,
22
- maxTimeoutsBeforeReconnect: this.maxTimeoutsBeforeReconnect,
23
- replaySubjectBufferSize: this.replaySubjectBufferSize,
24
- });
25
- this.subscriptionModule = new SubscriptionModule(this.requestModule, this.logger, { shouldRestartSubscriptions: this.shouldRestartSubscriptions });
26
- this.sessionConnect = false;
27
- if (options.onConnectCallback)
28
- this.onConnectCallback = options.onConnectCallback;
29
- if (connection) {
30
- this.setConnection(connection);
31
- }
32
- else {
33
- this.logger = new NullLogger();
34
- }
35
- }
36
- async connect() {
37
- if (!this.connection) {
38
- throw new Error('No connection defined. please set a connection before trying to connect.');
39
- }
40
- if (this.sessionConnect) {
41
- return Promise.resolve();
42
- }
43
- return this.connection.open();
44
- }
45
- async connectSession(shouldThrow = false) {
46
- if (!this.connection) {
47
- throw new Error('No connection defined. please set a connection before trying to connect.');
48
- }
49
- const { connection: previousConnection } = this;
50
- const tokenAuth = new CookieTokenAuthentication();
51
- const tokenConnection = new FrontgateWSConnection(tokenAuth, {
52
- ...this.connection.options,
53
- sessionHandling: true,
54
- });
55
- this.setConnection(tokenConnection);
56
- try {
57
- await this.connection.open();
58
- }
59
- catch (error) {
60
- this.setConnection(previousConnection);
61
- if (shouldThrow) {
62
- throw error;
63
- }
64
- return false;
65
- }
66
- return true;
67
- }
68
- async disconnect(logout = false) {
69
- if (!this.connection) {
70
- throw new Error('No connection defined. please set a connection before trying to disconnect.');
71
- }
72
- await this.connection.close(false, logout);
73
- }
74
- async request(msg, timeOutInMs = this.defaultTimeoutInMs) {
75
- return this.requestModule.request(msg, timeOutInMs);
76
- }
77
- restartSubscriptions() {
78
- this.subscriptionModule.restartSubscriptions();
79
- }
80
- async requestWithQuality(msg, quality = DEFAULT_QUALITY, timeOutInMs = this.defaultTimeoutInMs) {
81
- return this.requestModule.requestWithQuality(msg, quality, timeOutInMs);
82
- }
83
- async requestEndpoint(method, path, data, options, timeOutInMs = this.defaultTimeoutInMs) {
84
- return this.requestModule.requestEndpoint(method, path, data, options, timeOutInMs);
85
- }
86
- async requestProxyEndpoint(method, path, body, options, timeOutInMs = this.defaultTimeoutInMs) {
87
- return this.requestModule.requestProxyEndpoint(method, path, body, options, timeOutInMs);
88
- }
89
- async requestAuthenticationToken(lifetimeSeconds, idUser, idApplication, timeOutInMs = this.defaultTimeoutTokenInMs) {
90
- return this.requestModule.requestAuthenticationToken(lifetimeSeconds, idUser, idApplication, timeOutInMs);
91
- }
92
- async requestAuthenticationTokenExpiry(lifetimeSeconds, idUser, idApplication, timeOutInMs = this.defaultTimeoutTokenInMs, otp = false) {
93
- return this.requestModule.requestAuthenticationTokenExpiry(lifetimeSeconds, idUser, idApplication, timeOutInMs, otp);
94
- }
95
- async requestOtpAuthenticationTokenForSessionHandling(lifetimeSeconds = AuthenticationTokenRequest.LIFETIME_SECONDS_MAXIMUM, idUser = ID_USER_AUTHENTICATED, idApplication = ID_APP_AUTHENTICATED, timeOutInMs = this.defaultTimeoutTokenInMs) {
96
- const { token, expiry } = await this.requestModule.requestAuthenticationTokenExpiry(lifetimeSeconds, idUser, idApplication, timeOutInMs, true);
97
- this.options.otpToken = token;
98
- this.options.otpTokenExpiry = expiry;
99
- }
100
- async requestAuthenticationTokenForCookieTokenAuthentication(lifetimeSeconds, idUser, idApplication, timeOutInMs = this.defaultTimeoutTokenInMs) {
101
- return this.requestModule.requestAuthenticationTokenFactorsForCookieAuthentication(lifetimeSeconds, idUser, idApplication, timeOutInMs);
102
- }
103
- observeEndpoint(method, path, data, options, requestOptions) {
104
- return this.subscriptionModule.observeEndpoint(method, path, data, options, requestOptions);
105
- }
106
- async unobserveEndpoint(idJob) {
107
- return this.subscriptionModule.unobserveEndpoint(idJob);
108
- }
109
- setConnection(connection) {
110
- if (connection.options.logger) {
111
- this.setLogger(connection.options.logger);
112
- }
113
- if (this.isConnected) {
114
- this.logger.warn('Cannot modify an open connection. Disconnect first, before trying to set the connection.');
115
- }
116
- this.connection = connection;
117
- this.connection.clientOptions = this.options;
118
- this.connection.shouldRestartSubscriptions = this.shouldRestartSubscriptions;
119
- this.connection.onAuthentication = this.requestModule.onConnection.bind(this.requestModule);
120
- this.connection.onCleanupRequests = this.requestModule.clearPendingRequests.bind(this.requestModule);
121
- this.connection.onCleanupSubscriptions = this.subscriptionModule.clearPendingSubscriptions.bind(this.subscriptionModule);
122
- this.connection.onClearPendingSubscription = (jobId) => {
123
- this.subscriptionModule.clearPendingSubscription(jobId);
124
- };
125
- this.connection.restartSubscriptions = this.subscriptionModule.restartSubscriptions.bind(this.subscriptionModule);
126
- this.connection.onConnect = this.onConnectCallback;
127
- }
128
- getConnection() {
129
- return this.connection;
130
- }
131
- async setConnectionFromFetchConfiguration(input, init, shouldReconnectOnConnectionLoss) {
132
- if (this.enableSessionHandling) {
133
- if (this.setConnectionFromSavedConfig() && (await this.connectSession())) {
134
- this.sessionConnect = true;
135
- return Promise.resolve();
136
- }
137
- }
138
- const { config, response } = await fetchConnectionConfiguration(input, init);
139
- if (this.enableSessionHandling) {
140
- setConnectionConfiguration(config);
141
- }
142
- this.setConnection(Mdg2Client.createConnection({
143
- ...config,
144
- logger: this.logger,
145
- loglevel: this.logger.getLevel(),
146
- shouldReconnectOnConnectionLoss,
147
- }, input, init));
148
- return response;
149
- }
150
- static createConnection(config, input, init) {
151
- return createConnection(config, input, init);
152
- }
153
- setLogger(logger) {
154
- this.logger = logger;
155
- this.requestModule.setLogger(logger);
156
- this.subscriptionModule.setLogger(logger);
157
- if (this.connection) {
158
- this.connection.setLogger(logger);
159
- }
160
- }
161
- getLogger() {
162
- return this.logger;
163
- }
164
- get isConnected() {
165
- return this.connection?.isAuthenticated() ?? false;
166
- }
167
- get isConnecting() {
168
- return this.connection?.isConnecting() ?? false;
169
- }
170
- getServerInfo() {
171
- return this.connection?.auth.getServerInfo();
172
- }
173
- setConnectionFromSavedConfig() {
174
- const savedConfig = getConnectionConfiguration();
175
- if (savedConfig) {
176
- this.setConnection(Mdg2Client.createConnection({
177
- ...savedConfig,
178
- logger: this.logger,
179
- loglevel: this.logger.getLevel(),
180
- }));
181
- return true;
182
- }
183
- return false;
184
- }
185
- }
186
- //# sourceMappingURL=Mdg2Client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Mdg2Client.js","sourceRoot":"","sources":["../../../src/Mdg2Client.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- export const ID_APP_AUTHENTICATED = -2;
2
- export const ID_USER_AUTHENTICATED = -2;
3
- export const ID_USER_NONE = -1;
4
- export class AbstractAuthentication {
5
- constructor(idApplication, idUser = ID_USER_NONE) {
6
- if (!Number.isInteger(idApplication)) {
7
- throw new TypeError(`idApplication is not an integer number. Given: ${idApplication} (${typeof idApplication})`);
8
- }
9
- this.idApplication = idApplication;
10
- if (!Number.isInteger(idUser)) {
11
- throw new TypeError(`idUser is not an integer number. Given: ${idUser} (${typeof idUser})`);
12
- }
13
- this.idUser = idUser;
14
- }
15
- peerInfoFromMessage(msg) {
16
- if (msg.Message === 'Foundation::DisconnectionMessage') {
17
- const disconnectMessage = msg;
18
- throw new Error(`Disconnection Message: ${disconnectMessage.details}`);
19
- }
20
- if (msg.Message === 'Foundation::AuthenticationByTokenResponse' || msg.Message === 'Foundation::ConfigurationResponse') {
21
- const message = msg;
22
- this.serverInfo = this.parseServerInfo(message);
23
- return {
24
- uuid: message.server_info.uuid,
25
- description: message.server_info.description,
26
- software: message.server_info.software,
27
- os: message.server_info.os,
28
- maximumIdleInterval: parseInt(message.maximum_idle_interval, 10),
29
- maximumReceivableMessageSize: message.maximum_receivable_message_size,
30
- };
31
- }
32
- throw new Error('Could not extract server_info from unknown message type.');
33
- }
34
- parseServerInfo(msg) {
35
- const message = msg;
36
- const timeInMs = Number(BigInt(message.time_at_server.microseconds)) / 1000;
37
- const offsetInMs = Math.ceil(Date.now() - timeInMs);
38
- return {
39
- description: message.server_info.description,
40
- software: message.server_info.software,
41
- os: message.server_info.os,
42
- time: new Date(timeInMs),
43
- offsetInMs,
44
- };
45
- }
46
- getServerInfo() {
47
- return this.serverInfo;
48
- }
49
- }
50
- //# sourceMappingURL=AbstractAuthentication.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AbstractAuthentication.js","sourceRoot":"","sources":["../../../../src/authentication/AbstractAuthentication.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,CAAC;AAOvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,CAAC;AAOxC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC;AAE/B,MAAM,OAAgB,sBAAsB;IAS1C,YAAsB,aAAqB,EAAE,MAAM,GAAG,YAAY;QAChE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,SAAS,CAAC,kDAAkD,aAAa,KAAK,OAAO,aAAa,GAAG,CAAC,CAAC;QACnH,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,SAAS,CAAC,2CAA2C,MAAM,KAAK,OAAO,MAAM,GAAG,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAIS,mBAAmB,CAAC,GAAiF;QAC7G,IAAI,GAAG,CAAC,OAAO,KAAK,kCAAkC,EAAE,CAAC;YACvD,MAAM,iBAAiB,GAAG,GAA2B,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,0BAA0B,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,KAAK,2CAA2C,IAAI,GAAG,CAAC,OAAO,KAAK,mCAAmC,EAAE,CAAC;YACvH,MAAM,OAAO,GAAG,GAA4D,CAAC;YAC7E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAChD,OAAO;gBACL,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI;gBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW;gBAC5C,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ;gBACtC,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE;gBAC1B,mBAAmB,EAAE,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;gBAChE,4BAA4B,EAAE,OAAO,CAAC,+BAA+B;aACtE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IAEO,eAAe,CAAC,GAA0D;QAChF,MAAM,OAAO,GAAG,GAAG,CAAC;QACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;QAEpD,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW;YAC5C,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ;YACtC,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE;YAC1B,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC;YACxB,UAAU;SACX,CAAC;IACJ,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}
@@ -1,71 +0,0 @@
1
- import { getBytesFromBuffer } from '../connection/util/functions';
2
- import { SecretGenerator } from './util';
3
- import { AbstractAuthentication } from './AbstractAuthentication';
4
- import { AuthenticationRequest } from '../message/request/AuthenticationRequest';
5
- import { ConfigurationRequest } from '../message/request/ConfigurationRequest';
6
- import { randomBytes } from 'crypto';
7
- export class AppAuthentication extends AbstractAuthentication {
8
- constructor(idApplication, idUser, clientCredentials) {
9
- super(idApplication, idUser);
10
- this.reconnectable = true;
11
- if (typeof clientCredentials !== 'string') {
12
- throw new Error('clientCredentials not provided or not a string. Client credentials must have the form "{server_secret}-{shared_secret}-{client_secret}".');
13
- }
14
- const secrets = clientCredentials.split('-');
15
- if (secrets.length !== 3) {
16
- throw new Error('Invalid clientCredentials. Client credentials must have the form "{server_secret}-{shared_secret}-{client_secret}".');
17
- }
18
- if (secrets[0] === '*') {
19
- throw new Error('Invalid clientCredentials. Client credentials first part must be a hashed server secret.');
20
- }
21
- this.sharedSecret = Buffer.from(secrets[1], 'base64');
22
- this.clientSecret = Buffer.from(secrets[2], 'base64');
23
- }
24
- async authenticate(connection) {
25
- this.connection = connection;
26
- const authenticationResponse = await this.sendAuthenticationRequest();
27
- const configurationResponse = await this.sendConfigurationRequest(authenticationResponse);
28
- const peerInfo = this.peerInfoFromMessage(configurationResponse);
29
- this.connection.setPeerInfo(peerInfo);
30
- await this.sendTransportLayerRequestHeaderConfigurationRequest(configurationResponse);
31
- }
32
- async sendAuthenticationRequest() {
33
- const salt = randomBytes(16);
34
- const options = {
35
- idApplication: this.idApplication,
36
- salt: getBytesFromBuffer(salt),
37
- challenge: getBytesFromBuffer(randomBytes(16)),
38
- encryptedSecrets: [{ encrypted_secret: SecretGenerator.createEncryptedSecret(salt, this.sharedSecret, this.clientSecret) }],
39
- };
40
- const request = new AuthenticationRequest(options);
41
- return (await this.connection.submit(request.toJson()));
42
- }
43
- async sendConfigurationRequest(msg) {
44
- const expectedMessage = 'Foundation::AuthenticationResponse';
45
- if (msg.Message !== expectedMessage) {
46
- throw new Error(`Expected message "${expectedMessage}" but received "${msg.Message}"`);
47
- }
48
- const { challenge } = msg.challenge;
49
- const options = {
50
- shared_secret: this.sharedSecret,
51
- payload_content: this.connection.options.payload_content,
52
- deployment_stage: this.connection.options.deployment_stage,
53
- maximum_idle_interval: this.connection.options.maximum_idle_interval,
54
- };
55
- const configRequest = new ConfigurationRequest(challenge, options);
56
- return (await this.connection.submit(configRequest.toJson()));
57
- }
58
- async sendTransportLayerRequestHeaderConfigurationRequest(msg) {
59
- const expectedMessage = 'Foundation::ConfigurationResponse';
60
- if (msg.Message !== expectedMessage) {
61
- throw new Error(`Expected message "${expectedMessage}" but received "${msg.Message}"`);
62
- }
63
- const request = {
64
- Message: 'TransportLayerClientConfigurationRequest',
65
- Version: 1,
66
- flags: 0,
67
- };
68
- return this.connection.submit(request);
69
- }
70
- }
71
- //# sourceMappingURL=AppAuthentication.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppAuthentication.js","sourceRoot":"","sources":["../../../../src/authentication/AppAuthentication.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=AuthenticationInterface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AuthenticationInterface.js","sourceRoot":"","sources":["../../../../src/authentication/AuthenticationInterface.ts"],"names":[],"mappings":""}
@@ -1,19 +0,0 @@
1
- import { fetchConnectionConfiguration } from '../connection/util/functions';
2
- import { TokenAuthentication } from './TokenAuthentication';
3
- export class CookieTokenAuthentication extends TokenAuthentication {
4
- constructor() {
5
- super('', false);
6
- }
7
- getEncodedToken() {
8
- return [];
9
- }
10
- async onReconnect() {
11
- if (this.fetchConfigurationInput) {
12
- const { config } = await fetchConnectionConfiguration(this.fetchConfigurationInput, this.fetchConfigurationConfig);
13
- if (config.frontgateSplitAuthenticationTokenSecondFactor) {
14
- this.connection.options.frontgateSplitAuthenticationTokenSecondFactor = config.frontgateSplitAuthenticationTokenSecondFactor;
15
- }
16
- }
17
- }
18
- }
19
- //# sourceMappingURL=CookieTokenAuthentication.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CookieTokenAuthentication.js","sourceRoot":"","sources":["../../../../src/authentication/CookieTokenAuthentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,4BAA4B,EAAC,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAE1D,MAAM,OAAO,yBAA0B,SAAQ,mBAAmB;IAChE;QACE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACnB,CAAC;IAES,eAAe;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,4BAA4B,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACjH,IAAI,MAAM,CAAC,6CAA6C,EAAE,CAAC;gBACzD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,6CAA6C,GAAG,MAAM,CAAC,6CAA6C,CAAC;YAC/H,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1,43 +0,0 @@
1
- import { fetchConnectionConfiguration } from '../connection/util/functions';
2
- import { AbstractAuthentication, ID_APP_AUTHENTICATED, ID_USER_AUTHENTICATED } from './AbstractAuthentication';
3
- import { AuthenticationByTokenRequest } from '../message';
4
- import { isBase64Url, base64UrlToBase64 } from '../common/functions';
5
- export class TokenAuthentication extends AbstractAuthentication {
6
- constructor(token, validate = true) {
7
- super(ID_APP_AUTHENTICATED, ID_USER_AUTHENTICATED);
8
- if (validate && (!token || token.length < 80)) {
9
- throw new Error('Invalid token passed to TokenAuthentication');
10
- }
11
- this.setToken(token);
12
- }
13
- setToken(token) {
14
- this.token = isBase64Url(token) ? base64UrlToBase64(token) : token;
15
- }
16
- setFetchConfiguration(input, config) {
17
- this.fetchConfigurationInput = input;
18
- this.fetchConfigurationConfig = config;
19
- }
20
- async authenticate(connection) {
21
- this.connection = connection;
22
- const authenticationByTokenResponse = await this.sendAuthenticationByTokenRequest();
23
- const peerInfo = this.peerInfoFromMessage(authenticationByTokenResponse);
24
- this.connection.setPeerInfo(peerInfo);
25
- }
26
- async sendAuthenticationByTokenRequest() {
27
- const token = { b64: this.token };
28
- const request = new AuthenticationByTokenRequest(token, this.connection.options.maximum_idle_interval);
29
- return (await this.connection.submit(request.toJson()));
30
- }
31
- get reconnectable() {
32
- return !!this.fetchConfigurationInput;
33
- }
34
- async onReconnect() {
35
- if (this.fetchConfigurationInput) {
36
- const { config } = await fetchConnectionConfiguration(this.fetchConfigurationInput, this.fetchConfigurationConfig);
37
- if (config.frontgateAuthenticationType === 'token' && config.frontgateAuthenticationToken) {
38
- this.setToken(config.frontgateAuthenticationToken);
39
- }
40
- }
41
- }
42
- }
43
- //# sourceMappingURL=TokenAuthentication.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TokenAuthentication.js","sourceRoot":"","sources":["../../../../src/authentication/TokenAuthentication.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,4BAA4B,EAAC,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAC,sBAAsB,EAAE,oBAAoB,EAAE,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAE7G,OAAO,EAAC,4BAA4B,EAAC,MAAM,YAAY,CAAC;AACxD,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAEnE,MAAM,OAAO,mBAAoB,SAAQ,sBAAsB;IAO7D,YAAY,KAAa,EAAE,QAAQ,GAAG,IAAI;QACxC,KAAK,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;QACnD,IAAI,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QAKD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC5B,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrE,CAAC;IAEM,qBAAqB,CAAC,KAA8B,EAAE,MAA+B;QAC1F,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,UAA+B;QACvD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,MAAM,6BAA6B,GAAG,MAAM,IAAI,CAAC,gCAAgC,EAAE,CAAC;QACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,gCAAgC;QAC5C,MAAM,KAAK,GAAG,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,4BAA4B,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACvG,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAkC,CAAC;IAC3F,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,4BAA4B,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACjH,IAAI,MAAM,CAAC,2BAA2B,KAAK,OAAO,IAAI,MAAM,CAAC,4BAA4B,EAAE,CAAC;gBAC1F,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1,74 +0,0 @@
1
- import { getBytesFromBuffer } from '../connection/util/functions';
2
- import { AbstractAuthentication, ID_APP_AUTHENTICATED, ID_USER_AUTHENTICATED } from './AbstractAuthentication';
3
- import { SecretGenerator } from './util';
4
- import { AuthenticationRequest } from '../message/request/AuthenticationRequest';
5
- import { ConfigurationRequest } from '../message/request/ConfigurationRequest';
6
- import { randomBytes } from 'crypto';
7
- export class UserCredentialAuthentication extends AbstractAuthentication {
8
- constructor(idApplication, username, credentials) {
9
- super(idApplication);
10
- this.reconnectable = true;
11
- const secrets = credentials.split('-');
12
- if (secrets.length !== 3) {
13
- throw new Error('Invalid clientCredentials. Client credentials must have the form "{server_secret}-{shared_secret}-{client_secret}".');
14
- }
15
- if (secrets[0] === '*') {
16
- throw new Error('Invalid clientCredentials. Client credentials first part must be a hashed server secret.');
17
- }
18
- this.username = username;
19
- this.sharedSecret = Buffer.from(secrets[1], 'base64');
20
- this.clientSecret = Buffer.from(secrets[2], 'base64');
21
- }
22
- async authenticate(connection) {
23
- this.connection = connection;
24
- const authenticationResponse = await this.sendAuthenticationRequest();
25
- const configurationResponse = await this.sendConfigurationRequest(authenticationResponse);
26
- const peerInfo = this.peerInfoFromMessage(configurationResponse);
27
- this.connection.setPeerInfo(peerInfo);
28
- await this.sendTransportLayerRequestHeaderConfigurationRequest(configurationResponse);
29
- }
30
- async sendAuthenticationRequest() {
31
- const salt = randomBytes(16);
32
- const options = {
33
- idApplication: this.idApplication,
34
- username: this.username,
35
- salt: getBytesFromBuffer(salt),
36
- challenge: getBytesFromBuffer(randomBytes(16)),
37
- encryptedSecrets: [{ encrypted_secret: SecretGenerator.createEncryptedSecret(salt, this.sharedSecret, this.clientSecret) }],
38
- };
39
- const request = new AuthenticationRequest(options);
40
- return (await this.connection.submit(request.toJson()));
41
- }
42
- async sendConfigurationRequest(msg) {
43
- const expectedMessage = 'Foundation::AuthenticationResponse';
44
- if (msg.Message !== expectedMessage) {
45
- throw new Error(`Expected message "${expectedMessage}" but received "${msg.Message}"`);
46
- }
47
- if (msg.id_user === ID_USER_AUTHENTICATED) {
48
- this.connection.auth.idUser = ID_USER_AUTHENTICATED;
49
- this.connection.auth.idApplication = ID_APP_AUTHENTICATED;
50
- }
51
- const { challenge } = msg.challenge;
52
- const options = {
53
- shared_secret: this.sharedSecret,
54
- payload_content: this.connection.options.payload_content,
55
- deployment_stage: this.connection.options.deployment_stage,
56
- maximum_idle_interval: this.connection.options.maximum_idle_interval,
57
- };
58
- const configRequest = new ConfigurationRequest(challenge, options);
59
- return (await this.connection.submit(configRequest.toJson()));
60
- }
61
- async sendTransportLayerRequestHeaderConfigurationRequest(msg) {
62
- const expectedMessage = 'Foundation::ConfigurationResponse';
63
- if (msg.Message !== expectedMessage) {
64
- throw new Error(`Expected message "${expectedMessage}" but received "${msg.Message}"`);
65
- }
66
- const request = {
67
- Message: 'TransportLayerClientConfigurationRequest',
68
- Version: 1,
69
- flags: 0,
70
- };
71
- return this.connection.submit(request);
72
- }
73
- }
74
- //# sourceMappingURL=UserCredentialAuthentication.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserCredentialAuthentication.js","sourceRoot":"","sources":["../../../../src/authentication/UserCredentialAuthentication.ts"],"names":[],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- import { getBytesFromBuffer } from '../connection/util/functions';
2
- import { AbstractAuthentication, ID_APP_AUTHENTICATED, ID_USER_AUTHENTICATED } from './AbstractAuthentication';
3
- import { SecretGenerator } from './util';
4
- import { AuthenticationRequest } from '../message/request/AuthenticationRequest';
5
- import { ConfigurationRequest } from '../message/request/ConfigurationRequest';
6
- import { randomBytes } from 'crypto';
7
- export class UserPasswordAuthentication extends AbstractAuthentication {
8
- constructor(idApplication, username, password) {
9
- super(idApplication);
10
- this.reconnectable = true;
11
- this.username = username;
12
- this.password = password;
13
- const plainSharedSecret = SecretGenerator.generateSharedSecret(username, password);
14
- const plainClientSecret = SecretGenerator.generateClientSecret(username, password);
15
- if (plainSharedSecret && plainClientSecret) {
16
- this.sharedSecret = Buffer.from(plainSharedSecret);
17
- this.clientSecret = Buffer.from(plainClientSecret);
18
- }
19
- }
20
- async authenticate(connection) {
21
- this.connection = connection;
22
- const authenticationResponse = await this.sendAuthenticationRequest();
23
- const configurationResponse = await this.sendConfigurationRequest(authenticationResponse);
24
- const peerInfo = this.peerInfoFromMessage(configurationResponse);
25
- this.connection.setPeerInfo(peerInfo);
26
- await this.sendTransportLayerRequestHeaderConfigurationRequest(configurationResponse);
27
- }
28
- async sendAuthenticationRequest() {
29
- const salt = randomBytes(16);
30
- const options = {
31
- idApplication: this.idApplication,
32
- username: this.username,
33
- salt: getBytesFromBuffer(salt),
34
- challenge: getBytesFromBuffer(randomBytes(16)),
35
- encryptedSecrets: [{ encrypted_secret: SecretGenerator.createEncryptedSecret(salt, this.sharedSecret, this.clientSecret) }],
36
- };
37
- const request = new AuthenticationRequest(options);
38
- return (await this.connection.submit(request.toJson()));
39
- }
40
- async sendConfigurationRequest(msg) {
41
- const expectedMessage = 'Foundation::AuthenticationResponse';
42
- if (msg.Message !== expectedMessage) {
43
- throw new Error(`Expected message "${expectedMessage}" but received "${msg.Message}"`);
44
- }
45
- if (msg.id_user === ID_USER_AUTHENTICATED) {
46
- this.connection.auth.idApplication = ID_APP_AUTHENTICATED;
47
- this.connection.auth.idUser = ID_USER_AUTHENTICATED;
48
- }
49
- const { challenge } = msg.challenge;
50
- const options = {
51
- shared_secret: this.sharedSecret,
52
- payload_content: this.connection.options.payload_content,
53
- deployment_stage: this.connection.options.deployment_stage,
54
- maximum_idle_interval: this.connection.options.maximum_idle_interval,
55
- };
56
- const configRequest = new ConfigurationRequest(challenge, options);
57
- return (await this.connection.submit(configRequest.toJson()));
58
- }
59
- async sendTransportLayerRequestHeaderConfigurationRequest(msg) {
60
- const expectedMessage = 'Foundation::ConfigurationResponse';
61
- if (msg.Message !== expectedMessage) {
62
- throw new Error(`Expected message "${expectedMessage}" but received "${msg.Message}"`);
63
- }
64
- const request = {
65
- Message: 'TransportLayerClientConfigurationRequest',
66
- Version: 1,
67
- flags: 0,
68
- };
69
- return this.connection.submit(request);
70
- }
71
- }
72
- //# sourceMappingURL=UserPasswordAuthentication.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserPasswordAuthentication.js","sourceRoot":"","sources":["../../../../src/authentication/UserPasswordAuthentication.ts"],"names":[],"mappings":"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"}