@harperfast/harper 5.0.7 → 5.0.9

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 (74) hide show
  1. package/bin/status.js +2 -2
  2. package/bin/stop.js +5 -6
  3. package/components/OptionsWatcher.ts +9 -1
  4. package/dataLayer/harperBridge/TableSizeObject.ts +35 -0
  5. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.ts +24 -0
  6. package/dist/bin/status.js +2 -2
  7. package/dist/bin/status.js.map +1 -1
  8. package/dist/bin/stop.js +5 -5
  9. package/dist/bin/stop.js.map +1 -1
  10. package/dist/components/OptionsWatcher.js +8 -1
  11. package/dist/components/OptionsWatcher.js.map +1 -1
  12. package/dist/dataLayer/harperBridge/TableSizeObject.d.ts +20 -0
  13. package/dist/dataLayer/harperBridge/TableSizeObject.js +32 -0
  14. package/dist/dataLayer/harperBridge/TableSizeObject.js.map +1 -0
  15. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.d.ts +6 -6
  16. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +18 -19
  17. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js.map +1 -1
  18. package/dist/globals.d.ts +4 -3
  19. package/dist/globals.js +7 -4
  20. package/dist/globals.js.map +1 -1
  21. package/dist/index.d.ts +45 -7
  22. package/dist/index.js +32 -36
  23. package/dist/index.js.map +1 -1
  24. package/dist/resources/DatabaseTransaction.js +6 -1
  25. package/dist/resources/DatabaseTransaction.js.map +1 -1
  26. package/dist/resources/RecordEncoder.d.ts +1 -0
  27. package/dist/resources/RecordEncoder.js +18 -9
  28. package/dist/resources/RecordEncoder.js.map +1 -1
  29. package/dist/resources/Table.d.ts +1 -1
  30. package/dist/resources/Table.js +13 -2
  31. package/dist/resources/Table.js.map +1 -1
  32. package/dist/resources/blob.d.ts +6 -0
  33. package/dist/resources/blob.js +5 -2
  34. package/dist/resources/blob.js.map +1 -1
  35. package/dist/resources/databases.js +2 -1
  36. package/dist/resources/databases.js.map +1 -1
  37. package/dist/security/jsLoader.d.ts +3 -0
  38. package/dist/security/jsLoader.js +19 -2
  39. package/dist/security/jsLoader.js.map +1 -1
  40. package/dist/security/keys.js +1 -1
  41. package/dist/security/keys.js.map +1 -1
  42. package/dist/server/DurableSubscriptionsSession.js +2 -0
  43. package/dist/server/DurableSubscriptionsSession.js.map +1 -1
  44. package/dist/server/serverHelpers/serverUtilities.js +2 -2
  45. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  46. package/dist/utility/environment/systemInformation.d.ts +178 -49
  47. package/dist/utility/environment/systemInformation.js +359 -219
  48. package/dist/utility/environment/systemInformation.js.map +1 -1
  49. package/dist/utility/operation_authorization.js +2 -2
  50. package/dist/utility/operation_authorization.js.map +1 -1
  51. package/index.ts +113 -0
  52. package/package.json +3 -3
  53. package/resources/DatabaseTransaction.ts +8 -3
  54. package/resources/RecordEncoder.ts +11 -3
  55. package/resources/Table.ts +13 -2
  56. package/resources/blob.ts +7 -2
  57. package/resources/databases.ts +2 -1
  58. package/security/jsLoader.ts +17 -5
  59. package/security/keys.js +1 -1
  60. package/server/DurableSubscriptionsSession.ts +1 -0
  61. package/server/serverHelpers/serverUtilities.ts +2 -5
  62. package/studio/web/assets/{index-C0And10y.js → index-DL0ibcSu.js} +2 -2
  63. package/studio/web/assets/{index-C0And10y.js.map → index-DL0ibcSu.js.map} +1 -1
  64. package/studio/web/index.html +1 -1
  65. package/utility/environment/systemInformation.ts +698 -0
  66. package/utility/operation_authorization.js +2 -5
  67. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js +0 -25
  68. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +0 -34
  69. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.d.ts +0 -21
  70. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js +0 -24
  71. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js.map +0 -1
  72. package/index.d.ts +0 -56
  73. package/index.js +0 -41
  74. package/utility/environment/systemInformation.js +0 -355
