@harperfast/harper 5.0.30 → 5.1.0-beta.2

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 (1140) 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 +134 -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 +17 -24
  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 +132 -18
  39. package/components/anthropic/index.ts +547 -0
  40. package/components/bedrock/index.ts +823 -0
  41. package/components/componentLoader.ts +64 -32
  42. package/components/deployLifecycle.ts +161 -0
  43. package/components/deploymentOperations.ts +173 -0
  44. package/components/deploymentRecorder.ts +427 -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 +607 -0
  55. package/components/mcp/session.ts +151 -0
  56. package/components/mcp/sessionRegistry.ts +140 -0
  57. package/components/mcp/toolRegistry.ts +294 -0
  58. package/components/mcp/tools/application.ts +761 -0
  59. package/components/mcp/tools/operations.ts +311 -0
  60. package/components/mcp/tools/schemas/derive.ts +356 -0
  61. package/components/mcp/tools/schemas/operationDescriptions.ts +241 -0
  62. package/components/mcp/tools/schemas/operations.ts +301 -0
  63. package/components/mcp/transport.ts +517 -0
  64. package/components/ollama/index.ts +316 -0
  65. package/components/openai/index.ts +563 -0
  66. package/components/operations.js +217 -60
  67. package/components/operationsValidation.js +12 -4
  68. package/components/packageComponent.ts +97 -29
  69. package/components/requestRestart.ts +17 -2
  70. package/components/status/crossThread.ts +14 -5
  71. package/components/status/errors.ts +1 -1
  72. package/config/RootConfigWatcher.ts +56 -2
  73. package/config/configUtils.js +29 -8
  74. package/config/harperConfigEnvVars.ts +1 -1
  75. package/config-root.schema.json +78 -4
  76. package/dataLayer/{CreateAttributeObject.js → CreateAttributeObject.ts} +4 -3
  77. package/dataLayer/{CreateTableObject.js → CreateTableObject.ts} +2 -1
  78. package/dataLayer/{DataLayerObjects.js → DataLayerObjects.ts} +17 -9
  79. package/dataLayer/{DeleteBeforeObject.js → DeleteBeforeObject.ts} +2 -1
  80. package/dataLayer/{DeleteObject.js → DeleteObject.ts} +3 -2
  81. package/dataLayer/{DropAttributeObject.js → DropAttributeObject.ts} +2 -1
  82. package/dataLayer/{GetBackupObject.js → GetBackupObject.ts} +3 -2
  83. package/dataLayer/{InsertObject.js → InsertObject.ts} +3 -2
  84. package/dataLayer/{ReadAuditLogObject.js → ReadAuditLogObject.ts} +3 -2
  85. package/dataLayer/{SQLSearch.js → SQLSearch.ts} +97 -43
  86. package/dataLayer/{SearchByConditionsObject.js → SearchByConditionsObject.ts} +5 -6
  87. package/dataLayer/{SearchByHashObject.js → SearchByHashObject.ts} +2 -1
  88. package/dataLayer/{SearchObject.js → SearchObject.ts} +2 -1
  89. package/dataLayer/{SqlSearchObject.js → SqlSearchObject.ts} +2 -1
  90. package/dataLayer/{UpdateObject.js → UpdateObject.ts} +3 -2
  91. package/dataLayer/{UpsertObject.js → UpsertObject.ts} +3 -2
  92. package/dataLayer/{bulkLoad.js → bulkLoad.ts} +40 -49
  93. package/dataLayer/{delete.js → delete.ts} +21 -26
  94. package/dataLayer/{export.js → export.ts} +22 -26
  95. package/dataLayer/{getBackup.js → getBackup.ts} +7 -9
  96. package/dataLayer/harperBridge/BridgeMethods.ts +102 -0
  97. package/dataLayer/harperBridge/ResourceBridge.ts +27 -26
  98. package/dataLayer/harperBridge/TableSizeObject.ts +1 -0
  99. package/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
  100. package/dataLayer/harperBridge/{harperBridge.js → harperBridge.ts} +3 -3
  101. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +8 -6
  102. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
  103. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
  104. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +6 -4
  105. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +5 -4
  106. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
  107. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +6 -5
  108. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +5 -4
  109. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
  110. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
  111. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
  112. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
  113. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +3 -2
  114. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
  115. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +10 -8
  116. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
  117. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +4 -3
  118. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
  119. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +6 -5
  120. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +2 -1
  121. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +3 -2
  122. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
  123. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +5 -4
  124. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +6 -3
  125. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.ts +1 -1
  126. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
  127. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
  128. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
  129. package/dataLayer/{hdbInfoController.js → hdbInfoController.ts} +20 -26
  130. package/dataLayer/{insert.js → insert.ts} +24 -24
  131. package/dataLayer/{readAuditLog.js → readAuditLog.ts} +8 -10
  132. package/dataLayer/{schema.js → schema.ts} +32 -44
  133. package/dataLayer/{schemaDescribe.js → schemaDescribe.ts} +23 -26
  134. package/dataLayer/{search.js → search.ts} +9 -15
  135. package/dataLayer/{transaction.js → transaction.ts} +2 -5
  136. package/dataLayer/{update.js → update.ts} +19 -22
  137. package/dist/agent/agent.d.ts +35 -0
  138. package/dist/agent/agent.js +175 -0
  139. package/dist/agent/agent.js.map +1 -0
  140. package/dist/agent/loop.d.ts +34 -0
  141. package/dist/agent/loop.js +176 -0
  142. package/dist/agent/loop.js.map +1 -0
  143. package/dist/agent/operations.d.ts +17 -0
  144. package/dist/agent/operations.js +137 -0
  145. package/dist/agent/operations.js.map +1 -0
  146. package/dist/agent/session.d.ts +36 -0
  147. package/dist/agent/session.js +182 -0
  148. package/dist/agent/session.js.map +1 -0
  149. package/dist/agent/tools/fsTools.d.ts +19 -0
  150. package/dist/agent/tools/fsTools.js +286 -0
  151. package/dist/agent/tools/fsTools.js.map +1 -0
  152. package/dist/agent/tools/httpFetchTool.d.ts +9 -0
  153. package/dist/agent/tools/httpFetchTool.js +116 -0
  154. package/dist/agent/tools/httpFetchTool.js.map +1 -0
  155. package/dist/agent/tools/scheduleTool.d.ts +22 -0
  156. package/dist/agent/tools/scheduleTool.js +54 -0
  157. package/dist/agent/tools/scheduleTool.js.map +1 -0
  158. package/dist/agent/toolset.d.ts +24 -0
  159. package/dist/agent/toolset.js +33 -0
  160. package/dist/agent/toolset.js.map +1 -0
  161. package/dist/agent/types.d.ts +75 -0
  162. package/dist/agent/types.js +10 -0
  163. package/dist/agent/types.js.map +1 -0
  164. package/dist/bin/BinObjects.d.ts +2 -2
  165. package/dist/bin/BinObjects.js +6 -3
  166. package/dist/bin/BinObjects.js.map +1 -1
  167. package/dist/bin/cliCredentials.d.ts +27 -0
  168. package/dist/bin/cliCredentials.js +130 -0
  169. package/dist/bin/cliCredentials.js.map +1 -0
  170. package/dist/bin/cliOperations.d.ts +7 -7
  171. package/dist/bin/cliOperations.js +251 -37
  172. package/dist/bin/cliOperations.js.map +1 -1
  173. package/dist/bin/copyDb.js +16 -16
  174. package/dist/bin/copyDb.js.map +1 -1
  175. package/dist/bin/deployRenderer.d.ts +47 -0
  176. package/dist/bin/deployRenderer.js +185 -0
  177. package/dist/bin/deployRenderer.js.map +1 -0
  178. package/dist/bin/harper.d.ts +2 -1
  179. package/dist/bin/harper.js +87 -26
  180. package/dist/bin/harper.js.map +1 -1
  181. package/dist/bin/install.d.ts +1 -1
  182. package/dist/bin/install.js +41 -4
  183. package/dist/bin/install.js.map +1 -1
  184. package/dist/bin/lite.js +3 -4
  185. package/dist/bin/lite.js.map +1 -1
  186. package/dist/bin/login.d.ts +4 -0
  187. package/dist/bin/login.js +123 -0
  188. package/dist/bin/login.js.map +1 -0
  189. package/dist/bin/logout.d.ts +4 -0
  190. package/dist/bin/logout.js +16 -0
  191. package/dist/bin/logout.js.map +1 -0
  192. package/dist/bin/mcp/client.d.ts +34 -0
  193. package/dist/bin/mcp/client.js +395 -0
  194. package/dist/bin/mcp/client.js.map +1 -0
  195. package/dist/bin/mcp/doctor.d.ts +11 -0
  196. package/dist/bin/mcp/doctor.js +193 -0
  197. package/dist/bin/mcp/doctor.js.map +1 -0
  198. package/dist/bin/mcp/index.d.ts +10 -0
  199. package/dist/bin/mcp/index.js +81 -0
  200. package/dist/bin/mcp/index.js.map +1 -0
  201. package/dist/bin/mcp/options.d.ts +33 -0
  202. package/dist/bin/mcp/options.js +113 -0
  203. package/dist/bin/mcp/options.js.map +1 -0
  204. package/dist/bin/mcp/printConfig.d.ts +14 -0
  205. package/dist/bin/mcp/printConfig.js +85 -0
  206. package/dist/bin/mcp/printConfig.js.map +1 -0
  207. package/dist/bin/multipartBuilder.d.ts +26 -0
  208. package/dist/bin/multipartBuilder.js +55 -0
  209. package/dist/bin/multipartBuilder.js.map +1 -0
  210. package/dist/bin/restart.d.ts +3 -2
  211. package/dist/bin/restart.js +82 -45
  212. package/dist/bin/restart.js.map +1 -1
  213. package/dist/bin/run.d.ts +13 -9
  214. package/dist/bin/run.js +111 -65
  215. package/dist/bin/run.js.map +1 -1
  216. package/dist/bin/sseConsumer.d.ts +24 -0
  217. package/dist/bin/sseConsumer.js +127 -0
  218. package/dist/bin/sseConsumer.js.map +1 -0
  219. package/dist/bin/status.d.ts +1 -1
  220. package/dist/bin/status.js +48 -11
  221. package/dist/bin/status.js.map +1 -1
  222. package/dist/bin/stop.d.ts +1 -1
  223. package/dist/bin/stop.js +43 -6
  224. package/dist/bin/stop.js.map +1 -1
  225. package/dist/bin/upgrade.js +14 -22
  226. package/dist/bin/upgrade.js.map +1 -1
  227. package/dist/components/Application.d.ts +29 -17
  228. package/dist/components/Application.js +134 -28
  229. package/dist/components/Application.js.map +1 -1
  230. package/dist/components/ApplicationScope.js +2 -2
  231. package/dist/components/ComponentV1.d.ts +1 -1
  232. package/dist/components/ComponentV1.js +5 -5
  233. package/dist/components/ComponentV1.js.map +1 -1
  234. package/dist/components/EntryHandler.d.ts +26 -3
  235. package/dist/components/EntryHandler.js +153 -13
  236. package/dist/components/EntryHandler.js.map +1 -1
  237. package/dist/components/OptionsWatcher.d.ts +7 -2
  238. package/dist/components/OptionsWatcher.js +72 -10
  239. package/dist/components/OptionsWatcher.js.map +1 -1
  240. package/dist/components/Scope.d.ts +11 -6
  241. package/dist/components/Scope.js +112 -12
  242. package/dist/components/Scope.js.map +1 -1
  243. package/dist/components/anthropic/index.d.ts +40 -0
  244. package/dist/components/anthropic/index.js +428 -0
  245. package/dist/components/anthropic/index.js.map +1 -0
  246. package/dist/components/bedrock/index.d.ts +79 -0
  247. package/dist/components/bedrock/index.js +734 -0
  248. package/dist/components/bedrock/index.js.map +1 -0
  249. package/dist/components/componentLoader.d.ts +29 -0
  250. package/dist/components/componentLoader.js +65 -38
  251. package/dist/components/componentLoader.js.map +1 -1
  252. package/dist/components/deployLifecycle.d.ts +39 -0
  253. package/dist/components/deployLifecycle.js +156 -0
  254. package/dist/components/deployLifecycle.js.map +1 -0
  255. package/dist/components/deploymentOperations.d.ts +19 -0
  256. package/dist/components/deploymentOperations.js +185 -0
  257. package/dist/components/deploymentOperations.js.map +1 -0
  258. package/dist/components/deploymentRecorder.d.ts +97 -0
  259. package/dist/components/deploymentRecorder.js +425 -0
  260. package/dist/components/deploymentRecorder.js.map +1 -0
  261. package/dist/components/deriveURLPath.d.ts +2 -2
  262. package/dist/components/deriveURLPath.js +2 -2
  263. package/dist/components/deriveURLPath.js.map +1 -1
  264. package/dist/components/mcp/adapters/fastify.d.ts +35 -0
  265. package/dist/components/mcp/adapters/fastify.js +66 -0
  266. package/dist/components/mcp/adapters/fastify.js.map +1 -0
  267. package/dist/components/mcp/adapters/harperHttp.d.ts +38 -0
  268. package/dist/components/mcp/adapters/harperHttp.js +78 -0
  269. package/dist/components/mcp/adapters/harperHttp.js.map +1 -0
  270. package/dist/components/mcp/audit.d.ts +27 -0
  271. package/dist/components/mcp/audit.js +73 -0
  272. package/dist/components/mcp/audit.js.map +1 -0
  273. package/dist/components/mcp/index.d.ts +47 -0
  274. package/dist/components/mcp/index.js +109 -0
  275. package/dist/components/mcp/index.js.map +1 -0
  276. package/dist/components/mcp/jsonrpc.d.ts +71 -0
  277. package/dist/components/mcp/jsonrpc.js +93 -0
  278. package/dist/components/mcp/jsonrpc.js.map +1 -0
  279. package/dist/components/mcp/lifecycle.d.ts +69 -0
  280. package/dist/components/mcp/lifecycle.js +79 -0
  281. package/dist/components/mcp/lifecycle.js.map +1 -0
  282. package/dist/components/mcp/listChanged.d.ts +24 -0
  283. package/dist/components/mcp/listChanged.js +257 -0
  284. package/dist/components/mcp/listChanged.js.map +1 -0
  285. package/dist/components/mcp/rateLimit.d.ts +25 -0
  286. package/dist/components/mcp/rateLimit.js +226 -0
  287. package/dist/components/mcp/rateLimit.js.map +1 -0
  288. package/dist/components/mcp/resources.d.ts +90 -0
  289. package/dist/components/mcp/resources.js +526 -0
  290. package/dist/components/mcp/resources.js.map +1 -0
  291. package/dist/components/mcp/session.d.ts +36 -0
  292. package/dist/components/mcp/session.js +170 -0
  293. package/dist/components/mcp/session.js.map +1 -0
  294. package/dist/components/mcp/sessionRegistry.d.ts +63 -0
  295. package/dist/components/mcp/sessionRegistry.js +124 -0
  296. package/dist/components/mcp/sessionRegistry.js.map +1 -0
  297. package/dist/components/mcp/toolRegistry.d.ts +151 -0
  298. package/dist/components/mcp/toolRegistry.js +177 -0
  299. package/dist/components/mcp/toolRegistry.js.map +1 -0
  300. package/dist/components/mcp/tools/application.d.ts +72 -0
  301. package/dist/components/mcp/tools/application.js +660 -0
  302. package/dist/components/mcp/tools/application.js.map +1 -0
  303. package/dist/components/mcp/tools/operations.d.ts +23 -0
  304. package/dist/components/mcp/tools/operations.js +331 -0
  305. package/dist/components/mcp/tools/operations.js.map +1 -0
  306. package/dist/components/mcp/tools/schemas/derive.d.ts +50 -0
  307. package/dist/components/mcp/tools/schemas/derive.js +291 -0
  308. package/dist/components/mcp/tools/schemas/derive.js.map +1 -0
  309. package/dist/components/mcp/tools/schemas/operationDescriptions.d.ts +32 -0
  310. package/dist/components/mcp/tools/schemas/operationDescriptions.js +179 -0
  311. package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -0
  312. package/dist/components/mcp/tools/schemas/operations.d.ts +27 -0
  313. package/dist/components/mcp/tools/schemas/operations.js +299 -0
  314. package/dist/components/mcp/tools/schemas/operations.js.map +1 -0
  315. package/dist/components/mcp/transport.d.ts +38 -0
  316. package/dist/components/mcp/transport.js +467 -0
  317. package/dist/components/mcp/transport.js.map +1 -0
  318. package/dist/components/ollama/index.d.ts +46 -0
  319. package/dist/components/ollama/index.js +239 -0
  320. package/dist/components/ollama/index.js.map +1 -0
  321. package/dist/components/openai/index.d.ts +51 -0
  322. package/dist/components/openai/index.js +475 -0
  323. package/dist/components/openai/index.js.map +1 -0
  324. package/dist/components/operations.d.ts +6 -6
  325. package/dist/components/operations.js +205 -52
  326. package/dist/components/operations.js.map +1 -1
  327. package/dist/components/operationsValidation.d.ts +2 -2
  328. package/dist/components/operationsValidation.js +13 -4
  329. package/dist/components/operationsValidation.js.map +1 -1
  330. package/dist/components/packageComponent.d.ts +28 -6
  331. package/dist/components/packageComponent.js +87 -26
  332. package/dist/components/packageComponent.js.map +1 -1
  333. package/dist/components/requestRestart.d.ts +1 -0
  334. package/dist/components/requestRestart.js +12 -1
  335. package/dist/components/requestRestart.js.map +1 -1
  336. package/dist/components/status/crossThread.d.ts +5 -1
  337. package/dist/components/status/crossThread.js +12 -5
  338. package/dist/components/status/crossThread.js.map +1 -1
  339. package/dist/components/status/errors.js +7 -7
  340. package/dist/config/RootConfigWatcher.d.ts +3 -0
  341. package/dist/config/RootConfigWatcher.js +52 -1
  342. package/dist/config/RootConfigWatcher.js.map +1 -1
  343. package/dist/config/configUtils.js +31 -8
  344. package/dist/config/configUtils.js.map +1 -1
  345. package/dist/config/harperConfigEnvVars.js +1 -1
  346. package/dist/config/harperConfigEnvVars.js.map +1 -1
  347. package/dist/dataLayer/CreateAttributeObject.d.ts +3 -7
  348. package/dist/dataLayer/CreateAttributeObject.js +4 -3
  349. package/dist/dataLayer/CreateAttributeObject.js.map +1 -1
  350. package/dist/dataLayer/CreateTableObject.d.ts +2 -4
  351. package/dist/dataLayer/CreateTableObject.js +2 -1
  352. package/dist/dataLayer/CreateTableObject.js.map +1 -1
  353. package/dist/dataLayer/DataLayerObjects.d.ts +17 -16
  354. package/dist/dataLayer/DataLayerObjects.js +19 -5
  355. package/dist/dataLayer/DataLayerObjects.js.map +1 -1
  356. package/dist/dataLayer/DeleteBeforeObject.d.ts +3 -5
  357. package/dist/dataLayer/DeleteBeforeObject.js +2 -1
  358. package/dist/dataLayer/DeleteBeforeObject.js.map +1 -1
  359. package/dist/dataLayer/DeleteObject.d.ts +3 -7
  360. package/dist/dataLayer/DeleteObject.js +4 -3
  361. package/dist/dataLayer/DeleteObject.js.map +1 -1
  362. package/dist/dataLayer/DropAttributeObject.d.ts +2 -4
  363. package/dist/dataLayer/DropAttributeObject.js +2 -1
  364. package/dist/dataLayer/DropAttributeObject.js.map +1 -1
  365. package/dist/dataLayer/GetBackupObject.d.ts +3 -5
  366. package/dist/dataLayer/GetBackupObject.js +4 -3
  367. package/dist/dataLayer/GetBackupObject.js.map +1 -1
  368. package/dist/dataLayer/InsertObject.d.ts +3 -8
  369. package/dist/dataLayer/InsertObject.js +4 -3
  370. package/dist/dataLayer/InsertObject.js.map +1 -1
  371. package/dist/dataLayer/ReadAuditLogObject.d.ts +3 -7
  372. package/dist/dataLayer/ReadAuditLogObject.js +4 -3
  373. package/dist/dataLayer/ReadAuditLogObject.js.map +1 -1
  374. package/dist/dataLayer/SQLSearch.d.ts +68 -38
  375. package/dist/dataLayer/SQLSearch.js +140 -78
  376. package/dist/dataLayer/SQLSearch.js.map +1 -1
  377. package/dist/dataLayer/SearchByConditionsObject.d.ts +10 -58
  378. package/dist/dataLayer/SearchByConditionsObject.js +5 -7
  379. package/dist/dataLayer/SearchByConditionsObject.js.map +1 -1
  380. package/dist/dataLayer/SearchByHashObject.d.ts +3 -6
  381. package/dist/dataLayer/SearchByHashObject.js +2 -1
  382. package/dist/dataLayer/SearchByHashObject.js.map +1 -1
  383. package/dist/dataLayer/SearchObject.d.ts +3 -12
  384. package/dist/dataLayer/SearchObject.js +2 -1
  385. package/dist/dataLayer/SearchObject.js.map +1 -1
  386. package/dist/dataLayer/SqlSearchObject.d.ts +2 -4
  387. package/dist/dataLayer/SqlSearchObject.js +2 -1
  388. package/dist/dataLayer/SqlSearchObject.js.map +1 -1
  389. package/dist/dataLayer/UpdateObject.d.ts +3 -7
  390. package/dist/dataLayer/UpdateObject.js +4 -3
  391. package/dist/dataLayer/UpdateObject.js.map +1 -1
  392. package/dist/dataLayer/UpsertObject.d.ts +3 -7
  393. package/dist/dataLayer/UpsertObject.js +4 -3
  394. package/dist/dataLayer/UpsertObject.js.map +1 -1
  395. package/dist/dataLayer/bulkLoad.d.ts +4 -4
  396. package/dist/dataLayer/bulkLoad.js +122 -88
  397. package/dist/dataLayer/bulkLoad.js.map +1 -1
  398. package/dist/dataLayer/delete.d.ts +10 -11
  399. package/dist/dataLayer/delete.js +74 -39
  400. package/dist/dataLayer/delete.js.map +1 -1
  401. package/dist/dataLayer/export.d.ts +8 -8
  402. package/dist/dataLayer/export.js +90 -55
  403. package/dist/dataLayer/export.js.map +1 -1
  404. package/dist/dataLayer/getBackup.d.ts +4 -3
  405. package/dist/dataLayer/getBackup.js +43 -11
  406. package/dist/dataLayer/getBackup.js.map +1 -1
  407. package/dist/dataLayer/harperBridge/BridgeMethods.d.ts +39 -21
  408. package/dist/dataLayer/harperBridge/BridgeMethods.js +41 -20
  409. package/dist/dataLayer/harperBridge/BridgeMethods.js.map +1 -1
  410. package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +2 -2
  411. package/dist/dataLayer/harperBridge/ResourceBridge.js +26 -25
  412. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  413. package/dist/dataLayer/harperBridge/TableSizeObject.d.ts +1 -0
  414. package/dist/dataLayer/harperBridge/TableSizeObject.js.map +1 -1
  415. package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.d.ts +4 -4
  416. package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
  417. package/dist/dataLayer/harperBridge/harperBridge.d.ts +2 -3
  418. package/dist/dataLayer/harperBridge/harperBridge.js +38 -4
  419. package/dist/dataLayer/harperBridge/harperBridge.js.map +1 -1
  420. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.d.ts +1 -2
  421. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +7 -6
  422. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js.map +1 -1
  423. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.d.ts +1 -2
  424. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
  425. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js.map +1 -1
  426. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
  427. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js.map +1 -1
  428. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +5 -4
  429. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js.map +1 -1
  430. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.d.ts +1 -2
  431. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +4 -4
  432. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js.map +1 -1
  433. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
  434. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.d.ts +1 -2
  435. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +5 -5
  436. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js.map +1 -1
  437. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +4 -4
  438. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js.map +1 -1
  439. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
  440. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js.map +1 -1
  441. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
  442. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
  443. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
  444. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +2 -2
  445. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js.map +1 -1
  446. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
  447. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.d.ts +1 -2
  448. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +8 -8
  449. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js.map +1 -1
  450. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.d.ts +1 -1
  451. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
  452. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.d.ts +1 -2
  453. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +3 -3
  454. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js.map +1 -1
  455. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
  456. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.d.ts +1 -2
  457. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +5 -5
  458. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js.map +1 -1
  459. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.d.ts +1 -2
  460. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +1 -1
  461. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js.map +1 -1
  462. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +2 -2
  463. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js.map +1 -1
  464. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
  465. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +4 -4
  466. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js.map +1 -1
  467. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.d.ts +1 -2
  468. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +5 -3
  469. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js.map +1 -1
  470. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +2 -2
  471. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.d.ts +1 -2
  472. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
  473. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js.map +1 -1
  474. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
  475. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
  476. package/dist/dataLayer/hdbInfoController.d.ts +4 -8
  477. package/dist/dataLayer/hdbInfoController.js +66 -31
  478. package/dist/dataLayer/hdbInfoController.js.map +1 -1
  479. package/dist/dataLayer/insert.d.ts +14 -26
  480. package/dist/dataLayer/insert.js +63 -28
  481. package/dist/dataLayer/insert.js.map +1 -1
  482. package/dist/dataLayer/readAuditLog.d.ts +1 -3
  483. package/dist/dataLayer/readAuditLog.js +45 -13
  484. package/dist/dataLayer/readAuditLog.js.map +1 -1
  485. package/dist/dataLayer/schema.d.ts +10 -10
  486. package/dist/dataLayer/schema.js +124 -89
  487. package/dist/dataLayer/schema.js.map +1 -1
  488. package/dist/dataLayer/schemaDescribe.d.ts +4 -4
  489. package/dist/dataLayer/schemaDescribe.js +78 -41
  490. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  491. package/dist/dataLayer/search.d.ts +4 -4
  492. package/dist/dataLayer/search.js +12 -13
  493. package/dist/dataLayer/search.js.map +1 -1
  494. package/dist/dataLayer/transaction.d.ts +1 -1
  495. package/dist/dataLayer/transaction.js +3 -4
  496. package/dist/dataLayer/transaction.js.map +1 -1
  497. package/dist/dataLayer/update.d.ts +2 -8
  498. package/dist/dataLayer/update.js +53 -18
  499. package/dist/dataLayer/update.js.map +1 -1
  500. package/dist/globals.d.ts +1 -1
  501. package/dist/globals.js +1 -0
  502. package/dist/globals.js.map +1 -1
  503. package/dist/index.d.ts +4 -0
  504. package/dist/index.js +4 -1
  505. package/dist/index.js.map +1 -1
  506. package/dist/json/systemSchema.json +65 -0
  507. package/dist/launchServiceScripts/launchHarperDB.d.ts +1 -0
  508. package/dist/launchServiceScripts/launchHarperDB.js +3 -0
  509. package/dist/launchServiceScripts/launchHarperDB.js.map +1 -0
  510. package/dist/launchServiceScripts/utility/checkNodeVersion.js +3 -0
  511. package/dist/launchServiceScripts/utility/checkNodeVersion.js.map +1 -1
  512. package/dist/resources/DatabaseTransaction.d.ts +14 -6
  513. package/dist/resources/DatabaseTransaction.js +39 -15
  514. package/dist/resources/DatabaseTransaction.js.map +1 -1
  515. package/dist/resources/ErrorResource.d.ts +1 -1
  516. package/dist/resources/ErrorResource.js +3 -1
  517. package/dist/resources/ErrorResource.js.map +1 -1
  518. package/dist/resources/LMDBTransaction.d.ts +10 -13
  519. package/dist/resources/LMDBTransaction.js +18 -7
  520. package/dist/resources/LMDBTransaction.js.map +1 -1
  521. package/dist/resources/RecordEncoder.d.ts +10 -12
  522. package/dist/resources/RecordEncoder.js +38 -38
  523. package/dist/resources/RecordEncoder.js.map +1 -1
  524. package/dist/resources/RequestTarget.d.ts +1 -0
  525. package/dist/resources/RequestTarget.js.map +1 -1
  526. package/dist/resources/Resource.d.ts +25 -5
  527. package/dist/resources/Resource.js +43 -10
  528. package/dist/resources/Resource.js.map +1 -1
  529. package/dist/resources/ResourceInterface.d.ts +24 -5
  530. package/dist/resources/ResourceInterface.js +20 -0
  531. package/dist/resources/ResourceInterface.js.map +1 -1
  532. package/dist/resources/Resources.d.ts +3 -4
  533. package/dist/resources/Resources.js +7 -6
  534. package/dist/resources/Resources.js.map +1 -1
  535. package/dist/resources/RocksIndexStore.js +3 -0
  536. package/dist/resources/RocksIndexStore.js.map +1 -1
  537. package/dist/resources/RocksTransactionLogStore.d.ts +1 -1
  538. package/dist/resources/RocksTransactionLogStore.js +10 -3
  539. package/dist/resources/RocksTransactionLogStore.js.map +1 -1
  540. package/dist/resources/Table.d.ts +76 -329
  541. package/dist/resources/Table.js +306 -116
  542. package/dist/resources/Table.js.map +1 -1
  543. package/dist/resources/analytics/metadata.d.ts +1 -0
  544. package/dist/resources/analytics/metadata.js +1 -0
  545. package/dist/resources/analytics/metadata.js.map +1 -1
  546. package/dist/resources/analytics/read.d.ts +8 -1
  547. package/dist/resources/analytics/read.js +69 -8
  548. package/dist/resources/analytics/read.js.map +1 -1
  549. package/dist/resources/analytics/write.d.ts +28 -0
  550. package/dist/resources/analytics/write.js +232 -20
  551. package/dist/resources/analytics/write.js.map +1 -1
  552. package/dist/resources/auditStore.d.ts +18 -13
  553. package/dist/resources/auditStore.js +16 -8
  554. package/dist/resources/auditStore.js.map +1 -1
  555. package/dist/resources/blob.d.ts +16 -27
  556. package/dist/resources/blob.js +8 -8
  557. package/dist/resources/blob.js.map +1 -1
  558. package/dist/resources/dataLoader.d.ts +1 -1
  559. package/dist/resources/dataLoader.js +13 -13
  560. package/dist/resources/databases.d.ts +17 -0
  561. package/dist/resources/databases.js +175 -59
  562. package/dist/resources/databases.js.map +1 -1
  563. package/dist/resources/graphql.d.ts +1 -7
  564. package/dist/resources/graphql.js +267 -173
  565. package/dist/resources/graphql.js.map +1 -1
  566. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +17 -1
  567. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +327 -59
  568. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  569. package/dist/resources/indexes/vector.d.ts +1 -0
  570. package/dist/resources/indexes/vector.js +14 -0
  571. package/dist/resources/indexes/vector.js.map +1 -1
  572. package/dist/resources/jsonSchemaTypes.d.ts +60 -0
  573. package/dist/resources/jsonSchemaTypes.js +78 -0
  574. package/dist/resources/jsonSchemaTypes.js.map +1 -0
  575. package/dist/resources/loadEnv.d.ts +2 -5
  576. package/dist/resources/loadEnv.js +21 -18
  577. package/dist/resources/loadEnv.js.map +1 -1
  578. package/dist/resources/login.d.ts +2 -3
  579. package/dist/resources/login.js +5 -4
  580. package/dist/resources/login.js.map +1 -1
  581. package/dist/resources/models/Models.d.ts +45 -0
  582. package/dist/resources/models/Models.js +265 -0
  583. package/dist/resources/models/Models.js.map +1 -0
  584. package/dist/resources/models/TestBackend.d.ts +15 -0
  585. package/dist/resources/models/TestBackend.js +71 -0
  586. package/dist/resources/models/TestBackend.js.map +1 -0
  587. package/dist/resources/models/agentLoop.d.ts +125 -0
  588. package/dist/resources/models/agentLoop.js +746 -0
  589. package/dist/resources/models/agentLoop.js.map +1 -0
  590. package/dist/resources/models/analyticsTable.d.ts +65 -0
  591. package/dist/resources/models/analyticsTable.js +166 -0
  592. package/dist/resources/models/analyticsTable.js.map +1 -0
  593. package/dist/resources/models/backendHelpers.d.ts +57 -0
  594. package/dist/resources/models/backendHelpers.js +109 -0
  595. package/dist/resources/models/backendHelpers.js.map +1 -0
  596. package/dist/resources/models/backendRegistry.d.ts +36 -0
  597. package/dist/resources/models/backendRegistry.js +54 -0
  598. package/dist/resources/models/backendRegistry.js.map +1 -0
  599. package/dist/resources/models/bootstrap.d.ts +24 -0
  600. package/dist/resources/models/bootstrap.js +112 -0
  601. package/dist/resources/models/bootstrap.js.map +1 -0
  602. package/dist/resources/models/embedHook.d.ts +33 -0
  603. package/dist/resources/models/embedHook.js +127 -0
  604. package/dist/resources/models/embedHook.js.map +1 -0
  605. package/dist/resources/models/types.d.ts +301 -0
  606. package/dist/resources/models/types.js +11 -0
  607. package/dist/resources/models/types.js.map +1 -0
  608. package/dist/resources/openApi.js +74 -34
  609. package/dist/resources/openApi.js.map +1 -1
  610. package/dist/resources/replayLogs.js +7 -1
  611. package/dist/resources/replayLogs.js.map +1 -1
  612. package/dist/resources/replayLogsGuards.d.ts +9 -0
  613. package/dist/resources/replayLogsGuards.js +47 -0
  614. package/dist/resources/replayLogsGuards.js.map +1 -1
  615. package/dist/resources/roles.d.ts +1 -7
  616. package/dist/resources/roles.js +67 -71
  617. package/dist/resources/roles.js.map +1 -1
  618. package/dist/resources/search.d.ts +18 -1
  619. package/dist/resources/search.js +349 -140
  620. package/dist/resources/search.js.map +1 -1
  621. package/dist/resources/tracked.d.ts +1 -1
  622. package/dist/resources/tracked.js +23 -15
  623. package/dist/resources/tracked.js.map +1 -1
  624. package/dist/resources/transaction.d.ts +1 -1
  625. package/dist/resources/transaction.js +1 -1
  626. package/dist/resources/transaction.js.map +1 -1
  627. package/dist/resources/transactionBroadcast.d.ts +1 -1
  628. package/dist/resources/transactionBroadcast.js.map +1 -1
  629. package/dist/security/auth.d.ts +1 -5
  630. package/dist/security/auth.js +34 -25
  631. package/dist/security/auth.js.map +1 -1
  632. package/dist/security/certificateVerification/crlVerification.js +7 -1
  633. package/dist/security/certificateVerification/crlVerification.js.map +1 -1
  634. package/dist/security/cryptoHash.d.ts +2 -2
  635. package/dist/security/cryptoHash.js +37 -5
  636. package/dist/security/cryptoHash.js.map +1 -1
  637. package/dist/security/data_objects/PermissionAttributeResponseObject.d.ts +3 -4
  638. package/dist/security/data_objects/PermissionAttributeResponseObject.js +4 -1
  639. package/dist/security/data_objects/PermissionAttributeResponseObject.js.map +1 -1
  640. package/dist/security/data_objects/PermissionResponseObject.d.ts +9 -9
  641. package/dist/security/data_objects/PermissionResponseObject.js +15 -8
  642. package/dist/security/data_objects/PermissionResponseObject.js.map +1 -1
  643. package/dist/security/data_objects/PermissionTableResponseObject.d.ts +5 -6
  644. package/dist/security/data_objects/PermissionTableResponseObject.js +6 -1
  645. package/dist/security/data_objects/PermissionTableResponseObject.js.map +1 -1
  646. package/dist/security/fastifyAuth.d.ts +2 -2
  647. package/dist/security/fastifyAuth.js +131 -22
  648. package/dist/security/fastifyAuth.js.map +1 -1
  649. package/dist/security/impersonation.js +15 -15
  650. package/dist/security/jsLoader.js +18 -5
  651. package/dist/security/jsLoader.js.map +1 -1
  652. package/dist/security/keys.d.ts +45 -48
  653. package/dist/security/keys.js +160 -114
  654. package/dist/security/keys.js.map +1 -1
  655. package/dist/security/permissionsTranslator.js +2 -2
  656. package/dist/security/role.d.ts +5 -5
  657. package/dist/security/role.js +70 -35
  658. package/dist/security/role.js.map +1 -1
  659. package/dist/security/tokenAuthentication.d.ts +13 -0
  660. package/dist/security/tokenAuthentication.js +57 -27
  661. package/dist/security/tokenAuthentication.js.map +1 -1
  662. package/dist/security/user.js +74 -38
  663. package/dist/security/user.js.map +1 -1
  664. package/dist/server/DurableSubscriptionsSession.d.ts +4 -2
  665. package/dist/server/DurableSubscriptionsSession.js +71 -55
  666. package/dist/server/DurableSubscriptionsSession.js.map +1 -1
  667. package/dist/server/REST.d.ts +1 -8
  668. package/dist/server/REST.js +17 -16
  669. package/dist/server/REST.js.map +1 -1
  670. package/dist/server/Server.d.ts +23 -4
  671. package/dist/server/Server.js +1 -1
  672. package/dist/server/Server.js.map +1 -1
  673. package/dist/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
  674. package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
  675. package/dist/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
  676. package/dist/server/fastifyRoutes.d.ts +1 -4
  677. package/dist/server/fastifyRoutes.js +34 -30
  678. package/dist/server/fastifyRoutes.js.map +1 -1
  679. package/dist/server/graphqlQuerying.d.ts +1 -1
  680. package/dist/server/graphqlQuerying.js +8 -7
  681. package/dist/server/graphqlQuerying.js.map +1 -1
  682. package/dist/server/http.d.ts +9 -4
  683. package/dist/server/http.js +523 -47
  684. package/dist/server/http.js.map +1 -1
  685. package/dist/server/itc/serverHandlers.js +66 -15
  686. package/dist/server/itc/serverHandlers.js.map +1 -1
  687. package/dist/server/jobs/JobObject.d.ts +3 -3
  688. package/dist/server/jobs/JobObject.js +53 -7
  689. package/dist/server/jobs/JobObject.js.map +1 -1
  690. package/dist/server/jobs/jobProcess.js +64 -24
  691. package/dist/server/jobs/jobProcess.js.map +1 -1
  692. package/dist/server/jobs/jobRunner.d.ts +7 -6
  693. package/dist/server/jobs/jobRunner.js +68 -30
  694. package/dist/server/jobs/jobRunner.js.map +1 -1
  695. package/dist/server/jobs/jobs.d.ts +18 -7
  696. package/dist/server/jobs/jobs.js +93 -61
  697. package/dist/server/jobs/jobs.js.map +1 -1
  698. package/dist/server/loadRootComponents.js +1 -1
  699. package/dist/server/middlewareChain.d.ts +80 -0
  700. package/dist/server/middlewareChain.js +252 -0
  701. package/dist/server/middlewareChain.js.map +1 -0
  702. package/dist/server/mqtt.d.ts +1 -8
  703. package/dist/server/mqtt.js +22 -17
  704. package/dist/server/mqtt.js.map +1 -1
  705. package/dist/server/nodeName.js +46 -13
  706. package/dist/server/nodeName.js.map +1 -1
  707. package/dist/server/operationsServer.d.ts +2 -2
  708. package/dist/server/operationsServer.js +106 -33
  709. package/dist/server/operationsServer.js.map +1 -1
  710. package/dist/server/serverHelpers/Headers.d.ts +4 -4
  711. package/dist/server/serverHelpers/Headers.js +2 -0
  712. package/dist/server/serverHelpers/Headers.js.map +1 -1
  713. package/dist/server/serverHelpers/JSONStream.d.ts +7 -1
  714. package/dist/server/serverHelpers/JSONStream.js +12 -3
  715. package/dist/server/serverHelpers/JSONStream.js.map +1 -1
  716. package/dist/server/serverHelpers/Request.d.ts +106 -8
  717. package/dist/server/serverHelpers/Request.js +370 -9
  718. package/dist/server/serverHelpers/Request.js.map +1 -1
  719. package/dist/server/serverHelpers/contentTypes.d.ts +1 -1
  720. package/dist/server/serverHelpers/contentTypes.js +36 -7
  721. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  722. package/dist/server/serverHelpers/multipartParser.d.ts +21 -0
  723. package/dist/server/serverHelpers/multipartParser.js +142 -0
  724. package/dist/server/serverHelpers/multipartParser.js.map +1 -0
  725. package/dist/server/serverHelpers/progressEmitter.d.ts +25 -0
  726. package/dist/server/serverHelpers/progressEmitter.js +103 -0
  727. package/dist/server/serverHelpers/progressEmitter.js.map +1 -0
  728. package/dist/server/serverHelpers/serverHandlers.d.ts +1 -1
  729. package/dist/server/serverHelpers/serverHandlers.js +38 -7
  730. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  731. package/dist/server/serverHelpers/serverUtilities.d.ts +4 -2
  732. package/dist/server/serverHelpers/serverUtilities.js +97 -93
  733. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  734. package/dist/server/static.js +8 -5
  735. package/dist/server/static.js.map +1 -1
  736. package/dist/server/status/index.js +3 -3
  737. package/dist/server/storageReclamation.d.ts +10 -0
  738. package/dist/server/storageReclamation.js +68 -9
  739. package/dist/server/storageReclamation.js.map +1 -1
  740. package/dist/server/threads/itc.js +7 -4
  741. package/dist/server/threads/itc.js.map +1 -1
  742. package/dist/server/threads/manageThreads.d.ts +1 -1
  743. package/dist/server/threads/manageThreads.js +110 -26
  744. package/dist/server/threads/manageThreads.js.map +1 -1
  745. package/dist/server/threads/socketRouter.d.ts +0 -1
  746. package/dist/server/threads/socketRouter.js +8 -271
  747. package/dist/server/threads/socketRouter.js.map +1 -1
  748. package/dist/server/threads/threadServer.d.ts +1 -0
  749. package/dist/server/threads/threadServer.js +360 -118
  750. package/dist/server/threads/threadServer.js.map +1 -1
  751. package/dist/server/threads/workerProcessGuard.d.ts +42 -0
  752. package/dist/server/threads/workerProcessGuard.js +114 -0
  753. package/dist/server/threads/workerProcessGuard.js.map +1 -0
  754. package/dist/server/throttle.js +17 -0
  755. package/dist/server/throttle.js.map +1 -1
  756. package/dist/sqlTranslator/SelectValidator.d.ts +21 -24
  757. package/dist/sqlTranslator/SelectValidator.js +86 -47
  758. package/dist/sqlTranslator/SelectValidator.js.map +1 -1
  759. package/dist/sqlTranslator/alasqlFunctionImporter.d.ts +6 -2
  760. package/dist/sqlTranslator/alasqlFunctionImporter.js +40 -3
  761. package/dist/sqlTranslator/alasqlFunctionImporter.js.map +1 -1
  762. package/dist/sqlTranslator/deleteTranslator.d.ts +4 -7
  763. package/dist/sqlTranslator/deleteTranslator.js +48 -14
  764. package/dist/sqlTranslator/deleteTranslator.js.map +1 -1
  765. package/dist/sqlTranslator/index.d.ts +10 -9
  766. package/dist/sqlTranslator/index.js +69 -30
  767. package/dist/sqlTranslator/index.js.map +1 -1
  768. package/dist/sqlTranslator/sql_statement_bucket.d.ts +10 -10
  769. package/dist/sqlTranslator/sql_statement_bucket.js +55 -13
  770. package/dist/sqlTranslator/sql_statement_bucket.js.map +1 -1
  771. package/dist/upgrade/UpgradeObjects.d.ts +2 -3
  772. package/dist/upgrade/UpgradeObjects.js +37 -4
  773. package/dist/upgrade/UpgradeObjects.js.map +1 -1
  774. package/dist/upgrade/directives/5-1-0.d.ts +6 -0
  775. package/dist/upgrade/directives/5-1-0.js +114 -0
  776. package/dist/upgrade/directives/5-1-0.js.map +1 -0
  777. package/dist/upgrade/directives/directivesController.d.ts +10 -10
  778. package/dist/upgrade/directives/directivesController.js +52 -11
  779. package/dist/upgrade/directives/directivesController.js.map +1 -1
  780. package/dist/upgrade/directivesManager.d.ts +1 -1
  781. package/dist/upgrade/directivesManager.js +53 -18
  782. package/dist/upgrade/directivesManager.js.map +1 -1
  783. package/dist/upgrade/upgradePrompt.d.ts +2 -8
  784. package/dist/upgrade/upgradePrompt.js +55 -60
  785. package/dist/upgrade/upgradePrompt.js.map +1 -1
  786. package/dist/upgrade/upgradeUtilities.d.ts +1 -1
  787. package/dist/upgrade/upgradeUtilities.js +37 -5
  788. package/dist/upgrade/upgradeUtilities.js.map +1 -1
  789. package/dist/utility/OperationFunctionCaller.d.ts +1 -1
  790. package/dist/utility/OperationFunctionCaller.js +45 -10
  791. package/dist/utility/OperationFunctionCaller.js.map +1 -1
  792. package/dist/utility/assignCmdEnvVariables.d.ts +1 -2
  793. package/dist/utility/assignCmdEnvVariables.js +8 -4
  794. package/dist/utility/assignCmdEnvVariables.js.map +1 -1
  795. package/dist/utility/common_utils.d.ts +80 -77
  796. package/dist/utility/common_utils.js +140 -79
  797. package/dist/utility/common_utils.js.map +1 -1
  798. package/dist/utility/environment/environmentManager.d.ts +12 -11
  799. package/dist/utility/environment/environmentManager.js +75 -29
  800. package/dist/utility/environment/environmentManager.js.map +1 -1
  801. package/dist/utility/environment/systemInformation.d.ts +4 -0
  802. package/dist/utility/environment/systemInformation.js +27 -16
  803. package/dist/utility/environment/systemInformation.js.map +1 -1
  804. package/dist/utility/errors/commonErrors.d.ts +192 -168
  805. package/dist/utility/errors/commonErrors.js +49 -18
  806. package/dist/utility/errors/commonErrors.js.map +1 -1
  807. package/dist/utility/errors/hdbError.d.ts +37 -51
  808. package/dist/utility/errors/hdbError.js +65 -26
  809. package/dist/utility/errors/hdbError.js.map +1 -1
  810. package/dist/utility/expandEnvVar.d.ts +61 -0
  811. package/dist/utility/expandEnvVar.js +113 -0
  812. package/dist/utility/expandEnvVar.js.map +1 -0
  813. package/dist/utility/functions/geo.js +2 -2
  814. package/dist/utility/functions/sql/alaSQLExtension.js +1 -1
  815. package/dist/utility/globalSchema.d.ts +13 -4
  816. package/dist/utility/globalSchema.js +14 -11
  817. package/dist/utility/globalSchema.js.map +1 -1
  818. package/dist/utility/hdbTerms.d.ts +54 -1
  819. package/dist/utility/hdbTerms.js +54 -1
  820. package/dist/utility/hdbTerms.js.map +1 -1
  821. package/dist/utility/install/checkJWTTokensExist.js +1 -1
  822. package/dist/utility/install/installer.d.ts +9 -12
  823. package/dist/utility/install/installer.js +117 -54
  824. package/dist/utility/install/installer.js.map +1 -1
  825. package/dist/utility/installation.js +3 -3
  826. package/dist/utility/lmdb/DBIDefinition.d.ts +4 -4
  827. package/dist/utility/lmdb/DBIDefinition.js +5 -1
  828. package/dist/utility/lmdb/DBIDefinition.js.map +1 -1
  829. package/dist/utility/lmdb/DeleteRecordsResponseObject.d.ts +3 -6
  830. package/dist/utility/lmdb/DeleteRecordsResponseObject.js +2 -1
  831. package/dist/utility/lmdb/DeleteRecordsResponseObject.js.map +1 -1
  832. package/dist/utility/lmdb/InsertRecordsResponseObject.d.ts +3 -5
  833. package/dist/utility/lmdb/InsertRecordsResponseObject.js +2 -1
  834. package/dist/utility/lmdb/InsertRecordsResponseObject.js.map +1 -1
  835. package/dist/utility/lmdb/OpenDBIObject.d.ts +12 -15
  836. package/dist/utility/lmdb/OpenDBIObject.js +68 -6
  837. package/dist/utility/lmdb/OpenDBIObject.js.map +1 -1
  838. package/dist/utility/lmdb/OpenEnvironmentObject.d.ts +5 -8
  839. package/dist/utility/lmdb/OpenEnvironmentObject.js +52 -4
  840. package/dist/utility/lmdb/OpenEnvironmentObject.js.map +1 -1
  841. package/dist/utility/lmdb/UpdateRecordsResponseObject.d.ts +3 -6
  842. package/dist/utility/lmdb/UpdateRecordsResponseObject.js +2 -1
  843. package/dist/utility/lmdb/UpdateRecordsResponseObject.js.map +1 -1
  844. package/dist/utility/lmdb/UpsertRecordsResponseObject.d.ts +3 -5
  845. package/dist/utility/lmdb/UpsertRecordsResponseObject.js +2 -1
  846. package/dist/utility/lmdb/UpsertRecordsResponseObject.js.map +1 -1
  847. package/dist/utility/lmdb/cleanLMDBMap.d.ts +1 -1
  848. package/dist/utility/lmdb/cleanLMDBMap.js +44 -7
  849. package/dist/utility/lmdb/cleanLMDBMap.js.map +1 -1
  850. package/dist/utility/lmdb/commonUtility.d.ts +8 -9
  851. package/dist/utility/lmdb/commonUtility.js +46 -17
  852. package/dist/utility/lmdb/commonUtility.js.map +1 -1
  853. package/dist/utility/lmdb/deleteUtility.d.ts +2 -3
  854. package/dist/utility/lmdb/deleteUtility.js +51 -16
  855. package/dist/utility/lmdb/deleteUtility.js.map +1 -1
  856. package/dist/utility/lmdb/environmentUtility.d.ts +69 -36
  857. package/dist/utility/lmdb/environmentUtility.js +91 -51
  858. package/dist/utility/lmdb/environmentUtility.js.map +1 -1
  859. package/dist/utility/lmdb/searchCursorFunctions.d.ts +19 -19
  860. package/dist/utility/lmdb/searchCursorFunctions.js +46 -14
  861. package/dist/utility/lmdb/searchCursorFunctions.js.map +1 -1
  862. package/dist/utility/lmdb/searchUtility.d.ts +142 -73
  863. package/dist/utility/lmdb/searchUtility.js +91 -55
  864. package/dist/utility/lmdb/searchUtility.js.map +1 -1
  865. package/dist/utility/lmdb/terms.d.ts +34 -34
  866. package/dist/utility/lmdb/terms.js +12 -22
  867. package/dist/utility/lmdb/terms.js.map +1 -1
  868. package/dist/utility/lmdb/writeUtility.d.ts +3 -6
  869. package/dist/utility/lmdb/writeUtility.js +61 -28
  870. package/dist/utility/lmdb/writeUtility.js.map +1 -1
  871. package/dist/utility/logging/harper_logger.d.ts +87 -103
  872. package/dist/utility/logging/harper_logger.js +177 -82
  873. package/dist/utility/logging/harper_logger.js.map +1 -1
  874. package/dist/utility/logging/logRotator.d.ts +2 -10
  875. package/dist/utility/logging/logRotator.js +67 -32
  876. package/dist/utility/logging/logRotator.js.map +1 -1
  877. package/dist/utility/logging/logger.js +4 -4
  878. package/dist/utility/logging/readLog.d.ts +1 -1
  879. package/dist/utility/logging/readLog.js +54 -17
  880. package/dist/utility/logging/readLog.js.map +1 -1
  881. package/dist/utility/logging/transactionLog.d.ts +2 -2
  882. package/dist/utility/logging/transactionLog.js +51 -16
  883. package/dist/utility/logging/transactionLog.js.map +1 -1
  884. package/dist/utility/mount_hdb.d.ts +1 -2
  885. package/dist/utility/mount_hdb.js +54 -17
  886. package/dist/utility/mount_hdb.js.map +1 -1
  887. package/dist/utility/npmUtilities.d.ts +1 -1
  888. package/dist/utility/npmUtilities.js +54 -19
  889. package/dist/utility/npmUtilities.js.map +1 -1
  890. package/dist/utility/operation_authorization.d.ts +36 -9
  891. package/dist/utility/operation_authorization.js +135 -86
  892. package/dist/utility/operation_authorization.js.map +1 -1
  893. package/dist/utility/packageUtils.d.ts +0 -2
  894. package/dist/utility/packageUtils.js +7 -17
  895. package/dist/utility/packageUtils.js.map +1 -1
  896. package/dist/utility/password.js +2 -2
  897. package/dist/utility/processManagement/processManagement.js +2 -2
  898. package/dist/utility/processManagement/servicesConfig.js +1 -1
  899. package/dist/utility/signalling.d.ts +2 -2
  900. package/dist/utility/signalling.js +51 -16
  901. package/dist/utility/signalling.js.map +1 -1
  902. package/dist/utility/watcherFallback.d.ts +36 -0
  903. package/dist/utility/watcherFallback.js +73 -0
  904. package/dist/utility/watcherFallback.js.map +1 -0
  905. package/dist/validation/analyticsValidator.d.ts +1 -0
  906. package/dist/validation/analyticsValidator.js +80 -0
  907. package/dist/validation/analyticsValidator.js.map +1 -0
  908. package/dist/validation/bulkDeleteValidator.d.ts +1 -2
  909. package/dist/validation/bulkDeleteValidator.js +49 -11
  910. package/dist/validation/bulkDeleteValidator.js.map +1 -1
  911. package/dist/validation/check_permissions.d.ts +1 -2
  912. package/dist/validation/check_permissions.js +38 -3
  913. package/dist/validation/check_permissions.js.map +1 -1
  914. package/dist/validation/common_validators.d.ts +20 -20
  915. package/dist/validation/common_validators.js +62 -31
  916. package/dist/validation/common_validators.js.map +1 -1
  917. package/dist/validation/configValidator.d.ts +4 -4
  918. package/dist/validation/configValidator.js +189 -54
  919. package/dist/validation/configValidator.js.map +1 -1
  920. package/dist/validation/deleteValidator.d.ts +1 -2
  921. package/dist/validation/deleteValidator.js +49 -11
  922. package/dist/validation/deleteValidator.js.map +1 -1
  923. package/dist/validation/fileLoadValidator.d.ts +4 -4
  924. package/dist/validation/fileLoadValidator.js +67 -32
  925. package/dist/validation/fileLoadValidator.js.map +1 -1
  926. package/dist/validation/insertValidator.d.ts +1 -2
  927. package/dist/validation/insertValidator.js +48 -10
  928. package/dist/validation/insertValidator.js.map +1 -1
  929. package/dist/validation/installValidator.d.ts +2 -2
  930. package/dist/validation/installValidator.js +47 -10
  931. package/dist/validation/installValidator.js.map +1 -1
  932. package/dist/validation/readLogValidator.d.ts +1 -2
  933. package/dist/validation/readLogValidator.js +60 -22
  934. package/dist/validation/readLogValidator.js.map +1 -1
  935. package/dist/validation/role_validation.d.ts +3 -3
  936. package/dist/validation/role_validation.js +55 -19
  937. package/dist/validation/role_validation.js.map +1 -1
  938. package/dist/validation/schemaMetadataValidator.d.ts +3 -4
  939. package/dist/validation/schemaMetadataValidator.js +11 -12
  940. package/dist/validation/schemaMetadataValidator.js.map +1 -1
  941. package/dist/validation/searchValidator.d.ts +1 -2
  942. package/dist/validation/searchValidator.js +82 -43
  943. package/dist/validation/searchValidator.js.map +1 -1
  944. package/dist/validation/statusValidator.d.ts +1 -1
  945. package/dist/validation/transactionLogValidator.d.ts +3 -3
  946. package/dist/validation/transactionLogValidator.js +52 -17
  947. package/dist/validation/transactionLogValidator.js.map +1 -1
  948. package/dist/validation/user_validation.d.ts +3 -3
  949. package/dist/validation/user_validation.js +38 -6
  950. package/dist/validation/user_validation.js.map +1 -1
  951. package/dist/validation/validationWrapper.d.ts +3 -3
  952. package/dist/validation/validationWrapper.js +4 -5
  953. package/dist/validation/validationWrapper.js.map +1 -1
  954. package/index.ts +5 -0
  955. package/json/systemSchema.json +65 -0
  956. package/launchServiceScripts/utility/checkNodeVersion.js +2 -0
  957. package/package.json +38 -24
  958. package/resources/DESIGN.md +98 -0
  959. package/resources/DatabaseTransaction.ts +58 -30
  960. package/resources/ErrorResource.ts +2 -1
  961. package/resources/LMDBTransaction.ts +38 -29
  962. package/resources/RecordEncoder.ts +41 -39
  963. package/resources/RequestTarget.ts +2 -0
  964. package/resources/Resource.ts +96 -56
  965. package/resources/ResourceInterface.ts +44 -21
  966. package/resources/Resources.ts +8 -8
  967. package/resources/RocksIndexStore.ts +3 -0
  968. package/resources/RocksTransactionLogStore.ts +13 -4
  969. package/resources/Table.ts +440 -223
  970. package/resources/analytics/metadata.ts +1 -0
  971. package/resources/analytics/read.ts +99 -10
  972. package/resources/analytics/write.ts +240 -17
  973. package/resources/auditStore.ts +30 -19
  974. package/resources/blob.ts +53 -53
  975. package/resources/dataLoader.ts +4 -4
  976. package/resources/databases.ts +208 -74
  977. package/resources/graphql.ts +267 -165
  978. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +310 -65
  979. package/resources/indexes/vector.ts +17 -0
  980. package/resources/jsonSchemaTypes.ts +102 -0
  981. package/resources/loadEnv.ts +21 -17
  982. package/resources/login.ts +5 -3
  983. package/resources/models/Models.ts +304 -0
  984. package/resources/models/TestBackend.ts +83 -0
  985. package/resources/models/agentLoop.ts +895 -0
  986. package/resources/models/analyticsTable.ts +199 -0
  987. package/resources/models/backendHelpers.ts +116 -0
  988. package/resources/models/backendRegistry.ts +66 -0
  989. package/resources/models/bootstrap.ts +135 -0
  990. package/resources/models/embedHook.ts +138 -0
  991. package/resources/models/types.ts +296 -0
  992. package/resources/openApi.ts +65 -31
  993. package/resources/replayLogs.ts +20 -9
  994. package/resources/replayLogsGuards.ts +45 -0
  995. package/resources/roles.ts +62 -67
  996. package/resources/search.ts +355 -135
  997. package/resources/tracked.ts +18 -9
  998. package/resources/transaction.ts +8 -8
  999. package/resources/transactionBroadcast.ts +3 -3
  1000. package/schema.graphql +7 -0
  1001. package/security/auth.ts +35 -26
  1002. package/security/certificateVerification/crlVerification.ts +11 -4
  1003. package/security/{cryptoHash.js → cryptoHash.ts} +3 -8
  1004. package/security/data_objects/{PermissionAttributeResponseObject.js → PermissionAttributeResponseObject.ts} +4 -4
  1005. package/security/data_objects/{PermissionResponseObject.js → PermissionResponseObject.ts} +12 -11
  1006. package/security/data_objects/{PermissionTableResponseObject.js → PermissionTableResponseObject.ts} +6 -4
  1007. package/security/{fastifyAuth.js → fastifyAuth.ts} +93 -20
  1008. package/security/impersonation.ts +3 -3
  1009. package/security/jsLoader.ts +22 -8
  1010. package/security/{keys.js → keys.ts} +113 -121
  1011. package/security/permissionsTranslator.js +2 -2
  1012. package/security/{role.js → role.ts} +26 -33
  1013. package/security/tokenAuthentication.ts +34 -7
  1014. package/security/user.ts +26 -22
  1015. package/server/DESIGN.md +139 -0
  1016. package/server/DurableSubscriptionsSession.ts +67 -50
  1017. package/server/REST.ts +120 -107
  1018. package/server/Server.ts +31 -12
  1019. package/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
  1020. package/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
  1021. package/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
  1022. package/server/fastifyRoutes.ts +37 -33
  1023. package/server/graphqlQuerying.ts +6 -5
  1024. package/server/http.ts +517 -26
  1025. package/server/itc/serverHandlers.js +75 -14
  1026. package/server/jobs/{JobObject.js → JobObject.ts} +13 -6
  1027. package/server/jobs/{jobProcess.js → jobProcess.ts} +20 -16
  1028. package/server/jobs/{jobRunner.js → jobRunner.ts} +20 -21
  1029. package/server/jobs/{jobs.js → jobs.ts} +41 -44
  1030. package/server/loadRootComponents.js +1 -1
  1031. package/server/middlewareChain.ts +270 -0
  1032. package/server/mqtt.ts +35 -26
  1033. package/server/nodeName.ts +3 -1
  1034. package/server/operationsServer.ts +85 -10
  1035. package/server/serverHelpers/Headers.ts +10 -8
  1036. package/server/serverHelpers/JSONStream.ts +15 -5
  1037. package/server/serverHelpers/Request.ts +370 -13
  1038. package/server/serverHelpers/contentTypes.ts +42 -11
  1039. package/server/serverHelpers/multipartParser.ts +152 -0
  1040. package/server/serverHelpers/progressEmitter.ts +110 -0
  1041. package/server/serverHelpers/serverHandlers.js +43 -7
  1042. package/server/serverHelpers/serverUtilities.ts +40 -30
  1043. package/server/static.ts +9 -6
  1044. package/server/status/index.ts +2 -2
  1045. package/server/storageReclamation.ts +39 -2
  1046. package/server/threads/itc.js +7 -4
  1047. package/server/threads/manageThreads.js +100 -26
  1048. package/server/threads/socketRouter.ts +12 -275
  1049. package/server/threads/threadServer.js +345 -105
  1050. package/server/threads/workerProcessGuard.ts +93 -0
  1051. package/server/throttle.ts +18 -0
  1052. package/sqlTranslator/{SelectValidator.js → SelectValidator.ts} +41 -49
  1053. package/sqlTranslator/{alasqlFunctionImporter.js → alasqlFunctionImporter.ts} +5 -5
  1054. package/sqlTranslator/{deleteTranslator.js → deleteTranslator.ts} +13 -18
  1055. package/sqlTranslator/{index.js → index.ts} +30 -33
  1056. package/sqlTranslator/{sql_statement_bucket.js → sql_statement_bucket.ts} +49 -20
  1057. package/static/README.md +10 -9
  1058. package/static/defaultConfig.yaml +0 -1
  1059. package/studio/web/assets/{index-CybLScHg.js → index-Dqr9oVhe.js} +5 -5
  1060. package/studio/web/assets/index-Dqr9oVhe.js.map +1 -0
  1061. package/studio/web/assets/{index.lazy-DKx5-iXF.js → index.lazy-CpKcKb7M.js} +2 -2
  1062. package/studio/web/assets/{index.lazy-DKx5-iXF.js.map → index.lazy-CpKcKb7M.js.map} +1 -1
  1063. package/studio/web/assets/{profile-BOjes0Wl.js → profile-C1cujdsg.js} +2 -2
  1064. package/studio/web/assets/{profile-BOjes0Wl.js.map → profile-C1cujdsg.js.map} +1 -1
  1065. package/studio/web/assets/{status-EWKUIrjT.js → status-CTiIIQlY.js} +2 -2
  1066. package/studio/web/assets/{status-EWKUIrjT.js.map → status-CTiIIQlY.js.map} +1 -1
  1067. package/studio/web/index.html +1 -1
  1068. package/upgrade/{UpgradeObjects.js → UpgradeObjects.ts} +3 -6
  1069. package/upgrade/directives/5-1-0.ts +89 -0
  1070. package/upgrade/directives/{directivesController.js → directivesController.ts} +16 -16
  1071. package/upgrade/{directivesManager.js → directivesManager.ts} +7 -11
  1072. package/upgrade/{upgradePrompt.js → upgradePrompt.ts} +6 -54
  1073. package/upgrade/{upgradeUtilities.js → upgradeUtilities.ts} +3 -7
  1074. package/utility/{OperationFunctionCaller.js → OperationFunctionCaller.ts} +7 -7
  1075. package/utility/{assignCmdEnvVariables.js → assignCmdEnvVariables.ts} +6 -8
  1076. package/utility/{common_utils.js → common_utils.ts} +113 -139
  1077. package/utility/environment/{environmentManager.js → environmentManager.ts} +34 -33
  1078. package/utility/environment/systemInformation.ts +18 -4
  1079. package/utility/errors/{commonErrors.js → commonErrors.ts} +9 -9
  1080. package/utility/errors/{hdbError.js → hdbError.ts} +39 -45
  1081. package/utility/expandEnvVar.ts +110 -0
  1082. package/utility/functions/geo.js +2 -2
  1083. package/utility/functions/sql/alaSQLExtension.js +1 -1
  1084. package/utility/globalSchema.ts +30 -0
  1085. package/utility/hdbTerms.ts +54 -1
  1086. package/utility/install/checkJWTTokensExist.js +1 -1
  1087. package/utility/install/{installer.js → installer.ts} +66 -42
  1088. package/utility/installation.ts +2 -2
  1089. package/utility/lmdb/{DBIDefinition.js → DBIDefinition.ts} +4 -1
  1090. package/utility/lmdb/{DeleteRecordsResponseObject.js → DeleteRecordsResponseObject.ts} +2 -1
  1091. package/utility/lmdb/{InsertRecordsResponseObject.js → InsertRecordsResponseObject.ts} +2 -1
  1092. package/utility/lmdb/OpenDBIObject.ts +57 -0
  1093. package/utility/lmdb/{OpenEnvironmentObject.js → OpenEnvironmentObject.ts} +19 -6
  1094. package/utility/lmdb/{UpdateRecordsResponseObject.js → UpdateRecordsResponseObject.ts} +2 -1
  1095. package/utility/lmdb/{UpsertRecordsResponseObject.js → UpsertRecordsResponseObject.ts} +2 -1
  1096. package/utility/lmdb/{cleanLMDBMap.js → cleanLMDBMap.ts} +5 -5
  1097. package/utility/lmdb/{commonUtility.js → commonUtility.ts} +13 -21
  1098. package/utility/lmdb/{deleteUtility.js → deleteUtility.ts} +8 -12
  1099. package/utility/lmdb/{environmentUtility.js → environmentUtility.ts} +43 -52
  1100. package/utility/lmdb/{searchCursorFunctions.js → searchCursorFunctions.ts} +12 -26
  1101. package/utility/lmdb/{searchUtility.js → searchUtility.ts} +75 -64
  1102. package/utility/lmdb/{terms.js → terms.ts} +10 -23
  1103. package/utility/lmdb/{writeUtility.js → writeUtility.ts} +37 -22
  1104. package/utility/logging/{harper_logger.js → harper_logger.ts} +137 -90
  1105. package/utility/logging/{logRotator.js → logRotator.ts} +15 -18
  1106. package/utility/logging/logger.ts +1 -1
  1107. package/utility/logging/{readLog.js → readLog.ts} +19 -19
  1108. package/utility/logging/{transactionLog.js → transactionLog.ts} +10 -14
  1109. package/utility/{mount_hdb.js → mount_hdb.ts} +15 -16
  1110. package/utility/{npmUtilities.js → npmUtilities.ts} +14 -17
  1111. package/utility/{operation_authorization.js → operation_authorization.ts} +173 -124
  1112. package/utility/packageUtils.js +7 -16
  1113. package/utility/password.ts +1 -1
  1114. package/utility/processManagement/processManagement.js +2 -2
  1115. package/utility/processManagement/servicesConfig.js +1 -1
  1116. package/utility/{signalling.js → signalling.ts} +6 -11
  1117. package/utility/watcherFallback.ts +74 -0
  1118. package/validation/analyticsValidator.ts +44 -0
  1119. package/validation/{bulkDeleteValidator.js → bulkDeleteValidator.ts} +5 -5
  1120. package/validation/{check_permissions.js → check_permissions.ts} +3 -3
  1121. package/validation/{common_validators.js → common_validators.ts} +12 -24
  1122. package/validation/{configValidator.js → configValidator.ts} +114 -18
  1123. package/validation/{deleteValidator.js → deleteValidator.ts} +5 -5
  1124. package/validation/{fileLoadValidator.js → fileLoadValidator.ts} +12 -19
  1125. package/validation/{insertValidator.js → insertValidator.ts} +5 -5
  1126. package/validation/{installValidator.js → installValidator.ts} +8 -8
  1127. package/validation/{readLogValidator.js → readLogValidator.ts} +10 -10
  1128. package/validation/{role_validation.js → role_validation.ts} +26 -32
  1129. package/validation/{schemaMetadataValidator.js → schemaMetadataValidator.ts} +5 -11
  1130. package/validation/{searchValidator.js → searchValidator.ts} +12 -11
  1131. package/validation/statusValidator.ts +1 -1
  1132. package/validation/{transactionLogValidator.js → transactionLogValidator.ts} +4 -9
  1133. package/validation/{user_validation.js → user_validation.ts} +4 -10
  1134. package/validation/{validationWrapper.js → validationWrapper.ts} +3 -9
  1135. package/bin/cliOperations.js +0 -159
  1136. package/bin/lite.js +0 -5
  1137. package/dataLayer/harperBridge/BridgeMethods.js +0 -85
  1138. package/studio/web/assets/index-CybLScHg.js.map +0 -1
  1139. package/utility/globalSchema.js +0 -35
  1140. package/utility/lmdb/OpenDBIObject.js +0 -31
