@harperfast/harper 5.0.25 → 5.1.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 (1121) hide show
  1. package/README.md +11 -10
  2. package/agent/agent.ts +203 -0
  3. package/agent/loop.ts +205 -0
  4. package/agent/operations.ts +148 -0
  5. package/agent/session.ts +187 -0
  6. package/agent/tools/fsTools.ts +276 -0
  7. package/agent/tools/httpFetchTool.ts +112 -0
  8. package/agent/tools/scheduleTool.ts +68 -0
  9. package/agent/toolset.ts +43 -0
  10. package/agent/types.ts +85 -0
  11. package/bin/{BinObjects.js → BinObjects.ts} +4 -5
  12. package/bin/cliCredentials.ts +133 -0
  13. package/bin/cliOperations.ts +339 -0
  14. package/bin/copyDb.ts +10 -10
  15. package/bin/deployRenderer.ts +196 -0
  16. package/bin/{harper.js → harper.ts} +43 -19
  17. package/bin/{install.js → install.ts} +3 -3
  18. package/bin/lite.ts +2 -0
  19. package/bin/login.ts +168 -0
  20. package/bin/logout.ts +11 -0
  21. package/bin/mcp/client.ts +407 -0
  22. package/bin/mcp/doctor.ts +189 -0
  23. package/bin/mcp/index.ts +80 -0
  24. package/bin/mcp/options.ts +122 -0
  25. package/bin/mcp/printConfig.ts +89 -0
  26. package/bin/multipartBuilder.ts +74 -0
  27. package/bin/{restart.js → restart.ts} +27 -28
  28. package/bin/{run.js → run.ts} +41 -30
  29. package/bin/sseConsumer.ts +126 -0
  30. package/bin/{status.js → status.ts} +10 -10
  31. package/bin/{stop.js → stop.ts} +5 -5
  32. package/bin/upgrade.js +6 -6
  33. package/components/Application.ts +144 -18
  34. package/components/ApplicationScope.ts +2 -2
  35. package/components/ComponentV1.ts +2 -2
  36. package/components/EntryHandler.ts +159 -9
  37. package/components/OptionsWatcher.ts +75 -11
  38. package/components/Scope.ts +125 -15
  39. package/components/anthropic/index.ts +547 -0
  40. package/components/bedrock/index.ts +823 -0
  41. package/components/componentLoader.ts +63 -32
  42. package/components/deployLifecycle.ts +161 -0
  43. package/components/deploymentOperations.ts +173 -0
  44. package/components/deploymentRecorder.ts +402 -0
  45. package/components/deriveURLPath.ts +4 -4
  46. package/components/mcp/adapters/fastify.ts +87 -0
  47. package/components/mcp/adapters/harperHttp.ts +103 -0
  48. package/components/mcp/audit.ts +75 -0
  49. package/components/mcp/index.ts +134 -0
  50. package/components/mcp/jsonrpc.ts +134 -0
  51. package/components/mcp/lifecycle.ts +105 -0
  52. package/components/mcp/listChanged.ts +270 -0
  53. package/components/mcp/rateLimit.ts +217 -0
  54. package/components/mcp/resources.ts +593 -0
  55. package/components/mcp/session.ts +151 -0
  56. package/components/mcp/sessionRegistry.ts +140 -0
  57. package/components/mcp/toolRegistry.ts +292 -0
  58. package/components/mcp/tools/application.ts +603 -0
  59. package/components/mcp/tools/operations.ts +283 -0
  60. package/components/mcp/tools/schemas/derive.ts +256 -0
  61. package/components/mcp/tools/schemas/operations.ts +245 -0
  62. package/components/mcp/transport.ts +517 -0
  63. package/components/ollama/index.ts +316 -0
  64. package/components/openai/index.ts +563 -0
  65. package/components/operations.js +211 -60
  66. package/components/operationsValidation.js +3 -3
  67. package/components/packageComponent.ts +97 -29
  68. package/components/requestRestart.ts +17 -2
  69. package/components/status/crossThread.ts +14 -5
  70. package/components/status/errors.ts +1 -1
  71. package/config/RootConfigWatcher.ts +56 -2
  72. package/config/configUtils.js +29 -8
  73. package/config/harperConfigEnvVars.ts +1 -1
  74. package/config-root.schema.json +74 -0
  75. package/dataLayer/{CreateAttributeObject.js → CreateAttributeObject.ts} +4 -3
  76. package/dataLayer/{CreateTableObject.js → CreateTableObject.ts} +2 -1
  77. package/dataLayer/{DataLayerObjects.js → DataLayerObjects.ts} +17 -9
  78. package/dataLayer/{DeleteBeforeObject.js → DeleteBeforeObject.ts} +2 -1
  79. package/dataLayer/{DeleteObject.js → DeleteObject.ts} +3 -2
  80. package/dataLayer/{DropAttributeObject.js → DropAttributeObject.ts} +2 -1
  81. package/dataLayer/{GetBackupObject.js → GetBackupObject.ts} +3 -2
  82. package/dataLayer/{InsertObject.js → InsertObject.ts} +3 -2
  83. package/dataLayer/{ReadAuditLogObject.js → ReadAuditLogObject.ts} +3 -2
  84. package/dataLayer/{SQLSearch.js → SQLSearch.ts} +97 -43
  85. package/dataLayer/{SearchByConditionsObject.js → SearchByConditionsObject.ts} +5 -6
  86. package/dataLayer/{SearchByHashObject.js → SearchByHashObject.ts} +2 -1
  87. package/dataLayer/{SearchObject.js → SearchObject.ts} +2 -1
  88. package/dataLayer/{SqlSearchObject.js → SqlSearchObject.ts} +2 -1
  89. package/dataLayer/{UpdateObject.js → UpdateObject.ts} +3 -2
  90. package/dataLayer/{UpsertObject.js → UpsertObject.ts} +3 -2
  91. package/dataLayer/{bulkLoad.js → bulkLoad.ts} +40 -49
  92. package/dataLayer/{delete.js → delete.ts} +21 -26
  93. package/dataLayer/{export.js → export.ts} +22 -26
  94. package/dataLayer/{getBackup.js → getBackup.ts} +7 -9
  95. package/dataLayer/harperBridge/BridgeMethods.ts +102 -0
  96. package/dataLayer/harperBridge/ResourceBridge.ts +27 -26
  97. package/dataLayer/harperBridge/TableSizeObject.ts +1 -0
  98. package/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
  99. package/dataLayer/harperBridge/{harperBridge.js → harperBridge.ts} +3 -3
  100. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +8 -6
  101. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
  102. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
  103. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +6 -4
  104. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +5 -4
  105. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
  106. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +6 -5
  107. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +5 -4
  108. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
  109. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
  110. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
  111. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
  112. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +3 -2
  113. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
  114. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +10 -8
  115. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
  116. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +4 -3
  117. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
  118. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +6 -5
  119. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +2 -1
  120. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +3 -2
  121. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
  122. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +5 -4
  123. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +6 -3
  124. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.ts +1 -1
  125. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
  126. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
  127. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
  128. package/dataLayer/{hdbInfoController.js → hdbInfoController.ts} +20 -26
  129. package/dataLayer/{insert.js → insert.ts} +24 -24
  130. package/dataLayer/{readAuditLog.js → readAuditLog.ts} +8 -10
  131. package/dataLayer/{schema.js → schema.ts} +32 -44
  132. package/dataLayer/{schemaDescribe.js → schemaDescribe.ts} +23 -26
  133. package/dataLayer/{search.js → search.ts} +9 -15
  134. package/dataLayer/{transaction.js → transaction.ts} +2 -5
  135. package/dataLayer/{update.js → update.ts} +19 -22
  136. package/dist/agent/agent.d.ts +35 -0
  137. package/dist/agent/agent.js +175 -0
  138. package/dist/agent/agent.js.map +1 -0
  139. package/dist/agent/loop.d.ts +34 -0
  140. package/dist/agent/loop.js +176 -0
  141. package/dist/agent/loop.js.map +1 -0
  142. package/dist/agent/operations.d.ts +17 -0
  143. package/dist/agent/operations.js +137 -0
  144. package/dist/agent/operations.js.map +1 -0
  145. package/dist/agent/session.d.ts +36 -0
  146. package/dist/agent/session.js +182 -0
  147. package/dist/agent/session.js.map +1 -0
  148. package/dist/agent/tools/fsTools.d.ts +19 -0
  149. package/dist/agent/tools/fsTools.js +286 -0
  150. package/dist/agent/tools/fsTools.js.map +1 -0
  151. package/dist/agent/tools/httpFetchTool.d.ts +9 -0
  152. package/dist/agent/tools/httpFetchTool.js +116 -0
  153. package/dist/agent/tools/httpFetchTool.js.map +1 -0
  154. package/dist/agent/tools/scheduleTool.d.ts +22 -0
  155. package/dist/agent/tools/scheduleTool.js +54 -0
  156. package/dist/agent/tools/scheduleTool.js.map +1 -0
  157. package/dist/agent/toolset.d.ts +24 -0
  158. package/dist/agent/toolset.js +33 -0
  159. package/dist/agent/toolset.js.map +1 -0
  160. package/dist/agent/types.d.ts +75 -0
  161. package/dist/agent/types.js +10 -0
  162. package/dist/agent/types.js.map +1 -0
  163. package/dist/bin/BinObjects.d.ts +2 -2
  164. package/dist/bin/BinObjects.js +6 -3
  165. package/dist/bin/BinObjects.js.map +1 -1
  166. package/dist/bin/cliCredentials.d.ts +27 -0
  167. package/dist/bin/cliCredentials.js +130 -0
  168. package/dist/bin/cliCredentials.js.map +1 -0
  169. package/dist/bin/cliOperations.d.ts +7 -7
  170. package/dist/bin/cliOperations.js +251 -37
  171. package/dist/bin/cliOperations.js.map +1 -1
  172. package/dist/bin/copyDb.js +16 -16
  173. package/dist/bin/copyDb.js.map +1 -1
  174. package/dist/bin/deployRenderer.d.ts +47 -0
  175. package/dist/bin/deployRenderer.js +185 -0
  176. package/dist/bin/deployRenderer.js.map +1 -0
  177. package/dist/bin/harper.d.ts +2 -1
  178. package/dist/bin/harper.js +87 -26
  179. package/dist/bin/harper.js.map +1 -1
  180. package/dist/bin/install.d.ts +1 -1
  181. package/dist/bin/install.js +41 -4
  182. package/dist/bin/install.js.map +1 -1
  183. package/dist/bin/lite.js +3 -4
  184. package/dist/bin/lite.js.map +1 -1
  185. package/dist/bin/login.d.ts +4 -0
  186. package/dist/bin/login.js +158 -0
  187. package/dist/bin/login.js.map +1 -0
  188. package/dist/bin/logout.d.ts +4 -0
  189. package/dist/bin/logout.js +16 -0
  190. package/dist/bin/logout.js.map +1 -0
  191. package/dist/bin/mcp/client.d.ts +34 -0
  192. package/dist/bin/mcp/client.js +395 -0
  193. package/dist/bin/mcp/client.js.map +1 -0
  194. package/dist/bin/mcp/doctor.d.ts +11 -0
  195. package/dist/bin/mcp/doctor.js +193 -0
  196. package/dist/bin/mcp/doctor.js.map +1 -0
  197. package/dist/bin/mcp/index.d.ts +10 -0
  198. package/dist/bin/mcp/index.js +81 -0
  199. package/dist/bin/mcp/index.js.map +1 -0
  200. package/dist/bin/mcp/options.d.ts +33 -0
  201. package/dist/bin/mcp/options.js +113 -0
  202. package/dist/bin/mcp/options.js.map +1 -0
  203. package/dist/bin/mcp/printConfig.d.ts +14 -0
  204. package/dist/bin/mcp/printConfig.js +85 -0
  205. package/dist/bin/mcp/printConfig.js.map +1 -0
  206. package/dist/bin/multipartBuilder.d.ts +26 -0
  207. package/dist/bin/multipartBuilder.js +55 -0
  208. package/dist/bin/multipartBuilder.js.map +1 -0
  209. package/dist/bin/restart.d.ts +3 -2
  210. package/dist/bin/restart.js +82 -45
  211. package/dist/bin/restart.js.map +1 -1
  212. package/dist/bin/run.d.ts +13 -9
  213. package/dist/bin/run.js +111 -65
  214. package/dist/bin/run.js.map +1 -1
  215. package/dist/bin/sseConsumer.d.ts +24 -0
  216. package/dist/bin/sseConsumer.js +127 -0
  217. package/dist/bin/sseConsumer.js.map +1 -0
  218. package/dist/bin/status.d.ts +1 -1
  219. package/dist/bin/status.js +48 -11
  220. package/dist/bin/status.js.map +1 -1
  221. package/dist/bin/stop.d.ts +1 -1
  222. package/dist/bin/stop.js +43 -6
  223. package/dist/bin/stop.js.map +1 -1
  224. package/dist/bin/upgrade.js +6 -6
  225. package/dist/components/Application.d.ts +29 -17
  226. package/dist/components/Application.js +134 -28
  227. package/dist/components/Application.js.map +1 -1
  228. package/dist/components/ApplicationScope.js +2 -2
  229. package/dist/components/ComponentV1.d.ts +1 -1
  230. package/dist/components/ComponentV1.js +5 -5
  231. package/dist/components/ComponentV1.js.map +1 -1
  232. package/dist/components/EntryHandler.d.ts +26 -3
  233. package/dist/components/EntryHandler.js +153 -13
  234. package/dist/components/EntryHandler.js.map +1 -1
  235. package/dist/components/OptionsWatcher.d.ts +7 -2
  236. package/dist/components/OptionsWatcher.js +72 -10
  237. package/dist/components/OptionsWatcher.js.map +1 -1
  238. package/dist/components/Scope.d.ts +11 -6
  239. package/dist/components/Scope.js +105 -9
  240. package/dist/components/Scope.js.map +1 -1
  241. package/dist/components/anthropic/index.d.ts +40 -0
  242. package/dist/components/anthropic/index.js +428 -0
  243. package/dist/components/anthropic/index.js.map +1 -0
  244. package/dist/components/bedrock/index.d.ts +79 -0
  245. package/dist/components/bedrock/index.js +734 -0
  246. package/dist/components/bedrock/index.js.map +1 -0
  247. package/dist/components/componentLoader.d.ts +29 -0
  248. package/dist/components/componentLoader.js +63 -38
  249. package/dist/components/componentLoader.js.map +1 -1
  250. package/dist/components/deployLifecycle.d.ts +39 -0
  251. package/dist/components/deployLifecycle.js +156 -0
  252. package/dist/components/deployLifecycle.js.map +1 -0
  253. package/dist/components/deploymentOperations.d.ts +19 -0
  254. package/dist/components/deploymentOperations.js +185 -0
  255. package/dist/components/deploymentOperations.js.map +1 -0
  256. package/dist/components/deploymentRecorder.d.ts +81 -0
  257. package/dist/components/deploymentRecorder.js +401 -0
  258. package/dist/components/deploymentRecorder.js.map +1 -0
  259. package/dist/components/deriveURLPath.d.ts +2 -2
  260. package/dist/components/deriveURLPath.js +2 -2
  261. package/dist/components/deriveURLPath.js.map +1 -1
  262. package/dist/components/mcp/adapters/fastify.d.ts +35 -0
  263. package/dist/components/mcp/adapters/fastify.js +66 -0
  264. package/dist/components/mcp/adapters/fastify.js.map +1 -0
  265. package/dist/components/mcp/adapters/harperHttp.d.ts +38 -0
  266. package/dist/components/mcp/adapters/harperHttp.js +78 -0
  267. package/dist/components/mcp/adapters/harperHttp.js.map +1 -0
  268. package/dist/components/mcp/audit.d.ts +27 -0
  269. package/dist/components/mcp/audit.js +73 -0
  270. package/dist/components/mcp/audit.js.map +1 -0
  271. package/dist/components/mcp/index.d.ts +47 -0
  272. package/dist/components/mcp/index.js +109 -0
  273. package/dist/components/mcp/index.js.map +1 -0
  274. package/dist/components/mcp/jsonrpc.d.ts +71 -0
  275. package/dist/components/mcp/jsonrpc.js +93 -0
  276. package/dist/components/mcp/jsonrpc.js.map +1 -0
  277. package/dist/components/mcp/lifecycle.d.ts +69 -0
  278. package/dist/components/mcp/lifecycle.js +79 -0
  279. package/dist/components/mcp/lifecycle.js.map +1 -0
  280. package/dist/components/mcp/listChanged.d.ts +24 -0
  281. package/dist/components/mcp/listChanged.js +257 -0
  282. package/dist/components/mcp/listChanged.js.map +1 -0
  283. package/dist/components/mcp/rateLimit.d.ts +25 -0
  284. package/dist/components/mcp/rateLimit.js +226 -0
  285. package/dist/components/mcp/rateLimit.js.map +1 -0
  286. package/dist/components/mcp/resources.d.ts +90 -0
  287. package/dist/components/mcp/resources.js +515 -0
  288. package/dist/components/mcp/resources.js.map +1 -0
  289. package/dist/components/mcp/session.d.ts +36 -0
  290. package/dist/components/mcp/session.js +170 -0
  291. package/dist/components/mcp/session.js.map +1 -0
  292. package/dist/components/mcp/sessionRegistry.d.ts +63 -0
  293. package/dist/components/mcp/sessionRegistry.js +124 -0
  294. package/dist/components/mcp/sessionRegistry.js.map +1 -0
  295. package/dist/components/mcp/toolRegistry.d.ts +150 -0
  296. package/dist/components/mcp/toolRegistry.js +176 -0
  297. package/dist/components/mcp/toolRegistry.js.map +1 -0
  298. package/dist/components/mcp/tools/application.d.ts +58 -0
  299. package/dist/components/mcp/tools/application.js +549 -0
  300. package/dist/components/mcp/tools/application.js.map +1 -0
  301. package/dist/components/mcp/tools/operations.d.ts +23 -0
  302. package/dist/components/mcp/tools/operations.js +303 -0
  303. package/dist/components/mcp/tools/operations.js.map +1 -0
  304. package/dist/components/mcp/tools/schemas/derive.d.ts +36 -0
  305. package/dist/components/mcp/tools/schemas/derive.js +216 -0
  306. package/dist/components/mcp/tools/schemas/derive.js.map +1 -0
  307. package/dist/components/mcp/tools/schemas/operations.d.ts +27 -0
  308. package/dist/components/mcp/tools/schemas/operations.js +243 -0
  309. package/dist/components/mcp/tools/schemas/operations.js.map +1 -0
  310. package/dist/components/mcp/transport.d.ts +38 -0
  311. package/dist/components/mcp/transport.js +467 -0
  312. package/dist/components/mcp/transport.js.map +1 -0
  313. package/dist/components/ollama/index.d.ts +46 -0
  314. package/dist/components/ollama/index.js +239 -0
  315. package/dist/components/ollama/index.js.map +1 -0
  316. package/dist/components/openai/index.d.ts +51 -0
  317. package/dist/components/openai/index.js +475 -0
  318. package/dist/components/openai/index.js.map +1 -0
  319. package/dist/components/operations.d.ts +6 -6
  320. package/dist/components/operations.js +198 -52
  321. package/dist/components/operations.js.map +1 -1
  322. package/dist/components/operationsValidation.d.ts +2 -2
  323. package/dist/components/operationsValidation.js +3 -3
  324. package/dist/components/packageComponent.d.ts +28 -6
  325. package/dist/components/packageComponent.js +87 -26
  326. package/dist/components/packageComponent.js.map +1 -1
  327. package/dist/components/requestRestart.d.ts +1 -0
  328. package/dist/components/requestRestart.js +12 -1
  329. package/dist/components/requestRestart.js.map +1 -1
  330. package/dist/components/status/crossThread.d.ts +5 -1
  331. package/dist/components/status/crossThread.js +12 -5
  332. package/dist/components/status/crossThread.js.map +1 -1
  333. package/dist/components/status/errors.js +7 -7
  334. package/dist/config/RootConfigWatcher.d.ts +3 -0
  335. package/dist/config/RootConfigWatcher.js +52 -1
  336. package/dist/config/RootConfigWatcher.js.map +1 -1
  337. package/dist/config/configUtils.js +31 -8
  338. package/dist/config/configUtils.js.map +1 -1
  339. package/dist/config/harperConfigEnvVars.js +1 -1
  340. package/dist/config/harperConfigEnvVars.js.map +1 -1
  341. package/dist/dataLayer/CreateAttributeObject.d.ts +3 -7
  342. package/dist/dataLayer/CreateAttributeObject.js +4 -3
  343. package/dist/dataLayer/CreateAttributeObject.js.map +1 -1
  344. package/dist/dataLayer/CreateTableObject.d.ts +2 -4
  345. package/dist/dataLayer/CreateTableObject.js +2 -1
  346. package/dist/dataLayer/CreateTableObject.js.map +1 -1
  347. package/dist/dataLayer/DataLayerObjects.d.ts +17 -16
  348. package/dist/dataLayer/DataLayerObjects.js +19 -5
  349. package/dist/dataLayer/DataLayerObjects.js.map +1 -1
  350. package/dist/dataLayer/DeleteBeforeObject.d.ts +3 -5
  351. package/dist/dataLayer/DeleteBeforeObject.js +2 -1
  352. package/dist/dataLayer/DeleteBeforeObject.js.map +1 -1
  353. package/dist/dataLayer/DeleteObject.d.ts +3 -7
  354. package/dist/dataLayer/DeleteObject.js +4 -3
  355. package/dist/dataLayer/DeleteObject.js.map +1 -1
  356. package/dist/dataLayer/DropAttributeObject.d.ts +2 -4
  357. package/dist/dataLayer/DropAttributeObject.js +2 -1
  358. package/dist/dataLayer/DropAttributeObject.js.map +1 -1
  359. package/dist/dataLayer/GetBackupObject.d.ts +3 -5
  360. package/dist/dataLayer/GetBackupObject.js +4 -3
  361. package/dist/dataLayer/GetBackupObject.js.map +1 -1
  362. package/dist/dataLayer/InsertObject.d.ts +3 -8
  363. package/dist/dataLayer/InsertObject.js +4 -3
  364. package/dist/dataLayer/InsertObject.js.map +1 -1
  365. package/dist/dataLayer/ReadAuditLogObject.d.ts +3 -7
  366. package/dist/dataLayer/ReadAuditLogObject.js +4 -3
  367. package/dist/dataLayer/ReadAuditLogObject.js.map +1 -1
  368. package/dist/dataLayer/SQLSearch.d.ts +68 -38
  369. package/dist/dataLayer/SQLSearch.js +140 -78
  370. package/dist/dataLayer/SQLSearch.js.map +1 -1
  371. package/dist/dataLayer/SearchByConditionsObject.d.ts +10 -58
  372. package/dist/dataLayer/SearchByConditionsObject.js +5 -7
  373. package/dist/dataLayer/SearchByConditionsObject.js.map +1 -1
  374. package/dist/dataLayer/SearchByHashObject.d.ts +3 -6
  375. package/dist/dataLayer/SearchByHashObject.js +2 -1
  376. package/dist/dataLayer/SearchByHashObject.js.map +1 -1
  377. package/dist/dataLayer/SearchObject.d.ts +3 -12
  378. package/dist/dataLayer/SearchObject.js +2 -1
  379. package/dist/dataLayer/SearchObject.js.map +1 -1
  380. package/dist/dataLayer/SqlSearchObject.d.ts +2 -4
  381. package/dist/dataLayer/SqlSearchObject.js +2 -1
  382. package/dist/dataLayer/SqlSearchObject.js.map +1 -1
  383. package/dist/dataLayer/UpdateObject.d.ts +3 -7
  384. package/dist/dataLayer/UpdateObject.js +4 -3
  385. package/dist/dataLayer/UpdateObject.js.map +1 -1
  386. package/dist/dataLayer/UpsertObject.d.ts +3 -7
  387. package/dist/dataLayer/UpsertObject.js +4 -3
  388. package/dist/dataLayer/UpsertObject.js.map +1 -1
  389. package/dist/dataLayer/bulkLoad.d.ts +4 -4
  390. package/dist/dataLayer/bulkLoad.js +122 -88
  391. package/dist/dataLayer/bulkLoad.js.map +1 -1
  392. package/dist/dataLayer/delete.d.ts +10 -11
  393. package/dist/dataLayer/delete.js +74 -39
  394. package/dist/dataLayer/delete.js.map +1 -1
  395. package/dist/dataLayer/export.d.ts +8 -8
  396. package/dist/dataLayer/export.js +90 -55
  397. package/dist/dataLayer/export.js.map +1 -1
  398. package/dist/dataLayer/getBackup.d.ts +4 -3
  399. package/dist/dataLayer/getBackup.js +43 -11
  400. package/dist/dataLayer/getBackup.js.map +1 -1
  401. package/dist/dataLayer/harperBridge/BridgeMethods.d.ts +39 -21
  402. package/dist/dataLayer/harperBridge/BridgeMethods.js +41 -20
  403. package/dist/dataLayer/harperBridge/BridgeMethods.js.map +1 -1
  404. package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +2 -2
  405. package/dist/dataLayer/harperBridge/ResourceBridge.js +26 -25
  406. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  407. package/dist/dataLayer/harperBridge/TableSizeObject.d.ts +1 -0
  408. package/dist/dataLayer/harperBridge/TableSizeObject.js.map +1 -1
  409. package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.d.ts +4 -4
  410. package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
  411. package/dist/dataLayer/harperBridge/harperBridge.d.ts +2 -3
  412. package/dist/dataLayer/harperBridge/harperBridge.js +38 -4
  413. package/dist/dataLayer/harperBridge/harperBridge.js.map +1 -1
  414. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.d.ts +1 -2
  415. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +7 -6
  416. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js.map +1 -1
  417. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.d.ts +1 -2
  418. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
  419. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js.map +1 -1
  420. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
  421. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js.map +1 -1
  422. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +5 -4
  423. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js.map +1 -1
  424. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.d.ts +1 -2
  425. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +4 -4
  426. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js.map +1 -1
  427. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
  428. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.d.ts +1 -2
  429. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +5 -5
  430. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js.map +1 -1
  431. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +4 -4
  432. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js.map +1 -1
  433. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
  434. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js.map +1 -1
  435. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
  436. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
  437. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
  438. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +2 -2
  439. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js.map +1 -1
  440. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
  441. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.d.ts +1 -2
  442. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +8 -8
  443. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js.map +1 -1
  444. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.d.ts +1 -1
  445. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
  446. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.d.ts +1 -2
  447. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +3 -3
  448. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js.map +1 -1
  449. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
  450. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.d.ts +1 -2
  451. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +5 -5
  452. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js.map +1 -1
  453. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.d.ts +1 -2
  454. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +1 -1
  455. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js.map +1 -1
  456. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +2 -2
  457. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js.map +1 -1
  458. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
  459. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +4 -4
  460. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js.map +1 -1
  461. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.d.ts +1 -2
  462. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +5 -3
  463. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js.map +1 -1
  464. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +2 -2
  465. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.d.ts +1 -2
  466. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
  467. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js.map +1 -1
  468. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
  469. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
  470. package/dist/dataLayer/hdbInfoController.d.ts +4 -8
  471. package/dist/dataLayer/hdbInfoController.js +66 -31
  472. package/dist/dataLayer/hdbInfoController.js.map +1 -1
  473. package/dist/dataLayer/insert.d.ts +14 -26
  474. package/dist/dataLayer/insert.js +63 -28
  475. package/dist/dataLayer/insert.js.map +1 -1
  476. package/dist/dataLayer/readAuditLog.d.ts +1 -3
  477. package/dist/dataLayer/readAuditLog.js +45 -13
  478. package/dist/dataLayer/readAuditLog.js.map +1 -1
  479. package/dist/dataLayer/schema.d.ts +10 -10
  480. package/dist/dataLayer/schema.js +124 -89
  481. package/dist/dataLayer/schema.js.map +1 -1
  482. package/dist/dataLayer/schemaDescribe.d.ts +4 -4
  483. package/dist/dataLayer/schemaDescribe.js +78 -41
  484. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  485. package/dist/dataLayer/search.d.ts +4 -4
  486. package/dist/dataLayer/search.js +12 -13
  487. package/dist/dataLayer/search.js.map +1 -1
  488. package/dist/dataLayer/transaction.d.ts +1 -1
  489. package/dist/dataLayer/transaction.js +3 -4
  490. package/dist/dataLayer/transaction.js.map +1 -1
  491. package/dist/dataLayer/update.d.ts +2 -8
  492. package/dist/dataLayer/update.js +53 -18
  493. package/dist/dataLayer/update.js.map +1 -1
  494. package/dist/globals.d.ts +1 -1
  495. package/dist/globals.js +1 -0
  496. package/dist/globals.js.map +1 -1
  497. package/dist/index.d.ts +4 -0
  498. package/dist/index.js +4 -1
  499. package/dist/index.js.map +1 -1
  500. package/dist/json/systemSchema.json +65 -0
  501. package/dist/launchServiceScripts/launchHarperDB.d.ts +1 -0
  502. package/dist/launchServiceScripts/launchHarperDB.js +3 -0
  503. package/dist/launchServiceScripts/launchHarperDB.js.map +1 -0
  504. package/dist/launchServiceScripts/utility/checkNodeVersion.js +3 -0
  505. package/dist/launchServiceScripts/utility/checkNodeVersion.js.map +1 -1
  506. package/dist/resources/DatabaseTransaction.d.ts +14 -6
  507. package/dist/resources/DatabaseTransaction.js +39 -15
  508. package/dist/resources/DatabaseTransaction.js.map +1 -1
  509. package/dist/resources/ErrorResource.d.ts +1 -1
  510. package/dist/resources/ErrorResource.js +3 -1
  511. package/dist/resources/ErrorResource.js.map +1 -1
  512. package/dist/resources/LMDBTransaction.d.ts +10 -13
  513. package/dist/resources/LMDBTransaction.js +18 -7
  514. package/dist/resources/LMDBTransaction.js.map +1 -1
  515. package/dist/resources/RecordEncoder.d.ts +7 -1
  516. package/dist/resources/RecordEncoder.js +5 -2
  517. package/dist/resources/RecordEncoder.js.map +1 -1
  518. package/dist/resources/RequestTarget.d.ts +1 -0
  519. package/dist/resources/RequestTarget.js.map +1 -1
  520. package/dist/resources/Resource.d.ts +9 -5
  521. package/dist/resources/Resource.js +37 -10
  522. package/dist/resources/Resource.js.map +1 -1
  523. package/dist/resources/ResourceInterface.d.ts +24 -5
  524. package/dist/resources/ResourceInterface.js +20 -0
  525. package/dist/resources/ResourceInterface.js.map +1 -1
  526. package/dist/resources/Resources.d.ts +3 -4
  527. package/dist/resources/Resources.js +7 -6
  528. package/dist/resources/Resources.js.map +1 -1
  529. package/dist/resources/RocksIndexStore.js +3 -0
  530. package/dist/resources/RocksIndexStore.js.map +1 -1
  531. package/dist/resources/RocksTransactionLogStore.d.ts +1 -1
  532. package/dist/resources/RocksTransactionLogStore.js +46 -27
  533. package/dist/resources/RocksTransactionLogStore.js.map +1 -1
  534. package/dist/resources/Table.d.ts +59 -329
  535. package/dist/resources/Table.js +267 -107
  536. package/dist/resources/Table.js.map +1 -1
  537. package/dist/resources/analytics/metadata.d.ts +1 -0
  538. package/dist/resources/analytics/metadata.js +1 -0
  539. package/dist/resources/analytics/metadata.js.map +1 -1
  540. package/dist/resources/analytics/read.d.ts +5 -0
  541. package/dist/resources/analytics/read.js +16 -5
  542. package/dist/resources/analytics/read.js.map +1 -1
  543. package/dist/resources/analytics/write.d.ts +28 -0
  544. package/dist/resources/analytics/write.js +232 -20
  545. package/dist/resources/analytics/write.js.map +1 -1
  546. package/dist/resources/auditStore.d.ts +18 -13
  547. package/dist/resources/auditStore.js +13 -8
  548. package/dist/resources/auditStore.js.map +1 -1
  549. package/dist/resources/blob.d.ts +16 -27
  550. package/dist/resources/blob.js +8 -8
  551. package/dist/resources/blob.js.map +1 -1
  552. package/dist/resources/dataLoader.d.ts +1 -1
  553. package/dist/resources/dataLoader.js +13 -13
  554. package/dist/resources/databases.d.ts +13 -0
  555. package/dist/resources/databases.js +160 -52
  556. package/dist/resources/databases.js.map +1 -1
  557. package/dist/resources/graphql.d.ts +1 -7
  558. package/dist/resources/graphql.js +224 -174
  559. package/dist/resources/graphql.js.map +1 -1
  560. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +16 -1
  561. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +308 -59
  562. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  563. package/dist/resources/indexes/vector.d.ts +1 -0
  564. package/dist/resources/indexes/vector.js +14 -0
  565. package/dist/resources/indexes/vector.js.map +1 -1
  566. package/dist/resources/loadEnv.d.ts +2 -5
  567. package/dist/resources/loadEnv.js +21 -18
  568. package/dist/resources/loadEnv.js.map +1 -1
  569. package/dist/resources/login.d.ts +2 -3
  570. package/dist/resources/login.js +5 -4
  571. package/dist/resources/login.js.map +1 -1
  572. package/dist/resources/models/Models.d.ts +45 -0
  573. package/dist/resources/models/Models.js +265 -0
  574. package/dist/resources/models/Models.js.map +1 -0
  575. package/dist/resources/models/TestBackend.d.ts +15 -0
  576. package/dist/resources/models/TestBackend.js +71 -0
  577. package/dist/resources/models/TestBackend.js.map +1 -0
  578. package/dist/resources/models/agentLoop.d.ts +125 -0
  579. package/dist/resources/models/agentLoop.js +746 -0
  580. package/dist/resources/models/agentLoop.js.map +1 -0
  581. package/dist/resources/models/analyticsTable.d.ts +65 -0
  582. package/dist/resources/models/analyticsTable.js +166 -0
  583. package/dist/resources/models/analyticsTable.js.map +1 -0
  584. package/dist/resources/models/backendHelpers.d.ts +57 -0
  585. package/dist/resources/models/backendHelpers.js +109 -0
  586. package/dist/resources/models/backendHelpers.js.map +1 -0
  587. package/dist/resources/models/backendRegistry.d.ts +36 -0
  588. package/dist/resources/models/backendRegistry.js +54 -0
  589. package/dist/resources/models/backendRegistry.js.map +1 -0
  590. package/dist/resources/models/bootstrap.d.ts +24 -0
  591. package/dist/resources/models/bootstrap.js +112 -0
  592. package/dist/resources/models/bootstrap.js.map +1 -0
  593. package/dist/resources/models/embedHook.d.ts +33 -0
  594. package/dist/resources/models/embedHook.js +127 -0
  595. package/dist/resources/models/embedHook.js.map +1 -0
  596. package/dist/resources/models/types.d.ts +301 -0
  597. package/dist/resources/models/types.js +11 -0
  598. package/dist/resources/models/types.js.map +1 -0
  599. package/dist/resources/replayLogs.js +7 -1
  600. package/dist/resources/replayLogs.js.map +1 -1
  601. package/dist/resources/roles.d.ts +1 -7
  602. package/dist/resources/roles.js +67 -71
  603. package/dist/resources/roles.js.map +1 -1
  604. package/dist/resources/search.d.ts +18 -1
  605. package/dist/resources/search.js +349 -140
  606. package/dist/resources/search.js.map +1 -1
  607. package/dist/resources/tracked.d.ts +1 -1
  608. package/dist/resources/tracked.js +14 -14
  609. package/dist/resources/tracked.js.map +1 -1
  610. package/dist/resources/transaction.d.ts +1 -1
  611. package/dist/resources/transaction.js +1 -1
  612. package/dist/resources/transaction.js.map +1 -1
  613. package/dist/resources/transactionBroadcast.d.ts +1 -1
  614. package/dist/resources/transactionBroadcast.js.map +1 -1
  615. package/dist/security/auth.d.ts +1 -5
  616. package/dist/security/auth.js +34 -25
  617. package/dist/security/auth.js.map +1 -1
  618. package/dist/security/certificateVerification/crlVerification.js +7 -1
  619. package/dist/security/certificateVerification/crlVerification.js.map +1 -1
  620. package/dist/security/cryptoHash.d.ts +2 -2
  621. package/dist/security/cryptoHash.js +37 -5
  622. package/dist/security/cryptoHash.js.map +1 -1
  623. package/dist/security/data_objects/PermissionAttributeResponseObject.d.ts +3 -4
  624. package/dist/security/data_objects/PermissionAttributeResponseObject.js +4 -1
  625. package/dist/security/data_objects/PermissionAttributeResponseObject.js.map +1 -1
  626. package/dist/security/data_objects/PermissionResponseObject.d.ts +9 -9
  627. package/dist/security/data_objects/PermissionResponseObject.js +15 -8
  628. package/dist/security/data_objects/PermissionResponseObject.js.map +1 -1
  629. package/dist/security/data_objects/PermissionTableResponseObject.d.ts +5 -6
  630. package/dist/security/data_objects/PermissionTableResponseObject.js +6 -1
  631. package/dist/security/data_objects/PermissionTableResponseObject.js.map +1 -1
  632. package/dist/security/fastifyAuth.d.ts +2 -2
  633. package/dist/security/fastifyAuth.js +131 -22
  634. package/dist/security/fastifyAuth.js.map +1 -1
  635. package/dist/security/impersonation.js +15 -15
  636. package/dist/security/jsLoader.js +18 -5
  637. package/dist/security/jsLoader.js.map +1 -1
  638. package/dist/security/keys.d.ts +45 -48
  639. package/dist/security/keys.js +160 -114
  640. package/dist/security/keys.js.map +1 -1
  641. package/dist/security/permissionsTranslator.js +2 -2
  642. package/dist/security/role.d.ts +5 -5
  643. package/dist/security/role.js +70 -35
  644. package/dist/security/role.js.map +1 -1
  645. package/dist/security/tokenAuthentication.d.ts +13 -0
  646. package/dist/security/tokenAuthentication.js +57 -27
  647. package/dist/security/tokenAuthentication.js.map +1 -1
  648. package/dist/security/user.js +74 -38
  649. package/dist/security/user.js.map +1 -1
  650. package/dist/server/DurableSubscriptionsSession.d.ts +4 -2
  651. package/dist/server/DurableSubscriptionsSession.js +71 -55
  652. package/dist/server/DurableSubscriptionsSession.js.map +1 -1
  653. package/dist/server/REST.d.ts +1 -8
  654. package/dist/server/REST.js +17 -16
  655. package/dist/server/REST.js.map +1 -1
  656. package/dist/server/Server.d.ts +23 -4
  657. package/dist/server/Server.js +1 -1
  658. package/dist/server/Server.js.map +1 -1
  659. package/dist/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
  660. package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
  661. package/dist/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
  662. package/dist/server/fastifyRoutes.d.ts +1 -4
  663. package/dist/server/fastifyRoutes.js +34 -30
  664. package/dist/server/fastifyRoutes.js.map +1 -1
  665. package/dist/server/graphqlQuerying.d.ts +1 -1
  666. package/dist/server/graphqlQuerying.js +8 -7
  667. package/dist/server/graphqlQuerying.js.map +1 -1
  668. package/dist/server/http.d.ts +9 -4
  669. package/dist/server/http.js +523 -47
  670. package/dist/server/http.js.map +1 -1
  671. package/dist/server/itc/serverHandlers.js +66 -15
  672. package/dist/server/itc/serverHandlers.js.map +1 -1
  673. package/dist/server/jobs/JobObject.d.ts +3 -3
  674. package/dist/server/jobs/JobObject.js +53 -7
  675. package/dist/server/jobs/JobObject.js.map +1 -1
  676. package/dist/server/jobs/jobProcess.js +64 -24
  677. package/dist/server/jobs/jobProcess.js.map +1 -1
  678. package/dist/server/jobs/jobRunner.d.ts +7 -6
  679. package/dist/server/jobs/jobRunner.js +68 -30
  680. package/dist/server/jobs/jobRunner.js.map +1 -1
  681. package/dist/server/jobs/jobs.d.ts +18 -7
  682. package/dist/server/jobs/jobs.js +93 -61
  683. package/dist/server/jobs/jobs.js.map +1 -1
  684. package/dist/server/loadRootComponents.js +1 -1
  685. package/dist/server/middlewareChain.d.ts +80 -0
  686. package/dist/server/middlewareChain.js +252 -0
  687. package/dist/server/middlewareChain.js.map +1 -0
  688. package/dist/server/mqtt.d.ts +1 -8
  689. package/dist/server/mqtt.js +22 -17
  690. package/dist/server/mqtt.js.map +1 -1
  691. package/dist/server/nodeName.js +44 -13
  692. package/dist/server/nodeName.js.map +1 -1
  693. package/dist/server/operationsServer.d.ts +2 -2
  694. package/dist/server/operationsServer.js +106 -33
  695. package/dist/server/operationsServer.js.map +1 -1
  696. package/dist/server/serverHelpers/Headers.d.ts +4 -4
  697. package/dist/server/serverHelpers/Headers.js +2 -0
  698. package/dist/server/serverHelpers/Headers.js.map +1 -1
  699. package/dist/server/serverHelpers/JSONStream.d.ts +7 -1
  700. package/dist/server/serverHelpers/JSONStream.js +12 -3
  701. package/dist/server/serverHelpers/JSONStream.js.map +1 -1
  702. package/dist/server/serverHelpers/Request.d.ts +106 -8
  703. package/dist/server/serverHelpers/Request.js +370 -9
  704. package/dist/server/serverHelpers/Request.js.map +1 -1
  705. package/dist/server/serverHelpers/contentTypes.d.ts +1 -1
  706. package/dist/server/serverHelpers/contentTypes.js +36 -7
  707. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  708. package/dist/server/serverHelpers/multipartParser.d.ts +21 -0
  709. package/dist/server/serverHelpers/multipartParser.js +142 -0
  710. package/dist/server/serverHelpers/multipartParser.js.map +1 -0
  711. package/dist/server/serverHelpers/progressEmitter.d.ts +25 -0
  712. package/dist/server/serverHelpers/progressEmitter.js +103 -0
  713. package/dist/server/serverHelpers/progressEmitter.js.map +1 -0
  714. package/dist/server/serverHelpers/serverHandlers.d.ts +1 -1
  715. package/dist/server/serverHelpers/serverHandlers.js +38 -7
  716. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  717. package/dist/server/serverHelpers/serverUtilities.d.ts +4 -2
  718. package/dist/server/serverHelpers/serverUtilities.js +97 -93
  719. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  720. package/dist/server/static.js +8 -5
  721. package/dist/server/static.js.map +1 -1
  722. package/dist/server/status/index.js +3 -3
  723. package/dist/server/storageReclamation.d.ts +10 -0
  724. package/dist/server/storageReclamation.js +68 -9
  725. package/dist/server/storageReclamation.js.map +1 -1
  726. package/dist/server/threads/itc.js +7 -4
  727. package/dist/server/threads/itc.js.map +1 -1
  728. package/dist/server/threads/manageThreads.d.ts +1 -1
  729. package/dist/server/threads/manageThreads.js +110 -26
  730. package/dist/server/threads/manageThreads.js.map +1 -1
  731. package/dist/server/threads/socketRouter.d.ts +0 -1
  732. package/dist/server/threads/socketRouter.js +8 -271
  733. package/dist/server/threads/socketRouter.js.map +1 -1
  734. package/dist/server/threads/threadServer.d.ts +1 -0
  735. package/dist/server/threads/threadServer.js +360 -118
  736. package/dist/server/threads/threadServer.js.map +1 -1
  737. package/dist/server/threads/workerProcessGuard.d.ts +42 -0
  738. package/dist/server/threads/workerProcessGuard.js +114 -0
  739. package/dist/server/threads/workerProcessGuard.js.map +1 -0
  740. package/dist/server/throttle.js +17 -0
  741. package/dist/server/throttle.js.map +1 -1
  742. package/dist/sqlTranslator/SelectValidator.d.ts +21 -24
  743. package/dist/sqlTranslator/SelectValidator.js +86 -47
  744. package/dist/sqlTranslator/SelectValidator.js.map +1 -1
  745. package/dist/sqlTranslator/alasqlFunctionImporter.d.ts +6 -2
  746. package/dist/sqlTranslator/alasqlFunctionImporter.js +40 -3
  747. package/dist/sqlTranslator/alasqlFunctionImporter.js.map +1 -1
  748. package/dist/sqlTranslator/deleteTranslator.d.ts +4 -7
  749. package/dist/sqlTranslator/deleteTranslator.js +48 -14
  750. package/dist/sqlTranslator/deleteTranslator.js.map +1 -1
  751. package/dist/sqlTranslator/index.d.ts +10 -9
  752. package/dist/sqlTranslator/index.js +69 -30
  753. package/dist/sqlTranslator/index.js.map +1 -1
  754. package/dist/sqlTranslator/sql_statement_bucket.d.ts +10 -10
  755. package/dist/sqlTranslator/sql_statement_bucket.js +55 -13
  756. package/dist/sqlTranslator/sql_statement_bucket.js.map +1 -1
  757. package/dist/upgrade/UpgradeObjects.d.ts +2 -3
  758. package/dist/upgrade/UpgradeObjects.js +37 -4
  759. package/dist/upgrade/UpgradeObjects.js.map +1 -1
  760. package/dist/upgrade/directives/5-2-0.d.ts +6 -0
  761. package/dist/upgrade/directives/5-2-0.js +77 -0
  762. package/dist/upgrade/directives/5-2-0.js.map +1 -0
  763. package/dist/upgrade/directives/directivesController.d.ts +10 -10
  764. package/dist/upgrade/directives/directivesController.js +52 -11
  765. package/dist/upgrade/directives/directivesController.js.map +1 -1
  766. package/dist/upgrade/directivesManager.d.ts +1 -1
  767. package/dist/upgrade/directivesManager.js +53 -18
  768. package/dist/upgrade/directivesManager.js.map +1 -1
  769. package/dist/upgrade/upgradePrompt.d.ts +3 -3
  770. package/dist/upgrade/upgradePrompt.js +65 -30
  771. package/dist/upgrade/upgradePrompt.js.map +1 -1
  772. package/dist/upgrade/upgradeUtilities.d.ts +1 -1
  773. package/dist/upgrade/upgradeUtilities.js +37 -5
  774. package/dist/upgrade/upgradeUtilities.js.map +1 -1
  775. package/dist/utility/OperationFunctionCaller.d.ts +1 -1
  776. package/dist/utility/OperationFunctionCaller.js +45 -10
  777. package/dist/utility/OperationFunctionCaller.js.map +1 -1
  778. package/dist/utility/assignCmdEnvVariables.d.ts +1 -2
  779. package/dist/utility/assignCmdEnvVariables.js +8 -4
  780. package/dist/utility/assignCmdEnvVariables.js.map +1 -1
  781. package/dist/utility/common_utils.d.ts +80 -77
  782. package/dist/utility/common_utils.js +140 -79
  783. package/dist/utility/common_utils.js.map +1 -1
  784. package/dist/utility/environment/environmentManager.d.ts +12 -11
  785. package/dist/utility/environment/environmentManager.js +75 -29
  786. package/dist/utility/environment/environmentManager.js.map +1 -1
  787. package/dist/utility/environment/systemInformation.d.ts +4 -0
  788. package/dist/utility/environment/systemInformation.js +27 -16
  789. package/dist/utility/environment/systemInformation.js.map +1 -1
  790. package/dist/utility/errors/commonErrors.d.ts +192 -168
  791. package/dist/utility/errors/commonErrors.js +49 -18
  792. package/dist/utility/errors/commonErrors.js.map +1 -1
  793. package/dist/utility/errors/hdbError.d.ts +37 -51
  794. package/dist/utility/errors/hdbError.js +65 -26
  795. package/dist/utility/errors/hdbError.js.map +1 -1
  796. package/dist/utility/expandEnvVar.d.ts +61 -0
  797. package/dist/utility/expandEnvVar.js +113 -0
  798. package/dist/utility/expandEnvVar.js.map +1 -0
  799. package/dist/utility/functions/geo.js +2 -2
  800. package/dist/utility/functions/sql/alaSQLExtension.js +1 -1
  801. package/dist/utility/globalSchema.d.ts +13 -4
  802. package/dist/utility/globalSchema.js +14 -11
  803. package/dist/utility/globalSchema.js.map +1 -1
  804. package/dist/utility/hdbTerms.d.ts +56 -0
  805. package/dist/utility/hdbTerms.js +56 -0
  806. package/dist/utility/hdbTerms.js.map +1 -1
  807. package/dist/utility/install/checkJWTTokensExist.js +1 -1
  808. package/dist/utility/install/installer.d.ts +9 -12
  809. package/dist/utility/install/installer.js +87 -51
  810. package/dist/utility/install/installer.js.map +1 -1
  811. package/dist/utility/installation.js +3 -3
  812. package/dist/utility/lmdb/DBIDefinition.d.ts +4 -4
  813. package/dist/utility/lmdb/DBIDefinition.js +5 -1
  814. package/dist/utility/lmdb/DBIDefinition.js.map +1 -1
  815. package/dist/utility/lmdb/DeleteRecordsResponseObject.d.ts +3 -6
  816. package/dist/utility/lmdb/DeleteRecordsResponseObject.js +2 -1
  817. package/dist/utility/lmdb/DeleteRecordsResponseObject.js.map +1 -1
  818. package/dist/utility/lmdb/InsertRecordsResponseObject.d.ts +3 -5
  819. package/dist/utility/lmdb/InsertRecordsResponseObject.js +2 -1
  820. package/dist/utility/lmdb/InsertRecordsResponseObject.js.map +1 -1
  821. package/dist/utility/lmdb/OpenDBIObject.d.ts +11 -15
  822. package/dist/utility/lmdb/OpenDBIObject.js +54 -6
  823. package/dist/utility/lmdb/OpenDBIObject.js.map +1 -1
  824. package/dist/utility/lmdb/OpenEnvironmentObject.d.ts +5 -8
  825. package/dist/utility/lmdb/OpenEnvironmentObject.js +52 -4
  826. package/dist/utility/lmdb/OpenEnvironmentObject.js.map +1 -1
  827. package/dist/utility/lmdb/UpdateRecordsResponseObject.d.ts +3 -6
  828. package/dist/utility/lmdb/UpdateRecordsResponseObject.js +2 -1
  829. package/dist/utility/lmdb/UpdateRecordsResponseObject.js.map +1 -1
  830. package/dist/utility/lmdb/UpsertRecordsResponseObject.d.ts +3 -5
  831. package/dist/utility/lmdb/UpsertRecordsResponseObject.js +2 -1
  832. package/dist/utility/lmdb/UpsertRecordsResponseObject.js.map +1 -1
  833. package/dist/utility/lmdb/cleanLMDBMap.d.ts +1 -1
  834. package/dist/utility/lmdb/cleanLMDBMap.js +44 -7
  835. package/dist/utility/lmdb/cleanLMDBMap.js.map +1 -1
  836. package/dist/utility/lmdb/commonUtility.d.ts +8 -9
  837. package/dist/utility/lmdb/commonUtility.js +46 -17
  838. package/dist/utility/lmdb/commonUtility.js.map +1 -1
  839. package/dist/utility/lmdb/deleteUtility.d.ts +2 -3
  840. package/dist/utility/lmdb/deleteUtility.js +51 -16
  841. package/dist/utility/lmdb/deleteUtility.js.map +1 -1
  842. package/dist/utility/lmdb/environmentUtility.d.ts +69 -36
  843. package/dist/utility/lmdb/environmentUtility.js +91 -51
  844. package/dist/utility/lmdb/environmentUtility.js.map +1 -1
  845. package/dist/utility/lmdb/searchCursorFunctions.d.ts +19 -19
  846. package/dist/utility/lmdb/searchCursorFunctions.js +46 -14
  847. package/dist/utility/lmdb/searchCursorFunctions.js.map +1 -1
  848. package/dist/utility/lmdb/searchUtility.d.ts +142 -73
  849. package/dist/utility/lmdb/searchUtility.js +91 -55
  850. package/dist/utility/lmdb/searchUtility.js.map +1 -1
  851. package/dist/utility/lmdb/terms.d.ts +34 -34
  852. package/dist/utility/lmdb/terms.js +12 -22
  853. package/dist/utility/lmdb/terms.js.map +1 -1
  854. package/dist/utility/lmdb/writeUtility.d.ts +3 -6
  855. package/dist/utility/lmdb/writeUtility.js +61 -28
  856. package/dist/utility/lmdb/writeUtility.js.map +1 -1
  857. package/dist/utility/logging/harper_logger.d.ts +87 -103
  858. package/dist/utility/logging/harper_logger.js +176 -81
  859. package/dist/utility/logging/harper_logger.js.map +1 -1
  860. package/dist/utility/logging/logRotator.d.ts +2 -10
  861. package/dist/utility/logging/logRotator.js +65 -28
  862. package/dist/utility/logging/logRotator.js.map +1 -1
  863. package/dist/utility/logging/logger.js +4 -4
  864. package/dist/utility/logging/readLog.d.ts +1 -1
  865. package/dist/utility/logging/readLog.js +54 -17
  866. package/dist/utility/logging/readLog.js.map +1 -1
  867. package/dist/utility/logging/transactionLog.d.ts +2 -2
  868. package/dist/utility/logging/transactionLog.js +51 -16
  869. package/dist/utility/logging/transactionLog.js.map +1 -1
  870. package/dist/utility/mount_hdb.d.ts +1 -2
  871. package/dist/utility/mount_hdb.js +54 -17
  872. package/dist/utility/mount_hdb.js.map +1 -1
  873. package/dist/utility/npmUtilities.d.ts +1 -1
  874. package/dist/utility/npmUtilities.js +54 -19
  875. package/dist/utility/npmUtilities.js.map +1 -1
  876. package/dist/utility/operation_authorization.d.ts +36 -9
  877. package/dist/utility/operation_authorization.js +135 -86
  878. package/dist/utility/operation_authorization.js.map +1 -1
  879. package/dist/utility/packageUtils.d.ts +0 -2
  880. package/dist/utility/packageUtils.js +7 -17
  881. package/dist/utility/packageUtils.js.map +1 -1
  882. package/dist/utility/password.js +2 -2
  883. package/dist/utility/processManagement/processManagement.js +2 -2
  884. package/dist/utility/processManagement/servicesConfig.js +1 -1
  885. package/dist/utility/signalling.d.ts +2 -2
  886. package/dist/utility/signalling.js +51 -16
  887. package/dist/utility/signalling.js.map +1 -1
  888. package/dist/utility/watcherFallback.d.ts +36 -0
  889. package/dist/utility/watcherFallback.js +73 -0
  890. package/dist/utility/watcherFallback.js.map +1 -0
  891. package/dist/validation/analyticsValidator.d.ts +1 -0
  892. package/dist/validation/analyticsValidator.js +79 -0
  893. package/dist/validation/analyticsValidator.js.map +1 -0
  894. package/dist/validation/bulkDeleteValidator.d.ts +1 -2
  895. package/dist/validation/bulkDeleteValidator.js +49 -11
  896. package/dist/validation/bulkDeleteValidator.js.map +1 -1
  897. package/dist/validation/check_permissions.d.ts +1 -2
  898. package/dist/validation/check_permissions.js +38 -3
  899. package/dist/validation/check_permissions.js.map +1 -1
  900. package/dist/validation/common_validators.d.ts +20 -20
  901. package/dist/validation/common_validators.js +62 -31
  902. package/dist/validation/common_validators.js.map +1 -1
  903. package/dist/validation/configValidator.d.ts +4 -4
  904. package/dist/validation/configValidator.js +189 -54
  905. package/dist/validation/configValidator.js.map +1 -1
  906. package/dist/validation/deleteValidator.d.ts +1 -2
  907. package/dist/validation/deleteValidator.js +49 -11
  908. package/dist/validation/deleteValidator.js.map +1 -1
  909. package/dist/validation/fileLoadValidator.d.ts +4 -4
  910. package/dist/validation/fileLoadValidator.js +67 -32
  911. package/dist/validation/fileLoadValidator.js.map +1 -1
  912. package/dist/validation/insertValidator.d.ts +1 -2
  913. package/dist/validation/insertValidator.js +48 -10
  914. package/dist/validation/insertValidator.js.map +1 -1
  915. package/dist/validation/installValidator.d.ts +2 -2
  916. package/dist/validation/installValidator.js +47 -10
  917. package/dist/validation/installValidator.js.map +1 -1
  918. package/dist/validation/readLogValidator.d.ts +1 -2
  919. package/dist/validation/readLogValidator.js +60 -22
  920. package/dist/validation/readLogValidator.js.map +1 -1
  921. package/dist/validation/role_validation.d.ts +3 -3
  922. package/dist/validation/role_validation.js +55 -19
  923. package/dist/validation/role_validation.js.map +1 -1
  924. package/dist/validation/schemaMetadataValidator.d.ts +3 -4
  925. package/dist/validation/schemaMetadataValidator.js +11 -12
  926. package/dist/validation/schemaMetadataValidator.js.map +1 -1
  927. package/dist/validation/searchValidator.d.ts +1 -2
  928. package/dist/validation/searchValidator.js +82 -43
  929. package/dist/validation/searchValidator.js.map +1 -1
  930. package/dist/validation/statusValidator.d.ts +1 -1
  931. package/dist/validation/transactionLogValidator.d.ts +3 -3
  932. package/dist/validation/transactionLogValidator.js +52 -17
  933. package/dist/validation/transactionLogValidator.js.map +1 -1
  934. package/dist/validation/user_validation.d.ts +3 -3
  935. package/dist/validation/user_validation.js +38 -6
  936. package/dist/validation/user_validation.js.map +1 -1
  937. package/dist/validation/validationWrapper.d.ts +3 -3
  938. package/dist/validation/validationWrapper.js +4 -5
  939. package/dist/validation/validationWrapper.js.map +1 -1
  940. package/index.ts +5 -0
  941. package/json/systemSchema.json +65 -0
  942. package/launchServiceScripts/utility/checkNodeVersion.js +2 -0
  943. package/package.json +37 -22
  944. package/resources/DESIGN.md +98 -0
  945. package/resources/DatabaseTransaction.ts +58 -30
  946. package/resources/ErrorResource.ts +2 -1
  947. package/resources/LMDBTransaction.ts +38 -29
  948. package/resources/RecordEncoder.ts +12 -4
  949. package/resources/RequestTarget.ts +2 -0
  950. package/resources/Resource.ts +89 -56
  951. package/resources/ResourceInterface.ts +44 -21
  952. package/resources/Resources.ts +8 -8
  953. package/resources/RocksIndexStore.ts +3 -0
  954. package/resources/RocksTransactionLogStore.ts +47 -28
  955. package/resources/Table.ts +386 -214
  956. package/resources/analytics/metadata.ts +1 -0
  957. package/resources/analytics/read.ts +24 -6
  958. package/resources/analytics/write.ts +240 -17
  959. package/resources/auditStore.ts +28 -19
  960. package/resources/blob.ts +53 -53
  961. package/resources/dataLoader.ts +4 -4
  962. package/resources/databases.ts +190 -71
  963. package/resources/graphql.ts +227 -164
  964. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +294 -65
  965. package/resources/indexes/vector.ts +17 -0
  966. package/resources/loadEnv.ts +21 -17
  967. package/resources/login.ts +5 -3
  968. package/resources/models/Models.ts +304 -0
  969. package/resources/models/TestBackend.ts +83 -0
  970. package/resources/models/agentLoop.ts +895 -0
  971. package/resources/models/analyticsTable.ts +199 -0
  972. package/resources/models/backendHelpers.ts +116 -0
  973. package/resources/models/backendRegistry.ts +66 -0
  974. package/resources/models/bootstrap.ts +135 -0
  975. package/resources/models/embedHook.ts +138 -0
  976. package/resources/models/types.ts +296 -0
  977. package/resources/replayLogs.ts +15 -7
  978. package/resources/roles.ts +62 -67
  979. package/resources/search.ts +355 -135
  980. package/resources/tracked.ts +8 -8
  981. package/resources/transaction.ts +8 -8
  982. package/resources/transactionBroadcast.ts +3 -3
  983. package/security/auth.ts +35 -26
  984. package/security/certificateVerification/crlVerification.ts +11 -4
  985. package/security/{cryptoHash.js → cryptoHash.ts} +3 -8
  986. package/security/data_objects/{PermissionAttributeResponseObject.js → PermissionAttributeResponseObject.ts} +4 -4
  987. package/security/data_objects/{PermissionResponseObject.js → PermissionResponseObject.ts} +12 -11
  988. package/security/data_objects/{PermissionTableResponseObject.js → PermissionTableResponseObject.ts} +6 -4
  989. package/security/{fastifyAuth.js → fastifyAuth.ts} +93 -20
  990. package/security/impersonation.ts +3 -3
  991. package/security/jsLoader.ts +22 -8
  992. package/security/{keys.js → keys.ts} +113 -121
  993. package/security/permissionsTranslator.js +2 -2
  994. package/security/{role.js → role.ts} +26 -33
  995. package/security/tokenAuthentication.ts +34 -7
  996. package/security/user.ts +26 -22
  997. package/server/DESIGN.md +139 -0
  998. package/server/DurableSubscriptionsSession.ts +67 -50
  999. package/server/REST.ts +120 -107
  1000. package/server/Server.ts +31 -12
  1001. package/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
  1002. package/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
  1003. package/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
  1004. package/server/fastifyRoutes.ts +37 -33
  1005. package/server/graphqlQuerying.ts +6 -5
  1006. package/server/http.ts +517 -26
  1007. package/server/itc/serverHandlers.js +75 -14
  1008. package/server/jobs/{JobObject.js → JobObject.ts} +13 -6
  1009. package/server/jobs/{jobProcess.js → jobProcess.ts} +20 -16
  1010. package/server/jobs/{jobRunner.js → jobRunner.ts} +20 -21
  1011. package/server/jobs/{jobs.js → jobs.ts} +41 -44
  1012. package/server/loadRootComponents.js +1 -1
  1013. package/server/middlewareChain.ts +270 -0
  1014. package/server/mqtt.ts +35 -26
  1015. package/server/nodeName.ts +2 -1
  1016. package/server/operationsServer.ts +85 -10
  1017. package/server/serverHelpers/Headers.ts +10 -8
  1018. package/server/serverHelpers/JSONStream.ts +15 -5
  1019. package/server/serverHelpers/Request.ts +370 -13
  1020. package/server/serverHelpers/contentTypes.ts +42 -11
  1021. package/server/serverHelpers/multipartParser.ts +152 -0
  1022. package/server/serverHelpers/progressEmitter.ts +110 -0
  1023. package/server/serverHelpers/serverHandlers.js +43 -7
  1024. package/server/serverHelpers/serverUtilities.ts +40 -30
  1025. package/server/static.ts +9 -6
  1026. package/server/status/index.ts +2 -2
  1027. package/server/storageReclamation.ts +39 -2
  1028. package/server/threads/itc.js +7 -4
  1029. package/server/threads/manageThreads.js +100 -26
  1030. package/server/threads/socketRouter.ts +12 -275
  1031. package/server/threads/threadServer.js +345 -105
  1032. package/server/threads/workerProcessGuard.ts +93 -0
  1033. package/server/throttle.ts +18 -0
  1034. package/sqlTranslator/{SelectValidator.js → SelectValidator.ts} +41 -49
  1035. package/sqlTranslator/{alasqlFunctionImporter.js → alasqlFunctionImporter.ts} +5 -5
  1036. package/sqlTranslator/{deleteTranslator.js → deleteTranslator.ts} +13 -18
  1037. package/sqlTranslator/{index.js → index.ts} +30 -33
  1038. package/sqlTranslator/{sql_statement_bucket.js → sql_statement_bucket.ts} +49 -20
  1039. package/static/README.md +10 -9
  1040. package/studio/web/assets/{index-CmtPP0YO.js → index-COfIkCT-.js} +5 -5
  1041. package/studio/web/assets/index-COfIkCT-.js.map +1 -0
  1042. package/studio/web/assets/{index.lazy-C8jvGtlu.js → index.lazy-CIvl7Fj9.js} +2 -2
  1043. package/studio/web/assets/{index.lazy-C8jvGtlu.js.map → index.lazy-CIvl7Fj9.js.map} +1 -1
  1044. package/studio/web/assets/{profile-O0DYlJUv.js → profile-B2ZVB--r.js} +2 -2
  1045. package/studio/web/assets/{profile-O0DYlJUv.js.map → profile-B2ZVB--r.js.map} +1 -1
  1046. package/studio/web/assets/{status-BIlJkJby.js → status-Db6WBmhf.js} +2 -2
  1047. package/studio/web/assets/{status-BIlJkJby.js.map → status-Db6WBmhf.js.map} +1 -1
  1048. package/studio/web/index.html +1 -1
  1049. package/upgrade/{UpgradeObjects.js → UpgradeObjects.ts} +3 -6
  1050. package/upgrade/directives/5-2-0.ts +49 -0
  1051. package/upgrade/directives/{directivesController.js → directivesController.ts} +16 -16
  1052. package/upgrade/{directivesManager.js → directivesManager.ts} +7 -11
  1053. package/upgrade/{upgradePrompt.js → upgradePrompt.ts} +8 -14
  1054. package/upgrade/{upgradeUtilities.js → upgradeUtilities.ts} +3 -7
  1055. package/utility/{OperationFunctionCaller.js → OperationFunctionCaller.ts} +7 -7
  1056. package/utility/{assignCmdEnvVariables.js → assignCmdEnvVariables.ts} +6 -8
  1057. package/utility/{common_utils.js → common_utils.ts} +113 -139
  1058. package/utility/environment/{environmentManager.js → environmentManager.ts} +34 -33
  1059. package/utility/environment/systemInformation.ts +18 -4
  1060. package/utility/errors/{commonErrors.js → commonErrors.ts} +9 -9
  1061. package/utility/errors/{hdbError.js → hdbError.ts} +39 -45
  1062. package/utility/expandEnvVar.ts +110 -0
  1063. package/utility/functions/geo.js +2 -2
  1064. package/utility/functions/sql/alaSQLExtension.js +1 -1
  1065. package/utility/globalSchema.ts +30 -0
  1066. package/utility/hdbTerms.ts +56 -0
  1067. package/utility/install/checkJWTTokensExist.js +1 -1
  1068. package/utility/install/{installer.js → installer.ts} +38 -39
  1069. package/utility/installation.ts +2 -2
  1070. package/utility/lmdb/{DBIDefinition.js → DBIDefinition.ts} +4 -1
  1071. package/utility/lmdb/{DeleteRecordsResponseObject.js → DeleteRecordsResponseObject.ts} +2 -1
  1072. package/utility/lmdb/{InsertRecordsResponseObject.js → InsertRecordsResponseObject.ts} +2 -1
  1073. package/utility/lmdb/OpenDBIObject.ts +43 -0
  1074. package/utility/lmdb/{OpenEnvironmentObject.js → OpenEnvironmentObject.ts} +19 -6
  1075. package/utility/lmdb/{UpdateRecordsResponseObject.js → UpdateRecordsResponseObject.ts} +2 -1
  1076. package/utility/lmdb/{UpsertRecordsResponseObject.js → UpsertRecordsResponseObject.ts} +2 -1
  1077. package/utility/lmdb/{cleanLMDBMap.js → cleanLMDBMap.ts} +5 -5
  1078. package/utility/lmdb/{commonUtility.js → commonUtility.ts} +13 -21
  1079. package/utility/lmdb/{deleteUtility.js → deleteUtility.ts} +8 -12
  1080. package/utility/lmdb/{environmentUtility.js → environmentUtility.ts} +43 -52
  1081. package/utility/lmdb/{searchCursorFunctions.js → searchCursorFunctions.ts} +12 -26
  1082. package/utility/lmdb/{searchUtility.js → searchUtility.ts} +75 -64
  1083. package/utility/lmdb/{terms.js → terms.ts} +10 -23
  1084. package/utility/lmdb/{writeUtility.js → writeUtility.ts} +37 -22
  1085. package/utility/logging/{harper_logger.js → harper_logger.ts} +136 -89
  1086. package/utility/logging/{logRotator.js → logRotator.ts} +13 -13
  1087. package/utility/logging/logger.ts +1 -1
  1088. package/utility/logging/{readLog.js → readLog.ts} +19 -19
  1089. package/utility/logging/{transactionLog.js → transactionLog.ts} +10 -14
  1090. package/utility/{mount_hdb.js → mount_hdb.ts} +15 -16
  1091. package/utility/{npmUtilities.js → npmUtilities.ts} +14 -17
  1092. package/utility/{operation_authorization.js → operation_authorization.ts} +173 -124
  1093. package/utility/packageUtils.js +7 -16
  1094. package/utility/password.ts +1 -1
  1095. package/utility/processManagement/processManagement.js +2 -2
  1096. package/utility/processManagement/servicesConfig.js +1 -1
  1097. package/utility/{signalling.js → signalling.ts} +6 -11
  1098. package/utility/watcherFallback.ts +74 -0
  1099. package/validation/analyticsValidator.ts +43 -0
  1100. package/validation/{bulkDeleteValidator.js → bulkDeleteValidator.ts} +5 -5
  1101. package/validation/{check_permissions.js → check_permissions.ts} +3 -3
  1102. package/validation/{common_validators.js → common_validators.ts} +12 -24
  1103. package/validation/{configValidator.js → configValidator.ts} +114 -18
  1104. package/validation/{deleteValidator.js → deleteValidator.ts} +5 -5
  1105. package/validation/{fileLoadValidator.js → fileLoadValidator.ts} +12 -19
  1106. package/validation/{insertValidator.js → insertValidator.ts} +5 -5
  1107. package/validation/{installValidator.js → installValidator.ts} +8 -8
  1108. package/validation/{readLogValidator.js → readLogValidator.ts} +10 -10
  1109. package/validation/{role_validation.js → role_validation.ts} +26 -32
  1110. package/validation/{schemaMetadataValidator.js → schemaMetadataValidator.ts} +5 -11
  1111. package/validation/{searchValidator.js → searchValidator.ts} +12 -11
  1112. package/validation/statusValidator.ts +1 -1
  1113. package/validation/{transactionLogValidator.js → transactionLogValidator.ts} +4 -9
  1114. package/validation/{user_validation.js → user_validation.ts} +4 -10
  1115. package/validation/{validationWrapper.js → validationWrapper.ts} +3 -9
  1116. package/bin/cliOperations.js +0 -159
  1117. package/bin/lite.js +0 -5
  1118. package/dataLayer/harperBridge/BridgeMethods.js +0 -85
  1119. package/studio/web/assets/index-CmtPP0YO.js.map +0 -1
  1120. package/utility/globalSchema.js +0 -35
  1121. package/utility/lmdb/OpenDBIObject.js +0 -31
