@factset/frontgate-js-sdk 7.1.4 → 7.1.6

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 (97) hide show
  1. package/CHANGELOG.md +50 -24
  2. package/dist/lib/esnext/common/errors.js +4 -5
  3. package/dist/lib/esnext/index.js +1 -0
  4. package/dist/lib/esnext/message/interfaces/PtlMessage.js +4 -0
  5. package/dist/lib/esnext/message/interfaces/index.js +1 -0
  6. package/dist/lib/esnext/message/request/AuthenticationByTokenRequest.js +2 -2
  7. package/dist/lib/esnext/message/request/AuthenticationRequest.js +2 -0
  8. package/dist/lib/esnext/message/request/ConfigurationRequest.js +3 -3
  9. package/dist/lib/esnext/message/response/AuthenticationTokenResponse.js +3 -11
  10. package/dist/lib/esnext/message/response/HTTPProxyResponse.js +3 -0
  11. package/dist/lib/esnext/message/response/Mdg2Response.js +4 -1
  12. package/dist/lib/esnext/message/response/PingResponse.js +0 -6
  13. package/dist/lib/esnext/message/response/index.js +0 -3
  14. package/dist/lib/esnext/mixins/AuthTokenRequestMixin.js +1 -1
  15. package/dist/lib/esnext/mixins/EndpointRequestMixin.js +7 -7
  16. package/dist/lib/esnext/mixins/HTTPProxyRequestMixin.js +1 -1
  17. package/dist/lib/esnext/mixins/OpenTelemetryMixin.js +2 -1
  18. package/dist/lib/esnext/mixins/PingMixin.js +5 -1
  19. package/dist/lib/esnext/mixins/RequestMixin.js +6 -1
  20. package/dist/lib/esnext/mixins/auth/AppAuthMixin.js +3 -3
  21. package/dist/lib/esnext/mixins/auth/SessionAuthMixin.js +4 -4
  22. package/dist/lib/esnext/mixins/auth/UserCredentialAuthMixin.js +3 -3
  23. package/dist/lib/esnext/mixins/auth/UserPasswordAuthMixin.js +3 -3
  24. package/dist/lib/esnext/mixins/connection/FrontgateWSMixin.js +11 -9
  25. package/dist/lib/esnext/mixins/subscription/DataObserver.js +1 -2
  26. package/dist/lib/esnext/mixins/subscription/EndpointSubscriptionMixin.js +13 -12
  27. package/dist/lib/esnext/mixins/subscription/RawSubscriptionMixin.js +28 -15
  28. package/dist/lib/esnext/version.js +1 -1
  29. package/dist/lib/node/common/errors.js +6 -7
  30. package/dist/lib/node/index.js +1 -0
  31. package/dist/lib/node/message/interfaces/PtlMessage.js +11 -0
  32. package/dist/lib/node/message/interfaces/index.js +1 -0
  33. package/dist/lib/node/message/request/AuthenticationByTokenRequest.js +2 -2
  34. package/dist/lib/node/message/request/AuthenticationRequest.js +2 -0
  35. package/dist/lib/node/message/request/ConfigurationRequest.js +3 -3
  36. package/dist/lib/node/message/response/AuthenticationTokenResponse.js +3 -11
  37. package/dist/lib/node/message/response/HTTPProxyResponse.js +3 -0
  38. package/dist/lib/node/message/response/Mdg2Response.js +4 -1
  39. package/dist/lib/node/message/response/PingResponse.js +0 -6
  40. package/dist/lib/node/message/response/index.js +0 -3
  41. package/dist/lib/node/mixins/AuthTokenRequestMixin.js +1 -1
  42. package/dist/lib/node/mixins/EndpointRequestMixin.js +7 -7
  43. package/dist/lib/node/mixins/HTTPProxyRequestMixin.js +1 -1
  44. package/dist/lib/node/mixins/OpenTelemetryMixin.js +2 -1
  45. package/dist/lib/node/mixins/PingMixin.js +5 -1
  46. package/dist/lib/node/mixins/RequestMixin.js +6 -1
  47. package/dist/lib/node/mixins/auth/AppAuthMixin.js +3 -3
  48. package/dist/lib/node/mixins/auth/SessionAuthMixin.js +4 -4
  49. package/dist/lib/node/mixins/auth/UserCredentialAuthMixin.js +3 -3
  50. package/dist/lib/node/mixins/auth/UserPasswordAuthMixin.js +3 -3
  51. package/dist/lib/node/mixins/connection/FrontgateWSMixin.js +11 -9
  52. package/dist/lib/node/mixins/subscription/DataObserver.js +1 -2
  53. package/dist/lib/node/mixins/subscription/EndpointSubscriptionMixin.js +12 -11
  54. package/dist/lib/node/mixins/subscription/RawSubscriptionMixin.js +27 -14
  55. package/dist/lib/node/version.js +1 -1
  56. package/dist/lib/types/common/errors.d.ts +4 -8
  57. package/dist/lib/types/common/interfaces/index.d.ts +0 -1
  58. package/dist/lib/types/index.d.ts +1 -0
  59. package/dist/lib/types/message/interfaces/PtlMessage.d.ts +486 -0
  60. package/dist/lib/types/message/interfaces/index.d.ts +1 -0
  61. package/dist/lib/types/message/request/AbstractMdg2Request.d.ts +3 -3
  62. package/dist/lib/types/message/request/AuthenticationByTokenRequest.d.ts +5 -2
  63. package/dist/lib/types/message/request/AuthenticationRequest.d.ts +10 -9
  64. package/dist/lib/types/message/request/AuthenticationTokenRequest.d.ts +2 -1
  65. package/dist/lib/types/message/request/CancelSubscriptionRequest.d.ts +2 -1
  66. package/dist/lib/types/message/request/ConfigurationRequest.d.ts +7 -2
  67. package/dist/lib/types/message/request/HTTPProxyRequest.d.ts +2 -2
  68. package/dist/lib/types/message/request/HighLevelRequest.d.ts +2 -2
  69. package/dist/lib/types/message/request/PingRequest.d.ts +2 -8
  70. package/dist/lib/types/message/request/TransportLayerClientRequestHeader.d.ts +3 -26
  71. package/dist/lib/types/message/response/AuthenticationTokenResponse.d.ts +3 -3
  72. package/dist/lib/types/message/response/HTTPProxyResponse.d.ts +6 -3
  73. package/dist/lib/types/message/response/HighLevelResponse.d.ts +3 -1
  74. package/dist/lib/types/message/response/Mdg2Response.d.ts +6 -4
  75. package/dist/lib/types/message/response/PingResponse.d.ts +2 -1
  76. package/dist/lib/types/message/response/index.d.ts +0 -3
  77. package/dist/lib/types/message/update/HighLevelUpdate.d.ts +3 -1
  78. package/dist/lib/types/mixins/connection/index.d.ts +9 -3
  79. package/dist/lib/types/mixins/subscription/DataObserver.d.ts +2 -3
  80. package/dist/lib/umd/mdg2.client.min.umd.js +1 -1
  81. package/dist/lib/umd/mdg2.client.umd.js +172 -150
  82. package/package.json +2 -2
  83. package/dist/lib/esnext/common/interfaces/PtlMessage.js +0 -1
  84. package/dist/lib/esnext/message/response/AuthenticationResponse.js +0 -1
  85. package/dist/lib/esnext/message/response/ConfigurationResponse.js +0 -1
  86. package/dist/lib/esnext/message/response/DisconnectionMessage.js +0 -1
  87. package/dist/lib/esnext/message/response/ErrorResponse.js +0 -9
  88. package/dist/lib/node/common/interfaces/PtlMessage.js +0 -2
  89. package/dist/lib/node/message/response/AuthenticationResponse.js +0 -2
  90. package/dist/lib/node/message/response/ConfigurationResponse.js +0 -2
  91. package/dist/lib/node/message/response/DisconnectionMessage.js +0 -2
  92. package/dist/lib/node/message/response/ErrorResponse.js +0 -13
  93. package/dist/lib/types/common/interfaces/PtlMessage.d.ts +0 -5
  94. package/dist/lib/types/message/response/AuthenticationResponse.d.ts +0 -37
  95. package/dist/lib/types/message/response/ConfigurationResponse.d.ts +0 -44
  96. package/dist/lib/types/message/response/DisconnectionMessage.d.ts +0 -7
  97. package/dist/lib/types/message/response/ErrorResponse.d.ts +0 -5
