@harperfast/harper 5.0.0-alpha.10

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 (879) hide show
  1. package/CODE_OF_CONDUCT.md +83 -0
  2. package/LICENSE +201 -0
  3. package/README.md +54 -0
  4. package/SECURITY.md +18 -0
  5. package/SUPPORT.md +26 -0
  6. package/dist/bin/BinObjects.d.ts +9 -0
  7. package/dist/bin/BinObjects.js +15 -0
  8. package/dist/bin/BinObjects.js.map +1 -0
  9. package/dist/bin/cliOperations.d.ts +12 -0
  10. package/dist/bin/cliOperations.js +156 -0
  11. package/dist/bin/cliOperations.js.map +1 -0
  12. package/dist/bin/copyDb.d.ts +2 -0
  13. package/dist/bin/copyDb.js +298 -0
  14. package/dist/bin/copyDb.js.map +1 -0
  15. package/dist/bin/harper.d.ts +2 -0
  16. package/dist/bin/harper.js +148 -0
  17. package/dist/bin/harper.js.map +1 -0
  18. package/dist/bin/install.d.ts +2 -0
  19. package/dist/bin/install.js +16 -0
  20. package/dist/bin/install.js.map +1 -0
  21. package/dist/bin/lite.d.ts +1 -0
  22. package/dist/bin/lite.js +6 -0
  23. package/dist/bin/lite.js.map +1 -0
  24. package/dist/bin/restart.d.ts +13 -0
  25. package/dist/bin/restart.js +194 -0
  26. package/dist/bin/restart.js.map +1 -0
  27. package/dist/bin/run.d.ts +21 -0
  28. package/dist/bin/run.js +365 -0
  29. package/dist/bin/run.js.map +1 -0
  30. package/dist/bin/status.d.ts +2 -0
  31. package/dist/bin/status.js +56 -0
  32. package/dist/bin/status.js.map +1 -0
  33. package/dist/bin/stop.d.ts +2 -0
  34. package/dist/bin/stop.js +17 -0
  35. package/dist/bin/stop.js.map +1 -0
  36. package/dist/bin/upgrade.d.ts +7 -0
  37. package/dist/bin/upgrade.js +111 -0
  38. package/dist/bin/upgrade.js.map +1 -0
  39. package/dist/components/Application.d.ts +110 -0
  40. package/dist/components/Application.js +509 -0
  41. package/dist/components/Application.js.map +1 -0
  42. package/dist/components/ApplicationScope.d.ts +28 -0
  43. package/dist/components/ApplicationScope.js +81 -0
  44. package/dist/components/ApplicationScope.js.map +1 -0
  45. package/dist/components/Component.d.ts +21 -0
  46. package/dist/components/Component.js +43 -0
  47. package/dist/components/Component.js.map +1 -0
  48. package/dist/components/ComponentV1.d.ts +69 -0
  49. package/dist/components/ComponentV1.js +263 -0
  50. package/dist/components/ComponentV1.js.map +1 -0
  51. package/dist/components/DEFAULT_CONFIG.d.ts +18 -0
  52. package/dist/components/DEFAULT_CONFIG.js +22 -0
  53. package/dist/components/DEFAULT_CONFIG.js.map +1 -0
  54. package/dist/components/EntryHandler.d.ts +61 -0
  55. package/dist/components/EntryHandler.js +148 -0
  56. package/dist/components/EntryHandler.js.map +1 -0
  57. package/dist/components/OptionsWatcher.d.ts +75 -0
  58. package/dist/components/OptionsWatcher.js +281 -0
  59. package/dist/components/OptionsWatcher.js.map +1 -0
  60. package/dist/components/PluginModule.d.ts +5 -0
  61. package/dist/components/PluginModule.js +3 -0
  62. package/dist/components/PluginModule.js.map +1 -0
  63. package/dist/components/Scope.d.ts +49 -0
  64. package/dist/components/Scope.js +262 -0
  65. package/dist/components/Scope.js.map +1 -0
  66. package/dist/components/componentLoader.js +498 -0
  67. package/dist/components/componentLoader.js.map +1 -0
  68. package/dist/components/deriveCommonPatternBase.d.ts +1 -0
  69. package/dist/components/deriveCommonPatternBase.js +34 -0
  70. package/dist/components/deriveCommonPatternBase.js.map +1 -0
  71. package/dist/components/deriveGlobOptions.d.ts +13 -0
  72. package/dist/components/deriveGlobOptions.js +30 -0
  73. package/dist/components/deriveGlobOptions.js.map +1 -0
  74. package/dist/components/deriveURLPath.d.ts +3 -0
  75. package/dist/components/deriveURLPath.js +55 -0
  76. package/dist/components/deriveURLPath.js.map +1 -0
  77. package/dist/components/operations.d.ts +97 -0
  78. package/dist/components/operations.js +556 -0
  79. package/dist/components/operations.js.map +1 -0
  80. package/dist/components/operationsValidation.d.ts +44 -0
  81. package/dist/components/operationsValidation.js +221 -0
  82. package/dist/components/operationsValidation.js.map +1 -0
  83. package/dist/components/packageComponent.d.ts +8 -0
  84. package/dist/components/packageComponent.js +42 -0
  85. package/dist/components/packageComponent.js.map +1 -0
  86. package/dist/components/requestRestart.d.ts +3 -0
  87. package/dist/components/requestRestart.js +27 -0
  88. package/dist/components/requestRestart.js.map +1 -0
  89. package/dist/components/resolveBaseURLPath.d.ts +15 -0
  90. package/dist/components/resolveBaseURLPath.js +38 -0
  91. package/dist/components/resolveBaseURLPath.js.map +1 -0
  92. package/dist/components/status/ComponentStatus.d.ts +61 -0
  93. package/dist/components/status/ComponentStatus.js +102 -0
  94. package/dist/components/status/ComponentStatus.js.map +1 -0
  95. package/dist/components/status/ComponentStatusRegistry.d.ts +89 -0
  96. package/dist/components/status/ComponentStatusRegistry.js +195 -0
  97. package/dist/components/status/ComponentStatusRegistry.js.map +1 -0
  98. package/dist/components/status/api.d.ts +104 -0
  99. package/dist/components/status/api.js +137 -0
  100. package/dist/components/status/api.js.map +1 -0
  101. package/dist/components/status/crossThread.d.ts +62 -0
  102. package/dist/components/status/crossThread.js +343 -0
  103. package/dist/components/status/crossThread.js.map +1 -0
  104. package/dist/components/status/errors.d.ts +68 -0
  105. package/dist/components/status/errors.js +123 -0
  106. package/dist/components/status/errors.js.map +1 -0
  107. package/dist/components/status/index.d.ts +35 -0
  108. package/dist/components/status/index.js +75 -0
  109. package/dist/components/status/index.js.map +1 -0
  110. package/dist/components/status/internal.d.ts +40 -0
  111. package/dist/components/status/internal.js +76 -0
  112. package/dist/components/status/internal.js.map +1 -0
  113. package/dist/components/status/registry.d.ts +10 -0
  114. package/dist/components/status/registry.js +14 -0
  115. package/dist/components/status/registry.js.map +1 -0
  116. package/dist/components/status/types.d.ts +94 -0
  117. package/dist/components/status/types.js +20 -0
  118. package/dist/components/status/types.js.map +1 -0
  119. package/dist/config/RootConfigWatcher.d.ts +10 -0
  120. package/dist/config/RootConfigWatcher.js +59 -0
  121. package/dist/config/RootConfigWatcher.js.map +1 -0
  122. package/dist/config/configHelpers.d.ts +6 -0
  123. package/dist/config/configHelpers.js +47 -0
  124. package/dist/config/configHelpers.js.map +1 -0
  125. package/dist/config/configUtils.d.ts +85 -0
  126. package/dist/config/configUtils.js +801 -0
  127. package/dist/config/configUtils.js.map +1 -0
  128. package/dist/config/harperConfigEnvVars.d.ts +46 -0
  129. package/dist/config/harperConfigEnvVars.js +527 -0
  130. package/dist/config/harperConfigEnvVars.js.map +1 -0
  131. package/dist/dataLayer/CreateAttributeObject.d.ts +19 -0
  132. package/dist/dataLayer/CreateAttributeObject.js +23 -0
  133. package/dist/dataLayer/CreateAttributeObject.js.map +1 -0
  134. package/dist/dataLayer/CreateTableObject.d.ts +7 -0
  135. package/dist/dataLayer/CreateTableObject.js +10 -0
  136. package/dist/dataLayer/CreateTableObject.js.map +1 -0
  137. package/dist/dataLayer/DataLayerObjects.d.ts +22 -0
  138. package/dist/dataLayer/DataLayerObjects.js +33 -0
  139. package/dist/dataLayer/DataLayerObjects.js.map +1 -0
  140. package/dist/dataLayer/DeleteBeforeObject.d.ts +18 -0
  141. package/dist/dataLayer/DeleteBeforeObject.js +21 -0
  142. package/dist/dataLayer/DeleteBeforeObject.js.map +1 -0
  143. package/dist/dataLayer/DeleteObject.d.ts +19 -0
  144. package/dist/dataLayer/DeleteObject.js +23 -0
  145. package/dist/dataLayer/DeleteObject.js.map +1 -0
  146. package/dist/dataLayer/DropAttributeObject.d.ts +7 -0
  147. package/dist/dataLayer/DropAttributeObject.js +10 -0
  148. package/dist/dataLayer/DropAttributeObject.js.map +1 -0
  149. package/dist/dataLayer/GetBackupObject.d.ts +16 -0
  150. package/dist/dataLayer/GetBackupObject.js +20 -0
  151. package/dist/dataLayer/GetBackupObject.js.map +1 -0
  152. package/dist/dataLayer/InsertObject.d.ts +20 -0
  153. package/dist/dataLayer/InsertObject.js +24 -0
  154. package/dist/dataLayer/InsertObject.js.map +1 -0
  155. package/dist/dataLayer/ReadAuditLogObject.d.ts +18 -0
  156. package/dist/dataLayer/ReadAuditLogObject.js +22 -0
  157. package/dist/dataLayer/ReadAuditLogObject.js.map +1 -0
  158. package/dist/dataLayer/SQLSearch.d.ts +171 -0
  159. package/dist/dataLayer/SQLSearch.js +1168 -0
  160. package/dist/dataLayer/SQLSearch.js.map +1 -0
  161. package/dist/dataLayer/SearchByConditionsObject.d.ts +85 -0
  162. package/dist/dataLayer/SearchByConditionsObject.js +57 -0
  163. package/dist/dataLayer/SearchByConditionsObject.js.map +1 -0
  164. package/dist/dataLayer/SearchByHashObject.d.ts +17 -0
  165. package/dist/dataLayer/SearchByHashObject.js +20 -0
  166. package/dist/dataLayer/SearchByHashObject.js.map +1 -0
  167. package/dist/dataLayer/SearchObject.d.ts +30 -0
  168. package/dist/dataLayer/SearchObject.js +33 -0
  169. package/dist/dataLayer/SearchObject.js.map +1 -0
  170. package/dist/dataLayer/SqlSearchObject.d.ts +10 -0
  171. package/dist/dataLayer/SqlSearchObject.js +13 -0
  172. package/dist/dataLayer/SqlSearchObject.js.map +1 -0
  173. package/dist/dataLayer/UpdateObject.d.ts +18 -0
  174. package/dist/dataLayer/UpdateObject.js +22 -0
  175. package/dist/dataLayer/UpdateObject.js.map +1 -0
  176. package/dist/dataLayer/UpsertObject.d.ts +18 -0
  177. package/dist/dataLayer/UpsertObject.js +22 -0
  178. package/dist/dataLayer/UpsertObject.js.map +1 -0
  179. package/dist/dataLayer/bulkLoad.d.ts +28 -0
  180. package/dist/dataLayer/bulkLoad.js +624 -0
  181. package/dist/dataLayer/bulkLoad.js.map +1 -0
  182. package/dist/dataLayer/dataObjects/BulkLoadObjects.d.ts +17 -0
  183. package/dist/dataLayer/dataObjects/BulkLoadObjects.js +25 -0
  184. package/dist/dataLayer/dataObjects/BulkLoadObjects.js.map +1 -0
  185. package/dist/dataLayer/dataObjects/UpsertObject.d.ts +18 -0
  186. package/dist/dataLayer/dataObjects/UpsertObject.js +22 -0
  187. package/dist/dataLayer/dataObjects/UpsertObject.js.map +1 -0
  188. package/dist/dataLayer/delete.d.ts +22 -0
  189. package/dist/dataLayer/delete.js +111 -0
  190. package/dist/dataLayer/delete.js.map +1 -0
  191. package/dist/dataLayer/export.d.ts +15 -0
  192. package/dist/dataLayer/export.js +302 -0
  193. package/dist/dataLayer/export.js.map +1 -0
  194. package/dist/dataLayer/getBackup.d.ts +8 -0
  195. package/dist/dataLayer/getBackup.js +28 -0
  196. package/dist/dataLayer/getBackup.js.map +1 -0
  197. package/dist/dataLayer/harperBridge/BridgeMethods.d.ts +24 -0
  198. package/dist/dataLayer/harperBridge/BridgeMethods.js +62 -0
  199. package/dist/dataLayer/harperBridge/BridgeMethods.js.map +1 -0
  200. package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +104 -0
  201. package/dist/dataLayer/harperBridge/ResourceBridge.js +630 -0
  202. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -0
  203. package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateReturnObj.d.ts +14 -0
  204. package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateReturnObj.js +24 -0
  205. package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateReturnObj.js.map +1 -0
  206. package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.d.ts +11 -0
  207. package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +68 -0
  208. package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js.map +1 -0
  209. package/dist/dataLayer/harperBridge/harperBridge.d.ts +2 -0
  210. package/dist/dataLayer/harperBridge/harperBridge.js +18 -0
  211. package/dist/dataLayer/harperBridge/harperBridge.js.map +1 -0
  212. package/dist/dataLayer/harperBridge/lmdbBridge/LMDBBridge.d.ts +47 -0
  213. package/dist/dataLayer/harperBridge/lmdbBridge/LMDBBridge.js +99 -0
  214. package/dist/dataLayer/harperBridge/lmdbBridge/LMDBBridge.js.map +1 -0
  215. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.d.ts +15 -0
  216. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +18 -0
  217. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js.map +1 -0
  218. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.d.ts +12 -0
  219. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +74 -0
  220. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js.map +1 -0
  221. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.d.ts +13 -0
  222. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +54 -0
  223. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js.map +1 -0
  224. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.d.ts +6 -0
  225. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +23 -0
  226. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js.map +1 -0
  227. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.d.ts +8 -0
  228. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +62 -0
  229. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js.map +1 -0
  230. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.d.ts +8 -0
  231. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +82 -0
  232. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js.map +1 -0
  233. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.d.ts +11 -0
  234. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +76 -0
  235. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js.map +1 -0
  236. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.d.ts +9 -0
  237. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +83 -0
  238. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js.map +1 -0
  239. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.d.ts +6 -0
  240. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +73 -0
  241. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js.map +1 -0
  242. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.d.ts +6 -0
  243. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +110 -0
  244. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js.map +1 -0
  245. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.d.ts +14 -0
  246. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +33 -0
  247. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js.map +1 -0
  248. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.d.ts +7 -0
  249. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +110 -0
  250. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js.map +1 -0
  251. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.d.ts +6 -0
  252. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +21 -0
  253. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js.map +1 -0
  254. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.d.ts +14 -0
  255. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +25 -0
  256. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js.map +1 -0
  257. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.d.ts +7 -0
  258. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +180 -0
  259. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js.map +1 -0
  260. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.d.ts +8 -0
  261. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +134 -0
  262. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js.map +1 -0
  263. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.d.ts +6 -0
  264. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +14 -0
  265. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js.map +1 -0
  266. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.d.ts +15 -0
  267. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +26 -0
  268. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js.map +1 -0
  269. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbTransaction.d.ts +8 -0
  270. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbTransaction.js +17 -0
  271. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbTransaction.js.map +1 -0
  272. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.d.ts +12 -0
  273. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +52 -0
  274. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js.map +1 -0
  275. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.d.ts +15 -0
  276. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +56 -0
  277. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js.map +1 -0
  278. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.d.ts +16 -0
  279. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +20 -0
  280. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js.map +1 -0
  281. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBDeleteTransactionObject.d.ts +16 -0
  282. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBDeleteTransactionObject.js +22 -0
  283. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBDeleteTransactionObject.js.map +1 -0
  284. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBInsertTransactionObject.d.ts +16 -0
  285. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBInsertTransactionObject.js +21 -0
  286. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBInsertTransactionObject.js.map +1 -0
  287. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBTransactionObject.d.ts +19 -0
  288. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBTransactionObject.js +22 -0
  289. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBTransactionObject.js.map +1 -0
  290. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpdateTransactionObject.d.ts +18 -0
  291. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpdateTransactionObject.js +23 -0
  292. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpdateTransactionObject.js.map +1 -0
  293. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpsertTransactionObject.d.ts +18 -0
  294. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpsertTransactionObject.js +23 -0
  295. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpsertTransactionObject.js.map +1 -0
  296. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.d.ts +21 -0
  297. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js +24 -0
  298. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js.map +1 -0
  299. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.d.ts +7 -0
  300. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +19 -0
  301. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js.map +1 -0
  302. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.d.ts +22 -0
  303. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +137 -0
  304. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -0
  305. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.d.ts +9 -0
  306. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +73 -0
  307. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js.map +1 -0
  308. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.d.ts +8 -0
  309. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +38 -0
  310. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js.map +1 -0
  311. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.d.ts +8 -0
  312. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +29 -0
  313. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js.map +1 -0
  314. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.d.ts +17 -0
  315. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +63 -0
  316. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js.map +1 -0
  317. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.d.ts +106 -0
  318. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +251 -0
  319. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js.map +1 -0
  320. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.d.ts +8 -0
  321. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +66 -0
  322. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js.map +1 -0
  323. package/dist/dataLayer/hdbInfoController.d.ts +28 -0
  324. package/dist/dataLayer/hdbInfoController.js +203 -0
  325. package/dist/dataLayer/hdbInfoController.js.map +1 -0
  326. package/dist/dataLayer/insert.d.ts +44 -0
  327. package/dist/dataLayer/insert.js +192 -0
  328. package/dist/dataLayer/insert.js.map +1 -0
  329. package/dist/dataLayer/readAuditLog.d.ts +8 -0
  330. package/dist/dataLayer/readAuditLog.js +37 -0
  331. package/dist/dataLayer/readAuditLog.js.map +1 -0
  332. package/dist/dataLayer/schema.d.ts +24 -0
  333. package/dist/dataLayer/schema.js +225 -0
  334. package/dist/dataLayer/schema.js.map +1 -0
  335. package/dist/dataLayer/schemaDescribe.d.ts +26 -0
  336. package/dist/dataLayer/schemaDescribe.js +265 -0
  337. package/dist/dataLayer/schemaDescribe.js.map +1 -0
  338. package/dist/dataLayer/search.d.ts +4 -0
  339. package/dist/dataLayer/search.js +56 -0
  340. package/dist/dataLayer/search.js.map +1 -0
  341. package/dist/dataLayer/transaction.d.ts +8 -0
  342. package/dist/dataLayer/transaction.js +16 -0
  343. package/dist/dataLayer/transaction.js.map +1 -0
  344. package/dist/dataLayer/update.d.ts +15 -0
  345. package/dist/dataLayer/update.js +107 -0
  346. package/dist/dataLayer/update.js.map +1 -0
  347. package/dist/globals.d.ts +7 -0
  348. package/dist/globals.js +12 -0
  349. package/dist/globals.js.map +1 -0
  350. package/dist/index.d.ts +7 -0
  351. package/dist/index.js +40 -0
  352. package/dist/index.js.map +1 -0
  353. package/dist/json/systemSchema.json +373 -0
  354. package/dist/launchServiceScripts/utility/checkNodeVersion.d.ts +4 -0
  355. package/dist/launchServiceScripts/utility/checkNodeVersion.js +13 -0
  356. package/dist/launchServiceScripts/utility/checkNodeVersion.js.map +1 -0
  357. package/dist/resources/DatabaseTransaction.d.ts +96 -0
  358. package/dist/resources/DatabaseTransaction.js +354 -0
  359. package/dist/resources/DatabaseTransaction.js.map +1 -0
  360. package/dist/resources/ErrorResource.d.ts +26 -0
  361. package/dist/resources/ErrorResource.js +60 -0
  362. package/dist/resources/ErrorResource.js.map +1 -0
  363. package/dist/resources/IterableEventQueue.d.ts +19 -0
  364. package/dist/resources/IterableEventQueue.js +103 -0
  365. package/dist/resources/IterableEventQueue.js.map +1 -0
  366. package/dist/resources/LMDBTransaction.d.ts +43 -0
  367. package/dist/resources/LMDBTransaction.js +371 -0
  368. package/dist/resources/LMDBTransaction.js.map +1 -0
  369. package/dist/resources/RecordEncoder.d.ts +65 -0
  370. package/dist/resources/RecordEncoder.js +700 -0
  371. package/dist/resources/RecordEncoder.js.map +1 -0
  372. package/dist/resources/RequestTarget.d.ts +57 -0
  373. package/dist/resources/RequestTarget.js +91 -0
  374. package/dist/resources/RequestTarget.js.map +1 -0
  375. package/dist/resources/Resource.d.ts +152 -0
  376. package/dist/resources/Resource.js +727 -0
  377. package/dist/resources/Resource.js.map +1 -0
  378. package/dist/resources/ResourceInterface.d.ts +162 -0
  379. package/dist/resources/ResourceInterface.js +3 -0
  380. package/dist/resources/ResourceInterface.js.map +1 -0
  381. package/dist/resources/ResourceInterfaceV2.d.ts +21 -0
  382. package/dist/resources/ResourceInterfaceV2.js +3 -0
  383. package/dist/resources/ResourceInterfaceV2.js.map +1 -0
  384. package/dist/resources/ResourceV2.d.ts +30 -0
  385. package/dist/resources/ResourceV2.js +27 -0
  386. package/dist/resources/ResourceV2.js.map +1 -0
  387. package/dist/resources/Resources.d.ts +36 -0
  388. package/dist/resources/Resources.js +155 -0
  389. package/dist/resources/Resources.js.map +1 -0
  390. package/dist/resources/RocksIndexStore.d.ts +24 -0
  391. package/dist/resources/RocksIndexStore.js +54 -0
  392. package/dist/resources/RocksIndexStore.js.map +1 -0
  393. package/dist/resources/RocksTransactionLogStore.d.ts +60 -0
  394. package/dist/resources/RocksTransactionLogStore.js +344 -0
  395. package/dist/resources/RocksTransactionLogStore.js.map +1 -0
  396. package/dist/resources/Table.d.ts +854 -0
  397. package/dist/resources/Table.js +4350 -0
  398. package/dist/resources/Table.js.map +1 -0
  399. package/dist/resources/analytics/hostnames.d.ts +16 -0
  400. package/dist/resources/analytics/hostnames.js +72 -0
  401. package/dist/resources/analytics/hostnames.js.map +1 -0
  402. package/dist/resources/analytics/metadata.d.ts +9 -0
  403. package/dist/resources/analytics/metadata.js +12 -0
  404. package/dist/resources/analytics/metadata.js.map +1 -0
  405. package/dist/resources/analytics/profile.d.ts +2 -0
  406. package/dist/resources/analytics/profile.js +144 -0
  407. package/dist/resources/analytics/profile.js.map +1 -0
  408. package/dist/resources/analytics/read.d.ts +41 -0
  409. package/dist/resources/analytics/read.js +189 -0
  410. package/dist/resources/analytics/read.js.map +1 -0
  411. package/dist/resources/analytics/write.d.ts +131 -0
  412. package/dist/resources/analytics/write.js +822 -0
  413. package/dist/resources/analytics/write.js.map +1 -0
  414. package/dist/resources/auditStore.d.ts +81 -0
  415. package/dist/resources/auditStore.js +572 -0
  416. package/dist/resources/auditStore.js.map +1 -0
  417. package/dist/resources/blob.d.ts +137 -0
  418. package/dist/resources/blob.js +1273 -0
  419. package/dist/resources/blob.js.map +1 -0
  420. package/dist/resources/crdt.d.ts +19 -0
  421. package/dist/resources/crdt.js +146 -0
  422. package/dist/resources/crdt.js.map +1 -0
  423. package/dist/resources/dataLoader.d.ts +98 -0
  424. package/dist/resources/dataLoader.js +461 -0
  425. package/dist/resources/dataLoader.js.map +1 -0
  426. package/dist/resources/databases.d.ts +131 -0
  427. package/dist/resources/databases.js +1220 -0
  428. package/dist/resources/databases.js.map +1 -0
  429. package/dist/resources/graphql.d.ts +19 -0
  430. package/dist/resources/graphql.js +223 -0
  431. package/dist/resources/graphql.js.map +1 -0
  432. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +87 -0
  433. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +598 -0
  434. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -0
  435. package/dist/resources/indexes/customIndexes.d.ts +4 -0
  436. package/dist/resources/indexes/customIndexes.js +10 -0
  437. package/dist/resources/indexes/customIndexes.js.map +1 -0
  438. package/dist/resources/indexes/vector.d.ts +2 -0
  439. package/dist/resources/indexes/vector.js +40 -0
  440. package/dist/resources/indexes/vector.js.map +1 -0
  441. package/dist/resources/jsResource.d.ts +24 -0
  442. package/dist/resources/jsResource.js +82 -0
  443. package/dist/resources/jsResource.js.map +1 -0
  444. package/dist/resources/loadEnv.d.ts +5 -0
  445. package/dist/resources/loadEnv.js +28 -0
  446. package/dist/resources/loadEnv.js.map +1 -0
  447. package/dist/resources/login.d.ts +3 -0
  448. package/dist/resources/login.js +22 -0
  449. package/dist/resources/login.js.map +1 -0
  450. package/dist/resources/openApi.d.ts +27 -0
  451. package/dist/resources/openApi.js +327 -0
  452. package/dist/resources/openApi.js.map +1 -0
  453. package/dist/resources/registrationDeprecated.d.ts +4 -0
  454. package/dist/resources/registrationDeprecated.js +11 -0
  455. package/dist/resources/registrationDeprecated.js.map +1 -0
  456. package/dist/resources/replayLogs.d.ts +2 -0
  457. package/dist/resources/replayLogs.js +170 -0
  458. package/dist/resources/replayLogs.js.map +1 -0
  459. package/dist/resources/roles.d.ts +11 -0
  460. package/dist/resources/roles.js +102 -0
  461. package/dist/resources/roles.js.map +1 -0
  462. package/dist/resources/search.d.ts +39 -0
  463. package/dist/resources/search.js +1333 -0
  464. package/dist/resources/search.js.map +1 -0
  465. package/dist/resources/tracked.d.ts +49 -0
  466. package/dist/resources/tracked.js +665 -0
  467. package/dist/resources/tracked.js.map +1 -0
  468. package/dist/resources/transaction.d.ts +9 -0
  469. package/dist/resources/transaction.js +89 -0
  470. package/dist/resources/transaction.js.map +1 -0
  471. package/dist/resources/transactionBroadcast.d.ts +38 -0
  472. package/dist/resources/transactionBroadcast.js +263 -0
  473. package/dist/resources/transactionBroadcast.js.map +1 -0
  474. package/dist/security/auth.d.ts +9 -0
  475. package/dist/security/auth.js +408 -0
  476. package/dist/security/auth.js.map +1 -0
  477. package/dist/security/certificateVerification/certificateVerificationSource.d.ts +18 -0
  478. package/dist/security/certificateVerification/certificateVerificationSource.js +78 -0
  479. package/dist/security/certificateVerification/certificateVerificationSource.js.map +1 -0
  480. package/dist/security/certificateVerification/configValidation.d.ts +14 -0
  481. package/dist/security/certificateVerification/configValidation.js +101 -0
  482. package/dist/security/certificateVerification/configValidation.js.map +1 -0
  483. package/dist/security/certificateVerification/crlVerification.d.ts +29 -0
  484. package/dist/security/certificateVerification/crlVerification.js +564 -0
  485. package/dist/security/certificateVerification/crlVerification.js.map +1 -0
  486. package/dist/security/certificateVerification/index.d.ts +31 -0
  487. package/dist/security/certificateVerification/index.js +111 -0
  488. package/dist/security/certificateVerification/index.js.map +1 -0
  489. package/dist/security/certificateVerification/ocspVerification.d.ts +23 -0
  490. package/dist/security/certificateVerification/ocspVerification.js +117 -0
  491. package/dist/security/certificateVerification/ocspVerification.js.map +1 -0
  492. package/dist/security/certificateVerification/pkijs-ed25519-patch.d.ts +14 -0
  493. package/dist/security/certificateVerification/pkijs-ed25519-patch.js +183 -0
  494. package/dist/security/certificateVerification/pkijs-ed25519-patch.js.map +1 -0
  495. package/dist/security/certificateVerification/types.d.ts +105 -0
  496. package/dist/security/certificateVerification/types.js +6 -0
  497. package/dist/security/certificateVerification/types.js.map +1 -0
  498. package/dist/security/certificateVerification/verificationConfig.d.ts +29 -0
  499. package/dist/security/certificateVerification/verificationConfig.js +121 -0
  500. package/dist/security/certificateVerification/verificationConfig.js.map +1 -0
  501. package/dist/security/certificateVerification/verificationUtils.d.ts +79 -0
  502. package/dist/security/certificateVerification/verificationUtils.js +441 -0
  503. package/dist/security/certificateVerification/verificationUtils.js.map +1 -0
  504. package/dist/security/cryptoHash.d.ts +2 -0
  505. package/dist/security/cryptoHash.js +35 -0
  506. package/dist/security/cryptoHash.js.map +1 -0
  507. package/dist/security/data_objects/PermissionAttributeResponseObject.d.ts +11 -0
  508. package/dist/security/data_objects/PermissionAttributeResponseObject.js +14 -0
  509. package/dist/security/data_objects/PermissionAttributeResponseObject.js.map +1 -0
  510. package/dist/security/data_objects/PermissionResponseObject.d.ts +57 -0
  511. package/dist/security/data_objects/PermissionResponseObject.js +105 -0
  512. package/dist/security/data_objects/PermissionResponseObject.js.map +1 -0
  513. package/dist/security/data_objects/PermissionTableResponseObject.d.ts +16 -0
  514. package/dist/security/data_objects/PermissionTableResponseObject.js +19 -0
  515. package/dist/security/data_objects/PermissionTableResponseObject.js.map +1 -0
  516. package/dist/security/fastifyAuth.d.ts +2 -0
  517. package/dist/security/fastifyAuth.js +135 -0
  518. package/dist/security/fastifyAuth.js.map +1 -0
  519. package/dist/security/impersonation.d.ts +11 -0
  520. package/dist/security/impersonation.js +139 -0
  521. package/dist/security/impersonation.js.map +1 -0
  522. package/dist/security/jsLoader.d.ts +9 -0
  523. package/dist/security/jsLoader.js +522 -0
  524. package/dist/security/jsLoader.js.map +1 -0
  525. package/dist/security/keys.d.ts +119 -0
  526. package/dist/security/keys.js +866 -0
  527. package/dist/security/keys.js.map +1 -0
  528. package/dist/security/permissionsTranslator.d.ts +9 -0
  529. package/dist/security/permissionsTranslator.js +269 -0
  530. package/dist/security/permissionsTranslator.js.map +1 -0
  531. package/dist/security/role.d.ts +5 -0
  532. package/dist/security/role.js +160 -0
  533. package/dist/security/role.js.map +1 -0
  534. package/dist/security/tokenAuthentication.d.ts +38 -0
  535. package/dist/security/tokenAuthentication.js +205 -0
  536. package/dist/security/tokenAuthentication.js.map +1 -0
  537. package/dist/security/user.d.ts +77 -0
  538. package/dist/security/user.js +349 -0
  539. package/dist/security/user.js.map +1 -0
  540. package/dist/server/DurableSubscriptionsSession.d.ts +74 -0
  541. package/dist/server/DurableSubscriptionsSession.js +511 -0
  542. package/dist/server/DurableSubscriptionsSession.js.map +1 -0
  543. package/dist/server/REST.d.ts +16 -0
  544. package/dist/server/REST.js +423 -0
  545. package/dist/server/REST.js.map +1 -0
  546. package/dist/server/Server.d.ts +62 -0
  547. package/dist/server/Server.js +27 -0
  548. package/dist/server/Server.js.map +1 -0
  549. package/dist/server/fastifyRoutes/helpers/getCORSOptions.d.ts +11 -0
  550. package/dist/server/fastifyRoutes/helpers/getCORSOptions.js +32 -0
  551. package/dist/server/fastifyRoutes/helpers/getCORSOptions.js.map +1 -0
  552. package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.d.ts +6 -0
  553. package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +13 -0
  554. package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js.map +1 -0
  555. package/dist/server/fastifyRoutes/helpers/getServerOptions.d.ts +12 -0
  556. package/dist/server/fastifyRoutes/helpers/getServerOptions.js +30 -0
  557. package/dist/server/fastifyRoutes/helpers/getServerOptions.js.map +1 -0
  558. package/dist/server/fastifyRoutes/plugins/hdbCore.d.ts +2 -0
  559. package/dist/server/fastifyRoutes/plugins/hdbCore.js +31 -0
  560. package/dist/server/fastifyRoutes/plugins/hdbCore.js.map +1 -0
  561. package/dist/server/fastifyRoutes.d.ts +25 -0
  562. package/dist/server/fastifyRoutes.js +235 -0
  563. package/dist/server/fastifyRoutes.js.map +1 -0
  564. package/dist/server/graphqlQuerying.d.ts +1 -0
  565. package/dist/server/graphqlQuerying.js +630 -0
  566. package/dist/server/graphqlQuerying.js.map +1 -0
  567. package/dist/server/http.d.ts +15 -0
  568. package/dist/server/http.js +650 -0
  569. package/dist/server/http.js.map +1 -0
  570. package/dist/server/itc/serverHandlers.d.ts +10 -0
  571. package/dist/server/itc/serverHandlers.js +153 -0
  572. package/dist/server/itc/serverHandlers.js.map +1 -0
  573. package/dist/server/itc/utility/ITCEventObject.d.ts +6 -0
  574. package/dist/server/itc/utility/ITCEventObject.js +9 -0
  575. package/dist/server/itc/utility/ITCEventObject.js.map +1 -0
  576. package/dist/server/jobs/JobObject.d.ts +15 -0
  577. package/dist/server/jobs/JobObject.js +22 -0
  578. package/dist/server/jobs/JobObject.js.map +1 -0
  579. package/dist/server/jobs/jobProcess.d.ts +1 -0
  580. package/dist/server/jobs/jobProcess.js +66 -0
  581. package/dist/server/jobs/jobProcess.js.map +1 -0
  582. package/dist/server/jobs/jobRunner.d.ts +11 -0
  583. package/dist/server/jobs/jobRunner.js +160 -0
  584. package/dist/server/jobs/jobRunner.js.map +1 -0
  585. package/dist/server/jobs/jobs.d.ts +20 -0
  586. package/dist/server/jobs/jobs.js +267 -0
  587. package/dist/server/jobs/jobs.js.map +1 -0
  588. package/dist/server/loadRootComponents.d.ts +5 -0
  589. package/dist/server/loadRootComponents.js +45 -0
  590. package/dist/server/loadRootComponents.js.map +1 -0
  591. package/dist/server/mqtt.d.ts +9 -0
  592. package/dist/server/mqtt.js +466 -0
  593. package/dist/server/mqtt.js.map +1 -0
  594. package/dist/server/nodeName.d.ts +5 -0
  595. package/dist/server/nodeName.js +84 -0
  596. package/dist/server/nodeName.js.map +1 -0
  597. package/dist/server/operationsServer.d.ts +48 -0
  598. package/dist/server/operationsServer.js +265 -0
  599. package/dist/server/operationsServer.js.map +1 -0
  600. package/dist/server/serverHelpers/Headers.d.ts +20 -0
  601. package/dist/server/serverHelpers/Headers.js +134 -0
  602. package/dist/server/serverHelpers/Headers.js.map +1 -0
  603. package/dist/server/serverHelpers/JSONStream.d.ts +14 -0
  604. package/dist/server/serverHelpers/JSONStream.js +322 -0
  605. package/dist/server/serverHelpers/JSONStream.js.map +1 -0
  606. package/dist/server/serverHelpers/OperationFunctionObject.d.ts +9 -0
  607. package/dist/server/serverHelpers/OperationFunctionObject.js +17 -0
  608. package/dist/server/serverHelpers/OperationFunctionObject.js.map +1 -0
  609. package/dist/server/serverHelpers/Request.d.ts +69 -0
  610. package/dist/server/serverHelpers/Request.js +141 -0
  611. package/dist/server/serverHelpers/Request.js.map +1 -0
  612. package/dist/server/serverHelpers/contentTypes.d.ts +57 -0
  613. package/dist/server/serverHelpers/contentTypes.js +639 -0
  614. package/dist/server/serverHelpers/contentTypes.js.map +1 -0
  615. package/dist/server/serverHelpers/requestTimePlugin.d.ts +2 -0
  616. package/dist/server/serverHelpers/requestTimePlugin.js +56 -0
  617. package/dist/server/serverHelpers/requestTimePlugin.js.map +1 -0
  618. package/dist/server/serverHelpers/serverHandlers.d.ts +6 -0
  619. package/dist/server/serverHelpers/serverHandlers.js +130 -0
  620. package/dist/server/serverHelpers/serverHandlers.js.map +1 -0
  621. package/dist/server/serverHelpers/serverUtilities.d.ts +29 -0
  622. package/dist/server/serverHelpers/serverUtilities.js +356 -0
  623. package/dist/server/serverHelpers/serverUtilities.js.map +1 -0
  624. package/dist/server/serverRegistry.d.ts +3 -0
  625. package/dist/server/serverRegistry.js +11 -0
  626. package/dist/server/serverRegistry.js.map +1 -0
  627. package/dist/server/static.d.ts +16 -0
  628. package/dist/server/static.js +164 -0
  629. package/dist/server/static.js.map +1 -0
  630. package/dist/server/status/definitions.d.ts +27 -0
  631. package/dist/server/status/definitions.js +22 -0
  632. package/dist/server/status/definitions.js.map +1 -0
  633. package/dist/server/status/index.d.ts +26 -0
  634. package/dist/server/status/index.js +89 -0
  635. package/dist/server/status/index.js.map +1 -0
  636. package/dist/server/storageReclamation.d.ts +18 -0
  637. package/dist/server/storageReclamation.js +96 -0
  638. package/dist/server/storageReclamation.js.map +1 -0
  639. package/dist/server/threads/itc.d.ts +53 -0
  640. package/dist/server/threads/itc.js +81 -0
  641. package/dist/server/threads/itc.js.map +1 -0
  642. package/dist/server/threads/manageThreads.d.ts +30 -0
  643. package/dist/server/threads/manageThreads.js +579 -0
  644. package/dist/server/threads/manageThreads.js.map +1 -0
  645. package/dist/server/threads/socketRouter.d.ts +6 -0
  646. package/dist/server/threads/socketRouter.js +395 -0
  647. package/dist/server/threads/socketRouter.js.map +1 -0
  648. package/dist/server/threads/threadServer.d.ts +5 -0
  649. package/dist/server/threads/threadServer.js +288 -0
  650. package/dist/server/threads/threadServer.js.map +1 -0
  651. package/dist/server/throttle.d.ts +7 -0
  652. package/dist/server/throttle.js +71 -0
  653. package/dist/server/throttle.js.map +1 -0
  654. package/dist/sqlTranslator/SelectValidator.d.ts +79 -0
  655. package/dist/sqlTranslator/SelectValidator.js +274 -0
  656. package/dist/sqlTranslator/SelectValidator.js.map +1 -0
  657. package/dist/sqlTranslator/alasqlFunctionImporter.d.ts +2 -0
  658. package/dist/sqlTranslator/alasqlFunctionImporter.js +55 -0
  659. package/dist/sqlTranslator/alasqlFunctionImporter.js.map +1 -0
  660. package/dist/sqlTranslator/deleteTranslator.d.ts +2 -0
  661. package/dist/sqlTranslator/deleteTranslator.js +56 -0
  662. package/dist/sqlTranslator/deleteTranslator.js.map +1 -0
  663. package/dist/sqlTranslator/index.d.ts +16 -0
  664. package/dist/sqlTranslator/index.js +215 -0
  665. package/dist/sqlTranslator/index.js.map +1 -0
  666. package/dist/sqlTranslator/sql_statement_bucket.d.ts +46 -0
  667. package/dist/sqlTranslator/sql_statement_bucket.js +430 -0
  668. package/dist/sqlTranslator/sql_statement_bucket.js.map +1 -0
  669. package/dist/upgrade/UpgradeObjects.d.ts +5 -0
  670. package/dist/upgrade/UpgradeObjects.js +12 -0
  671. package/dist/upgrade/UpgradeObjects.js.map +1 -0
  672. package/dist/upgrade/directives/directivesController.d.ts +30 -0
  673. package/dist/upgrade/directives/directivesController.js +76 -0
  674. package/dist/upgrade/directives/directivesController.js.map +1 -0
  675. package/dist/upgrade/directivesManager.d.ts +7 -0
  676. package/dist/upgrade/directivesManager.js +125 -0
  677. package/dist/upgrade/directivesManager.js.map +1 -0
  678. package/dist/upgrade/upgradePrompt.d.ts +13 -0
  679. package/dist/upgrade/upgradePrompt.js +102 -0
  680. package/dist/upgrade/upgradePrompt.js.map +1 -0
  681. package/dist/upgrade/upgradeUtilities.d.ts +10 -0
  682. package/dist/upgrade/upgradeUtilities.js +26 -0
  683. package/dist/upgrade/upgradeUtilities.js.map +1 -0
  684. package/dist/utility/AWS/AWSConnector.d.ts +2 -0
  685. package/dist/utility/AWS/AWSConnector.js +26 -0
  686. package/dist/utility/AWS/AWSConnector.js.map +1 -0
  687. package/dist/utility/OperationFunctionCaller.d.ts +9 -0
  688. package/dist/utility/OperationFunctionCaller.js +58 -0
  689. package/dist/utility/OperationFunctionCaller.js.map +1 -0
  690. package/dist/utility/assignCmdEnvVariables.d.ts +10 -0
  691. package/dist/utility/assignCmdEnvVariables.js +55 -0
  692. package/dist/utility/assignCmdEnvVariables.js.map +1 -0
  693. package/dist/utility/common_utils.d.ts +264 -0
  694. package/dist/utility/common_utils.js +806 -0
  695. package/dist/utility/common_utils.js.map +1 -0
  696. package/dist/utility/environment/environmentManager.d.ts +41 -0
  697. package/dist/utility/environment/environmentManager.js +179 -0
  698. package/dist/utility/environment/environmentManager.js.map +1 -0
  699. package/dist/utility/environment/systemInformation.d.ts +67 -0
  700. package/dist/utility/environment/systemInformation.js +326 -0
  701. package/dist/utility/environment/systemInformation.js.map +1 -0
  702. package/dist/utility/errors/commonErrors.d.ts +171 -0
  703. package/dist/utility/errors/commonErrors.js +230 -0
  704. package/dist/utility/errors/commonErrors.js.map +1 -0
  705. package/dist/utility/errors/hdbError.d.ts +76 -0
  706. package/dist/utility/errors/hdbError.js +128 -0
  707. package/dist/utility/errors/hdbError.js.map +1 -0
  708. package/dist/utility/functions/date/dateFunctions.d.ts +11 -0
  709. package/dist/utility/functions/date/dateFunctions.js +64 -0
  710. package/dist/utility/functions/date/dateFunctions.js.map +1 -0
  711. package/dist/utility/functions/geo.d.ts +74 -0
  712. package/dist/utility/functions/geo.js +311 -0
  713. package/dist/utility/functions/geo.js.map +1 -0
  714. package/dist/utility/functions/sql/alaSQLExtension.d.ts +13 -0
  715. package/dist/utility/functions/sql/alaSQLExtension.js +96 -0
  716. package/dist/utility/functions/sql/alaSQLExtension.js.map +1 -0
  717. package/dist/utility/globalSchema.d.ts +151 -0
  718. package/dist/utility/globalSchema.js +34 -0
  719. package/dist/utility/globalSchema.js.map +1 -0
  720. package/dist/utility/hdbTerms.d.ts +737 -0
  721. package/dist/utility/hdbTerms.js +756 -0
  722. package/dist/utility/hdbTerms.js.map +1 -0
  723. package/dist/utility/install/checkJWTTokensExist.d.ts +5 -0
  724. package/dist/utility/install/checkJWTTokensExist.js +53 -0
  725. package/dist/utility/install/checkJWTTokensExist.js.map +1 -0
  726. package/dist/utility/install/installer.d.ts +17 -0
  727. package/dist/utility/install/installer.js +569 -0
  728. package/dist/utility/install/installer.js.map +1 -0
  729. package/dist/utility/installation.d.ts +12 -0
  730. package/dist/utility/installation.js +64 -0
  731. package/dist/utility/installation.js.map +1 -0
  732. package/dist/utility/lmdb/DBIDefinition.d.ts +16 -0
  733. package/dist/utility/lmdb/DBIDefinition.js +19 -0
  734. package/dist/utility/lmdb/DBIDefinition.js.map +1 -0
  735. package/dist/utility/lmdb/DeleteRecordsResponseObject.d.ts +21 -0
  736. package/dist/utility/lmdb/DeleteRecordsResponseObject.js +24 -0
  737. package/dist/utility/lmdb/DeleteRecordsResponseObject.js.map +1 -0
  738. package/dist/utility/lmdb/InsertRecordsResponseObject.d.ts +18 -0
  739. package/dist/utility/lmdb/InsertRecordsResponseObject.js +21 -0
  740. package/dist/utility/lmdb/InsertRecordsResponseObject.js.map +1 -0
  741. package/dist/utility/lmdb/OpenDBIObject.d.ts +23 -0
  742. package/dist/utility/lmdb/OpenDBIObject.js +29 -0
  743. package/dist/utility/lmdb/OpenDBIObject.js.map +1 -0
  744. package/dist/utility/lmdb/OpenEnvironmentObject.d.ts +22 -0
  745. package/dist/utility/lmdb/OpenEnvironmentObject.js +40 -0
  746. package/dist/utility/lmdb/OpenEnvironmentObject.js.map +1 -0
  747. package/dist/utility/lmdb/UpdateRecordsResponseObject.d.ts +21 -0
  748. package/dist/utility/lmdb/UpdateRecordsResponseObject.js +24 -0
  749. package/dist/utility/lmdb/UpdateRecordsResponseObject.js.map +1 -0
  750. package/dist/utility/lmdb/UpsertRecordsResponseObject.d.ts +18 -0
  751. package/dist/utility/lmdb/UpsertRecordsResponseObject.js +21 -0
  752. package/dist/utility/lmdb/UpsertRecordsResponseObject.js.map +1 -0
  753. package/dist/utility/lmdb/cleanLMDBMap.d.ts +6 -0
  754. package/dist/utility/lmdb/cleanLMDBMap.js +63 -0
  755. package/dist/utility/lmdb/cleanLMDBMap.js.map +1 -0
  756. package/dist/utility/lmdb/commonUtility.d.ts +28 -0
  757. package/dist/utility/lmdb/commonUtility.js +120 -0
  758. package/dist/utility/lmdb/commonUtility.js.map +1 -0
  759. package/dist/utility/lmdb/deleteUtility.d.ts +10 -0
  760. package/dist/utility/lmdb/deleteUtility.js +115 -0
  761. package/dist/utility/lmdb/deleteUtility.js.map +1 -0
  762. package/dist/utility/lmdb/environmentUtility.d.ts +81 -0
  763. package/dist/utility/lmdb/environmentUtility.js +432 -0
  764. package/dist/utility/lmdb/environmentUtility.js.map +1 -0
  765. package/dist/utility/lmdb/searchCursorFunctions.d.ts +93 -0
  766. package/dist/utility/lmdb/searchCursorFunctions.js +174 -0
  767. package/dist/utility/lmdb/searchCursorFunctions.js.map +1 -0
  768. package/dist/utility/lmdb/searchUtility.d.ts +204 -0
  769. package/dist/utility/lmdb/searchUtility.js +724 -0
  770. package/dist/utility/lmdb/searchUtility.js.map +1 -0
  771. package/dist/utility/lmdb/terms.d.ts +34 -0
  772. package/dist/utility/lmdb/terms.js +52 -0
  773. package/dist/utility/lmdb/terms.js.map +1 -0
  774. package/dist/utility/lmdb/writeUtility.d.ts +32 -0
  775. package/dist/utility/lmdb/writeUtility.js +360 -0
  776. package/dist/utility/lmdb/writeUtility.js.map +1 -0
  777. package/dist/utility/logging/harper_logger.d.ts +141 -0
  778. package/dist/utility/logging/harper_logger.js +862 -0
  779. package/dist/utility/logging/harper_logger.js.map +1 -0
  780. package/dist/utility/logging/logRotator.d.ts +19 -0
  781. package/dist/utility/logging/logRotator.js +146 -0
  782. package/dist/utility/logging/logRotator.js.map +1 -0
  783. package/dist/utility/logging/logger.d.ts +11 -0
  784. package/dist/utility/logging/logger.js +19 -0
  785. package/dist/utility/logging/logger.js.map +1 -0
  786. package/dist/utility/logging/readLog.d.ts +8 -0
  787. package/dist/utility/logging/readLog.js +339 -0
  788. package/dist/utility/logging/readLog.js.map +1 -0
  789. package/dist/utility/logging/transactionLog.d.ts +8 -0
  790. package/dist/utility/logging/transactionLog.js +46 -0
  791. package/dist/utility/logging/transactionLog.js.map +1 -0
  792. package/dist/utility/mount_hdb.d.ts +2 -0
  793. package/dist/utility/mount_hdb.js +51 -0
  794. package/dist/utility/mount_hdb.js.map +1 -0
  795. package/dist/utility/npmUtilities.d.ts +6 -0
  796. package/dist/utility/npmUtilities.js +91 -0
  797. package/dist/utility/npmUtilities.js.map +1 -0
  798. package/dist/utility/operationPermissions.d.ts +36 -0
  799. package/dist/utility/operationPermissions.js +116 -0
  800. package/dist/utility/operationPermissions.js.map +1 -0
  801. package/dist/utility/operation_authorization.d.ts +18 -0
  802. package/dist/utility/operation_authorization.js +667 -0
  803. package/dist/utility/operation_authorization.js.map +1 -0
  804. package/dist/utility/packageUtils.d.ts +9 -0
  805. package/dist/utility/packageUtils.js +52 -0
  806. package/dist/utility/packageUtils.js.map +1 -0
  807. package/dist/utility/password.d.ts +20 -0
  808. package/dist/utility/password.js +119 -0
  809. package/dist/utility/password.js.map +1 -0
  810. package/dist/utility/processManagement/processManagement.d.ts +35 -0
  811. package/dist/utility/processManagement/processManagement.js +188 -0
  812. package/dist/utility/processManagement/processManagement.js.map +1 -0
  813. package/dist/utility/processManagement/servicesConfig.d.ts +29 -0
  814. package/dist/utility/processManagement/servicesConfig.js +52 -0
  815. package/dist/utility/processManagement/servicesConfig.js.map +1 -0
  816. package/dist/utility/scripts/restartHdb.d.ts +1 -0
  817. package/dist/utility/scripts/restartHdb.js +23 -0
  818. package/dist/utility/scripts/restartHdb.js.map +1 -0
  819. package/dist/utility/signalling.d.ts +2 -0
  820. package/dist/utility/signalling.js +35 -0
  821. package/dist/utility/signalling.js.map +1 -0
  822. package/dist/utility/terms/certificates.d.ts +46 -0
  823. package/dist/utility/terms/certificates.js +65 -0
  824. package/dist/utility/terms/certificates.js.map +1 -0
  825. package/dist/utility/when.d.ts +3 -0
  826. package/dist/utility/when.js +18 -0
  827. package/dist/utility/when.js.map +1 -0
  828. package/dist/validation/bulkDeleteValidator.d.ts +2 -0
  829. package/dist/validation/bulkDeleteValidator.js +21 -0
  830. package/dist/validation/bulkDeleteValidator.js.map +1 -0
  831. package/dist/validation/check_permissions.d.ts +2 -0
  832. package/dist/validation/check_permissions.js +20 -0
  833. package/dist/validation/check_permissions.js.map +1 -0
  834. package/dist/validation/common_validators.d.ts +19 -0
  835. package/dist/validation/common_validators.js +76 -0
  836. package/dist/validation/common_validators.js.map +1 -0
  837. package/dist/validation/configValidator.d.ts +8 -0
  838. package/dist/validation/configValidator.js +292 -0
  839. package/dist/validation/configValidator.js.map +1 -0
  840. package/dist/validation/deleteValidator.d.ts +2 -0
  841. package/dist/validation/deleteValidator.js +15 -0
  842. package/dist/validation/deleteValidator.js.map +1 -0
  843. package/dist/validation/fileLoadValidator.d.ts +4 -0
  844. package/dist/validation/fileLoadValidator.js +138 -0
  845. package/dist/validation/fileLoadValidator.js.map +1 -0
  846. package/dist/validation/insertValidator.d.ts +2 -0
  847. package/dist/validation/insertValidator.js +38 -0
  848. package/dist/validation/insertValidator.js.map +1 -0
  849. package/dist/validation/installValidator.d.ts +7 -0
  850. package/dist/validation/installValidator.js +28 -0
  851. package/dist/validation/installValidator.js.map +1 -0
  852. package/dist/validation/readLogValidator.d.ts +2 -0
  853. package/dist/validation/readLogValidator.js +48 -0
  854. package/dist/validation/readLogValidator.js.map +1 -0
  855. package/dist/validation/role_validation.d.ts +3 -0
  856. package/dist/validation/role_validation.js +284 -0
  857. package/dist/validation/role_validation.js.map +1 -0
  858. package/dist/validation/schemaMetadataValidator.d.ts +16 -0
  859. package/dist/validation/schemaMetadataValidator.js +38 -0
  860. package/dist/validation/schemaMetadataValidator.js.map +1 -0
  861. package/dist/validation/searchValidator.d.ts +2 -0
  862. package/dist/validation/searchValidator.js +141 -0
  863. package/dist/validation/searchValidator.js.map +1 -0
  864. package/dist/validation/statusValidator.d.ts +19 -0
  865. package/dist/validation/statusValidator.js +95 -0
  866. package/dist/validation/statusValidator.js.map +1 -0
  867. package/dist/validation/transactionLogValidator.d.ts +2 -0
  868. package/dist/validation/transactionLogValidator.js +28 -0
  869. package/dist/validation/transactionLogValidator.js.map +1 -0
  870. package/dist/validation/user_validation.d.ts +3 -0
  871. package/dist/validation/user_validation.js +52 -0
  872. package/dist/validation/user_validation.js.map +1 -0
  873. package/dist/validation/validationWrapper.d.ts +15 -0
  874. package/dist/validation/validationWrapper.js +95 -0
  875. package/dist/validation/validationWrapper.js.map +1 -0
  876. package/package.json +225 -0
  877. package/static/README.md +13 -0
  878. package/static/ascii_logo.txt +21 -0
  879. package/static/defaultConfig.yaml +75 -0
