@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.
- package/CHANGELOG.md +0 -14
- package/dist/lib/esnext/FrontgateClient.js +0 -3
- package/dist/lib/esnext/FrontgateClient.js.map +1 -1
- package/dist/lib/esnext/authentication/index.js +3 -4
- package/dist/lib/esnext/authentication/index.js.map +1 -1
- package/dist/lib/esnext/common/errors.js +0 -35
- package/dist/lib/esnext/common/errors.js.map +1 -1
- package/dist/lib/esnext/common/functions.js +0 -84
- package/dist/lib/esnext/common/functions.js.map +1 -1
- package/dist/lib/esnext/common/interfaces/index.js +0 -1
- package/dist/lib/esnext/common/interfaces/index.js.map +1 -1
- package/dist/lib/esnext/compat/index.js +0 -3
- package/dist/lib/esnext/compat/index.js.map +1 -1
- package/dist/lib/esnext/connection/index.js +19 -6
- package/dist/lib/esnext/connection/index.js.map +1 -1
- package/dist/lib/esnext/connection/util/functions.js +0 -56
- package/dist/lib/esnext/connection/util/functions.js.map +1 -1
- package/dist/lib/esnext/index.js +0 -1
- package/dist/lib/esnext/index.js.map +1 -1
- package/dist/lib/esnext/message/index.js +1 -1
- package/dist/lib/esnext/message/index.js.map +1 -1
- package/dist/lib/esnext/message/interfaces/index.js +0 -1
- package/dist/lib/esnext/message/interfaces/index.js.map +1 -1
- package/dist/lib/esnext/message/request/TransportLayerClientRequestHeader.js +1 -1
- package/dist/lib/esnext/message/request/TransportLayerClientRequestHeader.js.map +1 -1
- package/dist/lib/esnext/message/request/raw/example/CreateNotationSearchRequest.js +1 -1
- package/dist/lib/esnext/message/request/raw/example/CreateNotationSearchRequest.js.map +1 -1
- package/dist/lib/esnext/message/request/raw/index.js +0 -1
- package/dist/lib/esnext/message/request/raw/index.js.map +1 -1
- package/dist/lib/esnext/message/response/index.js +0 -5
- package/dist/lib/esnext/message/response/index.js.map +1 -1
- package/dist/lib/esnext/message/update/index.js +0 -1
- package/dist/lib/esnext/message/update/index.js.map +1 -1
- package/dist/lib/esnext/mixins/EndpointRequestMixin.js +1 -1
- package/dist/lib/esnext/mixins/EndpointRequestMixin.js.map +1 -1
- package/dist/lib/esnext/mixins/HTTPProxyRequestMixin.js.map +1 -1
- package/dist/lib/esnext/mixins/RemoteLoggerMixin.js +30 -0
- package/dist/lib/esnext/mixins/RemoteLoggerMixin.js.map +1 -0
- package/dist/lib/esnext/mixins/auth/AppAuthMixin.js +79 -11
- package/dist/lib/esnext/mixins/auth/AppAuthMixin.js.map +1 -1
- package/dist/lib/esnext/mixins/auth/SessionAuthMixin.js +76 -36
- package/dist/lib/esnext/mixins/auth/SessionAuthMixin.js.map +1 -1
- package/dist/lib/esnext/mixins/auth/UserCredentialAuthMixin.js +82 -12
- package/dist/lib/esnext/mixins/auth/UserCredentialAuthMixin.js.map +1 -1
- package/dist/lib/esnext/mixins/auth/UserPasswordAuthMixin.js +80 -13
- package/dist/lib/esnext/mixins/auth/UserPasswordAuthMixin.js.map +1 -1
- package/dist/lib/esnext/mixins/auth/index.js +0 -31
- package/dist/lib/esnext/mixins/auth/index.js.map +1 -1
- package/dist/lib/esnext/mixins/index.js +1 -0
- package/dist/lib/esnext/mixins/index.js.map +1 -1
- package/dist/lib/esnext/version.js +1 -1
- package/dist/lib/esnext/version.js.map +1 -1
- package/dist/lib/node/FrontgateClient.js +0 -3
- package/dist/lib/node/FrontgateClient.js.map +1 -1
- package/dist/lib/node/authentication/index.js +4 -4
- package/dist/lib/node/authentication/index.js.map +1 -1
- package/dist/lib/node/common/errors.js +1 -41
- package/dist/lib/node/common/errors.js.map +1 -1
- package/dist/lib/node/common/functions.js +0 -92
- package/dist/lib/node/common/functions.js.map +1 -1
- package/dist/lib/node/common/interfaces/index.js +0 -1
- package/dist/lib/node/common/interfaces/index.js.map +1 -1
- package/dist/lib/node/compat/index.js +0 -3
- package/dist/lib/node/compat/index.js.map +1 -1
- package/dist/lib/node/connection/index.js +20 -6
- package/dist/lib/node/connection/index.js.map +1 -1
- package/dist/lib/node/connection/util/functions.js +0 -63
- package/dist/lib/node/connection/util/functions.js.map +1 -1
- package/dist/lib/node/index.js +1 -3
- package/dist/lib/node/index.js.map +1 -1
- package/dist/lib/node/message/index.js +2 -1
- package/dist/lib/node/message/index.js.map +1 -1
- package/dist/lib/node/message/interfaces/index.js +0 -1
- package/dist/lib/node/message/interfaces/index.js.map +1 -1
- package/dist/lib/node/message/request/TransportLayerClientRequestHeader.js +3 -3
- package/dist/lib/node/message/request/TransportLayerClientRequestHeader.js.map +1 -1
- package/dist/lib/node/message/request/raw/example/CreateNotationSearchRequest.js +3 -3
- package/dist/lib/node/message/request/raw/example/CreateNotationSearchRequest.js.map +1 -1
- package/dist/lib/node/message/request/raw/index.js +0 -1
- package/dist/lib/node/message/request/raw/index.js.map +1 -1
- package/dist/lib/node/message/response/index.js +0 -5
- package/dist/lib/node/message/response/index.js.map +1 -1
- package/dist/lib/node/message/update/index.js +0 -1
- package/dist/lib/node/message/update/index.js.map +1 -1
- package/dist/lib/node/mixins/EndpointRequestMixin.js +2 -2
- package/dist/lib/node/mixins/EndpointRequestMixin.js.map +1 -1
- package/dist/lib/node/mixins/HTTPProxyRequestMixin.js.map +1 -1
- package/dist/lib/node/mixins/RemoteLoggerMixin.js +34 -0
- package/dist/lib/node/mixins/RemoteLoggerMixin.js.map +1 -0
- package/dist/lib/node/mixins/auth/AppAuthMixin.js +78 -10
- package/dist/lib/node/mixins/auth/AppAuthMixin.js.map +1 -1
- package/dist/lib/node/mixins/auth/SessionAuthMixin.js +75 -35
- package/dist/lib/node/mixins/auth/SessionAuthMixin.js.map +1 -1
- package/dist/lib/node/mixins/auth/UserCredentialAuthMixin.js +80 -10
- package/dist/lib/node/mixins/auth/UserCredentialAuthMixin.js.map +1 -1
- package/dist/lib/node/mixins/auth/UserPasswordAuthMixin.js +78 -11
- package/dist/lib/node/mixins/auth/UserPasswordAuthMixin.js.map +1 -1
- package/dist/lib/node/mixins/auth/index.js +0 -33
- package/dist/lib/node/mixins/auth/index.js.map +1 -1
- package/dist/lib/node/mixins/index.js +1 -0
- package/dist/lib/node/mixins/index.js.map +1 -1
- package/dist/lib/node/version.js +1 -1
- package/dist/lib/node/version.js.map +1 -1
- package/dist/lib/types/FrontgateClient.d.ts +0 -1
- package/dist/lib/types/authentication/index.d.ts +3 -4
- package/dist/lib/types/authentication/util/ChallengeResolver.d.ts +2 -1
- package/dist/lib/types/common/errors.d.ts +0 -21
- package/dist/lib/types/common/functions.d.ts +0 -8
- package/dist/lib/types/common/interfaces/index.d.ts +0 -1
- package/dist/lib/types/compat/index.d.ts +0 -3
- package/dist/lib/types/connection/index.d.ts +16 -6
- package/dist/lib/types/connection/util/functions.d.ts +0 -18
- package/dist/lib/types/index.d.ts +0 -1
- package/dist/lib/types/message/index.d.ts +1 -1
- package/dist/lib/types/message/interfaces/index.d.ts +0 -1
- package/dist/lib/types/message/request/TransportLayerClientRequestHeader.d.ts +1 -0
- package/dist/lib/types/message/request/raw/index.d.ts +0 -1
- package/dist/lib/types/message/response/index.d.ts +0 -5
- package/dist/lib/types/message/update/index.d.ts +0 -1
- package/dist/lib/types/mixins/AuthTokenRequestMixin.d.ts +2 -2
- package/dist/lib/types/mixins/EndpointRequestMixin.d.ts +2 -2
- package/dist/lib/types/mixins/HTTPProxyRequestMixin.d.ts +2 -4
- package/dist/lib/types/mixins/LoggerMixin.d.ts +2 -2
- package/dist/lib/types/mixins/MessageCompressorMixin.d.ts +2 -2
- package/dist/lib/types/mixins/OpenTelemetryMixin.d.ts +2 -2
- package/dist/lib/types/mixins/PingMixin.d.ts +2 -2
- package/dist/lib/types/mixins/ReconnectMixin.d.ts +2 -2
- package/dist/lib/types/mixins/RemoteLoggerMixin.d.ts +16 -0
- package/dist/lib/types/mixins/RequestMixin.d.ts +2 -2
- package/dist/lib/types/mixins/auth/AppAuthMixin.d.ts +16 -8
- package/dist/lib/types/mixins/auth/CookieTokenAuthMixin.d.ts +2 -2
- package/dist/lib/types/mixins/auth/FetchAuthenticationMixin.d.ts +2 -2
- package/dist/lib/types/mixins/auth/SessionAuthMixin.d.ts +11 -5
- package/dist/lib/types/mixins/auth/TokenAuthMixin.d.ts +2 -2
- package/dist/lib/types/mixins/auth/UserCredentialAuthMixin.d.ts +16 -8
- package/dist/lib/types/mixins/auth/UserPasswordAuthMixin.d.ts +16 -8
- package/dist/lib/types/mixins/auth/index.d.ts +0 -8
- package/dist/lib/types/mixins/connection/FrontgateWSMixin.d.ts +2 -2
- package/dist/lib/types/mixins/index.d.ts +2 -1
- package/dist/lib/types/mixins/subscription/EndpointSubscriptionMixin.d.ts +2 -2
- package/dist/lib/types/mixins/subscription/RawSubscriptionMixin.d.ts +2 -2
- package/dist/lib/umd/mdg2.client.min.umd.js +1 -12
- package/dist/lib/umd/mdg2.client.umd.js +3891 -7990
- package/package.json +7 -11
- package/dist/lib/esnext/Mdg2Client.js +0 -186
- package/dist/lib/esnext/Mdg2Client.js.map +0 -1
- package/dist/lib/esnext/authentication/AbstractAuthentication.js +0 -50
- package/dist/lib/esnext/authentication/AbstractAuthentication.js.map +0 -1
- package/dist/lib/esnext/authentication/AppAuthentication.js +0 -71
- package/dist/lib/esnext/authentication/AppAuthentication.js.map +0 -1
- package/dist/lib/esnext/authentication/AuthenticationInterface.js +0 -2
- package/dist/lib/esnext/authentication/AuthenticationInterface.js.map +0 -1
- package/dist/lib/esnext/authentication/CookieTokenAuthentication.js +0 -19
- package/dist/lib/esnext/authentication/CookieTokenAuthentication.js.map +0 -1
- package/dist/lib/esnext/authentication/TokenAuthentication.js +0 -43
- package/dist/lib/esnext/authentication/TokenAuthentication.js.map +0 -1
- package/dist/lib/esnext/authentication/UserCredentialAuthentication.js +0 -74
- package/dist/lib/esnext/authentication/UserCredentialAuthentication.js.map +0 -1
- package/dist/lib/esnext/authentication/UserPasswordAuthentication.js +0 -72
- package/dist/lib/esnext/authentication/UserPasswordAuthentication.js.map +0 -1
- package/dist/lib/esnext/common/Mdg2ClientOptions.js +0 -2
- package/dist/lib/esnext/common/Mdg2ClientOptions.js.map +0 -1
- package/dist/lib/esnext/common/constants.js +0 -11
- package/dist/lib/esnext/common/constants.js.map +0 -1
- package/dist/lib/esnext/common/interfaces/observe/ObserveOptions.js +0 -2
- package/dist/lib/esnext/common/interfaces/observe/ObserveOptions.js.map +0 -1
- package/dist/lib/esnext/connection/AbstractFrontgateConnection.js +0 -325
- package/dist/lib/esnext/connection/AbstractFrontgateConnection.js.map +0 -1
- package/dist/lib/esnext/connection/ConnectionInterface.js +0 -2
- package/dist/lib/esnext/connection/ConnectionInterface.js.map +0 -1
- package/dist/lib/esnext/connection/FrontgateWSConnection.js +0 -282
- package/dist/lib/esnext/connection/FrontgateWSConnection.js.map +0 -1
- package/dist/lib/esnext/connection/JobPromise.js +0 -3
- package/dist/lib/esnext/connection/JobPromise.js.map +0 -1
- package/dist/lib/esnext/connection/LatencyHandler.js +0 -2
- package/dist/lib/esnext/connection/LatencyHandler.js.map +0 -1
- package/dist/lib/esnext/connection/LatencyTracker.js +0 -48
- package/dist/lib/esnext/connection/LatencyTracker.js.map +0 -1
- package/dist/lib/esnext/connection/MessageProcessor.js +0 -2
- package/dist/lib/esnext/connection/MessageProcessor.js.map +0 -1
- package/dist/lib/esnext/connection/util/Encoding.js +0 -15
- package/dist/lib/esnext/connection/util/Encoding.js.map +0 -1
- package/dist/lib/esnext/core/RequestModule.js +0 -350
- package/dist/lib/esnext/core/RequestModule.js.map +0 -1
- package/dist/lib/esnext/core/SubscriptionModule.js +0 -105
- package/dist/lib/esnext/core/SubscriptionModule.js.map +0 -1
- package/dist/lib/esnext/core/subscription/EndpointHandler.js +0 -122
- package/dist/lib/esnext/core/subscription/EndpointHandler.js.map +0 -1
- package/dist/lib/esnext/core/subscription/SubjectManager.js +0 -40
- package/dist/lib/esnext/core/subscription/SubjectManager.js.map +0 -1
- package/dist/lib/esnext/message/MessageFactory.js +0 -37
- package/dist/lib/esnext/message/MessageFactory.js.map +0 -1
- package/dist/lib/esnext/message/guards.js +0 -22
- package/dist/lib/esnext/message/guards.js.map +0 -1
- package/dist/lib/esnext/message/interfaces/JobObservable.js +0 -2
- package/dist/lib/esnext/message/interfaces/JobObservable.js.map +0 -1
- package/dist/lib/esnext/message/request/raw/RawRequestFactory.js +0 -19
- package/dist/lib/esnext/message/request/raw/RawRequestFactory.js.map +0 -1
- package/dist/lib/esnext/message/response/AuthenticationByTokenResponse.js +0 -2
- package/dist/lib/esnext/message/response/AuthenticationByTokenResponse.js.map +0 -1
- package/dist/lib/esnext/message/response/CancelSubscriptionResponse.js +0 -4
- package/dist/lib/esnext/message/response/CancelSubscriptionResponse.js.map +0 -1
- package/dist/lib/esnext/message/response/LoadNotificationMessage.js +0 -2
- package/dist/lib/esnext/message/response/LoadNotificationMessage.js.map +0 -1
- package/dist/lib/esnext/message/response/PermissionDeniedResponse.js +0 -7
- package/dist/lib/esnext/message/response/PermissionDeniedResponse.js.map +0 -1
- package/dist/lib/esnext/message/response/RejectResponse.js +0 -10
- package/dist/lib/esnext/message/response/RejectResponse.js.map +0 -1
- package/dist/lib/esnext/message/update/SubscriptionLossMessage.js +0 -11
- package/dist/lib/esnext/message/update/SubscriptionLossMessage.js.map +0 -1
- package/dist/lib/esnext/util/TimeOutWrapper.js +0 -52
- package/dist/lib/esnext/util/TimeOutWrapper.js.map +0 -1
- package/dist/lib/node/Mdg2Client.js +0 -190
- package/dist/lib/node/Mdg2Client.js.map +0 -1
- package/dist/lib/node/authentication/AbstractAuthentication.js +0 -54
- package/dist/lib/node/authentication/AbstractAuthentication.js.map +0 -1
- package/dist/lib/node/authentication/AppAuthentication.js +0 -75
- package/dist/lib/node/authentication/AppAuthentication.js.map +0 -1
- package/dist/lib/node/authentication/AuthenticationInterface.js +0 -3
- package/dist/lib/node/authentication/AuthenticationInterface.js.map +0 -1
- package/dist/lib/node/authentication/CookieTokenAuthentication.js +0 -23
- package/dist/lib/node/authentication/CookieTokenAuthentication.js.map +0 -1
- package/dist/lib/node/authentication/TokenAuthentication.js +0 -47
- package/dist/lib/node/authentication/TokenAuthentication.js.map +0 -1
- package/dist/lib/node/authentication/UserCredentialAuthentication.js +0 -78
- package/dist/lib/node/authentication/UserCredentialAuthentication.js.map +0 -1
- package/dist/lib/node/authentication/UserPasswordAuthentication.js +0 -76
- package/dist/lib/node/authentication/UserPasswordAuthentication.js.map +0 -1
- package/dist/lib/node/common/Mdg2ClientOptions.js +0 -3
- package/dist/lib/node/common/Mdg2ClientOptions.js.map +0 -1
- package/dist/lib/node/common/constants.js +0 -14
- package/dist/lib/node/common/constants.js.map +0 -1
- package/dist/lib/node/common/interfaces/observe/ObserveOptions.js +0 -3
- package/dist/lib/node/common/interfaces/observe/ObserveOptions.js.map +0 -1
- package/dist/lib/node/connection/AbstractFrontgateConnection.js +0 -329
- package/dist/lib/node/connection/AbstractFrontgateConnection.js.map +0 -1
- package/dist/lib/node/connection/ConnectionInterface.js +0 -3
- package/dist/lib/node/connection/ConnectionInterface.js.map +0 -1
- package/dist/lib/node/connection/FrontgateWSConnection.js +0 -289
- package/dist/lib/node/connection/FrontgateWSConnection.js.map +0 -1
- package/dist/lib/node/connection/JobPromise.js +0 -7
- package/dist/lib/node/connection/JobPromise.js.map +0 -1
- package/dist/lib/node/connection/LatencyHandler.js +0 -3
- package/dist/lib/node/connection/LatencyHandler.js.map +0 -1
- package/dist/lib/node/connection/LatencyTracker.js +0 -52
- package/dist/lib/node/connection/LatencyTracker.js.map +0 -1
- package/dist/lib/node/connection/MessageProcessor.js +0 -3
- package/dist/lib/node/connection/MessageProcessor.js.map +0 -1
- package/dist/lib/node/connection/util/Encoding.js +0 -19
- package/dist/lib/node/connection/util/Encoding.js.map +0 -1
- package/dist/lib/node/core/RequestModule.js +0 -354
- package/dist/lib/node/core/RequestModule.js.map +0 -1
- package/dist/lib/node/core/SubscriptionModule.js +0 -109
- package/dist/lib/node/core/SubscriptionModule.js.map +0 -1
- package/dist/lib/node/core/subscription/EndpointHandler.js +0 -126
- package/dist/lib/node/core/subscription/EndpointHandler.js.map +0 -1
- package/dist/lib/node/core/subscription/SubjectManager.js +0 -44
- package/dist/lib/node/core/subscription/SubjectManager.js.map +0 -1
- package/dist/lib/node/message/MessageFactory.js +0 -74
- package/dist/lib/node/message/MessageFactory.js.map +0 -1
- package/dist/lib/node/message/guards.js +0 -31
- package/dist/lib/node/message/guards.js.map +0 -1
- package/dist/lib/node/message/interfaces/JobObservable.js +0 -3
- package/dist/lib/node/message/interfaces/JobObservable.js.map +0 -1
- package/dist/lib/node/message/request/raw/RawRequestFactory.js +0 -23
- package/dist/lib/node/message/request/raw/RawRequestFactory.js.map +0 -1
- package/dist/lib/node/message/response/AuthenticationByTokenResponse.js +0 -3
- package/dist/lib/node/message/response/AuthenticationByTokenResponse.js.map +0 -1
- package/dist/lib/node/message/response/CancelSubscriptionResponse.js +0 -8
- package/dist/lib/node/message/response/CancelSubscriptionResponse.js.map +0 -1
- package/dist/lib/node/message/response/LoadNotificationMessage.js +0 -3
- package/dist/lib/node/message/response/LoadNotificationMessage.js.map +0 -1
- package/dist/lib/node/message/response/PermissionDeniedResponse.js +0 -11
- package/dist/lib/node/message/response/PermissionDeniedResponse.js.map +0 -1
- package/dist/lib/node/message/response/RejectResponse.js +0 -14
- package/dist/lib/node/message/response/RejectResponse.js.map +0 -1
- package/dist/lib/node/message/update/SubscriptionLossMessage.js +0 -15
- package/dist/lib/node/message/update/SubscriptionLossMessage.js.map +0 -1
- package/dist/lib/node/util/TimeOutWrapper.js +0 -56
- package/dist/lib/node/util/TimeOutWrapper.js.map +0 -1
- package/dist/lib/types/Mdg2Client.d.ts +0 -52
- package/dist/lib/types/authentication/AbstractAuthentication.d.ts +0 -17
- package/dist/lib/types/authentication/AppAuthentication.d.ts +0 -12
- package/dist/lib/types/authentication/AuthenticationInterface.d.ts +0 -9
- package/dist/lib/types/authentication/CookieTokenAuthentication.d.ts +0 -6
- package/dist/lib/types/authentication/TokenAuthentication.d.ts +0 -14
- package/dist/lib/types/authentication/UserCredentialAuthentication.d.ts +0 -13
- package/dist/lib/types/authentication/UserPasswordAuthentication.d.ts +0 -14
- package/dist/lib/types/common/Mdg2ClientOptions.d.ts +0 -12
- package/dist/lib/types/common/constants.d.ts +0 -11
- package/dist/lib/types/common/interfaces/observe/ObserveOptions.d.ts +0 -5
- package/dist/lib/types/connection/AbstractFrontgateConnection.d.ts +0 -116
- package/dist/lib/types/connection/ConnectionInterface.d.ts +0 -53
- package/dist/lib/types/connection/FrontgateWSConnection.d.ts +0 -23
- package/dist/lib/types/connection/JobPromise.d.ts +0 -3
- package/dist/lib/types/connection/LatencyHandler.d.ts +0 -1
- package/dist/lib/types/connection/LatencyTracker.d.ts +0 -13
- package/dist/lib/types/connection/MessageProcessor.d.ts +0 -2
- package/dist/lib/types/connection/util/Encoding.d.ts +0 -9
- package/dist/lib/types/core/RequestModule.d.ts +0 -78
- package/dist/lib/types/core/SubscriptionModule.d.ts +0 -24
- package/dist/lib/types/core/subscription/EndpointHandler.d.ts +0 -37
- package/dist/lib/types/core/subscription/SubjectManager.d.ts +0 -21
- package/dist/lib/types/message/MessageFactory.d.ts +0 -29
- package/dist/lib/types/message/guards.d.ts +0 -11
- package/dist/lib/types/message/interfaces/JobObservable.d.ts +0 -4
- package/dist/lib/types/message/request/raw/RawRequestFactory.d.ts +0 -4
- package/dist/lib/types/message/response/AuthenticationByTokenResponse.d.ts +0 -20
- package/dist/lib/types/message/response/CancelSubscriptionResponse.d.ts +0 -3
- package/dist/lib/types/message/response/LoadNotificationMessage.d.ts +0 -8
- package/dist/lib/types/message/response/PermissionDeniedResponse.d.ts +0 -4
- package/dist/lib/types/message/response/RejectResponse.d.ts +0 -5
- package/dist/lib/types/message/update/SubscriptionLossMessage.d.ts +0 -17
- 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": "
|
|
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": "^
|
|
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": "^
|
|
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": "^
|
|
86
|
-
"typedoc": "^0.
|
|
82
|
+
"rimraf": "^6.0.0",
|
|
83
|
+
"typedoc": "^0.28.0",
|
|
87
84
|
"typescript": "^5.3.3",
|
|
88
|
-
"vite": "^
|
|
89
|
-
"vite-node": "^3.1.1",
|
|
85
|
+
"vite": "^7.0.0",
|
|
90
86
|
"vitest": "^3.1.1"
|
|
91
87
|
},
|
|
92
|
-
"packageManager": "yarn@4.
|
|
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 +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":"AAEA,OAAO,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAC,sBAAsB,EAAE,oBAAoB,EAAE,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAC7G,OAAO,EAAC,eAAe,EAAC,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAC,qBAAqB,EAAC,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAC,oBAAoB,EAAC,MAAM,yCAAyC,CAAC;AAG7E,OAAO,EAAC,WAAW,EAAC,MAAM,QAAQ,CAAC;AAEnC,MAAM,OAAO,4BAA6B,SAAQ,sBAAsB;IAStE,YAAY,aAAqB,EAAE,QAAgB,EAAE,WAAmB;QACtE,KAAK,CAAC,aAAa,CAAC,CAAC;QAHP,kBAAa,GAAG,IAAI,CAAC;QAKnC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,qHAAqH,CAAC,CAAC;QACzI,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;QAC9G,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,UAA+B;QACvD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACtE,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,CAAC;QAE1F,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAEjE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEtC,MAAM,IAAI,CAAC,mDAAmD,CAAC,qBAAqB,CAAC,CAAC;IACxF,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACrC,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG;YACd,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;YAC9B,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9C,gBAAgB,EAAE,CAAC,EAAC,gBAAgB,EAAE,eAAe,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,EAAC,CAAC;SAC1H,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAEnD,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAA2B,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,GAA2B;QAChE,MAAM,eAAe,GAAG,oCAAoC,CAAC;QAE7D,IAAI,GAAG,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,qBAAqB,eAAe,mBAAmB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;QACzF,CAAC;QAGD,IAAI,GAAG,CAAC,OAAO,KAAK,qBAAqB,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC;YACpD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC;QAC5D,CAAC;QACD,MAAM,EAAC,SAAS,EAAC,GAAG,GAAG,CAAC,SAAS,CAAC;QAClC,MAAM,OAAO,GAAG;YACd,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe;YACxD,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB;YAC1D,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB;SACrE,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnE,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAA0B,CAAC;IACzF,CAAC;IAEO,KAAK,CAAC,mDAAmD,CAAC,GAA0B;QAC1F,MAAM,eAAe,GAAG,mCAAmC,CAAC;QAE5D,IAAI,GAAG,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,qBAAqB,eAAe,mBAAmB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,0CAA0C;YACnD,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;SACT,CAAC;QAEF,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -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":"AAEA,OAAO,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAC,sBAAsB,EAAE,oBAAoB,EAAE,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAC7G,OAAO,EAAC,eAAe,EAAC,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAAC,qBAAqB,EAAC,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAC,oBAAoB,EAAC,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAC,WAAW,EAAC,MAAM,QAAQ,CAAC;AAEnC,MAAM,OAAO,0BAA2B,SAAQ,sBAAsB;IAWpE,YAAY,aAAqB,EAAE,QAAgB,EAAE,QAAgB;QACnE,KAAK,CAAC,aAAa,CAAC,CAAC;QAHP,kBAAa,GAAG,IAAI,CAAC;QAKnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,MAAM,iBAAiB,GAAG,eAAe,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnF,MAAM,iBAAiB,GAAG,eAAe,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnF,IAAI,iBAAiB,IAAI,iBAAiB,EAAE,CAAC;YAC3C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACnD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,UAA+B;QACvD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACtE,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,CAAC;QAE1F,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEtC,MAAM,IAAI,CAAC,mDAAmD,CAAC,qBAAqB,CAAC,CAAC;IACxF,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACrC,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG;YACd,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;YAC9B,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9C,gBAAgB,EAAE,CAAC,EAAC,gBAAgB,EAAE,eAAe,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,EAAC,CAAC;SAC1H,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAEnD,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAA2B,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,GAA2B;QAChE,MAAM,eAAe,GAAG,oCAAoC,CAAC;QAE7D,IAAI,GAAG,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,qBAAqB,eAAe,mBAAmB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;QACzF,CAAC;QAGD,IAAI,GAAG,CAAC,OAAO,KAAK,qBAAqB,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC;QACtD,CAAC;QACD,MAAM,EAAC,SAAS,EAAC,GAAG,GAAG,CAAC,SAAS,CAAC;QAClC,MAAM,OAAO,GAAG;YACd,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe;YACxD,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB;YAC1D,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB;SACrE,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnE,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAA0B,CAAC;IACzF,CAAC;IAEO,KAAK,CAAC,mDAAmD,CAAC,GAA0B;QAC1F,MAAM,eAAe,GAAG,mCAAmC,CAAC;QAE5D,IAAI,GAAG,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,qBAAqB,eAAe,mBAAmB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,0CAA0C;YACnD,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;SACT,CAAC;QAEF,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;CACF"}
|