@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.
- package/README.md +11 -10
- package/agent/agent.ts +203 -0
- package/agent/loop.ts +205 -0
- package/agent/operations.ts +148 -0
- package/agent/session.ts +187 -0
- package/agent/tools/fsTools.ts +276 -0
- package/agent/tools/httpFetchTool.ts +112 -0
- package/agent/tools/scheduleTool.ts +68 -0
- package/agent/toolset.ts +43 -0
- package/agent/types.ts +85 -0
- package/bin/{BinObjects.js → BinObjects.ts} +4 -5
- package/bin/cliCredentials.ts +133 -0
- package/bin/cliOperations.ts +339 -0
- package/bin/copyDb.ts +10 -10
- package/bin/deployRenderer.ts +196 -0
- package/bin/{harper.js → harper.ts} +43 -19
- package/bin/{install.js → install.ts} +3 -3
- package/bin/lite.ts +2 -0
- package/bin/login.ts +134 -0
- package/bin/logout.ts +11 -0
- package/bin/mcp/client.ts +407 -0
- package/bin/mcp/doctor.ts +189 -0
- package/bin/mcp/index.ts +80 -0
- package/bin/mcp/options.ts +122 -0
- package/bin/mcp/printConfig.ts +89 -0
- package/bin/multipartBuilder.ts +74 -0
- package/bin/{restart.js → restart.ts} +27 -28
- package/bin/{run.js → run.ts} +41 -30
- package/bin/sseConsumer.ts +126 -0
- package/bin/{status.js → status.ts} +10 -10
- package/bin/{stop.js → stop.ts} +5 -5
- package/bin/upgrade.js +17 -24
- package/components/Application.ts +144 -18
- package/components/ApplicationScope.ts +2 -2
- package/components/ComponentV1.ts +2 -2
- package/components/EntryHandler.ts +159 -9
- package/components/OptionsWatcher.ts +75 -11
- package/components/Scope.ts +132 -18
- package/components/anthropic/index.ts +547 -0
- package/components/bedrock/index.ts +823 -0
- package/components/componentLoader.ts +64 -32
- package/components/deployLifecycle.ts +161 -0
- package/components/deploymentOperations.ts +173 -0
- package/components/deploymentRecorder.ts +427 -0
- package/components/deriveURLPath.ts +4 -4
- package/components/mcp/adapters/fastify.ts +87 -0
- package/components/mcp/adapters/harperHttp.ts +103 -0
- package/components/mcp/audit.ts +75 -0
- package/components/mcp/index.ts +134 -0
- package/components/mcp/jsonrpc.ts +134 -0
- package/components/mcp/lifecycle.ts +105 -0
- package/components/mcp/listChanged.ts +270 -0
- package/components/mcp/rateLimit.ts +217 -0
- package/components/mcp/resources.ts +607 -0
- package/components/mcp/session.ts +151 -0
- package/components/mcp/sessionRegistry.ts +140 -0
- package/components/mcp/toolRegistry.ts +294 -0
- package/components/mcp/tools/application.ts +761 -0
- package/components/mcp/tools/operations.ts +311 -0
- package/components/mcp/tools/schemas/derive.ts +356 -0
- package/components/mcp/tools/schemas/operationDescriptions.ts +241 -0
- package/components/mcp/tools/schemas/operations.ts +301 -0
- package/components/mcp/transport.ts +517 -0
- package/components/ollama/index.ts +316 -0
- package/components/openai/index.ts +563 -0
- package/components/operations.js +217 -60
- package/components/operationsValidation.js +12 -4
- package/components/packageComponent.ts +97 -29
- package/components/requestRestart.ts +17 -2
- package/components/status/crossThread.ts +14 -5
- package/components/status/errors.ts +1 -1
- package/config/RootConfigWatcher.ts +56 -2
- package/config/configUtils.js +29 -8
- package/config/harperConfigEnvVars.ts +1 -1
- package/config-root.schema.json +78 -4
- package/dataLayer/{CreateAttributeObject.js → CreateAttributeObject.ts} +4 -3
- package/dataLayer/{CreateTableObject.js → CreateTableObject.ts} +2 -1
- package/dataLayer/{DataLayerObjects.js → DataLayerObjects.ts} +17 -9
- package/dataLayer/{DeleteBeforeObject.js → DeleteBeforeObject.ts} +2 -1
- package/dataLayer/{DeleteObject.js → DeleteObject.ts} +3 -2
- package/dataLayer/{DropAttributeObject.js → DropAttributeObject.ts} +2 -1
- package/dataLayer/{GetBackupObject.js → GetBackupObject.ts} +3 -2
- package/dataLayer/{InsertObject.js → InsertObject.ts} +3 -2
- package/dataLayer/{ReadAuditLogObject.js → ReadAuditLogObject.ts} +3 -2
- package/dataLayer/{SQLSearch.js → SQLSearch.ts} +97 -43
- package/dataLayer/{SearchByConditionsObject.js → SearchByConditionsObject.ts} +5 -6
- package/dataLayer/{SearchByHashObject.js → SearchByHashObject.ts} +2 -1
- package/dataLayer/{SearchObject.js → SearchObject.ts} +2 -1
- package/dataLayer/{SqlSearchObject.js → SqlSearchObject.ts} +2 -1
- package/dataLayer/{UpdateObject.js → UpdateObject.ts} +3 -2
- package/dataLayer/{UpsertObject.js → UpsertObject.ts} +3 -2
- package/dataLayer/{bulkLoad.js → bulkLoad.ts} +40 -49
- package/dataLayer/{delete.js → delete.ts} +21 -26
- package/dataLayer/{export.js → export.ts} +22 -26
- package/dataLayer/{getBackup.js → getBackup.ts} +7 -9
- package/dataLayer/harperBridge/BridgeMethods.ts +102 -0
- package/dataLayer/harperBridge/ResourceBridge.ts +27 -26
- package/dataLayer/harperBridge/TableSizeObject.ts +1 -0
- package/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
- package/dataLayer/harperBridge/{harperBridge.js → harperBridge.ts} +3 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +8 -6
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +6 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +5 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +6 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +5 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +3 -2
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +10 -8
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +4 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +6 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +2 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +3 -2
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +5 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +6 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.ts +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
- package/dataLayer/{hdbInfoController.js → hdbInfoController.ts} +20 -26
- package/dataLayer/{insert.js → insert.ts} +24 -24
- package/dataLayer/{readAuditLog.js → readAuditLog.ts} +8 -10
- package/dataLayer/{schema.js → schema.ts} +32 -44
- package/dataLayer/{schemaDescribe.js → schemaDescribe.ts} +23 -26
- package/dataLayer/{search.js → search.ts} +9 -15
- package/dataLayer/{transaction.js → transaction.ts} +2 -5
- package/dataLayer/{update.js → update.ts} +19 -22
- package/dist/agent/agent.d.ts +35 -0
- package/dist/agent/agent.js +175 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/loop.d.ts +34 -0
- package/dist/agent/loop.js +176 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/operations.d.ts +17 -0
- package/dist/agent/operations.js +137 -0
- package/dist/agent/operations.js.map +1 -0
- package/dist/agent/session.d.ts +36 -0
- package/dist/agent/session.js +182 -0
- package/dist/agent/session.js.map +1 -0
- package/dist/agent/tools/fsTools.d.ts +19 -0
- package/dist/agent/tools/fsTools.js +286 -0
- package/dist/agent/tools/fsTools.js.map +1 -0
- package/dist/agent/tools/httpFetchTool.d.ts +9 -0
- package/dist/agent/tools/httpFetchTool.js +116 -0
- package/dist/agent/tools/httpFetchTool.js.map +1 -0
- package/dist/agent/tools/scheduleTool.d.ts +22 -0
- package/dist/agent/tools/scheduleTool.js +54 -0
- package/dist/agent/tools/scheduleTool.js.map +1 -0
- package/dist/agent/toolset.d.ts +24 -0
- package/dist/agent/toolset.js +33 -0
- package/dist/agent/toolset.js.map +1 -0
- package/dist/agent/types.d.ts +75 -0
- package/dist/agent/types.js +10 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/bin/BinObjects.d.ts +2 -2
- package/dist/bin/BinObjects.js +6 -3
- package/dist/bin/BinObjects.js.map +1 -1
- package/dist/bin/cliCredentials.d.ts +27 -0
- package/dist/bin/cliCredentials.js +130 -0
- package/dist/bin/cliCredentials.js.map +1 -0
- package/dist/bin/cliOperations.d.ts +7 -7
- package/dist/bin/cliOperations.js +251 -37
- package/dist/bin/cliOperations.js.map +1 -1
- package/dist/bin/copyDb.js +16 -16
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/bin/deployRenderer.d.ts +47 -0
- package/dist/bin/deployRenderer.js +185 -0
- package/dist/bin/deployRenderer.js.map +1 -0
- package/dist/bin/harper.d.ts +2 -1
- package/dist/bin/harper.js +87 -26
- package/dist/bin/harper.js.map +1 -1
- package/dist/bin/install.d.ts +1 -1
- package/dist/bin/install.js +41 -4
- package/dist/bin/install.js.map +1 -1
- package/dist/bin/lite.js +3 -4
- package/dist/bin/lite.js.map +1 -1
- package/dist/bin/login.d.ts +4 -0
- package/dist/bin/login.js +123 -0
- package/dist/bin/login.js.map +1 -0
- package/dist/bin/logout.d.ts +4 -0
- package/dist/bin/logout.js +16 -0
- package/dist/bin/logout.js.map +1 -0
- package/dist/bin/mcp/client.d.ts +34 -0
- package/dist/bin/mcp/client.js +395 -0
- package/dist/bin/mcp/client.js.map +1 -0
- package/dist/bin/mcp/doctor.d.ts +11 -0
- package/dist/bin/mcp/doctor.js +193 -0
- package/dist/bin/mcp/doctor.js.map +1 -0
- package/dist/bin/mcp/index.d.ts +10 -0
- package/dist/bin/mcp/index.js +81 -0
- package/dist/bin/mcp/index.js.map +1 -0
- package/dist/bin/mcp/options.d.ts +33 -0
- package/dist/bin/mcp/options.js +113 -0
- package/dist/bin/mcp/options.js.map +1 -0
- package/dist/bin/mcp/printConfig.d.ts +14 -0
- package/dist/bin/mcp/printConfig.js +85 -0
- package/dist/bin/mcp/printConfig.js.map +1 -0
- package/dist/bin/multipartBuilder.d.ts +26 -0
- package/dist/bin/multipartBuilder.js +55 -0
- package/dist/bin/multipartBuilder.js.map +1 -0
- package/dist/bin/restart.d.ts +3 -2
- package/dist/bin/restart.js +82 -45
- package/dist/bin/restart.js.map +1 -1
- package/dist/bin/run.d.ts +13 -9
- package/dist/bin/run.js +111 -65
- package/dist/bin/run.js.map +1 -1
- package/dist/bin/sseConsumer.d.ts +24 -0
- package/dist/bin/sseConsumer.js +127 -0
- package/dist/bin/sseConsumer.js.map +1 -0
- package/dist/bin/status.d.ts +1 -1
- package/dist/bin/status.js +48 -11
- package/dist/bin/status.js.map +1 -1
- package/dist/bin/stop.d.ts +1 -1
- package/dist/bin/stop.js +43 -6
- package/dist/bin/stop.js.map +1 -1
- package/dist/bin/upgrade.js +14 -22
- package/dist/bin/upgrade.js.map +1 -1
- package/dist/components/Application.d.ts +29 -17
- package/dist/components/Application.js +134 -28
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.js +2 -2
- package/dist/components/ComponentV1.d.ts +1 -1
- package/dist/components/ComponentV1.js +5 -5
- package/dist/components/ComponentV1.js.map +1 -1
- package/dist/components/EntryHandler.d.ts +26 -3
- package/dist/components/EntryHandler.js +153 -13
- package/dist/components/EntryHandler.js.map +1 -1
- package/dist/components/OptionsWatcher.d.ts +7 -2
- package/dist/components/OptionsWatcher.js +72 -10
- package/dist/components/OptionsWatcher.js.map +1 -1
- package/dist/components/Scope.d.ts +11 -6
- package/dist/components/Scope.js +112 -12
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/anthropic/index.d.ts +40 -0
- package/dist/components/anthropic/index.js +428 -0
- package/dist/components/anthropic/index.js.map +1 -0
- package/dist/components/bedrock/index.d.ts +79 -0
- package/dist/components/bedrock/index.js +734 -0
- package/dist/components/bedrock/index.js.map +1 -0
- package/dist/components/componentLoader.d.ts +29 -0
- package/dist/components/componentLoader.js +65 -38
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/deployLifecycle.d.ts +39 -0
- package/dist/components/deployLifecycle.js +156 -0
- package/dist/components/deployLifecycle.js.map +1 -0
- package/dist/components/deploymentOperations.d.ts +19 -0
- package/dist/components/deploymentOperations.js +185 -0
- package/dist/components/deploymentOperations.js.map +1 -0
- package/dist/components/deploymentRecorder.d.ts +97 -0
- package/dist/components/deploymentRecorder.js +425 -0
- package/dist/components/deploymentRecorder.js.map +1 -0
- package/dist/components/deriveURLPath.d.ts +2 -2
- package/dist/components/deriveURLPath.js +2 -2
- package/dist/components/deriveURLPath.js.map +1 -1
- package/dist/components/mcp/adapters/fastify.d.ts +35 -0
- package/dist/components/mcp/adapters/fastify.js +66 -0
- package/dist/components/mcp/adapters/fastify.js.map +1 -0
- package/dist/components/mcp/adapters/harperHttp.d.ts +38 -0
- package/dist/components/mcp/adapters/harperHttp.js +78 -0
- package/dist/components/mcp/adapters/harperHttp.js.map +1 -0
- package/dist/components/mcp/audit.d.ts +27 -0
- package/dist/components/mcp/audit.js +73 -0
- package/dist/components/mcp/audit.js.map +1 -0
- package/dist/components/mcp/index.d.ts +47 -0
- package/dist/components/mcp/index.js +109 -0
- package/dist/components/mcp/index.js.map +1 -0
- package/dist/components/mcp/jsonrpc.d.ts +71 -0
- package/dist/components/mcp/jsonrpc.js +93 -0
- package/dist/components/mcp/jsonrpc.js.map +1 -0
- package/dist/components/mcp/lifecycle.d.ts +69 -0
- package/dist/components/mcp/lifecycle.js +79 -0
- package/dist/components/mcp/lifecycle.js.map +1 -0
- package/dist/components/mcp/listChanged.d.ts +24 -0
- package/dist/components/mcp/listChanged.js +257 -0
- package/dist/components/mcp/listChanged.js.map +1 -0
- package/dist/components/mcp/rateLimit.d.ts +25 -0
- package/dist/components/mcp/rateLimit.js +226 -0
- package/dist/components/mcp/rateLimit.js.map +1 -0
- package/dist/components/mcp/resources.d.ts +90 -0
- package/dist/components/mcp/resources.js +526 -0
- package/dist/components/mcp/resources.js.map +1 -0
- package/dist/components/mcp/session.d.ts +36 -0
- package/dist/components/mcp/session.js +170 -0
- package/dist/components/mcp/session.js.map +1 -0
- package/dist/components/mcp/sessionRegistry.d.ts +63 -0
- package/dist/components/mcp/sessionRegistry.js +124 -0
- package/dist/components/mcp/sessionRegistry.js.map +1 -0
- package/dist/components/mcp/toolRegistry.d.ts +151 -0
- package/dist/components/mcp/toolRegistry.js +177 -0
- package/dist/components/mcp/toolRegistry.js.map +1 -0
- package/dist/components/mcp/tools/application.d.ts +72 -0
- package/dist/components/mcp/tools/application.js +660 -0
- package/dist/components/mcp/tools/application.js.map +1 -0
- package/dist/components/mcp/tools/operations.d.ts +23 -0
- package/dist/components/mcp/tools/operations.js +331 -0
- package/dist/components/mcp/tools/operations.js.map +1 -0
- package/dist/components/mcp/tools/schemas/derive.d.ts +50 -0
- package/dist/components/mcp/tools/schemas/derive.js +291 -0
- package/dist/components/mcp/tools/schemas/derive.js.map +1 -0
- package/dist/components/mcp/tools/schemas/operationDescriptions.d.ts +32 -0
- package/dist/components/mcp/tools/schemas/operationDescriptions.js +179 -0
- package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -0
- package/dist/components/mcp/tools/schemas/operations.d.ts +27 -0
- package/dist/components/mcp/tools/schemas/operations.js +299 -0
- package/dist/components/mcp/tools/schemas/operations.js.map +1 -0
- package/dist/components/mcp/transport.d.ts +38 -0
- package/dist/components/mcp/transport.js +467 -0
- package/dist/components/mcp/transport.js.map +1 -0
- package/dist/components/ollama/index.d.ts +46 -0
- package/dist/components/ollama/index.js +239 -0
- package/dist/components/ollama/index.js.map +1 -0
- package/dist/components/openai/index.d.ts +51 -0
- package/dist/components/openai/index.js +475 -0
- package/dist/components/openai/index.js.map +1 -0
- package/dist/components/operations.d.ts +6 -6
- package/dist/components/operations.js +205 -52
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.d.ts +2 -2
- package/dist/components/operationsValidation.js +13 -4
- package/dist/components/operationsValidation.js.map +1 -1
- package/dist/components/packageComponent.d.ts +28 -6
- package/dist/components/packageComponent.js +87 -26
- package/dist/components/packageComponent.js.map +1 -1
- package/dist/components/requestRestart.d.ts +1 -0
- package/dist/components/requestRestart.js +12 -1
- package/dist/components/requestRestart.js.map +1 -1
- package/dist/components/status/crossThread.d.ts +5 -1
- package/dist/components/status/crossThread.js +12 -5
- package/dist/components/status/crossThread.js.map +1 -1
- package/dist/components/status/errors.js +7 -7
- package/dist/config/RootConfigWatcher.d.ts +3 -0
- package/dist/config/RootConfigWatcher.js +52 -1
- package/dist/config/RootConfigWatcher.js.map +1 -1
- package/dist/config/configUtils.js +31 -8
- package/dist/config/configUtils.js.map +1 -1
- package/dist/config/harperConfigEnvVars.js +1 -1
- package/dist/config/harperConfigEnvVars.js.map +1 -1
- package/dist/dataLayer/CreateAttributeObject.d.ts +3 -7
- package/dist/dataLayer/CreateAttributeObject.js +4 -3
- package/dist/dataLayer/CreateAttributeObject.js.map +1 -1
- package/dist/dataLayer/CreateTableObject.d.ts +2 -4
- package/dist/dataLayer/CreateTableObject.js +2 -1
- package/dist/dataLayer/CreateTableObject.js.map +1 -1
- package/dist/dataLayer/DataLayerObjects.d.ts +17 -16
- package/dist/dataLayer/DataLayerObjects.js +19 -5
- package/dist/dataLayer/DataLayerObjects.js.map +1 -1
- package/dist/dataLayer/DeleteBeforeObject.d.ts +3 -5
- package/dist/dataLayer/DeleteBeforeObject.js +2 -1
- package/dist/dataLayer/DeleteBeforeObject.js.map +1 -1
- package/dist/dataLayer/DeleteObject.d.ts +3 -7
- package/dist/dataLayer/DeleteObject.js +4 -3
- package/dist/dataLayer/DeleteObject.js.map +1 -1
- package/dist/dataLayer/DropAttributeObject.d.ts +2 -4
- package/dist/dataLayer/DropAttributeObject.js +2 -1
- package/dist/dataLayer/DropAttributeObject.js.map +1 -1
- package/dist/dataLayer/GetBackupObject.d.ts +3 -5
- package/dist/dataLayer/GetBackupObject.js +4 -3
- package/dist/dataLayer/GetBackupObject.js.map +1 -1
- package/dist/dataLayer/InsertObject.d.ts +3 -8
- package/dist/dataLayer/InsertObject.js +4 -3
- package/dist/dataLayer/InsertObject.js.map +1 -1
- package/dist/dataLayer/ReadAuditLogObject.d.ts +3 -7
- package/dist/dataLayer/ReadAuditLogObject.js +4 -3
- package/dist/dataLayer/ReadAuditLogObject.js.map +1 -1
- package/dist/dataLayer/SQLSearch.d.ts +68 -38
- package/dist/dataLayer/SQLSearch.js +140 -78
- package/dist/dataLayer/SQLSearch.js.map +1 -1
- package/dist/dataLayer/SearchByConditionsObject.d.ts +10 -58
- package/dist/dataLayer/SearchByConditionsObject.js +5 -7
- package/dist/dataLayer/SearchByConditionsObject.js.map +1 -1
- package/dist/dataLayer/SearchByHashObject.d.ts +3 -6
- package/dist/dataLayer/SearchByHashObject.js +2 -1
- package/dist/dataLayer/SearchByHashObject.js.map +1 -1
- package/dist/dataLayer/SearchObject.d.ts +3 -12
- package/dist/dataLayer/SearchObject.js +2 -1
- package/dist/dataLayer/SearchObject.js.map +1 -1
- package/dist/dataLayer/SqlSearchObject.d.ts +2 -4
- package/dist/dataLayer/SqlSearchObject.js +2 -1
- package/dist/dataLayer/SqlSearchObject.js.map +1 -1
- package/dist/dataLayer/UpdateObject.d.ts +3 -7
- package/dist/dataLayer/UpdateObject.js +4 -3
- package/dist/dataLayer/UpdateObject.js.map +1 -1
- package/dist/dataLayer/UpsertObject.d.ts +3 -7
- package/dist/dataLayer/UpsertObject.js +4 -3
- package/dist/dataLayer/UpsertObject.js.map +1 -1
- package/dist/dataLayer/bulkLoad.d.ts +4 -4
- package/dist/dataLayer/bulkLoad.js +122 -88
- package/dist/dataLayer/bulkLoad.js.map +1 -1
- package/dist/dataLayer/delete.d.ts +10 -11
- package/dist/dataLayer/delete.js +74 -39
- package/dist/dataLayer/delete.js.map +1 -1
- package/dist/dataLayer/export.d.ts +8 -8
- package/dist/dataLayer/export.js +90 -55
- package/dist/dataLayer/export.js.map +1 -1
- package/dist/dataLayer/getBackup.d.ts +4 -3
- package/dist/dataLayer/getBackup.js +43 -11
- package/dist/dataLayer/getBackup.js.map +1 -1
- package/dist/dataLayer/harperBridge/BridgeMethods.d.ts +39 -21
- package/dist/dataLayer/harperBridge/BridgeMethods.js +41 -20
- package/dist/dataLayer/harperBridge/BridgeMethods.js.map +1 -1
- package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +2 -2
- package/dist/dataLayer/harperBridge/ResourceBridge.js +26 -25
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
- package/dist/dataLayer/harperBridge/TableSizeObject.d.ts +1 -0
- package/dist/dataLayer/harperBridge/TableSizeObject.js.map +1 -1
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.d.ts +4 -4
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
- package/dist/dataLayer/harperBridge/harperBridge.d.ts +2 -3
- package/dist/dataLayer/harperBridge/harperBridge.js +38 -4
- package/dist/dataLayer/harperBridge/harperBridge.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +7 -6
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +5 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +8 -8
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.d.ts +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +3 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +5 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
- package/dist/dataLayer/hdbInfoController.d.ts +4 -8
- package/dist/dataLayer/hdbInfoController.js +66 -31
- package/dist/dataLayer/hdbInfoController.js.map +1 -1
- package/dist/dataLayer/insert.d.ts +14 -26
- package/dist/dataLayer/insert.js +63 -28
- package/dist/dataLayer/insert.js.map +1 -1
- package/dist/dataLayer/readAuditLog.d.ts +1 -3
- package/dist/dataLayer/readAuditLog.js +45 -13
- package/dist/dataLayer/readAuditLog.js.map +1 -1
- package/dist/dataLayer/schema.d.ts +10 -10
- package/dist/dataLayer/schema.js +124 -89
- package/dist/dataLayer/schema.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.d.ts +4 -4
- package/dist/dataLayer/schemaDescribe.js +78 -41
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/dataLayer/search.d.ts +4 -4
- package/dist/dataLayer/search.js +12 -13
- package/dist/dataLayer/search.js.map +1 -1
- package/dist/dataLayer/transaction.d.ts +1 -1
- package/dist/dataLayer/transaction.js +3 -4
- package/dist/dataLayer/transaction.js.map +1 -1
- package/dist/dataLayer/update.d.ts +2 -8
- package/dist/dataLayer/update.js +53 -18
- package/dist/dataLayer/update.js.map +1 -1
- package/dist/globals.d.ts +1 -1
- package/dist/globals.js +1 -0
- package/dist/globals.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/json/systemSchema.json +65 -0
- package/dist/launchServiceScripts/launchHarperDB.d.ts +1 -0
- package/dist/launchServiceScripts/launchHarperDB.js +3 -0
- package/dist/launchServiceScripts/launchHarperDB.js.map +1 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.js +3 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +14 -6
- package/dist/resources/DatabaseTransaction.js +39 -15
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/ErrorResource.d.ts +1 -1
- package/dist/resources/ErrorResource.js +3 -1
- package/dist/resources/ErrorResource.js.map +1 -1
- package/dist/resources/LMDBTransaction.d.ts +10 -13
- package/dist/resources/LMDBTransaction.js +18 -7
- package/dist/resources/LMDBTransaction.js.map +1 -1
- package/dist/resources/RecordEncoder.d.ts +10 -12
- package/dist/resources/RecordEncoder.js +38 -38
- package/dist/resources/RecordEncoder.js.map +1 -1
- package/dist/resources/RequestTarget.d.ts +1 -0
- package/dist/resources/RequestTarget.js.map +1 -1
- package/dist/resources/Resource.d.ts +25 -5
- package/dist/resources/Resource.js +43 -10
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +24 -5
- package/dist/resources/ResourceInterface.js +20 -0
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Resources.d.ts +3 -4
- package/dist/resources/Resources.js +7 -6
- package/dist/resources/Resources.js.map +1 -1
- package/dist/resources/RocksIndexStore.js +3 -0
- package/dist/resources/RocksIndexStore.js.map +1 -1
- package/dist/resources/RocksTransactionLogStore.d.ts +1 -1
- package/dist/resources/RocksTransactionLogStore.js +10 -3
- package/dist/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/resources/Table.d.ts +76 -329
- package/dist/resources/Table.js +306 -116
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/metadata.d.ts +1 -0
- package/dist/resources/analytics/metadata.js +1 -0
- package/dist/resources/analytics/metadata.js.map +1 -1
- package/dist/resources/analytics/read.d.ts +8 -1
- package/dist/resources/analytics/read.js +69 -8
- package/dist/resources/analytics/read.js.map +1 -1
- package/dist/resources/analytics/write.d.ts +28 -0
- package/dist/resources/analytics/write.js +232 -20
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/auditStore.d.ts +18 -13
- package/dist/resources/auditStore.js +16 -8
- package/dist/resources/auditStore.js.map +1 -1
- package/dist/resources/blob.d.ts +16 -27
- package/dist/resources/blob.js +8 -8
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/dataLoader.d.ts +1 -1
- package/dist/resources/dataLoader.js +13 -13
- package/dist/resources/databases.d.ts +17 -0
- package/dist/resources/databases.js +175 -59
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/graphql.d.ts +1 -7
- package/dist/resources/graphql.js +267 -173
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +17 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +327 -59
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/indexes/vector.d.ts +1 -0
- package/dist/resources/indexes/vector.js +14 -0
- package/dist/resources/indexes/vector.js.map +1 -1
- package/dist/resources/jsonSchemaTypes.d.ts +60 -0
- package/dist/resources/jsonSchemaTypes.js +78 -0
- package/dist/resources/jsonSchemaTypes.js.map +1 -0
- package/dist/resources/loadEnv.d.ts +2 -5
- package/dist/resources/loadEnv.js +21 -18
- package/dist/resources/loadEnv.js.map +1 -1
- package/dist/resources/login.d.ts +2 -3
- package/dist/resources/login.js +5 -4
- package/dist/resources/login.js.map +1 -1
- package/dist/resources/models/Models.d.ts +45 -0
- package/dist/resources/models/Models.js +265 -0
- package/dist/resources/models/Models.js.map +1 -0
- package/dist/resources/models/TestBackend.d.ts +15 -0
- package/dist/resources/models/TestBackend.js +71 -0
- package/dist/resources/models/TestBackend.js.map +1 -0
- package/dist/resources/models/agentLoop.d.ts +125 -0
- package/dist/resources/models/agentLoop.js +746 -0
- package/dist/resources/models/agentLoop.js.map +1 -0
- package/dist/resources/models/analyticsTable.d.ts +65 -0
- package/dist/resources/models/analyticsTable.js +166 -0
- package/dist/resources/models/analyticsTable.js.map +1 -0
- package/dist/resources/models/backendHelpers.d.ts +57 -0
- package/dist/resources/models/backendHelpers.js +109 -0
- package/dist/resources/models/backendHelpers.js.map +1 -0
- package/dist/resources/models/backendRegistry.d.ts +36 -0
- package/dist/resources/models/backendRegistry.js +54 -0
- package/dist/resources/models/backendRegistry.js.map +1 -0
- package/dist/resources/models/bootstrap.d.ts +24 -0
- package/dist/resources/models/bootstrap.js +112 -0
- package/dist/resources/models/bootstrap.js.map +1 -0
- package/dist/resources/models/embedHook.d.ts +33 -0
- package/dist/resources/models/embedHook.js +127 -0
- package/dist/resources/models/embedHook.js.map +1 -0
- package/dist/resources/models/types.d.ts +301 -0
- package/dist/resources/models/types.js +11 -0
- package/dist/resources/models/types.js.map +1 -0
- package/dist/resources/openApi.js +74 -34
- package/dist/resources/openApi.js.map +1 -1
- package/dist/resources/replayLogs.js +7 -1
- package/dist/resources/replayLogs.js.map +1 -1
- package/dist/resources/replayLogsGuards.d.ts +9 -0
- package/dist/resources/replayLogsGuards.js +47 -0
- package/dist/resources/replayLogsGuards.js.map +1 -1
- package/dist/resources/roles.d.ts +1 -7
- package/dist/resources/roles.js +67 -71
- package/dist/resources/roles.js.map +1 -1
- package/dist/resources/search.d.ts +18 -1
- package/dist/resources/search.js +349 -140
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/tracked.d.ts +1 -1
- package/dist/resources/tracked.js +23 -15
- package/dist/resources/tracked.js.map +1 -1
- package/dist/resources/transaction.d.ts +1 -1
- package/dist/resources/transaction.js +1 -1
- package/dist/resources/transaction.js.map +1 -1
- package/dist/resources/transactionBroadcast.d.ts +1 -1
- package/dist/resources/transactionBroadcast.js.map +1 -1
- package/dist/security/auth.d.ts +1 -5
- package/dist/security/auth.js +34 -25
- package/dist/security/auth.js.map +1 -1
- package/dist/security/certificateVerification/crlVerification.js +7 -1
- package/dist/security/certificateVerification/crlVerification.js.map +1 -1
- package/dist/security/cryptoHash.d.ts +2 -2
- package/dist/security/cryptoHash.js +37 -5
- package/dist/security/cryptoHash.js.map +1 -1
- package/dist/security/data_objects/PermissionAttributeResponseObject.d.ts +3 -4
- package/dist/security/data_objects/PermissionAttributeResponseObject.js +4 -1
- package/dist/security/data_objects/PermissionAttributeResponseObject.js.map +1 -1
- package/dist/security/data_objects/PermissionResponseObject.d.ts +9 -9
- package/dist/security/data_objects/PermissionResponseObject.js +15 -8
- package/dist/security/data_objects/PermissionResponseObject.js.map +1 -1
- package/dist/security/data_objects/PermissionTableResponseObject.d.ts +5 -6
- package/dist/security/data_objects/PermissionTableResponseObject.js +6 -1
- package/dist/security/data_objects/PermissionTableResponseObject.js.map +1 -1
- package/dist/security/fastifyAuth.d.ts +2 -2
- package/dist/security/fastifyAuth.js +131 -22
- package/dist/security/fastifyAuth.js.map +1 -1
- package/dist/security/impersonation.js +15 -15
- package/dist/security/jsLoader.js +18 -5
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/keys.d.ts +45 -48
- package/dist/security/keys.js +160 -114
- package/dist/security/keys.js.map +1 -1
- package/dist/security/permissionsTranslator.js +2 -2
- package/dist/security/role.d.ts +5 -5
- package/dist/security/role.js +70 -35
- package/dist/security/role.js.map +1 -1
- package/dist/security/tokenAuthentication.d.ts +13 -0
- package/dist/security/tokenAuthentication.js +57 -27
- package/dist/security/tokenAuthentication.js.map +1 -1
- package/dist/security/user.js +74 -38
- package/dist/security/user.js.map +1 -1
- package/dist/server/DurableSubscriptionsSession.d.ts +4 -2
- package/dist/server/DurableSubscriptionsSession.js +71 -55
- package/dist/server/DurableSubscriptionsSession.js.map +1 -1
- package/dist/server/REST.d.ts +1 -8
- package/dist/server/REST.js +17 -16
- package/dist/server/REST.js.map +1 -1
- package/dist/server/Server.d.ts +23 -4
- package/dist/server/Server.js +1 -1
- package/dist/server/Server.js.map +1 -1
- package/dist/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
- package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
- package/dist/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
- package/dist/server/fastifyRoutes.d.ts +1 -4
- package/dist/server/fastifyRoutes.js +34 -30
- package/dist/server/fastifyRoutes.js.map +1 -1
- package/dist/server/graphqlQuerying.d.ts +1 -1
- package/dist/server/graphqlQuerying.js +8 -7
- package/dist/server/graphqlQuerying.js.map +1 -1
- package/dist/server/http.d.ts +9 -4
- package/dist/server/http.js +523 -47
- package/dist/server/http.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +66 -15
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/jobs/JobObject.d.ts +3 -3
- package/dist/server/jobs/JobObject.js +53 -7
- package/dist/server/jobs/JobObject.js.map +1 -1
- package/dist/server/jobs/jobProcess.js +64 -24
- package/dist/server/jobs/jobProcess.js.map +1 -1
- package/dist/server/jobs/jobRunner.d.ts +7 -6
- package/dist/server/jobs/jobRunner.js +68 -30
- package/dist/server/jobs/jobRunner.js.map +1 -1
- package/dist/server/jobs/jobs.d.ts +18 -7
- package/dist/server/jobs/jobs.js +93 -61
- package/dist/server/jobs/jobs.js.map +1 -1
- package/dist/server/loadRootComponents.js +1 -1
- package/dist/server/middlewareChain.d.ts +80 -0
- package/dist/server/middlewareChain.js +252 -0
- package/dist/server/middlewareChain.js.map +1 -0
- package/dist/server/mqtt.d.ts +1 -8
- package/dist/server/mqtt.js +22 -17
- package/dist/server/mqtt.js.map +1 -1
- package/dist/server/nodeName.js +46 -13
- package/dist/server/nodeName.js.map +1 -1
- package/dist/server/operationsServer.d.ts +2 -2
- package/dist/server/operationsServer.js +106 -33
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/Headers.d.ts +4 -4
- package/dist/server/serverHelpers/Headers.js +2 -0
- package/dist/server/serverHelpers/Headers.js.map +1 -1
- package/dist/server/serverHelpers/JSONStream.d.ts +7 -1
- package/dist/server/serverHelpers/JSONStream.js +12 -3
- package/dist/server/serverHelpers/JSONStream.js.map +1 -1
- package/dist/server/serverHelpers/Request.d.ts +106 -8
- package/dist/server/serverHelpers/Request.js +370 -9
- package/dist/server/serverHelpers/Request.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.d.ts +1 -1
- package/dist/server/serverHelpers/contentTypes.js +36 -7
- package/dist/server/serverHelpers/contentTypes.js.map +1 -1
- package/dist/server/serverHelpers/multipartParser.d.ts +21 -0
- package/dist/server/serverHelpers/multipartParser.js +142 -0
- package/dist/server/serverHelpers/multipartParser.js.map +1 -0
- package/dist/server/serverHelpers/progressEmitter.d.ts +25 -0
- package/dist/server/serverHelpers/progressEmitter.js +103 -0
- package/dist/server/serverHelpers/progressEmitter.js.map +1 -0
- package/dist/server/serverHelpers/serverHandlers.d.ts +1 -1
- package/dist/server/serverHelpers/serverHandlers.js +38 -7
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/serverUtilities.d.ts +4 -2
- package/dist/server/serverHelpers/serverUtilities.js +97 -93
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/server/static.js +8 -5
- package/dist/server/static.js.map +1 -1
- package/dist/server/status/index.js +3 -3
- package/dist/server/storageReclamation.d.ts +10 -0
- package/dist/server/storageReclamation.js +68 -9
- package/dist/server/storageReclamation.js.map +1 -1
- package/dist/server/threads/itc.js +7 -4
- package/dist/server/threads/itc.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +1 -1
- package/dist/server/threads/manageThreads.js +110 -26
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/socketRouter.d.ts +0 -1
- package/dist/server/threads/socketRouter.js +8 -271
- package/dist/server/threads/socketRouter.js.map +1 -1
- package/dist/server/threads/threadServer.d.ts +1 -0
- package/dist/server/threads/threadServer.js +360 -118
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/server/threads/workerProcessGuard.d.ts +42 -0
- package/dist/server/threads/workerProcessGuard.js +114 -0
- package/dist/server/threads/workerProcessGuard.js.map +1 -0
- package/dist/server/throttle.js +17 -0
- package/dist/server/throttle.js.map +1 -1
- package/dist/sqlTranslator/SelectValidator.d.ts +21 -24
- package/dist/sqlTranslator/SelectValidator.js +86 -47
- package/dist/sqlTranslator/SelectValidator.js.map +1 -1
- package/dist/sqlTranslator/alasqlFunctionImporter.d.ts +6 -2
- package/dist/sqlTranslator/alasqlFunctionImporter.js +40 -3
- package/dist/sqlTranslator/alasqlFunctionImporter.js.map +1 -1
- package/dist/sqlTranslator/deleteTranslator.d.ts +4 -7
- package/dist/sqlTranslator/deleteTranslator.js +48 -14
- package/dist/sqlTranslator/deleteTranslator.js.map +1 -1
- package/dist/sqlTranslator/index.d.ts +10 -9
- package/dist/sqlTranslator/index.js +69 -30
- package/dist/sqlTranslator/index.js.map +1 -1
- package/dist/sqlTranslator/sql_statement_bucket.d.ts +10 -10
- package/dist/sqlTranslator/sql_statement_bucket.js +55 -13
- package/dist/sqlTranslator/sql_statement_bucket.js.map +1 -1
- package/dist/upgrade/UpgradeObjects.d.ts +2 -3
- package/dist/upgrade/UpgradeObjects.js +37 -4
- package/dist/upgrade/UpgradeObjects.js.map +1 -1
- package/dist/upgrade/directives/5-1-0.d.ts +6 -0
- package/dist/upgrade/directives/5-1-0.js +114 -0
- package/dist/upgrade/directives/5-1-0.js.map +1 -0
- package/dist/upgrade/directives/directivesController.d.ts +10 -10
- package/dist/upgrade/directives/directivesController.js +52 -11
- package/dist/upgrade/directives/directivesController.js.map +1 -1
- package/dist/upgrade/directivesManager.d.ts +1 -1
- package/dist/upgrade/directivesManager.js +53 -18
- package/dist/upgrade/directivesManager.js.map +1 -1
- package/dist/upgrade/upgradePrompt.d.ts +2 -8
- package/dist/upgrade/upgradePrompt.js +55 -60
- package/dist/upgrade/upgradePrompt.js.map +1 -1
- package/dist/upgrade/upgradeUtilities.d.ts +1 -1
- package/dist/upgrade/upgradeUtilities.js +37 -5
- package/dist/upgrade/upgradeUtilities.js.map +1 -1
- package/dist/utility/OperationFunctionCaller.d.ts +1 -1
- package/dist/utility/OperationFunctionCaller.js +45 -10
- package/dist/utility/OperationFunctionCaller.js.map +1 -1
- package/dist/utility/assignCmdEnvVariables.d.ts +1 -2
- package/dist/utility/assignCmdEnvVariables.js +8 -4
- package/dist/utility/assignCmdEnvVariables.js.map +1 -1
- package/dist/utility/common_utils.d.ts +80 -77
- package/dist/utility/common_utils.js +140 -79
- package/dist/utility/common_utils.js.map +1 -1
- package/dist/utility/environment/environmentManager.d.ts +12 -11
- package/dist/utility/environment/environmentManager.js +75 -29
- package/dist/utility/environment/environmentManager.js.map +1 -1
- package/dist/utility/environment/systemInformation.d.ts +4 -0
- package/dist/utility/environment/systemInformation.js +27 -16
- package/dist/utility/environment/systemInformation.js.map +1 -1
- package/dist/utility/errors/commonErrors.d.ts +192 -168
- package/dist/utility/errors/commonErrors.js +49 -18
- package/dist/utility/errors/commonErrors.js.map +1 -1
- package/dist/utility/errors/hdbError.d.ts +37 -51
- package/dist/utility/errors/hdbError.js +65 -26
- package/dist/utility/errors/hdbError.js.map +1 -1
- package/dist/utility/expandEnvVar.d.ts +61 -0
- package/dist/utility/expandEnvVar.js +113 -0
- package/dist/utility/expandEnvVar.js.map +1 -0
- package/dist/utility/functions/geo.js +2 -2
- package/dist/utility/functions/sql/alaSQLExtension.js +1 -1
- package/dist/utility/globalSchema.d.ts +13 -4
- package/dist/utility/globalSchema.js +14 -11
- package/dist/utility/globalSchema.js.map +1 -1
- package/dist/utility/hdbTerms.d.ts +54 -1
- package/dist/utility/hdbTerms.js +54 -1
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/install/checkJWTTokensExist.js +1 -1
- package/dist/utility/install/installer.d.ts +9 -12
- package/dist/utility/install/installer.js +117 -54
- package/dist/utility/install/installer.js.map +1 -1
- package/dist/utility/installation.js +3 -3
- package/dist/utility/lmdb/DBIDefinition.d.ts +4 -4
- package/dist/utility/lmdb/DBIDefinition.js +5 -1
- package/dist/utility/lmdb/DBIDefinition.js.map +1 -1
- package/dist/utility/lmdb/DeleteRecordsResponseObject.d.ts +3 -6
- package/dist/utility/lmdb/DeleteRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/DeleteRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/InsertRecordsResponseObject.d.ts +3 -5
- package/dist/utility/lmdb/InsertRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/InsertRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/OpenDBIObject.d.ts +12 -15
- package/dist/utility/lmdb/OpenDBIObject.js +68 -6
- package/dist/utility/lmdb/OpenDBIObject.js.map +1 -1
- package/dist/utility/lmdb/OpenEnvironmentObject.d.ts +5 -8
- package/dist/utility/lmdb/OpenEnvironmentObject.js +52 -4
- package/dist/utility/lmdb/OpenEnvironmentObject.js.map +1 -1
- package/dist/utility/lmdb/UpdateRecordsResponseObject.d.ts +3 -6
- package/dist/utility/lmdb/UpdateRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/UpdateRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/UpsertRecordsResponseObject.d.ts +3 -5
- package/dist/utility/lmdb/UpsertRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/UpsertRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/cleanLMDBMap.d.ts +1 -1
- package/dist/utility/lmdb/cleanLMDBMap.js +44 -7
- package/dist/utility/lmdb/cleanLMDBMap.js.map +1 -1
- package/dist/utility/lmdb/commonUtility.d.ts +8 -9
- package/dist/utility/lmdb/commonUtility.js +46 -17
- package/dist/utility/lmdb/commonUtility.js.map +1 -1
- package/dist/utility/lmdb/deleteUtility.d.ts +2 -3
- package/dist/utility/lmdb/deleteUtility.js +51 -16
- package/dist/utility/lmdb/deleteUtility.js.map +1 -1
- package/dist/utility/lmdb/environmentUtility.d.ts +69 -36
- package/dist/utility/lmdb/environmentUtility.js +91 -51
- package/dist/utility/lmdb/environmentUtility.js.map +1 -1
- package/dist/utility/lmdb/searchCursorFunctions.d.ts +19 -19
- package/dist/utility/lmdb/searchCursorFunctions.js +46 -14
- package/dist/utility/lmdb/searchCursorFunctions.js.map +1 -1
- package/dist/utility/lmdb/searchUtility.d.ts +142 -73
- package/dist/utility/lmdb/searchUtility.js +91 -55
- package/dist/utility/lmdb/searchUtility.js.map +1 -1
- package/dist/utility/lmdb/terms.d.ts +34 -34
- package/dist/utility/lmdb/terms.js +12 -22
- package/dist/utility/lmdb/terms.js.map +1 -1
- package/dist/utility/lmdb/writeUtility.d.ts +3 -6
- package/dist/utility/lmdb/writeUtility.js +61 -28
- package/dist/utility/lmdb/writeUtility.js.map +1 -1
- package/dist/utility/logging/harper_logger.d.ts +87 -103
- package/dist/utility/logging/harper_logger.js +177 -82
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/logging/logRotator.d.ts +2 -10
- package/dist/utility/logging/logRotator.js +67 -32
- package/dist/utility/logging/logRotator.js.map +1 -1
- package/dist/utility/logging/logger.js +4 -4
- package/dist/utility/logging/readLog.d.ts +1 -1
- package/dist/utility/logging/readLog.js +54 -17
- package/dist/utility/logging/readLog.js.map +1 -1
- package/dist/utility/logging/transactionLog.d.ts +2 -2
- package/dist/utility/logging/transactionLog.js +51 -16
- package/dist/utility/logging/transactionLog.js.map +1 -1
- package/dist/utility/mount_hdb.d.ts +1 -2
- package/dist/utility/mount_hdb.js +54 -17
- package/dist/utility/mount_hdb.js.map +1 -1
- package/dist/utility/npmUtilities.d.ts +1 -1
- package/dist/utility/npmUtilities.js +54 -19
- package/dist/utility/npmUtilities.js.map +1 -1
- package/dist/utility/operation_authorization.d.ts +36 -9
- package/dist/utility/operation_authorization.js +135 -86
- package/dist/utility/operation_authorization.js.map +1 -1
- package/dist/utility/packageUtils.d.ts +0 -2
- package/dist/utility/packageUtils.js +7 -17
- package/dist/utility/packageUtils.js.map +1 -1
- package/dist/utility/password.js +2 -2
- package/dist/utility/processManagement/processManagement.js +2 -2
- package/dist/utility/processManagement/servicesConfig.js +1 -1
- package/dist/utility/signalling.d.ts +2 -2
- package/dist/utility/signalling.js +51 -16
- package/dist/utility/signalling.js.map +1 -1
- package/dist/utility/watcherFallback.d.ts +36 -0
- package/dist/utility/watcherFallback.js +73 -0
- package/dist/utility/watcherFallback.js.map +1 -0
- package/dist/validation/analyticsValidator.d.ts +1 -0
- package/dist/validation/analyticsValidator.js +80 -0
- package/dist/validation/analyticsValidator.js.map +1 -0
- package/dist/validation/bulkDeleteValidator.d.ts +1 -2
- package/dist/validation/bulkDeleteValidator.js +49 -11
- package/dist/validation/bulkDeleteValidator.js.map +1 -1
- package/dist/validation/check_permissions.d.ts +1 -2
- package/dist/validation/check_permissions.js +38 -3
- package/dist/validation/check_permissions.js.map +1 -1
- package/dist/validation/common_validators.d.ts +20 -20
- package/dist/validation/common_validators.js +62 -31
- package/dist/validation/common_validators.js.map +1 -1
- package/dist/validation/configValidator.d.ts +4 -4
- package/dist/validation/configValidator.js +189 -54
- package/dist/validation/configValidator.js.map +1 -1
- package/dist/validation/deleteValidator.d.ts +1 -2
- package/dist/validation/deleteValidator.js +49 -11
- package/dist/validation/deleteValidator.js.map +1 -1
- package/dist/validation/fileLoadValidator.d.ts +4 -4
- package/dist/validation/fileLoadValidator.js +67 -32
- package/dist/validation/fileLoadValidator.js.map +1 -1
- package/dist/validation/insertValidator.d.ts +1 -2
- package/dist/validation/insertValidator.js +48 -10
- package/dist/validation/insertValidator.js.map +1 -1
- package/dist/validation/installValidator.d.ts +2 -2
- package/dist/validation/installValidator.js +47 -10
- package/dist/validation/installValidator.js.map +1 -1
- package/dist/validation/readLogValidator.d.ts +1 -2
- package/dist/validation/readLogValidator.js +60 -22
- package/dist/validation/readLogValidator.js.map +1 -1
- package/dist/validation/role_validation.d.ts +3 -3
- package/dist/validation/role_validation.js +55 -19
- package/dist/validation/role_validation.js.map +1 -1
- package/dist/validation/schemaMetadataValidator.d.ts +3 -4
- package/dist/validation/schemaMetadataValidator.js +11 -12
- package/dist/validation/schemaMetadataValidator.js.map +1 -1
- package/dist/validation/searchValidator.d.ts +1 -2
- package/dist/validation/searchValidator.js +82 -43
- package/dist/validation/searchValidator.js.map +1 -1
- package/dist/validation/statusValidator.d.ts +1 -1
- package/dist/validation/transactionLogValidator.d.ts +3 -3
- package/dist/validation/transactionLogValidator.js +52 -17
- package/dist/validation/transactionLogValidator.js.map +1 -1
- package/dist/validation/user_validation.d.ts +3 -3
- package/dist/validation/user_validation.js +38 -6
- package/dist/validation/user_validation.js.map +1 -1
- package/dist/validation/validationWrapper.d.ts +3 -3
- package/dist/validation/validationWrapper.js +4 -5
- package/dist/validation/validationWrapper.js.map +1 -1
- package/index.ts +5 -0
- package/json/systemSchema.json +65 -0
- package/launchServiceScripts/utility/checkNodeVersion.js +2 -0
- package/package.json +38 -24
- package/resources/DESIGN.md +98 -0
- package/resources/DatabaseTransaction.ts +58 -30
- package/resources/ErrorResource.ts +2 -1
- package/resources/LMDBTransaction.ts +38 -29
- package/resources/RecordEncoder.ts +41 -39
- package/resources/RequestTarget.ts +2 -0
- package/resources/Resource.ts +96 -56
- package/resources/ResourceInterface.ts +44 -21
- package/resources/Resources.ts +8 -8
- package/resources/RocksIndexStore.ts +3 -0
- package/resources/RocksTransactionLogStore.ts +13 -4
- package/resources/Table.ts +440 -223
- package/resources/analytics/metadata.ts +1 -0
- package/resources/analytics/read.ts +99 -10
- package/resources/analytics/write.ts +240 -17
- package/resources/auditStore.ts +30 -19
- package/resources/blob.ts +53 -53
- package/resources/dataLoader.ts +4 -4
- package/resources/databases.ts +208 -74
- package/resources/graphql.ts +267 -165
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +310 -65
- package/resources/indexes/vector.ts +17 -0
- package/resources/jsonSchemaTypes.ts +102 -0
- package/resources/loadEnv.ts +21 -17
- package/resources/login.ts +5 -3
- package/resources/models/Models.ts +304 -0
- package/resources/models/TestBackend.ts +83 -0
- package/resources/models/agentLoop.ts +895 -0
- package/resources/models/analyticsTable.ts +199 -0
- package/resources/models/backendHelpers.ts +116 -0
- package/resources/models/backendRegistry.ts +66 -0
- package/resources/models/bootstrap.ts +135 -0
- package/resources/models/embedHook.ts +138 -0
- package/resources/models/types.ts +296 -0
- package/resources/openApi.ts +65 -31
- package/resources/replayLogs.ts +20 -9
- package/resources/replayLogsGuards.ts +45 -0
- package/resources/roles.ts +62 -67
- package/resources/search.ts +355 -135
- package/resources/tracked.ts +18 -9
- package/resources/transaction.ts +8 -8
- package/resources/transactionBroadcast.ts +3 -3
- package/schema.graphql +7 -0
- package/security/auth.ts +35 -26
- package/security/certificateVerification/crlVerification.ts +11 -4
- package/security/{cryptoHash.js → cryptoHash.ts} +3 -8
- package/security/data_objects/{PermissionAttributeResponseObject.js → PermissionAttributeResponseObject.ts} +4 -4
- package/security/data_objects/{PermissionResponseObject.js → PermissionResponseObject.ts} +12 -11
- package/security/data_objects/{PermissionTableResponseObject.js → PermissionTableResponseObject.ts} +6 -4
- package/security/{fastifyAuth.js → fastifyAuth.ts} +93 -20
- package/security/impersonation.ts +3 -3
- package/security/jsLoader.ts +22 -8
- package/security/{keys.js → keys.ts} +113 -121
- package/security/permissionsTranslator.js +2 -2
- package/security/{role.js → role.ts} +26 -33
- package/security/tokenAuthentication.ts +34 -7
- package/security/user.ts +26 -22
- package/server/DESIGN.md +139 -0
- package/server/DurableSubscriptionsSession.ts +67 -50
- package/server/REST.ts +120 -107
- package/server/Server.ts +31 -12
- package/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
- package/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
- package/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
- package/server/fastifyRoutes.ts +37 -33
- package/server/graphqlQuerying.ts +6 -5
- package/server/http.ts +517 -26
- package/server/itc/serverHandlers.js +75 -14
- package/server/jobs/{JobObject.js → JobObject.ts} +13 -6
- package/server/jobs/{jobProcess.js → jobProcess.ts} +20 -16
- package/server/jobs/{jobRunner.js → jobRunner.ts} +20 -21
- package/server/jobs/{jobs.js → jobs.ts} +41 -44
- package/server/loadRootComponents.js +1 -1
- package/server/middlewareChain.ts +270 -0
- package/server/mqtt.ts +35 -26
- package/server/nodeName.ts +3 -1
- package/server/operationsServer.ts +85 -10
- package/server/serverHelpers/Headers.ts +10 -8
- package/server/serverHelpers/JSONStream.ts +15 -5
- package/server/serverHelpers/Request.ts +370 -13
- package/server/serverHelpers/contentTypes.ts +42 -11
- package/server/serverHelpers/multipartParser.ts +152 -0
- package/server/serverHelpers/progressEmitter.ts +110 -0
- package/server/serverHelpers/serverHandlers.js +43 -7
- package/server/serverHelpers/serverUtilities.ts +40 -30
- package/server/static.ts +9 -6
- package/server/status/index.ts +2 -2
- package/server/storageReclamation.ts +39 -2
- package/server/threads/itc.js +7 -4
- package/server/threads/manageThreads.js +100 -26
- package/server/threads/socketRouter.ts +12 -275
- package/server/threads/threadServer.js +345 -105
- package/server/threads/workerProcessGuard.ts +93 -0
- package/server/throttle.ts +18 -0
- package/sqlTranslator/{SelectValidator.js → SelectValidator.ts} +41 -49
- package/sqlTranslator/{alasqlFunctionImporter.js → alasqlFunctionImporter.ts} +5 -5
- package/sqlTranslator/{deleteTranslator.js → deleteTranslator.ts} +13 -18
- package/sqlTranslator/{index.js → index.ts} +30 -33
- package/sqlTranslator/{sql_statement_bucket.js → sql_statement_bucket.ts} +49 -20
- package/static/README.md +10 -9
- package/static/defaultConfig.yaml +0 -1
- package/studio/web/assets/{index-CybLScHg.js → index-Dqr9oVhe.js} +5 -5
- package/studio/web/assets/index-Dqr9oVhe.js.map +1 -0
- package/studio/web/assets/{index.lazy-DKx5-iXF.js → index.lazy-CpKcKb7M.js} +2 -2
- package/studio/web/assets/{index.lazy-DKx5-iXF.js.map → index.lazy-CpKcKb7M.js.map} +1 -1
- package/studio/web/assets/{profile-BOjes0Wl.js → profile-C1cujdsg.js} +2 -2
- package/studio/web/assets/{profile-BOjes0Wl.js.map → profile-C1cujdsg.js.map} +1 -1
- package/studio/web/assets/{status-EWKUIrjT.js → status-CTiIIQlY.js} +2 -2
- package/studio/web/assets/{status-EWKUIrjT.js.map → status-CTiIIQlY.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/{UpgradeObjects.js → UpgradeObjects.ts} +3 -6
- package/upgrade/directives/5-1-0.ts +89 -0
- package/upgrade/directives/{directivesController.js → directivesController.ts} +16 -16
- package/upgrade/{directivesManager.js → directivesManager.ts} +7 -11
- package/upgrade/{upgradePrompt.js → upgradePrompt.ts} +6 -54
- package/upgrade/{upgradeUtilities.js → upgradeUtilities.ts} +3 -7
- package/utility/{OperationFunctionCaller.js → OperationFunctionCaller.ts} +7 -7
- package/utility/{assignCmdEnvVariables.js → assignCmdEnvVariables.ts} +6 -8
- package/utility/{common_utils.js → common_utils.ts} +113 -139
- package/utility/environment/{environmentManager.js → environmentManager.ts} +34 -33
- package/utility/environment/systemInformation.ts +18 -4
- package/utility/errors/{commonErrors.js → commonErrors.ts} +9 -9
- package/utility/errors/{hdbError.js → hdbError.ts} +39 -45
- package/utility/expandEnvVar.ts +110 -0
- package/utility/functions/geo.js +2 -2
- package/utility/functions/sql/alaSQLExtension.js +1 -1
- package/utility/globalSchema.ts +30 -0
- package/utility/hdbTerms.ts +54 -1
- package/utility/install/checkJWTTokensExist.js +1 -1
- package/utility/install/{installer.js → installer.ts} +66 -42
- package/utility/installation.ts +2 -2
- package/utility/lmdb/{DBIDefinition.js → DBIDefinition.ts} +4 -1
- package/utility/lmdb/{DeleteRecordsResponseObject.js → DeleteRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/{InsertRecordsResponseObject.js → InsertRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/OpenDBIObject.ts +57 -0
- package/utility/lmdb/{OpenEnvironmentObject.js → OpenEnvironmentObject.ts} +19 -6
- package/utility/lmdb/{UpdateRecordsResponseObject.js → UpdateRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/{UpsertRecordsResponseObject.js → UpsertRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/{cleanLMDBMap.js → cleanLMDBMap.ts} +5 -5
- package/utility/lmdb/{commonUtility.js → commonUtility.ts} +13 -21
- package/utility/lmdb/{deleteUtility.js → deleteUtility.ts} +8 -12
- package/utility/lmdb/{environmentUtility.js → environmentUtility.ts} +43 -52
- package/utility/lmdb/{searchCursorFunctions.js → searchCursorFunctions.ts} +12 -26
- package/utility/lmdb/{searchUtility.js → searchUtility.ts} +75 -64
- package/utility/lmdb/{terms.js → terms.ts} +10 -23
- package/utility/lmdb/{writeUtility.js → writeUtility.ts} +37 -22
- package/utility/logging/{harper_logger.js → harper_logger.ts} +137 -90
- package/utility/logging/{logRotator.js → logRotator.ts} +15 -18
- package/utility/logging/logger.ts +1 -1
- package/utility/logging/{readLog.js → readLog.ts} +19 -19
- package/utility/logging/{transactionLog.js → transactionLog.ts} +10 -14
- package/utility/{mount_hdb.js → mount_hdb.ts} +15 -16
- package/utility/{npmUtilities.js → npmUtilities.ts} +14 -17
- package/utility/{operation_authorization.js → operation_authorization.ts} +173 -124
- package/utility/packageUtils.js +7 -16
- package/utility/password.ts +1 -1
- package/utility/processManagement/processManagement.js +2 -2
- package/utility/processManagement/servicesConfig.js +1 -1
- package/utility/{signalling.js → signalling.ts} +6 -11
- package/utility/watcherFallback.ts +74 -0
- package/validation/analyticsValidator.ts +44 -0
- package/validation/{bulkDeleteValidator.js → bulkDeleteValidator.ts} +5 -5
- package/validation/{check_permissions.js → check_permissions.ts} +3 -3
- package/validation/{common_validators.js → common_validators.ts} +12 -24
- package/validation/{configValidator.js → configValidator.ts} +114 -18
- package/validation/{deleteValidator.js → deleteValidator.ts} +5 -5
- package/validation/{fileLoadValidator.js → fileLoadValidator.ts} +12 -19
- package/validation/{insertValidator.js → insertValidator.ts} +5 -5
- package/validation/{installValidator.js → installValidator.ts} +8 -8
- package/validation/{readLogValidator.js → readLogValidator.ts} +10 -10
- package/validation/{role_validation.js → role_validation.ts} +26 -32
- package/validation/{schemaMetadataValidator.js → schemaMetadataValidator.ts} +5 -11
- package/validation/{searchValidator.js → searchValidator.ts} +12 -11
- package/validation/statusValidator.ts +1 -1
- package/validation/{transactionLogValidator.js → transactionLogValidator.ts} +4 -9
- package/validation/{user_validation.js → user_validation.ts} +4 -10
- package/validation/{validationWrapper.js → validationWrapper.ts} +3 -9
- package/bin/cliOperations.js +0 -159
- package/bin/lite.js +0 -5
- package/dataLayer/harperBridge/BridgeMethods.js +0 -85
- package/studio/web/assets/index-CybLScHg.js.map +0 -1
- package/utility/globalSchema.js +0 -35
- 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.
|
|
3
|
-
import { ServerError } from '../utility/errors/hdbError.
|
|
4
|
-
import * as harperLogger from '../utility/logging/harper_logger.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
|
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.
|
|
10
|
-
import * as harperLogger from '../utility/logging/harper_logger.
|
|
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():
|
|
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
|
|
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
|
|
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
|
-
|
|
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 = {}):
|
|
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(
|
|
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(
|
|
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 {
|
|
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.
|
|
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
|
|
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
|
|
230
|
-
// re-pack reloads the durable structures, rebuilds the transition
|
|
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 (
|
|
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
|
-
|
|
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 >
|
|
560
|
+
if (txn.openTimer > READ_TXN_TIMEOUT_TICKS) {
|
|
565
561
|
harperLogger.error(
|
|
566
|
-
|
|
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
|
-
}
|
|
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
|