@@ -0,0 +1,801 @@
1
+ 'use strict';
2
+ const hdbTerms = require("../utility/hdbTerms.js");
3
+ const hdbUtils = require('../utility/common_utils.js');
4
+ const logger = require('../utility/logging/harper_logger.js');
5
+ const { configValidator } = require('../validation/configValidator.js');
6
+ const fs = require('fs-extra');
7
+ const YAML = require('yaml');
8
+ const path = require('path');
9
+ const isNumber = require('is-number');
10
+ const PropertiesReader = require('properties-reader');
11
+ const _ = require('lodash');
12
+ const { handleHDBError } = require('../utility/errors/hdbError.js');
13
+ const { HTTP_STATUS_CODES, HDB_ERROR_MSGS } = require('../utility/errors/commonErrors.js');
14
+ const { server } = require("../server/Server.js");
15
+ const { getBackupDirPath } = require("./configHelpers.js");
16
+ const { PACKAGE_ROOT } = require('../utility/packageUtils');
17
+ const { DATABASES_PARAM_CONFIG, CONFIG_PARAMS, CONFIG_PARAM_MAP } = hdbTerms;
18
+ const UNINIT_GET_CONFIG_ERR = 'Unable to get config value because config is uninitialized';
19
+ const CONFIG_INIT_MSG = 'Config successfully initialized';
20
+ const BACKUP_ERR = 'Error backing up config file';
21
+ const EMPTY_GET_VALUE = 'Empty parameter sent to getConfigValue';
22
+ const DEFAULT_CONFIG_FILE_PATH = path.join(PACKAGE_ROOT, 'static', hdbTerms.HDB_DEFAULT_CONFIG_FILE);
23
+ const CONFIGURE_SUCCESS_RESPONSE = 'Configuration successfully set. You must restart Harper for new config settings to take effect.';
24
+ const DEPRECATED_CONFIG = {
25
+ logging_rotation_retain: 'logging.rotation.retain',
26
+ logging_rotation_rotate: 'logging.rotation.rotate',
27
+ logging_rotation_rotateinterval: 'logging.rotation.rotateInterval',
28
+ logging_rotation_rotatemodule: 'logging.rotation.rotateModule',
29
+ logging_rotation_timezone: 'logging.rotation.timezone',
30
+ logging_rotation_workerinterval: 'logging.rotation.workerInterval',
31
+ };
32
+ let flatDefaultConfigObj;
33
+ let flatConfigObj;
34
+ let configObj;
35
+ exports.createConfigFile = createConfigFile;
36
+ exports.getDefaultConfig = getDefaultConfig;
37
+ exports.getConfigValue = getConfigValue;
38
+ exports.initConfig = initConfig;
39
+ exports.flattenConfig = flattenConfig;
40
+ exports.updateConfigValue = updateConfigValue;
41
+ exports.updateConfigObject = updateConfigObject;
42
+ exports.getConfiguration = getConfiguration;
43
+ exports.setConfiguration = setConfiguration;
44
+ exports.readConfigFile = readConfigFile;
45
+ exports.initOldConfig = initOldConfig;
46
+ exports.getConfigFromFile = getConfigFromFile;
47
+ exports.getConfigFilePath = getConfigFilePath;
48
+ exports.addConfig = addConfig;
49
+ exports.deleteConfigFromFile = deleteConfigFromFile;
50
+ exports.getConfigObj = getConfigObj;
51
+ exports.resolvePath = resolvePath;
52
+ exports.getFlatConfigObj = getFlatConfigObj;
53
+ function resolvePath(relativePath) {
54
+ if (relativePath?.startsWith('~/')) {
55
+ return path.join(hdbUtils.getHomeDir(), relativePath.slice(1));
56
+ }
57
+ const env = require('../utility/environment/environmentManager.js');
58
+ try {
59
+ return path.resolve(env.getHdbBasePath(), relativePath);
60
+ }
61
+ catch (error) {
62
+ console.error('Unable to resolve path', relativePath, error);
63
+ return relativePath;
64
+ }
65
+ }
66
+ /**
67
+ * Builds the Harper config file using user inputs and default values from defaultConfig.yaml
68
+ * @param args - any args that the user provided.
69
+ */
70
+ function createConfigFile(args, skipFsValidation = false) {
71
+ const configDoc = parseYamlDoc(DEFAULT_CONFIG_FILE_PATH);
72
+ flatDefaultConfigObj = flattenConfig(configDoc.toJSON());
73
+ // Loop through the user inputted args. Match them to a parameter in the default config file and update value.
74
+ let schemasArgs;
75
+ for (const arg in args) {
76
+ let configParam = CONFIG_PARAM_MAP[arg.toLowerCase()];
77
+ // Schemas config args are handled differently, so if they exist set them to var that will be used by setSchemasConfig
78
+ if (configParam === CONFIG_PARAMS.DATABASES) {
79
+ if (Array.isArray(args[arg])) {
80
+ schemasArgs = args[arg];
81
+ }
82
+ else {
83
+ schemasArgs = Object.keys(args[arg]).map((key) => {
84
+ return { [key]: args[arg][key] };
85
+ });
86
+ }
87
+ continue;
88
+ }
89
+ if (!configParam && (arg.endsWith('_package') || arg.endsWith('_port'))) {
90
+ configParam = arg;
91
+ }
92
+ if (configParam !== undefined) {
93
+ const splitParam = configParam.split('_');
94
+ let value = castConfigValue(configParam, args[arg]);
95
+ if (configParam === 'rootPath' && value?.endsWith('/'))
96
+ value = value.slice(0, -1);
97
+ try {
98
+ // Remove parent structure if it's a boolean to avoid type conflicts when setting the new value
99
+ if (splitParam.length > 1 && typeof configDoc.getIn(splitParam.slice(0, -1)) === 'boolean') {
100
+ configDoc.deleteIn(splitParam.slice(0, -1));
101
+ }
102
+ configDoc.setIn([...splitParam], value);
103
+ }
104
+ catch (err) {
105
+ logger.error(err);
106
+ }
107
+ }
108
+ }
109
+ if (schemasArgs)
110
+ setSchemasConfig(configDoc, schemasArgs);
111
+ // Apply HARPER_DEFAULT_CONFIG and HARPER_SET_CONFIG environment variables BEFORE validation
112
+ // This allows runtime env vars to resolve port conflicts before validation
113
+ // Must be called AFTER rootPath is set in configDoc
114
+ // Mutates configDoc in place
115
+ applyRuntimeEnvVarConfig(configDoc, null, { isInstall: true });
116
+ // Validates config doc and if required sets default values for some parameters.
117
+ validateConfig(configDoc, skipFsValidation);
118
+ const configObj = configDoc.toJSON();
119
+ flatConfigObj = flattenConfig(configObj);
120
+ // Create new config file and write config doc to it.
121
+ const hdbRoot = configDoc.getIn(['rootPath']);
122
+ const configFilePath = path.join(hdbRoot, hdbTerms.HARPER_CONFIG_FILE);
123
+ fs.createFileSync(configFilePath);
124
+ if (configDoc.errors?.length > 0) {
125
+ throw handleHDBError(new Error(), `Error parsing harperdb-config.yaml ${configDoc.errors}`, HTTP_STATUS_CODES.BAD_REQUEST, undefined, undefined, true);
126
+ }
127
+ fs.writeFileSync(configFilePath, String(configDoc));
128
+ logger.trace(`Config file written to ${configFilePath}`);
129
+ }
130
+ /**
131
+ * Sets any schema/table location config that belongs under the 'schemas' config element.
132
+ * @param configDoc
133
+ * @param schemaConfJson
134
+ */
135
+ function setSchemasConfig(configDoc, schemaConfJson) {
136
+ let schemasConf;
137
+ try {
138
+ try {
139
+ schemasConf = JSON.parse(schemaConfJson);
140
+ }
141
+ catch (err) {
142
+ if (!hdbUtils.isObject(schemaConfJson))
143
+ throw err;
144
+ schemasConf = schemaConfJson;
145
+ }
146
+ for (const schemaConf of schemasConf) {
147
+ const schema = Object.keys(schemaConf)[0];
148
+ if (schemaConf[schema].hasOwnProperty(DATABASES_PARAM_CONFIG.TABLES)) {
149
+ for (const table in schemaConf[schema][DATABASES_PARAM_CONFIG.TABLES]) {
150
+ // Table path var can be 'path' or 'auditPath'
151
+ for (const tablePathVar in schemaConf[schema][DATABASES_PARAM_CONFIG.TABLES][table]) {
152
+ const tablePath = schemaConf[schema][DATABASES_PARAM_CONFIG.TABLES][table][tablePathVar];
153
+ const keys = [CONFIG_PARAMS.DATABASES, schema, DATABASES_PARAM_CONFIG.TABLES, table, tablePathVar];
154
+ configDoc.hasIn(keys) ? configDoc.setIn(keys, tablePath) : configDoc.addIn(keys, tablePath);
155
+ }
156
+ }
157
+ }
158
+ else {
159
+ // Schema path var can be 'path' or 'auditPath'
160
+ for (const schemaPathVar in schemaConf[schema]) {
161
+ const schemaPath = schemaConf[schema][schemaPathVar];
162
+ const keys = [CONFIG_PARAMS.DATABASES, schema, schemaPathVar];
163
+ configDoc.hasIn(keys) ? configDoc.setIn(keys, schemaPath) : configDoc.addIn(keys, schemaPath);
164
+ }
165
+ }
166
+ }
167
+ }
168
+ catch (err) {
169
+ logger.error('Error parsing schemas CLI/env config arguments', err);
170
+ }
171
+ }
172
+ /**
173
+ * Get a default config value from in memory object.
174
+ * If object is undefined read the default config yaml and instantiate default config obj.
175
+ * @param param
176
+ * @returns {*}
177
+ */
178
+ function getDefaultConfig(param) {
179
+ if (flatDefaultConfigObj === undefined) {
180
+ const configDoc = parseYamlDoc(DEFAULT_CONFIG_FILE_PATH);
181
+ flatDefaultConfigObj = flattenConfig(configDoc.toJSON());
182
+ }
183
+ const paramMap = CONFIG_PARAM_MAP[param.toLowerCase()];
184
+ if (paramMap === undefined)
185
+ return undefined;
186
+ return flatDefaultConfigObj[paramMap.toLowerCase()];
187
+ }
188
+ /**
189
+ * Get config value from in memory flattened config obj.
190
+ * This functions depends on the config obj being initialized.
191
+ * We do not want it to get value directly from config file as this adds unnecessary overhead.
192
+ * @param param
193
+ * @returns {undefined|*}
194
+ */
195
+ function getConfigValue(param) {
196
+ if (param == null) {
197
+ logger.info(EMPTY_GET_VALUE);
198
+ return undefined;
199
+ }
200
+ if (flatConfigObj === undefined) {
201
+ logger.trace(UNINIT_GET_CONFIG_ERR);
202
+ return undefined;
203
+ }
204
+ const paramMap = CONFIG_PARAM_MAP[param.toLowerCase()];
205
+ if (paramMap === undefined)
206
+ return undefined;
207
+ return flatConfigObj[paramMap.toLowerCase()];
208
+ }
209
+ function getConfigFilePath(bootPropsFilePath = hdbUtils.getPropsFilePath()) {
210
+ const cmdArgs = hdbUtils.getEnvCliRootPath();
211
+ if (cmdArgs) {
212
+ let harperConfigPath = resolvePath(path.join(cmdArgs, hdbTerms.HARPER_CONFIG_FILE));
213
+ if (fs.existsSync(harperConfigPath))
214
+ return harperConfigPath;
215
+ if (fs.existsSync(resolvePath(path.join(cmdArgs, hdbTerms.HDB_CONFIG_FILE))))
216
+ return resolvePath(path.join(cmdArgs, hdbTerms.HDB_CONFIG_FILE));
217
+ return harperConfigPath;
218
+ }
219
+ const hdbProperties = PropertiesReader(bootPropsFilePath);
220
+ return resolvePath(hdbProperties.get(hdbTerms.HDB_SETTINGS_NAMES.SETTINGS_PATH_KEY));
221
+ }
222
+ /**
223
+ * If in memory config obj is undefined or init is being forced,
224
+ * read and parses the Harper config file and add to config object.
225
+ * @param force
226
+ */
227
+ function initConfig(force = false) {
228
+ if (flatConfigObj === undefined || force) {
229
+ let bootPropsFilePath;
230
+ if (!hdbUtils.noBootFile()) {
231
+ bootPropsFilePath = hdbUtils.getPropsFilePath();
232
+ try {
233
+ fs.accessSync(bootPropsFilePath, fs.constants.F_OK | fs.constants.R_OK);
234
+ }
235
+ catch (err) {
236
+ logger.error(err);
237
+ throw handleHDBError(new Error(), `Harper properties file at path ${bootPropsFilePath} does not exist`, HTTP_STATUS_CODES.BAD_REQUEST);
238
+ }
239
+ }
240
+ const configFilePath = getConfigFilePath(bootPropsFilePath);
241
+ let configDoc;
242
+ // if this is true, user is upgrading from version prior to 4.0.0. We need to initialize existing
243
+ // params.
244
+ if (configFilePath.includes('config/settings.js')) {
245
+ try {
246
+ initOldConfig(configFilePath);
247
+ return;
248
+ }
249
+ catch (initErr) {
250
+ // If user has an old boot prop file but hdb is not installed init old config will throw ENOENT error.
251
+ // We want to squash that error so that new version of HDB can be installed.
252
+ if (initErr.code !== hdbTerms.NODE_ERROR_CODES.ENOENT)
253
+ throw initErr;
254
+ }
255
+ }
256
+ try {
257
+ configDoc = parseYamlDoc(configFilePath);
258
+ }
259
+ catch (err) {
260
+ if (err.code === hdbTerms.NODE_ERROR_CODES.ENOENT) {
261
+ logger.trace(`Harper config file not found at ${configFilePath}.
262
+ This can occur during early stages of install where the config file has not yet been created`);
263
+ return;
264
+ }
265
+ else {
266
+ logger.error(err);
267
+ throw handleHDBError(new Error(), `Error reading Harper config file at ${configFilePath}`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
268
+ }
269
+ }
270
+ checkForUpdatedConfig(configDoc, configFilePath);
271
+ // Apply HARPER_DEFAULT_CONFIG and HARPER_SET_CONFIG environment variables
272
+ applyRuntimeEnvVarConfig(configDoc, configFilePath);
273
+ // Validates config doc and if required sets default values for some parameters.
274
+ validateConfig(configDoc);
275
+ const configObj = configDoc.toJSON();
276
+ server.config = configObj;
277
+ flatConfigObj = flattenConfig(configObj);
278
+ // If config has old version of logrotate enabled let user know it has been deprecated.
279
+ if (flatConfigObj['logging_rotation_rotate']) {
280
+ for (const key in DEPRECATED_CONFIG) {
281
+ if (flatConfigObj[key])
282
+ logger.error(`Config ${DEPRECATED_CONFIG[key]} has been deprecated. Please check https://docs.harperdb.io/docs/ for further details.`);
283
+ }
284
+ }
285
+ logger.trace(CONFIG_INIT_MSG);
286
+ }
287
+ }
288
+ /**
289
+ * When running an upgraded version there is a chance these config params won't exist.
290
+ * To address this we check for them and write them to config file if needed.
291
+ * @param configDoc
292
+ * @param configFilePath
293
+ */
294
+ function checkForUpdatedConfig(configDoc, configFilePath) {
295
+ const rootPath = configDoc.getIn(['rootPath']);
296
+ let updateFile = false;
297
+ if (!configDoc.hasIn(['storage', 'path'])) {
298
+ configDoc.setIn(['storage', 'path'], path.join(rootPath, 'database'));
299
+ updateFile = true;
300
+ }
301
+ if (!configDoc.hasIn(['logging', 'rotation', 'path'])) {
302
+ configDoc.setIn(['logging', 'rotation', 'path'], path.join(rootPath, 'log'));
303
+ updateFile = true;
304
+ }
305
+ if (!configDoc.hasIn(['authentication'])) {
306
+ configDoc.addIn(['authentication'], {
307
+ cacheTTL: 30000,
308
+ enableSessions: true,
309
+ operationTokenTimeout: configDoc.getIn(['operationsApi', 'authentication', 'operationTokenTimeout']) ?? '1d',
310
+ refreshTokenTimeout: configDoc.getIn(['operationsApi', 'authentication', 'refreshTokenTimeout']) ?? '30d',
311
+ });
312
+ updateFile = true;
313
+ }
314
+ if (!configDoc.hasIn(['analytics'])) {
315
+ configDoc.addIn(['analytics'], {
316
+ aggregatePeriod: 60,
317
+ replicate: false,
318
+ });
319
+ updateFile = true;
320
+ }
321
+ if (updateFile) {
322
+ logger.trace('Updating config file with missing config params');
323
+ if (configDoc.errors?.length > 0) {
324
+ throw handleHDBError(new Error(), `Error parsing harperdb-config.yaml ${configDoc.errors}`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
325
+ }
326
+ fs.writeFileSync(configFilePath, String(configDoc));
327
+ }
328
+ }
329
+ /**
330
+ * Validates the config doc and adds any default values to doc.
331
+ * NOTE - If any default values are set in configValidator they also need to be 'setIn' in this function.
332
+ * @param configDoc
333
+ */
334
+ function validateConfig(configDoc, skipFsValidation = false) {
335
+ const configJson = configDoc.toJSON();
336
+ // Config might have some legacy values that will be modified by validator. We need to set old to new here before
337
+ // validator sets any defaults
338
+ configJson.componentsRoot = configJson.componentsRoot ?? configJson?.customFunctions?.root;
339
+ if (configJson?.http?.threads)
340
+ configJson.threads = configJson?.http?.threads;
341
+ if (configJson.http?.port && configJson.http?.port === configJson.http?.securePort) {
342
+ throw handleHDBError(new Error(), HDB_ERROR_MSGS.CONFIG_VALIDATION('http.port and http.securePort cannot be the same value'), HTTP_STATUS_CODES.BAD_REQUEST, undefined, undefined, true);
343
+ }
344
+ if (configJson.operationsApi?.network?.port &&
345
+ configJson.operationsApi?.network?.port === configJson.operationsApi?.network?.securePort) {
346
+ throw handleHDBError(new Error(), HDB_ERROR_MSGS.CONFIG_VALIDATION('operationsApi.network.port and operationsApi.network.securePort cannot be the same value'), HTTP_STATUS_CODES.BAD_REQUEST, undefined, undefined, true);
347
+ }
348
+ const validation = configValidator(configJson, skipFsValidation);
349
+ if (validation.error) {
350
+ throw handleHDBError(new Error(), HDB_ERROR_MSGS.CONFIG_VALIDATION(validation.error.message), HTTP_STATUS_CODES.BAD_REQUEST, undefined, undefined, true);
351
+ }
352
+ // These parameters can be set by the validator if they arent provided by user,
353
+ // for this reason we need to update the config yaml doc after the validator has run.
354
+ if (typeof validation.value.threads === 'object')
355
+ configDoc.setIn(['threads', 'count'], validation.value.threads.count);
356
+ else
357
+ configDoc.setIn(['threads'], validation.value.threads);
358
+ configDoc.setIn(['componentsRoot'], validation.value.componentsRoot); // TODO: check this works with old config
359
+ configDoc.setIn(['logging', 'root'], validation.value.logging.root);
360
+ configDoc.setIn(['storage', 'path'], validation.value.storage.path);
361
+ configDoc.setIn(['logging', 'rotation', 'path'], validation.value.logging.rotation.path);
362
+ configDoc.setIn(['operationsApi', 'network', 'domainSocket'], validation.value?.operationsApi?.network?.domainSocket);
363
+ }
364
+ /**
365
+ * Updates the in memory flattened config object. Does not update the config file.
366
+ * This is mainly here to accommodate older versions of environmentManager and unit tests.
367
+ * @param param
368
+ * @param value
369
+ */
370
+ function updateConfigObject(param, value) {
371
+ if (flatConfigObj === undefined) {
372
+ // This is here to allow unit tests to work when HDB is not installed.
373
+ flatConfigObj = {};
374
+ }
375
+ const configObjKey = CONFIG_PARAM_MAP[param.toLowerCase()];
376
+ if (configObjKey === undefined) {
377
+ logger.trace(`Unable to update config object because config param '${param}' does not exist`);
378
+ return;
379
+ }
380
+ flatConfigObj[configObjKey.toLowerCase()] = value;
381
+ }
382
+ /**
383
+ * Updates and validates a config value in config file. Can also create a backup of config before updating.
384
+ * @param param - the config value to update
385
+ * @param value - the value to set the config to
386
+ * @param parsedArgs - an object of param/values to update
387
+ * @param createBackup - if true backup file is created
388
+ * @param update_config_obj - if true updates the in memory flattened config object
389
+ */
390
+ function updateConfigValue(param, value, parsedArgs = undefined, createBackup = false, update_config_obj = false, skipParamMap = false) {
391
+ if (flatConfigObj === undefined) {
392
+ initConfig();
393
+ }
394
+ // Old root/path is used just in case they are updating the operations api root.
395
+ const oldHdbRoot = getConfigValue(CONFIG_PARAM_MAP.hdb_root);
396
+ let oldConfigPath = path.join(oldHdbRoot, hdbTerms.HARPER_CONFIG_FILE);
397
+ if (!fs.existsSync(oldConfigPath) && fs.existsSync(path.join(oldHdbRoot, hdbTerms.HDB_CONFIG_FILE))) {
398
+ oldConfigPath = path.join(oldHdbRoot, hdbTerms.HDB_CONFIG_FILE);
399
+ }
400
+ const configDoc = parseYamlDoc(oldConfigPath);
401
+ let schemasArgs;
402
+ // Don't do the update if the values are the same.
403
+ if (parsedArgs && flatConfigObj) {
404
+ let doUpdate = false;
405
+ for (const arg in parsedArgs) {
406
+ // Using no-strict here because we might need to compare string to number
407
+ if (parsedArgs[arg] != flatConfigObj[arg.toLowerCase()]) {
408
+ doUpdate = true;
409
+ break;
410
+ }
411
+ }
412
+ if (!doUpdate) {
413
+ logger.trace(`No changes detected in config parameters, skipping update`);
414
+ return;
415
+ }
416
+ }
417
+ if (parsedArgs === undefined && param.toLowerCase() === CONFIG_PARAMS.DATABASES) {
418
+ schemasArgs = value;
419
+ }
420
+ else if (parsedArgs === undefined) {
421
+ let configParam;
422
+ if (skipParamMap) {
423
+ configParam = param;
424
+ }
425
+ else {
426
+ configParam = CONFIG_PARAM_MAP[param.toLowerCase()];
427
+ if (configParam === undefined) {
428
+ throw handleHDBError(new Error(), `Unable to update config, unrecognized config parameter: ${param}`, HTTP_STATUS_CODES.BAD_REQUEST, undefined, undefined, true);
429
+ }
430
+ }
431
+ const splitParam = configParam.split('_');
432
+ const newValue = castConfigValue(configParam, value);
433
+ configDoc.setIn([...splitParam], newValue);
434
+ }
435
+ else {
436
+ // Loop through the user inputted args. Match them to a parameter in the default config file and update value.
437
+ for (const arg in parsedArgs) {
438
+ let configParam = CONFIG_PARAM_MAP[arg.toLowerCase()];
439
+ // If setting http.securePort to the same value as http.port, set http.port to null to avoid clashing ports
440
+ if (configParam === CONFIG_PARAMS.HTTP_SECUREPORT &&
441
+ parsedArgs[arg] === flatConfigObj[CONFIG_PARAMS.HTTP_PORT]?.toString()) {
442
+ configDoc.setIn(['http', 'port'], null);
443
+ }
444
+ // If setting operationsApi.network.securePort to the same value as operationsApi.network.port, set operationsApi.network.port to null to avoid clashing ports
445
+ if (configParam === CONFIG_PARAMS.OPERATIONSAPI_NETWORK_SECUREPORT &&
446
+ parsedArgs[arg] === flatConfigObj[CONFIG_PARAMS.OPERATIONSAPI_NETWORK_PORT.toLowerCase()]?.toString()) {
447
+ configDoc.setIn(['operationsApi', 'network', 'port'], null);
448
+ }
449
+ // Schemas config args are handled differently, so if they exist set them to var that will be used by setSchemasConfig
450
+ if (configParam === CONFIG_PARAMS.DATABASES) {
451
+ schemasArgs = parsedArgs[arg];
452
+ continue;
453
+ }
454
+ if (configParam?.startsWith('threads_')) {
455
+ // if threads was a number, recreate the threads object
456
+ const threadCount = configDoc.getIn(['threads']);
457
+ if (threadCount >= 0) {
458
+ configDoc.deleteIn(['threads']);
459
+ configDoc.setIn(['threads', 'count'], threadCount);
460
+ }
461
+ }
462
+ if (!configParam && (arg.endsWith('_package') || arg.endsWith('_port'))) {
463
+ configParam = arg;
464
+ }
465
+ if (configParam !== undefined) {
466
+ let splitParam = configParam.split('_');
467
+ const legacyParam = hdbTerms.LEGACY_CONFIG_PARAMS[arg.toUpperCase()];
468
+ if (legacyParam && legacyParam.startsWith('customFunctions') && configDoc.hasIn(legacyParam.split('_'))) {
469
+ configParam = legacyParam;
470
+ splitParam = legacyParam.split('_');
471
+ }
472
+ let newValue = castConfigValue(configParam, parsedArgs[arg]);
473
+ if (configParam === 'rootPath' && newValue?.endsWith('/'))
474
+ newValue = newValue.slice(0, -1);
475
+ try {
476
+ if (splitParam.length > 1) {
477
+ if (typeof configDoc.getIn(splitParam.slice(0, -1)) === 'boolean') {
478
+ configDoc.deleteIn(splitParam.slice(0, -1));
479
+ }
480
+ }
481
+ configDoc.setIn([...splitParam], newValue);
482
+ }
483
+ catch (err) {
484
+ logger.error(err);
485
+ }
486
+ }
487
+ }
488
+ }
489
+ if (schemasArgs)
490
+ setSchemasConfig(configDoc, schemasArgs);
491
+ // Validates config doc and if required sets default values for some parameters.
492
+ validateConfig(configDoc);
493
+ const hdbRoot = configDoc.getIn(['rootPath']);
494
+ let configFileLocation = path.join(hdbRoot, hdbTerms.HARPER_CONFIG_FILE);
495
+ if (!fs.existsSync(configFileLocation) && fs.existsSync(path.join(hdbRoot, hdbTerms.HDB_CONFIG_FILE))) {
496
+ configFileLocation = path.join(hdbRoot, hdbTerms.HDB_CONFIG_FILE);
497
+ }
498
+ if (createBackup === true) {
499
+ // Creates a backup of config before new config is written to disk.
500
+ backupConfigFile(oldConfigPath, hdbRoot);
501
+ }
502
+ if (configDoc.errors?.length > 0) {
503
+ throw handleHDBError(new Error(), `Error parsing harperdb-config.yaml ${configDoc.errors}`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
504
+ }
505
+ fs.writeFileSync(configFileLocation, String(configDoc));
506
+ if (update_config_obj) {
507
+ flatConfigObj = flattenConfig(configDoc.toJSON());
508
+ }
509
+ logger.trace(`Config parameter: ${param} updated with value: ${value}`);
510
+ }
511
+ function backupConfigFile(configPath, hdbRoot) {
512
+ try {
513
+ const backupFolderPath = path.join(getBackupDirPath(hdbRoot), `${new Date(Date.now()).toISOString().replaceAll(':', '-')}-${hdbTerms.HARPER_CONFIG_FILE}.bak`);
514
+ fs.copySync(configPath, backupFolderPath);
515
+ logger.trace(`Config file: ${configPath} backed up to: ${backupFolderPath}`);
516
+ }
517
+ catch (err) {
518
+ logger.error(BACKUP_ERR);
519
+ logger.error(err);
520
+ }
521
+ }
522
+ const PRESERVED_PROPERTIES = ['databases'];
523
+ /**
524
+ * Flattens the JSON version of Harper config with underscores separating each parent/child key.
525
+ * @param obj
526
+ * @returns {null}
527
+ */
528
+ function flattenConfig(obj) {
529
+ if (obj.http)
530
+ Object.assign(obj.http, obj?.customFunctions?.network);
531
+ if (obj?.operationsApi?.network)
532
+ obj.operationsApi.network = { ...obj.http, ...obj.operationsApi.network };
533
+ if (obj?.operationsApi)
534
+ obj.operationsApi.tls = { ...obj.tls, ...obj.operationsApi.tls };
535
+ configObj = obj;
536
+ const flatObj = squashObj(obj);
537
+ return flatObj;
538
+ function squashObj(obj) {
539
+ let result = {};
540
+ for (let i in obj) {
541
+ if (!obj.hasOwnProperty(i))
542
+ continue;
543
+ if (typeof obj[i] == 'object' && obj[i] !== null && !Array.isArray(obj[i]) && !PRESERVED_PROPERTIES.includes(i)) {
544
+ const flatObj = squashObj(obj[i]);
545
+ for (const x in flatObj) {
546
+ if (!flatObj.hasOwnProperty(x))
547
+ continue;
548
+ if (x !== 'package')
549
+ i = i.toLowerCase();
550
+ const key = i + '_' + x;
551
+ // This is here to catch config param which has been renamed/moved
552
+ if (!CONFIG_PARAMS[key.toUpperCase()] && CONFIG_PARAM_MAP[key]) {
553
+ result[CONFIG_PARAM_MAP[key].toLowerCase()] = flatObj[x];
554
+ }
555
+ result[key] = flatObj[x];
556
+ }
557
+ }
558
+ if (obj[i] !== undefined)
559
+ result[i.toLowerCase()] = obj[i];
560
+ }
561
+ return result;
562
+ }
563
+ }
564
+ /**
565
+ * Cast config values.
566
+ * @param param
567
+ * @param value
568
+ * @returns {*|number|string|string|null|boolean}
569
+ */
570
+ function castConfigValue(param, value) {
571
+ if (isNumber(value)) {
572
+ return parseFloat(value);
573
+ }
574
+ if (value === true || value === false) {
575
+ return value;
576
+ }
577
+ if (Array.isArray(value)) {
578
+ return value;
579
+ }
580
+ if (hdbUtils.isObject(value)) {
581
+ return value;
582
+ }
583
+ if (value === null) {
584
+ return value;
585
+ }
586
+ if (typeof value === 'string' && value.toLowerCase() === 'true') {
587
+ return true;
588
+ }
589
+ if (typeof value === 'string' && value.toLowerCase() === 'false') {
590
+ return false;
591
+ }
592
+ // undefined is not used in our yaml, just null.
593
+ if (value === undefined || value.toLowerCase() === 'undefined') {
594
+ return null;
595
+ }
596
+ //in order to handle json and arrays we test the string to see if it seems minimally like an object or array and perform a JSON.parse on it.
597
+ //if it fails we assume it is just a regular string
598
+ if (typeof value === 'string' &&
599
+ ((value.startsWith('{') && value.endsWith('}')) || (value.startsWith('[') && value.endsWith(']')))) {
600
+ try {
601
+ return JSON.parse(value);
602
+ }
603
+ catch {
604
+ //no-op
605
+ }
606
+ }
607
+ return hdbUtils.autoCast(value);
608
+ }
609
+ /**
610
+ * Get Configuration - this function returns all the config settings
611
+ * @returns {{}}
612
+ */
613
+ function getConfiguration() {
614
+ const bootPropsFilePath = hdbUtils.getPropsFilePath();
615
+ const configFilePath = getConfigFilePath(bootPropsFilePath);
616
+ const configDoc = parseYamlDoc(configFilePath);
617
+ return configDoc.toJSON();
618
+ }
619
+ /**
620
+ * Set Configuration - this function sets new configuration
621
+ * @param setConfigJson
622
+
623
+ */
624
+ async function setConfiguration(setConfigJson) {
625
+ // eslint-disable-next-line no-unused-vars
626
+ const { operation, hdb_user, hdbAuthHeader, ...configFields } = setConfigJson;
627
+ try {
628
+ updateConfigValue(undefined, undefined, configFields, true);
629
+ return CONFIGURE_SUCCESS_RESPONSE;
630
+ }
631
+ catch (err) {
632
+ if (typeof err === 'string' || err instanceof String) {
633
+ throw handleHDBError(err, err, HTTP_STATUS_CODES.BAD_REQUEST, undefined, undefined, true);
634
+ }
635
+ throw err;
636
+ }
637
+ }
638
+ function readConfigFile() {
639
+ const bootPropsFilePath = hdbUtils.getPropsFilePath();
640
+ try {
641
+ fs.accessSync(bootPropsFilePath, fs.constants.F_OK | fs.constants.R_OK);
642
+ }
643
+ catch (err) {
644
+ if (!hdbUtils.noBootFile()) {
645
+ logger.error(err);
646
+ throw handleHDBError(new Error(), `Harper properties file at path ${bootPropsFilePath} does not exist`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
647
+ }
648
+ }
649
+ const configFilePath = getConfigFilePath(bootPropsFilePath);
650
+ const configDoc = parseYamlDoc(configFilePath);
651
+ return configDoc.toJSON();
652
+ }
653
+ function parseYamlDoc(filePath) {
654
+ return YAML.parseDocument(fs.readFileSync(filePath, 'utf8'), { simpleKeys: true });
655
+ }
656
+ /**
657
+ * Apply HARPER_DEFAULT_CONFIG and HARPER_SET_CONFIG environment variables at runtime
658
+ *
659
+ * This function performs the following:
660
+ * 1. Loads configuration state to track sources
661
+ * 2. Detects user edits (drift) to protect them from HARPER_DEFAULT_CONFIG
662
+ * 3. Applies HARPER_DEFAULT_CONFIG (respects user edits)
663
+ * 4. Applies HARPER_SET_CONFIG (overrides everything)
664
+ * 5. Handles deletions when keys removed from env vars
665
+ * 6. Saves updated state and persists changes to config file (if configFilePath provided)
666
+ *
667
+ * NOTE: This function performs multiple conversions (YAML → JSON → YAML) which is not
668
+ * efficient but provides clear separation of concerns. The conversions are necessary
669
+ * to handle YAML structure conflicts (e.g., when a boolean like 'threads: true' needs
670
+ * to become an object like 'threads: {count: 4}').
671
+ *
672
+ * @param {Document} configDoc - YAML document to modify (mutated in place)
673
+ * @param {string} [configFilePath] - Path to config file (optional, skips file write if not provided)
674
+ * @param {Object} [options] - Options to pass to applyRuntimeEnvConfig (e.g., {isInstall: true})
675
+ */
676
+ function applyRuntimeEnvVarConfig(configDoc, configFilePath, options = {}) {
677
+ const defaultEnvValue = process.env.HARPER_DEFAULT_CONFIG;
678
+ const setEnvValue = process.env.HARPER_SET_CONFIG;
679
+ // No env vars set, skip entirely (zero overhead)
680
+ if (!defaultEnvValue && !setEnvValue)
681
+ return;
682
+ const { applyRuntimeEnvConfig } = require("./harperConfigEnvVars.js");
683
+ // Get rootPath for state file location
684
+ const rootPath = configDoc.getIn(['rootPath']);
685
+ if (!rootPath) {
686
+ logger.warn('Cannot apply runtime env config: rootPath not found in config');
687
+ return;
688
+ }
689
+ // Convert to JSON for processing
690
+ const configObj = configDoc.toJSON();
691
+ try {
692
+ // Apply env vars with source tracking and drift detection
693
+ applyRuntimeEnvConfig(configObj, rootPath, options);
694
+ // If securePort was set to the same value as port, auto-null port to avoid clashing
695
+ if (configObj.http?.port && configObj.http?.port === configObj.http?.securePort) {
696
+ configObj.http.port = null;
697
+ }
698
+ if (configObj.operationsApi?.network?.port &&
699
+ configObj.operationsApi?.network?.port === configObj.operationsApi?.network?.securePort) {
700
+ configObj.operationsApi.network.port = null;
701
+ }
702
+ // Update the YAML document's contents
703
+ // We update only the 'contents' property to preserve the Document instance and its methods
704
+ const mergedDoc = YAML.parseDocument(YAML.stringify(configObj), { simpleKeys: true });
705
+ // Check for YAML parsing errors
706
+ if (mergedDoc.errors?.length > 0) {
707
+ throw handleHDBError(new Error(), `Error parsing harperdb-config.yaml: ${mergedDoc.errors}`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
708
+ }
709
+ configDoc.contents = mergedDoc.contents;
710
+ }
711
+ catch (error) {
712
+ logger.error(`Failed to apply runtime env config: ${error.message}`);
713
+ throw error;
714
+ }
715
+ // We're done here if no config file to write to
716
+ if (!configFilePath) {
717
+ return;
718
+ }
719
+ // Persist changes to file
720
+ try {
721
+ if (configDoc.errors?.length > 0) {
722
+ throw handleHDBError(new Error(), `Error parsing harperdb-config.yaml: ${configDoc.errors}`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
723
+ }
724
+ fs.writeFileSync(configFilePath, String(configDoc));
725
+ logger.debug('Config file updated with runtime env var values');
726
+ }
727
+ catch (error) {
728
+ logger.error(`Failed to write config file after applying runtime env vars: ${error.message}`);
729
+ throw error;
730
+ }
731
+ }
732
+ /**
733
+ * This function reads config settings from old settings file(before 4.0.0), aligns old keys to new keys, gets old
734
+ * values, and updates the in-memory object.
735
+ * --Located here instead of upgradeUtilities.js to prevent circular dependency--
736
+ * @param oldConfigPath - a string with the old settings path ending in config/settings.js
737
+ */
738
+ function initOldConfig(oldConfigPath) {
739
+ const oldHdbProperties = PropertiesReader(oldConfigPath);
740
+ flatConfigObj = {};
741
+ for (const configParam in CONFIG_PARAM_MAP) {
742
+ const value = oldHdbProperties.get(configParam.toUpperCase());
743
+ if (hdbUtils.isEmpty(value) || (typeof value === 'string' && value.trim().length === 0)) {
744
+ continue;
745
+ }
746
+ let paramKey = CONFIG_PARAM_MAP[configParam].toLowerCase();
747
+ if (paramKey === CONFIG_PARAMS.LOGGING_ROOT) {
748
+ flatConfigObj[paramKey] = path.dirname(value);
749
+ }
750
+ else {
751
+ flatConfigObj[paramKey] = value;
752
+ }
753
+ }
754
+ return flatConfigObj;
755
+ }
756
+ /**
757
+ * Gets a config value directly from harperdb-config.yaml
758
+ * @param param
759
+ * @returns {undefined}
760
+ */
761
+ function getConfigFromFile(param) {
762
+ const config_file = readConfigFile();
763
+ return _.get(config_file, param.replaceAll('_', '.'));
764
+ }
765
+ /**
766
+ * Adds a top level element and any nested values to harperdb-config
767
+ * @param topLevelElement - element name
768
+ * @param values - JSON value which should have top level element
769
+ * @returns {Promise<void>}
770
+ */
771
+ async function addConfig(topLevelElement, values) {
772
+ const configDoc = parseYamlDoc(getConfigFilePath());
773
+ configDoc.hasIn([topLevelElement])
774
+ ? configDoc.setIn([topLevelElement], values)
775
+ : configDoc.addIn([topLevelElement], values);
776
+ if (configDoc.errors?.length > 0) {
777
+ throw handleHDBError(new Error(), `Error parsing harperdb-config.yaml ${configDoc.errors}`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
778
+ }
779
+ await fs.writeFile(getConfigFilePath(), String(configDoc));
780
+ }
781
+ function deleteConfigFromFile(param) {
782
+ const configFilePath = getConfigFilePath(hdbUtils.getPropsFilePath());
783
+ const configDoc = parseYamlDoc(configFilePath);
784
+ configDoc.deleteIn(param);
785
+ const hdbRoot = configDoc.getIn(['rootPath']);
786
+ const configFileLocation = path.join(hdbRoot, hdbTerms.HARPER_CONFIG_FILE);
787
+ fs.writeFileSync(configFileLocation, String(configDoc));
788
+ }
789
+ function getConfigObj() {
790
+ if (!configObj) {
791
+ initConfig();
792
+ return configObj;
793
+ }
794
+ return configObj;
795
+ }
796
+ function getFlatConfigObj() {
797
+ if (!flatConfigObj)
798
+ initConfig();
799
+ return flatConfigObj;
800
+ }
801
+ //# sourceMappingURL=configUtils.js.map