@boatkit-io/restream 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +19 -0
  2. package/dist/cjs/index.js +34 -0
  3. package/dist/cjs/index.js.map +1 -0
  4. package/dist/cjs/package.json +3 -0
  5. package/dist/cjs/restream/PackageRestream.js +371 -0
  6. package/dist/cjs/restream/PackageRestream.js.map +1 -0
  7. package/dist/cjs/stores/TriggerStore.js +130 -0
  8. package/dist/cjs/stores/TriggerStore.js.map +1 -0
  9. package/dist/cjs/utils/BinaryReader.js +171 -0
  10. package/dist/cjs/utils/BinaryReader.js.map +1 -0
  11. package/dist/cjs/utils/BinaryWriter.js +74 -0
  12. package/dist/cjs/utils/BinaryWriter.js.map +1 -0
  13. package/dist/cjs/utils/Decoders.js +286 -0
  14. package/dist/cjs/utils/Decoders.js.map +1 -0
  15. package/dist/cjs/utils/Encoders.js +232 -0
  16. package/dist/cjs/utils/Encoders.js.map +1 -0
  17. package/dist/cjs/utils/SerializationTypes.js +279 -0
  18. package/dist/cjs/utils/SerializationTypes.js.map +1 -0
  19. package/dist/cjs/utils/SimpleAssert.js +9 -0
  20. package/dist/cjs/utils/SimpleAssert.js.map +1 -0
  21. package/dist/cjs/utils/SubscribableEvent.js +60 -0
  22. package/dist/cjs/utils/SubscribableEvent.js.map +1 -0
  23. package/dist/cjs/utils/TSUtils.js +62 -0
  24. package/dist/cjs/utils/TSUtils.js.map +1 -0
  25. package/dist/cjs/websocket/SocketHelper.js +134 -0
  26. package/dist/cjs/websocket/SocketHelper.js.map +1 -0
  27. package/dist/esm/index.d.ts +10 -0
  28. package/dist/esm/index.d.ts.map +1 -0
  29. package/dist/esm/index.js +9 -0
  30. package/dist/esm/index.js.map +1 -0
  31. package/dist/esm/restream/PackageRestream.d.ts +71 -0
  32. package/dist/esm/restream/PackageRestream.d.ts.map +1 -0
  33. package/dist/esm/restream/PackageRestream.js +330 -0
  34. package/dist/esm/restream/PackageRestream.js.map +1 -0
  35. package/dist/esm/stores/TriggerStore.d.ts +34 -0
  36. package/dist/esm/stores/TriggerStore.d.ts.map +1 -0
  37. package/dist/esm/stores/TriggerStore.js +124 -0
  38. package/dist/esm/stores/TriggerStore.js.map +1 -0
  39. package/dist/esm/utils/BinaryReader.d.ts +27 -0
  40. package/dist/esm/utils/BinaryReader.d.ts.map +1 -0
  41. package/dist/esm/utils/BinaryReader.js +168 -0
  42. package/dist/esm/utils/BinaryReader.js.map +1 -0
  43. package/dist/esm/utils/BinaryWriter.d.ts +18 -0
  44. package/dist/esm/utils/BinaryWriter.d.ts.map +1 -0
  45. package/dist/esm/utils/BinaryWriter.js +71 -0
  46. package/dist/esm/utils/BinaryWriter.js.map +1 -0
  47. package/dist/esm/utils/Decoders.d.ts +27 -0
  48. package/dist/esm/utils/Decoders.d.ts.map +1 -0
  49. package/dist/esm/utils/Decoders.js +235 -0
  50. package/dist/esm/utils/Decoders.js.map +1 -0
  51. package/dist/esm/utils/Encoders.d.ts +25 -0
  52. package/dist/esm/utils/Encoders.d.ts.map +1 -0
  53. package/dist/esm/utils/Encoders.js +211 -0
  54. package/dist/esm/utils/Encoders.js.map +1 -0
  55. package/dist/esm/utils/SerializationTypes.d.ts +101 -0
  56. package/dist/esm/utils/SerializationTypes.d.ts.map +1 -0
  57. package/dist/esm/utils/SerializationTypes.js +267 -0
  58. package/dist/esm/utils/SerializationTypes.js.map +1 -0
  59. package/dist/esm/utils/SimpleAssert.d.ts +2 -0
  60. package/dist/esm/utils/SimpleAssert.d.ts.map +1 -0
  61. package/dist/esm/utils/SimpleAssert.js +6 -0
  62. package/dist/esm/utils/SimpleAssert.js.map +1 -0
  63. package/dist/esm/utils/SubscribableEvent.d.ts +26 -0
  64. package/dist/esm/utils/SubscribableEvent.d.ts.map +1 -0
  65. package/dist/esm/utils/SubscribableEvent.js +55 -0
  66. package/dist/esm/utils/SubscribableEvent.js.map +1 -0
  67. package/dist/esm/utils/TSUtils.d.ts +8 -0
  68. package/dist/esm/utils/TSUtils.d.ts.map +1 -0
  69. package/dist/esm/utils/TSUtils.js +58 -0
  70. package/dist/esm/utils/TSUtils.js.map +1 -0
  71. package/dist/esm/websocket/SocketHelper.d.ts +64 -0
  72. package/dist/esm/websocket/SocketHelper.d.ts.map +1 -0
  73. package/dist/esm/websocket/SocketHelper.js +125 -0
  74. package/dist/esm/websocket/SocketHelper.js.map +1 -0
  75. package/package.json +58 -0
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deepEqual = deepEqual;
4
+ exports.deferred = deferred;
5
+ function deepEqual(a, b) {
6
+ if (a === b) {
7
+ return true;
8
+ }
9
+ if (typeof a !== 'object' || typeof b !== 'object' || !a || !b) {
10
+ // Can't compare non-objects as anything other than triple-equals.
11
+ // Functions must be reference equal to be equal, otherwise are ALWAYS unequal.
12
+ return false;
13
+ }
14
+ if (Array.isArray(a)) {
15
+ // Optimize array checks a bit
16
+ if (!Array.isArray(b)) {
17
+ return false;
18
+ }
19
+ const aLen = a.length;
20
+ if (aLen !== b.length) {
21
+ return false;
22
+ }
23
+ for (let i = 0; i < aLen; i++) {
24
+ if (!deepEqual(a[i], b[i])) {
25
+ return false;
26
+ }
27
+ }
28
+ }
29
+ const aKeys = Object.keys(a);
30
+ const bKeys = Object.keys(b);
31
+ if (aKeys.length !== bKeys.length) {
32
+ return false;
33
+ }
34
+ // First check that all the keys exist in both
35
+ for (const key of aKeys) {
36
+ if (!(key in b)) {
37
+ return false;
38
+ }
39
+ }
40
+ // Got this far, now check that the values are deep equal
41
+ for (const key of aKeys) {
42
+ // @ts-expect-error deep equals
43
+ if (!deepEqual(a[key], b[key])) {
44
+ return false;
45
+ }
46
+ }
47
+ return true;
48
+ }
49
+ function deferred() {
50
+ let resolve;
51
+ let reject;
52
+ const promise = new Promise((res, rej) => {
53
+ resolve = res;
54
+ reject = rej;
55
+ });
56
+ return {
57
+ promise,
58
+ resolve,
59
+ reject,
60
+ };
61
+ }
62
+ //# sourceMappingURL=TSUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TSUtils.js","sourceRoot":"","sources":["../../../src/utils/TSUtils.ts"],"names":[],"mappings":";;AAAA,8BA2CC;AAQD,4BAYC;AA/DD,SAAgB,SAAS,CAAC,CAAU,EAAE,CAAU;IAC5C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC7D,kEAAkE;QAClE,+EAA+E;QAC/E,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,8BAA8B;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,IAAI,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,8CAA8C;IAC9C,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,yDAAyD;IACzD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACtB,+BAA+B;QAC/B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAQD,SAAgB,QAAQ;IACpB,IAAI,OAAwB,CAAC;IAC7B,IAAI,MAA6B,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACxC,OAAO,GAAG,GAAG,CAAC;QACd,MAAM,GAAG,GAAG,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,OAAO;QACH,OAAO;QACP,OAAO;QACP,MAAM;KACT,CAAC;AACN,CAAC"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ReStreamSocket = exports.StoreUpdateMessageKind = exports.StoreSubscriptionAction = exports.RPCResponseStruct = exports.RPCStruct = void 0;
7
+ const TSUtils_js_1 = require("../utils/TSUtils.js");
8
+ const BinaryWriter_js_1 = __importDefault(require("../utils/BinaryWriter.js"));
9
+ const BinaryReader_js_1 = __importDefault(require("../utils/BinaryReader.js"));
10
+ const TriggerStore_js_1 = __importDefault(require("../stores/TriggerStore.js"));
11
+ class RPCStruct {
12
+ rpcBoundName;
13
+ responseType;
14
+ constructor(rpcBoundName, responseType) {
15
+ this.rpcBoundName = rpcBoundName;
16
+ this.responseType = responseType;
17
+ }
18
+ }
19
+ exports.RPCStruct = RPCStruct;
20
+ class RPCResponseStruct {
21
+ result;
22
+ error;
23
+ }
24
+ exports.RPCResponseStruct = RPCResponseStruct;
25
+ var SocketEventNames;
26
+ (function (SocketEventNames) {
27
+ SocketEventNames["StoreUpdate"] = "storeupdate";
28
+ SocketEventNames["StoreSubscription"] = "storesub";
29
+ SocketEventNames["RPCCall"] = "rpccall";
30
+ SocketEventNames["RPCCallResponse"] = "rpccallresp";
31
+ })(SocketEventNames || (SocketEventNames = {}));
32
+ var StoreSubscriptionAction;
33
+ (function (StoreSubscriptionAction) {
34
+ StoreSubscriptionAction[StoreSubscriptionAction["Subscribe"] = 0] = "Subscribe";
35
+ StoreSubscriptionAction[StoreSubscriptionAction["Unsubscribe"] = 1] = "Unsubscribe";
36
+ })(StoreSubscriptionAction || (exports.StoreSubscriptionAction = StoreSubscriptionAction = {}));
37
+ var StoreUpdateMessageKind;
38
+ (function (StoreUpdateMessageKind) {
39
+ StoreUpdateMessageKind[StoreUpdateMessageKind["Full"] = 0] = "Full";
40
+ StoreUpdateMessageKind[StoreUpdateMessageKind["Partial"] = 2] = "Partial";
41
+ })(StoreUpdateMessageKind || (exports.StoreUpdateMessageKind = StoreUpdateMessageKind = {}));
42
+ class ReStreamSocket {
43
+ _socket;
44
+ _timestampOffset = 0;
45
+ _authenticated = false;
46
+ _rpcCallID = 1;
47
+ _rpcCallsPending = new Map();
48
+ constructor(socket) {
49
+ this._socket = socket;
50
+ socket.on('disconnect', () => {
51
+ for (const v of this._rpcCallsPending.values()) {
52
+ v.def.reject({ message: "Server is disconnected", data: {} });
53
+ }
54
+ this._rpcCallsPending.clear();
55
+ this._authenticated = false;
56
+ });
57
+ socket.on(SocketEventNames.StoreUpdate, (message) => {
58
+ this._timestampOffset = Date.now() - message.time;
59
+ TriggerStore_js_1.default.handleUpdateMessage(message);
60
+ });
61
+ socket.on(SocketEventNames.RPCCallResponse, (message) => {
62
+ const waiting = this._rpcCallsPending.get(message.callID);
63
+ this._rpcCallsPending.delete(message.callID);
64
+ if (!waiting) {
65
+ alert("got binary RPC response for untracked RPC call " + message.callID);
66
+ return;
67
+ }
68
+ if (!message.response || message.error) {
69
+ waiting.def.reject(message.error?.message ?? "Server is disconnected");
70
+ return;
71
+ }
72
+ const resp = waiting.responseType.deserialized(new BinaryReader_js_1.default(message.response), undefined);
73
+ if (resp.error) {
74
+ waiting.def.reject(resp.error);
75
+ }
76
+ else {
77
+ waiting.def.resolve(resp.result);
78
+ }
79
+ });
80
+ TriggerStore_js_1.default.eventSubscriptionStarted.subscribe((storeName, key) => {
81
+ if (this._authenticated) {
82
+ const message = {
83
+ action: StoreSubscriptionAction.Subscribe,
84
+ storeName,
85
+ key,
86
+ };
87
+ this._socket.emit(SocketEventNames.StoreSubscription, message);
88
+ }
89
+ });
90
+ TriggerStore_js_1.default.eventSubscriptionStopped.subscribe((storeName, key) => {
91
+ if (this._authenticated) {
92
+ const message = {
93
+ action: StoreSubscriptionAction.Unsubscribe,
94
+ storeName,
95
+ key,
96
+ };
97
+ this._socket.emit(SocketEventNames.StoreSubscription, message);
98
+ }
99
+ });
100
+ }
101
+ markAuthenticated() {
102
+ this._authenticated = true;
103
+ for (const storeSub of TriggerStore_js_1.default.getStoreSubs()) {
104
+ const message = {
105
+ action: StoreSubscriptionAction.Subscribe,
106
+ storeName: storeSub.storeName,
107
+ key: storeSub.key,
108
+ };
109
+ this._socket.emit(SocketEventNames.StoreSubscription, message);
110
+ }
111
+ }
112
+ sendRPC(rpcStruct) {
113
+ if (this._authenticated) {
114
+ return Promise.reject(new Error("Server is disconnected"));
115
+ }
116
+ const w = new BinaryWriter_js_1.default();
117
+ rpcStruct.serialize(w, undefined);
118
+ const msg = {
119
+ callID: this._rpcCallID++,
120
+ methodName: rpcStruct.rpcBoundName,
121
+ request: w.getBytes().buffer,
122
+ };
123
+ const def = (0, TSUtils_js_1.deferred)();
124
+ const waiting = {
125
+ def,
126
+ responseType: rpcStruct.responseType,
127
+ };
128
+ this._rpcCallsPending.set(msg.callID, waiting);
129
+ this._socket.emit(SocketEventNames.RPCCall, msg);
130
+ return def.promise;
131
+ }
132
+ }
133
+ exports.ReStreamSocket = ReStreamSocket;
134
+ //# sourceMappingURL=SocketHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SocketHelper.js","sourceRoot":"","sources":["../../../src/websocket/SocketHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export { default as BinaryReader } from './utils/BinaryReader.js';
2
+ export { default as BinaryWriter } from './utils/BinaryWriter.js';
3
+ export * from './restream/PackageRestream.js';
4
+ export * from './stores/TriggerStore.js';
5
+ export * from './utils/Decoders.js';
6
+ export * from './utils/Encoders.js';
7
+ export * from './utils/SerializationTypes.js';
8
+ export { ReStreamSocket, RPCResponseStruct, RPCStruct } from './websocket/SocketHelper.js';
9
+ export type { RPCCallError, RPCCallMessage, RPCCallResponseMessage, StoreSubscriptionMessage, StoreUpdateFullMessage, StoreUpdateMessage, StoreUpdatePartialMessage, } from './websocket/SocketHelper.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC3F,YAAY,EACR,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,GAC5B,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { default as BinaryReader } from './utils/BinaryReader.js';
2
+ export { default as BinaryWriter } from './utils/BinaryWriter.js';
3
+ export * from './restream/PackageRestream.js';
4
+ export * from './stores/TriggerStore.js';
5
+ export * from './utils/Decoders.js';
6
+ export * from './utils/Encoders.js';
7
+ export * from './utils/SerializationTypes.js';
8
+ export { ReStreamSocket, RPCResponseStruct, RPCStruct } from './websocket/SocketHelper.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,71 @@
1
+ import BinaryReader from '../utils/BinaryReader.js';
2
+ import BinaryWriter from '../utils/BinaryWriter.js';
3
+ import { VarInfoStruct, AppliablePartial, AppliableOnTopPartial } from '../utils/SerializationTypes.js';
4
+ export type AccessLevel = number;
5
+ export declare const SocketEventNameStoreUpdate = "storeupdate";
6
+ export declare enum StoreSubscriptionAction {
7
+ Subscribe = 0,
8
+ Unsubscribe = 1
9
+ }
10
+ export declare const StoreUpdateFull = 0;
11
+ export declare enum StoreUpdateMessageKind {
12
+ StoreUpdateFull = 0,
13
+ StoreUpdatePartial = 2
14
+ }
15
+ export declare const Subscribe = 0;
16
+ export declare const compoundKeyJoinerString = "%&";
17
+ export declare class PartialArray<V> {
18
+ dataSets: Map<number, V>;
19
+ whole: V[] | undefined;
20
+ private constructor();
21
+ static fromValues<V>(dataSets?: Map<number, V>, whole?: V[] | undefined): PartialArray<V>;
22
+ static deserialized<V>(r: BinaryReader, vi: VarInfoStruct | undefined): PartialArray<V>;
23
+ serialize(w: BinaryWriter, vi: VarInfoStruct | undefined): void;
24
+ private static _fieldInfo;
25
+ applyTo(por: V[]): (string | number)[][];
26
+ }
27
+ export declare class PartialMap<K extends string | number, V> {
28
+ dataSets: Map<K, V>;
29
+ dataDeletes: Set<K>;
30
+ whole: Map<K, V> | undefined;
31
+ private constructor();
32
+ static fromValues<K extends string | number, V>(dataSets?: Map<K, V>, dataDeletes?: Set<K>, whole?: Map<K, V> | undefined): PartialMap<K, V>;
33
+ static deserialized<K extends string | number, V>(r: BinaryReader, vi: VarInfoStruct | undefined): PartialMap<K, V>;
34
+ serialize(w: BinaryWriter, vi: VarInfoStruct | undefined): void;
35
+ private static _fieldInfo;
36
+ applyTo(por: Map<K, V>): (string | number)[][];
37
+ }
38
+ export declare class PartialModArray<V, P extends AppliablePartial<V> | AppliableOnTopPartial<V>> {
39
+ dataSets: Map<number, V>;
40
+ dataMods: Map<number, P>;
41
+ whole: V[] | undefined;
42
+ private constructor();
43
+ static fromValues<V, P extends AppliablePartial<V> | AppliableOnTopPartial<V>>(dataSets?: Map<number, V>, dataMods?: Map<number, P>, whole?: V[] | undefined): PartialModArray<V, P>;
44
+ static deserialized<V, P extends AppliablePartial<V> | AppliableOnTopPartial<V>>(r: BinaryReader, vi: VarInfoStruct | undefined): PartialModArray<V, P>;
45
+ serialize(w: BinaryWriter, vi: VarInfoStruct | undefined): void;
46
+ private static _fieldInfo;
47
+ applyTo(por: V[]): (string | number)[][];
48
+ }
49
+ export declare class PartialModMap<K extends string | number, V, P extends AppliablePartial<V> | AppliableOnTopPartial<V>> {
50
+ dataSets: Map<K, V>;
51
+ dataDeletes: Set<K>;
52
+ dataMods: Map<K, P>;
53
+ whole: Map<K, V> | undefined;
54
+ private constructor();
55
+ static fromValues<K extends string | number, V, P extends AppliablePartial<V> | AppliableOnTopPartial<V>>(dataSets?: Map<K, V>, dataDeletes?: Set<K>, dataMods?: Map<K, P>, whole?: Map<K, V> | undefined): PartialModMap<K, V, P>;
56
+ static deserialized<K extends string | number, V, P extends AppliablePartial<V> | AppliableOnTopPartial<V>>(r: BinaryReader, vi: VarInfoStruct | undefined): PartialModMap<K, V, P>;
57
+ serialize(w: BinaryWriter, vi: VarInfoStruct | undefined): void;
58
+ private static _fieldInfo;
59
+ applyTo(por: Map<K, V>): (string | number)[][];
60
+ }
61
+ export declare class PartialValue<V, P extends AppliablePartial<V> | AppliableOnTopPartial<V>> {
62
+ whole: V | undefined;
63
+ partial: P | undefined;
64
+ private constructor();
65
+ static fromValues<V, P extends AppliablePartial<V> | AppliableOnTopPartial<V>>(whole?: V | undefined, partial?: P | undefined): PartialValue<V, P>;
66
+ static deserialized<V, P extends AppliablePartial<V> | AppliableOnTopPartial<V>>(r: BinaryReader, vi: VarInfoStruct | undefined): PartialValue<V, P>;
67
+ serialize(w: BinaryWriter, vi: VarInfoStruct | undefined): void;
68
+ private static _fieldInfo;
69
+ applyOnTop(por: V): [V, (string | number)[][]];
70
+ }
71
+ //# sourceMappingURL=PackageRestream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageRestream.d.ts","sourceRoot":"","sources":["../../../src/restream/PackageRestream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,330 @@
1
+ // FILE IS GENERATED BY THE restream PACKAGE, DO NOT MODIFY DIRECTLY!
2
+ import * as ReStreamDecoders from '../utils/Decoders.js';
3
+ import * as ReStreamEncoders from '../utils/Encoders.js';
4
+ import { VarInfoPrimitive, VarInfoGenericParam, VarInfoPointer, VarInfoArray, VarInfoMap, SerializationType } from '../utils/SerializationTypes.js';
5
+ export const SocketEventNameStoreUpdate = "storeupdate";
6
+ export var StoreSubscriptionAction;
7
+ (function (StoreSubscriptionAction) {
8
+ StoreSubscriptionAction[StoreSubscriptionAction["Subscribe"] = 0] = "Subscribe";
9
+ StoreSubscriptionAction[StoreSubscriptionAction["Unsubscribe"] = 1] = "Unsubscribe";
10
+ })(StoreSubscriptionAction || (StoreSubscriptionAction = {}));
11
+ export const StoreUpdateFull = 0;
12
+ export var StoreUpdateMessageKind;
13
+ (function (StoreUpdateMessageKind) {
14
+ StoreUpdateMessageKind[StoreUpdateMessageKind["StoreUpdateFull"] = 0] = "StoreUpdateFull";
15
+ StoreUpdateMessageKind[StoreUpdateMessageKind["StoreUpdatePartial"] = 2] = "StoreUpdatePartial";
16
+ })(StoreUpdateMessageKind || (StoreUpdateMessageKind = {}));
17
+ export const Subscribe = 0;
18
+ export const compoundKeyJoinerString = "%&";
19
+ export class PartialArray {
20
+ dataSets;
21
+ whole;
22
+ constructor() { }
23
+ static fromValues(dataSets = new Map(), whole = []) {
24
+ const o = new PartialArray();
25
+ o.dataSets = dataSets;
26
+ o.whole = whole;
27
+ return o;
28
+ }
29
+ static deserialized(r, vi) {
30
+ const gm = new Map([
31
+ ["V", vi.genericTypes[0]],
32
+ ]);
33
+ const o = new PartialArray();
34
+ o.dataSets = ReStreamDecoders.deserializeValue(r, this._fieldInfo[0].varInfo.fillGenerics(gm));
35
+ o.whole = ReStreamDecoders.deserializeValue(r, this._fieldInfo[1].varInfo.fillGenerics(gm));
36
+ return o;
37
+ }
38
+ serialize(w, vi) {
39
+ const gm = new Map([
40
+ ["V", vi.genericTypes[0]],
41
+ ]);
42
+ ReStreamEncoders.serializeValue(this.dataSets, w, PartialArray._fieldInfo[0].varInfo.fillGenerics(gm));
43
+ ReStreamEncoders.serializeValue(this.whole, w, PartialArray._fieldInfo[1].varInfo.fillGenerics(gm));
44
+ }
45
+ static _fieldInfo = [
46
+ { name: "dataSets", fieldIdx: 0, varInfo: new VarInfoMap(true, new VarInfoPrimitive(SerializationType.Int64, "int"), new VarInfoGenericParam("V")) },
47
+ { name: "whole", fieldIdx: 1, varInfo: new VarInfoArray(false, new VarInfoGenericParam("V")) },
48
+ ];
49
+ applyTo(por) {
50
+ const ret = [];
51
+ if (this.whole) {
52
+ por.splice(0, por.length, ...this.whole);
53
+ ret.push([]);
54
+ }
55
+ for (const [k, v] of this.dataSets) {
56
+ por[k] = v;
57
+ if (!this.whole) {
58
+ ret.push([k]);
59
+ }
60
+ }
61
+ return ret;
62
+ }
63
+ }
64
+ export class PartialMap {
65
+ dataSets;
66
+ dataDeletes;
67
+ whole;
68
+ constructor() { }
69
+ static fromValues(dataSets = new Map(), dataDeletes = new Set(), whole = undefined) {
70
+ const o = new PartialMap();
71
+ o.dataSets = dataSets;
72
+ o.dataDeletes = dataDeletes;
73
+ o.whole = whole;
74
+ return o;
75
+ }
76
+ static deserialized(r, vi) {
77
+ const gm = new Map([
78
+ ["K", vi.genericTypes[0]],
79
+ ["V", vi.genericTypes[1]],
80
+ ]);
81
+ const o = new PartialMap();
82
+ o.dataSets = ReStreamDecoders.deserializeValue(r, this._fieldInfo[0].varInfo.fillGenerics(gm));
83
+ o.dataDeletes = ReStreamDecoders.deserializeValue(r, this._fieldInfo[1].varInfo.fillGenerics(gm));
84
+ o.whole = ReStreamDecoders.deserializeValue(r, this._fieldInfo[2].varInfo.fillGenerics(gm));
85
+ return o;
86
+ }
87
+ serialize(w, vi) {
88
+ const gm = new Map([
89
+ ["K", vi.genericTypes[0]],
90
+ ["V", vi.genericTypes[1]],
91
+ ]);
92
+ ReStreamEncoders.serializeValue(this.dataSets, w, PartialMap._fieldInfo[0].varInfo.fillGenerics(gm));
93
+ ReStreamEncoders.serializeValue(this.dataDeletes, w, PartialMap._fieldInfo[1].varInfo.fillGenerics(gm));
94
+ ReStreamEncoders.serializeValue(this.whole, w, PartialMap._fieldInfo[2].varInfo.fillGenerics(gm));
95
+ }
96
+ static _fieldInfo = [
97
+ { name: "dataSets", fieldIdx: 0, varInfo: new VarInfoMap(true, new VarInfoGenericParam("K"), new VarInfoGenericParam("V")) },
98
+ { name: "dataDeletes", fieldIdx: 1, varInfo: new VarInfoMap(true, new VarInfoGenericParam("K"), undefined) },
99
+ { name: "whole", fieldIdx: 2, varInfo: new VarInfoMap(false, new VarInfoGenericParam("K"), new VarInfoGenericParam("V")) },
100
+ ];
101
+ applyTo(por) {
102
+ const ret = [];
103
+ if (this.whole) {
104
+ por.clear();
105
+ for (const [k, v] of this.whole) {
106
+ por.set(k, v);
107
+ }
108
+ ret.push([]);
109
+ }
110
+ for (const [k, v] of this.dataSets) {
111
+ por.set(k, v);
112
+ if (!this.whole) {
113
+ ret.push([k]);
114
+ }
115
+ }
116
+ for (const k of this.dataDeletes) {
117
+ por.delete(k);
118
+ if (!this.whole) {
119
+ ret.push([k]);
120
+ }
121
+ }
122
+ return ret;
123
+ }
124
+ }
125
+ export class PartialModArray {
126
+ dataSets;
127
+ dataMods;
128
+ whole;
129
+ constructor() { }
130
+ static fromValues(dataSets = new Map(), dataMods = new Map(), whole = []) {
131
+ const o = new PartialModArray();
132
+ o.dataSets = dataSets;
133
+ o.dataMods = dataMods;
134
+ o.whole = whole;
135
+ return o;
136
+ }
137
+ static deserialized(r, vi) {
138
+ const gm = new Map([
139
+ ["V", vi.genericTypes[0]],
140
+ ["P", vi.genericTypes[1]],
141
+ ]);
142
+ const o = new PartialModArray();
143
+ o.dataSets = ReStreamDecoders.deserializeValue(r, this._fieldInfo[0].varInfo.fillGenerics(gm));
144
+ o.dataMods = ReStreamDecoders.deserializeValue(r, this._fieldInfo[1].varInfo.fillGenerics(gm));
145
+ o.whole = ReStreamDecoders.deserializeValue(r, this._fieldInfo[2].varInfo.fillGenerics(gm));
146
+ return o;
147
+ }
148
+ serialize(w, vi) {
149
+ const gm = new Map([
150
+ ["V", vi.genericTypes[0]],
151
+ ["P", vi.genericTypes[1]],
152
+ ]);
153
+ ReStreamEncoders.serializeValue(this.dataSets, w, PartialModArray._fieldInfo[0].varInfo.fillGenerics(gm));
154
+ ReStreamEncoders.serializeValue(this.dataMods, w, PartialModArray._fieldInfo[1].varInfo.fillGenerics(gm));
155
+ ReStreamEncoders.serializeValue(this.whole, w, PartialModArray._fieldInfo[2].varInfo.fillGenerics(gm));
156
+ }
157
+ static _fieldInfo = [
158
+ { name: "dataSets", fieldIdx: 0, varInfo: new VarInfoMap(true, new VarInfoPrimitive(SerializationType.Int64, "int"), new VarInfoGenericParam("V")) },
159
+ { name: "dataMods", fieldIdx: 1, varInfo: new VarInfoMap(true, new VarInfoPrimitive(SerializationType.Int64, "int"), new VarInfoGenericParam("P")) },
160
+ { name: "whole", fieldIdx: 2, varInfo: new VarInfoArray(false, new VarInfoGenericParam("V")) },
161
+ ];
162
+ applyTo(por) {
163
+ const ret = [];
164
+ if (this.whole) {
165
+ por.splice(0, por.length, ...this.whole);
166
+ ret.push([]);
167
+ }
168
+ for (const [k, v] of this.dataSets) {
169
+ por[k] = v;
170
+ if (!this.whole) {
171
+ ret.push([k]);
172
+ }
173
+ }
174
+ for (const [k, pv] of this.dataMods) {
175
+ let fs = [];
176
+ if (pv.applyTo) {
177
+ fs = pv.applyTo(por[k]);
178
+ }
179
+ if (pv.applyOnTop) {
180
+ let nv;
181
+ [nv, fs] = pv.applyOnTop(por[k]);
182
+ por[k] = nv;
183
+ }
184
+ if (!this.whole) {
185
+ for (const fss of fs) {
186
+ ret.push([k, ...fss]);
187
+ }
188
+ }
189
+ }
190
+ return ret;
191
+ }
192
+ }
193
+ export class PartialModMap {
194
+ dataSets;
195
+ dataDeletes;
196
+ dataMods;
197
+ whole;
198
+ constructor() { }
199
+ static fromValues(dataSets = new Map(), dataDeletes = new Set(), dataMods = new Map(), whole = undefined) {
200
+ const o = new PartialModMap();
201
+ o.dataSets = dataSets;
202
+ o.dataDeletes = dataDeletes;
203
+ o.dataMods = dataMods;
204
+ o.whole = whole;
205
+ return o;
206
+ }
207
+ static deserialized(r, vi) {
208
+ const gm = new Map([
209
+ ["K", vi.genericTypes[0]],
210
+ ["V", vi.genericTypes[1]],
211
+ ["P", vi.genericTypes[2]],
212
+ ]);
213
+ const o = new PartialModMap();
214
+ o.dataSets = ReStreamDecoders.deserializeValue(r, this._fieldInfo[0].varInfo.fillGenerics(gm));
215
+ o.dataDeletes = ReStreamDecoders.deserializeValue(r, this._fieldInfo[1].varInfo.fillGenerics(gm));
216
+ o.dataMods = ReStreamDecoders.deserializeValue(r, this._fieldInfo[2].varInfo.fillGenerics(gm));
217
+ o.whole = ReStreamDecoders.deserializeValue(r, this._fieldInfo[3].varInfo.fillGenerics(gm));
218
+ return o;
219
+ }
220
+ serialize(w, vi) {
221
+ const gm = new Map([
222
+ ["K", vi.genericTypes[0]],
223
+ ["V", vi.genericTypes[1]],
224
+ ["P", vi.genericTypes[2]],
225
+ ]);
226
+ ReStreamEncoders.serializeValue(this.dataSets, w, PartialModMap._fieldInfo[0].varInfo.fillGenerics(gm));
227
+ ReStreamEncoders.serializeValue(this.dataDeletes, w, PartialModMap._fieldInfo[1].varInfo.fillGenerics(gm));
228
+ ReStreamEncoders.serializeValue(this.dataMods, w, PartialModMap._fieldInfo[2].varInfo.fillGenerics(gm));
229
+ ReStreamEncoders.serializeValue(this.whole, w, PartialModMap._fieldInfo[3].varInfo.fillGenerics(gm));
230
+ }
231
+ static _fieldInfo = [
232
+ { name: "dataSets", fieldIdx: 0, varInfo: new VarInfoMap(true, new VarInfoGenericParam("K"), new VarInfoGenericParam("V")) },
233
+ { name: "dataDeletes", fieldIdx: 1, varInfo: new VarInfoMap(true, new VarInfoGenericParam("K"), undefined) },
234
+ { name: "dataMods", fieldIdx: 2, varInfo: new VarInfoMap(true, new VarInfoGenericParam("K"), new VarInfoGenericParam("P")) },
235
+ { name: "whole", fieldIdx: 3, varInfo: new VarInfoMap(false, new VarInfoGenericParam("K"), new VarInfoGenericParam("V")) },
236
+ ];
237
+ applyTo(por) {
238
+ const ret = [];
239
+ if (this.whole) {
240
+ por.clear();
241
+ for (const [k, v] of this.whole) {
242
+ por.set(k, v);
243
+ }
244
+ ret.push([]);
245
+ }
246
+ for (const [k, v] of this.dataSets) {
247
+ por.set(k, v);
248
+ if (!this.whole) {
249
+ ret.push([k]);
250
+ }
251
+ }
252
+ for (const k of this.dataDeletes) {
253
+ por.delete(k);
254
+ if (!this.whole) {
255
+ ret.push([k]);
256
+ }
257
+ }
258
+ for (const [k, pv] of this.dataMods) {
259
+ let fs = [];
260
+ if (pv.applyTo) {
261
+ fs = pv.applyTo(por.get(k));
262
+ }
263
+ if (pv.applyOnTop) {
264
+ let nv;
265
+ [nv, fs] = pv.applyOnTop(por.get(k));
266
+ por.set(k, nv);
267
+ }
268
+ if (!this.whole) {
269
+ for (const fss of fs) {
270
+ ret.push([k, ...fss]);
271
+ }
272
+ }
273
+ }
274
+ return ret;
275
+ }
276
+ }
277
+ export class PartialValue {
278
+ whole;
279
+ partial;
280
+ constructor() { }
281
+ static fromValues(whole = undefined, partial = undefined) {
282
+ const o = new PartialValue();
283
+ o.whole = whole;
284
+ o.partial = partial;
285
+ return o;
286
+ }
287
+ static deserialized(r, vi) {
288
+ const gm = new Map([
289
+ ["V", vi.genericTypes[0]],
290
+ ["P", vi.genericTypes[1]],
291
+ ]);
292
+ const o = new PartialValue();
293
+ o.whole = ReStreamDecoders.deserializeValue(r, this._fieldInfo[0].varInfo.fillGenerics(gm));
294
+ o.partial = ReStreamDecoders.deserializeValue(r, this._fieldInfo[1].varInfo.fillGenerics(gm));
295
+ return o;
296
+ }
297
+ serialize(w, vi) {
298
+ const gm = new Map([
299
+ ["V", vi.genericTypes[0]],
300
+ ["P", vi.genericTypes[1]],
301
+ ]);
302
+ ReStreamEncoders.serializeValue(this.whole, w, PartialValue._fieldInfo[0].varInfo.fillGenerics(gm));
303
+ ReStreamEncoders.serializeValue(this.partial, w, PartialValue._fieldInfo[1].varInfo.fillGenerics(gm));
304
+ }
305
+ static _fieldInfo = [
306
+ { name: "whole", fieldIdx: 0, varInfo: new VarInfoPointer(false, new VarInfoGenericParam("V")) },
307
+ { name: "partial", fieldIdx: 1, varInfo: new VarInfoPointer(false, new VarInfoGenericParam("P")) },
308
+ ];
309
+ applyOnTop(por) {
310
+ const ret = [por, []];
311
+ if (this.whole) {
312
+ ret[0] = this.whole;
313
+ ret[1].push([]);
314
+ }
315
+ if (this.partial) {
316
+ let fs = [];
317
+ if (this.partial.applyTo) {
318
+ fs = this.partial.applyTo(ret[0]);
319
+ }
320
+ if (this.partial.applyOnTop) {
321
+ [ret[0], fs] = this.partial.applyOnTop(ret[0]);
322
+ }
323
+ if (!this.whole) {
324
+ ret[1] = fs;
325
+ }
326
+ }
327
+ return ret;
328
+ }
329
+ }
330
+ //# sourceMappingURL=PackageRestream.js.map