@@ -1,68 +1,197 @@
1
+ import si from 'systeminformation';
2
+ import { TableSizeObject } from '../../dataLayer/harperBridge/TableSizeObject.ts';
3
+ import { StatsHistogramData } from '@harperfast/rocksdb-js';
4
+ export declare class SystemInformationRequest {
5
+ operator: string;
6
+ attributes: string[];
7
+ constructor(attributes: any);
8
+ }
9
+ export declare class SystemInformationResponse {
10
+ system?: SystemInfo;
11
+ time?: TimeData;
12
+ cpu?: CpuInfo;
13
+ memory?: MemoryInfo;
14
+ disk?: DiskInfo;
15
+ network?: NetworkInfo;
16
+ harperdb_processes?: HarperdbProcesses;
17
+ table_size?: TableSizeObject[];
18
+ metrics?: DatabaseMetrics;
19
+ threads?: Record<string, unknown>;
20
+ constructor(system?: SystemInfo, time?: TimeData, cpu?: CpuInfo, memory?: MemoryInfo, disk?: DiskInfo, network?: NetworkInfo, harperdbProcesses?: HarperdbProcesses, tableSize?: TableSizeObject[], metrics?: DatabaseMetrics, threads?: Record<string, unknown>);
21
+ }
22
+ type TimeData = si.Systeminformation.TimeData;
1
23
  /**
2
- * searches for & returns the processes for hdb core
3
- * @returns {Promise<{core: []}>}
24
+ * Returns the current local time, uptime, timezone, and timezone name.
4
25
  */
5
- export function getHDBProcessInfo(): Promise<{
6
- core: [];
7
- }>;
26
+ export declare function getTimeInfo(): TimeData;
27
+ type CpuInfo = Pick<si.Systeminformation.CpuData, 'manufacturer' | 'brand' | 'vendor' | 'speed' | 'cores' | 'physicalCores' | 'performanceCores' | 'efficiencyCores' | 'processors' | 'flags' | 'virtualization'> & {
28
+ cpu_speed: si.Systeminformation.CpuCurrentSpeedData;
29
+ current_load: Pick<si.Systeminformation.CurrentLoadData, 'avgLoad' | 'currentLoad' | 'currentLoadUser' | 'currentLoadSystem' | 'currentLoadNice' | 'currentLoadIdle' | 'currentLoadIrq'> & {
30
+ cpus: Pick<si.Systeminformation.CurrentLoadCpuData, 'load' | 'loadUser' | 'loadSystem' | 'loadNice' | 'loadIdle' | 'loadIrq'>[];
31
+ };
32
+ };
8
33
  /**
9
- * gets networking & connection information & stats
10
- * @returns {Promise<{interfaces: [], default_interface: null, stats: [], latency: {}, connections: []}>}
34
+ * Detects CPU information such as manufacturer, brand, vendor, speed, cores, physical cores, and
35
+ * processors.
36
+ */
37
+ export declare function getCPUInfo(): Promise<CpuInfo | null>;
38
+ type MemoryInfo = Pick<si.Systeminformation.MemData, 'total' | 'free' | 'used' | 'active' | 'available' | 'reclaimable' | 'swaptotal' | 'swapused' | 'swapfree' | 'writeback' | 'dirty'> & NodeJS.MemoryUsage;
39
+ /**
40
+ * Detect system and Node.js memory usage.
11
41
  */
12
- export function getNetworkInfo(): Promise<{
13
- interfaces: [];
14
- default_interface: null;
15
- stats: [];
16
- latency: {};
17
- connections: [];
18
- }>;
42
+ export declare function getMemoryInfo(): Promise<MemoryInfo | null>;
43
+ type CoreInfo = si.Systeminformation.ProcessesProcessData & {
44
+ parent?: string;
45
+ };
46
+ type HarperdbProcesses = {
47
+ core: CoreInfo[];
48
+ };
19
49
  /**
20
- * gets disk related info & stats
21
- * @returns {Promise<{}>}
50
+ * Detects the Harper process PID and returns the process info.
51
+ * @returns {Promise<{core: []}>}
52
+ */
53
+ export declare function getHDBProcessInfo(): Promise<HarperdbProcesses>;
54
+ type DiskInfo = {
55
+ io?: Pick<si.Systeminformation.DisksIoData, 'rIO' | 'wIO' | 'tIO'>;
56
+ read_write?: Pick<si.Systeminformation.FsStatsData, 'rx' | 'tx' | 'wx'>;
57
+ size?: si.Systeminformation.FsSizeData[];
58
+ };
59
+ /**
60
+ * Retrieves disk related info & stats
61
+ * @returns {Promise<DiskInfo>}
22
62
  */