@@ -36,23 +36,35 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.universalHeaders = void 0;
39
+ exports.bunServeConfigs = exports.universalHeaders = void 0;
40
+ exports.registerUdsCleanupPaths = registerUdsCleanupPaths;
41
+ exports.cleanupUdsFiles = cleanupUdsFiles;
42
+ exports.writeUdsMetadata = writeUdsMetadata;
43
+ exports.cleanupSocketsDirectory = cleanupSocketsDirectory;
40
44
  exports.handleApplication = handleApplication;
41
45
  exports.getHttpOptions = getHttpOptions;
42
46
  exports.deliverSocket = deliverSocket;
43
47
  exports.proxyRequest = proxyRequest;
44
48
  exports.registerServer = registerServer;
45
49
  exports.httpServer = httpServer;
50
+ exports.registerBunFastifyInstance = registerBunFastifyInstance;
51
+ exports.enableProxyProtocol = enableProxyProtocol;
46
52
  exports.logRequest = logRequest;
47
53
  exports.getRequestId = getRequestId;
54
+ // @ts-nocheck
55
+ /**
56
+ * This module represents the HTTP component for Harper, and receives the HTTP options and uses them to configure
57
+ * HTTP servers
58
+ */
59
+ const rocksdb_js_1 = require("@harperfast/rocksdb-js");
48
60
  const node_net_1 = require("node:net");
