@based/client 0.2.2 → 0.5.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 (97) hide show
  1. package/dist/Client.d.ts +4 -2
  2. package/dist/Client.js +6 -1
  3. package/dist/Client.js.map +1 -1
  4. package/dist/index.d.ts +21 -4
  5. package/dist/index.js +50 -4
  6. package/dist/index.js.map +1 -1
  7. package/dist/observable/index.d.ts +20 -0
  8. package/dist/observable/index.js +39 -0
  9. package/dist/observable/index.js.map +1 -0
  10. package/dist/observable/types.d.ts +1 -0
  11. package/dist/observable/types.js +17 -0
  12. package/dist/observable/types.js.map +1 -0
  13. package/dist/queue.d.ts +2 -2
  14. package/dist/queue.js.map +1 -1
  15. package/dist/request copy.d.ts +6 -0
  16. package/dist/request copy.js +47 -0
  17. package/dist/request copy.js.map +1 -0
  18. package/dist/token.d.ts +2 -1
  19. package/dist/token.js +8 -2
  20. package/dist/token.js.map +1 -1
  21. package/dist/track.d.ts +8 -0
  22. package/dist/track.js +71 -0
  23. package/dist/track.js.map +1 -0
  24. package/dist/types.d.ts +18 -2
  25. package/dist/types.js +2 -0
  26. package/dist/types.js.map +1 -1
  27. package/dist/websocket/index.js +55 -12
  28. package/dist/websocket/index.js.map +1 -1
  29. package/dist/websocket/types.d.ts +3 -2
  30. package/dist/websocket/types.js +4 -0
  31. package/dist/websocket/types.js.map +1 -1
  32. package/package.json +5 -5
  33. package/dist/ index.d.ts +0 -27
  34. package/dist/ index.js +0 -26
  35. package/dist/ index.js.map +0 -1
  36. package/dist/connection/ index.d.ts +0 -27
  37. package/dist/connection/ index.js +0 -26
  38. package/dist/connection/ index.js.map +0 -1
  39. package/dist/connection/emitter.d.ts +0 -9
  40. package/dist/connection/emitter.js +0 -38
  41. package/dist/connection/emitter.js.map +0 -1
  42. package/dist/connection/index.d.ts +0 -1
  43. package/dist/connection/index.js +0 -37
  44. package/dist/connection/index.js.map +0 -1
  45. package/dist/connection/messages.d.ts +0 -34
  46. package/dist/connection/messages.js +0 -2
  47. package/dist/connection/messages.js.map +0 -1
  48. package/dist/connection/socket.d.ts +0 -0
  49. package/dist/connection/socket.js +0 -1
  50. package/dist/connection/socket.js.map +0 -1
  51. package/dist/connection/websocket/browser.d.ts +0 -3
  52. package/dist/connection/websocket/browser.js +0 -61
  53. package/dist/connection/websocket/browser.js.map +0 -1
  54. package/dist/connection/websocket/index.d.ts +0 -4
  55. package/dist/connection/websocket/index.js +0 -59
  56. package/dist/connection/websocket/index.js.map +0 -1
  57. package/dist/connection/websocket/urlLoader.d.ts +0 -0
  58. package/dist/connection/websocket/urlLoader.js +0 -11
  59. package/dist/connection/websocket/urlLoader.js.map +0 -1
  60. package/dist/functionSubscriptions.d.ts +0 -0
  61. package/dist/functionSubscriptions.js +0 -1
  62. package/dist/functionSubscriptions.js.map +0 -1
  63. package/dist/get.d.ts +0 -0
  64. package/dist/get.js +0 -1
  65. package/dist/get.js.map +0 -1
  66. package/dist/messages.d.ts +0 -0
  67. package/dist/messages.js +0 -78
  68. package/dist/messages.js.map +0 -1
  69. package/dist/observable.d.ts +0 -9
  70. package/dist/observable.js +0 -311
  71. package/dist/observable.js.map +0 -1
  72. package/dist/requestTypes.d.ts +0 -14
  73. package/dist/requestTypes.js +0 -16
  74. package/dist/requestTypes.js.map +0 -1
  75. package/dist/subscription.d.ts +0 -0
  76. package/dist/subscription.js +0 -1
  77. package/dist/subscription.js.map +0 -1
  78. package/dist/subscriptions/deauthSubscriptions.d.ts +0 -0
  79. package/dist/subscriptions/deauthSubscriptions.js +0 -1
  80. package/dist/subscriptions/deauthSubscriptions.js.map +0 -1
  81. package/dist/subscriptions/incomingSubscriptionData.d.ts +0 -0
  82. package/dist/subscriptions/incomingSubscriptionData.js +0 -1
  83. package/dist/subscriptions/incomingSubscriptionData.js.map +0 -1
  84. package/dist/subscriptions/incomingSubscriptionDiffData.d.ts +0 -0
  85. package/dist/subscriptions/incomingSubscriptionDiffData.js +0 -1
  86. package/dist/subscriptions/incomingSubscriptionDiffData.js.map +0 -1
  87. package/dist/subscriptions/removeUnsubscribesFromQueue copy.d.ts +0 -2
  88. package/dist/subscriptions/removeUnsubscribesFromQueue copy.js +0 -14
  89. package/dist/subscriptions/removeUnsubscribesFromQueue copy.js.map +0 -1
  90. package/dist/subscriptions/unsubscribe.d.ts +0 -0
  91. package/dist/subscriptions/unsubscribe.js +0 -1
  92. package/dist/subscriptions/unsubscribe.js.map +0 -1
  93. package/dist/subscriptions.d.ts +0 -6
  94. package/dist/subscriptions.js.map +0 -1
  95. package/dist/websocket/browser.d.ts +0 -3
  96. package/dist/websocket/browser.js +0 -61
  97. package/dist/websocket/browser.js.map +0 -1