23
- export function getDiskInfo(): Promise<{}>;
63
+ export declare function getDiskInfo(): Promise<DiskInfo>;
64
+ type NetworkInfo = {
65
+ default_interface: string | null;
66
+ latency: si.Systeminformation.InetChecksiteData | Record<never, never>;
67
+ interfaces: Pick<si.Systeminformation.NetworkInterfacesData, 'iface' | 'ifaceName' | 'default' | 'ip4' | 'ip4subnet' | 'ip6' | 'ip6subnet' | 'mac' | 'operstate' | 'type' | 'duplex' | 'speed'>[];
68
+ stats: any[];
69
+ connections: any[];
70
+ };
24
71
  /**
25
- * fetches information related memory
26
- * @returns {Promise<{}|Pick<si.Systeminformation.MemData, "total" | "free" | "used" | "active" | "available" | "swaptotal" | "swapused" | "swapfree">>}
72
+ * Detects networking connection information & stats
73
+ * @returns {Promise<{interfaces: [], default_interface: null, stats: [], latency: {}, connections: []}>}
27
74
  */
28
- export function getMemoryInfo(): Promise<{} | Pick<si.Systeminformation.MemData, "total" | "free" | "used" | "active" | "available" | "swaptotal" | "swapused" | "swapfree">>;
75
+ export declare function getNetworkInfo(): Promise<NetworkInfo>;
76
+ type SystemInfo = Partial<Pick<si.Systeminformation.OsData, 'platform' | 'distro' | 'release' | 'codename' | 'kernel' | 'arch' | 'hostname' | 'fqdn'>> & {
77
+ node_version?: string;
78
+ npm_version?: string;
79
+ };
29
80
  /**
30
- * executes cpu related functions
31
- * @returns {Promise<{}|Pick<si.Systeminformation.CpuData, "manufacturer" | "brand" | "vendor" | "speed" | "cores" | "physicalCores" | "processors">>}
81
+ * Detect operating system and Node.js runtime information.
82
+ * @returns {Promise<SystemInfo>}
32
83
  */
33
- export function getCPUInfo(): Promise<{} | Pick<si.Systeminformation.CpuData, "manufacturer" | "brand" | "vendor" | "speed" | "cores" | "physicalCores" | "processors">>;
84
+ export declare function getSystemInformation(): Promise<SystemInfo>;
34
85
  /**
35
- * executes the time function to return the time info for the system
36
- * @returns {si.Systeminformation.TimeData}
86
+ * Retrieves table size information.
87
+ * @returns {TableSizeObject[]}
37
88
  */