49
- const harper_logger_js_1 = __importDefault(require("../utility/logging/harper_logger.js"));
61
+ const harper_logger_ts_1 = __importDefault(require("../utility/logging/harper_logger.js"));
50
62
  const node_worker_threads_1 = require("node:worker_threads");
51
- const environmentManager_js_1 = __importDefault(require("../utility/environment/environmentManager.js"));
63
+ const env = __importStar(require("../utility/environment/environmentManager.js"));
52
64
  const terms = __importStar(require("../utility/hdbTerms.js"));
53
65
  const configUtils_js_1 = require("../config/configUtils.js");
54
66
  const manageThreads_js_1 = require("./threads/manageThreads.js");
55
- const keys_js_1 = require("../security/keys.js");
67
+ const keys_ts_1 = require("../security/keys.js");
56
68
  const node_http2_1 = require("node:http2");
57
69
  const node_https_1 = require("node:https");
58
70
  const node_http_1 = require("node:http");
@@ -61,12 +73,15 @@ const Headers_ts_1 = require("./serverHelpers/Headers.js");
61
73
  const blob_ts_1 = require("../resources/blob.js");
62
74
  const write_ts_1 = require("../resources/analytics/write.js");
63
75
  const node_stream_1 = require("node:stream");
76
+ const node_fs_1 = require("node:fs");
77
+ const node_path_1 = require("node:path");
64
78
  const Server_ts_1 = require("./Server.js");
