@jayesol/jayeson.lib.sports 2.2.5-beta.1205 → 2.2.5-beta.1205v2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jayesol/jayeson.lib.sports",
3
- "version": "2.2.5-beta.1205",
3
+ "version": "2.2.5-beta.1205v2",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -1,11 +0,0 @@
1
- import { IBetMatch, BasketballMatchImpl, BasketballEventState, PartitionKey } from '@longchau/jayeson.lib.record';
2
- import * as proto from './protobuf_bundle';
3
- import { ICodec, EncodeAction, CodecHelper } from './codec';
4
- export declare class BasketballCodec implements ICodec {
5
- private codecHelper;
6
- constructor(codecHelper?: CodecHelper);
7
- decodeMatch(input: proto.BaseMatch[], pool: string[], action: EncodeAction, key: PartitionKey): BasketballMatchImpl[];
8
- decodeEvent(input: proto.BaseEvent[], pool: string[], action: EncodeAction, key: PartitionKey): IBetMatch[];
9
- decodeRecord(input: proto.BaseRecord[], pool: string[], action: EncodeAction, key: PartitionKey): BasketballMatchImpl[];
10
- decodeState(matchId: string, eventId: string, state: proto.IBaseEventState, pool: string[], action: EncodeAction, key: PartitionKey, time?: number): BasketballEventState;
11
- }
@@ -1 +0,0 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0});var jayeson_lib_record_1=require("@longchau/jayeson.lib.record"),proto=require("./protobuf_bundle"),codec_1=require("./codec"),BasketballCodec=(()=>{function e(e){void 0===e&&(e=new codec_1.CodecHelper),this.codecHelper=e}return e.prototype.decodeMatch=function(e,c,a,b){var i=this;return e.map(function(e){var a=c[e.participants[0]],t=c[e.participants[1]],r=c[e.id],o=i.codecHelper.coerceInt64(e.startTime),l=c[e.league],s=c[e.country],n=null,_={},e=(null!=e.metaInfo&&(_=e.metaInfo),e.basketballMatch);if(e)switch(e.gender){case proto.BasketballMatch.Gender.MEN:n=jayeson_lib_record_1.BasketballGender.MEN;break;case proto.BasketballMatch.Gender.WOMEN:n=jayeson_lib_record_1.BasketballGender.WOMEN}return _=i.codecHelper.populatePKIntoMetaInfo(_,b),new jayeson_lib_record_1.BasketballMatchImpl(a,t,o,[],r,l,n,s,_)})},e.prototype.decodeEvent=function(e,s,n,_){var a,c=this,t=[],b={};for(a in e.forEach(function(e){var a=s[e.id],t=e.metaInfo,r=jayeson_lib_record_1.BasketballEventType.NONE;switch(e.eventType.basketballEventType){case proto.BasketballEvent.Type.NONE:r=jayeson_lib_record_1.BasketballEventType.NONE;break;case proto.BasketballEvent.Type.FIRST_TO_20:r=jayeson_lib_record_1.BasketballEventType.FIRST_TO_20;break;case proto.BasketballEvent.Type.LAST_BASKET:r=jayeson_lib_record_1.BasketballEventType.LAST_BASKET;break;case proto.BasketballEvent.Type.TEAM_POINTS:r=jayeson_lib_record_1.BasketballEventType.TEAM_POINTS;break;case proto.BasketballEvent.Type.THREE_POINTERS:r=jayeson_lib_record_1.BasketballEventType.THREE_POINTERS;break;case proto.BasketballEvent.Type.HOME_POINT:r=jayeson_lib_record_1.BasketballEventType.HOME_POINT;break;case proto.BasketballEvent.Type.AWAY_POINT:r=jayeson_lib_record_1.BasketballEventType.AWAY_POINT}var o=s[e.matchId],l=[],e=(null!=e.state&&l.push(c.decodeState(o,a,e.state,s,n,_)),new jayeson_lib_record_1.BasketballEventImpl(a,[],l,o,r,t));void 0===b[o]&&(b[o]=[]),b[o].push(e)}),b){var r=new jayeson_lib_record_1.BasketballMatchImpl("","",0,b[a],a,"",jayeson_lib_record_1.BasketballGender.MEN,"",{});t.push(r)}return t},e.prototype.decodeRecord=function(e,E,a,t){var r,u=this,o=[],j={};for(r in e.forEach(function(e){var a=u.codecHelper.coerceInt64(e.id),t=jayeson_lib_record_1.OddType[e.oddType.toString()],r=jayeson_lib_record_1.LBType[e.lbType.toString()],o=null,l=e.timeType.basketballTimeType;switch(proto.BasketballTimeType.SettleOn[l.settle.toString()]){case"FT":o=jayeson_lib_record_1.BasketballTimeType.FT;break;case"H1":o=jayeson_lib_record_1.BasketballTimeType.H1;break;case"H2":o=jayeson_lib_record_1.BasketballTimeType.H2;break;case"Q1":o=jayeson_lib_record_1.BasketballTimeType.Q1;break;case"Q2":o=jayeson_lib_record_1.BasketballTimeType.Q2;break;case"Q3":o=jayeson_lib_record_1.BasketballTimeType.Q3;break;case"Q4":o=jayeson_lib_record_1.BasketballTimeType.Q4}var l=E[e.source],s=jayeson_lib_record_1.OddFormat[e.format.toString()],n=e.metaInfo,_=e.pivotValue,c=jayeson_lib_record_1.PivotType[e.pivotType.toString()],b=jayeson_lib_record_1.PivotBias[e.pivotBias.toString()],i=e.basketballRecord,d=!1,i=(i&&(d=i.swapped),u.codecHelper.formatRate(e.rates[0])),p=u.codecHelper.formatRate(e.rates[1]),y=u.codecHelper.formatRate(e.rates[2]),T=E[e.rateIds[0]],k=E[e.rateIds[1]],v=E[e.rateIds[2]],B=E[e.eventId],e=E[e.matchId],a=new jayeson_lib_record_1.BasketballRecord(e,B,a,t,r,o,l,s,n,i,p,y,_,c,b,T,k,v,d);void 0===j[e]&&(j[e]={}),void 0===j[e][B]&&(j[e][B]=[]),j[e][B].push(a)}),j){var l,s=j[r],n=[];for(l in s){var _=new jayeson_lib_record_1.BasketballEventImpl(l,s[l],[],r,jayeson_lib_record_1.BasketballEventType.NONE,{});n.push(_)}var c=new jayeson_lib_record_1.BasketballMatchImpl("","",0,n,r,"",jayeson_lib_record_1.BasketballGender.MEN,"",{});o.push(c)}return o},e.prototype.decodeState=function(e,a,t,r,o,l,s){void 0===s&&(s=Date.now());var n=t.duration,_=t.basketballEventState,c=jayeson_lib_record_1.BasketballSegment[t.basketballEventState.segment.toString()],b=_.timeout,i=t.participantStats[0].scores,d=t.participantStats[1].scores;if(i.length<7)for(var p=i.length,y=0;p+y<7;y++)i.push(-1);if(d.length<7)for(var T=d.length,y=0;T+y<7;y++)d.push(-1);var t=new jayeson_lib_record_1.BasketballStats(i[0],i[1],i[2],i[3],i[4],i[5],i[6]),k=new jayeson_lib_record_1.BasketballStats(d[0],d[1],d[2],d[3],d[4],d[5],d[6]),_=_.bookPriority;return new jayeson_lib_record_1.BasketballEventState(t,k,n,l,e,a,s,c,b,_)},e})();exports.BasketballCodec=BasketballCodec;
package/lib/client.d.ts DELETED
@@ -1,202 +0,0 @@
1
- import { IBetEvent, IBetMatch, IBetRecord, IBetEventState, ISnapshot, PartitionKey } from '@longchau/jayeson.lib.record';
2
- import { IEndPointDispatcher, IEndPointGroupManager } from './dispatch';
3
- import { FSRepo } from './core';
4
- import { IMessageClass, Subscriber, EPEvent } from '@jayesol/jayeson.lib.delivery';
5
- import * as T from 'ts-promise';
6
- import { IndexedSnapshot, DeltaOutgoing, Outgoing, IndexedSnapshotImpl } from "./data_structure";
7
- import { InEndPointEventHandler, SportsFeedInProcessor } from "./receive";
8
- import { SportsFeedMessageGroup } from "./message_class";
9
- import 'reflect-metadata';
10
- import { RuleCombination } from '@longchau/jayeson.model';
11
- export declare class InsertMatch<M extends IBetMatch> {
12
- private _after;
13
- private _get;
14
- constructor(_after: ISnapshot<IBetMatch>, _get: M[]);
15
- after(): ISnapshot<IBetMatch>;
16
- get(): M[];
17
- }
18
- export declare class UpdateMatch<M extends IBetMatch> {
19
- private _after;
20
- private _get;
21
- constructor(_after: ISnapshot<IBetMatch>, _get: M[]);
22
- after(): ISnapshot<IBetMatch>;
23
- get(): M[];
24
- }
25
- export declare class DeleteMatch<M extends IBetMatch> {
26
- private _after;
27
- private _get;
28
- constructor(_after: ISnapshot<IBetMatch>, _get: M[]);
29
- after(): ISnapshot<IBetMatch>;
30
- get(): M[];
31
- }
32
- export declare class InsertEvent<E extends IBetEvent> {
33
- private _after;
34
- private _get;
35
- constructor(_after: ISnapshot<IBetMatch>, _get: E[]);
36
- after(): ISnapshot<IBetMatch>;
37
- get(): E[];
38
- }
39
- export declare class UpdateEvent<E extends IBetEvent> {
40
- private _after;
41
- private _get;
42
- constructor(_after: ISnapshot<IBetMatch>, _get: E[]);
43
- after(): ISnapshot<IBetMatch>;
44
- get(): E[];
45
- }
46
- export declare class DeleteEvent<E extends IBetEvent> {
47
- private _after;
48
- private _get;
49
- constructor(_after: ISnapshot<IBetMatch>, _get: E[]);
50
- after(): ISnapshot<IBetMatch>;
51
- get(): E[];
52
- }
53
- export declare class InsertOdd<R extends IBetRecord> {
54
- private _after;
55
- private _get;
56
- constructor(_after: ISnapshot<IBetMatch>, _get: R[]);
57
- after(): ISnapshot<IBetMatch>;
58
- get(): R[];
59
- }
60
- export declare class UpdateOdd<R extends IBetRecord> {
61
- private _after;
62
- private _get;
63
- constructor(_after: ISnapshot<IBetMatch>, _get: R[]);
64
- after(): ISnapshot<IBetMatch>;
65
- get(): R[];
66
- }
67
- export declare class DeleteOdd<R extends IBetRecord> {
68
- private _after;
69
- private _get;
70
- constructor(_after: ISnapshot<IBetMatch>, _get: R[]);
71
- after(): ISnapshot<IBetMatch>;
72
- get(): R[];
73
- }
74
- export declare class Reset {
75
- private _after;
76
- private _get;
77
- constructor(_after: ISnapshot<IBetMatch>, _get: PartitionKey[]);
78
- after(): ISnapshot<IBetMatch>;
79
- get(): PartitionKey[];
80
- }
81
- export interface DeltaEventHandler<M extends IBetMatch, E extends IBetEvent, R extends IBetRecord> {
82
- onInsertMatch(insertMatch: InsertMatch<M>): void;
83
- onUpdateMatch(updateMatch: UpdateMatch<M>): void;
84
- onDeleteMatch(deleteMatch: DeleteMatch<M>): void;
85
- onInsertEvent(insertEvent: InsertEvent<E>): void;
86
- onUpdateEvent(updateEvent: UpdateEvent<E>): void;
87
- onDeleteEvent(deleteEvent: DeleteEvent<E>): void;
88
- onInsertOdd(insertOdd: InsertOdd<R>): void;
89
- onUpdateOdd(updateOdd: UpdateOdd<R>): void;
90
- onDeleteOdd(deleteOdd: DeleteOdd<R>): void;
91
- onReset(resetKeys: Reset): void;
92
- onSwitchFilterStart(requestId?: number): void;
93
- onSwitchFilterEnd(): void;
94
- onFullSnapshotStart(): void;
95
- onFullSnapshotEnd(): void;
96
- onSwitchFilterFail(requestId?: number): void;
97
- }
98
- export declare class FeedView<M extends IBetMatch> {
99
- private _fsRepo;
100
- private _epgm;
101
- private _grp;
102
- private _handlers;
103
- constructor(manager: IEndPointGroupManager, repo: FSRepo, grp: SportsFeedMessageGroup);
104
- fsRepo(): FSRepo;
105
- epgm(): IEndPointGroupManager;
106
- grp(): SportsFeedMessageGroup;
107
- snapshot(): IndexedSnapshot;
108
- register<E extends IBetEvent, R extends IBetRecord>(listener: DeltaEventHandler<M, E, R>): void;
109
- unregister<E extends IBetEvent, R extends IBetRecord>(listener: DeltaEventHandler<M, E, R>): void;
110
- private hasHandler;
111
- private removeHandler;
112
- handlerSize(): number;
113
- cleanUp(): void;
114
- }
115
- export declare class AbstractComparableEPDispatcher implements IEndPointDispatcher {
116
- private _stream;
117
- id(): string;
118
- submit(out: Outgoing): void;
119
- onException(e: Error): void;
120
- protected _grp: SportsFeedMessageGroup;
121
- protected _readyToDispatch: boolean;
122
- constructor(_stream: string, _grp: SportsFeedMessageGroup);
123
- stream(): string;
124
- grp(): SportsFeedMessageGroup;
125
- isInitialized(): T.Promise<Boolean>;
126
- readyToDispatch(): void;
127
- isReadyToDispatch(): boolean;
128
- }
129
- export declare class MemoryDispatcher extends AbstractComparableEPDispatcher {
130
- private _fsRepo;
131
- private _handler;
132
- static MEMORY_STREAM: string;
133
- lastPushedSs: IndexedSnapshotImpl;
134
- _id: string;
135
- constructor(_fsRepo: FSRepo, _grp: SportsFeedMessageGroup, _handler: DeltaEventHandler<IBetMatch, IBetEvent, IBetRecord>);
136
- grp(): SportsFeedMessageGroup;
137
- handler(): DeltaEventHandler<IBetMatch, IBetEvent, IBetRecord>;
138
- id(): string;
139
- submit(out: Outgoing): void;
140
- onException(e: Error): void;
141
- handleMessage(msg: Outgoing): void;
142
- protected pushSwitchFilterStart(requestId: number): void;
143
- protected pushSwitchFilterEnd(): void;
144
- protected pushFullSnapshotStart(): void;
145
- protected pushFullSnapshotEnd(): void;
146
- protected pushSwitchFilterFail(requestId: number): void;
147
- protected pushInsertMatch(ds: DeltaOutgoing): void;
148
- protected pushInsertEvent(ds: DeltaOutgoing): void;
149
- protected pushInsertOdd(ds: DeltaOutgoing): void;
150
- protected pushUpdateMatch(ds: DeltaOutgoing): void;
151
- protected pushUpdateEvent(ds: DeltaOutgoing): void;
152
- protected pushUpdateOdd(ds: DeltaOutgoing): void;
153
- protected pushDeleteMatch(ds: DeltaOutgoing): void;
154
- protected pushDeleteEvent(ds: DeltaOutgoing): void;
155
- protected pushDeleteOdd(ds: DeltaOutgoing): void;
156
- private pushReset;
157
- protected events(matches: IBetMatch[]): IBetEvent[];
158
- protected records(events: IBetEvent[]): IBetRecord[];
159
- protected states(events: IBetEvent[]): IBetEventState[];
160
- isSame(lhs: IMessageClass, rhs: IMessageClass): boolean;
161
- isInitialized(): T.Promise<Boolean>;
162
- }
163
- export declare class SportsFeedClient implements DeltaEventHandler<IBetMatch, IBetEvent, IBetRecord> {
164
- private _subscriber;
165
- private _eventHandler;
166
- private _viewTemplate;
167
- private _epgm;
168
- private _fsRepo;
169
- private _grp;
170
- private _views;
171
- private filterRequestCounter;
172
- private resolverMap;
173
- constructor(grp: SportsFeedMessageGroup, fsRepo: FSRepo, epgm: IEndPointGroupManager, subscriber: Subscriber, eventHandler: InEndPointEventHandler, inProcessor: SportsFeedInProcessor);
174
- subscriber(): Subscriber;
175
- epgm(): IEndPointGroupManager;
176
- InEndPointEventHandler(): InEndPointEventHandler;
177
- fsRepo(): FSRepo;
178
- grp(): SportsFeedMessageGroup;
179
- eventHandler(): InEndPointEventHandler;
180
- eventListener(event: EPEvent): void;
181
- configureEventHandler(eventHandler: InEndPointEventHandler): void;
182
- setUpStreamFilter(filterData: RuleCombination): T.Promise<Boolean>;
183
- getSubscriber(): Subscriber;
184
- start(): void;
185
- view<M extends IBetMatch>(): FeedView<M>;
186
- removeView<M extends IBetMatch>(view: FeedView<M>): void;
187
- onSwitchFilterFail(requestId: number): void;
188
- onSwitchFilterStart(requestId: number): void;
189
- onInsertMatch(insertMatch: InsertMatch<IBetMatch>): void;
190
- onUpdateMatch(updateMatch: UpdateMatch<IBetMatch>): void;
191
- onDeleteMatch(deleteMatch: DeleteMatch<IBetMatch>): void;
192
- onInsertEvent(insertEvent: InsertEvent<IBetEvent>): void;
193
- onUpdateEvent(updateEvent: UpdateEvent<IBetEvent>): void;
194
- onDeleteEvent(deleteEvent: DeleteEvent<IBetEvent>): void;
195
- onInsertOdd(insertOdd: InsertOdd<IBetRecord>): void;
196
- onUpdateOdd(updateOdd: UpdateOdd<IBetRecord>): void;
197
- onDeleteOdd(deleteOdd: DeleteOdd<IBetRecord>): void;
198
- onReset(resetKeys: Reset): void;
199
- onSwitchFilterEnd(): void;
200
- onFullSnapshotStart(): void;
201
- onFullSnapshotEnd(): void;
202
- }
package/lib/client.js DELETED
@@ -1 +0,0 @@
1
- var __extends=this&&this.__extends||(()=>{var n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(t,e){t.__proto__=e}:function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])});return function(t,e){function r(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}})(),__decorate=this&&this.__decorate||function(t,e,r,n){var s,o=arguments.length,i=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,r,n);else for(var p=t.length-1;0<=p;p--)(s=t[p])&&(i=(o<3?s(i):3<o?s(e,r,i):s(e,r))||i);return 3<o&&i&&Object.defineProperty(e,r,i),i},__metadata=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},__param=this&&this.__param||function(r,n){return function(t,e){n(t,e,r)}},dispatch_1=(Object.defineProperty(exports,"__esModule",{value:!0}),require("./dispatch")),codec_1=require("./codec"),core_1=require("./core"),delivery=require("@jayesol/jayeson.lib.delivery"),jayeson_lib_delivery_1=require("@jayesol/jayeson.lib.delivery"),Collections=require("typescript-collections"),T=require("ts-promise"),data_structure_1=require("./data_structure"),receive_1=require("./receive"),message_class_1=require("./message_class"),injection_js_1=(require("reflect-metadata"),require("injection-js")),InsertMatch=(()=>{function t(t,e){this._after=t,this._get=e}return t.prototype.after=function(){return this._after},t.prototype.get=function(){return this._get},t})(),UpdateMatch=(exports.InsertMatch=InsertMatch,(()=>{function t(t,e){this._after=t,this._get=e}return t.prototype.after=function(){return this._after},t.prototype.get=function(){return this._get},t})()),DeleteMatch=(exports.UpdateMatch=UpdateMatch,(()=>{function t(t,e){this._after=t,this._get=e}return t.prototype.after=function(){return this._after},t.prototype.get=function(){return this._get},t})()),InsertEvent=(exports.DeleteMatch=DeleteMatch,(()=>{function t(t,e){this._after=t,this._get=e}return t.prototype.after=function(){return this._after},t.prototype.get=function(){return this._get},t})()),UpdateEvent=(exports.InsertEvent=InsertEvent,(()=>{function t(t,e){this._after=t,this._get=e}return t.prototype.after=function(){return this._after},t.prototype.get=function(){return this._get},t})()),DeleteEvent=(exports.UpdateEvent=UpdateEvent,(()=>{function t(t,e){this._after=t,this._get=e}return t.prototype.after=function(){return this._after},t.prototype.get=function(){return this._get},t})()),InsertOdd=(exports.DeleteEvent=DeleteEvent,(()=>{function t(t,e){this._after=t,this._get=e}return t.prototype.after=function(){return this._after},t.prototype.get=function(){return this._get},t})()),UpdateOdd=(exports.InsertOdd=InsertOdd,(()=>{function t(t,e){this._after=t,this._get=e}return t.prototype.after=function(){return this._after},t.prototype.get=function(){return this._get},t})()),DeleteOdd=(exports.UpdateOdd=UpdateOdd,(()=>{function t(t,e){this._after=t,this._get=e}return t.prototype.after=function(){return this._after},t.prototype.get=function(){return this._get},t})()),Reset=(exports.DeleteOdd=DeleteOdd,(()=>{function t(t,e){this._after=t,this._get=e}return t.prototype.after=function(){return this._after},t.prototype.get=function(){return this._get},t})()),FeedView=(exports.Reset=Reset,(()=>{function t(t,e,r){this._epgm=t,this._fsRepo=e,this._grp=r,this._handlers=[]}return t.prototype.fsRepo=function(){return this._fsRepo},t.prototype.epgm=function(){return this._epgm},t.prototype.grp=function(){return this._grp},t.prototype.snapshot=function(){return this._fsRepo.getSnapshot("")},t.prototype.register=function(t){var e;this.hasHandler(t)?console.warn("Handler already registered."):(e=new MemoryDispatcher(this._fsRepo,this._grp,t),this._epgm.registerEPD(e),this._handlers.push(new HandlerDispatcherTuple(t,e)))},t.prototype.unregister=function(t){t=this.removeHandler(t);null!=t&&this._epgm.deregisterEPD(t)},t.prototype.hasHandler=function(e){return this._handlers.some(function(t){return t.handler===e})},t.prototype.removeHandler=function(e){var t,r=this._handlers.find(function(t){return t.handler===e});return void 0!==r?(t=this._handlers.indexOf(r),this._handlers.splice(t,1),r.dispatch):null},t.prototype.handlerSize=function(){return this._handlers.length},t.prototype.cleanUp=function(){for(var t=0,e=this._handlers.slice(0);t<e.length;t++){var r=e[t];this.unregister(r.handler)}},__decorate([injection_js_1.Injectable(),__param(0,injection_js_1.Inject(dispatch_1.EPGM_IMPL)),__param(1,injection_js_1.Inject(core_1.FSREPO_IMPL)),__metadata("design:paramtypes",[Object,Object,message_class_1.SportsFeedMessageGroup])],t)})()),HandlerDispatcherTuple=(exports.FeedView=FeedView,function(t,e){this.handler=t,this.dispatch=e}),AbstractComparableEPDispatcher=(()=>{function t(t,e){this._stream=t,this._grp=e}return t.prototype.id=function(){throw new Error("Method not implemented.")},t.prototype.submit=function(t){throw new Error("Method not implemented.")},t.prototype.onException=function(t){throw new Error("Method not implemented.")},t.prototype.stream=function(){return this._stream},t.prototype.grp=function(){return this._grp},t.prototype.isInitialized=function(){return null},t.prototype.readyToDispatch=function(){this._readyToDispatch=!0},t.prototype.isReadyToDispatch=function(){return this._readyToDispatch},t})(),MemoryDispatcher=(s=>{function t(t,e,r){var n=s.call(this,o.MEMORY_STREAM,e)||this;return n._fsRepo=t,n.lastPushedSs=data_structure_1.IndexedSnapshotImpl.EMPTY_SNAPSHOT,n._grp=e,n._handler=r,n._id=delivery.generateUUID(),n}var o;return __extends(t,s),(o=t).prototype.grp=function(){return this._grp},t.prototype.handler=function(){return this._handler},t.prototype.id=function(){return this._id},t.prototype.submit=function(t){this.isInitialized().isFulfilled()&&this.isInitialized().value()&&this.handleMessage(t)},t.prototype.onException=function(t){console.error("Exception when dispatching outgoing messages to dispatchers:"+t)},t.prototype.handleMessage=function(t){var e;this.grp().isIndicatorMessage(t.msgType())?t.msgType()==this._grp.SWITCH_FILTER_START()?(e=Number(t.msg()),this.pushSwitchFilterStart(e)):t.msgType()==this._grp.SWITCH_FILTER_END()?this.pushSwitchFilterEnd():t.msgType()==this._grp.FULLSNAPSHOT_START()?this.pushFullSnapshotStart():t.msgType()==this._grp.FULLSNAPSHOT_END()?this.pushFullSnapshotEnd():t.msgType()==this._grp.SWITCH_FILTER_FAIL()?(e=Number(t.msg()),this.pushSwitchFilterFail(e)):t.msgType()==this._grp.TTL_RESTORE_START()?this.pushFullSnapshotStart():t.msgType()==this._grp.TTL_RESTORE_END()&&this.pushFullSnapshotEnd():this.isSame((e=t).msgType(),this._grp.DATA_INSERT_MATCH())?this.pushInsertMatch(e):this.isSame(e.msgType(),this._grp.DATA_INSERT_EVENT())?this.pushInsertEvent(e):this.isSame(e.msgType(),this._grp.DATA_INSERT_ODD())?this.pushInsertOdd(e):this.isSame(e.msgType(),this._grp.DATA_UPDATE_MATCH())?this.pushUpdateMatch(e):this.isSame(e.msgType(),this._grp.DATA_UPDATE_EVENT())?this.pushUpdateEvent(e):this.isSame(e.msgType(),this._grp.DATA_UPDATE_ODD())?this.pushUpdateOdd(e):this.isSame(e.msgType(),this._grp.DATA_DELETE_MATCH())?this.pushDeleteMatch(e):this.isSame(e.msgType(),this._grp.DATA_DELETE_EVENT())?this.pushDeleteEvent(e):this.isSame(e.msgType(),this._grp.DATA_DELETE_ODD())?this.pushDeleteOdd(e):this.isSame(e.msgType(),this._grp.DATA_RESET())&&this.pushReset(e)},t.prototype.pushSwitchFilterStart=function(t){this._handler.onSwitchFilterStart(t)},t.prototype.pushSwitchFilterEnd=function(){this._handler.onSwitchFilterEnd()},t.prototype.pushFullSnapshotStart=function(){this._handler.onFullSnapshotStart()},t.prototype.pushFullSnapshotEnd=function(){this._handler.onFullSnapshotEnd()},t.prototype.pushSwitchFilterFail=function(t){this._handler.onSwitchFilterFail(t)},t.prototype.pushInsertMatch=function(t){for(var e,r=[],n=[],s=0,o=t.delta().matches();s<o.length;s++){var i=o[s];(t.before().hasMatch(i.id())?n:r).push(i)}0!=r.length&&(e=new InsertMatch(t.after(),r),this._handler.onInsertMatch(e)),0!=n.length&&(e=new UpdateMatch(t.after(),n),this._handler.onUpdateMatch(e))},t.prototype.pushInsertEvent=function(t){for(var e,r=[],n=[],s=0,o=this.events(t.delta().matches());s<o.length;s++){var i=o[s],p=t.before().match(i.matchId());(null!=p&&p.hasEvent(i.id())?n:r).push(i)}0!=r.length&&(e=new InsertEvent(t.after(),r),this._handler.onInsertEvent(e)),0<n.length&&(e=new UpdateEvent(t.after(),n),this._handler.onUpdateEvent(e))},t.prototype.pushInsertOdd=function(t){var e=this.records(this.events(t.delta().matches()));0<e.length&&(t=new InsertOdd(t.after(),e),this._handler.onInsertOdd(t))},t.prototype.pushUpdateMatch=function(t){var e=t.delta().matches();0<e.length&&(t=new UpdateMatch(t.after(),e),this._handler.onUpdateMatch(t))},t.prototype.pushUpdateEvent=function(t){var e=this.events(t.delta().matches());0<e.length&&(t=new UpdateEvent(t.after(),e),this._handler.onUpdateEvent(t))},t.prototype.pushUpdateOdd=function(t){var e=this.records(this.events(t.delta().matches()));0<e.length&&(t=new UpdateOdd(t.after(),e),this._handler.onUpdateOdd(t))},t.prototype.pushDeleteMatch=function(t){for(var e,r=[],n=[],s=0,o=t.delta().matches();s<o.length;s++){var i=o[s];(t.after().hasMatch(i.id())?r:n).push(i)}0!=n.length&&(e=new DeleteMatch(t.after(),n),this._handler.onDeleteMatch(e)),0!=r.length&&(e=new UpdateMatch(t.after(),r),this._handler.onUpdateMatch(e))},t.prototype.pushDeleteEvent=function(t){for(var e,r=[],n=[],s=0,o=this.events(t.delta().matches());s<o.length;s++){var i=o[s],p=t.after().match(i.matchId());(null!=p&&p.hasEvent(i.id())?r:n).push(i)}0!=n.length&&(e=new DeleteEvent(t.after(),n),this._handler.onDeleteEvent(e)),0!=r.length&&(e=new UpdateEvent(t.after(),r),this._handler.onUpdateEvent(e))},t.prototype.pushDeleteOdd=function(t){var e=this.records(this.events(t.delta().matches()));0<e.length&&(t=new DeleteOdd(t.after(),e),this._handler.onDeleteOdd(t))},t.prototype.pushReset=function(t){var e=t.delta().getPartitions().toArray(),t=new Reset(t.after(),e);this._handler.onReset(t)},t.prototype.events=function(t){for(var e=[],r=0,n=t;r<n.length;r++)for(var s=0,o=n[r].events();s<o.length;s++){var i=o[s];e.push(i)}return e},t.prototype.records=function(t){for(var e=[],r=0,n=t;r<n.length;r++)for(var s=0,o=n[r].records();s<o.length;s++){var i=o[s];e.push(i)}return e},t.prototype.states=function(t){for(var e=[],r=0,n=t;r<n.length;r++)for(var s=0,o=n[r].eventStates();s<o.length;s++){var i=o[s];e.push(i)}return e},t.prototype.isSame=function(t,e){return t.id()==e.id()},t.prototype.isInitialized=function(){return this._fsRepo.isReady(this.stream())},t.MEMORY_STREAM="MEMORY_AGGREGATED_STREAM",o=__decorate([injection_js_1.Injectable(),__metadata("design:paramtypes",[Object,message_class_1.SportsFeedMessageGroup,Object])],t)})(exports.AbstractComparableEPDispatcher=AbstractComparableEPDispatcher),SportsFeedClient=(exports.MemoryDispatcher=MemoryDispatcher,(()=>{function t(t,e,r,n,s,o){this._subscriber=n,this._epgm=r,this._eventHandler=s,this.configureEventHandler(s),this._fsRepo=e,this._grp=t,this._views=new Set,this._viewTemplate=this.view(),this._viewTemplate.register(this);this.resolverMap=new Collections.Dictionary,this.filterRequestCounter=0,o.startTtlVerification()}return t.prototype.subscriber=function(){return this._subscriber},t.prototype.epgm=function(){return this._epgm},t.prototype.InEndPointEventHandler=function(){return this._eventHandler},t.prototype.fsRepo=function(){return this._fsRepo},t.prototype.grp=function(){return this._grp},t.prototype.eventHandler=function(){return this._eventHandler},t.prototype.eventListener=function(t){if(t instanceof jayeson_lib_delivery_1.Subscriber.Event.ConsumptionStart)for(var e=0,r=t.streams;e<r.length;e++){var n=r[e];console.log("ConsumptionsStartEvent for streams "+n+" from "+t.endPoint)}else if(t instanceof jayeson_lib_delivery_1.Subscriber.Event.ConsumptionError)for(var s=0,o=t.streams;s<o.length;s++){n=o[s];console.log("ConsumptionsStartEvent for streams "+n)}else console.log("Received event "+t+" from "+t.endPoint)},t.prototype.configureEventHandler=function(t){this._subscriber.attachListener(t)},t.prototype.setUpStreamFilter=function(t){var r,n,e,s=this;return 0===Object.keys(this._eventHandler.streamSources()).length?(e=new codec_1.FilterRequest(codec_1.FilterRequest.IGNORED_REQUEST_ID,t),this._eventHandler.updateFilter(e),r=null,e=new T.Promise(function(t,e){r=t}),r(!0),e):(n=this.filterRequestCounter++,e=new codec_1.FilterRequest(n,t),t=new T.Promise(function(t,e){s.resolverMap.setValue(n,t)}),this._eventHandler.updateFilter(e),t)},t.prototype.getSubscriber=function(){return this._subscriber},t.prototype.start=function(){this.getSubscriber().start()},t.prototype.view=function(){var t=new FeedView(this._epgm,this._fsRepo,this._grp);return this._views.add(t),t},t.prototype.removeView=function(t){this._views.has(t)&&(t.cleanUp(),this._views.delete(t))},t.prototype.onSwitchFilterFail=function(t){t!=codec_1.FilterRequest.IGNORED_REQUEST_ID&&this.resolverMap.remove(t)(!1)},t.prototype.onSwitchFilterStart=function(t){t!=codec_1.FilterRequest.IGNORED_REQUEST_ID&&this.resolverMap.remove(t)(!0)},t.prototype.onInsertMatch=function(t){},t.prototype.onUpdateMatch=function(t){},t.prototype.onDeleteMatch=function(t){},t.prototype.onInsertEvent=function(t){},t.prototype.onUpdateEvent=function(t){},t.prototype.onDeleteEvent=function(t){},t.prototype.onInsertOdd=function(t){},t.prototype.onUpdateOdd=function(t){},t.prototype.onDeleteOdd=function(t){},t.prototype.onReset=function(t){},t.prototype.onSwitchFilterEnd=function(){},t.prototype.onFullSnapshotStart=function(){},t.prototype.onFullSnapshotEnd=function(){},__decorate([injection_js_1.Injectable(),__param(1,injection_js_1.Inject(core_1.FSREPO_IMPL)),__param(2,injection_js_1.Inject(dispatch_1.EPGM_IMPL)),__metadata("design:paramtypes",[message_class_1.SportsFeedMessageGroup,Object,Object,jayeson_lib_delivery_1.Subscriber,receive_1.InEndPointEventHandler,receive_1.SportsFeedInProcessor])],t)})());exports.SportsFeedClient=SportsFeedClient;
package/lib/codec.d.ts DELETED
@@ -1,57 +0,0 @@
1
- /// <reference types="long" />
2
- import * as proto from "./protobuf_bundle";
3
- import * as rec from "@longchau/jayeson.lib.record";
4
- import { RuleCombination } from "@longchau/jayeson.model";
5
- export declare enum EncodeAction {
6
- INSERT = 0,
7
- UPDATE = 1,
8
- DELETE = 2
9
- }
10
- export interface ICodec {
11
- decodeRecord(input: proto.BaseRecord[], pool: string[], action: EncodeAction, key: rec.PartitionKey): rec.IBetMatch[];
12
- decodeEvent(input: proto.BaseEvent[], pool: string[], action: EncodeAction, key: rec.PartitionKey): rec.IBetMatch[];
13
- decodeMatch(input: proto.BaseMatch[], pool: string[], action: EncodeAction, key: rec.PartitionKey): rec.IBetMatch[];
14
- }
15
- export declare class CodecHelper {
16
- constructor();
17
- coerceInt64(val: number | Long): number;
18
- populatePKIntoMetaInfo(meta: rec.StringMap, key: rec.PartitionKey): rec.StringMap;
19
- formatRate(num: number): number;
20
- }
21
- export declare class FilterRequest {
22
- private _requestId;
23
- private _ruleCombination;
24
- static readonly IGNORED_REQUEST_ID: number;
25
- constructor(_requestId: number, _ruleCombination: RuleCombination);
26
- getRequestId(): number;
27
- getFilterData(): RuleCombination;
28
- toJSON(): any;
29
- }
30
- export declare class Util {
31
- private static SEPARATOR;
32
- /**
33
- * Utility to Store array of String values as single String Also see
34
- * {@link #removeKey(String, String)}
35
- *
36
- * @param existing
37
- * "IBC_LIVE,CROWN_LIVE"
38
- * @param incoming
39
- * "SBO_LIVE"
40
- * @return "IBC_LIVE,CROWN_LIVE,SBO_LIVE"
41
- *
42
- */
43
- static addKey(existing: string, incoming: string): string;
44
- /**
45
- * Utility to remove element from string values Stored as String Also see
46
- * {@link #addKey(String, String)}
47
- *
48
- * @param existing
49
- * "IBC_LIVE,CROWN_LIVE"
50
- * @param incoming
51
- * "IBC_LIVE"
52
- * @return "CROWN_LIVE". return empty string if there are no more keys. Return
53
- * existing string if incoming is not present in existing
54
- */
55
- static removeKey(existing: string, incoming: string): string;
56
- static containsKey(existing: string, incoming: string): boolean;
57
- }
package/lib/codec.js DELETED
@@ -1 +0,0 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0});var EncodeAction,mutable_1=require("./mutable"),CodecHelper=((e=>{e[e.INSERT=0]="INSERT",e[e.UPDATE=1]="UPDATE",e[e.DELETE=2]="DELETE"})(EncodeAction=exports.EncodeAction||(exports.EncodeAction={})),(()=>{function e(){}return e.prototype.coerceInt64=function(e){return e.toNumber?e.toNumber():e},e.prototype.populatePKIntoMetaInfo=function(e,t){return e[mutable_1.Const.AGGREGATE_KEY]=t.toString(),e},e.prototype.formatRate=function(e){return Math.round(1e4*e)/1e4},e})()),FilterRequest=(exports.CodecHelper=CodecHelper,(()=>{function e(e,t){this._requestId=e,this._ruleCombination=t}return e.prototype.getRequestId=function(){return this._requestId},e.prototype.getFilterData=function(){return this._ruleCombination},e.prototype.toJSON=function(){return{requestId:this.getRequestId(),namespace:this._ruleCombination.namespace,filterRules:this._ruleCombination.filterRules}},e.IGNORED_REQUEST_ID=-1,e})()),Util=(exports.FilterRequest=FilterRequest,(()=>{function a(){}return a.addKey=function(e,t){if(-1!=t.search(a.SEPARATOR))throw new TypeError("Incoming String cannot contain Separator: "+a.SEPARATOR+" Incoming: "+t);return 0==e.length?t:-1===e.indexOf(t)?e+a.SEPARATOR+t:e},a.removeKey=function(e,t){var n=e.split(a.SEPARATOR),e=t.split(a.SEPARATOR);n.sort();for(var r=0,o=e;r<o.length;r++){var i=o[r],i=n.indexOf(i);if(!(i<0)&&(n.splice(i,1),0==n.length))return""}for(var u=n[0],c=1;c<n.length;c++)u=a.addKey(u,n[c]);return u},a.containsKey=function(e,t){if(null==e)return!1;if(-1!=t.search(a.SEPARATOR))throw new TypeError("Incoming String cannot contain Separator: "+a.SEPARATOR+" Incoming: "+t);return!(e.split(a.SEPARATOR).indexOf(t)<0)},a.SEPARATOR=",",a})());exports.Util=Util;
package/lib/core.d.ts DELETED
@@ -1,159 +0,0 @@
1
- import { Incoming, IndexedSnapshot, DeltaOutgoing, Outgoing } from "./data_structure";
2
- import * as D from "@jayesol/jayeson.lib.delivery";
3
- import * as Collections from 'typescript-collections';
4
- import * as T from 'ts-promise';
5
- import 'reflect-metadata';
6
- import { InjectionToken } from 'injection-js';
7
- import { PartitionKey, IBetMatch } from "@longchau/jayeson.lib.record";
8
- import { SportsFeedMessageGroup } from "./message_class";
9
- import { MergeableWrapper, TTLWrapper } from "./data_structure";
10
- export interface ISnapshotHandler {
11
- process(streamName: string, snapshot: Outgoing): void;
12
- toString(): string;
13
- }
14
- export interface FSRepo {
15
- appendSnapshot(stream: string, mergeable: Mergeable): DeltaOutgoing[];
16
- getSnapshot(streamName: string): IndexedSnapshot;
17
- registerSnapshotHandler(ssHandler: ISnapshotHandler): void;
18
- deRegisterSnapshotHandler(ssHandler: ISnapshotHandler): void;
19
- getRegisteredHandlers(): ISnapshotHandler[];
20
- push(outgoing: Outgoing): void;
21
- isReady(stream: string): T.Promise<Boolean>;
22
- }
23
- export declare const FSREPO_IMPL: InjectionToken<FSRepo>;
24
- export declare abstract class AbstractFSRepo implements FSRepo {
25
- abstract getTtlRemoveSnapshot(): TTLRemoveCheck[];
26
- protected _handlers: Collections.Set<ISnapshotHandler>;
27
- constructor();
28
- handlers(): Collections.Set<ISnapshotHandler>;
29
- appendSnapshot(stream: string, mergeable: Mergeable): DeltaOutgoing[];
30
- getSnapshot(streamName: string): IndexedSnapshot;
31
- registerSnapshotHandler(ssHandler: ISnapshotHandler): void;
32
- deRegisterSnapshotHandler(ssHandler: ISnapshotHandler): void;
33
- getRegisteredHandlers(): ISnapshotHandler[];
34
- push(outgoing: Outgoing): void;
35
- isReady(stream: string): T.Promise<Boolean>;
36
- }
37
- export declare class FSRepoImpl extends AbstractFSRepo implements FSRepo {
38
- outputStreamName: string;
39
- private sportsGroup;
40
- private _head;
41
- static outputStream: InjectionToken<string>;
42
- private fssEndReceived;
43
- private result;
44
- private promiseResolver;
45
- private promiseRejector;
46
- constructor(outputStreamName: string, sportsGroup: SportsFeedMessageGroup);
47
- head(): IndexedSnapshot;
48
- appendSnapshot(stream: string, logic: Mergeable): DeltaOutgoing[];
49
- getSnapshot(streamName?: string): IndexedSnapshot;
50
- getTtlRemoveSnapshot(): TTLRemoveCheck[];
51
- push(outgoing: Outgoing): void;
52
- isReady(stream: string): T.Promise<Boolean>;
53
- }
54
- export declare class Delta implements DeltaOutgoing {
55
- private _incoming;
56
- private _after;
57
- private _before;
58
- constructor(_incoming: Incoming, _after: IndexedSnapshot, _before: IndexedSnapshot);
59
- incoming(): Incoming;
60
- msgType(): D.IMessageClass;
61
- after(): IndexedSnapshot;
62
- delta(): IndexedSnapshot;
63
- before(): IndexedSnapshot;
64
- }
65
- export interface Mergeable {
66
- apply(before: IndexedSnapshot): MergeableWrapper;
67
- }
68
- export declare class TTLConfig {
69
- private livettl;
70
- private todayttl;
71
- private earlyttl;
72
- private enableTtl;
73
- getLivettl(): number;
74
- setLivettl(livettl: number): void;
75
- getTodayttl(): number;
76
- setTodayttl(todayttl: number): void;
77
- getEarlyttl(): number;
78
- setEarlyttl(earlyttl: number): void;
79
- getRunInterval(): number;
80
- isEnableTtl(): boolean;
81
- setEnableTtl(enableTtl: boolean): void;
82
- }
83
- export declare enum TTLType {
84
- REMOVE = 0,
85
- RESTORE = 1
86
- }
87
- export declare class TTLOutgoing extends Delta implements DeltaOutgoing {
88
- private readonly ttlType;
89
- constructor(ttlType: TTLType, incoming: Incoming, after: IndexedSnapshot, before: IndexedSnapshot);
90
- getTtlType(): TTLType;
91
- }
92
- export declare abstract class TTLCheck implements Mergeable {
93
- private readonly ttlType;
94
- private recycleBin;
95
- private readonly keys;
96
- private readonly stream;
97
- constructor(ttlType: TTLType, recycleBin: RecycleBin, keys: PartitionKey[], stream: string);
98
- getKeys(): PartitionKey[];
99
- getKeysMapping(): Collections.Dictionary<PartitionKey, number>;
100
- getTtlType(): TTLType;
101
- getRecycleBin(): RecycleBin;
102
- setRecycleBin(recycleBin: RecycleBin): void;
103
- getStream(): string;
104
- abstract apply(before: IndexedSnapshot): MergeableWrapper;
105
- }
106
- export declare class TTLRestoreCheck extends TTLCheck {
107
- private ttlRestoreWrapper;
108
- private transformingLogic;
109
- constructor(recycleBin: RecycleBin, keys: PartitionKey[], stream: string);
110
- apply(before: IndexedSnapshot): MergeableWrapper;
111
- }
112
- export declare class TTLRemoveCheck extends TTLCheck {
113
- private ttlRemoveWrapper;
114
- constructor(recycleBin: RecycleBin, keys: PartitionKey[], stream: string);
115
- apply(before: IndexedSnapshot): MergeableWrapper;
116
- }
117
- export declare class RecycleBin {
118
- private ttlConfig;
119
- private grp;
120
- private fsRepo;
121
- private expiredMatches;
122
- private ttlStatus;
123
- constructor(ttlConfig: TTLConfig, grp: SportsFeedMessageGroup, fsRepo: AbstractFSRepo);
124
- /**
125
- * Remove the data for a given PartitionKey from a snapshot and return the
126
- * modified snapshot. The removed data will be stored in this recycle bin.
127
- *
128
- * @param snapshot
129
- * @param key
130
- */
131
- removeData(ttlRemoveWrapper: TTLWrapper, snapshot: IndexedSnapshot, key: PartitionKey): TTLWrapper;
132
- /**
133
- * Retrieves the data in this bin with given PartitionKey and combine it with
134
- * the given snapshot.
135
- *
136
- * @param parent
137
- * @param key
138
- */
139
- restoreData(ttlRestore: TTLWrapper, parent: IndexedSnapshot, key: PartitionKey, restoreTime: number): TTLWrapper;
140
- clearBin(key: PartitionKey): void;
141
- containData(key: PartitionKey): boolean;
142
- getTtlConfig(): TTLConfig;
143
- getFsRepo(): AbstractFSRepo;
144
- getTtlRestoreSnapshot(incoming: Incoming): TTLRestoreCheck;
145
- getTtlRemoveSnapshot(): TTLRemoveCheck[];
146
- /**
147
- * Copies the data in this RecycleBin related to the given PartitionKey into the
148
- * list of matches.
149
- *
150
- * @param key
151
- * @param matches
152
- */
153
- copyData(key: PartitionKey, matches: {
154
- [sport: number]: IBetMatch[];
155
- }): {
156
- [sport: number]: IBetMatch[];
157
- };
158
- getGrp(): SportsFeedMessageGroup;
159
- }
package/lib/core.js DELETED
@@ -1 +0,0 @@
1
- var TTLType,__extends=this&&this.__extends||(()=>{var n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(t,e){t.__proto__=e}:function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])});return function(t,e){function r(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}})(),__decorate=this&&this.__decorate||function(t,e,r,n){var o,s=arguments.length,i=s<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,r,n);else for(var a=t.length-1;0<=a;a--)(o=t[a])&&(i=(s<3?o(i):3<s?o(e,r,i):o(e,r))||i);return 3<s&&i&&Object.defineProperty(e,r,i),i},__metadata=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},__param=this&&this.__param||function(r,n){return function(t,e){n(t,e,r)}},data_structure_1=(Object.defineProperty(exports,"__esModule",{value:!0}),require("./data_structure")),Collections=require("typescript-collections"),T=require("ts-promise"),injection_js_1=(require("reflect-metadata"),require("injection-js")),jayeson_lib_record_1=require("@longchau/jayeson.lib.record"),message_class_1=require("./message_class"),mutable_1=require("./mutable"),merge_1=require("./merge"),data_structure_2=require("./data_structure"),AbstractFSRepo=(exports.FSREPO_IMPL=new injection_js_1.InjectionToken("FSRepoInstance"),(()=>{function t(){this._handlers=new Collections.Set}return t.prototype.handlers=function(){return this._handlers},t.prototype.appendSnapshot=function(t,e){throw new Error("appendSnapshot is not implemented")},t.prototype.getSnapshot=function(t){throw new Error("getSnapshot is not implemented")},t.prototype.registerSnapshotHandler=function(t){this.handlers().add(t)},t.prototype.deRegisterSnapshotHandler=function(t){this.handlers().remove(t)},t.prototype.getRegisteredHandlers=function(){return this.handlers().toArray()},t.prototype.push=function(t){throw new Error("push is not implemented")},t.prototype.isReady=function(t){return null},__decorate([injection_js_1.Injectable(),__metadata("design:paramtypes",[])],t)})()),FSRepoImpl=(o=>{function t(t,e){var r=o.call(this)||this,n=(r.outputStreamName=t,r.sportsGroup=e,r._head=null,r);return r.fssEndReceived=new T.Promise(function(t,e){n.promiseResolver=t,n.promiseRejector=e}),r}var e;return __extends(t,o),(e=t).prototype.head=function(){return this._head},t.prototype.appendSnapshot=function(t,e){return null==this._head?this.result=e.apply(null):this.result=e.apply(this._head),this._head=this.result.getAfter(),this.result.getDeltaOut()},t.prototype.getSnapshot=function(t){return void 0===t&&(t=""),null==this._head?data_structure_1.IndexedSnapshotImpl.EMPTY_SNAPSHOT:this._head},t.prototype.getTtlRemoveSnapshot=function(){return null==this._head?[]:[new TTLRemoveCheck(null,this._head.getPartitions().toArray(),this.outputStreamName)]},t.prototype.push=function(e){var r;e.msgType()!=this.sportsGroup.FULLSNAPSHOT_START()&&(e.msgType()==this.sportsGroup.FULLSNAPSHOT_END()?this.promiseResolver(!0):(r=this)._handlers.forEach(function(t){t.process(r.outputStreamName,e)}))},t.prototype.isReady=function(t){return this.fssEndReceived},t.outputStream=new injection_js_1.InjectionToken("aggregatedStreamName"),e=__decorate([injection_js_1.Injectable(),__param(0,injection_js_1.Inject(e.outputStream)),__metadata("design:paramtypes",[String,message_class_1.SportsFeedMessageGroup])],t)})(exports.AbstractFSRepo=AbstractFSRepo),Delta=(exports.FSRepoImpl=FSRepoImpl,(()=>{function t(t,e,r){this._incoming=t,this._after=e,this._before=r}return t.prototype.incoming=function(){return this._incoming},t.prototype.msgType=function(){return this._incoming.msgType()},t.prototype.after=function(){return this._after},t.prototype.delta=function(){return this._incoming.data()},t.prototype.before=function(){return this._before},t})()),TTLConfig=(exports.Delta=Delta,(()=>{function t(){this.livettl=18e4,this.todayttl=18e4,this.earlyttl=18e4,this.enableTtl=!0}return t.prototype.getLivettl=function(){return this.livettl},t.prototype.setLivettl=function(t){this.livettl=t},t.prototype.getTodayttl=function(){return this.todayttl},t.prototype.setTodayttl=function(t){this.todayttl=t},t.prototype.getEarlyttl=function(){return this.earlyttl},t.prototype.setEarlyttl=function(t){this.earlyttl=t},t.prototype.getRunInterval=function(){var t,e,r;return this.enableTtl?(r=this.getLivettl(),t=this.getTodayttl(),e=this.getEarlyttl(),(r=Math.min(r,t,e)/2)<1e3?1e4:r):-1},t.prototype.isEnableTtl=function(){return this.enableTtl},t.prototype.setEnableTtl=function(t){this.enableTtl=t},__decorate([injection_js_1.Injectable()],t)})()),TTLOutgoing=(exports.TTLConfig=TTLConfig,(t=>{t[t.REMOVE=0]="REMOVE",t[t.RESTORE=1]="RESTORE"})(TTLType=exports.TTLType||(exports.TTLType={})),(o=>{function t(t,e,r,n){e=o.call(this,e,r,n)||this;return e.ttlType=t,e}return __extends(t,o),t.prototype.getTtlType=function(){return this.ttlType},t})(Delta)),TTLCheck=(exports.TTLOutgoing=TTLOutgoing,(()=>{function t(t,e,r,n){this.ttlType=t,this.recycleBin=e,this.keys=r,this.stream=n}return t.prototype.getKeys=function(){return this.keys},t.prototype.getKeysMapping=function(){var e=new Collections.Dictionary;return this.keys.forEach(function(t){e.setValue(t,(new Date).getTime())}),e},t.prototype.getTtlType=function(){return this.ttlType},t.prototype.getRecycleBin=function(){return this.recycleBin},t.prototype.setRecycleBin=function(t){this.recycleBin=t},t.prototype.getStream=function(){return this.stream},t})()),TTLRestoreCheck=(n=>{function t(t,e,r){return n.call(this,TTLType.RESTORE,t,e,r)||this}return __extends(t,n),t.prototype.apply=function(t){var e,n=this,o=t,s=!1,i=new Collections.Dictionary,a={},p=[],r=(this.getKeys().forEach(function(t,e){var r;n.getRecycleBin().containData(t)&&(s=!0,r=(new Date).getTime(),i.setValue(t,r),a=n.getRecycleBin().copyData(t,a),n.ttlRestoreWrapper=n.getRecycleBin().restoreData(new data_structure_2.TTLWrapper,o,t,r),o=n.ttlRestoreWrapper.getRemainingSs(),p.push(n.ttlRestoreWrapper.getRestoredSs()))}),[]),c=new data_structure_2.MergeableWrapper;return c.setAfter(o),s?(console.log("restore -----\x3e"+JSON.stringify(i.keys())),merge_1.DeltaTransformingLogicImpl.transformTTLRestore(p,this.getRecycleBin().getGrp(),this.getStream(),t,o,a,i)):(e=new data_structure_1.Incoming(this.getRecycleBin().getGrp().ADMIN_REFRESH(),this.getStream(),new data_structure_1.IndexedSnapshotImpl(a,this.getKeysMapping())),r.push(new TTLOutgoing(this.getTtlType(),e,o,t)),c.setDeltaOut(r),c)},t})(exports.TTLCheck=TTLCheck),TTLRemoveCheck=(exports.TTLRestoreCheck=TTLRestoreCheck,(n=>{function t(t,e,r){return n.call(this,TTLType.REMOVE,t,e,r)||this}return __extends(t,n),t.prototype.apply=function(t){for(var e=t.getPartitionMap(),r=new Collections.Dictionary,n=t,o=[],s=this.getRecycleBin().getTtlConfig(),i=!1,a=0,p=this.getKeys();a<p.length;a++){var c=p[a],l=0;if(e.containsKey(c)){switch(c.oddType()){case jayeson_lib_record_1.OddType.LIVE:l=e.getValue(c)+s.getLivettl();break;case jayeson_lib_record_1.OddType.TODAY:l=e.getValue(c)+s.getTodayttl();break;case jayeson_lib_record_1.OddType.EARLY:l=e.getValue(c)+s.getEarlyttl()}l<(new Date).getTime()&&(i=!0,r.setValue(c,e.getValue(c)),this.ttlRemoveWrapper=this.getRecycleBin().removeData(new data_structure_2.TTLWrapper,n,c),n=this.ttlRemoveWrapper.getRemainingSs(),o.push(this.ttlRemoveWrapper.getRemovedSs()))}}var u,h,g=[];return i?(console.log("reseting -----\x3e"+JSON.stringify(r.keys())),merge_1.DeltaTransformingLogicImpl.transformTTLRemove(o,this.getRecycleBin().getGrp(),this.getStream(),t,n,r)):(u=new data_structure_2.MergeableWrapper,h=new data_structure_1.Incoming(this.getRecycleBin().getGrp().ADMIN_REFRESH(),this.getStream(),new data_structure_1.IndexedSnapshotImpl({},this.getKeysMapping())),g.push(new TTLOutgoing(this.getTtlType(),h,n,t)),u.setDeltaOut(g),u.setAfter(n),u)},t})(TTLCheck)),RecycleBin=(exports.TTLRemoveCheck=TTLRemoveCheck,(()=>{function t(t,e,r){this.ttlConfig=t,this.grp=e,this.fsRepo=r,this.expiredMatches=new Collections.Dictionary,this.ttlStatus=new Collections.Set}return t.prototype.removeData=function(t,e,r){var n,o;return e.getPartitions().contains(r)?(n=(o=mutable_1.BuilderProvider.getSnapshotBuilder(e)).reset(r).build(),o=o.build(),this.expiredMatches.setValue(r,n),t.setRemovedSs(n),t.setRemainingSs(o)):(t.setRemainingSs(e),t.setRemovedSs(null)),t},t.prototype.restoreData=function(t,e,r,n){var o,s=this.expiredMatches.getValue(r);return null==s?(t.setRemainingSs(e),t.setRestoredSs(null)):((new Collections.Dictionary).setValue(r,n),(o=mutable_1.BuilderProvider.getSnapshotBuilder(s)).markPartitionAsUpdated(r,n),s=o.build(),e=merge_1.SnapshotUtil.combineSnapshots(this.getGrp().DATA_INSERT_MATCH(),s,e).getAfterSs(),e=merge_1.SnapshotUtil.combineSnapshots(this.getGrp().DATA_INSERT_EVENT(),s,e).getAfterSs(),e=merge_1.SnapshotUtil.combineSnapshots(this.getGrp().DATA_INSERT_ODD(),s,e).getAfterSs(),t.setRestoredSs(s),t.setRemainingSs(e),this.expiredMatches.remove(r)),t},t.prototype.clearBin=function(t){this.expiredMatches.remove(t),this.ttlStatus.remove(t)},t.prototype.containData=function(t){return this.expiredMatches.containsKey(t)},t.prototype.getTtlConfig=function(){return this.ttlConfig},t.prototype.getFsRepo=function(){return this.fsRepo},t.prototype.getTtlRestoreSnapshot=function(n){var o=this,s=null;return this.ttlStatus.isEmpty()||(this.getGrp().DATA_RESET().id()==n.msgType().id()?n.data().getPartitions().forEach(function(t){console.log("Dropping partition "+t),o.expiredMatches.remove(t)}):n.data().getPartitionMap().forEach(function(t,e){var r=[];o.ttlStatus.contains(t)&&(o.ttlStatus.remove(t),r.push(t)),0<r.length&&(s=new TTLRestoreCheck(o,r,n.stream()))})),s},t.prototype.getTtlRemoveSnapshot=function(){var e=this,t=this.getFsRepo().getTtlRemoveSnapshot();return t.forEach(function(t){t.setRecycleBin(e),t.getKeys().forEach(function(t){e.ttlStatus.add(t)})}),t},t.prototype.copyData=function(t,e){t=this.expiredMatches.getValue(t);return void 0===t?e:(e=new data_structure_1.IndexedSnapshotImpl(e),e=merge_1.SnapshotUtil.combineSnapshots(this.getGrp().DATA_INSERT_MATCH(),t,e).getAfterSs(),e=merge_1.SnapshotUtil.combineSnapshots(this.getGrp().DATA_INSERT_EVENT(),t,e).getAfterSs(),(e=merge_1.SnapshotUtil.combineSnapshots(this.getGrp().DATA_INSERT_ODD(),t,e).getAfterSs()).matchesSport)},t.prototype.getGrp=function(){return this.grp},__decorate([injection_js_1.Injectable(),__metadata("design:paramtypes",[TTLConfig,message_class_1.SportsFeedMessageGroup,AbstractFSRepo])],t)})());exports.RecycleBin=RecycleBin;
@@ -1,113 +0,0 @@
1
- import * as Collections from 'typescript-collections';
2
- import { IMessageClass } from "@jayesol/jayeson.lib.delivery";
3
- import { ISnapshot, Snapshot, PartitionKey, IBetMatch } from "@longchau/jayeson.lib.record";
4
- export declare class Incoming {
5
- private _msgType;
6
- private _stream;
7
- private _data;
8
- constructor(_msgType: IMessageClass, _stream: string, _data: IndexedSnapshot);
9
- msgType(): IMessageClass;
10
- stream(): string;
11
- data(): IndexedSnapshot;
12
- }
13
- export interface IndexedSnapshot extends ISnapshot<IBetMatch> {
14
- getPartitions(): Collections.Set<PartitionKey>;
15
- getPartitionMap(): Collections.Dictionary<PartitionKey, number>;
16
- }
17
- export declare class IndexedSnapshotImpl extends Snapshot<IBetMatch> implements IndexedSnapshot {
18
- private partitions;
19
- static EMPTY_SNAPSHOT: IndexedSnapshotImpl;
20
- constructor(matches?: {
21
- [sport: number]: IBetMatch[];
22
- }, partitions?: Collections.Dictionary<PartitionKey, number>);
23
- getPartitions(): Collections.Set<PartitionKey>;
24
- getPartitionMap(): Collections.Dictionary<PartitionKey, number>;
25
- }
26
- export interface Outgoing {
27
- msgType(): IMessageClass;
28
- }
29
- export interface DeltaOutgoing extends Outgoing {
30
- /**
31
- * Indexed snapshot after Merge
32
- */
33
- after(): IndexedSnapshot;
34
- /**
35
- * Contents of this Delta
36
- */
37
- delta(): IndexedSnapshot;
38
- /**
39
- * Indexed Snapshot before Merge
40
- */
41
- before(): IndexedSnapshot;
42
- }
43
- export declare class OutgoingImpl implements Outgoing {
44
- private _msgType;
45
- private _msg;
46
- constructor(_msgType: IMessageClass, _msg: any);
47
- msgType(): IMessageClass;
48
- msg(): any;
49
- }
50
- export declare class DeltaOutgoingImpl extends OutgoingImpl implements DeltaOutgoing {
51
- private _delta;
52
- private _after?;
53
- private _before?;
54
- constructor(_msgType: IMessageClass, _delta: IndexedSnapshot, _after?: IndexedSnapshot, _before?: IndexedSnapshot);
55
- after(): IndexedSnapshot;
56
- delta(): IndexedSnapshot;
57
- before(): IndexedSnapshot;
58
- }
59
- export declare class MessageBeforeTransform {
60
- private transformEvent;
61
- private insertEvent;
62
- private deleteEvent;
63
- private suppressMatch;
64
- private insertMatch;
65
- private deleteMatch;
66
- private afterSs;
67
- private beforeSs;
68
- constructor();
69
- getTransformEvent(): string[];
70
- setTransformEvent(eventId: string): void;
71
- getSuppressMatch(): string[];
72
- setSuppressMatch(matchId: string): void;
73
- setAfterSs(afterSs: IndexedSnapshot): void;
74
- getAfterSs(): IndexedSnapshot;
75
- setBeforeSs(beforeSs: IndexedSnapshot): void;
76
- getBeforeSs(): IndexedSnapshot;
77
- setInsertEvent(eventId: string): void;
78
- getInsertEvent(): string[];
79
- setDeleteEvent(eventId: string): void;
80
- getDeleteEvent(): string[];
81
- setInsertMatch(matchId: string): void;
82
- getInsertMatch(): string[];
83
- setDeleteMatch(matchId: string): void;
84
- getDeleteMatch(): string[];
85
- }
86
- export declare enum ConvertedMsg {
87
- INSERT_EVENT_TO_UPDATE = 0,
88
- DELETE_EVENT_TO_UPDATE = 1,
89
- INSERT_MATCH_SUPPRESS = 2,
90
- DELETE_MATCH_SUPPRESS = 3,
91
- ORIGINAL = 4
92
- }
93
- export declare class MergeableWrapper {
94
- private deltaOut;
95
- private snap;
96
- constructor();
97
- setDeltaOut(out: DeltaOutgoing[]): void;
98
- setAfter(after: IndexedSnapshot): void;
99
- getDeltaOut(): DeltaOutgoing[];
100
- getAfter(): IndexedSnapshot;
101
- }
102
- export declare class TTLWrapper {
103
- private removedSs;
104
- private remainingSs;
105
- private restoredSs;
106
- _RemovedKey(): void;
107
- setRemovedSs(remove: IndexedSnapshot): void;
108
- getRemovedSs(): IndexedSnapshot;
109
- setRemainingSs(remain: IndexedSnapshot): void;
110
- getRemainingSs(): IndexedSnapshot;
111
- getRestoredSs(): IndexedSnapshot;
112
- setRestoredSs(restore: IndexedSnapshot): void;
113
- }
@@ -1 +0,0 @@
1
- var ConvertedMsg,__extends=this&&this.__extends||(()=>{var r=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(t,e){t.__proto__=e}:function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])});return function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}})(),Collections=(Object.defineProperty(exports,"__esModule",{value:!0}),require("typescript-collections")),jayeson_lib_record_1=require("@longchau/jayeson.lib.record"),Incoming=(()=>{function t(t,e,n){this._msgType=t,this._stream=e,this._data=n}return t.prototype.msgType=function(){return this._msgType},t.prototype.stream=function(){return this._stream},t.prototype.data=function(){return this._data},t})(),IndexedSnapshotImpl=(exports.Incoming=Incoming,(n=>{function t(t,e){void 0===t&&(t={}),void 0===e&&(e=new Collections.Dictionary);t=n.call(this,t)||this;return t.partitions=e,t}return __extends(t,n),t.prototype.getPartitions=function(){for(var t=new Collections.Set,e=0,n=this.partitions.keys();e<n.length;e++){var r=n[e];t.add(r)}return t},t.prototype.getPartitionMap=function(){return this.partitions},t.EMPTY_SNAPSHOT=new t,t})(jayeson_lib_record_1.Snapshot)),OutgoingImpl=(exports.IndexedSnapshotImpl=IndexedSnapshotImpl,(()=>{function t(t,e){this._msgType=t,this._msg=e}return t.prototype.msgType=function(){return this._msgType},t.prototype.msg=function(){return this._msg},t})()),DeltaOutgoingImpl=(o=>{function t(t,e,n,r){t=o.call(this,t,e)||this;return t._delta=e,t._after=n,t._before=r,t}return __extends(t,o),t.prototype.after=function(){return this._after},t.prototype.delta=function(){return this._delta},t.prototype.before=function(){return this._before},t})(exports.OutgoingImpl=OutgoingImpl),MessageBeforeTransform=(exports.DeltaOutgoingImpl=DeltaOutgoingImpl,(()=>{function t(){this.transformEvent=[],this.suppressMatch=[],this.insertMatch=[],this.deleteMatch=[],this.insertEvent=[],this.deleteEvent=[],this.afterSs=IndexedSnapshotImpl.EMPTY_SNAPSHOT,this.beforeSs=IndexedSnapshotImpl.EMPTY_SNAPSHOT}return t.prototype.getTransformEvent=function(){return this.transformEvent},t.prototype.setTransformEvent=function(t){this.transformEvent.push(t)},t.prototype.getSuppressMatch=function(){return this.suppressMatch},t.prototype.setSuppressMatch=function(t){this.suppressMatch.push(t)},t.prototype.setAfterSs=function(t){this.afterSs=t},t.prototype.getAfterSs=function(){return this.afterSs},t.prototype.setBeforeSs=function(t){this.beforeSs=t},t.prototype.getBeforeSs=function(){return this.beforeSs},t.prototype.setInsertEvent=function(t){this.insertEvent.push(t)},t.prototype.getInsertEvent=function(){return this.insertEvent},t.prototype.setDeleteEvent=function(t){this.deleteEvent.push(t)},t.prototype.getDeleteEvent=function(){return this.deleteEvent},t.prototype.setInsertMatch=function(t){this.insertMatch.push(t)},t.prototype.getInsertMatch=function(){return this.insertMatch},t.prototype.setDeleteMatch=function(t){this.deleteMatch.push(t)},t.prototype.getDeleteMatch=function(){return this.deleteMatch},t})()),MergeableWrapper=(exports.MessageBeforeTransform=MessageBeforeTransform,(t=>{t[t.INSERT_EVENT_TO_UPDATE=0]="INSERT_EVENT_TO_UPDATE",t[t.DELETE_EVENT_TO_UPDATE=1]="DELETE_EVENT_TO_UPDATE",t[t.INSERT_MATCH_SUPPRESS=2]="INSERT_MATCH_SUPPRESS",t[t.DELETE_MATCH_SUPPRESS=3]="DELETE_MATCH_SUPPRESS",t[t.ORIGINAL=4]="ORIGINAL"})(ConvertedMsg=exports.ConvertedMsg||(exports.ConvertedMsg={})),(()=>{function t(){this.snap=IndexedSnapshotImpl.EMPTY_SNAPSHOT}return t.prototype.setDeltaOut=function(t){this.deltaOut=t},t.prototype.setAfter=function(t){this.snap=t},t.prototype.getDeltaOut=function(){return this.deltaOut},t.prototype.getAfter=function(){return this.snap},t})()),TTLWrapper=(exports.MergeableWrapper=MergeableWrapper,(()=>{function t(){}return t.prototype._RemovedKey=function(){this.removedSs=IndexedSnapshotImpl.EMPTY_SNAPSHOT,this.remainingSs=IndexedSnapshotImpl.EMPTY_SNAPSHOT,this.restoredSs=IndexedSnapshotImpl.EMPTY_SNAPSHOT},t.prototype.setRemovedSs=function(t){this.removedSs=t},t.prototype.getRemovedSs=function(){return this.removedSs},t.prototype.setRemainingSs=function(t){this.remainingSs=t},t.prototype.getRemainingSs=function(){return this.remainingSs},t.prototype.getRestoredSs=function(){return this.restoredSs},t.prototype.setRestoredSs=function(t){this.restoredSs=t},t})());exports.TTLWrapper=TTLWrapper;