@nanolink/operational-model 0.1.0 → 0.1.2

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 (119) hide show
  1. package/README.md +27 -2
  2. package/dist/aerospike/impl/closedLink.d.ts +17 -0
  3. package/dist/aerospike/impl/closedLink.js +56 -0
  4. package/dist/aerospike/impl/closedLink.js.map +1 -0
  5. package/dist/aerospike/impl/common.d.ts +16 -0
  6. package/dist/aerospike/impl/common.js +120 -0
  7. package/dist/aerospike/impl/common.js.map +1 -0
  8. package/dist/aerospike/impl/contained.d.ts +14 -0
  9. package/dist/aerospike/impl/contained.js +44 -0
  10. package/dist/aerospike/impl/contained.js.map +1 -0
  11. package/dist/aerospike/impl/deltaRssi.d.ts +12 -0
  12. package/dist/aerospike/impl/deltaRssi.js +38 -0
  13. package/dist/aerospike/impl/deltaRssi.js.map +1 -0
  14. package/dist/aerospike/impl/factory.d.ts +28 -0
  15. package/dist/aerospike/impl/factory.js +27 -0
  16. package/dist/aerospike/impl/factory.js.map +1 -0
  17. package/dist/aerospike/impl/gps.d.ts +16 -0
  18. package/dist/aerospike/impl/gps.js +45 -0
  19. package/dist/aerospike/impl/gps.js.map +1 -0
  20. package/dist/aerospike/impl/index.d.ts +11 -0
  21. package/dist/aerospike/impl/index.js +12 -0
  22. package/dist/aerospike/impl/index.js.map +1 -0
  23. package/dist/aerospike/impl/rssi.d.ts +14 -0
  24. package/dist/aerospike/impl/rssi.js +42 -0
  25. package/dist/aerospike/impl/rssi.js.map +1 -0
  26. package/dist/aerospike/impl/stateLink.d.ts +13 -0
  27. package/dist/aerospike/impl/stateLink.js +42 -0
  28. package/dist/aerospike/impl/stateLink.js.map +1 -0
  29. package/dist/aerospike/impl/stateTrip.d.ts +9 -0
  30. package/dist/aerospike/impl/stateTrip.js +42 -0
  31. package/dist/aerospike/impl/stateTrip.js.map +1 -0
  32. package/dist/aerospike/impl/states.d.ts +10 -0
  33. package/dist/aerospike/impl/states.js +68 -0
  34. package/dist/aerospike/impl/states.js.map +1 -0
  35. package/dist/aerospike/impl/transmitterPosition.d.ts +9 -0
  36. package/dist/aerospike/impl/transmitterPosition.js +32 -0
  37. package/dist/aerospike/impl/transmitterPosition.js.map +1 -0
  38. package/dist/aerospike/impl/trip.d.ts +10 -0
  39. package/dist/aerospike/impl/trip.js +41 -0
  40. package/dist/aerospike/impl/trip.js.map +1 -0
  41. package/dist/aerospike/impl.d.ts +1 -114
  42. package/dist/aerospike/impl.js +1 -564
  43. package/dist/aerospike/impl.js.map +1 -1
  44. package/dist/aerospike/models/closedLink.d.ts +8 -0
  45. package/dist/aerospike/models/closedLink.js +2 -0
  46. package/dist/aerospike/models/closedLink.js.map +1 -0
  47. package/dist/aerospike/models/contained.d.ts +8 -0
  48. package/dist/aerospike/models/contained.js +2 -0
  49. package/dist/aerospike/models/contained.js.map +1 -0
  50. package/dist/aerospike/models/deltaRssi.d.ts +9 -0
  51. package/dist/aerospike/models/deltaRssi.js +2 -0
  52. package/dist/aerospike/models/deltaRssi.js.map +1 -0
  53. package/dist/aerospike/models/gps.d.ts +12 -0
  54. package/dist/aerospike/models/gps.js +2 -0
  55. package/dist/aerospike/models/gps.js.map +1 -0
  56. package/dist/aerospike/models/rssi.d.ts +8 -0
  57. package/dist/aerospike/models/rssi.js +2 -0
  58. package/dist/aerospike/models/rssi.js.map +1 -0
  59. package/dist/aerospike/models/stateLink.d.ts +11 -0
  60. package/dist/aerospike/models/stateLink.js +2 -0
  61. package/dist/aerospike/models/stateLink.js.map +1 -0
  62. package/dist/aerospike/models/stateTrip.d.ts +12 -0
  63. package/dist/aerospike/models/stateTrip.js +2 -0
  64. package/dist/aerospike/models/stateTrip.js.map +1 -0
  65. package/dist/aerospike/models/states.d.ts +12 -0
  66. package/dist/aerospike/models/states.js +2 -0
  67. package/dist/aerospike/models/states.js.map +1 -0
  68. package/dist/aerospike/models/timeRange.d.ts +4 -0
  69. package/dist/aerospike/models/timeRange.js +2 -0
  70. package/dist/aerospike/models/timeRange.js.map +1 -0
  71. package/dist/aerospike/models/transmitterPosition.d.ts +8 -0
  72. package/dist/aerospike/models/transmitterPosition.js +2 -0
  73. package/dist/aerospike/models/transmitterPosition.js.map +1 -0
  74. package/dist/aerospike/models/trip.d.ts +10 -0
  75. package/dist/aerospike/models/trip.js +2 -0
  76. package/dist/aerospike/models/trip.js.map +1 -0
  77. package/dist/aerospike/models.d.ts +11 -99
  78. package/dist/aerospike/models.js +11 -2
  79. package/dist/aerospike/models.js.map +1 -1
  80. package/dist/aerospike/repositories/closedLink.d.ts +12 -0
  81. package/dist/aerospike/repositories/closedLink.js +2 -0
  82. package/dist/aerospike/repositories/closedLink.js.map +1 -0
  83. package/dist/aerospike/repositories/contained.d.ts +9 -0
  84. package/dist/aerospike/repositories/contained.js +2 -0
  85. package/dist/aerospike/repositories/contained.js.map +1 -0
  86. package/dist/aerospike/repositories/deltaRssi.d.ts +7 -0
  87. package/dist/aerospike/repositories/deltaRssi.js +2 -0
  88. package/dist/aerospike/repositories/deltaRssi.js.map +1 -0
  89. package/dist/aerospike/repositories/gps.d.ts +11 -0
  90. package/dist/aerospike/repositories/gps.js +2 -0
  91. package/dist/aerospike/repositories/gps.js.map +1 -0
  92. package/dist/aerospike/repositories/rssi.d.ts +9 -0
  93. package/dist/aerospike/repositories/rssi.js +2 -0
  94. package/dist/aerospike/repositories/rssi.js.map +1 -0
  95. package/dist/aerospike/repositories/stateLink.d.ts +8 -0
  96. package/dist/aerospike/repositories/stateLink.js +2 -0
  97. package/dist/aerospike/repositories/stateLink.js.map +1 -0
  98. package/dist/aerospike/repositories/stateTrip.d.ts +4 -0
  99. package/dist/aerospike/repositories/stateTrip.js +2 -0
  100. package/dist/aerospike/repositories/stateTrip.js.map +1 -0
  101. package/dist/aerospike/repositories/states.d.ts +5 -0
  102. package/dist/aerospike/repositories/states.js +2 -0
  103. package/dist/aerospike/repositories/states.js.map +1 -0
  104. package/dist/aerospike/repositories/transmitterPosition.d.ts +4 -0
  105. package/dist/aerospike/repositories/transmitterPosition.js +2 -0
  106. package/dist/aerospike/repositories/transmitterPosition.js.map +1 -0
  107. package/dist/aerospike/repositories/trip.d.ts +5 -0
  108. package/dist/aerospike/repositories/trip.js +2 -0
  109. package/dist/aerospike/repositories/trip.js.map +1 -0
  110. package/dist/aerospike/repositories.d.ts +20 -65
  111. package/dist/aerospike/repositories.js +10 -3
  112. package/dist/aerospike/repositories.js.map +1 -1
  113. package/dist/index.d.ts +1 -0
  114. package/dist/index.js +1 -0
  115. package/dist/index.js.map +1 -1
  116. package/dist/nats/subscriber.d.ts +23 -0
  117. package/dist/nats/subscriber.js +86 -0
  118. package/dist/nats/subscriber.js.map +1 -0
  119. package/package.json +3 -2
