@harperfast/harper 5.0.0-alpha.10 → 5.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/bin/BinObjects.js +17 -0
  2. package/bin/cliOperations.js +157 -0
  3. package/bin/copyDb.ts +280 -0
  4. package/bin/harper.js +156 -0
  5. package/bin/install.js +15 -0
  6. package/bin/lite.js +5 -0
  7. package/bin/restart.js +201 -0
  8. package/bin/run.js +409 -0
  9. package/bin/status.js +65 -0
  10. package/bin/stop.js +22 -0
  11. package/bin/upgrade.js +134 -0
  12. package/components/Application.ts +646 -0
  13. package/components/ApplicationScope.ts +49 -0
  14. package/components/Component.ts +53 -0
  15. package/components/ComponentV1.ts +342 -0
  16. package/components/DEFAULT_CONFIG.ts +18 -0
  17. package/components/EntryHandler.ts +227 -0
  18. package/components/Logger.ts +14 -0
  19. package/components/OptionsWatcher.ts +354 -0
  20. package/components/PluginModule.ts +6 -0
  21. package/components/Scope.ts +329 -0
  22. package/components/componentLoader.ts +529 -0
  23. package/components/deriveCommonPatternBase.ts +31 -0
  24. package/components/deriveGlobOptions.ts +44 -0
  25. package/components/deriveURLPath.ts +57 -0
  26. package/components/operations.js +658 -0
  27. package/components/operationsValidation.js +246 -0
  28. package/components/packageComponent.ts +39 -0
  29. package/components/requestRestart.ts +26 -0
  30. package/components/resolveBaseURLPath.ts +38 -0
  31. package/components/status/ComponentStatus.ts +110 -0
  32. package/components/status/ComponentStatusRegistry.ts +251 -0
  33. package/components/status/api.ts +153 -0
  34. package/components/status/crossThread.ts +405 -0
  35. package/components/status/errors.ts +152 -0
  36. package/components/status/index.ts +44 -0
  37. package/components/status/internal.ts +65 -0
  38. package/components/status/registry.ts +12 -0
  39. package/components/status/types.ts +96 -0
  40. package/config/RootConfigWatcher.ts +59 -0
  41. package/config/configHelpers.ts +11 -0
  42. package/config/configUtils.js +967 -0
  43. package/config/harperConfigEnvVars.ts +641 -0
  44. package/dataLayer/CreateAttributeObject.js +25 -0
  45. package/dataLayer/CreateTableObject.js +11 -0
  46. package/dataLayer/DataLayerObjects.js +43 -0
  47. package/dataLayer/DeleteBeforeObject.js +22 -0
  48. package/dataLayer/DeleteObject.js +25 -0
  49. package/dataLayer/DropAttributeObject.js +11 -0
  50. package/dataLayer/GetBackupObject.js +22 -0
  51. package/dataLayer/InsertObject.js +24 -0
  52. package/dataLayer/ReadAuditLogObject.js +24 -0
  53. package/dataLayer/SQLSearch.js +1335 -0
  54. package/dataLayer/SearchByConditionsObject.js +61 -0
  55. package/dataLayer/SearchByHashObject.js +21 -0
  56. package/dataLayer/SearchObject.js +45 -0
  57. package/dataLayer/SqlSearchObject.js +14 -0
  58. package/dataLayer/UpdateObject.js +23 -0
  59. package/dataLayer/UpsertObject.js +23 -0
  60. package/dataLayer/bulkLoad.js +813 -0
  61. package/dataLayer/dataObjects/BulkLoadObjects.js +27 -0
  62. package/dataLayer/dataObjects/UpsertObject.js +23 -0
  63. package/dataLayer/delete.js +164 -0
  64. package/dataLayer/export.js +381 -0
  65. package/dataLayer/getBackup.js +40 -0
  66. package/dataLayer/harperBridge/BridgeMethods.js +81 -0
  67. package/dataLayer/harperBridge/ResourceBridge.ts +633 -0
  68. package/dataLayer/harperBridge/bridgeUtility/insertUpdateReturnObj.js +28 -0
  69. package/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +88 -0
  70. package/dataLayer/harperBridge/harperBridge.js +21 -0
  71. package/dataLayer/harperBridge/lmdbBridge/LMDBBridge.js +119 -0
  72. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +19 -0
  73. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +112 -0
  74. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +67 -0
  75. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +31 -0
  76. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +94 -0
  77. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +98 -0
  78. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +89 -0
  79. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +109 -0
  80. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +107 -0
  81. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +137 -0
  82. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +35 -0
  83. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +111 -0
  84. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +28 -0
  85. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +29 -0
  86. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +207 -0
  87. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +156 -0
  88. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +21 -0
  89. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +30 -0
  90. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbTransaction.js +19 -0
  91. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +64 -0
  92. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +70 -0
  93. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +22 -0
  94. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBDeleteTransactionObject.js +23 -0
  95. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBInsertTransactionObject.js +22 -0
  96. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBTransactionObject.js +23 -0
  97. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpdateTransactionObject.js +24 -0
  98. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpsertTransactionObject.js +24 -0
  99. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js +25 -0
  100. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +21 -0
  101. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +157 -0
  102. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +94 -0
  103. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +39 -0
  104. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +34 -0
  105. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +100 -0
  106. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +371 -0
  107. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +109 -0
  108. package/dataLayer/hdbInfoController.js +254 -0
  109. package/dataLayer/insert.js +266 -0
  110. package/dataLayer/readAuditLog.js +59 -0
  111. package/dataLayer/schema.js +366 -0
  112. package/dataLayer/schemaDescribe.js +289 -0
  113. package/dataLayer/search.js +60 -0
  114. package/dataLayer/transaction.js +17 -0
  115. package/dataLayer/update.js +124 -0
  116. package/dist/components/Logger.d.ts +12 -0
  117. package/dist/components/Logger.js +3 -0
  118. package/dist/components/Logger.js.map +1 -0
  119. package/dist/components/Scope.d.ts +14 -4
  120. package/dist/components/Scope.js +18 -10
  121. package/dist/components/Scope.js.map +1 -1
  122. package/dist/components/componentLoader.js +16 -9
  123. package/dist/components/componentLoader.js.map +1 -1
  124. package/dist/components/operations.js +2 -2
  125. package/dist/components/operations.js.map +1 -1
  126. package/dist/config/configUtils.d.ts +1 -1
  127. package/dist/config/configUtils.js +1 -1
  128. package/dist/config/configUtils.js.map +1 -1
  129. package/dist/dataLayer/CreateTableObject.d.ts +2 -2
  130. package/dist/dataLayer/CreateTableObject.js +2 -2
  131. package/dist/dataLayer/CreateTableObject.js.map +1 -1
  132. package/dist/dataLayer/delete.d.ts +1 -1
  133. package/dist/dataLayer/schema.js +6 -5
  134. package/dist/dataLayer/schema.js.map +1 -1
  135. package/dist/dataLayer/schemaDescribe.js +1 -1
  136. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  137. package/dist/index.d.ts +1 -1
  138. package/dist/index.js +2 -0
  139. package/dist/index.js.map +1 -1
  140. package/dist/resources/DatabaseTransaction.d.ts +1 -1
  141. package/dist/resources/IterableEventQueue.d.ts +1 -1
  142. package/dist/resources/LMDBTransaction.d.ts +5 -1
  143. package/dist/resources/Resource.d.ts +1 -1
  144. package/dist/resources/RocksIndexStore.d.ts +3 -3
  145. package/dist/resources/RocksTransactionLogStore.d.ts +6 -3
  146. package/dist/resources/Table.d.ts +15 -6
  147. package/dist/resources/Table.js +4 -1
  148. package/dist/resources/Table.js.map +1 -1
  149. package/dist/resources/analytics/read.js +32 -22
  150. package/dist/resources/analytics/read.js.map +1 -1
  151. package/dist/resources/analytics/write.js +3 -6
  152. package/dist/resources/analytics/write.js.map +1 -1
  153. package/dist/resources/auditStore.d.ts +3 -3
  154. package/dist/resources/blob.d.ts +25 -2
  155. package/dist/resources/databases.d.ts +12 -2
  156. package/dist/resources/databases.js +22 -19
  157. package/dist/resources/databases.js.map +1 -1
  158. package/dist/resources/search.js +11 -5
  159. package/dist/resources/search.js.map +1 -1
  160. package/dist/resources/transaction.d.ts +2 -1
  161. package/dist/security/auth.js +1 -1
  162. package/dist/security/auth.js.map +1 -1
  163. package/dist/security/cryptoHash.d.ts +2 -2
  164. package/dist/security/jsLoader.js +243 -66
  165. package/dist/security/jsLoader.js.map +1 -1
  166. package/dist/security/keys.js +4 -5
  167. package/dist/security/keys.js.map +1 -1
  168. package/dist/security/user.js +3 -3
  169. package/dist/security/user.js.map +1 -1
  170. package/dist/server/REST.js +16 -2
  171. package/dist/server/REST.js.map +1 -1
  172. package/dist/server/Server.d.ts +2 -1
  173. package/dist/server/Server.js.map +1 -1
  174. package/dist/server/fastifyRoutes/plugins/hdbCore.d.ts +6 -1
  175. package/dist/server/fastifyRoutes.js +2 -0
  176. package/dist/server/fastifyRoutes.js.map +1 -1
  177. package/dist/server/http.js +12 -6
  178. package/dist/server/http.js.map +1 -1
  179. package/dist/server/jobs/JobObject.d.ts +3 -3
  180. package/dist/server/loadRootComponents.js +1 -0
  181. package/dist/server/loadRootComponents.js.map +1 -1
  182. package/dist/server/operationsServer.js +3 -1
  183. package/dist/server/operationsServer.js.map +1 -1
  184. package/dist/server/serverHelpers/JSONStream.d.ts +3 -3
  185. package/dist/server/serverHelpers/Request.d.ts +5 -5
  186. package/dist/server/serverHelpers/requestTimePlugin.d.ts +1 -1
  187. package/dist/server/threads/manageThreads.d.ts +2 -2
  188. package/dist/server/threads/manageThreads.js +50 -35
  189. package/dist/server/threads/manageThreads.js.map +1 -1
  190. package/dist/server/threads/socketRouter.d.ts +1 -1
  191. package/dist/sqlTranslator/deleteTranslator.d.ts +1 -1
  192. package/dist/utility/AWS/AWSConnector.d.ts +3 -2
  193. package/dist/utility/common_utils.d.ts +3 -3
  194. package/dist/utility/environment/systemInformation.d.ts +1 -0
  195. package/dist/utility/functions/date/dateFunctions.d.ts +11 -11
  196. package/dist/utility/globalSchema.d.ts +1 -1
  197. package/dist/utility/hdbTerms.d.ts +3 -0
  198. package/dist/utility/hdbTerms.js +3 -0
  199. package/dist/utility/hdbTerms.js.map +1 -1
  200. package/dist/utility/installation.d.ts +2 -4
  201. package/dist/utility/installation.js.map +1 -1
  202. package/dist/utility/lmdb/commonUtility.d.ts +1 -0
  203. package/dist/utility/lmdb/deleteUtility.d.ts +1 -0
  204. package/dist/utility/lmdb/environmentUtility.d.ts +1 -0
  205. package/dist/utility/lmdb/searchUtility.d.ts +2 -1
  206. package/dist/utility/lmdb/writeUtility.d.ts +1 -0
  207. package/dist/utility/logging/harper_logger.d.ts +6 -6
  208. package/dist/utility/processManagement/processManagement.d.ts +1 -1
  209. package/dist/utility/processManagement/servicesConfig.d.ts +12 -6
  210. package/dist/validation/common_validators.d.ts +4 -3
  211. package/dist/validation/configValidator.d.ts +3 -2
  212. package/index.d.ts +56 -0
  213. package/index.js +41 -0
  214. package/json/systemSchema.json +373 -0
  215. package/launchServiceScripts/launchHarperDB.js +3 -0
  216. package/launchServiceScripts/utility/checkNodeVersion.js +15 -0
  217. package/package.json +21 -3
  218. package/resources/DatabaseTransaction.ts +378 -0
  219. package/resources/ErrorResource.ts +57 -0
  220. package/resources/IterableEventQueue.ts +94 -0
  221. package/resources/LMDBTransaction.ts +349 -0
  222. package/resources/RecordEncoder.ts +702 -0
  223. package/resources/RequestTarget.ts +134 -0
  224. package/resources/Resource.ts +789 -0
  225. package/resources/ResourceInterface.ts +221 -0
  226. package/resources/ResourceInterfaceV2.ts +53 -0
  227. package/resources/ResourceV2.ts +67 -0
  228. package/resources/Resources.ts +162 -0
  229. package/resources/RocksIndexStore.ts +70 -0
  230. package/resources/RocksTransactionLogStore.ts +352 -0
  231. package/resources/Table.ts +4527 -0
  232. package/resources/analytics/hostnames.ts +72 -0
  233. package/resources/analytics/metadata.ts +10 -0
  234. package/resources/analytics/read.ts +252 -0
  235. package/resources/analytics/write.ts +803 -0
  236. package/resources/auditStore.ts +556 -0
  237. package/resources/blob.ts +1268 -0
  238. package/resources/crdt.ts +125 -0
  239. package/resources/dataLoader.ts +527 -0
  240. package/resources/databases.ts +1290 -0
  241. package/resources/graphql.ts +221 -0
  242. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +638 -0
  243. package/resources/indexes/customIndexes.ts +7 -0
  244. package/resources/indexes/vector.ts +38 -0
  245. package/resources/jsResource.ts +86 -0
  246. package/resources/loadEnv.ts +22 -0
  247. package/resources/login.ts +18 -0
  248. package/resources/openApi.ts +409 -0
  249. package/resources/registrationDeprecated.ts +8 -0
  250. package/resources/replayLogs.ts +136 -0
  251. package/resources/roles.ts +98 -0
  252. package/resources/search.ts +1301 -0
  253. package/resources/tracked.ts +584 -0
  254. package/resources/transaction.ts +89 -0
  255. package/resources/transactionBroadcast.ts +258 -0
  256. package/security/auth.ts +376 -0
  257. package/security/certificateVerification/certificateVerificationSource.ts +84 -0
  258. package/security/certificateVerification/configValidation.ts +107 -0
  259. package/security/certificateVerification/crlVerification.ts +623 -0
  260. package/security/certificateVerification/index.ts +121 -0
  261. package/security/certificateVerification/ocspVerification.ts +148 -0
  262. package/security/certificateVerification/pkijs-ed25519-patch.ts +188 -0
  263. package/security/certificateVerification/types.ts +128 -0
  264. package/security/certificateVerification/verificationConfig.ts +138 -0
  265. package/security/certificateVerification/verificationUtils.ts +447 -0
  266. package/security/cryptoHash.js +42 -0
  267. package/security/data_objects/PermissionAttributeResponseObject.js +15 -0
  268. package/security/data_objects/PermissionResponseObject.js +115 -0
  269. package/security/data_objects/PermissionTableResponseObject.js +20 -0
  270. package/security/fastifyAuth.js +169 -0
  271. package/security/impersonation.ts +160 -0
  272. package/security/jsLoader.ts +716 -0
  273. package/security/keys.js +948 -0
  274. package/security/permissionsTranslator.js +300 -0
  275. package/security/role.js +218 -0
  276. package/security/tokenAuthentication.ts +228 -0
  277. package/security/user.ts +449 -0
  278. package/server/DurableSubscriptionsSession.ts +503 -0
  279. package/server/REST.ts +407 -0
  280. package/server/Server.ts +89 -0
  281. package/server/fastifyRoutes/helpers/getCORSOptions.js +36 -0
  282. package/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +15 -0
  283. package/server/fastifyRoutes/helpers/getServerOptions.js +33 -0
  284. package/server/fastifyRoutes/plugins/hdbCore.js +39 -0
  285. package/server/fastifyRoutes.ts +205 -0
  286. package/server/graphqlQuerying.ts +700 -0
  287. package/server/http.ts +640 -0
  288. package/server/itc/serverHandlers.js +161 -0
  289. package/server/itc/utility/ITCEventObject.js +10 -0
  290. package/server/jobs/JobObject.js +24 -0
  291. package/server/jobs/jobProcess.js +69 -0
  292. package/server/jobs/jobRunner.js +162 -0
  293. package/server/jobs/jobs.js +304 -0
  294. package/server/loadRootComponents.js +44 -0
  295. package/server/mqtt.ts +485 -0
  296. package/server/nodeName.ts +75 -0
  297. package/server/operationsServer.ts +313 -0
  298. package/server/serverHelpers/Headers.ts +108 -0
  299. package/server/serverHelpers/JSONStream.ts +269 -0
  300. package/server/serverHelpers/OperationFunctionObject.ts +13 -0
  301. package/server/serverHelpers/Request.ts +158 -0
  302. package/server/serverHelpers/contentTypes.ts +637 -0
  303. package/server/serverHelpers/requestTimePlugin.js +57 -0
  304. package/server/serverHelpers/serverHandlers.js +148 -0
  305. package/server/serverHelpers/serverUtilities.ts +473 -0
  306. package/server/serverRegistry.ts +8 -0
  307. package/server/static.ts +187 -0
  308. package/server/status/definitions.ts +37 -0
  309. package/server/status/index.ts +125 -0
  310. package/server/storageReclamation.ts +93 -0
  311. package/server/threads/itc.js +89 -0
  312. package/server/threads/manageThreads.js +594 -0
  313. package/server/threads/socketRouter.ts +360 -0
  314. package/server/threads/threadServer.js +279 -0
  315. package/server/throttle.ts +73 -0
  316. package/sqlTranslator/SelectValidator.js +330 -0
  317. package/sqlTranslator/alasqlFunctionImporter.js +62 -0
  318. package/sqlTranslator/deleteTranslator.js +67 -0
  319. package/sqlTranslator/index.js +242 -0
  320. package/sqlTranslator/sql_statement_bucket.js +472 -0
  321. package/static/defaultConfig.yaml +3 -0
  322. package/studio/web/HDBDogOnly.svg +78 -0
  323. package/studio/web/assets/PPRadioGrotesk-Bold-DDaUYG8E.woff +0 -0
  324. package/studio/web/assets/fa-brands-400-CEJbCg16.woff +0 -0
  325. package/studio/web/assets/fa-brands-400-CSYNqBb_.ttf +0 -0
  326. package/studio/web/assets/fa-brands-400-DnkPfk3o.eot +0 -0
  327. package/studio/web/assets/fa-brands-400-UxlILjvJ.woff2 +0 -0
  328. package/studio/web/assets/fa-brands-400-cH1MgKbP.svg +3717 -0
  329. package/studio/web/assets/fa-regular-400-BhTwtT8w.eot +0 -0
  330. package/studio/web/assets/fa-regular-400-D1vz6WBx.ttf +0 -0
  331. package/studio/web/assets/fa-regular-400-DFnMcJPd.woff +0 -0
  332. package/studio/web/assets/fa-regular-400-DGzu1beS.woff2 +0 -0
  333. package/studio/web/assets/fa-regular-400-gwj8Pxq-.svg +801 -0
  334. package/studio/web/assets/fa-solid-900-B4ZZ7kfP.svg +5034 -0
  335. package/studio/web/assets/fa-solid-900-B6Axprfb.eot +0 -0
  336. package/studio/web/assets/fa-solid-900-BUswJgRo.woff2 +0 -0
  337. package/studio/web/assets/fa-solid-900-DOXgCApm.woff +0 -0
  338. package/studio/web/assets/fa-solid-900-mxuxnBEa.ttf +0 -0
  339. package/studio/web/assets/index-BTgXJX9d.js +235 -0
  340. package/studio/web/assets/index-BTgXJX9d.js.map +1 -0
  341. package/studio/web/assets/index-C-GXfcup.js +37 -0
  342. package/studio/web/assets/index-C-GXfcup.js.map +1 -0
  343. package/studio/web/assets/index-PFlNdimM.js +2 -0
  344. package/studio/web/assets/index-PFlNdimM.js.map +1 -0
  345. package/studio/web/assets/index-Y2g_iFpU.css +1 -0
  346. package/studio/web/assets/index-jiPwkrsB.css +1 -0
  347. package/studio/web/assets/index.lazy-C3TJZJ4o.js +266 -0
  348. package/studio/web/assets/index.lazy-C3TJZJ4o.js.map +1 -0
  349. package/studio/web/assets/profiler-DotzgiCJ.js +2 -0
  350. package/studio/web/assets/profiler-DotzgiCJ.js.map +1 -0
  351. package/studio/web/assets/react-redux-VxUEx_mU.js +6 -0
  352. package/studio/web/assets/react-redux-VxUEx_mU.js.map +1 -0
  353. package/studio/web/assets/startRecording-B_9J9Csd.js +3 -0
  354. package/studio/web/assets/startRecording-B_9J9Csd.js.map +1 -0
  355. package/studio/web/fabric-signup-background.webp +0 -0
  356. package/studio/web/fabric-signup-text.png +0 -0
  357. package/studio/web/favicon_purple.png +0 -0
  358. package/studio/web/github-icon.svg +15 -0
  359. package/studio/web/harper-fabric_black.png +0 -0
  360. package/studio/web/harper-fabric_white.png +0 -0
  361. package/studio/web/harper-studio_white.png +0 -0
  362. package/studio/web/index.html +16 -0
  363. package/studio/web/running.css +148 -0
  364. package/studio/web/running.html +147 -0
  365. package/studio/web/running.js +111 -0
  366. package/upgrade/UpgradeObjects.js +13 -0
  367. package/upgrade/directives/directivesController.js +90 -0
  368. package/upgrade/directivesManager.js +139 -0
  369. package/upgrade/upgradePrompt.js +124 -0
  370. package/upgrade/upgradeUtilities.js +28 -0
  371. package/utility/AWS/AWSConnector.js +29 -0
  372. package/utility/OperationFunctionCaller.js +63 -0
  373. package/utility/assignCmdEnvVariables.js +62 -0
  374. package/utility/common_utils.js +867 -0
  375. package/utility/environment/environmentManager.js +208 -0
  376. package/utility/environment/systemInformation.js +355 -0
  377. package/utility/errors/commonErrors.js +267 -0
  378. package/utility/errors/hdbError.js +146 -0
  379. package/utility/functions/date/dateFunctions.js +65 -0
  380. package/utility/functions/geo.js +355 -0
  381. package/utility/functions/sql/alaSQLExtension.js +104 -0
  382. package/utility/globalSchema.js +35 -0
  383. package/utility/hdbTerms.ts +819 -0
  384. package/utility/install/checkJWTTokensExist.js +62 -0
  385. package/utility/install/harperdb.conf +15 -0
  386. package/utility/install/harperdb.service +14 -0
  387. package/utility/install/installer.js +635 -0
  388. package/utility/installation.ts +30 -0
  389. package/utility/lmdb/DBIDefinition.js +20 -0
  390. package/utility/lmdb/DeleteRecordsResponseObject.js +25 -0
  391. package/utility/lmdb/InsertRecordsResponseObject.js +22 -0
  392. package/utility/lmdb/OpenDBIObject.js +31 -0
  393. package/utility/lmdb/OpenEnvironmentObject.js +41 -0
  394. package/utility/lmdb/UpdateRecordsResponseObject.js +25 -0
  395. package/utility/lmdb/UpsertRecordsResponseObject.js +22 -0
  396. package/utility/lmdb/cleanLMDBMap.js +65 -0
  397. package/utility/lmdb/commonUtility.js +119 -0
  398. package/utility/lmdb/deleteUtility.js +128 -0
  399. package/utility/lmdb/environmentUtility.js +477 -0
  400. package/utility/lmdb/searchCursorFunctions.js +187 -0
  401. package/utility/lmdb/searchUtility.js +918 -0
  402. package/utility/lmdb/terms.js +57 -0
  403. package/utility/lmdb/writeUtility.js +407 -0
  404. package/utility/logging/harper_logger.js +876 -0
  405. package/utility/logging/logRotator.js +157 -0
  406. package/utility/logging/logger.ts +24 -0
  407. package/utility/logging/readLog.js +355 -0
  408. package/utility/logging/transactionLog.js +57 -0
  409. package/utility/mount_hdb.js +59 -0
  410. package/utility/npmUtilities.js +102 -0
  411. package/utility/operationPermissions.ts +112 -0
  412. package/utility/operation_authorization.js +836 -0
  413. package/utility/packageUtils.js +55 -0
  414. package/utility/password.ts +99 -0
  415. package/utility/processManagement/processManagement.js +187 -0
  416. package/utility/processManagement/servicesConfig.js +56 -0
  417. package/utility/scripts/restartHdb.js +24 -0
  418. package/utility/scripts/user_data.sh +13 -0
  419. package/utility/signalling.js +36 -0
  420. package/utility/terms/certificates.js +81 -0
  421. package/utility/when.ts +20 -0
  422. package/v1.d.ts +39 -0
  423. package/v1.js +41 -0
  424. package/v2.d.ts +39 -0
  425. package/v2.js +41 -0
  426. package/validation/bulkDeleteValidator.js +24 -0
  427. package/validation/check_permissions.js +19 -0
  428. package/validation/common_validators.js +95 -0
  429. package/validation/configValidator.js +331 -0
  430. package/validation/deleteValidator.js +15 -0
  431. package/validation/fileLoadValidator.js +153 -0
  432. package/validation/insertValidator.js +40 -0
  433. package/validation/installValidator.js +37 -0
  434. package/validation/readLogValidator.js +64 -0
  435. package/validation/role_validation.js +320 -0
  436. package/validation/schemaMetadataValidator.js +42 -0
  437. package/validation/searchValidator.js +166 -0
  438. package/validation/statusValidator.ts +66 -0
  439. package/validation/transactionLogValidator.js +33 -0
  440. package/validation/user_validation.js +55 -0
  441. package/validation/validationWrapper.js +105 -0
  442. package/dist/resources/analytics/profile.d.ts +0 -2
  443. package/dist/resources/analytics/profile.js +0 -144
  444. package/dist/resources/analytics/profile.js.map +0 -1
