@factset/frontgate-js-sdk 6.11.1 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/CHANGELOG.md +97 -40
  2. package/dist/lib/esnext/FrontgateClient.js +0 -3
  3. package/dist/lib/esnext/authentication/index.js +3 -4
  4. package/dist/lib/esnext/common/errors.js +0 -35
  5. package/dist/lib/esnext/common/functions.js +0 -84
  6. package/dist/lib/esnext/common/interfaces/index.js +0 -1
  7. package/dist/lib/esnext/compat/index.js +0 -3
  8. package/dist/lib/esnext/connection/index.js +19 -6
  9. package/dist/lib/esnext/connection/util/functions.js +0 -56
  10. package/dist/lib/esnext/index.js +0 -1
  11. package/dist/lib/esnext/message/index.js +1 -1
  12. package/dist/lib/esnext/message/interfaces/index.js +0 -1
  13. package/dist/lib/esnext/message/request/TransportLayerClientRequestHeader.js +1 -1
  14. package/dist/lib/esnext/message/request/raw/example/CreateNotationSearchRequest.js +1 -1
  15. package/dist/lib/esnext/message/request/raw/index.js +0 -1
  16. package/dist/lib/esnext/message/response/index.js +0 -5
  17. package/dist/lib/esnext/message/update/index.js +0 -1
  18. package/dist/lib/esnext/mixins/EndpointRequestMixin.js +1 -1
  19. package/dist/lib/esnext/mixins/RemoteLoggerMixin.js +29 -0
  20. package/dist/lib/esnext/mixins/auth/AppAuthMixin.js +79 -11
  21. package/dist/lib/esnext/mixins/auth/SessionAuthMixin.js +76 -36
  22. package/dist/lib/esnext/mixins/auth/UserCredentialAuthMixin.js +82 -12
  23. package/dist/lib/esnext/mixins/auth/UserPasswordAuthMixin.js +80 -13
  24. package/dist/lib/esnext/mixins/auth/index.js +0 -31
  25. package/dist/lib/esnext/mixins/index.js +1 -0
  26. package/dist/lib/esnext/mixins/subscription/EndpointSubscriptionMixin.js +149 -122
  27. package/dist/lib/esnext/version.js +1 -1
  28. package/dist/lib/node/FrontgateClient.js +0 -3
  29. package/dist/lib/node/authentication/index.js +4 -4
  30. package/dist/lib/node/common/errors.js +1 -41
  31. package/dist/lib/node/common/functions.js +0 -92
  32. package/dist/lib/node/common/interfaces/index.js +0 -1
  33. package/dist/lib/node/compat/index.js +0 -3
  34. package/dist/lib/node/connection/index.js +20 -6
  35. package/dist/lib/node/connection/util/functions.js +0 -63
  36. package/dist/lib/node/index.js +1 -3
  37. package/dist/lib/node/message/index.js +2 -1
  38. package/dist/lib/node/message/interfaces/index.js +0 -1
  39. package/dist/lib/node/message/request/TransportLayerClientRequestHeader.js +3 -3
  40. package/dist/lib/node/message/request/raw/example/CreateNotationSearchRequest.js +3 -3
  41. package/dist/lib/node/message/request/raw/index.js +0 -1
  42. package/dist/lib/node/message/response/index.js +0 -5
  43. package/dist/lib/node/message/update/index.js +0 -1
  44. package/dist/lib/node/mixins/EndpointRequestMixin.js +2 -2
  45. package/dist/lib/node/mixins/RemoteLoggerMixin.js +33 -0
  46. package/dist/lib/node/mixins/auth/AppAuthMixin.js +78 -10
  47. package/dist/lib/node/mixins/auth/SessionAuthMixin.js +75 -35
  48. package/dist/lib/node/mixins/auth/UserCredentialAuthMixin.js +80 -10
  49. package/dist/lib/node/mixins/auth/UserPasswordAuthMixin.js +78 -11
  50. package/dist/lib/node/mixins/auth/index.js +0 -33
  51. package/dist/lib/node/mixins/index.js +1 -0
  52. package/dist/lib/node/mixins/subscription/EndpointSubscriptionMixin.js +149 -122
  53. package/dist/lib/node/version.js +1 -1
  54. package/dist/lib/types/FrontgateClient.d.ts +0 -1
  55. package/dist/lib/types/authentication/index.d.ts +3 -4
  56. package/dist/lib/types/authentication/util/ChallengeResolver.d.ts +2 -1
  57. package/dist/lib/types/common/errors.d.ts +0 -21
  58. package/dist/lib/types/common/functions.d.ts +0 -8
  59. package/dist/lib/types/common/interfaces/index.d.ts +0 -1
  60. package/dist/lib/types/compat/index.d.ts +0 -3
  61. package/dist/lib/types/connection/index.d.ts +16 -6
  62. package/dist/lib/types/connection/util/functions.d.ts +0 -18
  63. package/dist/lib/types/index.d.ts +0 -1
  64. package/dist/lib/types/message/index.d.ts +1 -1
  65. package/dist/lib/types/message/interfaces/index.d.ts +0 -1
  66. package/dist/lib/types/message/request/TransportLayerClientRequestHeader.d.ts +1 -0
  67. package/dist/lib/types/message/request/raw/index.d.ts +0 -1
  68. package/dist/lib/types/message/response/index.d.ts +0 -5
  69. package/dist/lib/types/message/update/index.d.ts +0 -1
  70. package/dist/lib/types/mixins/AuthTokenRequestMixin.d.ts +1 -2
  71. package/dist/lib/types/mixins/EndpointRequestMixin.d.ts +1 -2
  72. package/dist/lib/types/mixins/HTTPProxyRequestMixin.d.ts +1 -4
  73. package/dist/lib/types/mixins/LoggerMixin.d.ts +1 -2
  74. package/dist/lib/types/mixins/MessageCompressorMixin.d.ts +1 -2
  75. package/dist/lib/types/mixins/OpenTelemetryMixin.d.ts +1 -2
  76. package/dist/lib/types/mixins/PingMixin.d.ts +1 -2
  77. package/dist/lib/types/mixins/ReconnectMixin.d.ts +1 -2
  78. package/dist/lib/types/mixins/RemoteLoggerMixin.d.ts +16 -0
  79. package/dist/lib/types/mixins/RequestMixin.d.ts +1 -2
  80. package/dist/lib/types/mixins/auth/AppAuthMixin.d.ts +15 -8
  81. package/dist/lib/types/mixins/auth/CookieTokenAuthMixin.d.ts +1 -2
  82. package/dist/lib/types/mixins/auth/FetchAuthenticationMixin.d.ts +1 -2
  83. package/dist/lib/types/mixins/auth/SessionAuthMixin.d.ts +10 -5
  84. package/dist/lib/types/mixins/auth/TokenAuthMixin.d.ts +1 -2
  85. package/dist/lib/types/mixins/auth/UserCredentialAuthMixin.d.ts +15 -8
  86. package/dist/lib/types/mixins/auth/UserPasswordAuthMixin.d.ts +15 -8
  87. package/dist/lib/types/mixins/auth/index.d.ts +0 -8
  88. package/dist/lib/types/mixins/connection/FrontgateWSMixin.d.ts +1 -2
  89. package/dist/lib/types/mixins/index.d.ts +2 -1
  90. package/dist/lib/types/mixins/subscription/EndpointSubscriptionMixin.d.ts +4 -6
  91. package/dist/lib/types/mixins/subscription/RawSubscriptionMixin.d.ts +1 -2
  92. package/dist/lib/umd/mdg2.client.min.umd.js +1 -12
  93. package/dist/lib/umd/mdg2.client.umd.js +4061 -8138
  94. package/package.json +25 -28
  95. package/dist/lib/esnext/Mdg2Client.js +0 -185
  96. package/dist/lib/esnext/authentication/AbstractAuthentication.js +0 -49
  97. package/dist/lib/esnext/authentication/AppAuthentication.js +0 -70
  98. package/dist/lib/esnext/authentication/AuthenticationInterface.js +0 -1
  99. package/dist/lib/esnext/authentication/CookieTokenAuthentication.js +0 -18
  100. package/dist/lib/esnext/authentication/TokenAuthentication.js +0 -42
  101. package/dist/lib/esnext/authentication/UserCredentialAuthentication.js +0 -73
  102. package/dist/lib/esnext/authentication/UserPasswordAuthentication.js +0 -71
  103. package/dist/lib/esnext/common/Mdg2ClientOptions.js +0 -1
  104. package/dist/lib/esnext/common/constants.js +0 -10
  105. package/dist/lib/esnext/common/interfaces/observe/ObserveOptions.js +0 -1
  106. package/dist/lib/esnext/connection/AbstractFrontgateConnection.js +0 -324
  107. package/dist/lib/esnext/connection/ConnectionInterface.js +0 -1
  108. package/dist/lib/esnext/connection/FrontgateWSConnection.js +0 -281
  109. package/dist/lib/esnext/connection/JobPromise.js +0 -2
  110. package/dist/lib/esnext/connection/LatencyHandler.js +0 -1
  111. package/dist/lib/esnext/connection/LatencyTracker.js +0 -47
  112. package/dist/lib/esnext/connection/MessageProcessor.js +0 -1
  113. package/dist/lib/esnext/connection/util/Encoding.js +0 -14
  114. package/dist/lib/esnext/core/RequestModule.js +0 -349
  115. package/dist/lib/esnext/core/SubscriptionModule.js +0 -104
  116. package/dist/lib/esnext/core/subscription/EndpointHandler.js +0 -121
  117. package/dist/lib/esnext/core/subscription/SubjectManager.js +0 -39
  118. package/dist/lib/esnext/message/MessageFactory.js +0 -36
  119. package/dist/lib/esnext/message/guards.js +0 -21
  120. package/dist/lib/esnext/message/interfaces/JobObservable.js +0 -1
  121. package/dist/lib/esnext/message/request/raw/RawRequestFactory.js +0 -18
  122. package/dist/lib/esnext/message/response/AuthenticationByTokenResponse.js +0 -1
  123. package/dist/lib/esnext/message/response/CancelSubscriptionResponse.js +0 -3
  124. package/dist/lib/esnext/message/response/LoadNotificationMessage.js +0 -1
  125. package/dist/lib/esnext/message/response/PermissionDeniedResponse.js +0 -6
  126. package/dist/lib/esnext/message/response/RejectResponse.js +0 -9
  127. package/dist/lib/esnext/message/update/SubscriptionLossMessage.js +0 -10
  128. package/dist/lib/esnext/util/TimeOutWrapper.js +0 -51
  129. package/dist/lib/node/Mdg2Client.js +0 -189
  130. package/dist/lib/node/authentication/AbstractAuthentication.js +0 -53
  131. package/dist/lib/node/authentication/AppAuthentication.js +0 -74
  132. package/dist/lib/node/authentication/AuthenticationInterface.js +0 -2
  133. package/dist/lib/node/authentication/CookieTokenAuthentication.js +0 -22
  134. package/dist/lib/node/authentication/TokenAuthentication.js +0 -46
  135. package/dist/lib/node/authentication/UserCredentialAuthentication.js +0 -77
  136. package/dist/lib/node/authentication/UserPasswordAuthentication.js +0 -75
  137. package/dist/lib/node/common/Mdg2ClientOptions.js +0 -2
  138. package/dist/lib/node/common/constants.js +0 -13
  139. package/dist/lib/node/common/interfaces/observe/ObserveOptions.js +0 -2
  140. package/dist/lib/node/connection/AbstractFrontgateConnection.js +0 -328
  141. package/dist/lib/node/connection/ConnectionInterface.js +0 -2
  142. package/dist/lib/node/connection/FrontgateWSConnection.js +0 -288
  143. package/dist/lib/node/connection/JobPromise.js +0 -6
  144. package/dist/lib/node/connection/LatencyHandler.js +0 -2
  145. package/dist/lib/node/connection/LatencyTracker.js +0 -51
  146. package/dist/lib/node/connection/MessageProcessor.js +0 -2
  147. package/dist/lib/node/connection/util/Encoding.js +0 -18
  148. package/dist/lib/node/core/RequestModule.js +0 -353
  149. package/dist/lib/node/core/SubscriptionModule.js +0 -108
  150. package/dist/lib/node/core/subscription/EndpointHandler.js +0 -125
  151. package/dist/lib/node/core/subscription/SubjectManager.js +0 -43
  152. package/dist/lib/node/message/MessageFactory.js +0 -73
  153. package/dist/lib/node/message/guards.js +0 -30
  154. package/dist/lib/node/message/interfaces/JobObservable.js +0 -2
  155. package/dist/lib/node/message/request/raw/RawRequestFactory.js +0 -22
  156. package/dist/lib/node/message/response/AuthenticationByTokenResponse.js +0 -2
  157. package/dist/lib/node/message/response/CancelSubscriptionResponse.js +0 -7
  158. package/dist/lib/node/message/response/LoadNotificationMessage.js +0 -2
  159. package/dist/lib/node/message/response/PermissionDeniedResponse.js +0 -10
  160. package/dist/lib/node/message/response/RejectResponse.js +0 -13
  161. package/dist/lib/node/message/update/SubscriptionLossMessage.js +0 -14
  162. package/dist/lib/node/util/TimeOutWrapper.js +0 -55
  163. package/dist/lib/types/Mdg2Client.d.ts +0 -52
  164. package/dist/lib/types/authentication/AbstractAuthentication.d.ts +0 -17
  165. package/dist/lib/types/authentication/AppAuthentication.d.ts +0 -12
  166. package/dist/lib/types/authentication/AuthenticationInterface.d.ts +0 -9
  167. package/dist/lib/types/authentication/CookieTokenAuthentication.d.ts +0 -6
  168. package/dist/lib/types/authentication/TokenAuthentication.d.ts +0 -14
  169. package/dist/lib/types/authentication/UserCredentialAuthentication.d.ts +0 -13
  170. package/dist/lib/types/authentication/UserPasswordAuthentication.d.ts +0 -14
  171. package/dist/lib/types/common/Mdg2ClientOptions.d.ts +0 -12
  172. package/dist/lib/types/common/constants.d.ts +0 -11
  173. package/dist/lib/types/common/interfaces/observe/ObserveOptions.d.ts +0 -5
  174. package/dist/lib/types/connection/AbstractFrontgateConnection.d.ts +0 -116
  175. package/dist/lib/types/connection/ConnectionInterface.d.ts +0 -53
  176. package/dist/lib/types/connection/FrontgateWSConnection.d.ts +0 -23
  177. package/dist/lib/types/connection/JobPromise.d.ts +0 -3
  178. package/dist/lib/types/connection/LatencyHandler.d.ts +0 -1
  179. package/dist/lib/types/connection/LatencyTracker.d.ts +0 -13
  180. package/dist/lib/types/connection/MessageProcessor.d.ts +0 -2
  181. package/dist/lib/types/connection/util/Encoding.d.ts +0 -9
  182. package/dist/lib/types/core/RequestModule.d.ts +0 -78
  183. package/dist/lib/types/core/SubscriptionModule.d.ts +0 -24
  184. package/dist/lib/types/core/subscription/EndpointHandler.d.ts +0 -37
  185. package/dist/lib/types/core/subscription/SubjectManager.d.ts +0 -21
  186. package/dist/lib/types/message/MessageFactory.d.ts +0 -29
  187. package/dist/lib/types/message/guards.d.ts +0 -11
  188. package/dist/lib/types/message/interfaces/JobObservable.d.ts +0 -4
  189. package/dist/lib/types/message/request/raw/RawRequestFactory.d.ts +0 -4
  190. package/dist/lib/types/message/response/AuthenticationByTokenResponse.d.ts +0 -20
  191. package/dist/lib/types/message/response/CancelSubscriptionResponse.d.ts +0 -3
  192. package/dist/lib/types/message/response/LoadNotificationMessage.d.ts +0 -8
  193. package/dist/lib/types/message/response/PermissionDeniedResponse.d.ts +0 -4
  194. package/dist/lib/types/message/response/RejectResponse.d.ts +0 -5
  195. package/dist/lib/types/message/update/SubscriptionLossMessage.d.ts +0 -17
  196. package/dist/lib/types/util/TimeOutWrapper.d.ts +0 -12
