@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
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public type surface for the model-access API (`scope.models`).
|
|
3
|
+
*
|
|
4
|
+
* Phase 1 foundation of #510. Other phases (ollama, openai, gateway, @embed,
|
|
5
|
+
* anthropic, bedrock) consume these types; changes here cascade.
|
|
6
|
+
*
|
|
7
|
+
* Reference: planning artifact `tmp/harper-510-phase-1-detail.md` (canonical shapes).
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export interface Models {
|
|
11
|
+
embed(input: string | string[], opts?: EmbedOpts): Promise<Float32Array[]>;
|
|
12
|
+
generate(input: GenerateInput, opts?: GenerateOpts): Promise<GenerateResult>;
|
|
13
|
+
generateStream(input: GenerateInput, opts?: GenerateOpts): AsyncIterable<GenerateChunk>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface ModelBackend {
|
|
17
|
+
readonly name: string;
|
|
18
|
+
capabilities(): ModelCapabilities;
|
|
19
|
+
embed?(input: string | string[], opts: BackendOpts<EmbedOpts>): Promise<ModelCallResult<Float32Array[]>>;
|
|
20
|
+
generate?(input: GenerateInput, opts: BackendOpts<GenerateOpts>): Promise<ModelCallResult<GenerateResult>>;
|
|
21
|
+
generateStream?(input: GenerateInput, opts: BackendOpts<GenerateOpts>): AsyncIterable<GenerateChunk>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface ModelCapabilities {
|
|
25
|
+
embed: boolean;
|
|
26
|
+
generate: boolean;
|
|
27
|
+
stream: boolean;
|
|
28
|
+
tools: boolean;
|
|
29
|
+
adapters: boolean;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export type EmbedOpts = {
|
|
33
|
+
model?: string;
|
|
34
|
+
/** For models that distinguish document-vs-query embeddings (e.g. nomic-embed-text); ignored otherwise. */
|
|
35
|
+
inputType?: 'document' | 'query';
|
|
36
|
+
signal?: AbortSignal;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export type GenerateOpts = {
|
|
40
|
+
model?: string;
|
|
41
|
+
adapter?: string;
|
|
42
|
+
temperature?: number;
|
|
43
|
+
maxTokens?: number;
|
|
44
|
+
responseFormat?: 'text' | 'json' | { schema: object };
|
|
45
|
+
/**
|
|
46
|
+
* How to handle tool calls the model emits. `'return'` (default) hands tool-call
|
|
47
|
+
* requests back to the caller; `'auto'` resolves them in-process to completion.
|
|
48
|
+
* The tool definitions themselves live on `GenerateInput`'s object variant
|
|
49
|
+
* (alongside `messages` and `system`) — they're content, not strategy.
|
|
50
|
+
*/
|
|
51
|
+
toolMode?: 'return' | 'auto';
|
|
52
|
+
/**
|
|
53
|
+
* `toolMode: 'auto'` only. Hard cap on backend → tool → backend iterations
|
|
54
|
+
* before the loop emits `BudgetExceededError({kind: 'iterations'})`. Default 10.
|
|
55
|
+
*/
|
|
56
|
+
maxToolIterations?: number;
|
|
57
|
+
/**
|
|
58
|
+
* `toolMode: 'auto'` only. Cumulative prompt+completion token cap across all
|
|
59
|
+
* iterations. Trips `BudgetExceededError({kind: 'tokens'})` when exceeded.
|
|
60
|
+
*
|
|
61
|
+
* Best-effort: enforcement depends on the backend reporting `usage`. Against a
|
|
62
|
+
* backend that returns no usage the cap is unmeasurable — the loop warns once and
|
|
63
|
+
* continues (it does NOT silently pretend the cap is in force); `maxToolIterations`
|
|
64
|
+
* remains the hard bound. Not yet supported on `generateStream` (throws 501).
|
|
65
|
+
*/
|
|
66
|
+
maxToolTokens?: number;
|
|
67
|
+
/**
|
|
68
|
+
* `toolMode: 'auto'` only. Cumulative cost cap across all iterations. The v1
|
|
69
|
+
* cost-per-call function returns 0 (no rate card yet) so this trips only when
|
|
70
|
+
* a test or follow-up wires a non-zero function — the seam is in place.
|
|
71
|
+
*
|
|
72
|
+
* Same best-effort caveat as `maxToolTokens`: cost is derived from backend usage,
|
|
73
|
+
* so a backend reporting no usage makes the cap unmeasurable (warn-once, continue).
|
|
74
|
+
* Not yet supported on `generateStream` (throws 501).
|
|
75
|
+
*/
|
|
76
|
+
maxCostUsd?: number;
|
|
77
|
+
/**
|
|
78
|
+
* `toolMode: 'auto'` only. When a single backend round emits multiple tool calls,
|
|
79
|
+
* `'parallel'` (default) runs handlers concurrently via `Promise.all`; `'serial'`
|
|
80
|
+
* runs them in order. Each handler is its own dispatch — no shared transaction.
|
|
81
|
+
*/
|
|
82
|
+
toolParallelism?: 'parallel' | 'serial';
|
|
83
|
+
/**
|
|
84
|
+
* `toolMode: 'auto'` only. Per-tool-result byte cap (JSON-stringified) before
|
|
85
|
+
* truncation. The model sees only the truncated form; the trace records the
|
|
86
|
+
* original size. Default 65_536.
|
|
87
|
+
*/
|
|
88
|
+
toolResultMaxBytes?: number;
|
|
89
|
+
/**
|
|
90
|
+
* `toolMode: 'auto'` only. How to validate tool-call arguments against the
|
|
91
|
+
* tool's `parameters` JSON Schema. v1 implements `'none'` (default); `'strict'`
|
|
92
|
+
* and `'lenient'` are reserved on the type surface but throw `501` at the loop
|
|
93
|
+
* entry until a JSON Schema validator is wired (Harper today uses Joi for
|
|
94
|
+
* internal validation and passes JSON Schema through to backends; adopting
|
|
95
|
+
* Ajv is a separate decision).
|
|
96
|
+
*/
|
|
97
|
+
toolArgValidation?: 'strict' | 'lenient' | 'none';
|
|
98
|
+
/**
|
|
99
|
+
* `toolMode: 'auto'` only. When a tool handler throws, `'recover'` (default)
|
|
100
|
+
* appends the error as a tool result so the model can react; `'abort'` returns
|
|
101
|
+
* the error to the caller with the full trace attached.
|
|
102
|
+
*/
|
|
103
|
+
toolErrorMode?: 'recover' | 'abort';
|
|
104
|
+
/**
|
|
105
|
+
* `toolMode: 'auto'` only. When true, the resolved `GenerateResult.trace` is
|
|
106
|
+
* populated with per-iteration entries. On error paths the trace is always
|
|
107
|
+
* returned (via `BudgetExceededError.partialTrace`) regardless of this flag.
|
|
108
|
+
*/
|
|
109
|
+
includeToolTrace?: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* `toolMode: 'auto'` only. Caller-supplied dispatch table keyed by tool name.
|
|
112
|
+
* The model emits a tool call → loop looks up the handler here. v1 contract;
|
|
113
|
+
* the registry seam (#615) replaces this with a `scope.resources` lookup.
|
|
114
|
+
*
|
|
115
|
+
* Lookup is own-property + callable only (a model-emitted name matching an Object
|
|
116
|
+
* prototype member never resolves a built-in). Missing-handler behavior splits on
|
|
117
|
+
* whether the name was declared in `tools`: a DECLARED name with no handler is a
|
|
118
|
+
* caller config bug (hard `ClientError(400)`); an UNDECLARED name is treated as a
|
|
119
|
+
* model hallucination and routed through `toolErrorMode` (recover feeds an
|
|
120
|
+
* "unknown tool" error back to the model; abort stops the loop).
|
|
121
|
+
*/
|
|
122
|
+
toolHandlers?: Record<string, ToolHandler>;
|
|
123
|
+
/**
|
|
124
|
+
* `toolMode: 'auto'` only. Optional hook called as turns flow through the loop
|
|
125
|
+
* (user → assistant → tool → assistant → ...). Structural shape — not coupled
|
|
126
|
+
* to #511's `ConversationResource` so callers can plug in their own store.
|
|
127
|
+
*/
|
|
128
|
+
conversation?: ConversationAppender;
|
|
129
|
+
/** Accepted in Phase 1; activates with #511 (ConversationResource). */
|
|
130
|
+
conversationId?: string;
|
|
131
|
+
signal?: AbortSignal;
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Generation input. Tools and system prompt live here (with `messages`) because
|
|
136
|
+
* they are model-facing content. Caller must use the object form to supply tools:
|
|
137
|
+
* `{ messages, tools, system }`.
|
|
138
|
+
*/
|
|
139
|
+
export type GenerateInput = string | Message[] | { messages: Message[]; tools?: ToolDef[]; system?: string };
|
|
140
|
+
|
|
141
|
+
/** Options handed to a backend: caller-supplied opts plus runtime accounting context. */
|
|
142
|
+
export type BackendOpts<TOpts> = TOpts & { accounting: AccountingContext };
|
|
143
|
+
|
|
144
|
+
export interface AccountingContext {
|
|
145
|
+
/** Free-form tenant identifier (v1). Pending canonical model from #510 comment thread. */
|
|
146
|
+
tenantId?: string;
|
|
147
|
+
/** Resource path (e.g. matched route) of the calling Resource, if any. */
|
|
148
|
+
app?: string;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Backend call result.
|
|
153
|
+
*
|
|
154
|
+
* `pending` is reserved for future long-running operations (Bedrock batch, fabric LROs);
|
|
155
|
+
* no Phase 1 backend emits it. The public `Models` facade unwraps `completed` and
|
|
156
|
+
* matches #510's `Promise<Float32Array[]>` / `Promise<GenerateResult>` signatures,
|
|
157
|
+
* throwing if a backend returns `pending` until the LRO surface is added.
|
|
158
|
+
*/
|
|
159
|
+
export type ModelCallResult<T> =
|
|
160
|
+
| { status: 'completed'; output: T; usage?: TokenUsage }
|
|
161
|
+
| { status: 'pending'; operationId: string; resumeAfter?: number };
|
|
162
|
+
|
|
163
|
+
export interface TokenUsage {
|
|
164
|
+
promptTokens?: number;
|
|
165
|
+
completionTokens?: number;
|
|
166
|
+
embeddingTokens?: number;
|
|
167
|
+
gpuMs?: number;
|
|
168
|
+
latencyMs?: number;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export interface Message {
|
|
172
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
173
|
+
content: string;
|
|
174
|
+
/** When `role === 'assistant'`: tool calls the model requested. */
|
|
175
|
+
toolCalls?: ToolCall[];
|
|
176
|
+
/** When `role === 'tool'`: id of the tool call this message responds to. */
|
|
177
|
+
toolCallId?: string;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
export interface ToolDef {
|
|
181
|
+
name: string;
|
|
182
|
+
description: string;
|
|
183
|
+
/** JSON Schema for the tool's input. */
|
|
184
|
+
parameters: object;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export interface ToolCall {
|
|
188
|
+
id: string;
|
|
189
|
+
name: string;
|
|
190
|
+
/** Parsed tool input. Backends that deliver stringified JSON (OpenAI) normalize before yielding. */
|
|
191
|
+
arguments: object;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export interface GenerateResult {
|
|
195
|
+
content: string;
|
|
196
|
+
toolCalls?: ToolCall[];
|
|
197
|
+
/** Why generation stopped. Backend-agnostic; backends map their native reasons. */
|
|
198
|
+
finishReason: 'stop' | 'length' | 'tool_calls' | 'content_filter';
|
|
199
|
+
/**
|
|
200
|
+
* Token / cost usage for this call. Pass-through from the backend's
|
|
201
|
+
* `ModelCallResult.usage` so callers (and the `toolMode: 'auto'` loop) can
|
|
202
|
+
* cap cumulative budgets without re-querying analytics.
|
|
203
|
+
*
|
|
204
|
+
* Backends MUST NOT set this field on the `output` they return — the framework
|
|
205
|
+
* (`Models.generate`) injects it from `ModelCallResult.usage`, which is the
|
|
206
|
+
* authoritative source. A backend that sets both gets the framework's value;
|
|
207
|
+
* easy to miss but unambiguous: usage lives at the call-result layer.
|
|
208
|
+
*/
|
|
209
|
+
usage?: TokenUsage;
|
|
210
|
+
/**
|
|
211
|
+
* `toolMode: 'auto'` only, and only when `includeToolTrace: true` (or when an
|
|
212
|
+
* error path attaches `partialTrace` via `BudgetExceededError`). One entry per
|
|
213
|
+
* tool invocation, in the order it ran.
|
|
214
|
+
*/
|
|
215
|
+
trace?: ToolTraceEntry[];
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Per-tool-invocation record emitted by the `toolMode: 'auto'` loop. Entries land
|
|
220
|
+
* on `GenerateResult.trace` (success path, when `includeToolTrace`) or on
|
|
221
|
+
* `BudgetExceededError.partialTrace` (any error path). Always in invocation order.
|
|
222
|
+
*/
|
|
223
|
+
export interface ToolTraceEntry {
|
|
224
|
+
/** 1-based iteration index — which backend round this tool call belongs to. */
|
|
225
|
+
iteration: number;
|
|
226
|
+
toolCallId: string;
|
|
227
|
+
toolName: string;
|
|
228
|
+
arguments: object;
|
|
229
|
+
/** JSON-stringified result, possibly truncated. Absent on handler error. */
|
|
230
|
+
result?: string;
|
|
231
|
+
/** True when `result` was clipped to `toolResultMaxBytes`. */
|
|
232
|
+
truncated?: boolean;
|
|
233
|
+
/** Pre-truncation byte length of the JSON-stringified result. */
|
|
234
|
+
totalBytes?: number;
|
|
235
|
+
/** Wall-clock duration of the handler call. */
|
|
236
|
+
durationMs: number;
|
|
237
|
+
/** Set when the handler threw. The loop's `toolErrorMode` decides recovery. */
|
|
238
|
+
error?: { name: string; message: string };
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Context handed to a `ToolHandler`. v1: caller-supplied dispatch table. The
|
|
243
|
+
* `signal` is the composed iteration-level signal (caller signal ∪ budget-trip
|
|
244
|
+
* cancellation), so a long-running handler stops promptly when the loop trips a cap.
|
|
245
|
+
*/
|
|
246
|
+
export interface ToolHandlerContext {
|
|
247
|
+
signal?: AbortSignal;
|
|
248
|
+
accounting: AccountingContext;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Caller-supplied tool implementation. Return value is JSON-serialized into a
|
|
253
|
+
* `tool`-role message and fed back to the model on the next iteration. Throws are
|
|
254
|
+
* caught by the loop and routed by `toolErrorMode` (`'recover'` | `'abort'`).
|
|
255
|
+
*
|
|
256
|
+
* The `args` type parameter lets typed apps assign concrete handler signatures
|
|
257
|
+
* (`const search: ToolHandler<{query: string}> = ...`) without contravariance
|
|
258
|
+
* complaints under `strictFunctionTypes`. Defaults to `any` so the unparameterized
|
|
259
|
+
* `ToolHandler` stays assignable from arbitrary handlers in untyped callers.
|
|
260
|
+
*/
|
|
261
|
+
export type ToolHandler<T = any> = (args: T, ctx: ToolHandlerContext) => unknown | Promise<unknown>;
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Optional hook the loop calls as conversation turns flow. Structural so the
|
|
265
|
+
* built-in `ConversationResource` (#511) AND ad-hoc stores can satisfy it.
|
|
266
|
+
*
|
|
267
|
+
* **Contract:**
|
|
268
|
+
* - The loop appends ONLY new turns it produces (assistant + tool turns from each
|
|
269
|
+
* round). It does NOT echo the caller's input back — the caller owns turn 0.
|
|
270
|
+
* - `append` is `await`ed inline between loop steps, giving the appender ordering
|
|
271
|
+
* + back-pressure. Slow appenders pause the loop.
|
|
272
|
+
* - Appenders SHOULD NOT throw. A throw propagates as the loop's terminal error
|
|
273
|
+
* (bypassing `BudgetExceededError` / `ToolHandlerError` shapes) and discards any
|
|
274
|
+
* in-progress trace. If your appender CAN fail recoverably, catch internally and
|
|
275
|
+
* log; only surface unrecoverable persistence failures.
|
|
276
|
+
*/
|
|
277
|
+
export interface ConversationAppender {
|
|
278
|
+
append(turn: ConversationTurn): Promise<void>;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
export type ConversationTurn =
|
|
282
|
+
| { role: 'user'; content: string }
|
|
283
|
+
| { role: 'assistant'; content: string; toolCalls?: ToolCall[] }
|
|
284
|
+
| { role: 'tool'; toolCallId: string; content: string };
|
|
285
|
+
|
|
286
|
+
export interface GenerateChunk {
|
|
287
|
+
/** Incremental text appended since the previous chunk. */
|
|
288
|
+
deltaContent?: string;
|
|
289
|
+
/**
|
|
290
|
+
* Tool-call deltas accumulating across chunks. A streaming backend may deliver
|
|
291
|
+
* the same tool-call id multiple times with partial fields as it builds up.
|
|
292
|
+
*/
|
|
293
|
+
deltaToolCalls?: Partial<ToolCall>[];
|
|
294
|
+
/** Set on the final chunk. */
|
|
295
|
+
finishReason?: GenerateResult['finishReason'];
|
|
296
|
+
}
|
package/resources/openApi.ts
CHANGED
|
@@ -1,20 +1,9 @@
|
|
|
1
1
|
import { packageJson } from '../utility/packageUtils.js';
|
|
2
2
|
import { Resources } from './Resources.ts';
|
|
3
3
|
import { Resource } from './Resource.ts';
|
|
4
|
+
import { DATA_TYPES } from './jsonSchemaTypes.ts';
|
|
4
5
|
|
|
5
6
|
const OPENAPI_VERSION = '3.0.3';
|
|
6
|
-
// Maps graphql primitive types to open api types
|
|
7
|
-
const DATA_TYPES = {
|
|
8
|
-
Int: 'integer',
|
|
9
|
-
Float: 'number',
|
|
10
|
-
Long: 'integer',
|
|
11
|
-
ID: 'string',
|
|
12
|
-
String: 'string',
|
|
13
|
-
Boolean: 'boolean',
|
|
14
|
-
Date: 'string',
|
|
15
|
-
Bytes: 'string',
|
|
16
|
-
BigInt: 'integer',
|
|
17
|
-
};
|
|
18
7
|
|
|
19
8
|
const SCHEMA_COMP_REF = '#/components/schemas/';
|
|
20
9
|
const DESCRIPTION_200 = 'successful operation';
|
|
@@ -62,37 +51,70 @@ export function generateJsonApi(resources: Resources, serverHttpURL: string) {
|
|
|
62
51
|
api.components.schemas[def.type] = {};
|
|
63
52
|
const defProps: Record<string, unknown> = {};
|
|
64
53
|
const defRequired: string[] = [];
|
|
65
|
-
|
|
54
|
+
// Iterate the Array form of the type's attributes. After the graphql parser
|
|
55
|
+
// alignment, top-level typeDefs from `resources.allTypes` carry both
|
|
56
|
+
// `.attributes` (Array, internal) and `.properties` (Record, canonical) —
|
|
57
|
+
// we want the Array here. For nested sub-attribute defs (passed via
|
|
58
|
+
// `prop` recursion below), `.properties` remains the Array form attached
|
|
59
|
+
// by `Object.defineProperty` in graphql.ts. Coalesce so both call sites work.
|
|
60
|
+
const subAttributes = def.attributes ?? def.properties;
|
|
61
|
+
if (!subAttributes) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
for (const prop of subAttributes) {
|
|
65
|
+
// @hidden: suppress the property from the emitted OpenAPI document.
|
|
66
|
+
if (prop.hidden) continue;
|
|
67
|
+
let entry: any;
|
|
66
68
|
if (DATA_TYPES[prop.type]) {
|
|
67
|
-
|
|
69
|
+
entry = new Type(DATA_TYPES[prop.type], prop.type);
|
|
68
70
|
} else if (prop.properties) {
|
|
69
|
-
|
|
71
|
+
entry = new Ref(prop.type);
|
|
70
72
|
includeDefinitionInSchema(prop);
|
|
71
|
-
} else if (prop.elements
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
} else if (prop.type === 'array' && prop.elements) {
|
|
74
|
+
// Sub-attribute array. Primitive element types (e.g. [String], [Int]) go to a
|
|
75
|
+
// Type-typed items entry; complex-typed elements recurse like the top-level path.
|
|
76
|
+
if (prop.elements.properties) {
|
|
77
|
+
entry = new ArrayRef(prop.elements.type);
|
|
78
|
+
includeDefinitionInSchema(prop.elements);
|
|
79
|
+
} else if (DATA_TYPES[prop.elements.type]) {
|
|
80
|
+
entry = { type: 'array', items: new Type(DATA_TYPES[prop.elements.type], prop.elements.type) };
|
|
81
|
+
} else {
|
|
82
|
+
// Unknown / `Any` element — emit a loose array shape rather than dropping.
|
|
83
|
+
entry = { type: 'array', items: { format: prop.elements.type } };
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (entry) {
|
|
87
|
+
if (prop.description) entry.description = prop.description;
|
|
88
|
+
defProps[prop.name] = entry;
|
|
74
89
|
}
|
|
75
90
|
if (prop.nullable === false) {
|
|
76
91
|
defRequired.push(prop.name);
|
|
77
92
|
}
|
|
78
93
|
}
|
|
79
94
|
// ... down here we actually define the value for the new type.
|
|
80
|
-
api.components.schemas[def.type] = new ResourceSchema(defProps, !def.sealed, defRequired);
|
|
95
|
+
api.components.schemas[def.type] = new ResourceSchema(defProps, !def.sealed, defRequired, def.description);
|
|
81
96
|
}
|
|
82
97
|
};
|
|
83
98
|
|
|
84
99
|
for (const [, resource] of resources) {
|
|
85
100
|
// skip invalid and error resources
|
|
86
101
|
if (!resource.path || resource.Resource.isError) continue;
|
|
102
|
+
// @hidden type-level: drop the Resource from the OpenAPI document entirely.
|
|
103
|
+
// Data remains queryable through Harper's other interfaces under RBAC.
|
|
104
|
+
if (resource.Resource.hidden === true) continue;
|
|
87
105
|
|
|
88
106
|
const { path } = resource;
|
|
89
107
|
const strippedPath = path.split('/').pop(); // strip any namespace from path
|
|
90
108
|
let { attributes, sealed } = resource.Resource;
|
|
91
109
|
const { prototype, primaryKey = 'id' } = resource.Resource;
|
|
110
|
+
// Class-level description from @table docstring or programmatic `static description`.
|
|
111
|
+
// Used as both the schema-level `description` (in components.schemas) and as a prefix
|
|
112
|
+
// on each path-level operation description.
|
|
113
|
+
const tableDoc: string | undefined = resource.Resource.description;
|
|
92
114
|
if (!attributes && resources.allTypes.has(resource.path)) {
|
|
93
115
|
const possibleType = resources.allTypes.get(resource.path);
|
|
94
116
|
sealed = possibleType.sealed;
|
|
95
|
-
attributes = possibleType.properties;
|
|
117
|
+
attributes = possibleType.attributes ?? possibleType.properties;
|
|
96
118
|
}
|
|
97
119
|
if (!primaryKey) continue;
|
|
98
120
|
const props = {};
|
|
@@ -100,7 +122,10 @@ export function generateJsonApi(resources: Resources, serverHttpURL: string) {
|
|
|
100
122
|
const resourceRequired: string[] = [];
|
|
101
123
|
|
|
102
124
|
if (attributes) {
|
|
103
|
-
for (const
|
|
125
|
+
for (const attr of attributes) {
|
|
126
|
+
const { type, name, elements, relationship, definition, nullable, description, hidden } = attr;
|
|
127
|
+
// @hidden field-level: suppress the attribute from props, query params, and required.
|
|
128
|
+
if (hidden) continue;
|
|
104
129
|
const def = definition ?? elements?.definition;
|
|
105
130
|
if (def) {
|
|
106
131
|
includeDefinitionInSchema(def);
|
|
@@ -134,6 +159,10 @@ export function generateJsonApi(resources: Resources, serverHttpURL: string) {
|
|
|
134
159
|
props[name] = new Type(DATA_TYPES[type], type);
|
|
135
160
|
}
|
|
136
161
|
}
|
|
162
|
+
// Attach per-property description so it surfaces in Swagger UI / Redoc.
|
|
163
|
+
if (description && props[name] && typeof props[name] === 'object' && !('$ref' in props[name])) {
|
|
164
|
+
(props[name] as { description?: string }).description = description;
|
|
165
|
+
}
|
|
137
166
|
queryParamsArray.push(new Parameter(name, 'query', props[name]));
|
|
138
167
|
}
|
|
139
168
|
}
|
|
@@ -144,7 +173,7 @@ export function generateJsonApi(resources: Resources, serverHttpURL: string) {
|
|
|
144
173
|
primaryKeyParam.description = 'primary key of record';
|
|
145
174
|
const propertyParamPath = new Parameter('property', 'path', { enum: propsArray });
|
|
146
175
|
propertyParamPath.required = true;
|
|
147
|
-
api.components.schemas[strippedPath] = new ResourceSchema(props, !sealed, resourceRequired);
|
|
176
|
+
api.components.schemas[strippedPath] = new ResourceSchema(props, !sealed, resourceRequired, tableDoc);
|
|
148
177
|
|
|
149
178
|
const hasPost = prototype.post !== Resource.prototype.post || prototype.update;
|
|
150
179
|
const hasPut = typeof prototype.put === 'function';
|
|
@@ -152,6 +181,10 @@ export function generateJsonApi(resources: Resources, serverHttpURL: string) {
|
|
|
152
181
|
const hasDelete = typeof prototype.delete === 'function';
|
|
153
182
|
const hasPatch = typeof prototype.patch === 'function';
|
|
154
183
|
|
|
184
|
+
// Prepend the class-level docstring to each verb's path-level description when present.
|
|
185
|
+
// Otherwise the existing hardcoded sentence stands alone.
|
|
186
|
+
const withDoc = (sentence: string) => (tableDoc ? `${tableDoc} ${sentence}` : sentence);
|
|
187
|
+
|
|
155
188
|
const url = `/${path}/`;
|
|
156
189
|
if (!api.paths[url]) {
|
|
157
190
|
api.paths[url] = {};
|
|
@@ -176,7 +209,7 @@ export function generateJsonApi(resources: Resources, serverHttpURL: string) {
|
|
|
176
209
|
}
|
|
177
210
|
),
|
|
178
211
|
},
|
|
179
|
-
'create a new record auto-assigning a primary key'
|
|
212
|
+
withDoc('create a new record auto-assigning a primary key')
|
|
180
213
|
);
|
|
181
214
|
}
|
|
182
215
|
|
|
@@ -192,7 +225,7 @@ export function generateJsonApi(resources: Resources, serverHttpURL: string) {
|
|
|
192
225
|
queryParamsArray,
|
|
193
226
|
security,
|
|
194
227
|
{ '200': new Response200({ type: 'array', items: { $ref: SCHEMA_COMP_REF + strippedPath } }) },
|
|
195
|
-
'search for records by the specified property name and value pairs'
|
|
228
|
+
withDoc('search for records by the specified property name and value pairs')
|
|
196
229
|
);
|
|
197
230
|
}
|
|
198
231
|
|
|
@@ -200,7 +233,7 @@ export function generateJsonApi(resources: Resources, serverHttpURL: string) {
|
|
|
200
233
|
api.paths[url].delete = new Delete(
|
|
201
234
|
queryParamsArray,
|
|
202
235
|
security,
|
|
203
|
-
'delete all the records that match the provided query',
|
|
236
|
+
withDoc('delete all the records that match the provided query'),
|
|
204
237
|
{
|
|
205
238
|
'204': new Response204(),
|
|
206
239
|
}
|
|
@@ -225,7 +258,7 @@ export function generateJsonApi(resources: Resources, serverHttpURL: string) {
|
|
|
225
258
|
[primaryKeyParam],
|
|
226
259
|
security,
|
|
227
260
|
{ '200': new Response200({ $ref: SCHEMA_COMP_REF + strippedPath }) },
|
|
228
|
-
'retrieve a record by its primary key'
|
|
261
|
+
withDoc('retrieve a record by its primary key')
|
|
229
262
|
);
|
|
230
263
|
}
|
|
231
264
|
|
|
@@ -235,7 +268,7 @@ export function generateJsonApi(resources: Resources, serverHttpURL: string) {
|
|
|
235
268
|
security,
|
|
236
269
|
strippedPath,
|
|
237
270
|
{ '200': new Response200({ $ref: SCHEMA_COMP_REF + strippedPath }) },
|
|
238
|
-
"create or update the record with the URL path that maps to the record's primary key"
|
|
271
|
+
withDoc("create or update the record with the URL path that maps to the record's primary key")
|
|
239
272
|
);
|
|
240
273
|
}
|
|
241
274
|
|
|
@@ -245,7 +278,7 @@ export function generateJsonApi(resources: Resources, serverHttpURL: string) {
|
|
|
245
278
|
security,
|
|
246
279
|
strippedPath,
|
|
247
280
|
{ '200': new Response200({ $ref: SCHEMA_COMP_REF + strippedPath }) },
|
|
248
|
-
"patch the record with the URL path that maps to the record's primary key"
|
|
281
|
+
withDoc("patch the record with the URL path that maps to the record's primary key")
|
|
249
282
|
);
|
|
250
283
|
}
|
|
251
284
|
|
|
@@ -253,7 +286,7 @@ export function generateJsonApi(resources: Resources, serverHttpURL: string) {
|
|
|
253
286
|
api.paths[urlById].delete = new Delete(
|
|
254
287
|
[primaryKeyParam],
|
|
255
288
|
security,
|
|
256
|
-
'delete a record with the given primary key',
|
|
289
|
+
withDoc('delete a record with the given primary key'),
|
|
257
290
|
{
|
|
258
291
|
'204': new Response204(),
|
|
259
292
|
}
|
|
@@ -273,7 +306,7 @@ export function generateJsonApi(resources: Resources, serverHttpURL: string) {
|
|
|
273
306
|
'200': new Response200({ enum: propsArray }),
|
|
274
307
|
},
|
|
275
308
|
|
|
276
|
-
'used to retrieve the specified property of the specified record'
|
|
309
|
+
withDoc('used to retrieve the specified property of the specified record')
|
|
277
310
|
);
|
|
278
311
|
}
|
|
279
312
|
}
|
|
@@ -377,11 +410,12 @@ function Delete(parameters, security, description, responses) {
|
|
|
377
410
|
this.responses = responses;
|
|
378
411
|
}
|
|
379
412
|
|
|
380
|
-
function ResourceSchema(properties, additionalProperties?: boolean, required?: string[]) {
|
|
413
|
+
function ResourceSchema(properties, additionalProperties?: boolean, required?: string[], description?: string) {
|
|
381
414
|
this.type = 'object';
|
|
382
415
|
this.properties = properties;
|
|
383
416
|
this.additionalProperties = additionalProperties;
|
|
384
417
|
this.required = required;
|
|
418
|
+
if (description) this.description = description;
|
|
385
419
|
}
|
|
386
420
|
|
|
387
421
|
function Type(type, format) {
|
package/resources/replayLogs.ts
CHANGED
|
@@ -29,11 +29,14 @@ export function replayLogs(rootStore: RocksDatabase, tables: any): Promise<void>
|
|
|
29
29
|
try {
|
|
30
30
|
purgedLogs = purgeAgedLogs(rootStore);
|
|
31
31
|
} catch (error) {
|
|
32
|
-
logger.warn(
|
|
32
|
+
logger.warn(
|
|
33
|
+
`Failed to purge aged transaction logs before replay in ${(rootStore as any).databaseName} database`,
|
|
34
|
+
error
|
|
35
|
+
);
|
|
33
36
|
}
|
|
34
37
|
if (purgedLogs.length > 0) {
|
|
35
38
|
logger.info(
|
|
36
|
-
`Purged ${purgedLogs.length} aged transaction-log file(s) before replay in ${rootStore.databaseName} database`
|
|
39
|
+
`Purged ${purgedLogs.length} aged transaction-log file(s) before replay in ${(rootStore as any).databaseName} database`
|
|
37
40
|
);
|
|
38
41
|
}
|
|
39
42
|
const tableById = new Map<number, typeof Resource>();
|
|
@@ -46,8 +49,8 @@ export function replayLogs(rootStore: RocksDatabase, tables: any): Promise<void>
|
|
|
46
49
|
let lastTimestamp = 0;
|
|
47
50
|
let writes = 0;
|
|
48
51
|
let skipped = 0;
|
|
49
|
-
const txnLog: RocksTransactionLogStore = rootStore.auditStore;
|
|
50
|
-
for (const auditRecord of txnLog.getRange({ startFromLastFlushed: true, readUncommitted: true })) {
|
|
52
|
+
const txnLog: RocksTransactionLogStore = (rootStore as any).auditStore;
|
|
53
|
+
for (const auditRecord of txnLog.getRange({ startFromLastFlushed: true, readUncommitted: true }) as any) {
|
|
51
54
|
const {
|
|
52
55
|
type,
|
|
53
56
|
tableId,
|
|
@@ -67,11 +70,17 @@ export function replayLogs(rootStore: RocksDatabase, tables: any): Promise<void>
|
|
|
67
70
|
}
|
|
68
71
|
const Table = tableById.get(tableId);
|
|
69
72
|
if (!Table) continue;
|
|
70
|
-
const context: Context = {
|
|
71
|
-
|
|
73
|
+
const context: Context = {
|
|
74
|
+
nodeId,
|
|
75
|
+
alreadyLogged: true,
|
|
76
|
+
version,
|
|
77
|
+
expiresAt,
|
|
78
|
+
user: { username },
|
|
79
|
+
} as any;
|
|
80
|
+
const { primaryStore } = Table as any;
|
|
72
81
|
const target = new RequestTarget();
|
|
73
82
|
target.id = null;
|
|
74
|
-
const tableInstance = Table.getResource(target, context, {});
|
|
83
|
+
const tableInstance: any = Table.getResource(target, context, {});
|
|
75
84
|
// TODO: If this throws an error due to being unable to access structures, we need to iterate through
|
|
76
85
|
// other transaction logs to get the latest structure. Ultimately we may have to skip records
|
|
77
86
|
if (!warnedReplayHappening) {
|
|
@@ -177,9 +186,11 @@ export function replayLogs(rootStore: RocksDatabase, tables: any): Promise<void>
|
|
|
177
186
|
} catch (error) {
|
|
178
187
|
logger.error('Error committing replay transaction', error);
|
|
179
188
|
}
|
|
180
|
-
if (writes > 0) logger.warn(`Replayed ${writes} records in ${rootStore.databaseName} database`);
|
|
189
|
+
if (writes > 0) logger.warn(`Replayed ${writes} records in ${(rootStore as any).databaseName} database`);
|
|
181
190
|
if (skipped > 0)
|
|
182
|
-
logger.warn(
|
|
191
|
+
logger.warn(
|
|
192
|
+
`Skipped ${skipped} unrecoverable audit entries in ${(rootStore as any).databaseName} database during replay`
|
|
193
|
+
);
|
|
183
194
|
// we never actually release the lock because we only want to ever run one time
|
|
184
195
|
// rootStore.unlock('replayLogs');
|
|
185
196
|
});
|
|
@@ -40,3 +40,48 @@ export function classifyAuditEntryForReplay(
|
|
|
40
40
|
if ((action & RECORD_BEARING_FLAGS) !== 0 && !hasRecord) return 'missing-record';
|
|
41
41
|
return null;
|
|
42
42
|
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Wraps a transaction-log query iterator so a corrupt/torn frame ends that log's iteration
|
|
46
|
+
* cleanly instead of escaping as an uncaughtException. rocksdb-js throws a bounded RangeError
|
|
47
|
+
* when an entry's framing is broken; framing loss means the next entry can't be located, so the
|
|
48
|
+
* frame marks end-of-log (entries before it were already yielded) and startup replay /
|
|
49
|
+
* replication broadcast continue. `onCorruptFrame` fires once, latched — kept a callback (not a
|
|
50
|
+
* direct log) so this module stays out of the Harper module graph and is unit-testable.
|
|
51
|
+
*/
|
|
52
|
+
export function endIteratorOnCorruptFrame<T>(
|
|
53
|
+
iterator: Iterator<T>,
|
|
54
|
+
onCorruptFrame: (error: RangeError) => void
|
|
55
|
+
): IterableIterator<T> {
|
|
56
|
+
let stopped = false;
|
|
57
|
+
return {
|
|
58
|
+
[Symbol.iterator]() {
|
|
59
|
+
return this;
|
|
60
|
+
},
|
|
61
|
+
next(): IteratorResult<T> {
|
|
62
|
+
if (stopped) return { done: true, value: undefined };
|
|
63
|
+
try {
|
|
64
|
+
return iterator.next();
|
|
65
|
+
} catch (error) {
|
|
66
|
+
// Key on the class, not the message: the framing RangeError's wording is
|
|
67
|
+
// version-dependent (1.4.2 added hex offsets). Anything else re-throws.
|
|
68
|
+
if (!(error instanceof RangeError)) throw error;
|
|
69
|
+
stopped = true;
|
|
70
|
+
onCorruptFrame(error);
|
|
71
|
+
return { done: true, value: undefined };
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
// Forward early termination (for-of break/return/throw) so the source's cleanup runs;
|
|
75
|
+
// mark stopped first. Current rocksdb-js implements neither — hence the protocol defaults.
|
|
76
|
+
return(value?: any): IteratorResult<T> {
|
|
77
|
+
stopped = true;
|
|
78
|
+
if (typeof iterator.return === 'function') return iterator.return(value);
|
|
79
|
+
return { done: true, value };
|
|
80
|
+
},
|
|
81
|
+
throw(error?: any): IteratorResult<T> {
|
|
82
|
+
stopped = true;
|
|
83
|
+
if (typeof iterator.throw === 'function') return iterator.throw(error);
|
|
84
|
+
throw error;
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|