@@ -0,0 +1,13 @@
1
+ import { type AerospikeClient } from './common';
2
+ import { type StateLinkWithId } from '../models';
3
+ import { type StateLinkRepository } from '../repositories';
4
+ export declare class StateLinkRepositoryImpl implements StateLinkRepository {
5
+ private client;
6
+ private namespace;
7
+ constructor(client: AerospikeClient, namespace: string);
8
+ queryByReceiver(receiverId: string): Promise<StateLinkWithId[]>;
9
+ queryByTransmitter(transmitterId: string): Promise<StateLinkWithId[]>;
10
+ uniqueTransmitters(receiverId: string): Promise<string[]>;
11
+ streamByReceiver(receiverId: string): AsyncGenerator<StateLinkWithId>;
12
+ streamByTransmitter(transmitterId: string): AsyncGenerator<StateLinkWithId>;
13
+ }
@@ -0,0 +1,42 @@
1
+ import { Aerospike, streamQuery, streamQueryGenerator, asNumber } from './common';
2
+ function decodeStateLink(record) {
3
+ const b = record.bins;
4
+ return {
5
+ receiverId: b.r,
6
+ transmitterId: b.t,
7
+ stamp: asNumber(b.stamp) ?? 0,
8
+ lastUpdated: asNumber(b.l) ?? 0,
9
+ rssi: asNumber(b.rs) ?? 0,
10
+ version: b.v ? Buffer.from(b.v).toString('hex') : undefined,
11
+ closed: Boolean(b.c),
12
+ };
13
+ }
14
+ export class StateLinkRepositoryImpl {
15
+ constructor(client, namespace) {
16
+ this.client = client;
17
+ this.namespace = namespace;
18
+ }
19
+ async queryByReceiver(receiverId) {
20
+ const where = Aerospike.filter.equal('r', receiverId);
21
+ const records = await streamQuery(this.client, this.namespace, 'statelink', where);
22
+ return records.map(decodeStateLink);
23
+ }
24
+ async queryByTransmitter(transmitterId) {
25
+ const where = Aerospike.filter.equal('t', transmitterId);
26
+ const records = await streamQuery(this.client, this.namespace, 'statelink', where);
27
+ return records.map(decodeStateLink);
28
+ }
29
+ async uniqueTransmitters(receiverId) {
30
+ const items = await this.queryByReceiver(receiverId);
31
+ return Array.from(new Set(items.map((x) => x.transmitterId)));
32
+ }
33
+ streamByReceiver(receiverId) {
34
+ const where = Aerospike.filter.equal('r', receiverId);
35
+ return streamQueryGenerator(this.client, this.namespace, 'statelink', where, decodeStateLink);
36
+ }
37
+ streamByTransmitter(transmitterId) {
38
+ const where = Aerospike.filter.equal('t', transmitterId);
39
+ return streamQueryGenerator(this.client, this.namespace, 'statelink', where, decodeStateLink);
40
+ }
41
+ }
42
+ //# sourceMappingURL=stateLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateLink.js","sourceRoot":"","sources":["../../../src/aerospike/impl/stateLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8C,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAI9H,SAAS,eAAe,CAAC,MAAuB;IAC9C,MAAM,CAAC,GAAG,MAAM,CAAC,IAA2B,CAAC;IAC7C,OAAO;QACL,UAAU,EAAE,CAAC,CAAC,CAAC;QACf,aAAa,EAAE,CAAC,CAAC,CAAC;QAClB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7B,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3D,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,uBAAuB;IAClC,YAAoB,MAAuB,EAAU,SAAiB;QAAlD,WAAM,GAAN,MAAM,CAAiB;QAAU,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAE1E,KAAK,CAAC,eAAe,CAAC,UAAkB;QACtC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACnF,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,aAAqB;QAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACnF,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,gBAAgB,CAAC,UAAkB;QACjC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACtD,OAAO,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAChG,CAAC;IAED,mBAAmB,CAAC,aAAqB;QACvC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QACzD,OAAO,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAChG,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { type AerospikeClient } from './common';
2
+ import { type StateTripWithId } from '../models';
3
+ import { type StateTripRepository } from '../repositories';
4
+ export declare class StateTripRepositoryImpl implements StateTripRepository {
5
+ private client;
6
+ private namespace;
7
+ constructor(client: AerospikeClient, namespace: string);
8
+ queryById(id: string): Promise<StateTripWithId | null>;
9
+ }
@@ -0,0 +1,42 @@
1
+ import { Aerospike, toKey, decodeMsgpack, decodeGPSPosition, asNumber } from './common';
2
+ function decodeStateTrip(raw) {
3
+ if (!raw)
4
+ return null;
5
+ const start = decodeGPSPosition(raw?.startGPS ?? raw?.StartGPS);
6
+ const end = decodeGPSPosition(raw?.endGPS ?? raw?.EndGPS);
7
+ return {
8
+ id: raw.id ?? raw.Id ?? '',
9
+ startGPS: start,
10
+ endGPS: end,
11
+ distance: asNumber(raw?.distance ?? raw?.Distance) ?? 0,
12
+ version: raw?.version ?? raw?.Version,
13
+ completed: Boolean(raw?.completed ?? raw?.Completed),
14
+ deleted: Boolean(raw?.deleted ?? raw?.Deleted),
15
+ };
16
+ }
17
+ function decodeStateTripRecord(record) {
18
+ const b = record.bins;
19
+ const tripRaw = decodeMsgpack(b.v) ?? b.v;
20
+ if (!tripRaw)
21
+ return null;
22
+ return decodeStateTrip({ ...tripRaw, id: b.id });
23
+ }
24
+ export class StateTripRepositoryImpl {
25
+ constructor(client, namespace) {
26
+ this.client = client;
27
+ this.namespace = namespace;
28
+ }
29
+ async queryById(id) {
30
+ try {
31
+ const key = toKey(this.namespace, 'statetrip', id);
32
+ const record = await this.client.get(key);
33
+ return decodeStateTripRecord(record) ?? null;
34
+ }
35
+ catch (err) {
36
+ if (err && err.code === Aerospike.status.ERR_RECORD_NOT_FOUND)
37
+ return null;
38
+ throw err;
39
+ }
40
+ }
41
+ }
42
+ //# sourceMappingURL=stateTrip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateTrip.js","sourceRoot":"","sources":["../../../src/aerospike/impl/stateTrip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8C,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIpI,SAAS,eAAe,CAAC,GAAQ;IAC/B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,EAAE,QAAQ,IAAI,GAAG,EAAE,QAAQ,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1D,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE;QAC1B,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,IAAI,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC;QACvD,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,OAAO;QACrC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,IAAI,GAAG,EAAE,SAAS,CAAC;QACpD,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,OAAO,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAuB;IACpD,MAAM,CAAC,GAAG,MAAM,CAAC,IAA2B,CAAC;IAC7C,MAAM,OAAO,GAAG,aAAa,CAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,eAAe,CAAC,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,OAAO,uBAAuB;IAClC,YAAoB,MAAuB,EAAU,SAAiB;QAAlD,WAAM,GAAN,MAAM,CAAiB;QAAU,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAE1E,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,qBAAqB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,oBAAoB;gBAAE,OAAO,IAAI,CAAC;YAC3E,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import { type AerospikeClient } from './common';
2
+ import { type StatesWithId } from '../models';
3
+ import { type StatesRepository } from '../repositories';
4
+ export declare class StatesRepositoryImpl implements StatesRepository {
5
+ private client;
6
+ private namespace;
7
+ constructor(client: AerospikeClient, namespace: string);
8
+ getStates(id: string): Promise<StatesWithId[]>;
9
+ streamStates(id: string): AsyncGenerator<StatesWithId>;
10
+ }
@@ -0,0 +1,68 @@
1
+ import { Aerospike, streamQuery, streamQueryGenerator, asNumber, sortByStampAscending } from './common';
2
+ function decodeStates(record) {
3
+ const bins = record.bins;
4
+ const stamp = asNumber(bins.stamp) ?? 0;
5
+ const idValue = bins.id;
6
+ const id = typeof idValue === 'string' ? idValue : idValue != null ? String(idValue) : '';
7
+ const boolProperties = {};
8
+ const intProperties = {};
9
+ const floatProperties = {};
10
+ const stringProperties = {};
11
+ const longProperties = {};
12
+ const enumProperties = {};
13
+ for (const [key, value] of Object.entries(bins)) {
14
+ if (key === 'id' || key === 'stamp')
15
+ continue;
16
+ if (!/^[0-9]+$/.test(key))
17
+ continue;
18
+ const field = Number(key);
19
+ if (typeof value === 'boolean') {
20
+ boolProperties[field] = value;
21
+ continue;
22
+ }
23
+ if (typeof value === 'string') {
24
+ stringProperties[field] = value;
25
+ continue;
26
+ }
27
+ const num = asNumber(value);
28
+ if (num == null)
29
+ continue;
30
+ if (!Number.isInteger(num)) {
31
+ floatProperties[field] = num;
32
+ }
33
+ else if (Math.abs(num) > 0x7fffffff) {
34
+ longProperties[field] = num;
35
+ }
36
+ else {
37
+ intProperties[field] = num;
38
+ }
39
+ // enumProperties are left empty unless a distinct mapping is needed
40
+ }
41
+ return {
42
+ id,
43
+ stamp,
44
+ boolProperties: Object.keys(boolProperties).length ? boolProperties : undefined,
45
+ intProperties: Object.keys(intProperties).length ? intProperties : undefined,
46
+ floatProperties: Object.keys(floatProperties).length ? floatProperties : undefined,
47
+ stringProperties: Object.keys(stringProperties).length ? stringProperties : undefined,
48
+ longProperties: Object.keys(longProperties).length ? longProperties : undefined,
49
+ enumProperties: Object.keys(enumProperties).length ? enumProperties : undefined,
50
+ };
51
+ }
52
+ export class StatesRepositoryImpl {
53
+ constructor(client, namespace) {
54
+ this.client = client;
55
+ this.namespace = namespace;
56
+ }
57
+ async getStates(id) {
58
+ const where = Aerospike.filter.equal('id', id);
59
+ const records = await streamQuery(this.client, this.namespace, 'rpkg_states', where);
60
+ const states = records.map(decodeStates);
61
+ return sortByStampAscending(states);
62
+ }
63
+ streamStates(id) {
64
+ const where = Aerospike.filter.equal('id', id);
65
+ return streamQueryGenerator(this.client, this.namespace, 'rpkg_states', where, decodeStates);
66
+ }
67
+ }
68
+ //# sourceMappingURL=states.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"states.js","sourceRoot":"","sources":["../../../src/aerospike/impl/states.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type AerospikeClient } from './common';
2
+ import { type TransmitterPositionWithId } from '../models';
3
+ import { type TransmitterPositionRepository } from '../repositories';
4
+ export declare class TransmitterPositionRepositoryImpl implements TransmitterPositionRepository {
5
+ private client;
6
+ private namespace;
7
+ constructor(client: AerospikeClient, namespace: string);
8
+ get(id: string): Promise<TransmitterPositionWithId | null>;
9
+ }
@@ -0,0 +1,32 @@
1
+ import { Aerospike, toKey, decodeMsgpack, decodeGPSPosition } from './common';
2
+ function decodeTransmitterPosition(record) {
3
+ const b = record.bins;
4
+ const raw = decodeMsgpack(b.v) ?? b.v;
5
+ if (!raw)
6
+ return null;
7
+ const gps = decodeGPSPosition(raw.gps ?? raw.GPSPosition ?? raw.gpsPosition);
8
+ return {
9
+ id: b.id ?? raw.id ?? raw.Id ?? '',
10
+ receiverId: raw.receiverId ?? raw.ReceiverId ?? '',
11
+ gps: gps ?? { stamp: 0, latitude: 0, longitude: 0 },
12
+ };
13
+ }
14
+ export class TransmitterPositionRepositoryImpl {
15
+ constructor(client, namespace) {
16
+ this.client = client;
17
+ this.namespace = namespace;
18
+ }
19
+ async get(id) {
20
+ try {
21
+ const key = toKey(this.namespace, 'transmitterpos', id);
22
+ const record = await this.client.get(key);
23
+ return decodeTransmitterPosition(record);
24
+ }
25
+ catch (err) {
26
+ if (err && err.code === Aerospike.status.ERR_RECORD_NOT_FOUND)
27
+ return null;
28
+ throw err;
29
+ }
30
+ }
31
+ }
32
+ //# sourceMappingURL=transmitterPosition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transmitterPosition.js","sourceRoot":"","sources":["../../../src/aerospike/impl/transmitterPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8C,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI1H,SAAS,yBAAyB,CAAC,MAAuB;IACxD,MAAM,CAAC,GAAG,MAAM,CAAC,IAA2B,CAAC;IAC7C,MAAM,GAAG,GAAG,aAAa,CAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7E,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE;QAClC,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE;QAClD,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,iCAAiC;IAC5C,YAAoB,MAAuB,EAAU,SAAiB;QAAlD,WAAM,GAAN,MAAM,CAAiB;QAAU,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAE1E,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,oBAAoB;gBAAE,OAAO,IAAI,CAAC;YAC3E,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import { type AerospikeClient } from './common';
2
+ import { type TripWithId } from '../models';
3
+ import { type TripRepository } from '../repositories';
4
+ export declare class TripRepositoryImpl implements TripRepository {
5
+ private client;
6
+ private namespace;
7
+ constructor(client: AerospikeClient, namespace: string);
8
+ queryById(id: string): Promise<TripWithId[]>;
9
+ streamById(id: string): AsyncGenerator<TripWithId>;
10
+ }
@@ -0,0 +1,41 @@
1
+ import { Aerospike, streamQuery, streamQueryGenerator, decodeMsgpack, decodeGPSPosition, asNumber } from './common';
2
+ function decodeTrip(raw) {
3
+ const start = decodeGPSPosition(raw?.startGPS ?? raw?.StartGPS);
4
+ const end = decodeGPSPosition(raw?.endGPS ?? raw?.EndGPS);
5
+ return {
6
+ startGPS: start,
7
+ endGPS: end,
8
+ distance: asNumber(raw?.distance ?? raw?.Distance) ?? 0,
9
+ completed: Boolean(raw?.completed ?? raw?.Completed),
10
+ };
11
+ }
12
+ function decodeTripRecord(record) {
13
+ const b = record.bins;
14
+ const tripRaw = decodeMsgpack(b.v) ?? b.v;
15
+ if (!tripRaw)
16
+ return null;
17
+ const trip = decodeTrip(tripRaw);
18
+ return {
19
+ id: b.id,
20
+ ...trip,
21
+ };
22
+ }
23
+ export class TripRepositoryImpl {
24
+ constructor(client, namespace) {
25
+ this.client = client;
26
+ this.namespace = namespace;
27
+ }
28
+ async queryById(id) {
29
+ const where = Aerospike.filter.equal('id', id);
30
+ const records = await streamQuery(this.client, this.namespace, 'trips', where);
31
+ const trips = records
32
+ .map(decodeTripRecord)
33
+ .filter((x) => x !== null);
34
+ return trips.sort((a, b) => (a.startGPS?.stamp ?? 0) - (b.startGPS?.stamp ?? 0));
35
+ }
36
+ streamById(id) {
37
+ const where = Aerospike.filter.equal('id', id);
38
+ return streamQueryGenerator(this.client, this.namespace, 'trips', where, decodeTripRecord);
39
+ }
40
+ }
41
+ //# sourceMappingURL=trip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trip.js","sourceRoot":"","sources":["../../../src/aerospike/impl/trip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8C,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIhK,SAAS,UAAU,CAAC,GAAQ;IAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,EAAE,QAAQ,IAAI,GAAG,EAAE,QAAQ,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1D,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,IAAI,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC;QACvD,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,IAAI,GAAG,EAAE,SAAS,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAuB;IAC/C,MAAM,CAAC,GAAG,MAAM,CAAC,IAA2B,CAAC;IAC7C,MAAM,OAAO,GAAG,aAAa,CAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,kBAAkB;IAC7B,YAAoB,MAAuB,EAAU,SAAiB;QAAlD,WAAM,GAAN,MAAM,CAAiB;QAAU,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAE1E,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/E,MAAM,KAAK,GAAG,OAAO;aAClB,GAAG,CAAC,gBAAgB,CAAC;aACrB,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/C,OAAO,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAC7F,CAAC;CACF"}
@@ -1,114 +1 @@
1
- import { StatesWithId, StateLinkWithId, ClosedLinkWithId, RSSIWithId, DeltaRSSIWithId, GPSPositionWithId, TripWithId, StateTripWithId, ContainedWithId, TransmitterPositionWithId } from './models';
2
- import { StatesRepository, StateLinkRepository, ClosedLinkRepository, RSSIRepository, DeltaRSSIRepository, GPSRepository, TripRepository, StateTripRepository, ContainedRepository, TransmitterPositionRepository } from './repositories';
3
- type AerospikeClient = any;
4
- export declare class StatesRepositoryImpl implements StatesRepository {
5
- private client;
6
- private namespace;
7
- constructor(client: AerospikeClient, namespace: string);
8
- getStates(id: string): Promise<StatesWithId[]>;
9
- streamStates(id: string): AsyncGenerator<StatesWithId>;
10
- }
11
- export declare class StateLinkRepositoryImpl implements StateLinkRepository {
12
- private client;
13
- private namespace;
14
- constructor(client: AerospikeClient, namespace: string);
15
- queryByReceiver(receiverId: string): Promise<StateLinkWithId[]>;
16
- queryByTransmitter(transmitterId: string): Promise<StateLinkWithId[]>;
17
- uniqueTransmitters(receiverId: string): Promise<string[]>;
18
- streamByReceiver(receiverId: string): AsyncGenerator<StateLinkWithId>;
19
- streamByTransmitter(transmitterId: string): AsyncGenerator<StateLinkWithId>;
20
- }
21
- export declare class ClosedLinkRepositoryImpl implements ClosedLinkRepository {
22
- private client;
23
- private namespace;
24
- constructor(client: AerospikeClient, namespace: string);
25
- queryByKey(receiverTransmitter: string): Promise<ClosedLinkWithId[]>;
26
- queryByReceiver(receiverId: string): Promise<ClosedLinkWithId[]>;
27
- queryByTransmitter(transmitterId: string): Promise<ClosedLinkWithId[]>;
28
- countByReceiver(receiverId: string): Promise<number>;
29
- countByTransmitter(transmitterId: string): Promise<number>;
30
- uniqueTransmitters(receiverId: string): Promise<string[]>;
31
- streamByKey(receiverTransmitter: string): AsyncGenerator<ClosedLinkWithId>;
32
- streamByReceiver(receiverId: string): AsyncGenerator<ClosedLinkWithId>;
33
- streamByTransmitter(transmitterId: string): AsyncGenerator<ClosedLinkWithId>;
34
- }
35
- export declare class RSSIRepositoryImpl implements RSSIRepository {
36
- private client;
37
- private namespace;
38
- constructor(client: AerospikeClient, namespace: string);
39
- queryByKey(receiverTransmitter: string): Promise<RSSIWithId[]>;
40
- queryByTransmitter(transmitterId: string): Promise<RSSIWithId[]>;
41
- queryAll(): Promise<RSSIWithId[]>;
42
- streamByKey(receiverTransmitter: string): AsyncGenerator<RSSIWithId>;
43
- streamByTransmitter(transmitterId: string): AsyncGenerator<RSSIWithId>;
44
- streamAll(): AsyncGenerator<RSSIWithId>;
45
- }
46
- export declare class DeltaRSSIRepositoryImpl implements DeltaRSSIRepository {
47
- private client;
48
- private namespace;
49
- constructor(client: AerospikeClient, namespace: string);
50
- queryByKey(receiverTransmitter: string): Promise<DeltaRSSIWithId[]>;
51
- queryByLink(receiverTransmitter: string, linkStart: number): Promise<DeltaRSSIWithId[]>;
52
- streamByKey(receiverTransmitter: string): AsyncGenerator<DeltaRSSIWithId>;
53
- streamByLink(receiverTransmitter: string, linkStart: number): AsyncGenerator<DeltaRSSIWithId>;
54
- }
55
- export declare class GPSRepositoryImpl implements GPSRepository {
56
- private client;
57
- private namespace;
58
- constructor(client: AerospikeClient, namespace: string);
59
- queryById(id: string): Promise<GPSPositionWithId[]>;
60
- queryWithSpeed(id: string): Promise<Array<{
61
- position: GPSPositionWithId;
62
- speed: number;
63
- dist: number;
64
- dt: number;
65
- }>>;
66
- streamById(id: string): AsyncGenerator<GPSPositionWithId>;
67
- }
68
- export declare class TripRepositoryImpl implements TripRepository {
69
- private client;
70
- private namespace;
71
- constructor(client: AerospikeClient, namespace: string);
72
- queryById(id: string): Promise<TripWithId[]>;
73
- streamById(id: string): AsyncGenerator<TripWithId>;
74
- }
75
- export declare class StateTripRepositoryImpl implements StateTripRepository {
76
- private client;
77
- private namespace;
78
- constructor(client: AerospikeClient, namespace: string);
79
- queryById(id: string): Promise<StateTripWithId | null>;
80
- }
81
- export declare class ContainedRepositoryImpl implements ContainedRepository {
82
- private client;
83
- private namespace;
84
- constructor(client: AerospikeClient, namespace: string);
85
- queryByKey(receiverTransmitter: string): Promise<ContainedWithId[]>;
86
- queryByTransmitter(transmitterId: string): Promise<ContainedWithId[]>;
87
- queryByReceiver(receiverId: string): Promise<ContainedWithId[]>;
88
- streamByKey(receiverTransmitter: string): AsyncGenerator<ContainedWithId>;
89
- streamByTransmitter(transmitterId: string): AsyncGenerator<ContainedWithId>;
90
- streamByReceiver(receiverId: string): AsyncGenerator<ContainedWithId>;
91
- }
92
- export declare class TransmitterPositionRepositoryImpl implements TransmitterPositionRepository {
93
- private client;
94
- private namespace;
95
- constructor(client: AerospikeClient, namespace: string);
96
- get(id: string): Promise<TransmitterPositionWithId | null>;
97
- }
98
- export type RepositoryFactoryOptions = {
99
- client: AerospikeClient;
100
- namespace: string;
101
- };
102
- export declare function createRepositories(opts: RepositoryFactoryOptions): {
103
- states: StatesRepositoryImpl;
104
- stateLinks: StateLinkRepositoryImpl;
105
- closedLinks: ClosedLinkRepositoryImpl;
106
- rssi: RSSIRepositoryImpl;
107
- deltaRssi: DeltaRSSIRepositoryImpl;
108
- gps: GPSRepositoryImpl;
109
- trips: TripRepositoryImpl;
110
- stateTrips: StateTripRepositoryImpl;
111
- contained: ContainedRepositoryImpl;
112
- transmitterPos: TransmitterPositionRepositoryImpl;
113
- };
114
- export {};
1
+ export * from './impl';