65
79
  const serverRegistry_ts_1 = require("./serverRegistry.js");
66
80
  const componentLoader_ts_1 = require("../components/componentLoader.js");
67
81
  const throttle_ts_1 = require("./throttle.js");
82
+ const middlewareChain_ts_1 = require("./middlewareChain.js");
68
83
  const ws_1 = require("ws");
69
- const { errorToString } = harper_logger_js_1.default;
84
+ const { errorToString } = harper_logger_ts_1.default;
70
85
  Server_ts_1.server.http = httpServer;
71
86
  Server_ts_1.server.request = onRequest;
72
87
  Server_ts_1.server.ws = onWebSocket;
@@ -75,6 +90,85 @@ const websocketServers = {};
75
90
  const httpServers = {}, httpChain = {}, httpResponders = [];
76
91
  let httpOptions = {};
77
92
  exports.universalHeaders = [];
93
+ // Bun-specific: stores fetch handler configs per port, used by threadServer.js to call Bun.serve()
94
+ exports.bunServeConfigs = {};
95
+ // Bun-specific: stores non-function listeners (e.g. Fastify servers) per port for fallback delegation
96
+ const bunFallbackServers = {};
97
+ const udsCleanupPaths = [];
98
+ function registerUdsCleanupPaths(socketPath, yamlPath) {
99
+ udsCleanupPaths.push({ socketPath, yamlPath });
100
+ }
101
+ function cleanupUdsFiles() {
102
+ for (const { socketPath, yamlPath } of udsCleanupPaths) {
103
+ try {
104
+ (0, node_fs_1.unlinkSync)(socketPath);
105
+ }
106
+ catch { }
107
+ try {
108
+ (0, node_fs_1.unlinkSync)(yamlPath);
109
+ }
110
+ catch { }
111
+ }
112
+ }
113
+ /** Write YAML metadata for a UDS mirror socket, describing the TLS certs from the corresponding secure server. */
114
+ function writeUdsMetadata(yamlPath, port, secureServer) {
115
+ const contexts = secureServer.secureContexts;
116
+ let yaml = `pid: ${process.pid}\ntid: ${(0, rocksdb_js_1.currentThreadId)()}\nport: ${port}\n`;
117
+ yaml += `certificates:\n`;
118
+ if (contexts?.size > 0) {
119
+ const seen = new Set();
120
+ for (const [, ctx] of contexts) {
121
+ if (seen.has(ctx.name))
122
+ continue;
123
+ seen.add(ctx.name);
124
+ yaml += ` - name: ${JSON.stringify(ctx.name)}\n`;
125
+ yaml += ` hostnames:\n`;
126
+ for (const [h, c] of contexts) {
127
+ if (c.name === ctx.name)
128
+ yaml += ` - ${JSON.stringify(h)}\n`;
129
+ }
130
+ if (ctx.options.key_file) {
131
+ yaml += ` privateKeyFile: ${JSON.stringify((0, node_path_1.join)(env.get(terms.CONFIG_PARAMS.ROOTPATH), 'keys', ctx.options.key_file))}\n`;
132
+ }
133
+ if (ctx.options.cert) {
134
+ yaml += ` certificate: |\n`;
135
+ for (const line of ctx.options.cert.trimEnd().split('\n')) {
136
+ yaml += ` ${line}\n`;
137
+ }
138
+ }
139
+ if (ctx.certificateAuthorities?.length > 0) {
140
+ yaml += ` certificateAuthorities:\n`;
141
+ for (const [, ca] of ctx.certificateAuthorities) {
142
+ yaml += ` - |\n`;
143
+ for (const line of ca.trimEnd().split('\n')) {
144
+ yaml += ` ${line}\n`;
145
+ }
146
+ }
147
+ }
148
+ }
149
+ }
150
+ try {
151
+ (0, node_fs_1.writeFileSync)(yamlPath, yaml);
152
+ }
153
+ catch (error) {
154
+ harper_logger_ts_1.default.error('Error writing UDS metadata to ' + yamlPath, error);
155
+ }
156
+ }
157
+ /** Clean all files in the sockets directory. Call from main thread on process startup. */
158
+ function cleanupSocketsDirectory() {
159
+ if (!env.get(terms.CONFIG_PARAMS.TLS_UNIXDOMAINSOCKETS))
160
+ return;
161
+ const socketsDir = (0, node_path_1.join)(env.getHdbBasePath(), 'sockets');
162
+ try {
163
+ for (const file of (0, node_fs_1.readdirSync)(socketsDir)) {
164
+ try {
165
+ (0, node_fs_1.unlinkSync)((0, node_path_1.join)(socketsDir, file));
166
+ }
167
+ catch { }
168
+ }
169
+ }
170
+ catch { }
171
+ }
78
172
  function handleApplication(scope) {
79
173
  httpOptions = scope.options.getAll();
80
174
  scope.options.on('change', (_key) => {
@@ -120,7 +214,7 @@ function deliverSocket(fdOrSocket, port, data) {
120
214
  else if (retries < 5)
121
215
  retry(retries + 1);
122
216
  else {
123
- harper_logger_js_1.default.error(`Server on port ${port} was not registered`);
217
+ harper_logger_ts_1.default.error(`Server on port ${port} was not registered`);
124
218
  socket.destroy();
125
219
  }
126
220
  }, 1000);
@@ -188,7 +282,7 @@ function proxyRequest(message) {
188
282
  function registerServer(server, port, checkPort = true) {
189
283
  if (!port) {
190
284
  // if no port is provided, default to custom functions port
191
- port = environmentManager_js_1.default.get(terms.CONFIG_PARAMS.HTTP_PORT);
285
+ port = env.get(terms.CONFIG_PARAMS.HTTP_PORT);
192
286
  }
193
287
  const existingServer = serverRegistry_ts_1.SERVERS[port];
194
288
  if (existingServer) {
@@ -225,15 +319,15 @@ function getPorts(options) {
225
319
  if (ports.length === 0) {
226
320
  // if no port is provided, default to http port
227
321
  ports = [];
228
- if (environmentManager_js_1.default.get(terms.CONFIG_PARAMS.HTTP_PORT) != null)
322
+ if (env.get(terms.CONFIG_PARAMS.HTTP_PORT) != null)
229
323
  ports.push({
230
- port: environmentManager_js_1.default.get(terms.CONFIG_PARAMS.HTTP_PORT),
231
- secure: environmentManager_js_1.default.get(terms.CONFIG_PARAMS.CUSTOMFUNCTIONS_NETWORK_HTTPS),
324
+ port: env.get(terms.CONFIG_PARAMS.HTTP_PORT),
325
+ secure: env.get(terms.CONFIG_PARAMS.CUSTOMFUNCTIONS_NETWORK_HTTPS),
232
326
  });
233
- if (environmentManager_js_1.default.get(terms.CONFIG_PARAMS.HTTP_SECUREPORT) != null)
234
- ports.push({ port: environmentManager_js_1.default.get(terms.CONFIG_PARAMS.HTTP_SECUREPORT), secure: true });
327
+ if (env.get(terms.CONFIG_PARAMS.HTTP_SECUREPORT) != null)
328
+ ports.push({ port: env.get(terms.CONFIG_PARAMS.HTTP_SECUREPORT), secure: true });
235
329
  }
236
- if (options?.usageType === 'operations-api' && environmentManager_js_1.default.get(terms.CONFIG_PARAMS.OPERATIONSAPI_NETWORK_DOMAINSOCKET)) {
330
+ if (options?.usageType === 'operations-api' && env.get(terms.CONFIG_PARAMS.OPERATIONSAPI_NETWORK_DOMAINSOCKET)) {
237
331
  ports.push({
238
332
  port: (0, configUtils_js_1.getConfigPath)(terms.CONFIG_PARAMS.OPERATIONSAPI_NETWORK_DOMAINSOCKET),
239
333
  secure: false,
@@ -244,9 +338,23 @@ function getPorts(options) {
244
338
  function httpServer(listener, options) {
245
339
  const servers = [];
246
340
  for (const { port, secure } of getPorts(options)) {
247
- servers.push(getHTTPServer(port, secure, options));
341
+ const getServer = Request_ts_1.isBun ? getBunHTTPServer : getHTTPServer;
342
+ servers.push(getServer(port, secure, options));
248
343
  if (typeof listener === 'function') {
249
- httpResponders[options?.runFirst ? 'unshift' : 'push']({ listener, port: options?.port || port });
344
+ const entry = {
345
+ listener,
346
+ port: options?.port || port,
347
+ name: options?.name ?? (0, componentLoader_ts_1.getComponentName)(),
348
+ before: options?.before,
349
+ after: options?.after,
350
+ urlPath: options?.urlPath || undefined,
351
+ host: options?.host || undefined,
352
+ };
353
+ httpResponders[options?.runFirst ? 'unshift' : 'push'](entry);
354
+ }
355
+ else if (Request_ts_1.isBun) {
356
+ // On Bun, store non-function listeners (e.g. Fastify's http.Server) for fallback delegation
357
+ bunFallbackServers[port] = listener;
250
358
  }
251
359
  else {
252
360
  listener.isSecure = secure;
@@ -263,9 +371,9 @@ function getHTTPServer(port, secure, options) {
263
371
  if (!httpServers[port]) {
264
372
  // TODO: These should all come from httpOptions or operationsApiOptions
265
373
  const serverPrefix = isOperationsServer ? 'operationsApi_network' : (usageType ?? 'http');
266
- const keepAliveTimeout = environmentManager_js_1.default.get(serverPrefix + '_keepAliveTimeout');
267
- const requestTimeout = environmentManager_js_1.default.get(serverPrefix + '_timeout');
268
- const headersTimeout = environmentManager_js_1.default.get(serverPrefix + '_headersTimeout');
374
+ const keepAliveTimeout = env.get(serverPrefix + '_keepAliveTimeout');
375
+ const requestTimeout = env.get(serverPrefix + '_timeout');
376
+ const headersTimeout = env.get(serverPrefix + '_headersTimeout');
269
377
  const options = {
270
378
  keepAliveTimeout,
271
379
  headersTimeout,
@@ -276,16 +384,16 @@ function getHTTPServer(port, secure, options) {
276
384
  noDelay: true, // don't delay for Nagle's algorithm, it is a relic of the past that slows things down: https://brooker.co.za/blog/2024/05/09/nagle.html
277
385
  keepAlive: true,
278
386
  keepAliveInitialDelay: 600, // lower the initial delay to 10 minutes, we want to be proactive about closing unused connections
279
- maxHeaderSize: environmentManager_js_1.default.get(terms.CONFIG_PARAMS.HTTP_MAXHEADERSIZE),
387
+ maxHeaderSize: env.get(terms.CONFIG_PARAMS.HTTP_MAXHEADERSIZE),
280
388
  };
281
- const mtls = environmentManager_js_1.default.get(serverPrefix + '_mtls');
282
- const mtlsRequired = environmentManager_js_1.default.get(serverPrefix + '_mtls_required');
389
+ const mtls = env.get(serverPrefix + '_mtls');
390
+ const mtlsRequired = env.get(serverPrefix + '_mtls_required');
283
391
  let http2;
284
392
  if (secure) {
285
- const tlsConfig = environmentManager_js_1.default.get('tls');
393
+ const tlsConfig = env.get('tls');
286
394
  // check if we want to enable HTTP/2; operations server doesn't use HTTP/2 because it doesn't allow the
287
395
  // ALPNCallback to work with our custom protocol for replication
288
- http2 = environmentManager_js_1.default.get(serverPrefix + '_http2');
396
+ http2 = env.get(serverPrefix + '_http2');
289
397
  // If we are in secure mode, we use HTTP/2 (createSecureServer from http2), with back-compat support
290
398
  // HTTP/1. We do not use HTTP/2 for insecure mode for a few reasons: browsers do not support insecure
291
399
  // HTTP/2. We have seen slower performance with HTTP/2, when used for directly benchmarking. We have
@@ -296,7 +404,7 @@ function getHTTPServer(port, secure, options) {
296
404
  rejectUnauthorized: Boolean(mtlsRequired),
297
405
  requestCert: Boolean(mtls || isMtls),
298
406
  ticketKeys: (0, manageThreads_js_1.getTicketKeys)(),
299
- SNICallback: (0, keys_js_1.createTLSSelector)(usageType ?? 'server', mtls),
407
+ SNICallback: (0, keys_ts_1.createTLSSelector)(usageType ?? 'server', mtls),
300
408
  ciphers: tlsConfig.ciphers ?? tlsConfig[0]?.ciphers,
301
409
  });
302
410
  }
@@ -454,12 +562,12 @@ function getHTTPServer(port, secure, options) {
454
562
  // a status code is interpreted as an expected error, so just info or warn, otherwise log as error
455
563
  if (error.statusCode) {
456
564
  if (error.statusCode === 500)
457
- harper_logger_js_1.default.warn(error);
565
+ harper_logger_ts_1.default.warn(error);
458
566
  else
459
- harper_logger_js_1.default.info(error);
567
+ harper_logger_ts_1.default.info(error);
460
568
  }
461
569
  else
462
- harper_logger_js_1.default.error(error);
570
+ harper_logger_ts_1.default.error(error);
463
571
  }
464
572
  };
465
573
  // create a throttled version of the request handler, so we can throttle POST requests
@@ -468,7 +576,7 @@ function getHTTPServer(port, secure, options) {
468
576
  nodeResponse.statusCode = 503;
469
577
  nodeResponse.end('Service unavailable, exceeded request queue limit');
470
578
  (0, write_ts_1.recordAction)(true, 'service-unavailable', port);
471
- }, environmentManager_js_1.default.get(serverPrefix + '_requestQueueLimit'));
579
+ }, env.get(serverPrefix + '_requestQueueLimit'));
472
580
  const server = (httpServers[port] = (secure ? (http2 ? node_http2_1.createSecureServer : node_https_1.createServer) : node_http_1.createServer)(options, (nodeRequest, nodeResponse) => {
473
581
  // throttle the requests that can make data modifications because they are more likely to be slow and we don't
474
582
  // want to block or slow down other activity
@@ -505,24 +613,289 @@ function getHTTPServer(port, secure, options) {
505
613
  server.isSecure = true;
506
614
  }
507
615
  registerServer(server, port);
616
+ // macOS doesn't support SO_REUSEPORT on all socket types; operations API also doesn't need it
617
+ if (isOperationsServer || process.platform === 'darwin')
618
+ server.noReusePort = true;
619
+ // Operations API domain socket connections bypass auth (equivalent to local access)
620
+ if (isOperationsServer && String(port).includes('/'))
621
+ server.bypassLocalAuth = true;
622
+ // Create a corresponding Unix Domain Socket mirror for secure ports
623
+ if (secure && env.get(terms.CONFIG_PARAMS.TLS_UNIXDOMAINSOCKETS)) {
624
+ const socketsDir = (0, node_path_1.join)(env.getHdbBasePath(), 'sockets');
625
+ (0, node_fs_1.mkdirSync)(socketsDir, { recursive: true });
626
+ const socketName = `${(0, manageThreads_js_1.getWorkerIndex)()}-${port}`;
627
+ const udsPath = (0, node_path_1.join)(socketsDir, `${socketName}.sock`);
628
+ const yamlPath = (0, node_path_1.join)(socketsDir, `${socketName}.yaml`);
629
+ // Create a plain HTTP server (no TLS) with the same request handler
630
+ const udsServer = (0, node_http_1.createServer)({
631
+ keepAliveTimeout,
632
+ headersTimeout,
633
+ requestTimeout,
634
+ highWaterMark: 128 * 1024,
635
+ noDelay: true,
636
+ keepAlive: true,
637
+ keepAliveInitialDelay: 600,
638
+ maxHeaderSize: env.get(terms.CONFIG_PARAMS.HTTP_MAXHEADERSIZE),
639
+ }, (nodeRequest, nodeResponse) => {
640
+ const method = nodeRequest.method;
641
+ if (method === 'GET' || method === 'OPTIONS' || method === 'HEAD')
642
+ requestHandler(nodeRequest, nodeResponse);
643
+ else
644
+ throttledRequestHandler(nodeRequest, nodeResponse);
645
+ });
646
+ udsServer.isPerThreadSocket = true;
647
+ enableProxyProtocol(udsServer);
648
+ serverRegistry_ts_1.SERVERS[udsPath] = udsServer;
649
+ registerUdsCleanupPaths(udsPath, yamlPath);
650
+ const writeMetadata = () => writeUdsMetadata(yamlPath, port, server);
651
+ options.SNICallback.ready.then(writeMetadata);
652
+ server.secureContextsListeners.push(writeMetadata);
653
+ }
508
654
  }
509
655
  return httpServers[port];
510
656
  }
511
- function makeCallbackChain(responders, portNum) {
512
- let nextCallback = unhandled;
513
- // go through the listeners in reverse order so each callback can be passed to the one before
514
- // and then each middleware layer can call the next middleware layer
515
- for (let i = responders.length; i > 0;) {
516
- const { listener, port } = responders[--i];
517
- if (port === portNum || port === 'all') {
518
- const callback = nextCallback;
519
- nextCallback = (...args) => {
520
- // for listener only layers, the response through
521
- return listener(...args, callback);
522
- };
657
+ /**
658
+ * Bun-specific HTTP server setup. Instead of creating a Node http.Server, we store a fetch handler config
659
+ * that will be passed to Bun.serve() when listenOnPorts() is called in threadServer.js.
660
+ */
661
+ function getBunHTTPServer(port, secure, options) {
662
+ const { usageType } = options || {};
663
+ const isOperationsServer = usageType === 'operations-api';
664
+ (0, serverRegistry_ts_1.setPortServerMap)(port, { protocol_name: secure ? 'HTTPS' : 'HTTP', name: (0, componentLoader_ts_1.getComponentName)() });
665
+ if (!httpServers[port]) {
666
+ const serverPrefix = isOperationsServer ? 'operationsApi_network' : (usageType ?? 'http');
667
+ const fetchHandler = async (webRequest, bunServer) => {
668
+ const startTime = performance.now();
669
+ let requestId = 0;
670
+ try {
671
+ const request = new Request_ts_1.BunRequest(webRequest, bunServer, secure);
672
+ if (isOperationsServer)
673
+ request.isOperationsServer = true;
674
+ if (httpOptions.logging?.id)
675
+ request.requestId = requestId = getRequestId();
676
+ let response = await httpChain[port](request);
677
+ if (!response) {
678
+ response = unhandled(request);
679
+ }
680
+ if (!response.headers?.set) {
681
+ response.headers = new Headers_ts_1.Headers(response.headers);
682
+ }
683
+ for (let [key, value] of exports.universalHeaders) {
684
+ response.headers.set(key, value);
685
+ }
686
+ if (response.status === -1) {
687
+ const fallbackServer = bunFallbackServers[port];
688
+ if (fallbackServer) {
689
+ // Delegate to the fallback server (e.g. Fastify) via node:http compatibility.
690
+ // We create a Node-compatible IncomingMessage/ServerResponse and emit 'request'
691
+ // on the fallback server, then capture the response.
692
+ return await bunDelegateToNodeServer(fallbackServer, webRequest, request);
693
+ }
694
+ logBunRequest(request, 404, requestId, performance.now() - startTime);
695
+ return new Response('Not found\n', { status: 404 });
696
+ }
697
+ const status = response.status || 200;
698
+ const endTime = performance.now();
699
+ const executionTime = endTime - startTime;
700
+ let body = response.body;
701
+ const responseHeaders = new globalThis.Headers();
702
+ if (!response.handlesHeaders) {
703
+ const headers = response.headers || new Headers_ts_1.Headers();
704
+ let serverTiming = `hdb;dur=${executionTime.toFixed(2)}`;
705
+ if (response.wasCacheMiss) {
706
+ serverTiming += ', miss';
707
+ }
708
+ (0, Headers_ts_1.appendHeader)(headers, 'Server-Timing', serverTiming, true);
709
+ // Convert Harper Headers to Web Headers
710
+ if (headers[Symbol.iterator]) {
711
+ for (const [name, value] of headers) {
712
+ if (Array.isArray(value)) {
713
+ for (const v of value)
714
+ responseHeaders.append(name, v);
715
+ }
716
+ else if (value != null) {
717
+ responseHeaders.set(name, String(value));
718
+ }
719
+ }
720
+ }
721
+ if (!body) {
722
+ if (request.method !== 'HEAD') {
723
+ responseHeaders.set('Content-Length', '0');
724
+ }
725
+ body = null;
726
+ }
727
+ else if (body.length >= 0) {
728
+ if (typeof body === 'string')
729
+ responseHeaders.set('Content-Length', String(Buffer.byteLength(body)));
730
+ else
731
+ responseHeaders.set('Content-Length', String(body.length));
732
+ }
733
+ else if (body instanceof blob_ts_1.Blob) {
734
+ if (body.size)
735
+ responseHeaders.set('Content-Length', String(body.size));
736
+ body = body.stream();
737
+ }
738
+ }
739
+ // Propagate Connection: close so Bun closes the TCP connection after this response,
740
+ // preventing stale keep-alive sockets from causing silent hangs on subsequent requests.
741
+ if (webRequest.headers.get('connection')?.toLowerCase() === 'close') {
742
+ responseHeaders.set('connection', 'close');
743
+ }
744
+ const handlerPath = request.handlerPath;
745
+ const method = request.method;
746
+ (0, write_ts_1.recordAction)(executionTime, 'duration', handlerPath, method, response.wasCacheMiss == undefined ? undefined : response.wasCacheMiss ? 'cache-miss' : 'cache-hit');
747
+ (0, write_ts_1.recordActionBinary)(status < 400, 'success', handlerPath, method);
748
+ (0, write_ts_1.recordActionBinary)(1, 'response_' + status, handlerPath, method);
749
+ logBunRequest(request, status, requestId, executionTime);
750
+ // Convert body to something Bun's Response can accept
751
+ if (body instanceof ReadableStream) {
752
+ return new Response(body, { status, headers: responseHeaders });
753
+ }
754
+ if (body?.[Symbol.iterator] || body?.[Symbol.asyncIterator]) {
755
+ body = node_stream_1.Readable.from(body);
756
+ }
757
+ if (body?.pipe) {
758
+ // Some streams (e.g. SendStream from 'send') call setHeader/writeHead on the
759
+ // pipe destination, expecting an http.ServerResponse. Use a Writable with a
760
+ // minimal shim so those calls capture headers, and buffer the data before
761
+ // returning a Response (avoids Readable.toWeb() compat issues with Bun).
762
+ const chunks = [];
763
+ const buffer = await new Promise((resolve, reject) => {
764
+ const dest = new node_stream_1.Writable({
765
+ write(chunk, _encoding, callback) {
766
+ chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
767
+ callback();
768
+ },
769
+ final(callback) {
770
+ callback();
771
+ resolve(Buffer.concat(chunks));
772
+ },
773
+ });
774
+ Object.assign(dest, {
775
+ setHeader: (n, v) => responseHeaders.set(n, String(v)),
776
+ getHeader: (n) => responseHeaders.get(n),
777
+ removeHeader: (n) => responseHeaders.delete(n),
778
+ writeHead: (_s, hdrs) => {
779
+ if (hdrs)
780
+ for (const [k, v] of Object.entries(hdrs))
781
+ responseHeaders.set(k, String(v));
782
+ },
783
+ statusCode: status,
784
+ headersSent: false,
785
+ // 'on-finished' (used by 'send') checks msg.finished to see if stream is done.
786
+ // Writable.finished is undefined in Bun (not boolean), so isFinished() returns undefined
787
+ // which !== false, causing on-finished to call cleanup() immediately and destroy the
788
+ // ReadStream before data flows. Setting finished: false makes it wait for 'finish' event.
789
+ finished: false,
790
+ });
791
+ body.on('error', reject);
792
+ dest.on('error', reject);
793
+ body.pipe(dest);
794
+ });
795
+ responseHeaders.set('Content-Length', String(buffer.length));
796
+ return new Response(buffer, { status, headers: responseHeaders });
797
+ }
798
+ if (body?.then) {
799
+ body = await body;
800
+ }
801
+ return new Response(body, { status, headers: responseHeaders });
802
+ }
803
+ catch (error) {
804
+ const status = error.statusCode || 500;
805
+ logBunRequest(null, status, requestId, performance.now() - startTime);
806
+ if (error.statusCode) {
807
+ if (error.statusCode === 500)
808
+ harper_logger_ts_1.default.warn(error);
809
+ else
810
+ harper_logger_ts_1.default.info(error);
811
+ }
812
+ else
813
+ harper_logger_ts_1.default.error(error);
814
+ return new Response(errorToString(error), { status });
815
+ }
816
+ };
817
+ // Store the config for Bun.serve() — will be started by threadServer.js listenOnPorts()
818
+ const config = {
819
+ fetch: fetchHandler,
820
+ reusePort: process.platform !== 'darwin' && process.platform !== 'win32',
821
+ };
822
+ if (secure) {
823
+ // TLS config for Bun
824
+ const mtls = env.get(serverPrefix + '_mtls');
825
+ const tlsSelector = (0, keys_ts_1.createTLSSelector)(usageType ?? 'server', mtls);
826
+ // Create a pseudo-server object so the TLS selector can store secureContexts on it
827
+ const pseudoServer = { ports: [port], secureContexts: null, secureContextsListeners: [] };
828
+ tlsSelector.initialize(pseudoServer);
829
+ config.tlsSelector = tlsSelector;
830
+ config.pseudoServer = pseudoServer;
831
+ config.isSecure = true;
832
+ }
833
+ // Operations API domain socket connections bypass auth
834
+ if (isOperationsServer && String(port).includes('/'))
835
+ config.bypassLocalAuth = true;
836
+ exports.bunServeConfigs[port] = config;
837
+ httpServers[port] = config; // sentinel so we don't create twice
838
+ }
839
+ return httpServers[port];
840
+ }
841
+ /**
842
+ * Bridge a Bun fetch request to a Node.js http.Server (e.g. Fastify) by using Fastify's inject()
843
+ * method to send the request through its internal router without needing a real socket.
844
+ */
845
+ let bunFastifyInstances = {};
846
+ function registerBunFastifyInstance(port, instance) {
847
+ bunFastifyInstances[port] = instance;
848
+ }
849
+ const INTERNAL_USER_HEADER = 'x-harper-internal-pre-auth-user';
850
+ async function bunDelegateToNodeServer(nodeServer, webRequest, bunRequest) {
851
+ // Check if there's a Fastify instance registered for this port (preferred path)
852
+ for (const port in bunFallbackServers) {
853
+ if (bunFallbackServers[port] === nodeServer && bunFastifyInstances[port]) {
854
+ const fastify = bunFastifyInstances[port];
855
+ const url = new URL(webRequest.url);
856
+ const body = webRequest.body ? Buffer.from(await webRequest.arrayBuffer()) : undefined;
857
+ const headers = {};
858
+ webRequest.headers.forEach((value, key) => {
859
+ // Strip any forged pre-auth header from real clients
860
+ if (key.toLowerCase() !== INTERNAL_USER_HEADER)
861
+ headers[key] = value;
862
+ });
863
+ // If Harper's auth middleware authenticated this request without credentials (e.g. via
864
+ // AUTHORIZE_LOCAL for loopback connections in dev mode), pass the user so Fastify can
865
+ // skip its own auth. Only applies when there is no Authorization header — if credentials
866
+ // were provided, let Fastify's Passport validate them normally.
867
+ if (bunRequest?.user && !headers['authorization']) {
868
+ headers[INTERNAL_USER_HEADER] = JSON.stringify(bunRequest.user);
869
+ }
870
+ const injectResult = await fastify.inject({
871
+ method: webRequest.method,
872
+ url: url.pathname + url.search,
873
+ headers,
874
+ payload: body,
875
+ });
876
+ const webHeaders = new globalThis.Headers();
877
+ for (const [k, v] of Object.entries(injectResult.headers)) {
878
+ if (v != null)
879
+ webHeaders.set(k, Array.isArray(v) ? v.join(', ') : String(v));
880
+ }
881
+ // Propagate Connection: close so Bun closes the TCP connection after this response,
882
+ // preventing stale keep-alive sockets from causing silent hangs on subsequent requests.
883
+ if (webRequest.headers.get('connection')?.toLowerCase() === 'close') {
884
+ webHeaders.set('connection', 'close');
885
+ }
886
+ return new Response(injectResult.rawPayload?.length > 0 ? injectResult.rawPayload : null, {
887
+ status: injectResult.statusCode,
888
+ headers: webHeaders,
889
+ });
523
890
  }
524
891
  }
525
- return nextCallback;
892
+ // No Fastify instance found — return 404
893
+ return new Response('Not found\n', { status: 404 });
894
+ }
895
+ function makeCallbackChain(responders, portNum, requestArgIndex = 0) {
896
+ return (0, middlewareChain_ts_1.makeCallbackChain)(responders, portNum, unhandled, () => {
897
+ harper_logger_ts_1.default.warn(`Cycle detected in middleware before/after ordering on port ${portNum}; falling back to registration order.`);
898
+ }, requestArgIndex);
526
899
  }
527
900
  function unhandled(request) {
528
901
  if (request.user) {
@@ -551,7 +924,16 @@ Object.defineProperty(node_http_1.IncomingMessage.prototype, 'upgrade', {
551
924
  const upgradeListeners = [], upgradeChains = {};
552
925
  function onUpgrade(listener, options) {
553
926
  for (const { port } of getPorts(options)) {
554
- upgradeListeners[options?.runFirst ? 'unshift' : 'push']({ listener, port });
927
+ const entry = {
928
+ listener,
929
+ port: options?.port || port,
930
+ name: options?.name ?? (0, componentLoader_ts_1.getComponentName)(),
931
+ before: options?.before,
932
+ after: options?.after,
933
+ urlPath: options?.urlPath || undefined,
934
+ host: options?.host || undefined,
935
+ };
936
+ upgradeListeners[options?.runFirst ? 'unshift' : 'push'](entry);
555
937
  upgradeChains[port] = makeCallbackChain(upgradeListeners, port);
556
938
  }
557
939
  }
@@ -581,11 +963,11 @@ function onWebSocket(listener, options) {
581
963
  const request = new Request_ts_1.Request(incomingMessage);
582
964
  request.isWebSocket = true;
583
965
  const chainCompletion = httpChain[port](request);
584
- harper_logger_js_1.default.debug('Received WS connection, calling listeners', websocketListeners);
966
+ harper_logger_ts_1.default.debug('Received WS connection, calling listeners', websocketListeners);
585
967
  websocketChains[port](ws, request, chainCompletion);
586
968
  }
587
969
  catch (error) {
588
- harper_logger_js_1.default.warn('Error in handling WS connection', error);
970
+ harper_logger_ts_1.default.warn('Error in handling WS connection', error);
589
971
  }
590
972
  });
591
973
  // Add the default upgrade handler if it doesn't exist.
@@ -610,13 +992,94 @@ function onWebSocket(listener, options) {
610
992
  });
611
993
  }
612
994
  servers.push(server);
613
- websocketListeners[options?.runFirst ? 'unshift' : 'push']({ listener, port });
614
- websocketChains[port] = makeCallbackChain(websocketListeners, port);
995
+ const wsEntry = {
996
+ listener,
997
+ port: options?.port || port,
998
+ name: options?.name ?? (0, componentLoader_ts_1.getComponentName)(),
999
+ before: options?.before,
1000
+ after: options?.after,
1001
+ urlPath: options?.urlPath || undefined,
1002
+ host: options?.host || undefined,
1003
+ };
1004
+ websocketListeners[options?.runFirst ? 'unshift' : 'push'](wsEntry);
1005
+ websocketChains[port] = makeCallbackChain(websocketListeners, port, 1);
615
1006
  // mqtt doesn't invoke the http handler so this needs to be here to load up the http chains.
616
1007
  httpChain[port] = makeCallbackChain(httpResponders, port);
617
1008
  }
618
1009
  return servers;
619
1010
  }
1011
+ // PROXY protocol v1 max header length per spec: 108 bytes
1012
+ const PROXY_V1_MAX_HEADER = 108;
1013
+ const PROXY_V1_PREFIX = Buffer.from('PROXY ');
1014
+ function enableProxyProtocol(httpServer) {
1015
+ // In Node.js v24+, the HTTP parser's data path goes through the C++ stream layer
1016
+ // and does not call socket.emit('data') via JavaScript method dispatch.
1017
+ // Overriding socket.emit or socket.push has no effect on the HTTP parser's data intake.
1018
+ //
1019
+ // Instead: use process.nextTick inside the 'connection' handler to wrap the HTTP
1020
+ // parser's 'data' listener after it has been registered (synchronously, by the HTTP
1021
+ // parser's own 'connection' handler which runs right after ours).
1022
+ // process.nextTick fires before any I/O callbacks, so it is guaranteed to run before
1023
+ // the first network data chunk reaches the socket — making the interception race-free.
1024
+ httpServer.prependListener('connection', (socket) => {
1025
+ process.nextTick(() => {
1026
+ // Capture the HTTP parser's 'data' listener(s) registered during this connection event.
1027
+ const dataListeners = socket.listeners('data');
1028
+ if (dataListeners.length === 0)
1029
+ return;
1030
+ socket.removeAllListeners('data');
1031
+ const forward = (chunk) => {
1032
+ for (const listener of dataListeners)
1033
+ listener.call(socket, chunk);
1034
+ };
1035
+ let headerHandled = false;
1036
+ // Accumulates a possibly-split PROXY header. Raw protocols (MQTT/replication) can't
1037
+ // recover from a corrupted first packet, so we must not forward a partial header —
1038
+ // the line can arrive across multiple data events.
1039
+ let pending = null;
1040
+ socket.on('data', (chunk) => {
1041
+ if (headerHandled)
1042
+ return forward(chunk);
1043
+ if (pending)
1044
+ chunk = Buffer.concat([pending, chunk]);
1045
+ // Compare against "PROXY " for as many bytes as we have so far.
1046
+ const cmpLen = Math.min(PROXY_V1_PREFIX.length, chunk.length);
1047
+ if (chunk.compare(PROXY_V1_PREFIX, 0, cmpLen, 0, cmpLen) !== 0) {
1048
+ // Not a PROXY v1 header — forward everything unchanged.
1049
+ headerHandled = true;
1050
+ pending = null;
1051
+ return forward(chunk);
1052
+ }
1053
+ const header = chunk.toString('latin1', 0, Math.min(PROXY_V1_MAX_HEADER, chunk.length));
1054
+ const eol = header.indexOf('\r\n');
1055
+ if (eol === -1) {
1056
+ // Header not complete yet. Keep buffering until the CRLF arrives, unless we've
1057
+ // passed the spec max without one — then it isn't a valid PROXY header.
1058
+ if (chunk.length < PROXY_V1_MAX_HEADER) {
1059
+ pending = chunk;
1060
+ return;
1061
+ }
1062
+ headerHandled = true;
1063
+ pending = null;
1064
+ return forward(chunk);
1065
+ }
1066
+ // Complete header: "PROXY TCP4 <src-ip> <dst-ip> <src-port> <dst-port>"
1067
+ headerHandled = true;
1068
+ pending = null;
1069
+ const parts = header.slice(0, eol).split(' ');
1070
+ if (parts.length === 6) {
1071
+ // Override the UDS socket's undefined remoteAddress/remotePort with the real client values.
1072
+ Object.defineProperty(socket, 'remoteAddress', { value: parts[2], configurable: true });
1073
+ Object.defineProperty(socket, 'remotePort', { value: parseInt(parts[4], 10), configurable: true });
1074
+ }
1075
+ // Forward only the bytes after the PROXY header to the protocol parser.
1076
+ const rest = chunk.subarray(eol + 2);
1077
+ if (rest.length > 0)
1078
+ forward(rest);
1079
+ });
1080
+ });
1081
+ });
1082
+ }
620
1083
  function defaultNotFound(request, response) {
621
1084
  if (response.headersSent || response.writableEnded)
622
1085
  return;
@@ -625,11 +1088,24 @@ function defaultNotFound(request, response) {
625
1088
  logRequest(request, 404, 0, request.requestId);
626
1089
  }
627
1090
  let httpLogger;
1091
+ function logBunRequest(request, status, requestId, executionTime) {
1092
+ const logging = httpOptions.logging;
1093
+ if (logging) {
1094
+ if (!httpLogger) {
1095
+ httpLogger = harper_logger_ts_1.default.forComponent('http');
1096
+ }
1097
+ const level = status < 400 ? 'info' : status === 500 ? 'error' : 'warn';
1098
+ const method = request?.method || '?';
1099
+ const url = request?.url || '?';
1100
+ const protocol = request?.protocol === 'https' ? 'HTTPS' : 'HTTP';
1101
+ httpLogger[level]?.(`${method} ${url} ${protocol}/1.1${logging.headers && request?.headers ? ' ' + headersToString(request.headers.asObject || {}) : ''} ${status}${logging.timing && executionTime ? ' ' + executionTime.toFixed(2) + 'ms' : ''}${requestId ? ' id: ' + requestId : ''}`);
1102
+ }
1103
+ }
628
1104
  function logRequest(nodeRequest, status, requestId, executionTime) {
629
1105
  const logging = httpOptions.logging;
630
1106
  if (logging) {
631
1107
  if (!httpLogger) {
632
- httpLogger = harper_logger_js_1.default.forComponent('http');
1108
+ httpLogger = harper_logger_ts_1.default.forComponent('http');
633
1109
  }
634
1110
  const level = status < 400 ? 'info' : status === 500 ? 'error' : 'warn';
635
1111
  httpLogger[level]?.(`${nodeRequest.method} ${nodeRequest.url} ${nodeRequest.socket.encrypted ? 'HTTPS' : 'HTTP'}/${nodeRequest.httpVersion}${logging.headers ? ' ' + headersToString(nodeRequest.headers) : ''} ${status}${logging.timing && executionTime ? ' ' + executionTime.toFixed(2) + 'ms' : ''}${requestId ? ' id: ' + requestId : ''}`);