@@ -1,17 +1,17 @@
1
+ import { cleanupUnusedBlobs } from './blob.ts';
1
2
  import { Transaction as LMDBTransaction } from 'lmdb';
2
- import { getNextMonotonicTime } from '../utility/lmdb/commonUtility.js';
3
- import { ServerError } from '../utility/errors/hdbError.js';
4
- import * as harperLogger from '../utility/logging/harper_logger.js';
3
+ import { getNextMonotonicTime } from '../utility/lmdb/commonUtility.ts';
4
+ import { ServerError } from '../utility/errors/hdbError.ts';
5
+ import * as harperLogger from '../utility/logging/harper_logger.ts';
5
6
  import type { Context, Id } from './ResourceInterface.ts';
6
- import * as envMngr from '../utility/environment/environmentManager.js';
7
+ import * as envMngr from '../utility/environment/environmentManager.ts';
7
8
  import { CONFIG_PARAMS } from '../utility/hdbTerms.ts';
8
- import { convertToMS } from '../utility/common_utils.js';
9
+ import { convertToMS } from '../utility/common_utils.ts';
9
10
  import { when } from '../utility/when.ts';
10
11
  import { setTimeout as delay } from 'node:timers/promises';
11
12
  import { Transaction as RocksTransaction, type Store as RocksStore } from '@harperfast/rocksdb-js';
