@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
@@ -51,15 +51,18 @@ const transaction_ts_1 = require("../resources/transaction.js");
51
51
  const RequestTarget_ts_1 = require("../resources/RequestTarget.js");
52
52
  const databases_ts_1 = require("../resources/databases.js");
53
53
  const promises_1 = require("node:fs/promises");
54
- const node_fs_1 = require("node:fs");
55
54
  const node_path_1 = require("node:path");
56
55
  const node_url_1 = require("node:url");
57
56
  const node_vm_1 = require("node:vm");
58
57
  const harper_logger_js_1 = __importDefault(require("../utility/logging/harper_logger.js"));
59
58
  const node_module_1 = require("node:module");
60
59
  const env = __importStar(require("../utility/environment/environmentManager"));
60
+ const child_process = __importStar(require("node:child_process"));
61
61
  const hdbTerms_ts_1 = require("../utility/hdbTerms.js");
62
62
  const contentTypes_ts_1 = require("../server/serverHelpers/contentTypes.js");
63
+ const node_fs_1 = require("node:fs");
64
+ const node_path_2 = require("node:path");
65
+ const node_events_1 = require("node:events");
63
66
  const APPLICATIONS_LOCKDOWN = env.get(hdbTerms_ts_1.CONFIG_PARAMS.APPLICATIONS_LOCKDOWN);
64
67
  let lockedDown = false;
65
68
  /**
@@ -160,6 +163,7 @@ async function scopedImport(filePath, scope) {
160
163
  */