@@ -1,24 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FetchConnectionConfigurationResponseHeaders = void 0;
4
3
  exports.getBytesFromBuffer = getBytesFromBuffer;
5
- exports.parseConnectionConfiguration = parseConnectionConfiguration;
6
- exports.objectFromFetchHeaders = objectFromFetchHeaders;
7
- exports.fetchConnectionConfiguration = fetchConnectionConfiguration;
8
- exports.createConnection = createConnection;
9
- exports.setConnectionConfiguration = setConnectionConfiguration;
10
- exports.getConnectionConfiguration = getConnectionConfiguration;
11
- const authentication_1 = require("../../authentication");
12
- const FrontgateWSConnection_1 = require("../FrontgateWSConnection");
13
- var FetchConnectionConfigurationResponseHeaders;
14
- (function (FetchConnectionConfigurationResponseHeaders) {
15
- FetchConnectionConfigurationResponseHeaders["FRONTGATE_HOST"] = "frontgate-host";
16
- FetchConnectionConfigurationResponseHeaders["FRONTGATE_PATH_PREFIX"] = "frontgate-path-prefix";
17
- FetchConnectionConfigurationResponseHeaders["FRONTGATE_SPLIT_AUTHENTICATION_TOKEN_SECOND_FACTOR"] = "frontgate-split-authentication-token-second-factor";
18
- FetchConnectionConfigurationResponseHeaders["FRONTGATE_AUTHENTICATION_TYPE"] = "frontgate-authentication-type";
19
- FetchConnectionConfigurationResponseHeaders["FRONTGATE_AUTHENTICATION_TOKEN"] = "frontgate-authentication-token";
20
- FetchConnectionConfigurationResponseHeaders["FRONTGATE_WEBSOCKET_PROTOCOL"] = "frontgate-websocket-protocol";
21
- })(FetchConnectionConfigurationResponseHeaders || (exports.FetchConnectionConfigurationResponseHeaders = FetchConnectionConfigurationResponseHeaders = {}));
22
4
  function getBytesFromBuffer(buf) {
23
5
  const res = [];
24
6
  if (buf) {
@@ -28,48 +10,3 @@ function getBytesFromBuffer(buf) {
28
10
  }
29
11
  return res;
30
12
  }
31
- function parseConnectionConfiguration(headers) {
32
- const config = {};
33
- const providedHeaders = Object.keys(headers);
34
- [
35
- FetchConnectionConfigurationResponseHeaders.FRONTGATE_HOST,
36
- FetchConnectionConfigurationResponseHeaders.FRONTGATE_PATH_PREFIX,
37
- FetchConnectionConfigurationResponseHeaders.FRONTGATE_SPLIT_AUTHENTICATION_TOKEN_SECOND_FACTOR,
38
- FetchConnectionConfigurationResponseHeaders.FRONTGATE_AUTHENTICATION_TYPE,
39
- FetchConnectionConfigurationResponseHeaders.FRONTGATE_AUTHENTICATION_TOKEN,
40
- FetchConnectionConfigurationResponseHeaders.FRONTGATE_WEBSOCKET_PROTOCOL,
41
- ].forEach((key) => {
42
- if (providedHeaders.includes(key)) {
43
- config[key.replace(/-([a-z])/g, (g) => g[1].toUpperCase())] = headers[key];
44
- }
45
- });
46
- return config;
47
- }
48
- function objectFromFetchHeaders(providedHeaders) {
49
- const obj = {};
50
- providedHeaders.forEach((value, key) => {
51
- obj[key] = value;
52
- });
53
- return obj;
54
- }
55
- async function fetchConnectionConfiguration(input, init) {
56
- const response = await fetch(input, init);
57
- const headersAsObject = objectFromFetchHeaders(response.headers);
58
- const config = parseConnectionConfiguration(headersAsObject);
59
- return { config, response };
60
- }
61
- function createConnection(options = {}, input, init) {
62
- const auth = options.frontgateAuthenticationType === 'token' ? new authentication_1.TokenAuthentication(options.frontgateAuthenticationToken) : new authentication_1.CookieTokenAuthentication();
63
- auth.setFetchConfiguration(input, init);
64
- return new FrontgateWSConnection_1.FrontgateWSConnection(auth, options);
65
- }
66
- function setConnectionConfiguration({ frontgateHost, frontgateWebsocketProtocol }) {
67
- localStorage.setItem('mdg2config', JSON.stringify({ frontgateHost, frontgateWebsocketProtocol }));
68
- }
69
- function getConnectionConfiguration() {
70
- const item = localStorage.getItem('mdg2config');
71
- if (!item) {
72
- return null;
73
- }
74
- return JSON.parse(item);
75
- }
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.useTimeout = exports.FrontgateClient = exports.FrontgateClientBuilder = exports.Mdg2Client = void 0;
17
+ exports.useTimeout = exports.FrontgateClient = exports.FrontgateClientBuilder = void 0;
18
18
  __exportStar(require("./authentication"), exports);
19
19
  __exportStar(require("./connection"), exports);
20
20
  __exportStar(require("./message"), exports);
@@ -22,8 +22,6 @@ __exportStar(require("./common/interfaces"), exports);
22
22
  __exportStar(require("./common/types"), exports);
23
23
  __exportStar(require("./logger"), exports);
24
24
  __exportStar(require("./mixins"), exports);
25
- var Mdg2Client_1 = require("./Mdg2Client");
26
- Object.defineProperty(exports, "Mdg2Client", { enumerable: true, get: function () { return Mdg2Client_1.Mdg2Client; } });
27
25
  var FrontgateClient_1 = require("./FrontgateClient");
28
26
  Object.defineProperty(exports, "FrontgateClientBuilder", { enumerable: true, get: function () { return FrontgateClient_1.FrontgateClientBuilder; } });
29
27
  Object.defineProperty(exports, "FrontgateClient", { enumerable: true, get: function () { return FrontgateClient_1.FrontgateClient; } });
@@ -14,9 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./guards"), exports);
17
+ exports.FLAG_HAS_NEXT_CHUNK = void 0;
18
18
  __exportStar(require("./types"), exports);
19
19
  __exportStar(require("./interfaces"), exports);
20
20
  __exportStar(require("./request"), exports);
21
21
  __exportStar(require("./response"), exports);
22
22
  __exportStar(require("./update"), exports);
23
+ exports.FLAG_HAS_NEXT_CHUNK = 8;
@@ -17,4 +17,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./HighLevelRequestMethod"), exports);
18
18
  __exportStar(require("./HighLevelRequestOptions"), exports);
19
19
  __exportStar(require("./HTTPProxyRequestOptions"), exports);
20
- __exportStar(require("./JobObservable"), exports);
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TransportLayerClientRequestHeader = void 0;
4
- const constants_1 = require("../../common/constants");
3
+ exports.TransportLayerClientRequestHeader = exports.DEFAULT_TIMEOUT_IN_MS = void 0;
5
4
  const functions_1 = require("../../util/functions");
5
+ exports.DEFAULT_TIMEOUT_IN_MS = 6000;
6
6
  class TransportLayerClientRequestHeader {
7
7
  constructor() {
8
8
  this.headerMembers = {
@@ -10,7 +10,7 @@ class TransportLayerClientRequestHeader {
10
10
  id_job: 0,
11
11
  flags_r2: 0,
12
12
  resend_counter: 0,
13
- timeout: constants_1.DEFAULT_TIMEOUT_IN_MS,
13
+ timeout: exports.DEFAULT_TIMEOUT_IN_MS,
14
14
  authentication_identifiers: {
15
15
  id_application: 0,
16
16
  id_user: 0,
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createNotationSearchRequest = void 0;
4
- const AbstractAuthentication_1 = require("../../../../authentication/AbstractAuthentication");
4
+ const authentication_1 = require("../../../../authentication");
5
5
  const createNotationSearchRequest = () => ({
6
6
  Message: 'NotationSearchRequest',
7
7
  Version: 13,
@@ -14,8 +14,8 @@ const createNotationSearchRequest = () => ({
14
14
  resend_counter: 0,
15
15
  timeout: 5809,
16
16
  authentication_identifiers: {
17
- id_application: AbstractAuthentication_1.ID_APP_AUTHENTICATED,
18
- id_user: AbstractAuthentication_1.ID_USER_AUTHENTICATED,
17
+ id_application: authentication_1.ID_APP_AUTHENTICATED,
18
+ id_user: authentication_1.ID_USER_AUTHENTICATED,
19
19
  },
20
20
  cache_key: {
21
21
  value: [],
@@ -14,5 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./RawRequestFactory"), exports);
18
17
  __exportStar(require("./RawRequest"), exports);
@@ -15,15 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./AuthenticationTokenResponse"), exports);
18
- __exportStar(require("./AuthenticationByTokenResponse"), exports);
19
- __exportStar(require("./CancelSubscriptionResponse"), exports);
20
18
  __exportStar(require("./ConfigurationResponse"), exports);
21
19
  __exportStar(require("./DisconnectionMessage"), exports);
22
20
  __exportStar(require("./ErrorResponse"), exports);
23
21
  __exportStar(require("./HighLevelResponse"), exports);
24
22
  __exportStar(require("./HTTPProxyResponse"), exports);
25
- __exportStar(require("./LoadNotificationMessage"), exports);
26
23
  __exportStar(require("./Mdg2Response"), exports);
27
- __exportStar(require("./PermissionDeniedResponse"), exports);
28
24
  __exportStar(require("./PingResponse"), exports);
29
- __exportStar(require("./RejectResponse"), exports);
@@ -15,4 +15,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./HighLevelUpdate"), exports);
18
- __exportStar(require("./SubscriptionLossMessage"), exports);
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.endpointRequest = void 0;
9
9
  const _1 = require(".");
10
10
  const message_1 = require("../message");
11
- const MessageFactory_1 = require("../message/MessageFactory");
11
+ const message_2 = require("../message");
12
12
  const functions_1 = require("../util/functions");
13
13
  const endpointRequest = (config) => {
14
14
  const mixinEndpointRequestable = (Base) => {
@@ -78,7 +78,7 @@ const endpointRequest = (config) => {
78
78
  },
79
79
  _instances = new WeakSet(),
80
80
  _hasNextChunk = function _hasNextChunk(msg) {
81
- return ((msg.header?.flags ?? 0) & MessageFactory_1.FLAG_HAS_NEXT_CHUNK) === MessageFactory_1.FLAG_HAS_NEXT_CHUNK;
81
+ return ((msg.header?.flags ?? 0) & message_2.FLAG_HAS_NEXT_CHUNK) === message_2.FLAG_HAS_NEXT_CHUNK;
82
82
  },
83
83
  _a;
84
84
  };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.remotelogger = void 0;
4
+ const _1 = require(".");
5
+ const message_1 = require("../message");
6
+ const remotelogger = (identifier) => {
7
+ const mixinRemoteLogger = (Base) => {
8
+ return class extends Base {
9
+ async logRemotely(message) {
10
+ const request = new message_1.RawRequest({
11
+ Message: 'LogMessage',
12
+ timestamp: { microseconds: Date.now() * 1000 },
13
+ uuid: { id_1: identifier ?? 0, id_2: 0 },
14
+ level: { value: 4 },
15
+ area: 61,
16
+ Version: 1,
17
+ message,
18
+ });
19
+ const msg = {
20
+ message: request.getPtlMessage(),
21
+ callbackType: 'job',
22
+ callbackId: '',
23
+ };
24
+ return this.hooks.callHook('frontgateConnection:sendMessage', msg);
25
+ }
26
+ };
27
+ };
28
+ return (0, _1.createExtendedMixinFactory)(mixinRemoteLogger, {
29
+ featureName: 'RemoteLogger',
30
+ featureGroups: ['Misc'],
31
+ });
32
+ };
33
+ exports.remotelogger = remotelogger;
@@ -13,28 +13,96 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.appAuth = void 0;
15
15
  const _1 = require("../.");
16
- const AppAuthentication_1 = require("../../authentication/AppAuthentication");
16
+ const compat_1 = require("../../compat");
17
+ const connection_1 = require("../../connection");
18
+ const logger_1 = require("../../logger");
19
+ const crypto_1 = require("crypto");
17
20
  const appAuth = (idApplication, idUser, clientCredentials, deploymentStage) => {
18
21
  const mixinAppAuth = (Base) => {
19
- var _auth, _a;
22
+ var _instances, _sharedSecret, _clientSecret, _createAuthenticationRequest, _createConfigurationRequest, _createTransportLayerRequestHeaderConfigurationRequest, _submit, _a;
20
23
  return _a = class extends Base {
21
24
  constructor(...args) {
22
25
  super(...args);
23
- _auth.set(this, void 0);
24
- __classPrivateFieldSet(this, _auth, new AppAuthentication_1.AppAuthentication(idApplication, idUser, clientCredentials), "f");
26
+ _instances.add(this);
27
+ _sharedSecret.set(this, void 0);
28
+ _clientSecret.set(this, void 0);
29
+ if (typeof clientCredentials !== 'string') {
30
+ throw new Error('clientCredentials not provided or not a string. Client credentials must have the form "{server_secret}-{shared_secret}-{client_secret}".');
31
+ }
32
+ const secrets = clientCredentials.split('-');
33
+ if (secrets.length !== 3) {
34
+ throw new Error('Invalid clientCredentials. Client credentials must have the form "{server_secret}-{shared_secret}-{client_secret}".');
35
+ }
36
+ if (secrets[0] === '*') {
37
+ throw new Error('Invalid clientCredentials. Client credentials first part must be a hashed server secret.');
38
+ }
39
+ __classPrivateFieldSet(this, _sharedSecret, Buffer.from(secrets[1], 'base64'), "f");
40
+ __classPrivateFieldSet(this, _clientSecret, Buffer.from(secrets[2], 'base64'), "f");
25
41
  this.hooks.hook('frontgateConnection:connected', async (conf) => {
26
42
  void this.hooks.callHook('frontgateConnection:setIdApp', idApplication);
27
43
  void this.hooks.callHook('frontgateConnection:setIdUser', idUser);
28
- await __classPrivateFieldGet(this, _auth, "f").authenticate((0, _1.createConnectionInterface)({
29
- payload_content: conf.payloadContent,
30
- deployment_stage: deploymentStage,
31
- maximum_idle_interval: conf.maximumIdleInterval,
32
- }, this));
44
+ const authResponse = await __classPrivateFieldGet(this, _instances, "m", _submit).call(this, __classPrivateFieldGet(this, _instances, "m", _createAuthenticationRequest).call(this).toJson());
45
+ await __classPrivateFieldGet(this, _instances, "m", _submit).call(this, __classPrivateFieldGet(this, _instances, "m", _createConfigurationRequest).call(this, authResponse, conf).toJson());
46
+ await __classPrivateFieldGet(this, _instances, "m", _submit).call(this, __classPrivateFieldGet(this, _instances, "m", _createTransportLayerRequestHeaderConfigurationRequest).call(this));
33
47
  await this.hooks.callHook('frontgateConnection:authenticated');
34
48
  });
35
49
  }
36
50
  },
37
- _auth = new WeakMap(),
51
+ _sharedSecret = new WeakMap(),
52
+ _clientSecret = new WeakMap(),
53
+ _instances = new WeakSet(),
54
+ _createAuthenticationRequest = function _createAuthenticationRequest() {
55
+ const salt = (0, crypto_1.randomBytes)(16);
56
+ const options = {
57
+ idApplication,
58
+ salt: (0, connection_1.getBytesFromBuffer)(salt),
59
+ challenge: (0, connection_1.getBytesFromBuffer)((0, crypto_1.randomBytes)(16)),
60
+ encryptedSecrets: [{ encrypted_secret: compat_1.SecretGenerator.createEncryptedSecret(salt, __classPrivateFieldGet(this, _sharedSecret, "f"), __classPrivateFieldGet(this, _clientSecret, "f")) }],
61
+ };
62
+ return new compat_1.AuthenticationRequest(options);
63
+ },
64
+ _createConfigurationRequest = function _createConfigurationRequest(msg, conf) {
65
+ const expectedMessage = 'Foundation::AuthenticationResponse';
66
+ if (msg.Message !== expectedMessage) {
67
+ throw new Error(`Expected message "${expectedMessage}" but received "${msg.Message}"`);
68
+ }
69
+ const { challenge } = msg.challenge;
70
+ const options = {
71
+ shared_secret: __classPrivateFieldGet(this, _sharedSecret, "f"),
72
+ payload_content: conf.payloadContent,
73
+ deployment_stage: deploymentStage,
74
+ maximum_idle_interval: conf.maximumIdleInterval,
75
+ };
76
+ return new compat_1.ConfigurationRequest(challenge, options);
77
+ },
78
+ _createTransportLayerRequestHeaderConfigurationRequest = function _createTransportLayerRequestHeaderConfigurationRequest() {
79
+ return {
80
+ Message: 'TransportLayerClientConfigurationRequest',
81
+ Version: 1,
82
+ flags: 0,
83
+ };
84
+ },
85
+ _submit = async function _submit(message) {
86
+ this.log(logger_1.LogLevel.INFO, 'Sending message', message);
87
+ const msg = {
88
+ message,
89
+ callbackType: 'response',
90
+ callbackId: message.Message.replace('Request', 'Response'),
91
+ };
92
+ await this.hooks.callHook('frontgateConnection:sendMessage', msg);
93
+ let timeout;
94
+ return new Promise((resolve, reject) => {
95
+ const unsubMessage = this.hooks.hookOnce(`frontgateConnection:response:${msg.callbackId}`, (response) => {
96
+ clearTimeout(timeout);
97
+ this.log(logger_1.LogLevel.INFO, 'Received response', response);
98
+ resolve(response);
99
+ });
100
+ timeout = setTimeout(() => {
101
+ unsubMessage();
102
+ reject(new Error('Authentication message timeout'));
103
+ }, 3000);
104
+ });
105
+ },
38
106
  _a;
39
107
  };
40
108
  return (0, _1.createExtendedMixinFactory)(mixinAppAuth, {
@@ -16,21 +16,29 @@ const FrontgateWSMixin_1 = require("../connection/FrontgateWSMixin");
16
16
  const _1 = require("../.");
17
17
  const authentication_1 = require("../../authentication");
18
18
  const compat_1 = require("../../compat");
19
+ const connection_1 = require("../../connection");
19
20
  const logger_1 = require("../../logger");
20
21
  const message_1 = require("../../message");
21
- const TimeOutWrapper_1 = require("../../util/TimeOutWrapper");
22
+ const crypto_1 = require("crypto");
23
+ const functions_1 = require("../../util/functions");
22
24
  const sessionAuth = (config, idApplication, username, password, deploymentStage) => {
23
25
  const mixinSessionAuth = (Base) => {
24
- var _instances, _auth, _tokenConnectionAttempt, _logOut, _mdg2wstoken, _requestOtpAuthenticationTokenForSessionHandling, _toUrlBase64, _a;
26
+ var _instances, _tokenConnectionAttempt, _logOut, _mdg2wstoken, _sharedSecret, _clientSecret, _requestOtpAuthenticationTokenForSessionHandling, _toUrlBase64, _createAuthenticationRequest, _createConfigurationRequest, _createTransportLayerRequestHeaderConfigurationRequest, _submit, _a;
25
27
  return _a = class extends (0, FrontgateWSMixin_1.wsConnection)(config)(Base) {
26
28
  constructor(...args) {
27
29
  super(...args);
28
30
  _instances.add(this);
29
- _auth.set(this, void 0);
30
31
  _tokenConnectionAttempt.set(this, true);
31
32
  _logOut.set(this, false);
32
33
  _mdg2wstoken.set(this, void 0);
33
- __classPrivateFieldSet(this, _auth, new compat_1.UserPasswordAuthentication(idApplication, username, password), "f");
34
+ _sharedSecret.set(this, void 0);
35
+ _clientSecret.set(this, void 0);
36
+ const plainSharedSecret = compat_1.SecretGenerator.generateSharedSecret(username, password);
37
+ const plainClientSecret = compat_1.SecretGenerator.generateClientSecret(username, password);
38
+ if (plainSharedSecret && plainClientSecret) {
39
+ __classPrivateFieldSet(this, _sharedSecret, Buffer.from(plainSharedSecret), "f");
40
+ __classPrivateFieldSet(this, _clientSecret, Buffer.from(plainClientSecret), "f");
41
+ }
34
42
  this.hooks.hook('frontgateConnection:beforeConnect', (settings) => {
35
43
  void this.hooks.callHook('frontgateConnection:setIdApp', authentication_1.ID_APP_AUTHENTICATED);
36
44
  void this.hooks.callHook('frontgateConnection:setIdUser', authentication_1.ID_USER_AUTHENTICATED);
@@ -72,35 +80,9 @@ const sessionAuth = (config, idApplication, username, password, deploymentStage)
72
80
  });
73
81
  return;
74
82
  }
75
- await __classPrivateFieldGet(this, _auth, "f").authenticate({
76
- options: {
77
- payload_content: conf.payloadContent,
78
- deployment_stage: deploymentStage,
79
- maximum_idle_interval: conf.maximumIdleInterval,
80
- },
81
- submit: async (message) => {
82
- this.log(logger_1.LogLevel.INFO, 'Sending message', message);
83
- const msg = {
84
- message,
85
- callbackType: 'response',
86
- callbackId: message.Message.replace('Request', 'Response'),
87
- };
88
- await this.hooks.callHook('frontgateConnection:sendMessage', msg);
89
- return new Promise((resolve) => {
90
- this.hooks.hookOnce(`frontgateConnection:response:${msg.callbackId}`, (response) => {
91
- this.log(logger_1.LogLevel.INFO, 'Received response', response);
92
- resolve(response);
93
- });
94
- });
95
- },
96
- setPeerInfo: (peerInfo) => {
97
- this.log(logger_1.LogLevel.INFO, 'Peer info:', peerInfo);
98
- },
99
- auth: {
100
- idApplication: undefined,
101
- idUser: undefined,
102
- },
103
- });
83
+ const authResponse = await __classPrivateFieldGet(this, _instances, "m", _submit).call(this, __classPrivateFieldGet(this, _instances, "m", _createAuthenticationRequest).call(this).toJson());
84
+ await __classPrivateFieldGet(this, _instances, "m", _submit).call(this, __classPrivateFieldGet(this, _instances, "m", _createConfigurationRequest).call(this, authResponse, conf).toJson());
85
+ await __classPrivateFieldGet(this, _instances, "m", _submit).call(this, __classPrivateFieldGet(this, _instances, "m", _createTransportLayerRequestHeaderConfigurationRequest).call(this));
104
86
  await this.hooks.callHook('frontgateConnection:authenticated');
105
87
  });
106
88
  }
@@ -141,10 +123,11 @@ const sessionAuth = (config, idApplication, username, password, deploymentStage)
141
123
  }
142
124
  }
143
125
  },
144
- _auth = new WeakMap(),
145
126
  _tokenConnectionAttempt = new WeakMap(),
146
127
  _logOut = new WeakMap(),
147
128
  _mdg2wstoken = new WeakMap(),
129
+ _sharedSecret = new WeakMap(),
130
+ _clientSecret = new WeakMap(),
148
131
  _instances = new WeakSet(),
149
132
  _requestOtpAuthenticationTokenForSessionHandling = async function _requestOtpAuthenticationTokenForSessionHandling(lifetimeSeconds = message_1.AuthenticationTokenRequest.LIFETIME_SECONDS_MAXIMUM, idUser = authentication_1.ID_USER_AUTHENTICATED, idApplication = authentication_1.ID_APP_AUTHENTICATED, timeOutInMs = this.defaultTimeoutInMs) {
150
133
  const request = new message_1.AuthenticationTokenRequest(lifetimeSeconds, idUser, idApplication, timeOutInMs, true);
@@ -168,11 +151,68 @@ const sessionAuth = (config, idApplication, username, password, deploymentStage)
168
151
  });
169
152
  });
170
153
  const rejectReason = `Request timeout reached (${timeOutInMs} ms) for ${msg.message.Message}`;
171
- return TimeOutWrapper_1.TimeoutWrapper.wrap(promise, timeOutInMs, rejectReason);
154
+ return (0, functions_1.useTimeout)(timeOutInMs, rejectReason, promise);
172
155
  },
173
156
  _toUrlBase64 = function _toUrlBase64(strInBase64) {
174
157
  return strInBase64.replace(/[=]/g, '').replace(/\//g, '_').replace(/\+/g, '-');
175
158
  },
159
+ _createAuthenticationRequest = function _createAuthenticationRequest() {
160
+ const salt = (0, crypto_1.randomBytes)(16);
161
+ const options = {
162
+ idApplication,
163
+ username,
164
+ salt: (0, connection_1.getBytesFromBuffer)(salt),
165
+ challenge: (0, connection_1.getBytesFromBuffer)((0, crypto_1.randomBytes)(16)),
166
+ encryptedSecrets: [{ encrypted_secret: compat_1.SecretGenerator.createEncryptedSecret(salt, __classPrivateFieldGet(this, _sharedSecret, "f"), __classPrivateFieldGet(this, _clientSecret, "f")) }],
167
+ };
168
+ return new compat_1.AuthenticationRequest(options);
169
+ },
170
+ _createConfigurationRequest = function _createConfigurationRequest(msg, conf) {
171
+ const expectedMessage = 'Foundation::AuthenticationResponse';
172
+ if (msg.Message !== expectedMessage) {
173
+ throw new Error(`Expected message "${expectedMessage}" but received "${msg.Message}"`);
174
+ }
175
+ if (msg.id_user === authentication_1.ID_USER_AUTHENTICATED) {
176
+ void this.hooks.callHook('frontgateConnection:setIdApp', authentication_1.ID_APP_AUTHENTICATED);
177
+ void this.hooks.callHook('frontgateConnection:setIdUser', authentication_1.ID_USER_AUTHENTICATED);
178
+ }
179
+ const { challenge } = msg.challenge;
180
+ const options = {
181
+ shared_secret: __classPrivateFieldGet(this, _sharedSecret, "f"),
182
+ payload_content: conf.payloadContent,
183
+ deployment_stage: deploymentStage,
184
+ maximum_idle_interval: conf.maximumIdleInterval,
185
+ };
186
+ return new compat_1.ConfigurationRequest(challenge, options);
187
+ },
188
+ _createTransportLayerRequestHeaderConfigurationRequest = function _createTransportLayerRequestHeaderConfigurationRequest() {
189
+ return {
190
+ Message: 'TransportLayerClientConfigurationRequest',
191
+ Version: 1,
192
+ flags: 0,
193
+ };
194
+ },
195
+ _submit = async function _submit(message) {
196
+ this.log(logger_1.LogLevel.INFO, 'Sending message', message);
197
+ const msg = {
198
+ message,
199
+ callbackType: 'response',
200
+ callbackId: message.Message.replace('Request', 'Response'),
201
+ };
202
+ await this.hooks.callHook('frontgateConnection:sendMessage', msg);
203
+ let timeout;
204
+ return new Promise((resolve, reject) => {
205
+ const unsubMessage = this.hooks.hookOnce(`frontgateConnection:response:${msg.callbackId}`, (response) => {
206
+ clearTimeout(timeout);
207
+ this.log(logger_1.LogLevel.INFO, 'Received response', response);
208
+ resolve(response);
209
+ });
210
+ timeout = setTimeout(() => {
211
+ unsubMessage();
212
+ reject(new Error('Authentication message timeout'));
213
+ }, 3000);
214
+ });
215
+ },
176
216
  _a;
177
217
  };
178
218
  return (0, _1.createExtendedMixinFactory)(mixinSessionAuth, {
@@ -13,29 +13,99 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.userCredentialAuth = void 0;
15
15
  const _1 = require("../.");
16
+ const connection_1 = require("../../connection");
16
17
  const compat_1 = require("../../compat");
17
18
  const authentication_1 = require("../../authentication");
19
+ const crypto_1 = require("crypto");
20
+ const logger_1 = require("../../logger");
18
21
  const userCredentialAuth = (idApplication, username, credentials, deploymentStage) => {
19
22
  const mixinUserCredentialAuth = (Base) => {
20
- var _auth, _a;
23
+ var _instances, _sharedSecret, _clientSecret, _createAuthenticationRequest, _createConfigurationRequest, _createTransportLayerRequestHeaderConfigurationRequest, _submit, _a;
21
24
  return _a = class extends Base {
22
25
  constructor(...args) {
23
26
  super(...args);
24
- _auth.set(this, void 0);
25
- __classPrivateFieldSet(this, _auth, new compat_1.UserCredentialAuthentication(idApplication, username, credentials), "f");
27
+ _instances.add(this);
28
+ _sharedSecret.set(this, void 0);
29
+ _clientSecret.set(this, void 0);
30
+ const secrets = credentials.split('-');
31
+ if (secrets.length !== 3) {
32
+ throw new Error('Invalid clientCredentials. Client credentials must have the form "{server_secret}-{shared_secret}-{client_secret}".');
33
+ }
34
+ if (secrets[0] === '*') {
35
+ throw new Error('Invalid clientCredentials. Client credentials first part must be a hashed server secret.');
36
+ }
37
+ __classPrivateFieldSet(this, _sharedSecret, Buffer.from(secrets[1], 'base64'), "f");
38
+ __classPrivateFieldSet(this, _clientSecret, Buffer.from(secrets[2], 'base64'), "f");
26
39
  this.hooks.hook('frontgateConnection:connected', async (conf) => {
27
- void this.hooks.callHook('frontgateConnection:setIdApp', authentication_1.ID_APP_AUTHENTICATED);
40
+ void this.hooks.callHook('frontgateConnection:setIdApp', idApplication);
28
41
  void this.hooks.callHook('frontgateConnection:setIdUser', authentication_1.ID_USER_AUTHENTICATED);
29
- await __classPrivateFieldGet(this, _auth, "f").authenticate((0, _1.createConnectionInterface)({
30
- payload_content: conf.payloadContent,
31
- deployment_stage: deploymentStage,
32
- maximum_idle_interval: conf.maximumIdleInterval,
33
- }, this));
42
+ const authResponse = await __classPrivateFieldGet(this, _instances, "m", _submit).call(this, __classPrivateFieldGet(this, _instances, "m", _createAuthenticationRequest).call(this).toJson());
43
+ await __classPrivateFieldGet(this, _instances, "m", _submit).call(this, __classPrivateFieldGet(this, _instances, "m", _createConfigurationRequest).call(this, authResponse, conf).toJson());
44
+ await __classPrivateFieldGet(this, _instances, "m", _submit).call(this, __classPrivateFieldGet(this, _instances, "m", _createTransportLayerRequestHeaderConfigurationRequest).call(this));
34
45
  await this.hooks.callHook('frontgateConnection:authenticated');
35
46
  });
36
47
  }
37
48
  },
38
- _auth = new WeakMap(),
49
+ _sharedSecret = new WeakMap(),
50
+ _clientSecret = new WeakMap(),
51
+ _instances = new WeakSet(),
52
+ _createAuthenticationRequest = function _createAuthenticationRequest() {
53
+ const salt = (0, crypto_1.randomBytes)(16);
54
+ const options = {
55
+ idApplication,
56
+ username,
57
+ salt: (0, connection_1.getBytesFromBuffer)(salt),
58
+ challenge: (0, connection_1.getBytesFromBuffer)((0, crypto_1.randomBytes)(16)),
59
+ encryptedSecrets: [{ encrypted_secret: compat_1.SecretGenerator.createEncryptedSecret(salt, __classPrivateFieldGet(this, _sharedSecret, "f"), __classPrivateFieldGet(this, _clientSecret, "f")) }],
60
+ };
61
+ return new compat_1.AuthenticationRequest(options);
62
+ },
63
+ _createConfigurationRequest = function _createConfigurationRequest(msg, conf) {
64
+ const expectedMessage = 'Foundation::AuthenticationResponse';
65
+ if (msg.Message !== expectedMessage) {
66
+ throw new Error(`Expected message "${expectedMessage}" but received "${msg.Message}"`);
67
+ }
68
+ if (msg.id_user === authentication_1.ID_USER_AUTHENTICATED) {
69
+ void this.hooks.callHook('frontgateConnection:setIdApp', authentication_1.ID_APP_AUTHENTICATED);
70
+ void this.hooks.callHook('frontgateConnection:setIdUser', authentication_1.ID_USER_AUTHENTICATED);
71
+ }
72
+ const { challenge } = msg.challenge;
73
+ const options = {
74
+ shared_secret: __classPrivateFieldGet(this, _sharedSecret, "f"),
75
+ payload_content: conf.payloadContent,
76
+ deployment_stage: deploymentStage,
77
+ maximum_idle_interval: conf.maximumIdleInterval,
78
+ };
79
+ return new compat_1.ConfigurationRequest(challenge, options);
80
+ },
81
+ _createTransportLayerRequestHeaderConfigurationRequest = function _createTransportLayerRequestHeaderConfigurationRequest() {
82
+ return {
83
+ Message: 'TransportLayerClientConfigurationRequest',
84
+ Version: 1,
85
+ flags: 0,
86
+ };
87
+ },
88
+ _submit = async function _submit(message) {
89
+ this.log(logger_1.LogLevel.INFO, 'Sending message', message);
90
+ const msg = {
91
+ message,
92
+ callbackType: 'response',
93
+ callbackId: message.Message.replace('Request', 'Response'),
94
+ };
95
+ await this.hooks.callHook('frontgateConnection:sendMessage', msg);
96
+ let timeout;
97
+ return new Promise((resolve, reject) => {
98
+ const unsubMessage = this.hooks.hookOnce(`frontgateConnection:response:${msg.callbackId}`, (response) => {
99
+ clearTimeout(timeout);
100
+ this.log(logger_1.LogLevel.INFO, 'Received response', response);
101
+ resolve(response);
102
+ });
103
+ timeout = setTimeout(() => {
104
+ unsubMessage();
105
+ reject(new Error('Authentication message timeout'));
106
+ }, 3000);
107
+ });
108
+ },
39
109
  _a;
40
110
  };
41
111
  return (0, _1.createExtendedMixinFactory)(mixinUserCredentialAuth, {