12
13
  import type { RootDatabaseKind } from './databases.ts';
13
14
  import type { Entry } from './RecordEncoder.ts';
14
- import { cleanupUnusedBlobs } from './blob.ts';
15
15
 
16
16
  const trackedTxns = new Set<DatabaseTransaction>();
17
17
  const MAX_OUTSTANDING_TXN_DURATION = convertToMS(envMngr.get(CONFIG_PARAMS.STORAGE_MAXTRANSACTIONQUEUETIME)) || 45000; // Allow write transactions to be queued for up to 25 seconds before we start rejecting them
@@ -44,20 +44,26 @@ export type CommitOptions = {
44
44
  type ReadTransaction = (LMDBTransaction | RocksTransaction) & {
45
45
  openTimer?: number;
46
46
  retryRisk?: number;
47
+ isDone?: boolean;
48
+ isCommitted?: boolean;
47
49
  };
48
50
 
49
51
  export type TransactionWrite = {
50
52
  key: Id;
51
- store: RootDatabaseKind;
53
+ store: any; // using any here because of circular dependency and complex RootDatabaseKind
52
54
  invalidated?: boolean;
53
55
  entry?: Partial<Entry>;
54
56
  before?: () => void | Promise<void>;
55
57
  beforeIntermediate?: () => void | Promise<void>;
56
- commit?: (txnTime: number, existingEntry: Entry, retry: boolean, transaction: RocksTransaction) => void;
58
+ commit?: (txnTime: number, existingEntry: Partial<Entry>, retry: boolean, transaction: any) => void;
57
59
  validate?: (txnTime: number) => void;
58
60
  fullUpdate?: boolean;
59
61
  saved?: boolean;
60
62
  deferSave?: boolean;
63
+ nodeName?: string;
64
+ nodeId?: number;
65
+ promise?: Promise<any>;
66
+ result?: any;
61
67
  // blobs that were pre-saved as part of this write; used to clean up files if the commit is skipped or aborted
62
68
  savedBlobs?: Blob[];
63
69
  // the commit handler's most recent decision: true means it took an early-return that left savedBlobs unreferenced.
@@ -95,7 +101,7 @@ export class DatabaseTransaction implements Transaction {
95
101
  this.readTxnRefCount = (this.readTxnRefCount || 0) + 1;
96
102
  this.timeout = txnExpiration; // reset the timeout
97
103
  if (this.transaction) {
98
- if (this.transaction.openTimer) this.transaction.openTimer = 0;
104
+ if ((this.transaction as any).openTimer) (this.transaction as any).openTimer = 0;
99
105
  return this.transaction;
100
106
  }
101
107
  if (this.open !== TRANSACTION_STATE.OPEN) return; // can not start a new read transaction as there is no future commit that will take place, just have to allow the read to latest database state
@@ -110,7 +116,7 @@ export class DatabaseTransaction implements Transaction {
110
116
  if (DEBUG_LONG_TXNS) {
111
117
  this.stackTraces = [new StartedTransaction()];
112
118
  }
113
- if (this.transaction.openTimer) this.transaction.openTimer = 0;
119
+ if ((this.transaction as any).openTimer) (this.transaction as any).openTimer = 0;
114
120
  trackedTxns.add(this);
115
121
  return this.transaction;
116
122
  }
@@ -157,7 +163,13 @@ export class DatabaseTransaction implements Transaction {
157
163
  this.writes.push(operation);
158
164
  if (!operation.deferSave) {
159
165
  // Setting saved to false means to defer saving
160
- this.save(operation);
166
+ const saveResult: any = this.save(operation);
167
+ if (saveResult?.then) {
168
+ // When the transaction is already committed (immediateCommit path), save() returns
169
+ // the commit promise. Propagate it so callers can await the actual write being
170
+ // committed rather than resolving before it is durable.
171
+ return saveResult.then(() => operation);
172
+ }
161
173
  }
162
174
  return operation;
163
175
  }
@@ -184,7 +196,7 @@ export class DatabaseTransaction implements Transaction {
184
196
  }
185
197
  if (this.retries > 0) {
186
198
  // This marks the Rocks transaction as a retry so we don't write the transaction log again
187
- transaction.isRetry = true;
199
+ (transaction as any).isRetry = true;
188
200
  }
189
201
  if (!txnTime) txnTime = this.timestamp = transaction.getTimestamp();
190
202
  if (reloadEntry || operation.entry === undefined) {
@@ -193,7 +205,7 @@ export class DatabaseTransaction implements Transaction {
193
205
  if (!operation.saved) {
194
206
  operation.saved = true;
195
207
  // immediately execute in this transaction
196
- if (operation.validate?.(txnTime) === false) {
208
+ if ((operation.validate?.(txnTime) as any) === false) {
197
209
  operation.commit = () => {}; // noop if we try again
198
210
  return;
199
211
  }
@@ -215,7 +227,7 @@ export class DatabaseTransaction implements Transaction {
215
227
  let transaction = options.transaction ?? this.transaction; // we need to preserve this transaction as we might to resurrect it if we have to retry
216
228
  for (let i = 0; i < this.writes.length; i++) {
217
229
  let operation = this.writes[i];
218
- if (this.retries === 0 && operation.saved) continue;
230
+ if (!operation || (this.retries === 0 && operation.saved)) continue;
219
231
  this.save(operation, transaction, i < this.validated);
220
232
  }
221
233
  this.validated = this.writes.length;
@@ -252,10 +264,18 @@ export class DatabaseTransaction implements Transaction {
252
264
  trackedTxns.delete(this);
253
265
  this.transaction = null; // clear transaction so any further operations operate immediately
254
266
  if (transaction) {
267
+ this.writes = this.writes.filter((write) => write); // filter out removed entries
255
268
  if (this.writes.length > 0) {
256
269
  commitResolution = transaction.commit();
257
270
  } else {
258
- commitResolution = transaction.abort();
271
+ try {
272
+ commitResolution = transaction.abort();
273
+ } catch {
274
+ // The transaction has uncommitted writes that were already cleared from
275
+ // this.writes by a concurrent immediate-commit path (e.g. writes made with
276
+ // an explicitly-reused closed transaction). Those writes are handled by the
277
+ // concurrent commit, so there is nothing left to do here.
278
+ }
259
279
  }
260
280
  }
261
281
  }
@@ -276,7 +296,7 @@ export class DatabaseTransaction implements Transaction {
276
296
  const completions = [];
277
297
  return commitResolution.then(
278
298
  () => {
279
- transaction.onCommit?.();
299
+ (transaction as any).onCommit?.();
280
300
  if (this.next) {
281
301
  completions.push(this.next.commit(options));
282
302
  }
@@ -292,7 +312,7 @@ export class DatabaseTransaction implements Transaction {
292
312
  completions.push(
293
313
  confirmReplication(
294
314
  databaseName,
295
- lastWrite.store.getEntry(lastWrite.key).version,
315
+ (lastWrite.store.getEntry(lastWrite.key) as any).version,
296
316
  this.replicatedConfirmation
297
317
  )
298
318
  );
@@ -335,6 +355,11 @@ export class DatabaseTransaction implements Transaction {
335
355
  }
336
356
  );
337
357
  }
358
+ for (const write of this.writes) {
359
+ if (write?.skipped && write?.savedBlobs) cleanupUnusedBlobs(write.savedBlobs);
360
+ }
361
+ this.writes = [];
362
+ if (this.#context?.resourceCache) this.#context.resourceCache = null;
338
363
  const txnResolution: CommitResolution = {
339
364
  txnTime: this.timestamp,
340
365
  };
@@ -342,18 +367,16 @@ export class DatabaseTransaction implements Transaction {
342
367
  // now run any other transactions
343
368
  options.timestamp = this.timestamp;
344
369
  const nextResolution = this.next?.commit(options);
345
- if (nextResolution?.then)
346
- return nextResolution?.then((nextResolution) => ({
370
+ if ((nextResolution as any)?.then)
371
+ return (nextResolution as any)?.then((nextResolution) => ({
347
372
  txnTime: this.timestamp,
348
373
  next: nextResolution,
349
374
  }));
350
- txnResolution.next = nextResolution;
375
+ txnResolution.next = nextResolution as any;
351
376
  }
352
377
  return txnResolution;
353
378
  },
354
379
  (error) => {
355
- // before/beforeIntermediate (e.g. blob save) failed; abort to clean up pre-saved blob files
356
- // and the underlying transaction so it doesn't leak.
357
380
  this.abort();
358
381
  throw error;
359
382
  }
@@ -362,7 +385,6 @@ export class DatabaseTransaction implements Transaction {
362
385
  abort(): void {
363
386
  while (this.readTxnsUsed > 0) this.doneReadTxn(); // release the read snapshot when we abort, we assume we don't need it
364
387
  this.open = TRANSACTION_STATE.CLOSED;
365
- // any blobs that were pre-saved as part of these writes will never be referenced; schedule deletion
366
388
  for (const write of this.writes) {
367
389
  if (write?.savedBlobs) cleanupUnusedBlobs(write.savedBlobs);
368
390
  }
@@ -396,10 +418,11 @@ export class ImmediateTransaction extends DatabaseTransaction {
396
418
  super();
397
419
  this.db = db;
398
420
  }
399
- save(transaction: ImmediateTransaction) {
421
+ save(...args: any[]): any {
422
+ const transaction = args[0];
400
423
  if (this.isCommitting) {
401
424
  // if we are in the commit, do the save and force a reload so we get a read within the transaction
402
- super.save(transaction, null, true);
425
+ super.save(transaction, null as any, true);
403
426
  } else {
404
427
  this.isCommitting = true;
405
428
  return when(this.commit(), () => {
@@ -408,10 +431,15 @@ export class ImmediateTransaction extends DatabaseTransaction {
408
431
  }
409
432
  }
410
433
 
434
+ declare _timestamp: number;
435
+ // @ts-expect-error accessor overriding property
411
436
  get timestamp() {
412
437
  return this._timestamp || (this._timestamp = getNextMonotonicTime());
413
438
  }
414
- getReadTxn() {
439
+ set timestamp(value: number) {
440
+ this._timestamp = value;
441
+ }
442
+ getReadTxn(): any {
415
443
  return; // no transaction means read latest
416
444
  }
417
445
  }
@@ -422,10 +450,10 @@ function startMonitoringTxns() {
422
450
  timer = setInterval(function () {
423
451
  for (const txn of trackedTxns) {
424
452
  if (txn.timeout <= 0) {
425
- const url = txn.getContext()?.url;
453
+ const url = (txn.getContext() as any)?.url;
426
454
  harperLogger.error(
427
455
  `Transaction was open too long and has been committed, from table: ${
428
- txn.db?.name + (url ? ' path: ' + url : '')
456
+ (txn.db as any)?.name + (url ? ' path: ' + url : '')
429
457
  }`,
430
458
  ...(txn.startedFrom ? [`was started from ${txn.startedFrom.resourceName}.${txn.startedFrom.method}`] : []),
431
459
  ...(DEBUG_LONG_TXNS ? ['starting stack trace', txn.stackTraces] : [])
@@ -433,8 +461,8 @@ function startMonitoringTxns() {
433
461
  // reset the transaction
434
462
  try {
435
463
  const result = txn.commit();
436
- if (result?.then) {
437
- result.catch((error) => {
464
+ if ((result as any)?.then) {
465
+ (result as any).catch((error) => {
438
466
  harperLogger.debug?.(`Error committing timed out transaction: ${error.message}`);
439
467
  });
440
468
  }
@@ -5,9 +5,10 @@ import type { Context } from './ResourceInterface.ts';
5
5
  * to access endpoints/resources that had an internal error in their configuration or setup. This helps ensure that
6
6
  * if there is a problem with a resource, it is immediately apparent and can be fixed.
7
7
  */
8
- export class ErrorResource implements Resource {
8
+ export class ErrorResource extends Resource {
9
9
  error: Error;
10
10
  constructor(error: Error) {
11
+ super(null as any, null);
11
12
  this.error = error;
12
13
  }
13
14
  isError = true;
@@ -1,4 +1,3 @@
1
- import { Transaction as LMDBNativeTransaction } from 'lmdb';
2
1
  import {
3
2
  DatabaseTransaction,
4
3
  type CommitOptions,
@@ -6,8 +5,8 @@ import {
6
5
  type CommitResolution,
7
6
  } from './DatabaseTransaction';
8
7
  import { cleanupUnusedBlobs } from './blob.ts';
9
- import { getNextMonotonicTime } from '../utility/lmdb/commonUtility.js';
10
- import * as harperLogger from '../utility/logging/harper_logger.js';
8
+ import { getNextMonotonicTime } from '../utility/lmdb/commonUtility.ts';
9
+ import * as harperLogger from '../utility/logging/harper_logger.ts';
11
10
  import type { Context } from './ResourceInterface.ts';
12
11
  import { Transaction as RocksTransaction } from '@harperfast/rocksdb-js';
13
12
  import type { RootDatabaseKind } from './databases.ts';
@@ -25,11 +24,6 @@ export function replicationConfirmation(callback) {
25
24
  confirmReplication = callback;
26
25
  }
27
26
 
28
- type ReadTransaction = LMDBNativeTransaction & {
29
- openTimer?: number;
30
- retryRisk?: number;
31
- };
32
-
33
27
  export class LMDBTransaction extends DatabaseTransaction {
34
28
  #context: Context;
35
29
  writes: TransactionWrite[] = []; // the set of writes to commit if the conditions are met
@@ -37,33 +31,33 @@ export class LMDBTransaction extends DatabaseTransaction {
37
31
  _timestamp = 0;
38
32
  declare next: DatabaseTransaction;
39
33
  declare stale: boolean;
40
- overloadChecked: boolean;
34
+ declare overloadChecked: boolean;
41
35
  open = TRANSACTION_STATE.OPEN;
42
36
 
43
- getReadTxn(): ReadTransaction {
37
+ getReadTxn(): any {
44
38
  // used optimistically
45
39
  this.readTxnRefCount = (this.readTxnRefCount || 0) + 1;
46
40
  this.timeout = txnExpiration; // reset the timeout
47
41
  if (this.stale) this.stale = false;
48
42
  if (this.readTxn) {
49
- if (this.readTxn.openTimer) this.readTxn.openTimer = 0;
43
+ if ((this.readTxn as any).openTimer) (this.readTxn as any).openTimer = 0;
50
44
  return this.readTxn;
51
45
  }
52
46
  if (this.open !== TRANSACTION_STATE.OPEN) return; // can not start a new read transaction as there is no future commit that will take place, just have to allow the read to latest database state
53
47
 
54
48
  // Get a read transaction from lmdb-js; make sure we do this first, as it can fail, we don't want to leave the transaction in a bad state with readTxnsUsed > 0
55
- this.readTxn = this.db.useReadTransaction();
49
+ this.readTxn = (this.db as any).useReadTransaction();
56
50
 
57
51
  this.readTxnsUsed = 1;
58
- if (this.readTxn.openTimer) this.readTxn.openTimer = 0;
59
- trackedTxns.add(this);
52
+ if ((this.readTxn as any).openTimer) (this.readTxn as any).openTimer = 0;
53
+ trackedTxns.add(this as any);
60
54
  return this.readTxn;
61
55
  }
62
56
 
63
57
  useReadTxn() {
64
58
  this.getReadTxn();
65
59
  if (this.readTxn) {
66
- (this.readTxn as LMDBTransaction).use();
60
+ (this.readTxn as any).use();
67
61
  this.readTxnsUsed++;
68
62
  }
69
63
  return this.readTxn;
@@ -74,10 +68,10 @@ export class LMDBTransaction extends DatabaseTransaction {
74
68
  if (this.readTxn instanceof RocksTransaction) {
75
69
  // TODO: Implement this for RocksDB
76
70
  } else {
77
- (this.readTxn as LMDBTransaction).done();
71
+ (this.readTxn as any).done();
78
72
  }
79
73
  if (--this.readTxnsUsed === 0) {
80
- trackedTxns.delete(this);
74
+ trackedTxns.delete(this as any);
81
75
  this.readTxn = null;
82
76
  }
83
77
  }
@@ -88,7 +82,7 @@ export class LMDBTransaction extends DatabaseTransaction {
88
82
  }
89
83
  }
90
84
 
91
- addWrite(operation: TransactionWrite) {
85
+ addWrite(operation: TransactionWrite): any {
92
86
  if (this.open === TRANSACTION_STATE.CLOSED) {
93
87
  throw new Error('Can not use a transaction that is no longer open');
94
88
  }
@@ -97,7 +91,13 @@ export class LMDBTransaction extends DatabaseTransaction {
97
91
  // if the transaction is lingering, it is already committed, so we need to commit the write immediately
98
92
  const immediateTxn = new ImmediateTransaction(this.db);
99
93
  immediateTxn.addWrite(operation);
100
- return immediateTxn.commit({});
94
+ const result = immediateTxn.commit({});
95
+ if (result?.then) {
96
+ operation.promise = result;
97
+ } else {
98
+ operation.result = result;
99
+ }
100
+ return result;
101
101
  }
102
102
 
103
103
  this.writes.push(operation); // standard path, add to current transaction
@@ -111,7 +111,8 @@ export class LMDBTransaction extends DatabaseTransaction {
111
111
  /**
112
112
  * Resolves with information on the timestamp and success of the commit
113
113
  */
114
- commit(options: CommitOptions = {}): Promise<CommitResolution> {
114
+ commit(options: CommitOptions = {}): any {
115
+ options = options || {};
115
116
  let txnTime = this.timestamp;
116
117
  if (!txnTime) txnTime = this.timestamp = options.timestamp || getNextMonotonicTime();
117
118
  if (!options.timestamp) options.timestamp = txnTime;
@@ -190,7 +191,11 @@ export class LMDBTransaction extends DatabaseTransaction {
190
191
  write.entry = write.store.getEntry(write.key);
191
192
  }
192
193
 
193
- const conditionResolution = write.store.ifVersion(write.key, write.entry?.version ?? null, nextCondition);
194
+ const conditionResolution = (write.store as any).ifVersion(
195
+ write.key,
196
+ write.entry?.version ?? null,
197
+ nextCondition
198
+ );
194
199
  resolution = resolution || conditionResolution;
195
200
  } else {
196
201
  nextCondition();
@@ -249,7 +254,7 @@ export class LMDBTransaction extends DatabaseTransaction {
249
254
  completions.push(
250
255
  confirmReplication(
251
256
  databaseName,
252
- lastWrite.store.getEntry(lastWrite.key).localTime,
257
+ (lastWrite.store.getEntry(lastWrite.key) as any).localTime,
253
258
  this.replicatedConfirmation
254
259
  )
255
260
  );
@@ -286,12 +291,12 @@ export class LMDBTransaction extends DatabaseTransaction {
286
291
  if (this.next) {
287
292
  // now run any other transactions
288
293
  const nextResolution = this.next?.commit(options);
289
- if (nextResolution?.then)
290
- return nextResolution?.then((nextResolution) => ({
294
+ if ((nextResolution as any)?.then)
295
+ return (nextResolution as any)?.then((nextResolution) => ({
291
296
  txnTime,
292
297
  next: nextResolution,
293
298
  }));
294
- txnResolution.next = nextResolution;
299
+ txnResolution.next = nextResolution as any;
295
300
  }
296
301
  return txnResolution;
297
302
  }
@@ -305,7 +310,7 @@ export class LMDBTransaction extends DatabaseTransaction {
305
310
  // reset the transaction
306
311
  this.writes = [];
307
312
  }
308
- save() {
313
+ save(..._args: any[]): any {
309
314
  // noop for LMDB
310
315
  }
311
316
  }
@@ -315,12 +320,16 @@ export class ImmediateTransaction extends LMDBTransaction {
315
320
  super();
316
321
  this.db = db;
317
322
  }
318
- save(_transaction: ImmediateTransaction, _isRetry = false) {
323
+ save(..._args: any[]): any {
319
324
  return this.commit();
320
325
  }
326
+ // @ts-expect-error accessor overriding property
321
327
  get timestamp() {
322
328
  return this._timestamp || (this._timestamp = getNextMonotonicTime());
323
329
  }
330
+ set timestamp(value: number) {
331
+ this._timestamp = value;
332
+ }
324
333
  getReadTxn() {
325
334
  return; // no transaction means read latest
326
335
  }
@@ -333,10 +342,10 @@ function startMonitoringTxns() {
333
342
  timer = setInterval(function () {
334
343
  for (const txn of trackedTxns) {
335
344
  if (txn.timeout <= 0) {
336
- const url = txn.getContext()?.url;
345
+ const url = (txn.getContext() as any)?.url;
337
346
  harperLogger.error(
338
347
  `Transaction was open too long and has been committed, from table: ${
339
- txn.db?.name + (url ? ' path: ' + url : '')
348
+ (txn.db as any)?.name + (url ? ' path: ' + url : '')
340
349
  }`
341
350
  );
342
351
  // reset the transaction
@@ -6,8 +6,7 @@
6
6
  */
7
7
 
8
8
  import { Encoder } from 'msgpackr';
9
- import { get as envGet } from '../utility/environment/environmentManager.js';
10
- import { CONFIG_PARAMS } from '../utility/hdbTerms.ts';
9
+ import { createStructon } from 'structon';
11
10
  import {
12
11
  HAS_PREVIOUS_RESIDENCY_ID,
13
12
  HAS_CURRENT_RESIDENCY_ID,
@@ -17,7 +16,7 @@ import {
17
16
  ACTION_32_BIT,
18
17
  HAS_ADDITIONAL_AUDIT_REFS as HAS_ADDITIONAL_AUDIT_REFS_AUDIT,
19
18
  } from './auditStore.ts';
20
- import * as harperLogger from '../utility/logging/harper_logger.js';
19
+ import * as harperLogger from '../utility/logging/harper_logger.ts';
21
20
  import './blob.ts';
22
21
  import {
23
22
  blobsWereEncoded,
@@ -31,6 +30,10 @@ import { getThisNodeId } from './nodeIdMapping.ts';
31
30
  import { recordAction } from './analytics/write.ts';
32
31
  import { RocksDatabase } from '@harperfast/rocksdb-js';
33
32
  import { when } from '../utility/when.ts';
33
+ import { CONFIG_PARAMS } from '../utility/hdbTerms.ts';
34
+ import * as envMngr from '../utility/environment/environmentManager.js';
35
+
36
+ const StructonEncoder = createStructon(Encoder) as typeof Encoder;
34
37
  export type Entry = {
35
38
  key: any;
36
39
  value: any;
@@ -42,6 +45,7 @@ export type Entry = {
42
45
  residencyId: number;
43
46
  size: number;
44
47
  deref?: () => any;
48
+ [METADATA]?: any;
45
49
  additionalAuditRefs?: Array<{ version: number; nodeId: number }>;
46
50
  };
47
51
 
@@ -82,7 +86,11 @@ let timestampNextEncoding = 0,
82
86
  additionalAuditRefsNextEncoding: Array<{ version: number; nodeId: number }> | undefined;
83
87
  // tracking metadata with a singleton works better than trying to alter response of getEntry/get and coordinating that across caching layers
84
88
  export let lastMetadata: Entry | null = null;
85
- export class RecordEncoder extends Encoder {
89
+ export class RecordEncoder extends StructonEncoder {
90
+ rootStore: any;
91
+ declare saveStructures: any;
92
+ declare getStructures: any;
93
+ declare _writeStruct: any;
86
94
  structureUpdate?: any;
87
95
  isRocksDB: boolean;
88
96
  name: string;
@@ -92,16 +100,6 @@ export class RecordEncoder extends Encoder {
92
100
  // long-lived primary store, so a wide/sparse schema (whose records vary by per-field value
93
101
  // width) can grow it unbounded and exhaust memory. Caller-overridable; default caps it.
94
102
  options.maxOwnStructures ??= 256;
95
- // When random-access fields are disabled (storage.randomAccessFields=false), write records as
96
- // classic shared structures instead of typed random-access structures. randomAccessStructure stays
97
- // on so reads still decode either form — existing typed-struct data remains readable; only new
98
- // writes change. lmdb-js does not forward non-whitelisted encoder options, so the flag is derived
99
- // from the global config here rather than passed through the store options. Read at construction
100
- // (DBI open, a cold path) so env/CLI config overrides are applied; an explicit option still wins
101
- // (e.g. rocksdb-js's option spread, or tests).
102
- if (options.readOnlyStructures === undefined && envGet(CONFIG_PARAMS.STORAGE_RANDOMACCESSFIELDS) === false) {
103
- options.readOnlyStructures = true;
104
- }
105
103
  /**
106
104
  * The base class for records that provides the read-only methods for accessing
107
105
  * metadata and will be assigned computed property getters. On its own, these instances
@@ -119,6 +117,16 @@ export class RecordEncoder extends Encoder {
119
117
 
120
118
  options.structPrototype = RecordObject.prototype;
121
119
  super(options);
120
+ // structon (the StructonEncoder base) always installs the struct write hook. For DBIs
121
+ // that don't opt into struct mode (non-primary, e.g. __dbis__), force it to bail (return
122
+ // 0) so objects are written in plain msgpackr records mode — decodable by readers without
123
+ // struct support (msgpackr v1 / Harper v4 downgrade). We make it bail rather than clear
124
+ // it so msgpackr keeps the struct-safe integer boundary: top-level integers 0x20-0x3f are
125
+ // written as uint8 rather than bare fixints, which the retained struct READ hook would
126
+ // otherwise misread as struct headers (e.g. a scalar NEXT_TABLE_ID >= 32 in __dbis__).
127
+ // The read hook stays intact so records already written in struct mode by a prior v5 still
128
+ // decode.
129
+ if (!options.randomAccessStructure) this._writeStruct = () => 0;
122
130
  const superEncode = this.encode;
123
131
  this.encode = function (record, options?) {
124
132
  // this handles our custom metadata encoding, prefixing the record with metadata, including the local
@@ -226,9 +234,9 @@ export class RecordEncoder extends Encoder {
226
234
  // We must report a non-commit as `false` (not the buggy `undefined`, which msgpackr
227
235
  // reads as success and then writes a record referencing a structure that was never
228
236
  // saved → later "Record id is not defined" on decode). Returning `false` makes msgpackr
229
- // re-pack; paired with msgpackr 1.11.14's structures-rebuild-on-save-failure fix, the
230
- // re-pack reloads the durable structures, rebuilds the transition trie, re-mints, and
231
- // re-saves — so the record always references a persisted structure.
237
+ // re-pack; paired with the msgpackr fix that marks structures uninitialized on
238
+ // save-failure, the re-pack reloads the durable structures, rebuilds the transition
239
+ // trie, re-mints, and re-saves — so the record always references a persisted structure.
232
240
  const committed = this.rootStore.transactionSync(
233
241
  (txn) => {
234
242
  const sharedStructuresKey = [Symbol.for('structures'), this.name];
@@ -283,7 +291,7 @@ export class RecordEncoder extends Encoder {
283
291
  // timestamped record (8 bytes stripped → corrupt). Callers that pass a value known to have no
284
292
  // prefix (e.g. the audit store's getValue) set options.noMetadata to skip the heuristic. Typed
285
293
  // structs start at 0x20-0x3f and never hit this, which is why it only surfaces with classic
286
- // structures (random-access fields off).
294
+ // structures (typed structures off).
287
295
  if (!options?.noMetadata && ((this.isRocksDB && nextByte === 66) || (nextByte < 32 && end > 2))) {
288
296
  // record with metadata
289
297
  // this means that the record starts with a local timestamp (that was assigned by lmdb-js).
@@ -370,7 +378,7 @@ export class RecordEncoder extends Encoder {
370
378
  additionalAuditRefs,
371
379
  size: end - start,
372
380
  value,
373
- };
381
+ } as any;
374
382
  if (this.isRocksDB) return lastMetadata;
375
383
  return value;
376
384
  } // else a normal entry
@@ -381,21 +389,6 @@ export class RecordEncoder extends Encoder {
381
389
  }
382
390
  }
383
391
  }
384
-
385
- /**
386
- * Encoder for custom-index object stores (e.g. HNSW vector graphs). These hold fixed-shape internal
387
- * nodes — numeric-keyed per-level connection arrays and quantized bins — that depend on random-access
388
- * struct encoding and are mutated in place during graph maintenance. Keep them writing typed structs
389
- * even when storage.randomAccessFields disables structs for user tables: their node shapes are
390
- * controlled, so the wide/heterogeneous OOM risk that motivates opt-out doesn't apply, and classic
391
- * (frozen) decoding would break the in-place graph mutation.
392
- */
393
- export class IndexRecordEncoder extends RecordEncoder {
394
- constructor(options) {
395
- options.readOnlyStructures = false;
396
- super(options);
397
- }
398
- }
399
392
  function getTimestamp() {
400
393
  TIMESTAMP_HOLDER[0] = TIMESTAMP_HOLDER[0] ^ 0x40; // restore the first byte, we xor to differentiate the first byte from structures
401
394
  return TIMESTAMP_VIEW.getFloat64(0);
@@ -536,6 +529,7 @@ export function handleLocalTimeForGets(store, rootStore) {
536
529
  use.call(this);
537
530
  };
538
531
  Txn.prototype.done = function () {
532
+ if (this.isDone) return;
539
533
  done.call(this);
540
534
  this.openTimer = 0; // reset so idle pool time doesn't accumulate toward the stale-open threshold
541
535
  if (this.isDone) {
@@ -554,16 +548,18 @@ export function handleLocalTimeForGets(store, rootStore) {
554
548
  return store;
555
549
  }
556
550
  const trackedTxns: WeakRef<any>[] = [];
557
- setInterval(() => {
551
+ const configValue = envMngr.get(CONFIG_PARAMS.STORAGE_MAX_READ_TRANSACTION_OPEN_TIME) ?? 300000;
552
+ let READ_TXN_TIMEOUT_TICKS = Math.round(configValue / 15000);
553
+ export function checkReadTxnTimeouts() {
558
554
  for (let i = 0; i < trackedTxns.length; i++) {
559
555
  const txn = trackedTxns[i].deref();
560
556
  if (!txn || txn.isDone || txn.isCommitted) trackedTxns.splice(i--, 1);
561
557
  else if (txn.notCurrent) {
562
558
  if (txn.openTimer) {
563
559
  if (txn.openTimer > 3) {
564
- if (txn.openTimer > 60) {
560
+ if (txn.openTimer > READ_TXN_TIMEOUT_TICKS) {
565
561
  harperLogger.error(
566
- 'Read transaction detected that has been open too long (over 15 minutes), ending transaction',
562
+ `Read transaction detected that has been open too long (over ${Math.round(READ_TXN_TIMEOUT_TICKS * 15)} seconds), ending transaction`,
567
563
  txn
568
564
  );
569
565
  trackedTxns.splice(i--, 1);
@@ -584,7 +580,12 @@ setInterval(() => {
584
580
  } else txn.openTimer = 1;
585
581
  }
586
582
  }
587
- }, 15000).unref();
583
+ }
584
+ setInterval(checkReadTxnTimeouts, 15000).unref();
585
+ export function setReadTxnExpiration(ms: number) {
586
+ READ_TXN_TIMEOUT_TICKS = Math.round(ms / 15000);
587
+ return trackedTxns;
588
+ }
588
589
  export function setNextEncoding(timestamp: number, metadata: number, expiresAt = -1, nodeId = -1, residencyId = 0) {
589
590
  timestampNextEncoding = timestamp;
590
591
  metadataInNextEncoding = metadata;
@@ -632,6 +633,7 @@ export function recordUpdater(store, tableId, auditStore) {
632
633
  version: number;
633
634
  instructedWrite?: boolean;
634
635
  ifVersion?: number;
636
+ transaction?: any;
635
637
  } = {
636
638
  version: newVersion,
637
639
  instructedWrite: timestampNextEncoding > 0,
@@ -647,7 +649,7 @@ export function recordUpdater(store, tableId, auditStore) {
647
649
  metadataInNextEncoding |= HAS_RESIDENCY_ID;
648
650
  extendedType |= HAS_CURRENT_RESIDENCY_ID;
649
651
  } else residencyIdAtNextEncoding = 0;
650
- const nodeId = options?.nodeId;
652
+ const nodeId = options?.nodeId ?? (audit ? getThisNodeId(auditStore) : undefined);
651
653
  if (nodeId >= 0) {
652
654
  nodeIdAtNextEncoding = nodeId;
653
655
  metadataInNextEncoding |= HAS_NODE_ID;
@@ -15,6 +15,8 @@ export class RequestTarget extends URLSearchParams {
15
15
  /** Request best effort and returning synchronously */
16
16
  declare syncAllowed?: boolean;
17
17
 
18
+ declare sync?: boolean;
19
+
18
20
  /** Indicates that this is a request to query for collection of records */
19
21
  isCollection?: boolean;
20
22
  // these are query parameters