@@ -13,7 +13,6 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
13
13
  var _FrontgateClientDataObserver_data, _FrontgateClientDataObserver_nextFn, _FrontgateClientDataObserver_errorFn;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.FrontgateClientEndpointDataObserver = exports.FrontgateClientDataObserver = void 0;
16
- const response_1 = require("../../message/response");
17
16
  const getParentAndKey = (obj, path) => {
18
17
  const parts = path.split('/').slice(1);
19
18
  let parent = obj;
@@ -114,7 +113,7 @@ class FrontgateClientEndpointDataObserver extends FrontgateClientDataObserver {
114
113
  super.pushData(data);
115
114
  }
116
115
  catch (e) {
117
- super.pushError(new response_1.ErrorResponse(e.message));
116
+ super.pushError(new Error('Failed to apply patch', { cause: e }));
118
117
  }
119
118
  }
120
119
  }
@@ -7,6 +7,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.endpointSubscriptions = void 0;
9
9
  const __1 = require("../");
10
+ const errors_1 = require("../../common/errors");
10
11
  const logger_1 = require("../../logger");
11
12
  const message_1 = require("../../message");
12
13
  const functions_1 = require("../../util/functions");
@@ -55,9 +56,9 @@ const endpointSubscriptions = (originalConfig) => {
55
56
  .callHook('frontgateConnection:sendMessage', subscriptionMsg)
56
57
  .then(() => {
57
58
  this.hooks.hookOnce(`frontgateConnection:response:${subscriptionMsg.callbackId}`, (response) => {
58
- if (!response.Message.includes('HighLevelResponse')) {
59
+ if (response.Message !== 'Foundation::HighLevelResponse' && response.Message !== 'HighLevelResponse') {
59
60
  this.log(logger_1.LogLevel.ERROR, `Unexpected response: ${response.Message}`);
60
- reject(new message_1.ErrorResponse(JSON.stringify(response)));
61
+ reject(new errors_1.UnexpectedResponseError(response));
61
62
  return;
62
63
  }
63
64
  let hlResponseData;
@@ -82,7 +83,7 @@ const endpointSubscriptions = (originalConfig) => {
82
83
  return;
83
84
  }
84
85
  let removeMessageUpdateHook = this.hooks.hook(`frontgateConnection:response:${subscriptionMsg.callbackId}`, (update) => {
85
- if (!update.Message.includes('HighLevelUpdate')) {
86
+ if (update.Message !== 'Foundation::HighLevelUpdate' && update.Message !== 'HighLevelUpdate') {
86
87
  if (update.Message.includes('SubscriptionLoss')) {
87
88
  this.log(logger_1.LogLevel.DEBUG, `Received: ${update.Message}`);
88
89
  setTimeout(() => {
@@ -92,7 +93,7 @@ const endpointSubscriptions = (originalConfig) => {
92
93
  return;
93
94
  }
94
95
  this.log(logger_1.LogLevel.ERROR, `Unexpected response: ${response.Message}`);
95
- observer.pushError(new message_1.ErrorResponse(JSON.stringify(update)));
96
+ observer.pushError(new errors_1.UnexpectedResponseError(update));
96
97
  removeMessageUpdateHook();
97
98
  return;
98
99
  }
@@ -102,7 +103,7 @@ const endpointSubscriptions = (originalConfig) => {
102
103
  }
103
104
  catch (e) {
104
105
  this.log(logger_1.LogLevel.ERROR, `Failed to parse response: ${update.body.value}`);
105
- observer.pushError(e);
106
+ observer.pushError(new Error('Failed to parse response', { cause: e }));
106
107
  return;
107
108
  }
108
109
  observer.pushPatchData(hlUpdate.data);
@@ -114,8 +115,8 @@ const endpointSubscriptions = (originalConfig) => {
114
115
  let removeResubscribeHookOnce;
115
116
  const resubscribePromise = new Promise((res, rej) => {
116
117
  removeResubscribeHookOnce = this.hooks.hookOnce(`frontgateConnection:response:${subscriptionMsg.callbackId}`, (resp) => {
117
- if (!resp.Message.includes('HighLevelResponse')) {
118
- const err = new message_1.ErrorResponse(resp);
118
+ if (resp.Message !== 'Foundation::HighLevelResponse' && resp.Message !== 'HighLevelResponse') {
119
+ const err = new errors_1.UnexpectedResponseError(resp);
119
120
  this.log(logger_1.LogLevel.ERROR, `Unexpected response: ${resp.Message}`);
120
121
  removeMessageUpdateHook();
121
122
  rej(err);
@@ -139,7 +140,7 @@ const endpointSubscriptions = (originalConfig) => {
139
140
  return;
140
141
  }
141
142
  removeMessageUpdateHook = this.hooks.hook(`frontgateConnection:response:${resp.header.id_job}`, (update) => {
142
- if (!update.Message.includes('HighLevelUpdate')) {
143
+ if (update.Message !== 'Foundation::HighLevelUpdate' && update.Message !== 'HighLevelUpdate') {
143
144
  if (update.Message.includes('SubscriptionLoss')) {
144
145
  this.log(logger_1.LogLevel.DEBUG, `Received: ${update.Message}`);
145
146
  setTimeout(() => {
@@ -148,7 +149,7 @@ const endpointSubscriptions = (originalConfig) => {
148
149
  return;
149
150
  }
150
151
  this.log(logger_1.LogLevel.ERROR, `Unexpected response: ${update.Message}`);
151
- const err = new message_1.ErrorResponse(update);
152
+ const err = new errors_1.UnexpectedResponseError(update);
152
153
  observer.pushError(err);
153
154
  return;
154
155
  }
@@ -158,7 +159,7 @@ const endpointSubscriptions = (originalConfig) => {
158
159
  }
159
160
  catch (e) {
160
161
  this.log(logger_1.LogLevel.ERROR, `Failed to parse response: ${update.body.value}`);
161
- observer.pushError(e);
162
+ observer.pushError(new Error('Failed to parse response', { cause: e }));
162
163
  return;
163
164
  }
164
165
  observer.pushPatchData(hlUpdate.data);
@@ -172,7 +173,7 @@ const endpointSubscriptions = (originalConfig) => {
172
173
  catch (e) {
173
174
  removeResubscribeHookOnce?.();
174
175
  subscriptionZombie = true;
175
- observer.pushError(new message_1.ErrorResponse({ Message: 'Resubscribe failed', Error: e }));
176
+ observer.pushError(new Error('Resubscribe failed', { cause: e }));
176
177
  }
177
178
  };
178
179
  const removeReconnectHook = this.hooks.hook('reconnect:success', resubscribe);
@@ -7,9 +7,11 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.rawSubscriptions = void 0;
9
9
  const __1 = require("../");
10
+ const interfaces_1 = require("../../message/interfaces");
10
11
  const logger_1 = require("../../logger");
11
12
  const message_1 = require("../../message");
12
13
  const functions_1 = require("../../util/functions");
14
+ const errors_1 = require("../../common/errors");
13
15
  const rawSubscriptions = () => {
14
16
  const mixinRawSubscribable = (Base) => {
15
17
  var _instances, _subscriptions, _rawSubscriptionHelper, _a;
@@ -48,20 +50,27 @@ const rawSubscriptions = () => {
48
50
  await this.hooks.callHook('frontgateConnection:sendMessage', subscriptionMsg);
49
51
  const promise = new Promise((resolve, reject) => {
50
52
  this.hooks.hookOnce(`frontgateConnection:response:${subscriptionMsg.callbackId}`, (response) => {
51
- if (response.Message.includes('Error') || response.Message.includes('PermissionDenied')) {
53
+ if (response.Message.includes('Error') || response.Message.includes('PermissionDenied') || !(0, interfaces_1.hasJobIdInHeader)(response)) {
52
54
  this.log(logger_1.LogLevel.ERROR, `Unexpected response: ${response.Message}`);
53
- reject(new Error(`Unexpected response: ${response.Message}`));
55
+ reject(new errors_1.UnexpectedResponseError(response));
54
56
  return;
55
57
  }
56
- const subscriptionKey = subscriptionType === 'connection' ? `${response.header.id_service}-${request.getPtlMessage().id_notation}` : response.header.id_job;
58
+ let subscriptionKey = response.header.id_job.toString();
59
+ let idService = -1;
60
+ let idNotation = -1;
61
+ if (subscriptionType === 'connection' && (0, interfaces_1.isServiceAndNotationBased)(response)) {
62
+ idService = response.header.id_service;
63
+ idNotation = response.id_notation;
64
+ subscriptionKey = `${idService}-${idNotation}`;
65
+ }
57
66
  const cancelationRequest = typeof CancelationRequestConstructor === 'undefined'
58
67
  ? new message_1.CancelSubscriptionRequest(response.header.id_job)
59
- : new CancelationRequestConstructor(response.header.id_service, request.getPtlMessage().id_notation);
68
+ : new CancelationRequestConstructor(idService, idNotation);
60
69
  const observer = new __1.FrontgateClientDataObserver(response.header.id_job, response);
61
70
  let removeMessageUpdateHook = this.hooks.hook(`frontgateConnection:response:${subscriptionKey}`, (update) => {
62
- if (update.Message.includes('Error') || update.Message.includes('PermissionDenied')) {
71
+ if (update.Message === 'Foundation::ErrorResponse') {
63
72
  this.log(logger_1.LogLevel.ERROR, `Unexpected response: ${response.Message}`);
64
- observer.pushError(new message_1.ErrorResponse(JSON.stringify(update)));
73
+ observer.pushError(new errors_1.UnexpectedResponseError(update));
65
74
  return;
66
75
  }
67
76
  observer.pushData(update);
@@ -72,22 +81,26 @@ const rawSubscriptions = () => {
72
81
  await this.hooks.callHook('frontgateConnection:sendMessage', subscriptionMsg);
73
82
  const resubscribePromise = new Promise((res, rej) => {
74
83
  this.hooks.hookOnce(`frontgateConnection:response:${subscriptionMsg.callbackId}`, (resubscribeResponse) => {
75
- if (resubscribeResponse.Message.includes('Error') || resubscribeResponse.Message.includes('PermissionDenied')) {
76
- const err = new message_1.ErrorResponse(resubscribeResponse);
84
+ if (resubscribeResponse.Message === 'Foundation::ErrorResponse' || !(0, interfaces_1.hasJobIdInHeader)(resubscribeResponse)) {
85
+ const err = new errors_1.UnexpectedResponseError(resubscribeResponse);
77
86
  this.log(logger_1.LogLevel.ERROR, `Unexpected resp: ${resubscribeResponse.Message}`);
78
87
  rej(err);
79
88
  return;
80
89
  }
81
- const resubscriptionKey = subscriptionType === 'connection' ? `${resubscribeResponse.header.id_service}-${request.getPtlMessage().id_notation}` : resubscribeResponse.header.id_job;
90
+ let resubscriptionKey = response.header.id_job.toString();
91
+ if (subscriptionType === 'connection' && (0, interfaces_1.isServiceAndNotationBased)(resubscribeResponse)) {
92
+ idService = resubscribeResponse.header.id_service;
93
+ idNotation = resubscribeResponse.id_notation;
94
+ resubscriptionKey = `${idService}-${idNotation}`;
95
+ }
82
96
  const resubscriptionCancelationRequest = typeof CancelationRequestConstructor === 'undefined'
83
97
  ? new message_1.CancelSubscriptionRequest(resubscribeResponse.header.id_job)
84
- : new CancelationRequestConstructor(resubscribeResponse.header.id_service, request.getPtlMessage().id_notation);
98
+ : new CancelationRequestConstructor(idService, idNotation);
85
99
  observer.idJob = resubscribeResponse.header.id_job;
86
100
  removeMessageUpdateHook = this.hooks.hook(`frontgateConnection:response:${resubscriptionKey}`, (update) => {
87
- if (update.Message.includes('Error') || update.Message.includes('PermissionDenied')) {
101
+ if (update.Message === 'Foundation::ErrorResponse') {
88
102
  this.log(logger_1.LogLevel.ERROR, `Unexpected response: ${update.Message}`);
89
- const err = new message_1.ErrorResponse(update);
90
- observer.pushError(err);
103
+ observer.pushError(new errors_1.UnexpectedResponseError(update));
91
104
  return;
92
105
  }
93
106
  observer.unsubscribe = () => {
@@ -119,7 +132,7 @@ const rawSubscriptions = () => {
119
132
  await (0, functions_1.useTimeout)(timeOutInMs, 'Request timeout reached', resubscribePromise);
120
133
  }
121
134
  catch (e) {
122
- observer.pushError(new message_1.ErrorResponse({ Message: 'Reconnect failed', Error: e }));
135
+ observer.pushError(new Error('Reconnect Failed', { cause: e }));
123
136
  }
124
137
  });
125
138
  observer.unsubscribe = () => {
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PACKAGE_JSON = void 0;
4
- exports.PACKAGE_JSON = { version: '7.1.4', package: '@factset/frontgate-js-sdk' };
4
+ exports.PACKAGE_JSON = { version: '7.1.6', package: '@factset/frontgate-js-sdk' };
@@ -1,9 +1,5 @@
1
- export interface CustomError {
2
- message: string;
3
- name: string;
4
- code: number;
5
- }
6
- export declare class TimeoutError extends Error implements CustomError {
7
- code: number;
8
- constructor(message?: string, error?: Error);
1
+ import type { PtlMessage } from '../message/interfaces';
2
+ export declare class UnexpectedResponseError extends Error {
3
+ response: PtlMessage;
4
+ constructor(response: PtlMessage);
9
5
  }
@@ -1,4 +1,3 @@
1
1
  export * from './result/RequestResult';
2
2
  export * from './result/HighLevelRequestResult';
3
3
  export * from './result/HTTPProxyRequestResult';
4
- export type { PtlMessage } from './PtlMessage';
@@ -1,6 +1,7 @@
1
1
  export * from './authentication';
2
2
  export * from './connection';
3
3
  export * from './message';
4
+ export * from './message/interfaces';
4
5
  export * from './common/interfaces';
5
6
  export * from './common/types';
6
7
  export * from './logger';