@jayesol/jayeson.lib.sports 2.2.4 → 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/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 "@jayesol/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
- "use strict";var __extends=this&&this.__extends||function(){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,i=arguments.length,s=i<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,n);else for(var a=t.length-1;0<=a;a--)(o=t[a])&&(s=(i<3?o(s):3<i?o(e,r,s):o(e,r))||s);return 3<i&&s&&Object.defineProperty(e,r,s),s},__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)}};Object.defineProperty(exports,"__esModule",{value:!0});var data_structure_1=require("./data_structure"),Collections=require("typescript-collections"),T=require("ts-promise");require("reflect-metadata");var injection_js_1=require("injection-js"),jayeson_lib_record_1=require("@jayesol/jayeson.lib.record"),message_class_1=require("./message_class"),mutable_1=require("./mutable"),merge_1=require("./merge"),data_structure_2=require("./data_structure");exports.FSREPO_IMPL=new injection_js_1.InjectionToken("FSRepoInstance");var AbstractFSRepo=function(){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},t=__decorate([injection_js_1.Injectable(),__metadata("design:paramtypes",[])],t)}(),FSRepoImpl=function(o){function t(t,e){var r=o.call(this)||this;r.outputStreamName=t,r.sportsGroup=e,r._head=null;var n=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){if(e.msgType()==this.sportsGroup.FULLSNAPSHOT_START());else if(e.msgType()==this.sportsGroup.FULLSNAPSHOT_END())this.promiseResolver(!0);else{var r=this;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"),t=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);exports.FSRepoImpl=FSRepoImpl;var Delta=function(){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}();exports.Delta=Delta;var TTLType,TTLConfig=function(){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(){if(!this.enableTtl)return-1;var t=this.getLivettl(),e=this.getTodayttl(),r=this.getEarlyttl(),n=Math.min(t,e,r)/2;return n<1e3?1e4:n},t.prototype.isEnableTtl=function(){return this.enableTtl},t.prototype.setEnableTtl=function(t){this.enableTtl=t},t=__decorate([injection_js_1.Injectable()],t)}();exports.TTLConfig=TTLConfig,function(t){t[t.REMOVE=0]="REMOVE",t[t.RESTORE=1]="RESTORE"}(TTLType=exports.TTLType||(exports.TTLType={}));var TTLOutgoing=function(i){function t(t,e,r,n){var o=i.call(this,e,r,n)||this;return o.ttlType=t,o}return __extends(t,i),t.prototype.getTtlType=function(){return this.ttlType},t}(Delta);exports.TTLOutgoing=TTLOutgoing;var TTLCheck=function(){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=function(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 n=this,o=t,i=!1,s=new Collections.Dictionary,a={},p=[];this.getKeys().forEach(function(t,e){if(n.getRecycleBin().containData(t)){i=!0;var r=(new Date).getTime();s.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())}});var e=[],r=new data_structure_2.MergeableWrapper;if(r.setAfter(o),i)return console.log("restore -----\x3e"+JSON.stringify(s.keys())),merge_1.DeltaTransformingLogicImpl.transformTTLRestore(p,this.getRecycleBin().getGrp(),this.getStream(),t,o,a,s);var c=new data_structure_1.Incoming(this.getRecycleBin().getGrp().ADMIN_REFRESH(),this.getStream(),new data_structure_1.IndexedSnapshotImpl(a,this.getKeysMapping()));return e.push(new TTLOutgoing(this.getTtlType(),c,o,t)),r.setDeltaOut(e),r},t}(exports.TTLCheck=TTLCheck);exports.TTLRestoreCheck=TTLRestoreCheck;var TTLRemoveCheck=function(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=[],i=this.getRecycleBin().getTtlConfig(),s=!1,a=0,p=this.getKeys();a<p.length;a++){var c=p[a],u=0;if(e.containsKey(c)){switch(c.oddType()){case jayeson_lib_record_1.OddType.LIVE:u=e.getValue(c)+i.getLivettl();break;case jayeson_lib_record_1.OddType.TODAY:u=e.getValue(c)+i.getTodayttl();break;case jayeson_lib_record_1.OddType.EARLY:u=e.getValue(c)+i.getEarlyttl()}u<(new Date).getTime()&&(s=!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 l=[];if(s)return console.log("reseting -----\x3e"+JSON.stringify(r.keys())),merge_1.DeltaTransformingLogicImpl.transformTTLRemove(o,this.getRecycleBin().getGrp(),this.getStream(),t,n,r);var h=new data_structure_2.MergeableWrapper,g=new data_structure_1.Incoming(this.getRecycleBin().getGrp().ADMIN_REFRESH(),this.getStream(),new data_structure_1.IndexedSnapshotImpl({},this.getKeysMapping()));return l.push(new TTLOutgoing(this.getTtlType(),g,n,t)),h.setDeltaOut(l),h.setAfter(n),h},t}(TTLCheck);exports.TTLRemoveCheck=TTLRemoveCheck;var RecycleBin=function(){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){if(!e.getPartitions().contains(r))return t.setRemainingSs(e),t.setRemovedSs(null),t;var n=mutable_1.BuilderProvider.getSnapshotBuilder(e),o=n.reset(r).build(),i=n.build();return this.expiredMatches.setValue(r,o),t.setRemovedSs(o),t.setRemainingSs(i),t},t.prototype.restoreData=function(t,e,r,n){var o=this.expiredMatches.getValue(r);if(null==o)return t.setRemainingSs(e),t.setRestoredSs(null),t;(new Collections.Dictionary).setValue(r,n);var i=mutable_1.BuilderProvider.getSnapshotBuilder(o);return i.markPartitionAsUpdated(r,n),o=i.build(),e=merge_1.SnapshotUtil.combineSnapshots(this.getGrp().DATA_INSERT_MATCH(),o,e).getAfterSs(),e=merge_1.SnapshotUtil.combineSnapshots(this.getGrp().DATA_INSERT_EVENT(),o,e).getAfterSs(),e=merge_1.SnapshotUtil.combineSnapshots(this.getGrp().DATA_INSERT_ODD(),o,e).getAfterSs(),t.setRestoredSs(o),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,i=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&&(i=new TTLRestoreCheck(o,r,n.stream()))})),i},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){var r=this.expiredMatches.getValue(t);if(void 0===r)return e;var n=new data_structure_1.IndexedSnapshotImpl(e);return n=merge_1.SnapshotUtil.combineSnapshots(this.getGrp().DATA_INSERT_MATCH(),r,n).getAfterSs(),n=merge_1.SnapshotUtil.combineSnapshots(this.getGrp().DATA_INSERT_EVENT(),r,n).getAfterSs(),(n=merge_1.SnapshotUtil.combineSnapshots(this.getGrp().DATA_INSERT_ODD(),r,n).getAfterSs()).matchesSport},t.prototype.getGrp=function(){return this.grp},t=__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 "@jayesol/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
- "use strict";var __extends=this&&this.__extends||function(){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)}}();Object.defineProperty(exports,"__esModule",{value:!0});var Collections=require("typescript-collections"),jayeson_lib_record_1=require("@jayesol/jayeson.lib.record"),Incoming=function(){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}();exports.Incoming=Incoming;var IndexedSnapshotImpl=function(r){function t(t,e){void 0===t&&(t={}),void 0===e&&(e=new Collections.Dictionary);var n=r.call(this,t)||this;return n.partitions=e,n}return __extends(t,r),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);exports.IndexedSnapshotImpl=IndexedSnapshotImpl;var OutgoingImpl=function(){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=function(s){function t(t,e,n,r){var o=s.call(this,t,e)||this;return o._delta=e,o._after=n,o._before=r,o}return __extends(t,s),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);exports.DeltaOutgoingImpl=DeltaOutgoingImpl;var ConvertedMsg,MessageBeforeTransform=function(){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}();exports.MessageBeforeTransform=MessageBeforeTransform,function(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={}));var MergeableWrapper=function(){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}();exports.MergeableWrapper=MergeableWrapper;var TTLWrapper=function(){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;
package/lib/dispatch.d.ts DELETED
@@ -1,126 +0,0 @@
1
- import { DeltaOutgoing, IndexedSnapshot, Outgoing } from "./data_structure";
2
- import { TTLOutgoing, FSRepo, ISnapshotHandler } from "./core";
3
- import { SportsFeedMessageGroup } from "./message_class";
4
- import { InjectionToken } from "injection-js";
5
- import * as T from 'ts-promise';
6
- export interface IEndPointGroupManager {
7
- registerEPD(epd: IEndPointDispatcher): void;
8
- deregisterEPD(epd: IEndPointDispatcher): void;
9
- }
10
- export declare const EPGM_IMPL: InjectionToken<IEndPointGroupManager>;
11
- export interface IEndPointGroup extends ISnapshotHandler {
12
- hasEPD(stream: string, id: string): boolean;
13
- addEPD(epd: IEndPointDispatcher): void;
14
- removeEPD(epd: IEndPointDispatcher): void;
15
- isEmpty(): boolean;
16
- submitForProcess(process: IDispatchableWrapper): void;
17
- getSportsFeedGrp(): SportsFeedMessageGroup;
18
- getEPDs(stream: string): IEndPointDispatcher[];
19
- getStreams(): string[];
20
- startGetingDeltaSnapshot(fsRepo: FSRepo): void;
21
- stopGetingDeltaSnapshot(fsRepo: FSRepo): void;
22
- generateFull(wrapper: FullSnapshotWrapper): Outgoing[];
23
- generatePartial(wrapper: PartialSnapshotWrapper): Outgoing[];
24
- }
25
- export interface IDispatchableWrapper {
26
- process(): void;
27
- }
28
- export declare abstract class WrapperImpl {
29
- private __epg;
30
- private __stream;
31
- constructor(__epg: IEndPointGroup, __stream: string);
32
- epg(): IEndPointGroup;
33
- stream(): string;
34
- }
35
- export declare class FullSnapshotWrapper extends WrapperImpl implements IDispatchableWrapper {
36
- private _epg;
37
- private _stream;
38
- private _epd;
39
- fullSnapshot: IndexedSnapshot;
40
- constructor(_epg: IEndPointGroup, _stream: string, _epd: IEndPointDispatcher, fullSnapshot: IndexedSnapshot);
41
- epg(): IEndPointGroup;
42
- stream(): string;
43
- epd(): IEndPointDispatcher;
44
- process(): void;
45
- getFullSnapshot(): IndexedSnapshot;
46
- setFullSnapshot(fullSnapshot: IndexedSnapshot): void;
47
- }
48
- export declare class PartialSnapshotWrapper extends WrapperImpl implements IDispatchableWrapper {
49
- private _delta;
50
- private _epg;
51
- private _stream;
52
- constructor(_delta: DeltaOutgoing, _epg: IEndPointGroup, _stream: string);
53
- epg(): IEndPointGroup;
54
- stream(): string;
55
- delta(): DeltaOutgoing;
56
- process(): void;
57
- }
58
- export declare class IndicatorWrapper extends WrapperImpl implements IDispatchableWrapper {
59
- private _delta;
60
- private _epg;
61
- private _stream;
62
- constructor(_delta: Outgoing, _epg: IEndPointGroup, _stream: string);
63
- process(): void;
64
- }
65
- export declare class EPDispatcherException extends Error {
66
- constructor(message: string);
67
- }
68
- export declare class EndPointGroupManager implements IEndPointGroupManager {
69
- private _fsRepo;
70
- private _grp;
71
- relayEPG: RelayEPG;
72
- constructor(_fsRepo: FSRepo, _grp: SportsFeedMessageGroup);
73
- fsRepo(): FSRepo;
74
- grp(): SportsFeedMessageGroup;
75
- pushFullSnapshotWrapper(epg: IEndPointGroup, epd: IEndPointDispatcher): void;
76
- registerEPD(epd: IEndPointDispatcher): void;
77
- deregisterEPD(epd: IEndPointDispatcher): void;
78
- }
79
- export interface IEndPointDispatcher {
80
- id(): string;
81
- stream(): string;
82
- submit(out: Outgoing): void;
83
- onException(e: Error): void;
84
- isInitialized(): T.Promise<Boolean>;
85
- readyToDispatch(): void;
86
- isReadyToDispatch(): boolean;
87
- }
88
- export declare class DispatchersGroup {
89
- private streamName;
90
- private dispatchers;
91
- constructor(streamName: string);
92
- addEpd(epd: IEndPointDispatcher): void;
93
- removeEpd(epd: IEndPointDispatcher): IEndPointDispatcher;
94
- get(id: string): IEndPointDispatcher;
95
- getAll(): IEndPointDispatcher[];
96
- isEmpty(): boolean;
97
- }
98
- export declare abstract class AbstractEPG implements IEndPointGroup {
99
- private sportsFeedGroup;
100
- private dispatchers;
101
- constructor(sportsFeedGroup: SportsFeedMessageGroup);
102
- hasEPD(stream: string, id: string): boolean;
103
- addEPD(epd: IEndPointDispatcher): void;
104
- removeEPD(epd: IEndPointDispatcher): void;
105
- isEmpty(): boolean;
106
- abstract submitForProcess(process: IDispatchableWrapper): void;
107
- getEPDs(stream: string): IEndPointDispatcher[];
108
- getStreams(): string[];
109
- startGetingDeltaSnapshot(fsRepo: FSRepo): void;
110
- stopGetingDeltaSnapshot(fsRepo: FSRepo): void;
111
- process(stream: string, snapshot: Outgoing): void;
112
- getSportsFeedGrp(): SportsFeedMessageGroup;
113
- generateFull(wrapper: FullSnapshotWrapper): Outgoing[];
114
- generatePartial(wrapper: PartialSnapshotWrapper): Outgoing[];
115
- }
116
- export declare class RelayEPG extends AbstractEPG {
117
- private _sportsFeedGroup;
118
- constructor(_sportsFeedGroup: SportsFeedMessageGroup);
119
- submitForProcess(wrapper: IDispatchableWrapper): void;
120
- onException(e: Error): void;
121
- generateFull(wrapper: FullSnapshotWrapper): Outgoing[];
122
- generatePartial(wrapper: PartialSnapshotWrapper): Outgoing[];
123
- generateTtl(outGng: TTLOutgoing): Outgoing[];
124
- generateTtlRestore(outGng: TTLOutgoing): Outgoing[];
125
- private isSameFormat;
126
- }
package/lib/dispatch.js DELETED
@@ -1 +0,0 @@
1
- "use strict";var __extends=this&&this.__extends||function(){var s=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}s(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}}(),__decorate=this&&this.__decorate||function(t,e,r,s){var o,n=arguments.length,p=n<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,r):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)p=Reflect.decorate(t,e,r,s);else for(var a=t.length-1;0<=a;a--)(o=t[a])&&(p=(n<3?o(p):3<n?o(e,r,p):o(e,r))||p);return 3<n&&p&&Object.defineProperty(e,r,p),p},__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,s){return function(t,e){s(t,e,r)}};Object.defineProperty(exports,"__esModule",{value:!0});var data_structure_1=require("./data_structure"),core_1=require("./core"),message_class_1=require("./message_class"),injection_js_1=require("injection-js");exports.EPGM_IMPL=new injection_js_1.InjectionToken("EpgmInstance");var WrapperImpl=function(){function t(t,e){this.__epg=t,this.__stream=e}return t.prototype.epg=function(){return this.__epg},t.prototype.stream=function(){return this.__stream},t}(),FullSnapshotWrapper=function(n){function t(t,e,r,s){var o=n.call(this,t,e)||this;return o._epg=t,o._stream=e,o._epd=r,o.fullSnapshot=s,o}return __extends(t,n),t.prototype.epg=function(){return this._epg},t.prototype.stream=function(){return this._stream},t.prototype.epd=function(){return this._epd},t.prototype.process=function(){this._epd.readyToDispatch();var t=this._epg.generateFull(this);if(null!=t)for(var e=0;e<t.length;e++){var r=t[e];this._epd.submit(r)}},t.prototype.getFullSnapshot=function(){return this.fullSnapshot},t.prototype.setFullSnapshot=function(t){this.fullSnapshot=t},t}(exports.WrapperImpl=WrapperImpl);exports.FullSnapshotWrapper=FullSnapshotWrapper;var PartialSnapshotWrapper=function(o){function t(t,e,r){var s=o.call(this,e,r)||this;return s._delta=t,s._epg=e,s._stream=r,s}return __extends(t,o),t.prototype.epg=function(){return this._epg},t.prototype.stream=function(){return this._stream},t.prototype.delta=function(){return this._delta},t.prototype.process=function(){for(var t=this._epg.generatePartial(this),e=this._epg.getEPDs(this._stream),r=0;r<e.length;r++)for(var s=e[r],o=0;o<t.length;o++)if(s.isReadyToDispatch()){var n=t[o];s.submit(n)}},t}(WrapperImpl);exports.PartialSnapshotWrapper=PartialSnapshotWrapper;var IndicatorWrapper=function(o){function t(t,e,r){var s=o.call(this,e,r)||this;return s._delta=t,s._epg=e,s._stream=r,s}return __extends(t,o),t.prototype.process=function(){for(var t=this._epg.getEPDs(this._stream),e=0;e<t.length;e++){t[e].submit(this._delta)}},t}(WrapperImpl);exports.IndicatorWrapper=IndicatorWrapper;var EPDispatcherException=function(e){function t(t){return e.call(this,t)||this}return __extends(t,e),t}(Error);exports.EPDispatcherException=EPDispatcherException;var EndPointGroupManager=function(){function t(t,e){this._fsRepo=t,this._grp=e,this.relayEPG=new RelayEPG(e),this.relayEPG.startGetingDeltaSnapshot(t)}return t.prototype.fsRepo=function(){return this._fsRepo},t.prototype.grp=function(){return this._grp},t.prototype.pushFullSnapshotWrapper=function(s,o){var n=this,p=o.stream();o.isInitialized().then(function(t){if(t){var e=n._fsRepo.getSnapshot(p),r=new FullSnapshotWrapper(s,p,o,e);s.submitForProcess(r)}})},t.prototype.registerEPD=function(t){if(this.relayEPG.hasEPD(t.stream(),t.id()))throw new EPDispatcherException("EPD already exists in a group.Id: "+t.id+" Stream: "+t.stream);this.relayEPG.addEPD(t),this.pushFullSnapshotWrapper(this.relayEPG,t)},t.prototype.deregisterEPD=function(t){this.relayEPG.removeEPD(t)},t=__decorate([injection_js_1.Injectable(),__param(0,injection_js_1.Inject(core_1.FSREPO_IMPL)),__metadata("design:paramtypes",[Object,message_class_1.SportsFeedMessageGroup])],t)}();exports.EndPointGroupManager=EndPointGroupManager;var DispatchersGroup=function(){function t(t){this.streamName=t,this.dispatchers={}}return t.prototype.addEpd=function(t){this.dispatchers[t.id()]=t},t.prototype.removeEpd=function(t){var e=this.dispatchers[t.id()];return delete this.dispatchers[t.id()],e},t.prototype.get=function(t){return this.dispatchers[t]},t.prototype.getAll=function(){var e=this;return Object.keys(this.dispatchers).map(function(t){return e.dispatchers[t]})},t.prototype.isEmpty=function(){return 0==Object.keys(this.dispatchers).length},t}();exports.DispatchersGroup=DispatchersGroup;var AbstractEPG=function(){function t(t){this.sportsFeedGroup=t,this.dispatchers={}}return t.prototype.hasEPD=function(t,e){var r=this.dispatchers[t];return void 0!==r&&void 0!==r.get(e)},t.prototype.addEPD=function(t){void 0===this.dispatchers[t.stream()]&&(this.dispatchers[t.stream()]=new DispatchersGroup(t.stream())),this.dispatchers[t.stream()].addEpd(t)},t.prototype.removeEPD=function(t){var e=this.dispatchers[t.stream()];void 0!==e&&(e.removeEpd(t),e.isEmpty()&&delete this.dispatchers[t.stream()])},t.prototype.isEmpty=function(){return 0==Object.keys(this.dispatchers).length},t.prototype.getEPDs=function(t){var e=this.dispatchers[t];return void 0!==e?e.getAll():[]},t.prototype.getStreams=function(){return Object.keys(this.dispatchers)},t.prototype.startGetingDeltaSnapshot=function(t){t.registerSnapshotHandler(this)},t.prototype.stopGetingDeltaSnapshot=function(t){t.deRegisterSnapshotHandler(this)},t.prototype.process=function(t,e){if(this.sportsFeedGroup.isIndicatorMessage(e.msgType())){var r=new IndicatorWrapper(e,this,t);this.submitForProcess(r)}else{var s=new PartialSnapshotWrapper(e,this,t);this.submitForProcess(s)}},t.prototype.getSportsFeedGrp=function(){return this.sportsFeedGroup},t.prototype.generateFull=function(t){throw new Error("Method not implemented.")},t.prototype.generatePartial=function(t){throw new Error("Method not implemented.")},t}(),RelayEPG=function(r){function t(t){var e=r.call(this,t)||this;return e._sportsFeedGroup=t,e}return __extends(t,r),t.prototype.submitForProcess=function(t){t.process()},t.prototype.onException=function(t){return console.error("Exception when dispatching snapshots to EPDs from RelayEPG. ",t),null},t.prototype.generateFull=function(t){var e=t.getFullSnapshot();return[new data_structure_1.OutgoingImpl(this._sportsFeedGroup.FULLSNAPSHOT_START(),new Object),new data_structure_1.DeltaOutgoingImpl(this._sportsFeedGroup.DATA_RESET(),e,e,data_structure_1.IndexedSnapshotImpl.EMPTY_SNAPSHOT),new data_structure_1.DeltaOutgoingImpl(this._sportsFeedGroup.DATA_INSERT_MATCH(),e,e,data_structure_1.IndexedSnapshotImpl.EMPTY_SNAPSHOT),new data_structure_1.DeltaOutgoingImpl(this._sportsFeedGroup.DATA_INSERT_EVENT(),e,e,data_structure_1.IndexedSnapshotImpl.EMPTY_SNAPSHOT),new data_structure_1.DeltaOutgoingImpl(this._sportsFeedGroup.DATA_INSERT_ODD(),e,e,data_structure_1.IndexedSnapshotImpl.EMPTY_SNAPSHOT),new data_structure_1.OutgoingImpl(this._sportsFeedGroup.FULLSNAPSHOT_END(),new Object)]},t.prototype.generatePartial=function(t){var e=t.delta();return"TTLOutgoing"==e.constructor.name?this.generateTtl(e):[e]},t.prototype.generateTtl=function(t){return this.isSameFormat(t.msgType(),this._sportsFeedGroup.ADMIN_REFRESH())?[]:t.getTtlType()==core_1.TTLType.REMOVE?[t]:this.generateTtlRestore(t)},t.prototype.generateTtlRestore=function(t){return[new data_structure_1.DeltaOutgoingImpl(this._sportsFeedGroup.DATA_INSERT_MATCH(),t.delta(),t.delta(),data_structure_1.IndexedSnapshotImpl.EMPTY_SNAPSHOT),new data_structure_1.DeltaOutgoingImpl(this._sportsFeedGroup.DATA_INSERT_EVENT(),t.delta(),t.delta(),data_structure_1.IndexedSnapshotImpl.EMPTY_SNAPSHOT),new data_structure_1.DeltaOutgoingImpl(this._sportsFeedGroup.DATA_INSERT_ODD(),t.delta(),t.delta(),data_structure_1.IndexedSnapshotImpl.EMPTY_SNAPSHOT)]},t.prototype.isSameFormat=function(t,e){return t.instanceClass()==e.instanceClass()&&t.constructor.name==e.constructor.name},t=__decorate([injection_js_1.Injectable(),__metadata("design:paramtypes",[message_class_1.SportsFeedMessageGroup])],t)}(exports.AbstractEPG=AbstractEPG);exports.RelayEPG=RelayEPG;
package/lib/index.d.ts DELETED
@@ -1,11 +0,0 @@
1
- export * from "./basketball_codec";
2
- export * from "./client";
3
- export * from "./codec";
4
- export * from "./core";
5
- export * from "./data_structure";
6
- export * from "./dispatch";
7
- export * from "./message_class";
8
- export * from "./module";
9
- export * from "./receive";
10
- export * from "./soccer_codec";
11
- export * from "./tennis_codec";
package/lib/index.js DELETED
@@ -1 +0,0 @@
1
- "use strict";function __export(e){for(var r in e)exports.hasOwnProperty(r)||(exports[r]=e[r])}Object.defineProperty(exports,"__esModule",{value:!0}),__export(require("./basketball_codec")),__export(require("./client")),__export(require("./codec")),__export(require("./core")),__export(require("./data_structure")),__export(require("./dispatch")),__export(require("./message_class")),__export(require("./module")),__export(require("./receive")),__export(require("./soccer_codec")),__export(require("./tennis_codec"));
package/lib/merge.d.ts DELETED
@@ -1,33 +0,0 @@
1
- import { IndexedSnapshot, Incoming, MessageBeforeTransform, MergeableWrapper } from './data_structure';
2
- import { SportsFeedMessageGroup } from './message_class';
3
- import { IMessageClass } from '@jayesol/jayeson.lib.delivery';
4
- import { IBetMatch, PartitionKey } from '@jayesol/jayeson.lib.record';
5
- import * as Collections from 'typescript-collections';
6
- export declare enum MsgType {
7
- INSERT = 0,
8
- UPDATE = 1,
9
- DELETE = 2
10
- }
11
- export declare class SnapshotUtil {
12
- private static readonly SPORTS_GROUP;
13
- static combineSnapshots(msgType: IMessageClass, childSs: IndexedSnapshot, parentSs: IndexedSnapshot): MessageBeforeTransform;
14
- static processRefresh(childSs: IndexedSnapshot, parentSs: IndexedSnapshot): MessageBeforeTransform;
15
- static processReset(childSs: IndexedSnapshot, parentSs: IndexedSnapshot): MessageBeforeTransform;
16
- static processMatches(msgType: MsgType, childSs: IndexedSnapshot, parentSs: IndexedSnapshot): MessageBeforeTransform;
17
- static processEvents(msgType: MsgType, childSs: IndexedSnapshot, parentSs: IndexedSnapshot): MessageBeforeTransform;
18
- static processOdds(msgType: MsgType, childSs: IndexedSnapshot, parentSs: IndexedSnapshot): MessageBeforeTransform;
19
- }
20
- export declare class DeltaTransformingLogicImpl {
21
- static transform(sportsGrp: SportsFeedMessageGroup, stream: string, msgType: IMessageClass, delta: IndexedSnapshot, msgBefore: MessageBeforeTransform): Incoming[];
22
- static combineEventState(msgBefore: MessageBeforeTransform, sportsGrp: SportsFeedMessageGroup, msgType: IMessageClass, stream: string, delta: IndexedSnapshot, msg: Incoming[]): Incoming[];
23
- static suppressInsertEvent(msgBefore: MessageBeforeTransform, sportsGrp: SportsFeedMessageGroup, msgType: IMessageClass, stream: string, delta: IndexedSnapshot, msg: Incoming[]): Incoming[];
24
- static transformTTLRestore(ttlRestoredList: IndexedSnapshot[], grp: SportsFeedMessageGroup, stream: string, before: IndexedSnapshot, after: IndexedSnapshot, matches: {
25
- [sport: number]: IBetMatch[];
26
- }, restoredKeys: Collections.Dictionary<PartitionKey, number>): MergeableWrapper;
27
- static transformTTLRemove(ttlRemoveList: IndexedSnapshot[], grp: SportsFeedMessageGroup, stream: string, before: IndexedSnapshot, after: IndexedSnapshot, keysRemoved: Collections.Dictionary<PartitionKey, number>): MergeableWrapper;
28
- static breakdownTTL(grp: SportsFeedMessageGroup, stream: string, restoredSS: IndexedSnapshot): Incoming[];
29
- static breakdownReset(grp: SportsFeedMessageGroup, stream: string, removeSs: IndexedSnapshot): Incoming[];
30
- static suppressInsertMatch(msgBefore: MessageBeforeTransform, sportsGrp: SportsFeedMessageGroup, msgType: IMessageClass, stream: string, delta: IndexedSnapshot, msg: Incoming[]): Incoming[];
31
- static suppressDeleteEvent(msgBefore: MessageBeforeTransform, sportsGrp: SportsFeedMessageGroup, msgType: IMessageClass, stream: string, delta: IndexedSnapshot, msg: Incoming[]): Incoming[];
32
- static suppressDeleteMatch(msgBefore: MessageBeforeTransform, sportsGrp: SportsFeedMessageGroup, msgType: IMessageClass, stream: string, delta: IndexedSnapshot, msg: Incoming[]): Incoming[];
33
- }
package/lib/merge.js DELETED
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var MsgType,data_structure_1=require("./data_structure"),message_class_1=require("./message_class"),mutable_1=require("./mutable"),core_1=require("./core"),data_structure_2=require("./data_structure");!function(e){e[e.INSERT=0]="INSERT",e[e.UPDATE=1]="UPDATE",e[e.DELETE=2]="DELETE"}(MsgType=exports.MsgType||(exports.MsgType={}));var SnapshotUtil=function(){function s(){}return s.combineSnapshots=function(e,t,r){if(e.group().id()!=s.SPORTS_GROUP.id())return console.error("FATAL: Received non feed message group's class %s.Shouldnt come here",e),(a=new data_structure_1.MessageBeforeTransform).setAfterSs(r),a;switch(e.id()){case s.SPORTS_GROUP.DATA_INSERT_MATCH().id():return s.processMatches(MsgType.INSERT,t,r);case s.SPORTS_GROUP.DATA_UPDATE_MATCH().id():return s.processMatches(MsgType.UPDATE,t,r);case s.SPORTS_GROUP.DATA_DELETE_MATCH().id():return s.processMatches(MsgType.DELETE,t,r);case s.SPORTS_GROUP.DATA_INSERT_EVENT().id():return s.processEvents(MsgType.INSERT,t,r);case s.SPORTS_GROUP.DATA_UPDATE_EVENT().id():return s.processEvents(MsgType.UPDATE,t,r);case s.SPORTS_GROUP.DATA_DELETE_EVENT().id():return s.processEvents(MsgType.DELETE,t,r);case s.SPORTS_GROUP.DATA_INSERT_ODD().id():return s.processOdds(MsgType.INSERT,t,r);case s.SPORTS_GROUP.DATA_UPDATE_ODD().id():return s.processOdds(MsgType.UPDATE,t,r);case s.SPORTS_GROUP.DATA_DELETE_ODD().id():return s.processOdds(MsgType.DELETE,t,r);case s.SPORTS_GROUP.DATA_RESET().id():return s.processReset(t,r);case s.SPORTS_GROUP.ADMIN_REFRESH().id():return s.processRefresh(t,r);default:var a;return console.error("FATAL: Received non data message class %s.Shouldnt come here",e),(a=new data_structure_1.MessageBeforeTransform).setAfterSs(r),a}},s.processRefresh=function(e,t){for(var r=mutable_1.BuilderProvider.getSnapshotBuilder(t),a=new data_structure_1.MessageBeforeTransform,s=0,n=e.getPartitions().toArray();s<n.length;s++){var i=n[s],l=e.getPartitionMap().getValue(i);r.markPartitionAsUpdated(i,l)}return a.setAfterSs(r.build()),a},s.processReset=function(e,t){for(var r=mutable_1.BuilderProvider.getSnapshotBuilder(t),a=new data_structure_1.MessageBeforeTransform,s=0,n=e.getPartitions().toArray();s<n.length;s++){var i=n[s];r.reset(i);var l=e.getPartitionMap().getValue(i);r.markPartitionAsUpdated(i,l)}return a.setAfterSs(r.build()),a},s.processMatches=function(e,t,r){for(var a=mutable_1.BuilderProvider.getSnapshotBuilder(r),s=new data_structure_1.MessageBeforeTransform,n=null,i=0,l=t.matches();i<l.length;i++){var u=l[i];switch(n=null,e){case MsgType.INSERT:null!=(n=a.insertChild(u))?s.setSuppressMatch(n):s.setInsertMatch(u.id());break;case MsgType.UPDATE:a.updateChild(u);break;case MsgType.DELETE:null!=(n=a.deleteChild(u))?s.setSuppressMatch(n):s.setDeleteMatch(u.id());break;default:console.error("[Match] FATAL: Shouldn't come here")}}for(var d=0,o=t.getPartitions().toArray();d<o.length;d++){var c=o[d],h=t.getPartitionMap().getValue(c);a.markPartitionAsUpdated(c,h)}return s.setAfterSs(a.build()),s},s.processEvents=function(e,t,r){for(var a=mutable_1.BuilderProvider.getSnapshotBuilder(r),s=new data_structure_1.MessageBeforeTransform,n=0,i=t.matches();n<i.length;n++){var l=i[n],u=r.match(l.id());if(null!=u){for(var d=mutable_1.BuilderProvider.getMatchBuilder(u),o=0,c=l.events();o<c.length;o++){var h=c[o];switch(e){case MsgType.INSERT:null!=d.insertChild(h)?s.setTransformEvent(h.matchId()+"_"+h.id()):s.setInsertEvent(h.matchId()+"_"+h.id());break;case MsgType.UPDATE:d.updateChild(h);break;case MsgType.DELETE:null!=d.deleteChild(h)?s.setTransformEvent(h.matchId()+"_"+h.id()):s.setDeleteEvent(h.matchId()+"_"+h.id());break;default:console.error("[Event] FATAL: Shouldn't come here")}}a.replaceMatch(d.build())}else console.error("Cannot find Match %s while processing %s",l.id(),MsgType)}for(var _=0,g=t.getPartitions().toArray();_<g.length;_++){var T=g[_],p=t.getPartitionMap().getValue(T);a.markPartitionAsUpdated(T,p)}return s.setAfterSs(a.build()),s.setBeforeSs(r),s},s.processOdds=function(e,t,r){for(var a=mutable_1.BuilderProvider.getSnapshotBuilder(r),s=new data_structure_1.MessageBeforeTransform,n=0,i=t.matches();n<i.length;n++){var l=i[n],u=r.match(l.id());if(null!=u){for(var d=mutable_1.BuilderProvider.getMatchBuilder(u),o=0,c=l.events();o<c.length;o++){var h=c[o],_=u.event(h.id());if(null!=_){for(var g=mutable_1.BuilderProvider.getEventBuilder(_),T=0,p=h.records();T<p.length;T++){var v=p[T];switch(e){case MsgType.INSERT:g.insertChild(v);break;case MsgType.UPDATE:g.updateChild(v);break;case MsgType.DELETE:g.deleteChild(v);break;default:console.error("[Record] FATAL: Shouldn't come here")}}d.replaceEvent(g.build())}else console.error("Cannot find Event %s_%s while processing %s",l.id(),h.id(),e)}a.replaceMatch(d.build())}else console.error("Cannot find Match %s while processing %s",l.id(),e)}for(var E=0,m=t.getPartitions().toArray();E<m.length;E++){var A=m[E],S=t.getPartitionMap().getValue(A);a.markPartitionAsUpdated(A,S)}return s.setAfterSs(a.build()),s},s.SPORTS_GROUP=new message_class_1.SportsFeedMessageGroup,s}();exports.SnapshotUtil=SnapshotUtil;var DeltaTransformingLogicImpl=function(){function f(){}return f.transform=function(e,t,r,a,s){switch(r.id()){case e.DATA_INSERT_MATCH().id():return this.suppressInsertMatch(s,e,r,t,a,[]);case e.DATA_DELETE_MATCH().id():return this.suppressDeleteMatch(s,e,r,t,a,[]);case e.DATA_INSERT_EVENT().id():return this.suppressInsertEvent(s,e,r,t,a,[]);case e.DATA_DELETE_EVENT().id():return this.suppressDeleteEvent(s,e,r,t,a,[]);case e.DATA_UPDATE_EVENT().id():return this.combineEventState(s,e,r,t,a,[])}var n=[];return n.push(new data_structure_1.Incoming(r,t,a)),n},f.combineEventState=function(e,t,r,a,s,n){for(var i=mutable_1.BuilderProvider.getSnapshotBuilder(s),l=0,u=s.matches();l<u.length;l++){for(var d=u[l],o=mutable_1.BuilderProvider.getMatchBuilder(d),c=0,h=d.events();c<h.length;c++){var _=h[c],g=mutable_1.BuilderProvider.getEventBuilder(_);g.aggregateInsert(e.getAfterSs().match(d.id()).event(_.id())),o.replaceEvent(g.build())}i.replaceMatch(o.build())}return n.push(new data_structure_1.Incoming(t.DATA_UPDATE_EVENT(),a,i.build())),n},f.suppressInsertEvent=function(e,t,r,a,s,n){var i=mutable_1.BuilderProvider.getSnapshotBuilder(s),l=mutable_1.BuilderProvider.getSnapshotBuilder(s);if(0!=s.matches().length){if(0!=e.getInsertEvent().length){for(var u={},d=0,o=e.getTransformEvent();d<o.length;d++){var c=(S=o[d]).split("_")[0],h=S.split("_")[1],_=s.match(c),g=u[c];void 0===g&&(g=mutable_1.BuilderProvider.getMatchBuilder(_),u[c]=g),g.deleteChild(_.event(h))}for(var c in u)i.replaceMatch(u[c].build());n.push(new data_structure_1.Incoming(t.DATA_INSERT_EVENT(),a,i.build()))}if(0!=e.getTransformEvent().length){for(var T={},p=0,v=e.getInsertEvent();p<v.length;p++){c=(S=v[p]).split("_")[0],h=S.split("_")[1],_=s.match(c);var E=T[c];void 0===E&&(E=mutable_1.BuilderProvider.getMatchBuilder(_),T[c]=E),E.deleteChild(_.event(h))}for(var m=0,A=e.getTransformEvent();m<A.length;m++){c=(S=A[m]).split("_")[0],h=S.split("_")[1],_=s.match(c);var S,f=T[c];void 0===f&&(f=mutable_1.BuilderProvider.getMatchBuilder(_),T[c]=f);var b=mutable_1.BuilderProvider.getEventBuilder(_.event(h));b.aggregateInsert(e.getAfterSs().match(c).event(h)),f.replaceEvent(b.build())}for(var c in T)l.replaceMatch(T[c].build());n.push(new data_structure_1.Incoming(t.DATA_UPDATE_EVENT(),a,l.build()))}}return n},f.transformTTLRestore=function(e,t,r,a,s,n,i){for(var l=data_structure_2.IndexedSnapshotImpl.EMPTY_SNAPSHOT,u=new data_structure_1.MergeableWrapper,d=0,o=e;d<o.length;d++){var c=o[d];l=SnapshotUtil.combineSnapshots(t.DATA_INSERT_MATCH(),c,l).getAfterSs(),l=SnapshotUtil.combineSnapshots(t.DATA_INSERT_EVENT(),c,l).getAfterSs(),l=SnapshotUtil.combineSnapshots(t.DATA_INSERT_ODD(),c,l).getAfterSs()}for(var h=a,_=[],g=0,T=this.breakdownTTL(t,r,new data_structure_2.IndexedSnapshotImpl(l.matchesSport,i));g<T.length;g++){var p=T[g],v=SnapshotUtil.combineSnapshots(p.msgType(),p.data(),h);if(p.msgType().id()==t.DATA_INSERT_MATCH().id()||p.msgType().id()==t.DATA_INSERT_EVENT().id())for(var E=0,m=f.transform(t,r,p.msgType(),p.data(),v);E<m.length;E++){var A=m[E],S=new core_1.Delta(A,v.getAfterSs(),h);_.push(S),h=v.getAfterSs()}else{S=new core_1.Delta(p,v.getAfterSs(),a);_.push(S)}}return u.setAfter(s),u.setDeltaOut(_),u},f.transformTTLRemove=function(e,t,r,a,s,n){for(var i,l=new data_structure_1.MergeableWrapper,u=data_structure_2.IndexedSnapshotImpl.EMPTY_SNAPSHOT,d=0,o=e;d<o.length;d++){var c=o[d];u=SnapshotUtil.combineSnapshots(t.DATA_INSERT_MATCH(),c,u).getAfterSs(),u=SnapshotUtil.combineSnapshots(t.DATA_INSERT_EVENT(),c,u).getAfterSs(),u=SnapshotUtil.combineSnapshots(t.DATA_INSERT_ODD(),c,u).getAfterSs()}i=a;for(var h=[],_=0,g=f.breakdownReset(t,r,u);_<g.length;_++){var T=g[_],p=SnapshotUtil.combineSnapshots(T.msgType(),T.data(),i);if(T.msgType().id()==t.DATA_DELETE_MATCH().id()||T.msgType().id()==t.DATA_DELETE_EVENT().id())for(var v=0,E=f.transform(t,r,T.msgType(),T.data(),p);v<E.length;v++){var m=E[v],A=new core_1.Delta(m,p.getAfterSs(),i);h.push(A),i=p.getAfterSs()}else{A=new core_1.Delta(T,p.getAfterSs(),a);h.push(A)}}return l.setDeltaOut(h),l.setAfter(s),l},f.breakdownTTL=function(e,t,r){for(var a=data_structure_2.IndexedSnapshotImpl.EMPTY_SNAPSHOT,s=data_structure_2.IndexedSnapshotImpl.EMPTY_SNAPSHOT,n=mutable_1.BuilderProvider.getSnapshotBuilder(r),i=mutable_1.BuilderProvider.getSnapshotBuilder(r),l=0,u=r.matches();l<u.length;l++){for(var d=u[l],o=mutable_1.BuilderProvider.getMatchBuilder(d),c=mutable_1.BuilderProvider.getMatchBuilder(d),h=0,_=d.events();h<_.length;h++){var g=_[h];o.deleteChild(g);for(var T=mutable_1.BuilderProvider.getEventBuilder(g),p=0,v=g.records();p<v.length;p++){var E=v[p];T.deleteChild(E)}c.replaceEvent(T.build())}n.replaceMatch(o.build()),i.replaceMatch(c.build())}a=n.build(),s=i.build();var m=[];return m.push(new data_structure_1.Incoming(e.DATA_INSERT_MATCH(),t,a)),m.push(new data_structure_1.Incoming(e.DATA_INSERT_EVENT(),t,s)),m.push(new data_structure_1.Incoming(e.DATA_INSERT_ODD(),t,r)),m},f.breakdownReset=function(e,t,r){for(var a=data_structure_2.IndexedSnapshotImpl.EMPTY_SNAPSHOT,s=data_structure_2.IndexedSnapshotImpl.EMPTY_SNAPSHOT,n=mutable_1.BuilderProvider.getSnapshotBuilder(r),i=mutable_1.BuilderProvider.getSnapshotBuilder(r),l=0,u=r.matches();l<u.length;l++){for(var d=u[l],o=mutable_1.BuilderProvider.getMatchBuilder(d),c=mutable_1.BuilderProvider.getMatchBuilder(d),h=0,_=d.events();h<_.length;h++){var g=_[h];o.deleteChild(g);for(var T=mutable_1.BuilderProvider.getEventBuilder(g),p=0,v=g.records();p<v.length;p++){var E=v[p];T.deleteChild(E)}c.replaceEvent(T.build())}n.replaceMatch(o.build()),i.replaceMatch(c.build())}a=n.build(),s=i.build();var m=[];return m.push(new data_structure_1.Incoming(e.DATA_DELETE_ODD(),t,r)),m.push(new data_structure_1.Incoming(e.DATA_DELETE_EVENT(),t,s)),m.push(new data_structure_1.Incoming(e.DATA_DELETE_MATCH(),t,a)),m},f.suppressInsertMatch=function(e,t,r,a,s,n){var i=mutable_1.BuilderProvider.getSnapshotBuilder(s),l=mutable_1.BuilderProvider.getSnapshotBuilder(s);if(0!=e.getSuppressMatch().length)for(var u=0,d=e.getSuppressMatch();u<d.length;u++){var o=d[u],c=mutable_1.BuilderProvider.getMatchBuilder(s.match(o.split("_")[0]));i.deleteChild(c.build())}if(0!=e.getInsertMatch().length)for(var h=0,_=e.getInsertMatch();h<_.length;h++){o=_[h],c=mutable_1.BuilderProvider.getMatchBuilder(s.match(o.split("_")[0]));l.deleteChild(c.build())}return 0!=i.build().matches().length&&n.push(new data_structure_1.Incoming(t.DATA_INSERT_MATCH(),a,i.build())),n},f.suppressDeleteEvent=function(e,t,r,a,s,n){var i=mutable_1.BuilderProvider.getSnapshotBuilder(s),l=mutable_1.BuilderProvider.getSnapshotBuilder(s);if(0!=e.getDeleteEvent().length){for(var u={},d=0,o=e.getTransformEvent();d<o.length;d++){var c=(S=o[d]).split("_")[0],h=S.split("_")[1],_=e.getBeforeSs().match(c),g=u[c];void 0===g&&(g=mutable_1.BuilderProvider.getMatchBuilder(_),u[c]=g),g.deleteChild(_.event(h))}for(var c in u)i.replaceMatch(u[c].build());n.push(new data_structure_1.Incoming(t.DATA_DELETE_EVENT(),a,i.build()))}if(0!=e.getTransformEvent().length){for(var T={},p=0,v=e.getDeleteEvent();p<v.length;p++){c=(S=v[p]).split("_")[0],h=S.split("_")[1],_=e.getBeforeSs().match(c);var E=T[c];void 0===E&&(E=mutable_1.BuilderProvider.getMatchBuilder(_),T[c]=E),E.deleteChild(_.event(h))}for(var m=0,A=e.getTransformEvent();m<A.length;m++){c=(S=A[m]).split("_")[0],h=S.split("_")[1];var S,f=T[c];void 0===f&&(f=mutable_1.BuilderProvider.getMatchBuilder(e.getBeforeSs().match(c)),T[c]=f);var b=mutable_1.BuilderProvider.getEventBuilder(f.build().event(h));b.aggregateDelete(s.match(c).event(h)),f.replaceEvent(b.build())}for(var c in T)l.replaceMatch(T[c].build());n.push(new data_structure_1.Incoming(t.DATA_UPDATE_EVENT(),a,l.build()))}return n},f.suppressDeleteMatch=function(e,t,r,a,s,n){var i=mutable_1.BuilderProvider.getSnapshotBuilder(s),l=mutable_1.BuilderProvider.getSnapshotBuilder(s);if(0!=e.getSuppressMatch().length)for(var u=0,d=e.getSuppressMatch();u<d.length;u++){var o=d[u],c=mutable_1.BuilderProvider.getMatchBuilder(s.match(o.split("_")[0]));i.deleteChild(c.build())}if(0!=e.getDeleteMatch().length)for(var h=0,_=e.getDeleteMatch();h<_.length;h++){o=_[h],c=mutable_1.BuilderProvider.getMatchBuilder(s.match(o.split("_")[0]));l.deleteChild(c.build())}return 0!=i.build().matches().length&&n.push(new data_structure_1.Incoming(t.DATA_DELETE_MATCH(),a,i.build())),n},f}();exports.DeltaTransformingLogicImpl=DeltaTransformingLogicImpl;