161
164
  async function loadModuleWithVM(moduleUrl, scope) {
162
165
  const moduleCache = new Map();
166
+ const linkingPromises = new Map();
163
167
  // Create a secure context with limited globals
164
168
  const contextObject = getGlobalObject(scope);
165
169
  const context = (0, node_vm_1.createContext)(contextObject);
@@ -175,11 +179,16 @@ async function loadModuleWithVM(moduleUrl, scope) {
175
179
  if (specifier.startsWith('file://')) {
176
180
  return specifier;
177
181
  }
178
- const resolved = (0, node_module_1.createRequire)(referrer).resolve(specifier);
179
- if ((0, node_path_1.isAbsolute)(resolved)) {
180
- return (0, node_url_1.pathToFileURL)(resolved).toString();
182
+ // For relative paths, resolve to absolute file URL
183
+ if (specifier.startsWith('.')) {
184
+ const resolved = (0, node_module_1.createRequire)(referrer).resolve(specifier);
185
+ if ((0, node_path_1.isAbsolute)(resolved)) {
186
+ return (0, node_url_1.pathToFileURL)(resolved).toString();
187
+ }
188
+ return resolved;
181
189
  }
182
- return resolved;
190
+ // For package names and node: specifiers, keep as-is for proper require() handling
191
+ return specifier;
183
192
  }
184
193
  /**
185
194
  * Load a CommonJS module in our private context
@@ -240,30 +249,37 @@ async function loadModuleWithVM(moduleUrl, scope) {
240
249
  */
241
250
  async function linker(specifier, referencingModule) {
242
251
  const resolvedUrl = resolveModule(specifier, referencingModule.identifier);
243
- // Check cache first
244
- if (moduleCache.has(resolvedUrl)) {
245
- return moduleCache.get(resolvedUrl);
246
- }
247
252
  const useContainment = specifier.startsWith('.') || scope.dependencyContainment;
248
- // Load the module
249
- return await loadModuleWithCache(resolvedUrl, useContainment);
253
+ // Return the module immediately (even if not yet linked) to support circular dependencies
254
+ return await getOrCreateModule(resolvedUrl, useContainment);
250
255
  }
251
- function loadModuleWithCache(url, usePrivateGlobal) {
252
- // Check cache
256
+ async function getOrCreateModule(url, usePrivateGlobal) {
257
+ // Check cache first - return cached module immediately (even if not linked yet)
253
258
  if (moduleCache.has(url)) {
254
259
  return moduleCache.get(url);
255
260
  }
256
- const loadingModule = loadModule(url, usePrivateGlobal);
257
- moduleCache.set(url, loadingModule);
258
- return loadingModule;
261
+ // Create the module and cache it immediately (before linking)
262
+ const module = await createModule(url, usePrivateGlobal);
263
+ moduleCache.set(url, module);
264
+ return module;
265
+ }
266
+ async function loadModuleWithCache(url, usePrivateGlobal) {
267
+ const module = await getOrCreateModule(url, usePrivateGlobal);
268
+ // Only link/evaluate once per module
269
+ if (!linkingPromises.has(url)) {
270
+ linkingPromises.set(url, module.link(linker).then(() => module.evaluate()));
271
+ }
272
+ // Wait for linking to complete
273
+ await linkingPromises.get(url);
274
+ return module;
259
275
  }
260
276
  /**
261
- * Load a module from URL and create appropriate vm.Module
277
+ * Create a module from URL without linking or evaluating
262
278
  */
263
- async function loadModule(url, usePrivateGlobal) {
279
+ async function createModule(url, usePrivateGlobal) {
264
280
  let module;
265
281
  // Handle special built-in modules
266
- if (url === 'harper') {
282
+ if (url === 'harper' || url === 'harperdb') {
267
283
  let harperExports = getHarperExports(scope);
268
284
  module = new node_vm_1.SyntheticModule(Object.keys(harperExports), function () {
269
285
  for (let key in harperExports) {
@@ -271,7 +287,7 @@ async function loadModuleWithVM(moduleUrl, scope) {
271
287
  }
272
288
  }, { identifier: url, context });
273
289
  }
274
- else if (usePrivateGlobal && url.startsWith('file://')) {
290
+ else if (url.startsWith('file://')) {
275
291
  checkAllowedModulePath(url, scope.verifyPath);
276
292
  // Load source text from file
277
293
  const source = await (0, promises_1.readFile)(new URL(url), { encoding: 'utf-8' });
@@ -289,17 +305,9 @@ async function loadModuleWithVM(moduleUrl, scope) {
289
305
  return dynamicModule;
290
306
  },
291
307
  });
292
- // Cache the module
293
- moduleCache.set(url, module);
294
- // Link the module (resolve all imports)
295
- await module.link(linker);
296
- // Evaluate the module
297
- await module.evaluate();
298
- return module;
299
308
  }
300
309
  catch (err) {
301
310
  // If ESM parsing fails, try to load as CommonJS
302
- // but first try the cache again
303
311
  if (err.message?.includes('require is not defined') ||
304
312
  source.includes('module.exports') ||
305
313
  source.includes('exports.')) {
@@ -311,20 +319,33 @@ async function loadModuleWithVM(moduleUrl, scope) {
311
319
  }
312
320
  }
313
321
  else {
314
- checkAllowedModulePath(url, scope.verifyPath);
315
- // For Node.js built-in modules (node:) and npm packages, use dynamic import
316
- const importedModule = await import(__rewriteRelativeImportExtension(url));
317
- const exportNames = Object.keys(importedModule);
318
- module = new node_vm_1.SyntheticModule(exportNames, function () {
319
- for (const key of exportNames) {
320
- this.setExport(key, importedModule[key]);
321
- }
322
- }, { identifier: url, context });
322
+ const replacedModule = checkAllowedModulePath(url, scope.verifyPath);
323
+ // For Node.js built-in modules (node:) and npm packages
324
+ // Always try require first to properly handle CJS modules with named exports
325
+ try {
326
+ const cjsExports = replacedModule ?? require(url);
327
+ // It's a CJS module - expose all properties as named exports
328
+ const exportNames = Object.keys(cjsExports);
329
+ module = new node_vm_1.SyntheticModule(exportNames.length > 0 ? [...exportNames, 'default'] : ['default'], function () {
330
+ if (exportNames.length > 0) {
331
+ for (const key of exportNames) {
332
+ this.setExport(key, cjsExports[key]);
333
+ }
334
+ }
335
+ this.setExport('default', cjsExports);
336
+ }, { identifier: url, context });
337
+ }
338
+ catch {
339
+ // Fall back to dynamic import for ESM packages
340
+ const importedModule = await import(__rewriteRelativeImportExtension(url));
341
+ const exportNames = Object.keys(importedModule);
342
+ module = new node_vm_1.SyntheticModule(exportNames, function () {
343
+ for (const key of exportNames) {
344
+ this.setExport(key, importedModule[key]);
345
+ }
346
+ }, { identifier: url, context });
347
+ }
323
348
  }
324
- // Link the module (resolve all imports)
325
- await module.link(linker);
326
- // Evaluate the module
327
- await module.evaluate();
328
349
  return module;
329
350
  }
330
351
  // Load the entry module
@@ -448,41 +469,197 @@ function getHarperExports(scope) {
448
469
  contentTypes: contentTypes_ts_1.contentTypes,
449
470
  };
450
471
  }
451
- const ALLOWED_NODE_BUILTIN_MODULES = new Set([
452
- 'assert',
453
- 'http',
454
- 'https',
455
- 'path',
456
- 'url',
457
- 'util',
458
- 'stream',
459
- 'crypto',
460
- 'buffer',
461
- 'string_decoder',
462
- 'querystring',
463
- 'punycode',
464
- 'zlib',
465
- 'events',
466
- 'timers',
467
- 'process',
468
- 'async_hooks',
469
- 'console',
470
- 'perf_hooks',
471
- 'diagnostics_channel',
472
- 'fs',
473
- ]);
472
+ const ALLOWED_NODE_BUILTIN_MODULES = env.get(hdbTerms_ts_1.CONFIG_PARAMS.APPLICATIONS_ALLOWEDBUILTINMODULES)
473
+ ? new Set(env.get(hdbTerms_ts_1.CONFIG_PARAMS.APPLICATIONS_ALLOWEDBUILTINMODULES))
474
+ : {
475
+ // if we don't have a list of allowed modules, allow everything
476
+ has() {
477
+ return true;
478
+ },
479
+ };
480
+ const ALLOWED_COMMANDS = new Set(env.get(hdbTerms_ts_1.CONFIG_PARAMS.APPLICATIONS_ALLOWEDSPAWNCOMMANDS) ?? []);
481
+ const REPLACED_BUILTIN_MODULES = {
482
+ child_process: {
483
+ exec: createSpawn(child_process.exec),
484
+ execFile: createSpawn(child_process.execFile),
485
+ fork: createSpawn(child_process.fork, true), // this is launching node, so deemed safe
486
+ spawn: createSpawn(child_process.spawn),
487
+ },
488
+ };
489
+ /**
490
+ * Creates a ChildProcess-like object for an existing process
491
+ */
492
+ class ExistingProcessWrapper extends node_events_1.EventEmitter {
493
+ pid;
494
+ checkInterval;
495
+ constructor(pid) {
496
+ super();
497
+ this.pid = pid;
498
+ // Monitor process and emit exit event when it terminates
499
+ this.checkInterval = setInterval(() => {
500
+ try {
501
+ // Signal 0 checks if process exists without actually killing it
502
+ process.kill(pid, 0);
503
+ }
504
+ catch {
505
+ // Process no longer exists
506
+ clearInterval(this.checkInterval);
507
+ this.emit('exit', null, null);
508
+ }
509
+ }, 1000);
510
+ }
511
+ // Kill the process
512
+ kill(signal) {
513
+ try {
514
+ process.kill(this.pid, signal);
515
+ return true;
516
+ }
517
+ catch {
518
+ return false;
519
+ }
520
+ }
521
+ // Clean up interval when wrapper is no longer needed
522
+ unref() {
523
+ clearInterval(this.checkInterval);
524
+ return this;
525
+ }
526
+ }
527
+ /**
528
+ * Checks if a process with the given PID is running
529
+ */
530
+ function isProcessRunning(pid) {
531
+ try {
532
+ // Signal 0 checks existence without killing
533
+ process.kill(pid, 0);
534
+ return true;
535
+ }
536
+ catch {
537
+ return false;
538
+ }
539
+ }
540
+ /**
541
+ * Acquires an exclusive lock using the PID file itself (synchronously with busy-wait)
542
+ * Returns 0 if lock was acquired (need to spawn new process), or the existing PID if process is running
543
+ */
544
+ function acquirePidFileLock(pidFilePath, maxRetries = 100, retryDelay = 5) {
545
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
546
+ try {
547
+ // Try to open exclusively - 'wx' fails if file exists
548
+ const fd = (0, node_fs_1.openSync)(pidFilePath, 'wx');
549
+ (0, node_fs_1.closeSync)(fd);
550
+ return 0; // Successfully acquired lock (file created), caller should spawn process
551
+ }
552
+ catch (err) {
553
+ if (err.code === 'EEXIST') {
554
+ // File exists - check if it contains a valid running process
555
+ try {
556
+ const pidContent = (0, node_fs_1.readFileSync)(pidFilePath, 'utf-8');
557
+ const existingPid = parseInt(pidContent.trim(), 10);
558
+ if (!isNaN(existingPid) && isProcessRunning(existingPid)) {
559
+ // Valid process is running, return its PID immediately
560
+ return existingPid;
561
+ }
562
+ // Invalid/empty PID - check file age to determine if it's stale or being written
563
+ const stats = (0, node_fs_1.statSync)(pidFilePath);
564
+ const fileAge = Date.now() - stats.mtimeMs;
565
+ // If file is very new (less than 100ms) and empty/invalid, another thread is likely still writing to it
566
+ if (fileAge < 100) {
567
+ // Just wait and retry, don't try to remove
568
+ }
569
+ else {
570
+ // Stale PID file (old and invalid), try to remove it
571
+ try {
572
+ (0, node_fs_1.unlinkSync)(pidFilePath);
573
+ }
574
+ catch {
575
+ // Another thread may have removed it, retry
576
+ }
577
+ }
578
+ }
579
+ catch {
580
+ // Couldn't read/stat file, another thread might be modifying it, retry
581
+ }
582
+ // Wait a bit before retrying
583
+ const start = Date.now();
584
+ while (Date.now() - start < retryDelay) {
585
+ // Busy wait
586
+ }
587
+ }
588
+ else {
589
+ throw err;
590
+ }
591
+ }
592
+ }
593
+ throw new Error(`Failed to acquire PID file lock after ${maxRetries} attempts`);
594
+ }
595
+ function createSpawn(spawnFunction, alwaysAllow) {
596
+ const basePath = env.getHdbBasePath();
597
+ return function (command, args, options, callback) {
598
+ if (!ALLOWED_COMMANDS.has(command.split(' ')[0]) && !alwaysAllow) {
599
+ throw new Error(`Command ${command} is not allowed`);
600
+ }
601
+ const processName = options?.name;
602
+ if (!processName)
603
+ throw new Error(`Calling ${spawnFunction.name} in Harper must have a process "name" in the options to ensure that a single process is started and reused`);
604
+ // Ensure PID directory exists
605
+ const pidDir = (0, node_path_2.join)(basePath, 'pids');
606
+ (0, node_fs_1.mkdirSync)(pidDir, { recursive: true });
607
+ const pidFilePath = (0, node_path_2.join)(pidDir, `${processName}.pid`);
608
+ // Try to acquire lock - returns 0 if acquired, or existing PID
609
+ const existingPid = acquirePidFileLock(pidFilePath);
610
+ if (existingPid !== 0) {
611
+ // Existing process is running, return wrapper
612
+ return new ExistingProcessWrapper(existingPid);
613
+ }
614
+ // We acquired the lock (file was created), spawn new process
615
+ const childProcess = spawnFunction(command, args, options, callback);
616
+ // Write PID to the file we just created
617
+ try {
618
+ (0, node_fs_1.writeFileSync)(pidFilePath, childProcess.pid.toString(), 'utf-8');
619
+ }
620
+ catch (err) {
621
+ // Failed to write PID, clean up
622
+ try {
623
+ childProcess.kill();
624
+ (0, node_fs_1.unlinkSync)(pidFilePath);
625
+ }
626
+ catch { }
627
+ throw err;
628
+ }
629
+ // Clean up PID file when process exits
630
+ childProcess.on('exit', () => {
631
+ try {
632
+ (0, node_fs_1.unlinkSync)(pidFilePath);
633
+ }
634
+ catch {
635
+ // File may already be removed
636
+ }
637
+ });
638
+ return childProcess;
639
+ };
640
+ }
641
+ /**
642
+ * Validates whether a module can be loaded based on security restrictions and returns the module path or replacement.
643
+ * For file URLs, ensures the module is within the containing folder.
644
+ * For node built-in modules, checks against an allowlist and returns any replacements.
645
+ *
646
+ * @param {string} moduleUrl - The URL or identifier of the module to be loaded, which may be a file: URL, node: URL, or bare module specifier.
647
+ * @param {string} containingFolder - The absolute path of the folder that contains the application, used to validate file: URLs are within bounds.
648
+ * @return {any} Returns undefined for allowed file paths, or a replacement module identifier for allowed node built-in modules.
649
+ * @throws {Error} Throws an error if the module is outside the application folder or if the module is not in the allowed list.
650
+ */
474
651
  function checkAllowedModulePath(moduleUrl, containingFolder) {
475
652
  if (moduleUrl.startsWith('file:')) {
476
653
  const path = moduleUrl.slice(7);
477
654
  if (!containingFolder || path.startsWith(containingFolder)) {
478
- return true;
655
+ return;
479
656
  }
480
657
  throw new Error(`Can not load module outside of application folder ${containingFolder}`);
481
658
  }
482
659
  let simpleName = moduleUrl.startsWith('node:') ? moduleUrl.slice(5) : moduleUrl;
483
660
  simpleName = simpleName.split('/')[0];
484
661
  if (ALLOWED_NODE_BUILTIN_MODULES.has(simpleName))
485
- return true;
662
+ return REPLACED_BUILTIN_MODULES[simpleName];
486
663
  throw new Error(`Module ${moduleUrl} is not allowed to be imported`);
487
664
  }
488
665
  function getContext() {
@@ -1 +1 @@
1
- {"version":3,"file":"jsLoader.js","sourceRoot":"","sources":["../../security/jsLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsLoader.js","sourceRoot":"","sources":["../../security/jsLoader.ts"],"names":[],"mappings":"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"}
@@ -184,7 +184,7 @@ function loadCertificates() {
184
184
  const x509Cert = new X509Certificate(certificatePem);
185
185
  let certCn;
186
186
  try {
187
- certCn = getPrimaryHostName(x509Cert);
187
+ certCn = (!ca && config.name) || getPrimaryHostName(x509Cert);
188
188
  }
189
189
  catch (err) {
190
190
  logger.error?.('error extracting host name from certificate', err);
@@ -211,7 +211,7 @@ function loadCertificates() {
211
211
  }
212
212
  promise = certificateTable.put({
213
213
  name: certCn,
214
- uses: ['https', ...(configKey.includes('operations') ? ['operations'] : [])],
214
+ uses: config.uses ?? ['https', ...(configKey.includes('operations') ? ['operations'] : [])],
215
215
  ciphers: config.ciphers,
216
216
  certificate: certificatePem,
217
217
  private_key_name,
@@ -669,10 +669,9 @@ function createTLSSelector(type, mtlsOptions) {
669
669
  if (cert.is_authority) {
670
670
  continue;
671
671
  }
672
- let isOperations = type === 'operations-api';
673
672
  let quality = cert.is_self_signed ? 1 : 3;
674
673
  // prefer operations certificates for operations API
675
- if (isOperations && cert.uses?.includes?.('operations'))
674
+ if (cert.uses?.includes(type))
676
675
  quality += 1;
677
676
  const private_key = await getPrivateKeyByName(cert.private_key_name);
678
677
  let certificate = cert.certificate;
@@ -700,7 +699,7 @@ function createTLSSelector(type, mtlsOptions) {
700
699
  hostnames = [hostnames];
701
700
  for (let hostname of hostnames) {
702
701
  if (hostname === getHost())
703
- quality += 1; // prefer a certificate that has our hostname in the SANs
702
+ quality += 0.1; // prefer a certificate that has our hostname in the SANs
704
703
  }
705
704
  let secureContext = tls.createSecureContext(secureOptions);
706
705
  secureContext.name = cert.name;