package/dist/Client.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  import { Connection } from './websocket/types';
2
- import { GenericObject, RequestMessage, SubscriptionMessage, FunctionCallMessage, Configuration } from './types';
2
+ import { GenericObject, RequestMessage, SubscriptionMessage, FunctionCallMessage, Configuration, TrackMessage, SendTokenOptions } from './types';
3
3
  import { Based } from './';
4
4
  export * from './types';
5
5
  export declare class BasedClient {
6
6
  based: Based;
7
7
  constructor(based: Based);
8
8
  token: string;
9
+ sendTokenOptions: SendTokenOptions;
9
10
  beingAuth: boolean;
10
11
  auth: ((x?: any) => void)[];
11
12
  subscriptions: {
@@ -38,11 +39,12 @@ export declare class BasedClient {
38
39
  reject: (err: Error) => void;
39
40
  };
40
41
  };
42
+ tracking: Set<string>;
41
43
  configuration: Configuration;
42
44
  connected: boolean;
43
45
  connection: Connection;
44
46
  subscriptionQueue: SubscriptionMessage[];
45
- queue: (RequestMessage | FunctionCallMessage)[];
47
+ queue: (RequestMessage | FunctionCallMessage | TrackMessage)[];
46
48
  drainInProgress: boolean;
47
49
  drainTimeout: ReturnType<typeof setTimeout>;
48
50
  idlePing: ReturnType<typeof setTimeout>;
package/dist/Client.js CHANGED
@@ -47,6 +47,11 @@ class BasedClient {
47
47
  if (this.based.listeners.reconnect) {
48
48
  this.based.listeners.reconnect.forEach((val) => val());
49
49
  }
50
+ if (this.tracking) {
51
+ for (const k of this.tracking) {
52
+ (0, queue_1.addToQueue)(this, [types_1.RequestTypes.Track, { t: k }]);
53
+ }
54
+ }
50
55
  }
51
56
  onOpen() {
52
57
  this.connected = true;
@@ -54,7 +59,7 @@ class BasedClient {
54
59
  this.based.listeners.connect.forEach((val) => val());
55
60
  }
56
61
  if (this.token) {
57
- (0, token_1.default)(this, this.token);
62
+ (0, token_1.default)(this, this.token, this.sendTokenOptions);
58
63
  }
59
64
  (0, subscriptions_1.sendAllSubscriptions)(this);
60
65
  (0, queue_1.drainQueue)(this);
@@ -1 +1 @@
1
- {"version":3,"file":"Client.js","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Client.js","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  import Emitter from './Emitter';
2
- import { GenericObject, Configuration, Query, DigestOptions, SetOptions, GetOptions, Copy } from './types';
2
+ import { GenericObject, Configuration, Query, DigestOptions, SetOptions, GetOptions, Copy, SendTokenOptions, TrackOpts } from './types';
3
3
  import { addSubscriber, generateSubscriptionId, addGetSubscriber, removeSubscriber } from './subscriptions';
4
4
  import { addRequest } from './request';
5
5
  import { BasedClient } from './Client';
6
+ import { genKey as generateTrackingKey } from './track';
7
+ import { Observable } from './observable';
6
8
  export * from './types';
7
- export { addSubscriber, addGetSubscriber, removeSubscriber, addRequest, generateSubscriptionId, BasedClient, };
9
+ export { generateTrackingKey, addSubscriber, addGetSubscriber, removeSubscriber, addRequest, generateSubscriptionId, BasedClient, Observable, };
8
10
  export declare interface Based {
9
11
  on(event: 'auth', listener: Function): this;
10
12
  on(event: 'connect', listener: Function): this;
@@ -20,12 +22,15 @@ export declare class Based extends Emitter {
20
22
  constructor(opts?: {
21
23
  url: string | (() => Promise<string>);
22
24
  });
23
- connect(url: string | (() => Promise<string>)): void;
25
+ connect(url?: string | (() => Promise<string>)): void;
26
+ private _url;
24
27
  opts: BasedOpts;
25
28
  disconnect(): void;
26
29
  observe(query: Query, onData: (data: any, checksum: number) => void, onErr?: (err: Error) => void): Promise<() => void>;
27
30
  observe(name: string, onData: (data: any, checksum: number) => void, onErr?: (err: Error) => void): Promise<() => void>;
28
31
  observe(name: string, payload: any, onData: (data: any, checksum: number) => void, onErr?: (err: Error) => void): Promise<() => void>;
32
+ createObsevable(query: Query): Observable;
33
+ createObsevable(name: string, payload?: any): Observable;
29
34
  observeSchema(name: string, onData: (data: any, checksum: number) => void, onErr?: (err: Error) => void): Promise<() => void>;
30
35
  observeSchema(onData: (data: any, checksum: number) => void, onErr?: (err: Error) => void): Promise<() => void>;
31
36
  get(query: GetOptions): Promise<GenericObject>;
@@ -41,6 +46,18 @@ export declare class Based extends Emitter {
41
46
  copy(payload: Copy): Promise<{
42
47
  ids: string[];
43
48
  }>;
49
+ track(type: string, params?: {
50
+ [key: string]: number | string | boolean;
51
+ }): void;
52
+ clearAnalytics(type: string, params?: {
53
+ [key: string]: number | string | boolean;
54
+ }): void;
55
+ untrack(type: string, params?: {
56
+ [key: string]: number | string | boolean;
57
+ }): void;
58
+ event(type: string, params?: {
59
+ [key: string]: number | string | boolean;
60
+ }, opts?: TrackOpts): void;
44
61
  delete(payload: {
45
62
  $id: string;
46
63
  db?: string;
@@ -56,7 +73,7 @@ export declare class Based extends Emitter {
56
73
  db?: string;
57
74
  }[]): Promise<GenericObject>;
58
75
  getToken(): string;
59
- auth(token: string | false): Promise<false | string | number>;
76
+ auth(token: string | false, options?: SendTokenOptions): Promise<false | string | number>;
60
77
  }
61
78
  export declare type BasedOpts = {
62
79
  env?: string;
package/dist/index.js CHANGED
@@ -6,6 +6,18 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
6
6
  if (k2 === undefined) k2 = k;
7
7
  o[k2] = m[k];
8
8
  }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
9
21
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
22
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
23
  };
@@ -13,7 +25,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
25
  return (mod && mod.__esModule) ? mod : { "default": mod };
14
26
  };
15
27
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.Based = exports.BasedClient = exports.generateSubscriptionId = exports.addRequest = exports.removeSubscriber = exports.addGetSubscriber = exports.addSubscriber = void 0;
28
+ exports.Based = exports.Observable = exports.BasedClient = exports.generateSubscriptionId = exports.addRequest = exports.removeSubscriber = exports.addGetSubscriber = exports.addSubscriber = exports.generateTrackingKey = void 0;
17
29
  const Emitter_1 = __importDefault(require("./Emitter"));
18
30
  const websocket_1 = __importDefault(require("./websocket"));
19
31
  const types_1 = require("./types");
@@ -32,6 +44,10 @@ const findPrefix_1 = __importDefault(require("./findPrefix"));
32
44
  const createError_1 = __importDefault(require("./createError"));
33
45
  const hash_1 = require("@saulx/hash");
34
46
  const token_1 = __importDefault(require("./token"));
47
+ const track_1 = __importStar(require("./track"));
48
+ Object.defineProperty(exports, "generateTrackingKey", { enumerable: true, get: function () { return track_1.genKey; } });
49
+ const observable_1 = require("./observable");
50
+ Object.defineProperty(exports, "Observable", { enumerable: true, get: function () { return observable_1.Observable; } });
35
51
  __exportStar(require("./types"), exports);
36
52
  class Based extends Emitter_1.default {
37
53
  constructor(opts) {
@@ -46,11 +62,20 @@ class Based extends Emitter_1.default {
46
62
  }
47
63
  }
48
64
  connect(url) {
49
- this.client.connection = (0, websocket_1.default)(this.client, url);
65
+ if (!url && this._url) {
66
+ if (!this.client.connection) {
67
+ this.client.connection = (0, websocket_1.default)(this.client, this._url);
68
+ }
69
+ }
70
+ else {
71
+ this._url = url;
72
+ this.client.connection = (0, websocket_1.default)(this.client, url);
73
+ }
50
74
  }
51
75
  disconnect() {
52
76
  if (this.client.connection) {
53
77
  this.client.connection.disconnected = true;
78
+ this.client.connection.destroy();
54
79
  if (this.client.connection.ws) {
55
80
  this.client.connection.ws.close();
56
81
  }
@@ -99,6 +124,14 @@ class Based extends Emitter_1.default {
99
124
  });
100
125
  }
101
126
  }
127
+ createObsevable(a, payload) {
128
+ if (typeof a === 'string') {
129
+ return new observable_1.Observable(this.client, a, payload);
130
+ }
131
+ else {
132
+ return new observable_1.Observable(this.client, a);
133
+ }
134
+ }
102
135
  observeSchema(a, b, c) {
103
136
  return new Promise((resolve, reject) => {
104
137
  const db = typeof a === 'string' ? a : 'default';
@@ -183,6 +216,18 @@ class Based extends Emitter_1.default {
183
216
  (0, request_1.addRequest)(this.client, types_1.RequestTypes.Copy, payload, resolve, reject);
184
217
  });
185
218
  }
219
+ track(type, params) {
220
+ (0, track_1.default)(this.client, type, params);
221
+ }
222
+ clearAnalytics(type, params) {
223
+ (0, track_1.default)(this.client, type, params, false, false, undefined, true);
224
+ }
225
+ untrack(type, params) {
226
+ (0, track_1.default)(this.client, type, params, true);
227
+ }
228
+ event(type, params, opts) {
229
+ (0, track_1.default)(this.client, type, params, false, true, opts);
230
+ }
186
231
  delete(payload) {
187
232
  return new Promise((resolve, reject) => {
188
233
  (0, request_1.addRequest)(this.client, types_1.RequestTypes.Delete, payload, resolve, reject);
@@ -206,13 +251,13 @@ class Based extends Emitter_1.default {
206
251
  return this.client.token;
207
252
  }
208
253
  // allow localstorage
209
- auth(token) {
254
+ auth(token, options) {
210
255
  return new Promise((resolve, reject) => {
211
256
  this.client.auth.push(resolve);
212
257
  if ((token && token !== this.client.token) ||
213
258
  (token === false && this.client.token)) {
214
259
  if (typeof token === 'string') {
215
- (0, token_1.default)(this.client, token);
260
+ (0, token_1.default)(this.client, token, options);
216
261
  }
217
262
  else {
218
263
  // this is very important
@@ -225,6 +270,7 @@ class Based extends Emitter_1.default {
225
270
  }
226
271
  }
227
272
  exports.Based = Based;
273
+ // auth as admin // auth as based
228
274
  const addParamsToUrl = (url, params) => {
229
275
  if (params) {
230
276
  let firstChecked;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { BasedClient } from '..';
2
+ import { Query } from '../types';
3
+ declare class Subscription {
4
+ private subscriberId;
5
+ private client;
6
+ constructor(client: BasedClient, subscriberId: number);
7
+ unsubscribe(): void;
8
+ closed: boolean;
9
+ }
10
+ declare type UpdateCallback = (value: any, checksum?: number) => void;
11
+ export declare class Observable {
12
+ private client;
13
+ private subId;
14
+ private name;
15
+ private payload;
16
+ constructor(client: BasedClient, name: string, payload?: any);
17
+ constructor(client: BasedClient, query: Query);
18
+ subscribe(onNext: UpdateCallback, onError?: (err: Error) => void, onComplete?: (x?: any) => void): Subscription;
19
+ }
20
+ export {};
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Observable = void 0;
4
+ const subscriptions_1 = require("../subscriptions");
5
+ class Subscription {
6
+ constructor(client, subscriberId) {
7
+ this.closed = false;
8
+ this.client = client;
9
+ this.subscriberId = subscriberId;
10
+ }
11
+ unsubscribe() {
12
+ this.closed = true;
13
+ (0, subscriptions_1.removeSubscriber)(this.client, this.subscriberId);
14
+ }
15
+ }
16
+ class Observable {
17
+ constructor(client, a, b) {
18
+ this.client = client;
19
+ this.subId =
20
+ typeof a === 'string'
21
+ ? (0, subscriptions_1.generateSubscriptionId)(b, a)
22
+ : (0, subscriptions_1.generateSubscriptionId)(a);
23
+ this.name = typeof a === 'string' ? a : null;
24
+ this.payload = typeof a === 'string' ? b : a;
25
+ }
26
+ subscribe(onNext, onError, onComplete) {
27
+ const [, subscriberId] = (0, subscriptions_1.addSubscriber)(this.client, this.payload, onNext, (err) => {
28
+ if (err) {
29
+ console.error(err);
30
+ if (onError) {
31
+ onError(err);
32
+ }
33
+ }
34
+ }, onError, this.subId, this.name);
35
+ return new Subscription(this.client, subscriberId);
36
+ }
37
+ }
38
+ exports.Observable = Observable;
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observable/index.ts"],"names":[],"mappings":";;;AAIA,oDAIyB;AAEzB,MAAM,YAAY;IAGhB,YAAY,MAAmB,EAAE,YAAoB;QAU9C,WAAM,GAAY,KAAK,CAAA;QAT5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAA,gCAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IAClD,CAAC;CAGF;AAID,MAAa,UAAU;IAarB,YAAY,MAAmB,EAAE,CAAiB,EAAE,CAAO;QACzD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK;YACR,OAAO,CAAC,KAAK,QAAQ;gBACnB,CAAC,CAAC,IAAA,sCAAsB,EAAC,CAAC,EAAE,CAAC,CAAC;gBAC9B,CAAC,CAAC,IAAA,sCAAsB,EAAC,CAAC,CAAC,CAAA;QAE/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAE5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,SAAS,CACP,MAAsB,EACtB,OAA8B,EAC9B,UAA8B;QAE9B,MAAM,CAAC,EAAE,YAAY,CAAC,GAAG,IAAA,6BAAa,EACpC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,MAAM,EACN,CAAC,GAAG,EAAE,EAAE;YACN,IAAI,GAAG,EAAE;gBACP,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAClB,IAAI,OAAO,EAAE;oBACX,OAAO,CAAC,GAAG,CAAC,CAAA;iBACb;aACF;QACH,CAAC,EACD,OAAO,EACP,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,IAAI,CACV,CAAA;QACD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACpD,CAAC;CAUF;AAzDD,gCAyDC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class Subscription {
4
+ unsubscribe() { }
5
+ get closed() {
6
+ return false;
7
+ }
8
+ }
9
+ class Observable {
10
+ constructor(client, a, b) {
11
+ this.client = client;
12
+ }
13
+ subscribe(a, b, c) {
14
+ return new Subscription();
15
+ }
16
+ }
17
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/observable/types.ts"],"names":[],"mappings":";;AAIA,MAAM,YAAY;IAChB,WAAW,KAAI,CAAC;IAChB,IAAI,MAAM;QACR,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAID,MAAM,UAAU;IAOd,YAAY,MAAmB,EAAE,CAAiB,EAAE,CAAO;QACzD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAYD,SAAS,CAAC,CAAsB,EAAE,CAAY,EAAE,CAAY;QAC1D,OAAO,IAAI,YAAY,EAAE,CAAA;IAC3B,CAAC;CAUF"}
package/dist/queue.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { BasedClient } from '.';
1
+ import { BasedClient, TrackMessage } from '.';
2
2
  import { Message } from './types';
3
- export declare const addToQueue: (client: BasedClient, msg: Message) => void;
3
+ export declare const addToQueue: (client: BasedClient, msg: Message | TrackMessage) => void;
4
4
  export declare const drainQueue: (client: BasedClient) => void;
5
5
  export declare const stopDrainQueue: (client: BasedClient) => void;
package/dist/queue.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":";;;;;;AACA,mCAA+C;AAC/C,gEAAuC;AAEhC,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,GAAY,EAAE,EAAE;IAC9D,IACE,GAAG,CAAC,CAAC,CAAC,KAAK,oBAAY,CAAC,WAAW;QACnC,GAAG,CAAC,CAAC,CAAC,KAAK,oBAAY,CAAC,YAAY;QACpC,GAAG,CAAC,CAAC,CAAC,KAAK,oBAAY,CAAC,oBAAoB;QAC5C,GAAG,CAAC,CAAC,CAAC,KAAK,oBAAY,CAAC,eAAe,EACvC;QACA,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KACnC;SAAM;QACL,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KACvB;IACD,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;QAC/C,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAA;KACnB;AACH,CAAC,CAAA;AAdY,QAAA,UAAU,cActB;AAEM,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,EAAE;IAChD,IACE,MAAM,CAAC,SAAS;QAChB,CAAC,MAAM,CAAC,eAAe;QACvB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,EACxD;QACA,MAAM,CAAC,eAAe,GAAG,IAAI,CAAA;QAC7B,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,MAAM,CAAC,eAAe,GAAG,KAAK,CAAA;YAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBAC1D,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;gBAC5D,MAAM,CAAC,KAAK,GAAG,EAAE,CAAA;gBACjB,MAAM,CAAC,iBAAiB,GAAG,EAAE,CAAA;gBAC7B,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;gBAChD,IAAA,qBAAW,EAAC,MAAM,CAAC,CAAA;aACpB;QACH,CAAC,EAAE,CAAC,CAAC,CAAA;KACN;AACH,CAAC,CAAA;AAlBY,QAAA,UAAU,cAkBtB;AAEM,MAAM,cAAc,GAAG,CAAC,MAAmB,EAAE,EAAE;IACpD,IAAI,MAAM,CAAC,eAAe,EAAE;QAC1B,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACjC,MAAM,CAAC,eAAe,GAAG,KAAK,CAAA;KAC/B;AACH,CAAC,CAAA;AALY,QAAA,cAAc,kBAK1B"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":";;;;;;AACA,mCAA+C;AAC/C,gEAAuC;AAEhC,MAAM,UAAU,GAAG,CACxB,MAAmB,EACnB,GAA2B,EAC3B,EAAE;IACF,IACE,GAAG,CAAC,CAAC,CAAC,KAAK,oBAAY,CAAC,WAAW;QACnC,GAAG,CAAC,CAAC,CAAC,KAAK,oBAAY,CAAC,YAAY;QACpC,GAAG,CAAC,CAAC,CAAC,KAAK,oBAAY,CAAC,oBAAoB;QAC5C,GAAG,CAAC,CAAC,CAAC,KAAK,oBAAY,CAAC,eAAe,EACvC;QACA,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KACnC;SAAM;QACL,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KACvB;IACD,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;QAC/C,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAA;KACnB;AACH,CAAC,CAAA;AAjBY,QAAA,UAAU,cAiBtB;AAEM,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,EAAE;IAChD,IACE,MAAM,CAAC,SAAS;QAChB,CAAC,MAAM,CAAC,eAAe;QACvB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,EACxD;QACA,MAAM,CAAC,eAAe,GAAG,IAAI,CAAA;QAC7B,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,MAAM,CAAC,eAAe,GAAG,KAAK,CAAA;YAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBAC1D,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;gBAC5D,MAAM,CAAC,KAAK,GAAG,EAAE,CAAA;gBACjB,MAAM,CAAC,iBAAiB,GAAG,EAAE,CAAA;gBAC7B,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;gBAChD,IAAA,qBAAW,EAAC,MAAM,CAAC,CAAA;aACpB;QACH,CAAC,EAAE,CAAC,CAAC,CAAA;KACN;AACH,CAAC,CAAA;AAlBY,QAAA,UAAU,cAkBtB;AAEM,MAAM,cAAc,GAAG,CAAC,MAAmB,EAAE,EAAE;IACpD,IAAI,MAAM,CAAC,eAAe,EAAE;QAC1B,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACjC,MAAM,CAAC,eAAe,GAAG,KAAK,CAAA;KAC/B;AACH,CAAC,CAAA;AALY,QAAA,cAAc,kBAK1B"}
@@ -0,0 +1,6 @@
1
+ import { BasedClient } from '.';
2
+ import { RequestData, RequestTypes } from './types';
3
+ export declare const addRequest: (client: BasedClient, type: RequestTypes.Set | RequestTypes.Get | RequestTypes.Configuration | RequestTypes.GetConfiguration | RequestTypes.Delete | RequestTypes.Copy | RequestTypes.Digest | RequestTypes.Call, payload: any, resolve: (val?: any) => void, reject: (err: Error) => void, name?: string) => void;
4
+ export declare const abortRequest: () => void;
5
+ export declare const cleanUpRequests: () => void;
6
+ export declare const incomingRequest: (client: BasedClient, data: RequestData) => void;
@@ -0,0 +1,47 @@
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.incomingRequest = exports.cleanUpRequests = exports.abortRequest = exports.addRequest = void 0;
7
+ const queue_1 = require("./queue");
8
+ const types_1 = require("./types");
9
+ const createError_1 = __importDefault(require("./createError"));
10
+ let requestIdCnt = 0;
11
+ const addRequest = (client, type, payload, resolve, reject, name) => {
12
+ const id = ++requestIdCnt;
13
+ client.requestCallbacks[id] = {
14
+ resolve,
15
+ reject,
16
+ };
17
+ if (type === types_1.RequestTypes.Call) {
18
+ (0, queue_1.addToQueue)(client, [type, name, id, payload]);
19
+ }
20
+ else {
21
+ (0, queue_1.addToQueue)(client, [type, id, payload]);
22
+ }
23
+ };
24
+ exports.addRequest = addRequest;
25
+ const abortRequest = () => {
26
+ // if its still in queue remove from queue
27
+ };
28
+ exports.abortRequest = abortRequest;
29
+ const cleanUpRequests = () => {
30
+ // on re-connect and not in queue anymore - need to remove in that case
31
+ };
32
+ exports.cleanUpRequests = cleanUpRequests;
33
+ const incomingRequest = (client, data) => {
34
+ const [, reqId, payload, err] = data;
35
+ const cb = client.requestCallbacks[reqId];
36
+ if (cb) {
37
+ delete client.requestCallbacks[reqId];
38
+ if (err) {
39
+ cb.reject((0, createError_1.default)(err));
40
+ }
41
+ else {
42
+ cb.resolve(payload);
43
+ }
44
+ }
45
+ };
46
+ exports.incomingRequest = incomingRequest;
47
+ //# sourceMappingURL=request%20copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request copy.js","sourceRoot":"","sources":["../src/request copy.ts"],"names":[],"mappings":";;;;;;AACA,mCAAoC;AACpC,mCAAmD;AACnD,gEAAuC;AAEvC,IAAI,YAAY,GAAG,CAAC,CAAA;AAEb,MAAM,UAAU,GAAG,CACxB,MAAmB,EACnB,IAQqB,EACrB,OAAY,EACZ,OAA4B,EAC5B,MAA4B,EAC5B,IAAa,EACb,EAAE;IACF,MAAM,EAAE,GAAG,EAAE,YAAY,CAAA;IACzB,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG;QAC5B,OAAO;QACP,MAAM;KACP,CAAA;IAED,IAAI,IAAI,KAAK,oBAAY,CAAC,IAAI,EAAE;QAC9B,IAAA,kBAAU,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;KAC9C;SAAM;QACL,IAAA,kBAAU,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;KACxC;AACH,CAAC,CAAA;AA3BY,QAAA,UAAU,cA2BtB;AAEM,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,0CAA0C;AAC5C,CAAC,CAAA;AAFY,QAAA,YAAY,gBAExB;AAEM,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,uEAAuE;AACzE,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B;AAEM,MAAM,eAAe,GAAG,CAAC,MAAmB,EAAE,IAAiB,EAAE,EAAE;IACxE,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;IAEpC,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACzC,IAAI,EAAE,EAAE;QACN,OAAO,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,GAAG,EAAE;YACP,EAAE,CAAC,MAAM,CAAC,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC,CAAA;SAC5B;aAAM;YACL,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;SACpB;KACF;AACH,CAAC,CAAA;AAZY,QAAA,eAAe,mBAY3B"}
package/dist/token.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import { BasedClient } from '.';
2
- declare const sendToken: (client: BasedClient, token?: string) => void;
2
+ import { SendTokenOptions } from './types';
3
+ declare const sendToken: (client: BasedClient, token?: string, options?: SendTokenOptions) => void;
3
4
  export default sendToken;
package/dist/token.js CHANGED
@@ -6,10 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const types_1 = require("./types");
7
7
  const idleTimeout_1 = __importDefault(require("./idleTimeout"));
8
8
  const subscriptions_1 = require("./subscriptions");
9
- const sendToken = (client, token) => {
9
+ const notUndefinedOrNull = (v) => typeof v !== 'undefined' && v !== null;
10
+ const sendToken = (client, token, options) => {
10
11
  client.beingAuth = true;
11
12
  if (token) {
12
13
  client.token = token;
14
+ client.sendTokenOptions = options;
13
15
  }
14
16
  else {
15
17
  for (const id in client.cache) {
@@ -18,9 +20,13 @@ const sendToken = (client, token) => {
18
20
  }
19
21
  }
20
22
  delete client.token;
23
+ delete client.sendTokenOptions;
21
24
  }
22
25
  if (client.connected) {
23
- client.connection.ws.send(JSON.stringify(token ? [types_1.RequestTypes.Token, token] : [types_1.RequestTypes.Token]));
26
+ const message = token
27
+ ? [types_1.RequestTypes.Token, token, options].filter(notUndefinedOrNull)
28
+ : [types_1.RequestTypes.Token];
29
+ client.connection.ws.send(JSON.stringify(message));
24
30
  (0, idleTimeout_1.default)(client);
25
31
  (0, subscriptions_1.sendAllSubscriptions)(client, true);
26
32
  }
package/dist/token.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":";;;;;AACA,mCAAsC;AACtC,gEAAuC;AAEvC,mDAAsD;AAEtD,MAAM,SAAS,GAAG,CAAC,MAAmB,EAAE,KAAc,EAAE,EAAE;IACxD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,IAAI,KAAK,EAAE;QACT,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;KACrB;SAAM;QACL,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE;gBAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;aACxB;SACF;QACD,OAAO,MAAM,CAAC,KAAK,CAAA;KACpB;IACD,IAAI,MAAM,CAAC,SAAS,EAAE;QACpB,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CACvB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAY,CAAC,KAAK,CAAC,CAAC,CAC3E,CAAA;QACD,IAAA,qBAAW,EAAC,MAAM,CAAC,CAAA;QACnB,IAAA,oCAAoB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;KACnC;AACH,CAAC,CAAA;AAED,kBAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":";;;;;AACA,mCAAwD;AACxD,gEAAuC;AAEvC,mDAAsD;AAEtD,MAAM,kBAAkB,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,CAAA;AAE7E,MAAM,SAAS,GAAG,CAChB,MAAmB,EACnB,KAAc,EACd,OAA0B,EAC1B,EAAE;IACF,MAAM,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,IAAI,KAAK,EAAE;QACT,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QACpB,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAA;KAClC;SAAM;QACL,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE;gBAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;aACxB;SACF;QACD,OAAO,MAAM,CAAC,KAAK,CAAA;QACnB,OAAO,MAAM,CAAC,gBAAgB,CAAA;KAC/B;IACD,IAAI,MAAM,CAAC,SAAS,EAAE;QACpB,MAAM,OAAO,GAAG,KAAK;YACnB,CAAC,CAAC,CAAC,oBAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC;YACjE,CAAC,CAAC,CAAC,oBAAY,CAAC,KAAK,CAAC,CAAA;QACxB,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;QAClD,IAAA,qBAAW,EAAC,MAAM,CAAC,CAAA;QACnB,IAAA,oCAAoB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;KACnC;AACH,CAAC,CAAA;AAED,kBAAe,SAAS,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { BasedClient, TrackOpts } from '.';
2
+ export declare const genKey: (type: string, params?: {
3
+ [key: string]: string | number | boolean;
4
+ }) => string;
5
+ declare const _default: (client: BasedClient, type: string, params?: {
6
+ [key: string]: string | number | boolean;
7
+ }, untrack?: boolean, event?: boolean, opts?: TrackOpts, del?: boolean) => void;
8
+ export default _default;
package/dist/track.js ADDED
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.genKey = void 0;
4
+ const queue_1 = require("./queue");
5
+ const types_1 = require("./types");
6
+ const hash_1 = require("@saulx/hash");
7
+ const notUnique = new Set();
8
+ const isUnique = (x) => {
9
+ if (typeof window !== 'undefined') {
10
+ if (notUnique.has(x)) {
11
+ return false;
12
+ }
13
+ notUnique.add(x);
14
+ try {
15
+ const name = '_ba:' + (0, hash_1.hashCompact)(x);
16
+ if (localStorage.getItem(name)) {
17
+ return false;
18
+ }
19
+ localStorage.setItem(name, '1');
20
+ return true;
21
+ }
22
+ catch (err) {
23
+ return false;
24
+ }
25
+ }
26
+ return false;
27
+ };
28
+ const genKey = (type, params) => {
29
+ if (params) {
30
+ let str = `${type}`;
31
+ const keys = Object.keys(params).sort();
32
+ for (const k of keys) {
33
+ str += '_' + k + '_' + params[k];
34
+ }
35
+ return str;
36
+ }
37
+ else {
38
+ return type;
39
+ }
40
+ };
41
+ exports.genKey = genKey;
42
+ exports.default = (client, type, params, untrack, event, opts, del) => {
43
+ const k = (0, exports.genKey)(type, params);
44
+ const payload = { t: k };
45
+ if (del) {
46
+ payload.r = 1;
47
+ }
48
+ if (event) {
49
+ payload.e = 1;
50
+ if (opts) {
51
+ payload.o = opts;
52
+ }
53
+ }
54
+ if (untrack) {
55
+ payload.s = 1;
56
+ client.tracking.delete(k);
57
+ }
58
+ else {
59
+ if (!event) {
60
+ if (!client.tracking) {
61
+ client.tracking = new Set();
62
+ }
63
+ client.tracking.add(k);
64
+ }
65
+ if (isUnique(k)) {
66
+ payload.u = 1;
67
+ }
68
+ }
69
+ (0, queue_1.addToQueue)(client, [types_1.RequestTypes.Track, payload]);
70
+ };
71
+ //# sourceMappingURL=track.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track.js","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":";;;AACA,mCAAoC;AACpC,mCAAsC;AACtC,sCAAyC;AAEzC,MAAM,SAAS,GAAgB,IAAI,GAAG,EAAE,CAAA;AAExC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAW,EAAE;IACtC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACpB,OAAO,KAAK,CAAA;SACb;QACD,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAChB,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,GAAG,IAAA,kBAAW,EAAC,CAAC,CAAC,CAAA;YACpC,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC9B,OAAO,KAAK,CAAA;aACb;YACD,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YAC/B,OAAO,IAAI,CAAA;SACZ;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,KAAK,CAAA;SACb;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAEM,MAAM,MAAM,GAAG,CACpB,IAAY,EACZ,MAAqD,EAC7C,EAAE;IACV,IAAI,MAAM,EAAE;QACV,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,CAAA;QACnB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QACvC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;YACpB,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;SACjC;QACD,OAAO,GAAG,CAAA;KACX;SAAM;QACL,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA;AAdY,QAAA,MAAM,UAclB;AAED,kBAAe,CACb,MAAmB,EACnB,IAAY,EACZ,MAAqD,EACrD,OAAiB,EACjB,KAAe,EACf,IAAgB,EAChB,GAAa,EACb,EAAE;IACF,MAAM,CAAC,GAAG,IAAA,cAAM,EAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC9B,MAAM,OAAO,GAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACtC,IAAI,GAAG,EAAE;QACP,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;KACd;IACD,IAAI,KAAK,EAAE;QACT,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;QACb,IAAI,IAAI,EAAE;YACR,OAAO,CAAC,CAAC,GAAG,IAAI,CAAA;SACjB;KACF;IACD,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;QACb,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KAC1B;SAAM;QACL,IAAI,CAAC,KAAK,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACpB,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;aAC5B;YACD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SACvB;QAED,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;YACf,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;SACd;KACF;IACD,IAAA,kBAAU,EAAC,MAAM,EAAE,CAAC,oBAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;AACnD,CAAC,CAAA"}
package/dist/types.d.ts CHANGED
@@ -17,7 +17,8 @@ export declare enum RequestTypes {
17
17
  Delete = 11,
18
18
  Copy = 12,
19
19
  Digest = 13,
20
- Token = 14
20
+ Token = 14,
21
+ Track = 15
21
22
  }
22
23
  export declare type Configuration = {
23
24
  schema: {
@@ -45,12 +46,13 @@ export declare type ErrorObject = {
45
46
  auth?: boolean;
46
47
  };
47
48
  export declare type FunctionCallMessage = [RequestTypes.Call, string, number, any?];
49
+ export declare type TrackMessage = [RequestTypes.Track, TrackPayload];
48
50
  export declare type RequestMessage<T = GenericObject> = [
49
51
  (RequestTypes.Set | RequestTypes.Get | RequestTypes.Configuration | RequestTypes.GetConfiguration | RequestTypes.Delete | RequestTypes.Copy | RequestTypes.Digest),
50
52
  number,
51
53
  T
52
54
  ];
53
- export declare type TokenMessage = [RequestTypes.Token, string?];
55
+ export declare type TokenMessage = [RequestTypes.Token, string?, boolean?];
54
56
  export declare type SubscribeMessage = [
55
57
  RequestTypes.Subscription,
56
58
  number,
@@ -101,3 +103,17 @@ export declare type RequestData = [
101
103
  ];
102
104
  export declare type AuthorizedData = [RequestTypes.Token, number[], boolean?];
103
105
  export declare type ResponseData = SubscriptionDiffData | SubscriptionData | RequestData | AuthorizedData;
106
+ export declare type TrackPayload = {
107
+ t: string;
108
+ u?: 1;
109
+ s?: 1;
110
+ e?: 1;
111
+ r?: 1;
112
+ o?: TrackOpts;
113
+ };
114
+ export declare type TrackOpts = {
115
+ amount?: number;
116
+ };
117
+ export declare type SendTokenOptions = {
118
+ isBasedUser?: boolean;
119
+ };