@@ -0,0 +1,355 @@
1
+ 'use strict';
2
+
3
+ /***
4
+ * geo.js
5
+ *
6
+ * Module created as a wrapper for our implementation of turf.js into the sql parser
7
+ * turf.js has very robust internal validation as such we offload the validation to turf.js
8
+ */
9
+
10
+ const turfArea = require('@turf/area');
11
+ const turfLength = require('@turf/length');
12
+ const turfCircle = require('@turf/circle');
13
+ const turfDifference = require('@turf/difference');
14
+ const turfDistance = require('@turf/distance');
15
+ const turfBooleanContains = require('@turf/boolean-contains');
16
+ const turfBooleanEqual = require('@turf/boolean-equal');
17
+ const turfBooleanDisjoint = require('@turf/boolean-disjoint');
18
+ const turfHelpers = require('@turf/helpers');
19
+ const hdbTerms = require('../hdbTerms.ts');
20
+ const commonUtils = require('../common_utils.js');
21
+ const hdbLog = require('../logging/harper_logger.js');
22
+
23
+ module.exports = {
24
+ geoArea,
25
+ geoLength,
26
+ geoCircle,
27
+ geoDifference,
28
+ geoDistance,
29
+ geoNear,
30
+ geoContains,
31
+ geoEqual,
32
+ geoCrosses,
33
+ geoConvert,
34
+ };
35
+
36
+ /***
37
+ * Takes one or more features and returns the area in square meters
38
+ * @param geoJSON
39
+ * @returns {number}
40
+ */
41
+ function geoArea(geoJSON) {
42
+ if (commonUtils.isEmpty(geoJSON)) {
43
+ return NaN;
44
+ }
45
+
46
+ if (typeof geoJSON === 'string') {
47
+ geoJSON = commonUtils.autoCastJSON(geoJSON);
48
+ }
49
+ try {
50
+ return turfArea.default(geoJSON);
51
+ } catch (err) {
52
+ hdbLog.trace(err, geoJSON);
53
+ return NaN;
54
+ }
55
+ }
56
+
57
+ /***
58
+ * Takes a GeoJSON and measures its length in the specified units (default is kilometers)
59
+ * @param geoJSON
60
+ * @param units
61
+ * @returns {number}
62
+ */
63
+ function geoLength(geoJSON, units) {
64
+ if (commonUtils.isEmpty(geoJSON)) {
65
+ return NaN;
66
+ }
67
+
68
+ if (typeof geoJSON === 'string') {
69
+ geoJSON = commonUtils.autoCastJSON(geoJSON);
70
+ }
71
+
72
+ try {
73
+ return turfLength.default(geoJSON, { units: units ? units : 'kilometers' });
74
+ } catch (err) {
75
+ hdbLog.trace(err, geoJSON);
76
+ return NaN;
77
+ }
78
+ }
79
+
80
+ /***
81
+ * Takes a Point and calculates the circle polygon given a radius in units (default units are kilometers)
82
+ * @param point
83
+ * @param radius
84
+ * @param units
85
+ * @returns {Feature<Polygon>}
86
+ */
87
+ function geoCircle(point, radius, units) {
88
+ if (commonUtils.isEmpty(point)) {
89
+ return NaN;
90
+ }
91
+
92
+ if (commonUtils.isEmpty(radius)) {
93
+ return NaN;
94
+ }
95
+
96
+ if (typeof point === 'string') {
97
+ point = commonUtils.autoCastJSON(point);
98
+ }
99
+
100
+ try {
101
+ return turfCircle.default(point, radius, { units: units ? units : 'kilometers' });
102
+ } catch (err) {
103
+ hdbLog.trace(err, point, radius);
104
+ return NaN;
105
+ }
106
+ }
107
+
108
+ /***
109
+ * returns a new polygon with the difference of the second polygon clipped from the first polygon
110
+ * @param poly1
111
+ * @param poly2
112
+ * @returns {Feature<Polygon | MultiPolygon> | null}
113
+ */
114
+ function geoDifference(poly1, poly2) {
115
+ if (commonUtils.isEmpty(poly1)) {
116
+ return NaN;
117
+ }
118
+
119
+ if (commonUtils.isEmpty(poly2)) {
120
+ return NaN;
121
+ }
122
+
123
+ if (typeof poly1 === 'string') {
124
+ poly1 = commonUtils.autoCastJSON(poly1);
125
+ }
126
+
127
+ if (typeof poly2 === 'string') {
128
+ poly2 = commonUtils.autoCastJSON(poly2);
129
+ }
130
+
131
+ try {
132
+ return turfDifference(poly1, poly2);
133
+ } catch (err) {
134
+ hdbLog.trace(err, poly1, poly2);
135
+ return NaN;
136
+ }
137
+ }
138
+
139
+ /***
140
+ * Calculates the distance between two points, default unit is kilometers
141
+ * @param point1
142
+ * @param point2
143
+ * @param units
144
+ * @returns {number}
145
+ */
146
+ function geoDistance(point1, point2, units) {
147
+ if (commonUtils.isEmpty(point1)) {
148
+ return NaN;
149
+ }
150
+
151
+ if (commonUtils.isEmpty(point2)) {
152
+ return NaN;
153
+ }
154
+
155
+ if (typeof point1 === 'string') {
156
+ point1 = commonUtils.autoCastJSON(point1);
157
+ }
158
+ if (typeof point2 === 'string') {
159
+ point2 = commonUtils.autoCastJSON(point2);
160
+ }
161
+
162
+ try {
163
+ return turfDistance.default(point1, point2, { units: units ? units : 'kilometers' });
164
+ } catch (err) {
165
+ hdbLog.trace(err, point1, point2);
166
+ return NaN;
167
+ }
168
+ }
169
+
170
+ /***
171
+ * determines if point1 and point2 are within a specified distance from each other, default units are kilometers
172
+ * @param point1
173
+ * @param point2
174
+ * @param distance
175
+ * @param units
176
+ * @returns {boolean}
177
+ */
178
+ function geoNear(point1, point2, distance, units) {
179
+ if (commonUtils.isEmpty(point1)) {
180
+ return false;
181
+ }
182
+
183
+ if (commonUtils.isEmpty(point2)) {
184
+ return false;
185
+ }
186
+
187
+ if (commonUtils.isEmpty(distance)) {
188
+ throw new Error('distance is required');
189
+ }
190
+
191
+ if (typeof point1 === 'string') {
192
+ point1 = commonUtils.autoCastJSON(point1);
193
+ }
194
+ if (typeof point2 === 'string') {
195
+ point2 = commonUtils.autoCastJSON(point2);
196
+ }
197
+
198
+ if (isNaN(distance)) {
199
+ throw new Error('distance must be a number');
200
+ }
201
+
202
+ try {
203
+ let pointsDistance = geoDistance(point1, point2, units);
204
+ return pointsDistance <= distance;
205
+ } catch (err) {
206
+ hdbLog.trace(err, point1, point2);
207
+ return false;
208
+ }
209
+ }
210
+
211
+ /***
212
+ * Determines if geo2 is completely contained by geo1
213
+ * @param geo1
214
+ * @param geo2
215
+ * @returns {boolean}
216
+ */
217
+ function geoContains(geo1, geo2) {
218
+ if (commonUtils.isEmpty(geo1)) {
219
+ return false;
220
+ }
221
+
222
+ if (commonUtils.isEmpty(geo2)) {
223
+ return false;
224
+ }
225
+
226
+ if (geo1.coordinates && geo1.coordinates.includes?.(null)) {
227
+ return false;
228
+ }
229
+
230
+ if (geo2.coordinates && geo2.coordinates.includes?.(null)) {
231
+ return false;
232
+ }
233
+
234
+ if (typeof geo1 === 'string') {
235
+ geo1 = commonUtils.autoCastJSON(geo1);
236
+ }
237
+ if (typeof geo2 === 'string') {
238
+ geo2 = commonUtils.autoCastJSON(geo2);
239
+ }
240
+
241
+ try {
242
+ return turfBooleanContains.default(geo1, geo2);
243
+ } catch (err) {
244
+ hdbLog.trace(err, geo1, geo2);
245
+ return false;
246
+ }
247
+ }
248
+
249
+ /***
250
+ * Determines if geo1 & geo2 are the same type and have identical x,y coordinate values based on: http://edndoc.esri.com/arcsde/9.0/generalTopics/understandSpatialRelations.htm
251
+ * @param geo1
252
+ * @param geo2
253
+ * @returns {boolean}
254
+ */
255
+ function geoEqual(geo1, geo2) {
256
+ if (commonUtils.isEmpty(geo1)) {
257
+ return false;
258
+ }
259
+
260
+ if (commonUtils.isEmpty(geo2)) {
261
+ return false;
262
+ }
263
+
264
+ if (geo1.coordinates && geo1.coordinates.includes?.(null)) {
265
+ return false;
266
+ }
267
+
268
+ if (geo2.coordinates && geo2.coordinates.includes?.(null)) {
269
+ return false;
270
+ }
271
+
272
+ if (typeof geo1 === 'string') {
273
+ geo1 = commonUtils.autoCastJSON(geo1);
274
+ }
275
+ if (typeof geo2 === 'string') {
276
+ geo2 = commonUtils.autoCastJSON(geo2);
277
+ }
278
+
279
+ try {
280
+ return turfBooleanEqual.default(geo1, geo2);
281
+ } catch (err) {
282
+ hdbLog.trace(err, geo1, geo2);
283
+ return false;
284
+ }
285
+ }
286
+
287
+ /***
288
+ * Determines if the geometries cross over each other
289
+ * @param geo1
290
+ * @param geo2
291
+ * @returns {boolean}
292
+ */
293
+ function geoCrosses(geo1, geo2) {
294
+ if (commonUtils.isEmpty(geo1)) {
295
+ return false;
296
+ }
297
+
298
+ if (commonUtils.isEmpty(geo2)) {
299
+ return false;
300
+ }
301
+
302
+ if (geo1.coordinates && geo1.coordinates.includes?.(null)) {
303
+ return false;
304
+ }
305
+
306
+ if (geo2.coordinates && geo2.coordinates.includes?.(null)) {
307
+ return false;
308
+ }
309
+
310
+ if (typeof geo1 === 'string') {
311
+ geo1 = commonUtils.autoCastJSON(geo1);
312
+ }
313
+ if (typeof geo2 === 'string') {
314
+ geo2 = commonUtils.autoCastJSON(geo2);
315
+ }
316
+
317
+ try {
318
+ //need to do ! as this checks for non-intersections of geometries
319
+ return !turfBooleanDisjoint.default(geo1, geo2);
320
+ } catch (err) {
321
+ hdbLog.trace(err, geo1, geo2);
322
+ return false;
323
+ }
324
+ }
325
+
326
+ /***
327
+ * Converts a series of coordinates into the desired type
328
+ * @param coordinates
329
+ * @param geoType
330
+ * @param properties
331
+ * @returns {*}
332
+ */
333
+ function geoConvert(coordinates, geoType, properties) {
334
+ if (commonUtils.isEmptyOrZeroLength(coordinates)) {
335
+ throw new Error('coordinates is required');
336
+ }
337
+
338
+ if (commonUtils.isEmpty(geoType)) {
339
+ throw new Error('geo_type is required');
340
+ }
341
+
342
+ if (commonUtils.isEmpty(hdbTerms.GEO_CONVERSION_ENUM[geoType])) {
343
+ throw new Error(
344
+ `geoType of ${geoType} is invalid please use one of the following types: ${Object.keys(
345
+ hdbTerms.GEO_CONVERSION_ENUM
346
+ ).join(',')}`
347
+ );
348
+ }
349
+
350
+ if (typeof coordinates === 'string') {
351
+ coordinates = commonUtils.autoCastJSON(coordinates);
352
+ }
353
+
354
+ return turfHelpers[geoType](coordinates, properties);
355
+ }
@@ -0,0 +1,104 @@
1
+ 'use strict';
2
+
3
+ /***
4
+ * alaSQLExtension.js
5
+ * purpose of this module is to hold custom functions for alasql
6
+ */
7
+
8
+ const _ = require('lodash');
9
+ const mathjs = require('mathjs');
10
+ const jsonata = require('jsonata');
11
+ const hdbUtils = require('../../common_utils.js');
12
+
13
+ module.exports = {
14
+ /***
15
+ * distinctArray takes in an array an dedupes its values using lodash. this works on complex as well as simple datatypes
16
+ * @param array
17
+ * @returns array
18
+ */
19
+ distinct_array: (array) => {
20
+ if (Array.isArray(array) && array.length > 1) {
21
+ return _.uniqWith(array, _.isEqual);
22
+ }
23
+
24
+ return array;
25
+ },
26
+ searchJSON,
27
+ /***
28
+ * median absolute deviation aggregate function based on http://mathjs.org/docs/reference/functions/mad.html
29
+ */
30
+ mad: aggregateFunction.bind(null, mathjs.mad),
31
+ /***
32
+ * mean aggregate function based on http://mathjs.org/docs/reference/functions/mean.html
33
+ */
34
+ mean: aggregateFunction.bind(null, mathjs.mean),
35
+ /***
36
+ * computes the mode of values on http://mathjs.org/docs/reference/functions/mode.html
37
+ */
38
+ mode: aggregateFunction.bind(null, mathjs.mode),
39
+ /***
40
+ * compute the product based on http://mathjs.org/docs/reference/functions/prod.html
41
+ */
42
+ prod: aggregateFunction.bind(null, mathjs.prod),
43
+ /***
44
+ * compute the median based on http://mathjs.org/docs/reference/functions/median.html
45
+ */
46
+ median: aggregateFunction.bind(null, mathjs.median),
47
+ };
48
+
49
+ /***
50
+ * handles the 3 pass loop for aggregates and executes the final calc with the passed in aggregator function
51
+ * alasql's stages work like the following:
52
+ * stage 1 is the very first record and requires you to return what is the array variable from then on
53
+ * stage 2 occurs for every following row
54
+ * stage 3 is where the processing occurs and returns the final result
55
+ * @param calculationFunction - function to execute to perform the calculation
56
+ * @param value - value per row
57
+ * @param array - the aggregate list of values
58
+ * @param stage - defines the stage in processing see description above
59
+ * @returns {*}
60
+ */
61
+ function aggregateFunction(calculationFunction, value, array, stage) {
62
+ if (stage === 1) {
63
+ if (value === null || value === undefined) {
64
+ return [];
65
+ }
66
+
67
+ return [value];
68
+ } else if (stage === 2) {
69
+ if (value !== null && value !== undefined) {
70
+ array.push(value);
71
+ }
72
+ return array;
73
+ } else {
74
+ if (array !== null && array !== undefined && array.length > 0) {
75
+ return calculationFunction(array);
76
+ }
77
+
78
+ return null;
79
+ }
80
+ }
81
+
82
+ /**
83
+ * wrapper function that implements the JSONata library, which performs searches, transforms, etc... on JSON
84
+ * @param {String} jsonataExpression - the JSONata expression to execute
85
+ * @param {any} data - data which will be evaluated
86
+ * @returns {any}
87
+ */
88
+ function searchJSON(jsonataExpression, data) {
89
+ if (typeof jsonataExpression !== 'string' || jsonataExpression.length === 0) {
90
+ throw new Error('search json expression must be a non-empty string');
91
+ }
92
+
93
+ let alias = '__' + jsonataExpression + '__';
94
+
95
+ if (hdbUtils.isEmpty(this.__ala__.res)) {
96
+ this.__ala__.res = {};
97
+ }
98
+
99
+ if (hdbUtils.isEmpty(this.__ala__.res[alias])) {
100
+ let expression = jsonata(jsonataExpression);
101
+ this.__ala__.res[alias] = expression;
102
+ }
103
+ return this.__ala__.res[alias].evaluate(data);
104
+ }
@@ -0,0 +1,35 @@
1
+ const systemSchema = require('../json/systemSchema.json');
2
+ const { promisify } = require('util');
3
+ const { getDatabases } = require('../resources/databases.ts');
4
+
5
+ module.exports = {
6
+ setSchemaDataToGlobal,
7
+ getTableSchema,
8
+ getSystemSchema,
9
+ setSchemaDataToGlobalAsync: promisify(setSchemaDataToGlobal),
10
+ };
11
+
12
+ function setSchemaDataToGlobal(callback) {
13
+ global.hdb_schema = getDatabases();
14
+ if (callback) callback();
15
+ }
16
+
17
+ function getTableSchema(schemaName, tableName, callback) {
18
+ const database = getDatabases()[schemaName];
19
+ if (!database) {
20
+ return callback(`schema ${schemaName} does not exist`);
21
+ }
22
+ const table = database[tableName];
23
+ if (!table) {
24
+ return callback(`table ${schemaName}.${tableName} does not exist`);
25
+ }
26
+ return callback(null, {
27
+ schema: schemaName,
28
+ name: tableName,
29
+ hash_attribute: table.primaryKey,
30
+ });
31
+ }
32
+
33
+ function getSystemSchema() {
34
+ return systemSchema;
35
+ }