@nanolink/operational-model 0.1.1 → 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 +25 -0
  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,12 @@
1
+ export type GPSPosition = {
2
+ stamp: number;
3
+ longitude: number;
4
+ latitude: number;
5
+ altitude?: number | null;
6
+ speed?: number | null;
7
+ bearing?: number | null;
8
+ accuracy?: number | null;
9
+ };
10
+ export type GPSPositionWithId = GPSPosition & {
11
+ id: string;
12
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gps.js","sourceRoot":"","sources":["../../../src/aerospike/models/gps.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export type RSSI = {
2
+ stamp: number;
3
+ value: number;
4
+ };
5
+ export type RSSIWithId = RSSI & {
6
+ receiverId: string;
7
+ transmitterId: string;
8
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rssi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rssi.js","sourceRoot":"","sources":["../../../src/aerospike/models/rssi.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ export type StateLink = {
2
+ stamp: number;
3
+ lastUpdated: number;
4
+ rssi: number;
5
+ version?: string;
6
+ closed: boolean;
7
+ };
8
+ export type StateLinkWithId = StateLink & {
9
+ receiverId: string;
10
+ transmitterId: string;
11
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stateLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateLink.js","sourceRoot":"","sources":["../../../src/aerospike/models/stateLink.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { GPSPosition } from './gps';
2
+ export type StateTrip = {
3
+ startGPS?: GPSPosition;
4
+ endGPS?: GPSPosition;
5
+ distance: number;
6
+ version?: string;
7
+ completed: boolean;
8
+ deleted: boolean;
9
+ };
10
+ export type StateTripWithId = StateTrip & {
11
+ id: string;
12
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stateTrip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateTrip.js","sourceRoot":"","sources":["../../../src/aerospike/models/stateTrip.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ export type States = {
2
+ stamp: number;
3
+ boolProperties?: Record<number, boolean>;
4
+ intProperties?: Record<number, number>;
5
+ floatProperties?: Record<number, number>;
6
+ stringProperties?: Record<number, string>;
7
+ longProperties?: Record<number, number>;
8
+ enumProperties?: Record<number, number>;
9
+ };
10
+ export type StatesWithId = States & {
11
+ id: string;
12
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=states.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"states.js","sourceRoot":"","sources":["../../../src/aerospike/models/states.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export type TimeRange = {
2
+ start: number;
3
+ end: number;
4
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=timeRange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeRange.js","sourceRoot":"","sources":["../../../src/aerospike/models/timeRange.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { GPSPosition } from './gps';
2
+ export type TransmitterPosition = {
3
+ receiverId: string;
4
+ gps: GPSPosition;
5
+ };
6
+ export type TransmitterPositionWithId = TransmitterPosition & {
7
+ id: string;
8
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transmitterPosition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transmitterPosition.js","sourceRoot":"","sources":["../../../src/aerospike/models/transmitterPosition.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { GPSPosition } from './gps';
2
+ export type Trip = {
3
+ startGPS?: GPSPosition;
4
+ endGPS?: GPSPosition;
5
+ distance: number;
6
+ completed: boolean;
7
+ };
8
+ export type TripWithId = Trip & {
9
+ id: string;
10
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=trip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trip.js","sourceRoot":"","sources":["../../../src/aerospike/models/trip.ts"],"names":[],"mappings":""}
@@ -1,99 +1,11 @@
1
- export type States = {
2
- stamp: number;
3
- boolProperties?: Record<number, boolean>;
4
- intProperties?: Record<number, number>;
5
- floatProperties?: Record<number, number>;
6
- stringProperties?: Record<number, string>;
7
- longProperties?: Record<number, number>;
8
- enumProperties?: Record<number, number>;
9
- };
10
- export type StatesWithId = States & {
11
- id: string;
12
- };
13
- export type StateLink = {
14
- stamp: number;
15
- lastUpdated: number;
16
- rssi: number;
17
- version?: string;
18
- closed: boolean;
19
- };
20
- export type StateLinkWithId = StateLink & {
21
- receiverId: string;
22
- transmitterId: string;
23
- };
24
- export type ClosedLink = {
25
- start: number;
26
- end: number;
27
- };
28
- export type ClosedLinkWithId = ClosedLink & {
29
- receiverId: string;
30
- transmitterId: string;
31
- };
32
- export type RSSI = {
33
- stamp: number;
34
- value: number;
35
- };
36
- export type RSSIWithId = RSSI & {
37
- receiverId: string;
38
- transmitterId: string;
39
- };
40
- export type DeltaRSSI = {
41
- stamp: number;
42
- value: number;
43
- linkStart: number;
44
- };
45
- export type DeltaRSSIWithId = DeltaRSSI & {
46
- receiverId: string;
47
- transmitterId: string;
48
- };
49
- export type GPSPosition = {
50
- stamp: number;
51
- longitude: number;
52
- latitude: number;
53
- altitude?: number | null;
54
- speed?: number | null;
55
- bearing?: number | null;
56
- accuracy?: number | null;
57
- };
58
- export type GPSPositionWithId = GPSPosition & {
59
- id: string;
60
- };
61
- export type Trip = {
62
- startGPS?: GPSPosition;
63
- endGPS?: GPSPosition;
64
- distance: number;
65
- completed: boolean;
66
- };
67
- export type TripWithId = Trip & {
68
- id: string;
69
- };
70
- export type StateTrip = {
71
- startGPS?: GPSPosition;
72
- endGPS?: GPSPosition;
73
- distance: number;
74
- version?: string;
75
- completed: boolean;
76
- deleted: boolean;
77
- };
78
- export type StateTripWithId = StateTrip & {
79
- id: string;
80
- };
81
- export type Contained = {
82
- start: number;
83
- end: number;
84
- };
85
- export type ContainedWithId = Contained & {
86
- receiverId: string;
87
- transmitterId: string;
88
- };
89
- export type TransmitterPosition = {
90
- receiverId: string;
91
- gps: GPSPosition;
92
- };
93
- export type TransmitterPositionWithId = TransmitterPosition & {
94
- id: string;
95
- };
96
- export type TimeRange = {
97
- start: number;
98
- end: number;
99
- };
1
+ export * from './models/states';
2
+ export * from './models/stateLink';
3
+ export * from './models/closedLink';
4
+ export * from './models/rssi';
5
+ export * from './models/deltaRssi';
6
+ export * from './models/gps';
7
+ export * from './models/trip';
8
+ export * from './models/stateTrip';
9
+ export * from './models/contained';
10
+ export * from './models/transmitterPosition';
11
+ export * from './models/timeRange';
@@ -1,3 +1,12 @@
1
- // Domain models mirrored from the contract (read-only views)
2
- export {};
1
+ export * from './models/states';
2
+ export * from './models/stateLink';
3
+ export * from './models/closedLink';
4
+ export * from './models/rssi';
5
+ export * from './models/deltaRssi';
6
+ export * from './models/gps';
7
+ export * from './models/trip';
8
+ export * from './models/stateTrip';
9
+ export * from './models/contained';
10
+ export * from './models/transmitterPosition';
11
+ export * from './models/timeRange';
3
12
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/aerospike/models.ts"],"names":[],"mappings":"AAAA,6DAA6D"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/aerospike/models.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type ClosedLinkWithId } from '../models';
2
+ export interface ClosedLinkRepository {
3
+ queryByKey(receiverTransmitter: string): Promise<ClosedLinkWithId[]>;
4
+ queryByReceiver(receiverId: string): Promise<ClosedLinkWithId[]>;
5
+ queryByTransmitter(transmitterId: string): Promise<ClosedLinkWithId[]>;
6
+ countByReceiver(receiverId: string): Promise<number>;
7
+ countByTransmitter(transmitterId: string): Promise<number>;
8
+ uniqueTransmitters(receiverId: string): Promise<string[]>;
9
+ streamByKey(receiverTransmitter: string): AsyncGenerator<ClosedLinkWithId>;
10
+ streamByReceiver(receiverId: string): AsyncGenerator<ClosedLinkWithId>;
11
+ streamByTransmitter(transmitterId: string): AsyncGenerator<ClosedLinkWithId>;
12
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=closedLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closedLink.js","sourceRoot":"","sources":["../../../src/aerospike/repositories/closedLink.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { type ContainedWithId } from '../models';
2
+ export interface ContainedRepository {
3
+ queryByKey(receiverTransmitter: string): Promise<ContainedWithId[]>;
4
+ queryByTransmitter(transmitterId: string): Promise<ContainedWithId[]>;
5
+ queryByReceiver(receiverId: string): Promise<ContainedWithId[]>;
6
+ streamByKey(receiverTransmitter: string): AsyncGenerator<ContainedWithId>;
7
+ streamByTransmitter(transmitterId: string): AsyncGenerator<ContainedWithId>;
8
+ streamByReceiver(receiverId: string): AsyncGenerator<ContainedWithId>;
9
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=contained.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contained.js","sourceRoot":"","sources":["../../../src/aerospike/repositories/contained.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { type DeltaRSSIWithId } from '../models';
2
+ export interface DeltaRSSIRepository {
3
+ queryByKey(receiverTransmitter: string): Promise<DeltaRSSIWithId[]>;
4
+ queryByLink(receiverTransmitter: string, linkStart: number): Promise<DeltaRSSIWithId[]>;
5
+ streamByKey(receiverTransmitter: string): AsyncGenerator<DeltaRSSIWithId>;
6
+ streamByLink(receiverTransmitter: string, linkStart: number): AsyncGenerator<DeltaRSSIWithId>;
7
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deltaRssi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deltaRssi.js","sourceRoot":"","sources":["../../../src/aerospike/repositories/deltaRssi.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { type GPSPositionWithId } from '../models';
2
+ export interface GPSRepository {
3
+ queryById(id: string): Promise<GPSPositionWithId[]>;
4
+ queryWithSpeed(id: string): Promise<Array<{
5
+ position: GPSPositionWithId;
6
+ speed: number;
7
+ dist: number;
8
+ dt: number;
9
+ }>>;
10
+ streamById(id: string): AsyncGenerator<GPSPositionWithId>;
11
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gps.js","sourceRoot":"","sources":["../../../src/aerospike/repositories/gps.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { type RSSIWithId } from '../models';
2
+ export interface RSSIRepository {
3
+ queryByKey(receiverTransmitter: string): Promise<RSSIWithId[]>;
4
+ queryByTransmitter(transmitterId: string): Promise<RSSIWithId[]>;
5
+ queryAll(): Promise<RSSIWithId[]>;
6
+ streamByKey(receiverTransmitter: string): AsyncGenerator<RSSIWithId>;
7
+ streamByTransmitter(transmitterId: string): AsyncGenerator<RSSIWithId>;
8
+ streamAll(): AsyncGenerator<RSSIWithId>;
9
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rssi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rssi.js","sourceRoot":"","sources":["../../../src/aerospike/repositories/rssi.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { type StateLinkWithId } from '../models';
2
+ export interface StateLinkRepository {
3
+ queryByReceiver(receiverId: string): Promise<StateLinkWithId[]>;
4
+ queryByTransmitter(transmitterId: string): Promise<StateLinkWithId[]>;
5
+ uniqueTransmitters(receiverId: string): Promise<string[]>;
6
+ streamByReceiver(receiverId: string): AsyncGenerator<StateLinkWithId>;
7
+ streamByTransmitter(transmitterId: string): AsyncGenerator<StateLinkWithId>;
8
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stateLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateLink.js","sourceRoot":"","sources":["../../../src/aerospike/repositories/stateLink.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { type StateTripWithId } from '../models';
2
+ export interface StateTripRepository {
3
+ queryById(id: string): Promise<StateTripWithId | null>;
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stateTrip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateTrip.js","sourceRoot":"","sources":["../../../src/aerospike/repositories/stateTrip.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { type StatesWithId } from '../models';
2
+ export interface StatesRepository {
3
+ getStates(id: string): Promise<StatesWithId[]>;
4
+ streamStates(id: string): AsyncGenerator<StatesWithId>;
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=states.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"states.js","sourceRoot":"","sources":["../../../src/aerospike/repositories/states.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { type TransmitterPositionWithId } from '../models';
2
+ export interface TransmitterPositionRepository {
3
+ get(id: string): Promise<TransmitterPositionWithId | null>;
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transmitterPosition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transmitterPosition.js","sourceRoot":"","sources":["../../../src/aerospike/repositories/transmitterPosition.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { type TripWithId } from '../models';
2
+ export interface TripRepository {
3
+ queryById(id: string): Promise<TripWithId[]>;
4
+ streamById(id: string): AsyncGenerator<TripWithId>;
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=trip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trip.js","sourceRoot":"","sources":["../../../src/aerospike/repositories/trip.ts"],"names":[],"mappings":""}
@@ -1,68 +1,23 @@
1
- import { StatesWithId, StateLinkWithId, ClosedLinkWithId, RSSIWithId, DeltaRSSIWithId, GPSPositionWithId, TripWithId, StateTripWithId, ContainedWithId, TransmitterPositionWithId } from './models';
2
- export interface StatesRepository {
3
- getStates(id: string): Promise<StatesWithId[]>;
4
- streamStates(id: string): AsyncGenerator<StatesWithId>;
5
- }
6
- export interface StateLinkRepository {
7
- queryByReceiver(receiverId: string): Promise<StateLinkWithId[]>;
8
- queryByTransmitter(transmitterId: string): Promise<StateLinkWithId[]>;
9
- uniqueTransmitters(receiverId: string): Promise<string[]>;
10
- streamByReceiver(receiverId: string): AsyncGenerator<StateLinkWithId>;
11
- streamByTransmitter(transmitterId: string): AsyncGenerator<StateLinkWithId>;
12
- }
13
- export interface ClosedLinkRepository {
14
- queryByKey(receiverTransmitter: string): Promise<ClosedLinkWithId[]>;
15
- queryByReceiver(receiverId: string): Promise<ClosedLinkWithId[]>;
16
- queryByTransmitter(transmitterId: string): Promise<ClosedLinkWithId[]>;
17
- countByReceiver(receiverId: string): Promise<number>;
18
- countByTransmitter(transmitterId: string): Promise<number>;
19
- uniqueTransmitters(receiverId: string): Promise<string[]>;
20
- streamByKey(receiverTransmitter: string): AsyncGenerator<ClosedLinkWithId>;
21
- streamByReceiver(receiverId: string): AsyncGenerator<ClosedLinkWithId>;
22
- streamByTransmitter(transmitterId: string): AsyncGenerator<ClosedLinkWithId>;
23
- }
24
- export interface RSSIRepository {
25
- queryByKey(receiverTransmitter: string): Promise<RSSIWithId[]>;
26
- queryByTransmitter(transmitterId: string): Promise<RSSIWithId[]>;
27
- queryAll(): Promise<RSSIWithId[]>;
28
- streamByKey(receiverTransmitter: string): AsyncGenerator<RSSIWithId>;
29
- streamByTransmitter(transmitterId: string): AsyncGenerator<RSSIWithId>;
30
- streamAll(): AsyncGenerator<RSSIWithId>;
31
- }
32
- export interface DeltaRSSIRepository {
33
- queryByKey(receiverTransmitter: string): Promise<DeltaRSSIWithId[]>;
34
- queryByLink(receiverTransmitter: string, linkStart: number): Promise<DeltaRSSIWithId[]>;
35
- streamByKey(receiverTransmitter: string): AsyncGenerator<DeltaRSSIWithId>;
36
- streamByLink(receiverTransmitter: string, linkStart: number): AsyncGenerator<DeltaRSSIWithId>;
37
- }
38
- export interface GPSRepository {
39
- queryById(id: string): Promise<GPSPositionWithId[]>;
40
- queryWithSpeed(id: string): Promise<Array<{
41
- position: GPSPositionWithId;
42
- speed: number;
43
- dist: number;
44
- dt: number;
45
- }>>;
46
- streamById(id: string): AsyncGenerator<GPSPositionWithId>;
47
- }
48
- export interface TripRepository {
49
- queryById(id: string): Promise<TripWithId[]>;
50
- streamById(id: string): AsyncGenerator<TripWithId>;
51
- }
52
- export interface StateTripRepository {
53
- queryById(id: string): Promise<StateTripWithId | null>;
54
- }
55
- export interface ContainedRepository {
56
- queryByKey(receiverTransmitter: string): Promise<ContainedWithId[]>;
57
- queryByTransmitter(transmitterId: string): Promise<ContainedWithId[]>;
58
- queryByReceiver(receiverId: string): Promise<ContainedWithId[]>;
59
- streamByKey(receiverTransmitter: string): AsyncGenerator<ContainedWithId>;
60
- streamByTransmitter(transmitterId: string): AsyncGenerator<ContainedWithId>;
61
- streamByReceiver(receiverId: string): AsyncGenerator<ContainedWithId>;
62
- }
63
- export interface TransmitterPositionRepository {
64
- get(id: string): Promise<TransmitterPositionWithId | null>;
65
- }
1
+ export * from './repositories/states';
2
+ export * from './repositories/stateLink';
3
+ export * from './repositories/closedLink';
4
+ export * from './repositories/rssi';
5
+ export * from './repositories/deltaRssi';
6
+ export * from './repositories/gps';
7
+ export * from './repositories/trip';
8
+ export * from './repositories/stateTrip';
9
+ export * from './repositories/contained';
10
+ export * from './repositories/transmitterPosition';
11
+ import { type StatesRepository } from './repositories/states';
12
+ import { type StateLinkRepository } from './repositories/stateLink';
13
+ import { type ClosedLinkRepository } from './repositories/closedLink';
14
+ import { type RSSIRepository } from './repositories/rssi';
15
+ import { type DeltaRSSIRepository } from './repositories/deltaRssi';
16
+ import { type GPSRepository } from './repositories/gps';
17
+ import { type TripRepository } from './repositories/trip';
18
+ import { type StateTripRepository } from './repositories/stateTrip';
19
+ import { type ContainedRepository } from './repositories/contained';
20
+ import { type TransmitterPositionRepository } from './repositories/transmitterPosition';
66
21
  export type RepositoryBundle = {
67
22
  states: StatesRepository;
68
23
  stateLinks: StateLinkRepository;
@@ -1,4 +1,11 @@
1
- // Read-only repository contracts modeled after the existing Go repos.
2
- // Implementations should use the Aerospike Node.js client and respect the set/bin contract in spec.md.
3
- export {};
1
+ export * from './repositories/states';
2
+ export * from './repositories/stateLink';
3
+ export * from './repositories/closedLink';
4
+ export * from './repositories/rssi';
5
+ export * from './repositories/deltaRssi';
6
+ export * from './repositories/gps';
7
+ export * from './repositories/trip';
8
+ export * from './repositories/stateTrip';
9
+ export * from './repositories/contained';
10
+ export * from './repositories/transmitterPosition';
4
11
  //# sourceMappingURL=repositories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repositories.js","sourceRoot":"","sources":["../../src/aerospike/repositories.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,uGAAuG"}
1
+ {"version":3,"file":"repositories.js","sourceRoot":"","sources":["../../src/aerospike/repositories.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,3 +2,4 @@ export * as AerospikeModels from './aerospike/models';
2
2
  export * as AerospikeRepositories from './aerospike/repositories';
3
3
  export * from './aerospike/client';
4
4
  export * from './aerospike/impl';
5
+ export * from './nats/subscriber';
package/dist/index.js CHANGED
@@ -2,4 +2,5 @@ export * as AerospikeModels from './aerospike/models';
2
2
  export * as AerospikeRepositories from './aerospike/repositories';
3
3
  export * from './aerospike/client';
4
4
  export * from './aerospike/impl';
5
+ export * from './nats/subscriber';
5
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,qBAAqB,MAAM,0BAA0B,CAAC;AAClE,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,qBAAqB,MAAM,0BAA0B,CAAC;AAClE,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type NatsConnection, type Subscription } from 'nats';
2
+ export interface EventDeserializer<T> {
3
+ deserialize(data: Uint8Array): T;
4
+ }
5
+ export declare class MsgpackEventDeserializer<T> implements EventDeserializer<T> {
6
+ deserialize(data: Uint8Array): T;
7
+ }
8
+ export type NatsEventHandler<T> = (topic: string, data: T) => void | Promise<void>;
9
+ export type NatsSubscribeOptions = {
10
+ signal?: AbortSignal;
11
+ onError?: (err: unknown, subject: string) => void;
12
+ };
13
+ export declare class NatsSubscriber<T> {
14
+ private readonly conn;
15
+ private readonly prefix;
16
+ private readonly deserializer;
17
+ constructor(conn: NatsConnection, prefix: string, deserializer?: EventDeserializer<T>);
18
+ subscribe(handler: NatsEventHandler<T>, options?: NatsSubscribeOptions): Subscription;
19
+ subscribeGenerator(options?: NatsSubscribeOptions): AsyncGenerator<{
20
+ topic: string;
21
+ data: T;
22
+ }>;
23
+ }