38
- export function getTimeInfo(): si.Systeminformation.TimeData;
89
+ export declare function getTableSize(): TableSizeObject[];
90
+ type LMDBEnvStats = {
91
+ entryCount: number;
92
+ overflowPages: number;
93
+ pageSize: number;
94
+ treeBranchPageCount: number;
95
+ treeDepth: number;
96
+ treeLeafPageCount: number;
97
+ };
98
+ type LMDBStats = LMDBEnvStats & {
99
+ free: LMDBEnvStats;
100
+ lastPageNumber: number;
101
+ lastTxnId: number;
102
+ mapSize: number;
103
+ maxReaders: number;
104
+ numReaders: number;
105
+ root: LMDBEnvStats;
106
+ };
107
+ type RocksDBStats = {
108
+ blockCacheCapacity: number;
109
+ blockCacheDataHit: number;
110
+ blockCacheDataMiss: number;
111
+ blockCacheFilterHit: number;
112
+ blockCacheFilterMiss: number;
113
+ blockCacheHit: number;
114
+ blockCacheIndexHit: number;
115
+ blockCacheIndexMiss: number;
116
+ blockCacheMiss: number;
117
+ blockCachePinnedUsage: number;
118
+ blockCacheUsage: number;
119
+ bytesRead: number;
120
+ bytesWritten: number;
121
+ dbFlushMicros: StatsHistogramData;
122
+ dbGetMicros: StatsHistogramData;
123
+ dbSeekMicros: StatsHistogramData;
124
+ dbWriteMicros: StatsHistogramData;
125
+ noFileErrors: number;
126
+ numberKeysRead: number;
127
+ numberKeysWritten: number;
128
+ numberReseeksIteration: number;
129
+ numRunningFlushes: number;
130
+ oldestSnapshotTime: number;
131
+ stallMicros: number;
132
+ txnOverheadMutexOldCommitMap: number;
133
+ txnOverheadMutexPrepare: number;
134
+ txnOverheadMutexSnapshot: number;
135
+ };
136
+ type RocksDBTableStats = {
137
+ blobdbValueSize: StatsHistogramData;
138
+ bloomFilterFullPositive: number;
139
+ bloomFilterFullTruePositive: number;
140
+ bloomFilterUseful: number;
141
+ compactReadBytes: number;
142
+ compactWriteBytes: number;
143
+ compactionCancelled: number;
144
+ compactionPending: number;
145
+ compactionTimesMicros: StatsHistogramData;
146
+ curSizeActiveMemTable: number;
147
+ curSizeAllMemTables: number;
148
+ currentSuperVersionNumber: number;
149
+ dbIterBytesRead: number;
150
+ dbWriteStall: StatsHistogramData;
151
+ estimateLiveDataSize: number;
152
+ estimateNumKeys: number;
153
+ estimatePendingCompactionBytes: number;
154
+ liveBlobFileSize: number;
155
+ liveSstFilesSize: number;
156
+ memTableFlushPending: number;
157
+ memtableHit: number;
158
+ memtableMiss: number;
159
+ numBlobFiles: number;
160
+ numDeletesActiveMemTable: number;
161
+ numEntriesActiveMemTable: number;
162
+ numImmutableMemTable: number;
163
+ numImmutableMemTableFlushed: number;
164
+ numLiveVersions: number;
165
+ numRunningCompactions: number;
166
+ readAmpEstimateUsefulBytes: number;
167
+ readAmpTotalReadBytes: number;
168
+ sizeAllMemTables: number;
169
+ sstReadMicros: StatsHistogramData;
170
+ totalBlobFileSize: number;
171
+ totalSstFilesSize: number;
172
+ };
173
+ type TableStats = RocksDBTableStats | Pick<LMDBStats, 'entryCount' | 'overflowPages' | 'treeBranchPageCount' | 'treeDepth' | 'treeLeafPageCount'>;
174
+ type DBStats = RocksDBStats & {
175
+ audit?: Pick<LMDBStats, 'treeDepth' | 'treeBranchPageCount' | 'treeLeafPageCount' | 'entryCount' | 'overflowPages'>;
176
+ readers?: {
177
+ pid: string;
178
+ thread: string;
179
+ txnid: string;
180
+ }[];
181
+ tables: Record<string, TableStats>;
182
+ };
183
+ type DatabaseMetrics = {
184
+ [dbName: string]: DBStats;
185
+ };
39
186
  /**
40
- * gets system information
41
- * @returns {Promise<Pick<si.Systeminformation.OsData, "platform" | "distro" | "release" | "codename" | "kernel" | "arch" | "hostname">|{}>}
187
+ * Get RocksDB or LMDB metrics for all databases and tables.
188
+ * @returns {Promise<DatabaseMetrics>}
42
189
  */
43
- export function getSystemInformation(): Promise<Pick<si.Systeminformation.OsData, "platform" | "distro" | "release" | "codename" | "kernel" | "arch" | "hostname"> | {}>;
190
+ export declare function getMetrics(): Promise<DatabaseMetrics>;
44
191
  /**
45
- *
192
+ * Retrieves system information for the requested attributes.
46
193
  * @param {SystemInformationRequest} systemInfoReq
47
194
  * @returns {Promise<SystemInformationResponse>}
48
195
  */
49
- export function systemInformation(systemInfoReq: SystemInformationRequest): Promise<SystemInformationResponse>;
50
- export function getTableSize(): Promise<import("../../dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js")[]>;
51
- export function getMetrics(): Promise<{}>;
52
- export class SystemInformationRequest {
53
- constructor(attributes: any);
54
- operator: "system_information";
55
- attributes: any;
56
- }
57
- import si = require("systeminformation");
58
- declare class SystemInformationResponse {
59
- constructor(system: any, time: any, cpu: any, memory: any, disk: any, network: any, harperdbProcesses: any);
60
- system: any;
61
- time: any;
62
- cpu: any;
63
- memory: any;
64
- disk: any;
65
- network: any;
66
- harperdb_processes: any;
67
- }
196
+ export declare function systemInformation(systemInfoReq: SystemInformationRequest): Promise<SystemInformationResponse>;
68
197
  export {};