@openfeed/sdk-js 1.3.3 → 1.4.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/.releases/CHANGELOG-1.4.0.md +10 -0
- package/CHANGELOG.md +7 -2
- package/README.md +11 -0
- package/dist/generated/openfeed_instrument.d.ts +17 -0
- package/dist/generated/version.d.ts +1 -1
- package/dist/index.js +78 -5
- package/dist/node.js +78 -5
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
|
+
|
|
5
|
+
### [1.3.3](https://github.com/openfeed-org/sdk-js/compare/1.3.2...1.3.3) (2025-03-28)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* take a better approach when identifying subscription responses - use correlation ([d841c79](https://github.com/openfeed-org/sdk-js/commit/d841c7996c068b10675e20832c413c4da466996a))
|
package/CHANGELOG.md
CHANGED
|
@@ -2,9 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## [1.4.0](https://github.com/openfeed-org/sdk-js/compare/1.3.3...1.4.0) (2025-06-18)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* regenarate files from proto ([14f3cad](https://github.com/openfeed-org/sdk-js/commit/14f3cad8a50cc31281ab21f9b701a1d997c4b65a))
|
|
6
11
|
|
|
7
12
|
|
|
8
13
|
### Bug Fixes
|
|
9
14
|
|
|
10
|
-
*
|
|
15
|
+
* extend error logging ([2c31557](https://github.com/openfeed-org/sdk-js/commit/2c315576f871abcaef985ae4a81c7f98b969e692))
|
package/README.md
CHANGED
|
@@ -24,6 +24,17 @@ The User Guide for this project can be found in the [documentation](DOCUMENTATIO
|
|
|
24
24
|
|
|
25
25
|
This library uses [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for clarity, tracking changes and versioning. It's recommended to install [Conventional Commits Extension for VS Code](https://marketplace.visualstudio.com/items?itemName=vivaxy.vscode-conventional-commits) when contributing to the library.
|
|
26
26
|
|
|
27
|
+
### Updating proto
|
|
28
|
+
|
|
29
|
+
To update the proto files, run:
|
|
30
|
+
|
|
31
|
+
```shell
|
|
32
|
+
yarn add git+ssh://git@github.com/openfeed-org/proto.git#master -D
|
|
33
|
+
yarn generate
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Then commit the changes.
|
|
37
|
+
|
|
27
38
|
### Preparing a new version
|
|
28
39
|
|
|
29
40
|
For updating the version and automatically collecting changes, run:
|
|
@@ -148,6 +148,11 @@ export interface InstrumentDefinition {
|
|
|
148
148
|
priceScalingExponent: number;
|
|
149
149
|
/** / The Openfeed marketId of the underlying asset. */
|
|
150
150
|
underlyingOpenfeedMarketId: Long;
|
|
151
|
+
/** / Barchart Exchange Name */
|
|
152
|
+
barchartExchange: string;
|
|
153
|
+
contractSize: Long;
|
|
154
|
+
contractSizeDescription: string;
|
|
155
|
+
exchangeMetadata: InstrumentDefinition_ExchangeMetadata | undefined;
|
|
151
156
|
}
|
|
152
157
|
/** ############################################# */
|
|
153
158
|
export declare enum InstrumentDefinition_InstrumentType {
|
|
@@ -292,6 +297,13 @@ export interface InstrumentDefinition_CurrencyPair {
|
|
|
292
297
|
currency1: string;
|
|
293
298
|
currency2: string;
|
|
294
299
|
}
|
|
300
|
+
/** / Exchange Metadata */
|
|
301
|
+
export interface InstrumentDefinition_ExchangeMetadata {
|
|
302
|
+
securityId: Long;
|
|
303
|
+
channelId: string;
|
|
304
|
+
sbeId: number;
|
|
305
|
+
underlyingSecurityId: Long;
|
|
306
|
+
}
|
|
295
307
|
export declare const InstrumentDefinitionEncode: {
|
|
296
308
|
encode(message: InstrumentDefinition, writer?: _m0.Writer): _m0.Writer;
|
|
297
309
|
}, InstrumentDefinitionDecode: {
|
|
@@ -342,3 +354,8 @@ export declare const InstrumentDefinition_CurrencyPairEncode: {
|
|
|
342
354
|
}, InstrumentDefinition_CurrencyPairDecode: {
|
|
343
355
|
decode(input: _m0.Reader | Uint8Array, length?: number): InstrumentDefinition_CurrencyPair;
|
|
344
356
|
};
|
|
357
|
+
export declare const InstrumentDefinition_ExchangeMetadataEncode: {
|
|
358
|
+
encode(message: InstrumentDefinition_ExchangeMetadata, writer?: _m0.Writer): _m0.Writer;
|
|
359
|
+
}, InstrumentDefinition_ExchangeMetadataDecode: {
|
|
360
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): InstrumentDefinition_ExchangeMetadata;
|
|
361
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "1.
|
|
1
|
+
export declare const version = "1.4.0";
|
package/dist/index.js
CHANGED
|
@@ -2363,7 +2363,11 @@ function createBaseInstrumentDefinition() {
|
|
|
2363
2363
|
commodity: "",
|
|
2364
2364
|
exchangeId: 0,
|
|
2365
2365
|
priceScalingExponent: 0,
|
|
2366
|
-
underlyingOpenfeedMarketId: Long.ZERO
|
|
2366
|
+
underlyingOpenfeedMarketId: Long.ZERO,
|
|
2367
|
+
barchartExchange: "",
|
|
2368
|
+
contractSize: Long.ZERO,
|
|
2369
|
+
contractSizeDescription: "",
|
|
2370
|
+
exchangeMetadata: void 0
|
|
2367
2371
|
};
|
|
2368
2372
|
}
|
|
2369
2373
|
const InstrumentDefinitionDecode = {
|
|
@@ -2741,6 +2745,30 @@ const InstrumentDefinitionDecode = {
|
|
|
2741
2745
|
}
|
|
2742
2746
|
message.underlyingOpenfeedMarketId = reader2.sint64();
|
|
2743
2747
|
continue;
|
|
2748
|
+
case 236:
|
|
2749
|
+
if (tag !== 1890) {
|
|
2750
|
+
break;
|
|
2751
|
+
}
|
|
2752
|
+
message.barchartExchange = reader2.string();
|
|
2753
|
+
continue;
|
|
2754
|
+
case 237:
|
|
2755
|
+
if (tag !== 1896) {
|
|
2756
|
+
break;
|
|
2757
|
+
}
|
|
2758
|
+
message.contractSize = reader2.sint64();
|
|
2759
|
+
continue;
|
|
2760
|
+
case 238:
|
|
2761
|
+
if (tag !== 1906) {
|
|
2762
|
+
break;
|
|
2763
|
+
}
|
|
2764
|
+
message.contractSizeDescription = reader2.string();
|
|
2765
|
+
continue;
|
|
2766
|
+
case 239:
|
|
2767
|
+
if (tag !== 1914) {
|
|
2768
|
+
break;
|
|
2769
|
+
}
|
|
2770
|
+
message.exchangeMetadata = InstrumentDefinition_ExchangeMetadataDecode.decode(reader2, reader2.uint32());
|
|
2771
|
+
continue;
|
|
2744
2772
|
}
|
|
2745
2773
|
if ((tag & 7) === 4 || tag === 0) {
|
|
2746
2774
|
break;
|
|
@@ -3074,6 +3102,50 @@ const InstrumentDefinition_CurrencyPairDecode = {
|
|
|
3074
3102
|
return message;
|
|
3075
3103
|
}
|
|
3076
3104
|
};
|
|
3105
|
+
function createBaseInstrumentDefinition_ExchangeMetadata() {
|
|
3106
|
+
return { securityId: Long.ZERO, channelId: "", sbeId: 0, underlyingSecurityId: Long.ZERO };
|
|
3107
|
+
}
|
|
3108
|
+
const InstrumentDefinition_ExchangeMetadataDecode = {
|
|
3109
|
+
decode(input, length) {
|
|
3110
|
+
const reader2 = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
|
|
3111
|
+
let end2 = length === void 0 ? reader2.len : reader2.pos + length;
|
|
3112
|
+
const message = createBaseInstrumentDefinition_ExchangeMetadata();
|
|
3113
|
+
while (reader2.pos < end2) {
|
|
3114
|
+
const tag = reader2.uint32();
|
|
3115
|
+
switch (tag >>> 3) {
|
|
3116
|
+
case 1:
|
|
3117
|
+
if (tag !== 8) {
|
|
3118
|
+
break;
|
|
3119
|
+
}
|
|
3120
|
+
message.securityId = reader2.sint64();
|
|
3121
|
+
continue;
|
|
3122
|
+
case 2:
|
|
3123
|
+
if (tag !== 18) {
|
|
3124
|
+
break;
|
|
3125
|
+
}
|
|
3126
|
+
message.channelId = reader2.string();
|
|
3127
|
+
continue;
|
|
3128
|
+
case 3:
|
|
3129
|
+
if (tag !== 24) {
|
|
3130
|
+
break;
|
|
3131
|
+
}
|
|
3132
|
+
message.sbeId = reader2.sint32();
|
|
3133
|
+
continue;
|
|
3134
|
+
case 4:
|
|
3135
|
+
if (tag !== 32) {
|
|
3136
|
+
break;
|
|
3137
|
+
}
|
|
3138
|
+
message.underlyingSecurityId = reader2.sint64();
|
|
3139
|
+
continue;
|
|
3140
|
+
}
|
|
3141
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
3142
|
+
break;
|
|
3143
|
+
}
|
|
3144
|
+
reader2.skipType(tag & 7);
|
|
3145
|
+
}
|
|
3146
|
+
return message;
|
|
3147
|
+
}
|
|
3148
|
+
};
|
|
3077
3149
|
if (_m0.util.Long !== Long) {
|
|
3078
3150
|
_m0.util.Long = Long;
|
|
3079
3151
|
_m0.configure();
|
|
@@ -8600,7 +8672,7 @@ class OpenFeedConnection {
|
|
|
8600
8672
|
}
|
|
8601
8673
|
}
|
|
8602
8674
|
}
|
|
8603
|
-
const version = "1.
|
|
8675
|
+
const version = "1.4.0";
|
|
8604
8676
|
const getClientVersion = async (clientId) => {
|
|
8605
8677
|
var _a, _b, _c, _d, _e, _f;
|
|
8606
8678
|
let platformDescription;
|
|
@@ -8690,7 +8762,7 @@ class OpenFeedClient {
|
|
|
8690
8762
|
}
|
|
8691
8763
|
});
|
|
8692
8764
|
__publicField(this, "runConnectLoop", async () => {
|
|
8693
|
-
var _a, _b;
|
|
8765
|
+
var _a, _b, _c;
|
|
8694
8766
|
for (; ; ) {
|
|
8695
8767
|
if (this.socket) {
|
|
8696
8768
|
if (this.socket.readyState !== WebSocket$1.CLOSED && this.socket.readyState !== WebSocket$1.CLOSING) {
|
|
@@ -8708,6 +8780,7 @@ class OpenFeedClient {
|
|
|
8708
8780
|
await this.whenConnectedInternalSource.whenCompleted;
|
|
8709
8781
|
await this.loopResetSource.whenCompleted;
|
|
8710
8782
|
} catch (e) {
|
|
8783
|
+
(_a = this.logger) == null ? void 0 : _a.error("Error when connecting to socket:", e);
|
|
8711
8784
|
const socket = this.socket;
|
|
8712
8785
|
socket.onerror = () => {
|
|
8713
8786
|
};
|
|
@@ -8719,13 +8792,13 @@ class OpenFeedClient {
|
|
|
8719
8792
|
socket.close(1e3, "Socket closed");
|
|
8720
8793
|
}
|
|
8721
8794
|
if (e instanceof DuplicateLoginError || e instanceof InvalidCredentialsError) {
|
|
8722
|
-
(
|
|
8795
|
+
(_b = this.logger) == null ? void 0 : _b.warn("Stopping the client because of unrecoverable error");
|
|
8723
8796
|
await this.listeners.onCredentialsRejected();
|
|
8724
8797
|
this.cleanUp();
|
|
8725
8798
|
break;
|
|
8726
8799
|
}
|
|
8727
8800
|
if (e instanceof ConnectionDisposedError) {
|
|
8728
|
-
(
|
|
8801
|
+
(_c = this.logger) == null ? void 0 : _c.warn("Stopping the client because of disposal");
|
|
8729
8802
|
await this.listeners.onDisconnected();
|
|
8730
8803
|
this.cleanUp();
|
|
8731
8804
|
break;
|
package/dist/node.js
CHANGED
|
@@ -5977,7 +5977,11 @@ function createBaseInstrumentDefinition() {
|
|
|
5977
5977
|
commodity: "",
|
|
5978
5978
|
exchangeId: 0,
|
|
5979
5979
|
priceScalingExponent: 0,
|
|
5980
|
-
underlyingOpenfeedMarketId: long_default.ZERO
|
|
5980
|
+
underlyingOpenfeedMarketId: long_default.ZERO,
|
|
5981
|
+
barchartExchange: "",
|
|
5982
|
+
contractSize: long_default.ZERO,
|
|
5983
|
+
contractSizeDescription: "",
|
|
5984
|
+
exchangeMetadata: void 0
|
|
5981
5985
|
};
|
|
5982
5986
|
}
|
|
5983
5987
|
var InstrumentDefinitionDecode = {
|
|
@@ -6355,6 +6359,30 @@ var InstrumentDefinitionDecode = {
|
|
|
6355
6359
|
}
|
|
6356
6360
|
message.underlyingOpenfeedMarketId = reader.sint64();
|
|
6357
6361
|
continue;
|
|
6362
|
+
case 236:
|
|
6363
|
+
if (tag !== 1890) {
|
|
6364
|
+
break;
|
|
6365
|
+
}
|
|
6366
|
+
message.barchartExchange = reader.string();
|
|
6367
|
+
continue;
|
|
6368
|
+
case 237:
|
|
6369
|
+
if (tag !== 1896) {
|
|
6370
|
+
break;
|
|
6371
|
+
}
|
|
6372
|
+
message.contractSize = reader.sint64();
|
|
6373
|
+
continue;
|
|
6374
|
+
case 238:
|
|
6375
|
+
if (tag !== 1906) {
|
|
6376
|
+
break;
|
|
6377
|
+
}
|
|
6378
|
+
message.contractSizeDescription = reader.string();
|
|
6379
|
+
continue;
|
|
6380
|
+
case 239:
|
|
6381
|
+
if (tag !== 1914) {
|
|
6382
|
+
break;
|
|
6383
|
+
}
|
|
6384
|
+
message.exchangeMetadata = InstrumentDefinition_ExchangeMetadataDecode.decode(reader, reader.uint32());
|
|
6385
|
+
continue;
|
|
6358
6386
|
}
|
|
6359
6387
|
if ((tag & 7) === 4 || tag === 0) {
|
|
6360
6388
|
break;
|
|
@@ -6688,6 +6716,50 @@ var InstrumentDefinition_CurrencyPairDecode = {
|
|
|
6688
6716
|
return message;
|
|
6689
6717
|
}
|
|
6690
6718
|
};
|
|
6719
|
+
function createBaseInstrumentDefinition_ExchangeMetadata() {
|
|
6720
|
+
return { securityId: long_default.ZERO, channelId: "", sbeId: 0, underlyingSecurityId: long_default.ZERO };
|
|
6721
|
+
}
|
|
6722
|
+
var InstrumentDefinition_ExchangeMetadataDecode = {
|
|
6723
|
+
decode(input, length) {
|
|
6724
|
+
const reader = input instanceof import_minimal.default.Reader ? input : import_minimal.default.Reader.create(input);
|
|
6725
|
+
let end = length === void 0 ? reader.len : reader.pos + length;
|
|
6726
|
+
const message = createBaseInstrumentDefinition_ExchangeMetadata();
|
|
6727
|
+
while (reader.pos < end) {
|
|
6728
|
+
const tag = reader.uint32();
|
|
6729
|
+
switch (tag >>> 3) {
|
|
6730
|
+
case 1:
|
|
6731
|
+
if (tag !== 8) {
|
|
6732
|
+
break;
|
|
6733
|
+
}
|
|
6734
|
+
message.securityId = reader.sint64();
|
|
6735
|
+
continue;
|
|
6736
|
+
case 2:
|
|
6737
|
+
if (tag !== 18) {
|
|
6738
|
+
break;
|
|
6739
|
+
}
|
|
6740
|
+
message.channelId = reader.string();
|
|
6741
|
+
continue;
|
|
6742
|
+
case 3:
|
|
6743
|
+
if (tag !== 24) {
|
|
6744
|
+
break;
|
|
6745
|
+
}
|
|
6746
|
+
message.sbeId = reader.sint32();
|
|
6747
|
+
continue;
|
|
6748
|
+
case 4:
|
|
6749
|
+
if (tag !== 32) {
|
|
6750
|
+
break;
|
|
6751
|
+
}
|
|
6752
|
+
message.underlyingSecurityId = reader.sint64();
|
|
6753
|
+
continue;
|
|
6754
|
+
}
|
|
6755
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
6756
|
+
break;
|
|
6757
|
+
}
|
|
6758
|
+
reader.skipType(tag & 7);
|
|
6759
|
+
}
|
|
6760
|
+
return message;
|
|
6761
|
+
}
|
|
6762
|
+
};
|
|
6691
6763
|
if (import_minimal.default.util.Long !== long_default) {
|
|
6692
6764
|
import_minimal.default.util.Long = long_default;
|
|
6693
6765
|
import_minimal.default.configure();
|
|
@@ -12233,7 +12305,7 @@ var OpenFeedConnection = class {
|
|
|
12233
12305
|
};
|
|
12234
12306
|
|
|
12235
12307
|
// generated/version.ts
|
|
12236
|
-
var version = "1.
|
|
12308
|
+
var version = "1.4.0";
|
|
12237
12309
|
|
|
12238
12310
|
// src/utilities/client_version.ts
|
|
12239
12311
|
var getClientVersion = async (clientId) => {
|
|
@@ -12335,7 +12407,7 @@ var OpenFeedClient = class {
|
|
|
12335
12407
|
}
|
|
12336
12408
|
};
|
|
12337
12409
|
runConnectLoop = async () => {
|
|
12338
|
-
var _a, _b;
|
|
12410
|
+
var _a, _b, _c;
|
|
12339
12411
|
for (; ; ) {
|
|
12340
12412
|
if (this.socket) {
|
|
12341
12413
|
if (this.socket.readyState !== import_isomorphic_ws.default.CLOSED && this.socket.readyState !== import_isomorphic_ws.default.CLOSING) {
|
|
@@ -12353,6 +12425,7 @@ var OpenFeedClient = class {
|
|
|
12353
12425
|
await this.whenConnectedInternalSource.whenCompleted;
|
|
12354
12426
|
await this.loopResetSource.whenCompleted;
|
|
12355
12427
|
} catch (e) {
|
|
12428
|
+
(_a = this.logger) == null ? void 0 : _a.error("Error when connecting to socket:", e);
|
|
12356
12429
|
const socket = this.socket;
|
|
12357
12430
|
socket.onerror = () => {
|
|
12358
12431
|
};
|
|
@@ -12364,13 +12437,13 @@ var OpenFeedClient = class {
|
|
|
12364
12437
|
socket.close(1e3, "Socket closed");
|
|
12365
12438
|
}
|
|
12366
12439
|
if (e instanceof DuplicateLoginError || e instanceof InvalidCredentialsError) {
|
|
12367
|
-
(
|
|
12440
|
+
(_b = this.logger) == null ? void 0 : _b.warn("Stopping the client because of unrecoverable error");
|
|
12368
12441
|
await this.listeners.onCredentialsRejected();
|
|
12369
12442
|
this.cleanUp();
|
|
12370
12443
|
break;
|
|
12371
12444
|
}
|
|
12372
12445
|
if (e instanceof ConnectionDisposedError) {
|
|
12373
|
-
(
|
|
12446
|
+
(_c = this.logger) == null ? void 0 : _c.warn("Stopping the client because of disposal");
|
|
12374
12447
|
await this.listeners.onDisconnected();
|
|
12375
12448
|
this.cleanUp();
|
|
12376
12449
|
break;
|