@jayesol/jayeson.lib.sports 2.2.5-beta.1205 → 2.2.5-beta.1205v3
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/lib/basketball_codec.d.ts +2 -2
- package/lib/basketball_codec.js +209 -1
- package/lib/client.d.ts +2 -2
- package/lib/client.js +686 -1
- package/lib/codec.d.ts +4 -4
- package/lib/codec.js +129 -1
- package/lib/core.d.ts +1 -1
- package/lib/core.js +497 -1
- package/lib/data_structure.d.ts +1 -1
- package/lib/data_structure.js +208 -1
- package/lib/dispatch.js +324 -1
- package/lib/index.js +27 -1
- package/lib/merge.d.ts +1 -1
- package/lib/merge.js +569 -1
- package/lib/message_class.d.ts +1 -1
- package/lib/message_class.js +466 -1
- package/lib/module.d.ts +9 -0
- package/lib/module.js +87 -1
- package/lib/mutable.d.ts +1 -1
- package/lib/mutable.js +1061 -1
- package/lib/protobuf_bundle.d.ts +218 -0
- package/lib/protobuf_bundle.js +9683 -1
- package/lib/receive.d.ts +1 -1
- package/lib/receive.js +484 -1
- package/lib/soccer_codec.d.ts +2 -2
- package/lib/soccer_codec.js +168 -1
- package/lib/tennis_codec.d.ts +2 -2
- package/lib/tennis_codec.js +177 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IBetMatch, BasketballMatchImpl, BasketballEventState, PartitionKey } from '@
|
|
1
|
+
import { IBetMatch, BasketballMatchImpl, BasketballEventState, PartitionKey } from '@jayesol/jayeson.lib.record';
|
|
2
2
|
import * as proto from './protobuf_bundle';
|
|
3
3
|
import { ICodec, EncodeAction, CodecHelper } from './codec';
|
|
4
4
|
export declare class BasketballCodec implements ICodec {
|
|
@@ -7,5 +7,5 @@ export declare class BasketballCodec implements ICodec {
|
|
|
7
7
|
decodeMatch(input: proto.BaseMatch[], pool: string[], action: EncodeAction, key: PartitionKey): BasketballMatchImpl[];
|
|
8
8
|
decodeEvent(input: proto.BaseEvent[], pool: string[], action: EncodeAction, key: PartitionKey): IBetMatch[];
|
|
9
9
|
decodeRecord(input: proto.BaseRecord[], pool: string[], action: EncodeAction, key: PartitionKey): BasketballMatchImpl[];
|
|
10
|
-
decodeState(matchId: string, eventId: string, state: proto.
|
|
10
|
+
decodeState(matchId: string, eventId: string, state: proto.BaseEventState, pool: string[], action: EncodeAction, key: PartitionKey, time?: number): BasketballEventState;
|
|
11
11
|
}
|
package/lib/basketball_codec.js
CHANGED
|
@@ -1 +1,209 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.BasketballCodec = void 0;
|
|
27
|
+
const jayeson_lib_record_1 = require("@jayesol/jayeson.lib.record");
|
|
28
|
+
const proto = __importStar(require("./protobuf_bundle"));
|
|
29
|
+
const codec_1 = require("./codec");
|
|
30
|
+
class BasketballCodec {
|
|
31
|
+
constructor(codecHelper = new codec_1.CodecHelper()) {
|
|
32
|
+
this.codecHelper = codecHelper;
|
|
33
|
+
}
|
|
34
|
+
decodeMatch(input, pool, action, key) {
|
|
35
|
+
return input.map(match => {
|
|
36
|
+
let host = pool[match.participants[0]];
|
|
37
|
+
let guest = pool[match.participants[1]];
|
|
38
|
+
let id = pool[match.id];
|
|
39
|
+
let startTime = this.codecHelper.coerceInt64(match.startTime);
|
|
40
|
+
let league = pool[match.league];
|
|
41
|
+
let country = pool[match.country];
|
|
42
|
+
let gender = null;
|
|
43
|
+
let meta = {};
|
|
44
|
+
if (match.metaInfo != null) {
|
|
45
|
+
meta = match.metaInfo;
|
|
46
|
+
}
|
|
47
|
+
let bballMatch = match.basketballMatch;
|
|
48
|
+
if (bballMatch) {
|
|
49
|
+
switch (bballMatch.gender) {
|
|
50
|
+
case proto.BasketballMatch.Gender.MEN:
|
|
51
|
+
gender = jayeson_lib_record_1.BasketballGender.MEN;
|
|
52
|
+
break;
|
|
53
|
+
case proto.BasketballMatch.Gender.WOMEN:
|
|
54
|
+
gender = jayeson_lib_record_1.BasketballGender.WOMEN;
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
meta = this.codecHelper.populatePKIntoMetaInfo(meta, key);
|
|
59
|
+
return new jayeson_lib_record_1.BasketballMatchImpl(host, guest, startTime, [], id, league, gender, country, meta);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
decodeEvent(input, pool, action, key) {
|
|
63
|
+
var result = [];
|
|
64
|
+
let matchIdToEvents = {};
|
|
65
|
+
input.forEach(event => {
|
|
66
|
+
let id = pool[event.id];
|
|
67
|
+
let meta = event.metaInfo;
|
|
68
|
+
let eType = jayeson_lib_record_1.BasketballEventType.NONE;
|
|
69
|
+
switch (event.eventType.basketballEventType) {
|
|
70
|
+
case proto.BasketballEvent.Type.NONE:
|
|
71
|
+
eType = jayeson_lib_record_1.BasketballEventType.NONE;
|
|
72
|
+
break;
|
|
73
|
+
case proto.BasketballEvent.Type.FIRST_TO_20:
|
|
74
|
+
eType = jayeson_lib_record_1.BasketballEventType.FIRST_TO_20;
|
|
75
|
+
break;
|
|
76
|
+
case proto.BasketballEvent.Type.LAST_BASKET:
|
|
77
|
+
eType = jayeson_lib_record_1.BasketballEventType.LAST_BASKET;
|
|
78
|
+
break;
|
|
79
|
+
case proto.BasketballEvent.Type.TEAM_POINTS:
|
|
80
|
+
eType = jayeson_lib_record_1.BasketballEventType.TEAM_POINTS;
|
|
81
|
+
break;
|
|
82
|
+
case proto.BasketballEvent.Type.THREE_POINTERS:
|
|
83
|
+
eType = jayeson_lib_record_1.BasketballEventType.THREE_POINTERS;
|
|
84
|
+
break;
|
|
85
|
+
case proto.BasketballEvent.Type.HOME_POINT:
|
|
86
|
+
eType = jayeson_lib_record_1.BasketballEventType.HOME_POINT;
|
|
87
|
+
break;
|
|
88
|
+
case proto.BasketballEvent.Type.AWAY_POINT:
|
|
89
|
+
eType = jayeson_lib_record_1.BasketballEventType.AWAY_POINT;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
let mId = pool[event.matchId];
|
|
93
|
+
let states = [];
|
|
94
|
+
if (event.state != null) {
|
|
95
|
+
states.push(this.decodeState(mId, id, event.state, pool, action, key));
|
|
96
|
+
}
|
|
97
|
+
let ev = new jayeson_lib_record_1.BasketballEventImpl(id, [], states, mId, eType, meta);
|
|
98
|
+
if (matchIdToEvents[mId] === undefined) {
|
|
99
|
+
matchIdToEvents[mId] = [];
|
|
100
|
+
}
|
|
101
|
+
matchIdToEvents[mId].push(ev);
|
|
102
|
+
});
|
|
103
|
+
//add the matches
|
|
104
|
+
for (let matchId in matchIdToEvents) {
|
|
105
|
+
let currMatch = new jayeson_lib_record_1.BasketballMatchImpl('', '', 0, matchIdToEvents[matchId], matchId, '', jayeson_lib_record_1.BasketballGender.MEN, "", {});
|
|
106
|
+
result.push(currMatch);
|
|
107
|
+
}
|
|
108
|
+
return result;
|
|
109
|
+
}
|
|
110
|
+
decodeRecord(input, pool, action, key) {
|
|
111
|
+
let result = [];
|
|
112
|
+
let matchMap = {}; //map of match id to events array for that particular match
|
|
113
|
+
input.forEach(record => {
|
|
114
|
+
let id = this.codecHelper.coerceInt64(record.id);
|
|
115
|
+
let oddType = jayeson_lib_record_1.OddType[record.oddType.toString()];
|
|
116
|
+
let lbType = jayeson_lib_record_1.LBType[record.lbType.toString()];
|
|
117
|
+
let timeType = null;
|
|
118
|
+
let protoTimeType = record.timeType.basketballTimeType;
|
|
119
|
+
let str = proto.BasketballTimeType.SettleOn[protoTimeType.settle.toString()];
|
|
120
|
+
switch (str) {
|
|
121
|
+
case "FT":
|
|
122
|
+
timeType = jayeson_lib_record_1.BasketballTimeType.FT;
|
|
123
|
+
break;
|
|
124
|
+
case "H1":
|
|
125
|
+
timeType = jayeson_lib_record_1.BasketballTimeType.H1;
|
|
126
|
+
break;
|
|
127
|
+
case "H2":
|
|
128
|
+
timeType = jayeson_lib_record_1.BasketballTimeType.H2;
|
|
129
|
+
break;
|
|
130
|
+
case "Q1":
|
|
131
|
+
timeType = jayeson_lib_record_1.BasketballTimeType.Q1;
|
|
132
|
+
break;
|
|
133
|
+
case "Q2":
|
|
134
|
+
timeType = jayeson_lib_record_1.BasketballTimeType.Q2;
|
|
135
|
+
break;
|
|
136
|
+
case "Q3":
|
|
137
|
+
timeType = jayeson_lib_record_1.BasketballTimeType.Q3;
|
|
138
|
+
break;
|
|
139
|
+
case "Q4":
|
|
140
|
+
timeType = jayeson_lib_record_1.BasketballTimeType.Q4;
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
let source = pool[record.source];
|
|
144
|
+
let oddFormat = jayeson_lib_record_1.OddFormat[record.format.toString()];
|
|
145
|
+
let meta = record.metaInfo;
|
|
146
|
+
let pivotValue = record.pivotValue;
|
|
147
|
+
let pivotType = jayeson_lib_record_1.PivotType[record.pivotType.toString()];
|
|
148
|
+
let pivotBias = jayeson_lib_record_1.PivotBias[record.pivotBias.toString()];
|
|
149
|
+
let bballRec = record.basketballRecord;
|
|
150
|
+
let isSwapped = false;
|
|
151
|
+
if (bballRec) {
|
|
152
|
+
isSwapped = bballRec.swapped;
|
|
153
|
+
}
|
|
154
|
+
let rateOver = this.codecHelper.formatRate(record.rates[0]);
|
|
155
|
+
let rateUnder = this.codecHelper.formatRate(record.rates[1]);
|
|
156
|
+
let rateEqual = this.codecHelper.formatRate(record.rates[2]);
|
|
157
|
+
let rateOverId = pool[record.rateIds[0]];
|
|
158
|
+
let rateUnderId = pool[record.rateIds[1]];
|
|
159
|
+
let rateEqualId = pool[record.rateIds[2]];
|
|
160
|
+
let eId = pool[record.eventId];
|
|
161
|
+
let mId = pool[record.matchId];
|
|
162
|
+
let rec = new jayeson_lib_record_1.BasketballRecord(mId, eId, id, oddType, lbType, timeType, source, oddFormat, meta, rateOver, rateUnder, rateEqual, pivotValue, pivotType, pivotBias, rateOverId, rateUnderId, rateEqualId, isSwapped);
|
|
163
|
+
if (matchMap[mId] === undefined) {
|
|
164
|
+
matchMap[mId] = {};
|
|
165
|
+
}
|
|
166
|
+
if (matchMap[mId][eId] === undefined) {
|
|
167
|
+
matchMap[mId][eId] = [];
|
|
168
|
+
}
|
|
169
|
+
matchMap[mId][eId].push(rec);
|
|
170
|
+
});
|
|
171
|
+
for (let mId in matchMap) {
|
|
172
|
+
let eventMap = matchMap[mId];
|
|
173
|
+
let eventArray = [];
|
|
174
|
+
for (let eId in eventMap) {
|
|
175
|
+
let ev = new jayeson_lib_record_1.BasketballEventImpl(eId, eventMap[eId], [], mId, jayeson_lib_record_1.BasketballEventType.NONE, {});
|
|
176
|
+
eventArray.push(ev);
|
|
177
|
+
}
|
|
178
|
+
let match = new jayeson_lib_record_1.BasketballMatchImpl('', '', 0, eventArray, mId, '', jayeson_lib_record_1.BasketballGender.MEN, "", {});
|
|
179
|
+
result.push(match);
|
|
180
|
+
}
|
|
181
|
+
return result;
|
|
182
|
+
}
|
|
183
|
+
decodeState(matchId, eventId, state, pool, action, key, time = Date.now()) {
|
|
184
|
+
let duration = state.duration;
|
|
185
|
+
let bballState = state.basketballEventState;
|
|
186
|
+
let seg = jayeson_lib_record_1.BasketballSegment[state.basketballEventState.segment.toString()];
|
|
187
|
+
let timeout = bballState.timeout;
|
|
188
|
+
var hostStat = state.participantStats[0].scores;
|
|
189
|
+
var guestStat = state.participantStats[1].scores;
|
|
190
|
+
if (hostStat.length < 7) {
|
|
191
|
+
var hostLength = hostStat.length;
|
|
192
|
+
for (var i = 0; hostLength + i < 7; i++) {
|
|
193
|
+
hostStat.push(-1);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
if (guestStat.length < 7) {
|
|
197
|
+
var guestLength = guestStat.length;
|
|
198
|
+
for (var i = 0; guestLength + i < 7; i++) {
|
|
199
|
+
guestStat.push(-1);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
let p1Stat = new jayeson_lib_record_1.BasketballStats(hostStat[0], hostStat[1], hostStat[2], hostStat[3], hostStat[4], hostStat[5], hostStat[6]);
|
|
203
|
+
let p2Stat = new jayeson_lib_record_1.BasketballStats(guestStat[0], guestStat[1], guestStat[2], guestStat[3], guestStat[4], guestStat[5], guestStat[6]);
|
|
204
|
+
let bookPriority = bballState.bookPriority;
|
|
205
|
+
let s = new jayeson_lib_record_1.BasketballEventState(p1Stat, p2Stat, duration, key, matchId, eventId, time, seg, timeout, bookPriority);
|
|
206
|
+
return s;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
exports.BasketballCodec = BasketballCodec;
|
package/lib/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IBetEvent, IBetMatch, IBetRecord, IBetEventState, ISnapshot, PartitionKey } from '@
|
|
1
|
+
import { IBetEvent, IBetMatch, IBetRecord, IBetEventState, ISnapshot, PartitionKey } from '@jayesol/jayeson.lib.record';
|
|
2
2
|
import { IEndPointDispatcher, IEndPointGroupManager } from './dispatch';
|
|
3
3
|
import { FSRepo } from './core';
|
|
4
4
|
import { IMessageClass, Subscriber, EPEvent } from '@jayesol/jayeson.lib.delivery';
|
|
@@ -7,7 +7,7 @@ import { IndexedSnapshot, DeltaOutgoing, Outgoing, IndexedSnapshotImpl } from ".
|
|
|
7
7
|
import { InEndPointEventHandler, SportsFeedInProcessor } from "./receive";
|
|
8
8
|
import { SportsFeedMessageGroup } from "./message_class";
|
|
9
9
|
import 'reflect-metadata';
|
|
10
|
-
import { RuleCombination } from '@
|
|
10
|
+
import { RuleCombination } from '@jayesol/jayeson.model';
|
|
11
11
|
export declare class InsertMatch<M extends IBetMatch> {
|
|
12
12
|
private _after;
|
|
13
13
|
private _get;
|