@harperfast/harper 5.0.25 → 5.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +168 -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 +6 -6
- 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 +125 -15
- package/components/anthropic/index.ts +547 -0
- package/components/bedrock/index.ts +823 -0
- package/components/componentLoader.ts +63 -32
- package/components/deployLifecycle.ts +161 -0
- package/components/deploymentOperations.ts +173 -0
- package/components/deploymentRecorder.ts +402 -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 +593 -0
- package/components/mcp/session.ts +151 -0
- package/components/mcp/sessionRegistry.ts +140 -0
- package/components/mcp/toolRegistry.ts +292 -0
- package/components/mcp/tools/application.ts +603 -0
- package/components/mcp/tools/operations.ts +283 -0
- package/components/mcp/tools/schemas/derive.ts +256 -0
- package/components/mcp/tools/schemas/operations.ts +245 -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 +211 -60
- package/components/operationsValidation.js +3 -3
- 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 +74 -0
- 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 +158 -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 +6 -6
- 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 +105 -9
- 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 +63 -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 +81 -0
- package/dist/components/deploymentRecorder.js +401 -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 +515 -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 +150 -0
- package/dist/components/mcp/toolRegistry.js +176 -0
- package/dist/components/mcp/toolRegistry.js.map +1 -0
- package/dist/components/mcp/tools/application.d.ts +58 -0
- package/dist/components/mcp/tools/application.js +549 -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 +303 -0
- package/dist/components/mcp/tools/operations.js.map +1 -0
- package/dist/components/mcp/tools/schemas/derive.d.ts +36 -0
- package/dist/components/mcp/tools/schemas/derive.js +216 -0
- package/dist/components/mcp/tools/schemas/derive.js.map +1 -0
- package/dist/components/mcp/tools/schemas/operations.d.ts +27 -0
- package/dist/components/mcp/tools/schemas/operations.js +243 -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 +198 -52
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.d.ts +2 -2
- package/dist/components/operationsValidation.js +3 -3
- 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 +7 -1
- package/dist/resources/RecordEncoder.js +5 -2
- 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 +9 -5
- package/dist/resources/Resource.js +37 -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 +46 -27
- package/dist/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/resources/Table.d.ts +59 -329
- package/dist/resources/Table.js +267 -107
- 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 +5 -0
- package/dist/resources/analytics/read.js +16 -5
- 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 +13 -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 +13 -0
- package/dist/resources/databases.js +160 -52
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/graphql.d.ts +1 -7
- package/dist/resources/graphql.js +224 -174
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +16 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +308 -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/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/replayLogs.js +7 -1
- package/dist/resources/replayLogs.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 +14 -14
- 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 +44 -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-2-0.d.ts +6 -0
- package/dist/upgrade/directives/5-2-0.js +77 -0
- package/dist/upgrade/directives/5-2-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 +3 -3
- package/dist/upgrade/upgradePrompt.js +65 -30
- 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 +56 -0
- package/dist/utility/hdbTerms.js +56 -0
- 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 +87 -51
- 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 +11 -15
- package/dist/utility/lmdb/OpenDBIObject.js +54 -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 +176 -81
- 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 +65 -28
- 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 +79 -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 +37 -22
- 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 +12 -4
- package/resources/RequestTarget.ts +2 -0
- package/resources/Resource.ts +89 -56
- package/resources/ResourceInterface.ts +44 -21
- package/resources/Resources.ts +8 -8
- package/resources/RocksIndexStore.ts +3 -0
- package/resources/RocksTransactionLogStore.ts +47 -28
- package/resources/Table.ts +386 -214
- package/resources/analytics/metadata.ts +1 -0
- package/resources/analytics/read.ts +24 -6
- package/resources/analytics/write.ts +240 -17
- package/resources/auditStore.ts +28 -19
- package/resources/blob.ts +53 -53
- package/resources/dataLoader.ts +4 -4
- package/resources/databases.ts +190 -71
- package/resources/graphql.ts +227 -164
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +294 -65
- package/resources/indexes/vector.ts +17 -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/replayLogs.ts +15 -7
- package/resources/roles.ts +62 -67
- package/resources/search.ts +355 -135
- package/resources/tracked.ts +8 -8
- package/resources/transaction.ts +8 -8
- package/resources/transactionBroadcast.ts +3 -3
- 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 +2 -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/studio/web/assets/{index-CmtPP0YO.js → index-COfIkCT-.js} +5 -5
- package/studio/web/assets/index-COfIkCT-.js.map +1 -0
- package/studio/web/assets/{index.lazy-C8jvGtlu.js → index.lazy-CIvl7Fj9.js} +2 -2
- package/studio/web/assets/{index.lazy-C8jvGtlu.js.map → index.lazy-CIvl7Fj9.js.map} +1 -1
- package/studio/web/assets/{profile-O0DYlJUv.js → profile-B2ZVB--r.js} +2 -2
- package/studio/web/assets/{profile-O0DYlJUv.js.map → profile-B2ZVB--r.js.map} +1 -1
- package/studio/web/assets/{status-BIlJkJby.js → status-Db6WBmhf.js} +2 -2
- package/studio/web/assets/{status-BIlJkJby.js.map → status-Db6WBmhf.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/{UpgradeObjects.js → UpgradeObjects.ts} +3 -6
- package/upgrade/directives/5-2-0.ts +49 -0
- package/upgrade/directives/{directivesController.js → directivesController.ts} +16 -16
- package/upgrade/{directivesManager.js → directivesManager.ts} +7 -11
- package/upgrade/{upgradePrompt.js → upgradePrompt.ts} +8 -14
- 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 +56 -0
- package/utility/install/checkJWTTokensExist.js +1 -1
- package/utility/install/{installer.js → installer.ts} +38 -39
- 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 +43 -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} +136 -89
- package/utility/logging/{logRotator.js → logRotator.ts} +13 -13
- 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 +43 -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-CmtPP0YO.js.map +0 -1
- package/utility/globalSchema.js +0 -35
- package/utility/lmdb/OpenDBIObject.js +0 -31
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import * as fs from 'fs-extra';
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
import * as YAML from 'yaml';
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
import * as hdbTerms from '../utility/hdbTerms.ts';
|
|
8
|
+
import hdbLog from '../utility/logging/harper_logger.ts';
|
|
9
|
+
import * as systemInformation from '../utility/environment/systemInformation.ts';
|
|
10
|
+
import * as envMgr from '../utility/environment/environmentManager.ts';
|
|
11
|
+
import * as installation from '../utility/installation.ts';
|
|
12
12
|
envMgr.initSync();
|
|
13
13
|
|
|
14
14
|
const STATUSES = {
|
|
@@ -20,10 +20,10 @@ const STATUSES = {
|
|
|
20
20
|
|
|
21
21
|
let hdbRoot;
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
export default status;
|
|
24
24
|
|
|
25
25
|
async function status() {
|
|
26
|
-
let status = {
|
|
26
|
+
let status: any = {
|
|
27
27
|
harperdb: {
|
|
28
28
|
status: STATUSES.STOPPED,
|
|
29
29
|
},
|
package/bin/{stop.js → stop.ts}
RENAMED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import hdbLogger from '../utility/logging/harper_logger.ts';
|
|
4
|
+
import * as util from 'util';
|
|
5
|
+
import * as childProcess from 'child_process';
|
|
6
6
|
const exec = util.promisify(childProcess.exec);
|
|
7
|
-
|
|
7
|
+
import * as systemInformation from '../utility/environment/systemInformation.ts';
|
|
8
8
|
|
|
9
9
|
const STOP_MSG = 'Stopping Harper.';
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
export default stop;
|
|
12
12
|
|
|
13
13
|
async function stop() {
|
|
14
14
|
console.log(STOP_MSG);
|
package/bin/upgrade.js
CHANGED
|
@@ -6,17 +6,17 @@
|
|
|
6
6
|
* config file, a data model change requires a re-indexing script is run, etc.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
const env = require('../utility/environment/environmentManager.
|
|
9
|
+
const env = require('../utility/environment/environmentManager.ts');
|
|
10
10
|
env.initSync();
|
|
11
11
|
|
|
12
12
|
const chalk = require('chalk');
|
|
13
|
-
const hdbLogger = require('../utility/logging/harper_logger.
|
|
13
|
+
const hdbLogger = require('../utility/logging/harper_logger.ts');
|
|
14
14
|
const hdbTerms = require('../utility/hdbTerms.ts');
|
|
15
|
-
const directivesManager = require('../upgrade/directivesManager.
|
|
15
|
+
const directivesManager = require('../upgrade/directivesManager.ts');
|
|
16
16
|
const installation = require('../utility/installation.ts');
|
|
17
|
-
const hdbInfoController = require('../dataLayer/hdbInfoController.
|
|
18
|
-
const upgradePrompt = require('../upgrade/upgradePrompt.
|
|
19
|
-
const globalSchema = require('../utility/globalSchema.
|
|
17
|
+
const hdbInfoController = require('../dataLayer/hdbInfoController.ts');
|
|
18
|
+
const upgradePrompt = require('../upgrade/upgradePrompt.ts');
|
|
19
|
+
const globalSchema = require('../utility/globalSchema.ts');
|
|
20
20
|
const { packageJson } = require('../utility/packageUtils.js');
|
|
21
21
|
const promisify = require('util').promisify;
|
|
22
22
|
const pSchemaToGlobal = promisify(globalSchema.setSchemaDataToGlobal);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type Logger } from '../utility/logging/logger.ts';
|
|
2
2
|
import { getConfigObj, getConfigValue, getConfigPath } from '../config/configUtils.js';
|
|
3
|
-
import { CONFIG_PARAMS } from '../utility/hdbTerms.
|
|
4
|
-
import logger from '../utility/logging/harper_logger.
|
|
3
|
+
import { CONFIG_PARAMS } from '../utility/hdbTerms.ts';
|
|
4
|
+
import logger from '../utility/logging/harper_logger.ts';
|
|
5
|
+
import { broadcastDeployStart, broadcastDeployEnd } from './deployLifecycle.ts';
|
|
5
6
|
|
|
6
7
|
import { dirname, extname, join } from 'node:path';
|
|
7
8
|
import {
|
|
@@ -21,6 +22,7 @@ import { spawn } from 'node:child_process';
|
|
|
21
22
|
import { createReadStream, existsSync, readdirSync } from 'node:fs';
|
|
22
23
|
import { Readable } from 'node:stream';
|
|
23
24
|
import { pipeline } from 'node:stream/promises';
|
|
25
|
+
import { StringDecoder } from 'node:string_decoder';
|
|
24
26
|
|
|
25
27
|
import { extract } from 'tar-fs';
|
|
26
28
|
import gunzip from 'gunzip-maybe';
|
|
@@ -108,6 +110,21 @@ export function assertApplicationConfig(
|
|
|
108
110
|
}
|
|
109
111
|
}
|
|
110
112
|
|
|
113
|
+
/**
|
|
114
|
+
* Returns true when npm/git stderr indicates an SSH authentication failure —
|
|
115
|
+
* git exits 128 with the standard "could not read" message, or the SSH layer
|
|
116
|
+
* reports a missing uid (no SSH daemon user), explicit publickey denial, or
|
|
117
|
+
* an unverified host key.
|
|
118
|
+
*/
|
|
119
|
+
export function isSSHAuthFailure(stderr: string): boolean {
|
|
120
|
+
return (
|
|
121
|
+
stderr.includes('Could not read from remote repository') ||
|
|
122
|
+
stderr.includes('Permission denied (publickey)') ||
|
|
123
|
+
stderr.includes('No user exists for uid') ||
|
|
124
|
+
stderr.includes('Host key verification failed')
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
|
|
111
128
|
/**
|
|
112
129
|
* Extract an application given payload (content of the application) or package (npm-compatible identifier to the application).
|
|
113
130
|
*
|
|
@@ -131,11 +148,20 @@ export async function extractApplication(application: Application) {
|
|
|
131
148
|
// Resolve the tarball from the input
|
|
132
149
|
let tarballPath: string;
|
|
133
150
|
let tarball: Readable;
|
|
151
|
+
let shouldDeleteTarball = false;
|
|
152
|
+
|
|
134
153
|
if (application.payload) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
154
|
+
const payload = application.payload;
|
|
155
|
+
if (payload instanceof Readable) {
|
|
156
|
+
// Stream payloads (e.g. multipart file part from the operations API) are piped
|
|
157
|
+
// straight into extraction so multi-GB components don't have to materialize as a Buffer.
|
|
158
|
+
tarball = payload;
|
|
159
|
+
} else if (typeof payload === 'string') {
|
|
160
|
+
// base64 string payload
|
|
161
|
+
tarball = Readable.from(Buffer.from(payload, 'base64'));
|
|
162
|
+
} else {
|
|
163
|
+
tarball = Readable.from(payload as Buffer);
|
|
164
|
+
}
|
|
139
165
|
} else {
|
|
140
166
|
// Given a package, there are a a couple options
|
|
141
167
|
const parentDirPath = dirname(application.dirPath);
|
|
@@ -180,6 +206,12 @@ export async function extractApplication(application: Application) {
|
|
|
180
206
|
parentDirPath
|
|
181
207
|
);
|
|
182
208
|
if (code !== 0) {
|
|
209
|
+
if (isSSHAuthFailure(stderr)) {
|
|
210
|
+
throw new Error(
|
|
211
|
+
`Failed to deploy private repository ${application.packageIdentifier}: SSH access failed. Verify the repository URL, configure an SSH key on this Harper instance, ensure the key has access to the target repository, and confirm the host is present in the ssh/known_hosts file.`,
|
|
212
|
+
{ cause: new Error(stderr) }
|
|
213
|
+
);
|
|
214
|
+
}
|
|
183
215
|
throw new Error(`Failed to download package ${application.packageIdentifier}: ${stderr}`);
|
|
184
216
|
}
|
|
185
217
|
|
|
@@ -196,6 +228,7 @@ export async function extractApplication(application: Application) {
|
|
|
196
228
|
}
|
|
197
229
|
|
|
198
230
|
tarballPath = join(parentDirPath, packResult[0].filename);
|
|
231
|
+
shouldDeleteTarball = true;
|
|
199
232
|
tarball = createReadStream(tarballPath);
|
|
200
233
|
}
|
|
201
234
|
}
|
|
@@ -237,7 +270,7 @@ export async function extractApplication(application: Application) {
|
|
|
237
270
|
}
|
|
238
271
|
|
|
239
272
|
// Clean up the original tarball
|
|
240
|
-
if (tarballPath) {
|
|
273
|
+
if (shouldDeleteTarball && tarballPath) {
|
|
241
274
|
await rm(tarballPath, { force: true });
|
|
242
275
|
}
|
|
243
276
|
}
|
|
@@ -275,12 +308,16 @@ export async function installApplication(application: Application) {
|
|
|
275
308
|
// If custom install command is specified, run it
|
|
276
309
|
if (application.install?.command) {
|
|
277
310
|
const [command, ...args] = application.install.command.split(' ');
|
|
311
|
+
const customOnLine = application.onInstallLine
|
|
312
|
+
? (stream: 'stdout' | 'stderr', line: string) => application.onInstallLine!(command, stream, line)
|
|
313
|
+
: undefined;
|
|
278
314
|
const { stdout, stderr, code } = await nonInteractiveSpawn(
|
|
279
315
|
application.name,
|
|
280
316
|
command,
|
|
281
317
|
args,
|
|
282
318
|
application.dirPath,
|
|
283
|
-
application.install?.timeout
|
|
319
|
+
application.install?.timeout,
|
|
320
|
+
customOnLine
|
|
284
321
|
);
|
|
285
322
|
// if it succeeds, return
|
|
286
323
|
if (code === 0) {
|
|
@@ -331,12 +368,16 @@ export async function installApplication(application: Application) {
|
|
|
331
368
|
// Would result in `pnpm@7` being used as the executable.
|
|
332
369
|
// Important note: an `npm` version should not be specifiable; the only valid npm version is the one installed alongside Node.js
|
|
333
370
|
|
|
371
|
+
const pmOnLine = application.onInstallLine
|
|
372
|
+
? (stream: 'stdout' | 'stderr', line: string) => application.onInstallLine!(packageManager.name, stream, line)
|
|
373
|
+
: undefined;
|
|
334
374
|
const { stdout, stderr, code } = await nonInteractiveSpawn(
|
|
335
375
|
application.name,
|
|
336
376
|
(application.packageManagerPrefix ? application.packageManagerPrefix + ' ' : '') + packageManager.name,
|
|
337
377
|
application.install?.allowInstallScripts ? ['install'] : ['install', '--ignore-scripts'], // All of `npm`, `yarn`, and `pnpm` support the `install` command. If we need to configure options here we may have to use some other defaults though
|
|
338
378
|
application.dirPath,
|
|
339
|
-
application.install?.timeout
|
|
379
|
+
application.install?.timeout,
|
|
380
|
+
pmOnLine
|
|
340
381
|
);
|
|
341
382
|
|
|
342
383
|
// if it succeeds, return
|
|
@@ -383,12 +424,16 @@ export async function installApplication(application: Application) {
|
|
|
383
424
|
const npmInstallArgs = application.install?.allowInstallScripts
|
|
384
425
|
? ['install', '--force']
|
|
385
426
|
: ['install', '--force', '--ignore-scripts'];
|
|
427
|
+
const npmOnLine = application.onInstallLine
|
|
428
|
+
? (stream: 'stdout' | 'stderr', line: string) => application.onInstallLine!('npm', stream, line)
|
|
429
|
+
: undefined;
|
|
386
430
|
const { stdout, stderr, code } = await nonInteractiveSpawn(
|
|
387
431
|
application.name,
|
|
388
432
|
(application.packageManagerPrefix ? application.packageManagerPrefix + ' ' : '') + 'npm',
|
|
389
433
|
npmInstallArgs,
|
|
390
434
|
application.dirPath,
|
|
391
|
-
application.install?.timeout
|
|
435
|
+
application.install?.timeout,
|
|
436
|
+
npmOnLine
|
|
392
437
|
);
|
|
393
438
|
|
|
394
439
|
// if it succeeds, return
|
|
@@ -409,27 +454,39 @@ export async function installApplication(application: Application) {
|
|
|
409
454
|
throw new Error(`Failed to install dependencies for ${application.name} using npm default. Exit code: ${code}`);
|
|
410
455
|
}
|
|
411
456
|
|
|
457
|
+
/**
|
|
458
|
+
* Callback invoked once per complete line of install stdout/stderr from
|
|
459
|
+
* `nonInteractiveSpawn`. Threaded through `installApplication` to the underlying spawn
|
|
460
|
+
* so a deploy can stream `npm install` output back to the caller as an SSE `install`
|
|
461
|
+
* event in real time, rather than waiting for the process to exit. Line-buffered so a
|
|
462
|
+
* chunk that splits mid-line never fires a partial line.
|
|
463
|
+
*/
|
|
464
|
+
export type OnInstallLine = (manager: string, stream: 'stdout' | 'stderr', line: string) => void;
|
|
465
|
+
|
|
412
466
|
interface ApplicationOptions {
|
|
413
467
|
name: string;
|
|
414
|
-
payload?: Buffer | string;
|
|
468
|
+
payload?: Buffer | string | Readable;
|
|
415
469
|
packageIdentifier?: string;
|
|
416
470
|
install?: { command?: string; timeout?: number; allowInstallScripts?: boolean };
|
|
471
|
+
onInstallLine?: OnInstallLine;
|
|
417
472
|
}
|
|
418
473
|
|
|
419
474
|
export class Application {
|
|
420
475
|
name: string;
|
|
421
|
-
payload?: Buffer | string;
|
|
476
|
+
payload?: Buffer | string | Readable;
|
|
422
477
|
packageIdentifier?: string;
|
|
423
478
|
install?: { command?: string; timeout?: number; allowInstallScripts?: boolean };
|
|
479
|
+
onInstallLine?: OnInstallLine;
|
|
424
480
|
dirPath: string;
|
|
425
481
|
logger: Logger;
|
|
426
482
|
packageManagerPrefix: string; // can be used to configure a package manager prefix, specifically "sfw".
|
|
427
483
|
|
|
428
|
-
constructor({ name, payload, packageIdentifier, install }: ApplicationOptions) {
|
|
484
|
+
constructor({ name, payload, packageIdentifier, install, onInstallLine }: ApplicationOptions) {
|
|
429
485
|
this.name = name;
|
|
430
486
|
this.payload = payload;
|
|
431
487
|
this.packageIdentifier = packageIdentifier && derivePackageIdentifier(packageIdentifier);
|
|
432
488
|
this.install = install;
|
|
489
|
+
this.onInstallLine = onInstallLine;
|
|
433
490
|
const componentsRoot = getConfigPath(CONFIG_PARAMS.COMPONENTSROOT);
|
|
434
491
|
if (!componentsRoot) throw new Error('componentsRoot is not configured');
|
|
435
492
|
this.dirPath = join(componentsRoot, name);
|
|
@@ -462,11 +519,24 @@ export function derivePackageIdentifier(packageIdentifier: string) {
|
|
|
462
519
|
*
|
|
463
520
|
* This method should only be called from the main thread
|
|
464
521
|
*
|
|
522
|
+
* Bracketed with `deploy:start`/`deploy:end` lifecycle broadcasts so every
|
|
523
|
+
* Harper thread's file watchers can suppress restart-on-change events while
|
|
524
|
+
* the component directory is being rewritten — see harper#488 and
|
|
525
|
+
* `components/deployLifecycle.ts`. The broadcast is best-effort: if it fails
|
|
526
|
+
* (e.g. workers haven't started yet during initial install), the deploy still
|
|
527
|
+
* proceeds.
|
|
528
|
+
*
|
|
465
529
|
* @param application The application to prepare.
|
|
466
530
|
* @returns A promise that resolves when all preparation steps complete.
|
|
467
531
|
*/
|
|
468
|
-
export function prepareApplication(application: Application) {
|
|
469
|
-
|
|
532
|
+
export async function prepareApplication(application: Application) {
|
|
533
|
+
await broadcastDeployStart(application.name);
|
|
534
|
+
try {
|
|
535
|
+
await extractApplication(application);
|
|
536
|
+
await installApplication(application);
|
|
537
|
+
} finally {
|
|
538
|
+
broadcastDeployEnd(application.name);
|
|
539
|
+
}
|
|
470
540
|
}
|
|
471
541
|
|
|
472
542
|
/**
|
|
@@ -581,12 +651,53 @@ function getGitSSHCommand() {
|
|
|
581
651
|
* @param timeoutMs The timeout for the command in milliseconds. Defaults to 5 minutes.
|
|
582
652
|
* @returns A promise that resolves when the command completes.
|
|
583
653
|
*/
|
|
654
|
+
/**
|
|
655
|
+
* Line-buffered split that emits complete `\n`-terminated lines as they
|
|
656
|
+
* arrive, holding any partial trailing fragment until the next chunk or `flush()`.
|
|
657
|
+
* Required because `child_process` stdout/stderr `'data'` events fire per OS-level
|
|
658
|
+
* chunk, with no guarantee a chunk ends on a newline — without buffering, a long
|
|
659
|
+
* `npm install` line could be reported to the caller as two halves.
|
|
660
|
+
*
|
|
661
|
+
* Uses StringDecoder so a multi-byte UTF-8 character (e.g. the ✔ emoji npm prints
|
|
662
|
+
* for resolved packages) split across two chunks is reassembled into a single code
|
|
663
|
+
* point rather than each half being decoded as replacement characters.
|
|
664
|
+
*/
|
|
665
|
+
function createLineSplitter(onLine: (line: string) => void): {
|
|
666
|
+
push: (chunk: Buffer | string) => void;
|
|
667
|
+
flush: () => void;
|
|
668
|
+
} {
|
|
669
|
+
const decoder = new StringDecoder('utf8');
|
|
670
|
+
let pending = '';
|
|
671
|
+
return {
|
|
672
|
+
push(chunk) {
|
|
673
|
+
pending += typeof chunk === 'string' ? chunk : decoder.write(chunk);
|
|
674
|
+
let nl: number;
|
|
675
|
+
while ((nl = pending.indexOf('\n')) !== -1) {
|
|
676
|
+
const line = pending.slice(0, nl).replace(/\r$/, '');
|
|
677
|
+
pending = pending.slice(nl + 1);
|
|
678
|
+
onLine(line);
|
|
679
|
+
}
|
|
680
|
+
},
|
|
681
|
+
flush() {
|
|
682
|
+
// Drain any bytes the decoder is still holding (e.g. a multi-byte char that
|
|
683
|
+
// straddled the final chunk boundary).
|
|
684
|
+
const remaining = decoder.end();
|
|
685
|
+
if (remaining) pending += remaining;
|
|
686
|
+
if (pending.length > 0) {
|
|
687
|
+
onLine(pending);
|
|
688
|
+
pending = '';
|
|
689
|
+
}
|
|
690
|
+
},
|
|
691
|
+
};
|
|
692
|
+
}
|
|
693
|
+
|
|
584
694
|
export function nonInteractiveSpawn(
|
|
585
695
|
applicationName: string,
|
|
586
696
|
command: string,
|
|
587
697
|
args: string[],
|
|
588
698
|
cwd: string,
|
|
589
|
-
timeoutMs: number = 60 * 60 * 1000
|
|
699
|
+
timeoutMs: number = 60 * 60 * 1000,
|
|
700
|
+
onLine?: (stream: 'stdout' | 'stderr', line: string) => void
|
|
590
701
|
): Promise<{ stdout: string; stderr: string; code: number }> {
|
|
591
702
|
return new Promise((resolve, reject) => {
|
|
592
703
|
logger
|
|
@@ -600,6 +711,10 @@ export function nonInteractiveSpawn(
|
|
|
600
711
|
env.GIT_SSH_COMMAND = gitSSHCommand;
|
|
601
712
|
}
|
|
602
713
|
|
|
714
|
+
if (process.platform === 'win32' && command === 'npm') {
|
|
715
|
+
command = 'npm.cmd';
|
|
716
|
+
}
|
|
717
|
+
|
|
603
718
|
const childProcess = spawn(command, args, {
|
|
604
719
|
shell: true,
|
|
605
720
|
cwd,
|
|
@@ -612,24 +727,31 @@ export function nonInteractiveSpawn(
|
|
|
612
727
|
reject(new Error(`Command\`${command} ${args.join(' ')}\` timed out after ${timeoutMs}ms`));
|
|
613
728
|
}, timeoutMs);
|
|
614
729
|
|
|
730
|
+
// If a caller passed onLine, line-buffer stdout/stderr alongside the existing
|
|
731
|
+
// string accumulation so we never report a half-line.
|
|
732
|
+
const stdoutSplitter = onLine ? createLineSplitter((line) => onLine('stdout', line)) : null;
|
|
733
|
+
const stderrSplitter = onLine ? createLineSplitter((line) => onLine('stderr', line)) : null;
|
|
734
|
+
|
|
615
735
|
let stdout = '';
|
|
616
736
|
childProcess.stdout.on('data', (chunk) => {
|
|
617
737
|
// buffer stdout for later resolve
|
|
618
738
|
stdout += chunk.toString();
|
|
619
739
|
// log stdout lines immediately
|
|
620
|
-
// TODO: Technically nothing guarantees that a chunk will be a complete line so need to implement
|
|
621
|
-
// something here to buffer until a newline character, then log the complete line
|
|
622
740
|
logger.loggerWithTag(`${applicationName}:spawn:${command}:stdout`).debug?.(chunk.toString());
|
|
741
|
+
stdoutSplitter?.push(chunk);
|
|
623
742
|
});
|
|
624
743
|
|
|
625
744
|
// buffer stderr
|
|
626
745
|
let stderr = '';
|
|
627
746
|
childProcess.stderr.on('data', (chunk) => {
|
|
628
747
|
stderr += chunk.toString();
|
|
748
|
+
stderrSplitter?.push(chunk);
|
|
629
749
|
});
|
|
630
750
|
|
|
631
751
|
childProcess.on('error', (error) => {
|
|
632
752
|
clearTimeout(timeout);
|
|
753
|
+
stdoutSplitter?.flush();
|
|
754
|
+
stderrSplitter?.flush();
|
|
633
755
|
// Print out stderr before rejecting
|
|
634
756
|
if (stderr) {
|
|
635
757
|
printStd(applicationName, command, stderr, 'stderr');
|
|
@@ -639,6 +761,10 @@ export function nonInteractiveSpawn(
|
|
|
639
761
|
|
|
640
762
|
childProcess.on('close', (code) => {
|
|
641
763
|
clearTimeout(timeout);
|
|
764
|
+
// Flush any trailing partial lines so the caller sees process output that didn't
|
|
765
|
+
// end on a newline (some package managers do this on their final progress line).
|
|
766
|
+
stdoutSplitter?.flush();
|
|
767
|
+
stderrSplitter?.flush();
|
|
642
768
|
if (stderr) {
|
|
643
769
|
printStd(applicationName, command, stderr, 'stderr');
|
|
644
770
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Resources } from '../resources/Resources.ts';
|
|
2
2
|
import { type Server } from '../server/Server.ts';
|
|
3
|
-
import { forComponent } from '../utility/logging/harper_logger.
|
|
3
|
+
import { forComponent } from '../utility/logging/harper_logger.ts';
|
|
4
4
|
import { scopedImport } from '../security/jsLoader.ts';
|
|
5
|
-
import * as env from '../utility/environment/environmentManager.
|
|
5
|
+
import * as env from '../utility/environment/environmentManager.ts';
|
|
6
6
|
import { CONFIG_PARAMS } from '../utility/hdbTerms.ts';
|
|
7
7
|
|
|
8
8
|
export class MissingDefaultFilesOptionError extends Error {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isMainThread } from 'node:worker_threads';
|
|
2
2
|
import fg from 'fast-glob';
|
|
3
3
|
import { Resources } from '../resources/Resources.ts';
|
|
4
|
-
import harperLogger from '../utility/logging/harper_logger.
|
|
4
|
+
import harperLogger from '../utility/logging/harper_logger.ts';
|
|
5
5
|
import { resolveBaseURLPath } from './resolveBaseURLPath.ts';
|
|
6
6
|
import { deriveGlobOptions, FastGlobOptions, FilesOption } from './deriveGlobOptions.ts';
|
|
7
7
|
import { basename, join } from 'node:path';
|
|
@@ -33,7 +33,7 @@ interface ComponentV1Details {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
export class ComponentV1 {
|
|
36
|
-
readonly config:
|
|
36
|
+
readonly config: ComponentV1Config;
|
|
37
37
|
readonly name: string;
|
|
38
38
|
readonly directory: string;
|
|
39
39
|
readonly module: Readonly<ComponentV1Module>;
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { type Logger } from '../utility/logging/logger.ts';
|
|
2
|
-
import { loggerWithTag } from '../utility/logging/harper_logger.
|
|
2
|
+
import { loggerWithTag } from '../utility/logging/harper_logger.ts';
|
|
3
3
|
import type { Stats } from 'node:fs';
|
|
4
4
|
import { EventEmitter, once } from 'node:events';
|
|
5
|
-
import { Component, FileAndURLPathConfig } from './Component.
|
|
5
|
+
import { Component, FileAndURLPathConfig } from './Component.ts';
|
|
6
6
|
import chokidar, { FSWatcher, FSWatcherEventMap } from 'chokidar';
|
|
7
7
|
import { join } from 'node:path';
|
|
8
8
|
import { readFile } from 'node:fs/promises';
|
|
9
|
-
import { FilesOption } from './deriveGlobOptions.
|
|
10
|
-
import { deriveURLPath } from './deriveURLPath.
|
|
9
|
+
import { FilesOption } from './deriveGlobOptions.ts';
|
|
10
|
+
import { deriveURLPath } from './deriveURLPath.ts';
|
|
11
11
|
import { isMatch } from 'micromatch';
|
|
12
|
+
import {
|
|
13
|
+
DIRECTORY_POLLING_FALLBACK_OPTIONS,
|
|
14
|
+
isWatcherExhaustionError,
|
|
15
|
+
warnWatcherFallback,
|
|
16
|
+
} from '../utility/watcherFallback.ts';
|
|
12
17
|
|
|
13
18
|
export interface BaseEntry {
|
|
14
19
|
stats?: Stats;
|
|
@@ -75,6 +80,19 @@ export class EntryHandler extends EventEmitter<EntryHandlerEventMap> {
|
|
|
75
80
|
#logger: Logger;
|
|
76
81
|
#pendingFileReads: Set<Promise<void>>;
|
|
77
82
|
#isInitialScanComplete: boolean;
|
|
83
|
+
// When true, #watch() short-circuits without creating a chokidar watcher.
|
|
84
|
+
// pause() sets it, resume() clears it. Lets a deploy quiesce the watcher
|
|
85
|
+
// without losing the EntryHandler instance (and therefore listener
|
|
86
|
+
// attachments registered by plugins via scope.handleEntry(handler)).
|
|
87
|
+
#paused: boolean = false;
|
|
88
|
+
// Tracks the in-flight close() promise from pause() so resume() can await
|
|
89
|
+
// the old watcher's inotify handles releasing before installing a fresh
|
|
90
|
+
// chokidar instance — otherwise a rapid pause→resume can overlap teardown
|
|
91
|
+
// and setup, which under inotify pressure can produce spurious EMFILE.
|
|
92
|
+
#pausedClose?: Promise<void>;
|
|
93
|
+
#usingPolling: boolean = false;
|
|
94
|
+
#closed: boolean = false;
|
|
95
|
+
#openCount: number = 0;
|
|
78
96
|
ready: Promise<any[]>;
|
|
79
97
|
|
|
80
98
|
constructor(name: string, directory: string, config: FilesOption | FileAndURLPathConfig, logger?: Logger) {
|
|
@@ -159,6 +177,25 @@ export class EntryHandler extends EventEmitter<EntryHandlerEventMap> {
|
|
|
159
177
|
}
|
|
160
178
|
|
|
161
179
|
#handleError(error: unknown): void {
|
|
180
|
+
if (isWatcherExhaustionError(error)) {
|
|
181
|
+
// Swallow every exhaustion error — chokidar can emit several before the
|
|
182
|
+
// failed native watcher closes, and we don't want a flurry of ENOSPC to
|
|
183
|
+
// surface to consumers in the middle of recovery.
|
|
184
|
+
if (!this.#usingPolling) {
|
|
185
|
+
warnWatcherFallback(this.#component.directory);
|
|
186
|
+
this.#usingPolling = true;
|
|
187
|
+
// Reopen with polling. #watch() itself guards against reopen-after-close.
|
|
188
|
+
// The .catch is required because #watch() internally awaits the failed
|
|
189
|
+
// watcher's close(), which can reject under the same FD/inotify pressure
|
|
190
|
+
// that triggered this path; without it Node would treat that as an
|
|
191
|
+
// unhandled rejection (matches the .catch pattern used in
|
|
192
|
+
// OptionsWatcher / RootConfigWatcher).
|
|
193
|
+
this.#watch().catch(() => {
|
|
194
|
+
// Teardown errors on an already-failed watcher are not actionable.
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
162
199
|
this.emit('error', error);
|
|
163
200
|
}
|
|
164
201
|
|
|
@@ -180,21 +217,66 @@ export class EntryHandler extends EventEmitter<EntryHandlerEventMap> {
|
|
|
180
217
|
}
|
|
181
218
|
|
|
182
219
|
async #watch() {
|
|
220
|
+
// If pause() retained an in-flight close, wait for it to release inotify
|
|
221
|
+
// handles before we install a new watcher. Otherwise a fast pause→resume
|
|
222
|
+
// can overlap teardown and setup under inotify pressure.
|
|
223
|
+
if (this.#pausedClose) {
|
|
224
|
+
await this.#pausedClose;
|
|
225
|
+
this.#pausedClose = undefined;
|
|
226
|
+
}
|
|
227
|
+
|
|
183
228
|
await this.#watcher?.close();
|
|
184
229
|
this.#watcher = undefined;
|
|
185
230
|
|
|
231
|
+
// If close() landed while a previous close()/recreate was awaiting, don't
|
|
232
|
+
// install a fresh watcher — it would outlive the EntryHandler.
|
|
233
|
+
if (this.#closed) return this.ready;
|
|
234
|
+
|
|
235
|
+
// pause() may have landed in the gap before our async close resolved.
|
|
236
|
+
// If so, do not install a replacement watcher — resume() will.
|
|
237
|
+
if (this.#paused) return this.ready;
|
|
238
|
+
|
|
239
|
+
// When a fresh watcher is installed (after pause+resume, or update), the
|
|
240
|
+
// initial scan emits add events anew, so reset the readiness latch so
|
|
241
|
+
// `ready` resolves after the new scan completes.
|
|
242
|
+
this.#isInitialScanComplete = false;
|
|
243
|
+
|
|
186
244
|
const allowedBases = this.#component.patternBases.map((base) => join(this.#component.directory, base));
|
|
187
245
|
|
|
246
|
+
this.#openCount++;
|
|
188
247
|
this.#watcher = chokidar
|
|
189
248
|
.watch(this.#component.commonPatternBase, {
|
|
190
249
|
cwd: this.#component.directory,
|
|
191
250
|
persistent: false,
|
|
251
|
+
followSymlinks: false,
|
|
252
|
+
...(this.#usingPolling ? DIRECTORY_POLLING_FALLBACK_OPTIONS : {}),
|
|
192
253
|
ignored: (path) => {
|
|
193
254
|
const normalizedPath = path.replace(/\\/g, '/');
|
|
194
255
|
const normalizedBases = allowedBases.map((base) => base.replace(/\\/g, '/'));
|
|
256
|
+
const normalizedDirectory = this.#component.directory.replace(/\\/g, '/');
|
|
257
|
+
|
|
258
|
+
// Determine the path relative to the component directory. Leading '/' is preserved
|
|
259
|
+
// (or empty when the path *is* the component directory) so the regex anchors below
|
|
260
|
+
// can use `(?:^|/)` to match the first segment without false positives on names
|
|
261
|
+
// that merely contain the same substring (e.g. `mynode_modules`, `notgit`).
|
|
262
|
+
const relativePath = normalizedPath.startsWith(normalizedDirectory)
|
|
263
|
+
? normalizedPath.slice(normalizedDirectory.length)
|
|
264
|
+
: normalizedPath;
|
|
265
|
+
|
|
266
|
+
// Skip node_modules at any depth. This allows plugins loaded from node_modules
|
|
267
|
+
// to still watch their own component files while ignoring their dependencies.
|
|
268
|
+
if (/(?:^|\/)node_modules(?:\/|$)/.test(relativePath)) return true;
|
|
269
|
+
|
|
270
|
+
// Skip transient package manager and VCS artifacts. Without these, an in-place
|
|
271
|
+
// `npm install` during a component deploy writes log files and atomic-rename
|
|
272
|
+
// temp directories that fire change events and drive an auto-reload restart
|
|
273
|
+
// storm — see harper#488.
|
|
274
|
+
if (/(?:^|\/)\.git(?:\/|$)/.test(relativePath)) return true;
|
|
275
|
+
if (/(?:^|\/)\.tmp-/.test(relativePath)) return true;
|
|
276
|
+
if (/(?:^|\/)(?:npm-debug|yarn-error|yarn-debug|pnpm-debug)\.log(?:\/|$)/.test(relativePath)) return true;
|
|
277
|
+
|
|
195
278
|
return (
|
|
196
|
-
normalizedPath !==
|
|
197
|
-
normalizedBases.every((base) => !normalizedPath.startsWith(base))
|
|
279
|
+
normalizedPath !== normalizedDirectory && normalizedBases.every((base) => !normalizedPath.startsWith(base))
|
|
198
280
|
);
|
|
199
281
|
},
|
|
200
282
|
})
|
|
@@ -205,14 +287,82 @@ export class EntryHandler extends EventEmitter<EntryHandlerEventMap> {
|
|
|
205
287
|
return this.ready;
|
|
206
288
|
}
|
|
207
289
|
|
|
208
|
-
|
|
209
|
-
|
|
290
|
+
// Test-only: simulate the underlying chokidar watcher emitting an error.
|
|
291
|
+
// Exposed so the polling-fallback path can be exercised without triggering a
|
|
292
|
+
// real ENOSPC/EMFILE on the host.
|
|
293
|
+
_simulateWatcherErrorForTests(error: unknown): void {
|
|
294
|
+
this.#handleError(error);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// Test-only: whether the watcher has fallen back to polling.
|
|
298
|
+
get _usingPollingForTests(): boolean {
|
|
299
|
+
return this.#usingPolling;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
// Test-only: number of times the underlying watcher has been (re)opened.
|
|
303
|
+
// Used to assert that a close()-during-fallback race didn't install a
|
|
304
|
+
// replacement watcher.
|
|
305
|
+
get _openCountForTests(): number {
|
|
306
|
+
return this.#openCount;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
close(): Promise<this> {
|
|
310
|
+
this.#closed = true;
|
|
311
|
+
const pendingReads = [...this.#pendingFileReads];
|
|
312
|
+
const watcherClose = this.#watcher ? Promise.resolve(this.#watcher.close()).catch(() => {}) : Promise.resolve();
|
|
210
313
|
this.#watcher = undefined;
|
|
314
|
+
// If paused, there may be an in-flight close from pause() that hasn't settled yet.
|
|
315
|
+
// Include it so close() doesn't resolve while inotify handles are still releasing.
|
|
316
|
+
const pausedClose = this.#pausedClose ?? Promise.resolve();
|
|
317
|
+
this.#pausedClose = undefined;
|
|
211
318
|
|
|
212
319
|
this.emit('close');
|
|
213
320
|
this.removeAllListeners();
|
|
214
321
|
|
|
215
|
-
return this;
|
|
322
|
+
return Promise.allSettled([watcherClose, pausedClose, ...pendingReads]).then(() => this);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Quiesce the watcher without tearing down the EntryHandler. Closes the
|
|
327
|
+
* underlying chokidar watcher (releasing inotify handles for the watched
|
|
328
|
+
* tree) but preserves all listeners attached to this instance, so plugins
|
|
329
|
+
* that registered `scope.handleEntry(handler)` keep their handler wired up
|
|
330
|
+
* across the pause.
|
|
331
|
+
*
|
|
332
|
+
* Idempotent. Awaiting `ready` while paused will not resolve until resume().
|
|
333
|
+
*/
|
|
334
|
+
pause(): void {
|
|
335
|
+
this.#paused = true;
|
|
336
|
+
// Reset `ready` to a fresh pending promise so the documented "awaiting
|
|
337
|
+
// ready while paused will not resolve until resume()" contract holds even
|
|
338
|
+
// when the watcher had already become ready before pause(). The next
|
|
339
|
+
// 'ready' emit will come from the chokidar instance installed by resume().
|
|
340
|
+
this.ready = once(this, 'ready');
|
|
341
|
+
if (this.#watcher) {
|
|
342
|
+
// Retain the close promise so resume()→#watch() can await full
|
|
343
|
+
// teardown before opening a new watcher.
|
|
344
|
+
this.#pausedClose = Promise.resolve(this.#watcher.close()).catch(() => {
|
|
345
|
+
// Teardown errors aren't actionable; swallow so resume can proceed.
|
|
346
|
+
});
|
|
347
|
+
this.#watcher = undefined;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Reinstate the watcher previously stopped by pause(). The fresh chokidar
|
|
353
|
+
* instance does an initial scan and emits add events for every file
|
|
354
|
+
* currently matching the configured globs — by design, since the typical
|
|
355
|
+
* caller (Scope, on deploy:end) wants plugins to see the post-deploy tree
|
|
356
|
+
* as if loading cold.
|
|
357
|
+
*
|
|
358
|
+
* No-op if not currently paused.
|
|
359
|
+
*/
|
|
360
|
+
resume(): Promise<any[]> {
|
|
361
|
+
if (!this.#paused) return this.ready;
|
|
362
|
+
this.#paused = false;
|
|
363
|
+
// `this.ready` was already reset to a pending promise in pause(); just
|
|
364
|
+
// trigger the watcher recreation and let its 'ready' emit resolve it.
|
|
365
|
+
return this.#watch();
|
|
216
366
|
}
|
|
217
367
|
|
|
218
368
|
update(config: FilesOption | FileAndURLPathConfig) {
|