@harperfast/harper 5.0.30 → 5.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -10
- package/agent/agent.ts +203 -0
- package/agent/loop.ts +205 -0
- package/agent/operations.ts +148 -0
- package/agent/session.ts +187 -0
- package/agent/tools/fsTools.ts +276 -0
- package/agent/tools/httpFetchTool.ts +112 -0
- package/agent/tools/scheduleTool.ts +68 -0
- package/agent/toolset.ts +43 -0
- package/agent/types.ts +85 -0
- package/bin/{BinObjects.js → BinObjects.ts} +4 -5
- package/bin/cliCredentials.ts +133 -0
- package/bin/cliOperations.ts +339 -0
- package/bin/copyDb.ts +10 -10
- package/bin/deployRenderer.ts +196 -0
- package/bin/{harper.js → harper.ts} +43 -19
- package/bin/{install.js → install.ts} +3 -3
- package/bin/lite.ts +2 -0
- package/bin/login.ts +134 -0
- package/bin/logout.ts +11 -0
- package/bin/mcp/client.ts +407 -0
- package/bin/mcp/doctor.ts +189 -0
- package/bin/mcp/index.ts +80 -0
- package/bin/mcp/options.ts +122 -0
- package/bin/mcp/printConfig.ts +89 -0
- package/bin/multipartBuilder.ts +74 -0
- package/bin/{restart.js → restart.ts} +27 -28
- package/bin/{run.js → run.ts} +41 -30
- package/bin/sseConsumer.ts +126 -0
- package/bin/{status.js → status.ts} +10 -10
- package/bin/{stop.js → stop.ts} +5 -5
- package/bin/upgrade.js +17 -24
- package/components/Application.ts +144 -18
- package/components/ApplicationScope.ts +2 -2
- package/components/ComponentV1.ts +2 -2
- package/components/EntryHandler.ts +159 -9
- package/components/OptionsWatcher.ts +75 -11
- package/components/Scope.ts +132 -18
- package/components/anthropic/index.ts +547 -0
- package/components/bedrock/index.ts +823 -0
- package/components/componentLoader.ts +64 -32
- package/components/deployLifecycle.ts +161 -0
- package/components/deploymentOperations.ts +173 -0
- package/components/deploymentRecorder.ts +427 -0
- package/components/deriveURLPath.ts +4 -4
- package/components/mcp/adapters/fastify.ts +87 -0
- package/components/mcp/adapters/harperHttp.ts +103 -0
- package/components/mcp/audit.ts +75 -0
- package/components/mcp/index.ts +134 -0
- package/components/mcp/jsonrpc.ts +134 -0
- package/components/mcp/lifecycle.ts +105 -0
- package/components/mcp/listChanged.ts +270 -0
- package/components/mcp/rateLimit.ts +217 -0
- package/components/mcp/resources.ts +607 -0
- package/components/mcp/session.ts +151 -0
- package/components/mcp/sessionRegistry.ts +140 -0
- package/components/mcp/toolRegistry.ts +294 -0
- package/components/mcp/tools/application.ts +761 -0
- package/components/mcp/tools/operations.ts +311 -0
- package/components/mcp/tools/schemas/derive.ts +356 -0
- package/components/mcp/tools/schemas/operationDescriptions.ts +241 -0
- package/components/mcp/tools/schemas/operations.ts +301 -0
- package/components/mcp/transport.ts +517 -0
- package/components/ollama/index.ts +316 -0
- package/components/openai/index.ts +563 -0
- package/components/operations.js +217 -60
- package/components/operationsValidation.js +12 -4
- package/components/packageComponent.ts +97 -29
- package/components/requestRestart.ts +17 -2
- package/components/status/crossThread.ts +14 -5
- package/components/status/errors.ts +1 -1
- package/config/RootConfigWatcher.ts +56 -2
- package/config/configUtils.js +29 -8
- package/config/harperConfigEnvVars.ts +1 -1
- package/config-root.schema.json +78 -4
- package/dataLayer/{CreateAttributeObject.js → CreateAttributeObject.ts} +4 -3
- package/dataLayer/{CreateTableObject.js → CreateTableObject.ts} +2 -1
- package/dataLayer/{DataLayerObjects.js → DataLayerObjects.ts} +17 -9
- package/dataLayer/{DeleteBeforeObject.js → DeleteBeforeObject.ts} +2 -1
- package/dataLayer/{DeleteObject.js → DeleteObject.ts} +3 -2
- package/dataLayer/{DropAttributeObject.js → DropAttributeObject.ts} +2 -1
- package/dataLayer/{GetBackupObject.js → GetBackupObject.ts} +3 -2
- package/dataLayer/{InsertObject.js → InsertObject.ts} +3 -2
- package/dataLayer/{ReadAuditLogObject.js → ReadAuditLogObject.ts} +3 -2
- package/dataLayer/{SQLSearch.js → SQLSearch.ts} +97 -43
- package/dataLayer/{SearchByConditionsObject.js → SearchByConditionsObject.ts} +5 -6
- package/dataLayer/{SearchByHashObject.js → SearchByHashObject.ts} +2 -1
- package/dataLayer/{SearchObject.js → SearchObject.ts} +2 -1
- package/dataLayer/{SqlSearchObject.js → SqlSearchObject.ts} +2 -1
- package/dataLayer/{UpdateObject.js → UpdateObject.ts} +3 -2
- package/dataLayer/{UpsertObject.js → UpsertObject.ts} +3 -2
- package/dataLayer/{bulkLoad.js → bulkLoad.ts} +40 -49
- package/dataLayer/{delete.js → delete.ts} +21 -26
- package/dataLayer/{export.js → export.ts} +22 -26
- package/dataLayer/{getBackup.js → getBackup.ts} +7 -9
- package/dataLayer/harperBridge/BridgeMethods.ts +102 -0
- package/dataLayer/harperBridge/ResourceBridge.ts +27 -26
- package/dataLayer/harperBridge/TableSizeObject.ts +1 -0
- package/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
- package/dataLayer/harperBridge/{harperBridge.js → harperBridge.ts} +3 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +8 -6
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +6 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +5 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +6 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +5 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +3 -2
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +10 -8
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +4 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +6 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +2 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +3 -2
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +5 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +6 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.ts +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
- package/dataLayer/{hdbInfoController.js → hdbInfoController.ts} +20 -26
- package/dataLayer/{insert.js → insert.ts} +24 -24
- package/dataLayer/{readAuditLog.js → readAuditLog.ts} +8 -10
- package/dataLayer/{schema.js → schema.ts} +32 -44
- package/dataLayer/{schemaDescribe.js → schemaDescribe.ts} +23 -26
- package/dataLayer/{search.js → search.ts} +9 -15
- package/dataLayer/{transaction.js → transaction.ts} +2 -5
- package/dataLayer/{update.js → update.ts} +19 -22
- package/dist/agent/agent.d.ts +35 -0
- package/dist/agent/agent.js +175 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/loop.d.ts +34 -0
- package/dist/agent/loop.js +176 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/operations.d.ts +17 -0
- package/dist/agent/operations.js +137 -0
- package/dist/agent/operations.js.map +1 -0
- package/dist/agent/session.d.ts +36 -0
- package/dist/agent/session.js +182 -0
- package/dist/agent/session.js.map +1 -0
- package/dist/agent/tools/fsTools.d.ts +19 -0
- package/dist/agent/tools/fsTools.js +286 -0
- package/dist/agent/tools/fsTools.js.map +1 -0
- package/dist/agent/tools/httpFetchTool.d.ts +9 -0
- package/dist/agent/tools/httpFetchTool.js +116 -0
- package/dist/agent/tools/httpFetchTool.js.map +1 -0
- package/dist/agent/tools/scheduleTool.d.ts +22 -0
- package/dist/agent/tools/scheduleTool.js +54 -0
- package/dist/agent/tools/scheduleTool.js.map +1 -0
- package/dist/agent/toolset.d.ts +24 -0
- package/dist/agent/toolset.js +33 -0
- package/dist/agent/toolset.js.map +1 -0
- package/dist/agent/types.d.ts +75 -0
- package/dist/agent/types.js +10 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/bin/BinObjects.d.ts +2 -2
- package/dist/bin/BinObjects.js +6 -3
- package/dist/bin/BinObjects.js.map +1 -1
- package/dist/bin/cliCredentials.d.ts +27 -0
- package/dist/bin/cliCredentials.js +130 -0
- package/dist/bin/cliCredentials.js.map +1 -0
- package/dist/bin/cliOperations.d.ts +7 -7
- package/dist/bin/cliOperations.js +251 -37
- package/dist/bin/cliOperations.js.map +1 -1
- package/dist/bin/copyDb.js +16 -16
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/bin/deployRenderer.d.ts +47 -0
- package/dist/bin/deployRenderer.js +185 -0
- package/dist/bin/deployRenderer.js.map +1 -0
- package/dist/bin/harper.d.ts +2 -1
- package/dist/bin/harper.js +87 -26
- package/dist/bin/harper.js.map +1 -1
- package/dist/bin/install.d.ts +1 -1
- package/dist/bin/install.js +41 -4
- package/dist/bin/install.js.map +1 -1
- package/dist/bin/lite.js +3 -4
- package/dist/bin/lite.js.map +1 -1
- package/dist/bin/login.d.ts +4 -0
- package/dist/bin/login.js +123 -0
- package/dist/bin/login.js.map +1 -0
- package/dist/bin/logout.d.ts +4 -0
- package/dist/bin/logout.js +16 -0
- package/dist/bin/logout.js.map +1 -0
- package/dist/bin/mcp/client.d.ts +34 -0
- package/dist/bin/mcp/client.js +395 -0
- package/dist/bin/mcp/client.js.map +1 -0
- package/dist/bin/mcp/doctor.d.ts +11 -0
- package/dist/bin/mcp/doctor.js +193 -0
- package/dist/bin/mcp/doctor.js.map +1 -0
- package/dist/bin/mcp/index.d.ts +10 -0
- package/dist/bin/mcp/index.js +81 -0
- package/dist/bin/mcp/index.js.map +1 -0
- package/dist/bin/mcp/options.d.ts +33 -0
- package/dist/bin/mcp/options.js +113 -0
- package/dist/bin/mcp/options.js.map +1 -0
- package/dist/bin/mcp/printConfig.d.ts +14 -0
- package/dist/bin/mcp/printConfig.js +85 -0
- package/dist/bin/mcp/printConfig.js.map +1 -0
- package/dist/bin/multipartBuilder.d.ts +26 -0
- package/dist/bin/multipartBuilder.js +55 -0
- package/dist/bin/multipartBuilder.js.map +1 -0
- package/dist/bin/restart.d.ts +3 -2
- package/dist/bin/restart.js +82 -45
- package/dist/bin/restart.js.map +1 -1
- package/dist/bin/run.d.ts +13 -9
- package/dist/bin/run.js +111 -65
- package/dist/bin/run.js.map +1 -1
- package/dist/bin/sseConsumer.d.ts +24 -0
- package/dist/bin/sseConsumer.js +127 -0
- package/dist/bin/sseConsumer.js.map +1 -0
- package/dist/bin/status.d.ts +1 -1
- package/dist/bin/status.js +48 -11
- package/dist/bin/status.js.map +1 -1
- package/dist/bin/stop.d.ts +1 -1
- package/dist/bin/stop.js +43 -6
- package/dist/bin/stop.js.map +1 -1
- package/dist/bin/upgrade.js +14 -22
- package/dist/bin/upgrade.js.map +1 -1
- package/dist/components/Application.d.ts +29 -17
- package/dist/components/Application.js +134 -28
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.js +2 -2
- package/dist/components/ComponentV1.d.ts +1 -1
- package/dist/components/ComponentV1.js +5 -5
- package/dist/components/ComponentV1.js.map +1 -1
- package/dist/components/EntryHandler.d.ts +26 -3
- package/dist/components/EntryHandler.js +153 -13
- package/dist/components/EntryHandler.js.map +1 -1
- package/dist/components/OptionsWatcher.d.ts +7 -2
- package/dist/components/OptionsWatcher.js +72 -10
- package/dist/components/OptionsWatcher.js.map +1 -1
- package/dist/components/Scope.d.ts +11 -6
- package/dist/components/Scope.js +112 -12
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/anthropic/index.d.ts +40 -0
- package/dist/components/anthropic/index.js +428 -0
- package/dist/components/anthropic/index.js.map +1 -0
- package/dist/components/bedrock/index.d.ts +79 -0
- package/dist/components/bedrock/index.js +734 -0
- package/dist/components/bedrock/index.js.map +1 -0
- package/dist/components/componentLoader.d.ts +29 -0
- package/dist/components/componentLoader.js +65 -38
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/deployLifecycle.d.ts +39 -0
- package/dist/components/deployLifecycle.js +156 -0
- package/dist/components/deployLifecycle.js.map +1 -0
- package/dist/components/deploymentOperations.d.ts +19 -0
- package/dist/components/deploymentOperations.js +185 -0
- package/dist/components/deploymentOperations.js.map +1 -0
- package/dist/components/deploymentRecorder.d.ts +97 -0
- package/dist/components/deploymentRecorder.js +425 -0
- package/dist/components/deploymentRecorder.js.map +1 -0
- package/dist/components/deriveURLPath.d.ts +2 -2
- package/dist/components/deriveURLPath.js +2 -2
- package/dist/components/deriveURLPath.js.map +1 -1
- package/dist/components/mcp/adapters/fastify.d.ts +35 -0
- package/dist/components/mcp/adapters/fastify.js +66 -0
- package/dist/components/mcp/adapters/fastify.js.map +1 -0
- package/dist/components/mcp/adapters/harperHttp.d.ts +38 -0
- package/dist/components/mcp/adapters/harperHttp.js +78 -0
- package/dist/components/mcp/adapters/harperHttp.js.map +1 -0
- package/dist/components/mcp/audit.d.ts +27 -0
- package/dist/components/mcp/audit.js +73 -0
- package/dist/components/mcp/audit.js.map +1 -0
- package/dist/components/mcp/index.d.ts +47 -0
- package/dist/components/mcp/index.js +109 -0
- package/dist/components/mcp/index.js.map +1 -0
- package/dist/components/mcp/jsonrpc.d.ts +71 -0
- package/dist/components/mcp/jsonrpc.js +93 -0
- package/dist/components/mcp/jsonrpc.js.map +1 -0
- package/dist/components/mcp/lifecycle.d.ts +69 -0
- package/dist/components/mcp/lifecycle.js +79 -0
- package/dist/components/mcp/lifecycle.js.map +1 -0
- package/dist/components/mcp/listChanged.d.ts +24 -0
- package/dist/components/mcp/listChanged.js +257 -0
- package/dist/components/mcp/listChanged.js.map +1 -0
- package/dist/components/mcp/rateLimit.d.ts +25 -0
- package/dist/components/mcp/rateLimit.js +226 -0
- package/dist/components/mcp/rateLimit.js.map +1 -0
- package/dist/components/mcp/resources.d.ts +90 -0
- package/dist/components/mcp/resources.js +526 -0
- package/dist/components/mcp/resources.js.map +1 -0
- package/dist/components/mcp/session.d.ts +36 -0
- package/dist/components/mcp/session.js +170 -0
- package/dist/components/mcp/session.js.map +1 -0
- package/dist/components/mcp/sessionRegistry.d.ts +63 -0
- package/dist/components/mcp/sessionRegistry.js +124 -0
- package/dist/components/mcp/sessionRegistry.js.map +1 -0
- package/dist/components/mcp/toolRegistry.d.ts +151 -0
- package/dist/components/mcp/toolRegistry.js +177 -0
- package/dist/components/mcp/toolRegistry.js.map +1 -0
- package/dist/components/mcp/tools/application.d.ts +72 -0
- package/dist/components/mcp/tools/application.js +660 -0
- package/dist/components/mcp/tools/application.js.map +1 -0
- package/dist/components/mcp/tools/operations.d.ts +23 -0
- package/dist/components/mcp/tools/operations.js +331 -0
- package/dist/components/mcp/tools/operations.js.map +1 -0
- package/dist/components/mcp/tools/schemas/derive.d.ts +50 -0
- package/dist/components/mcp/tools/schemas/derive.js +291 -0
- package/dist/components/mcp/tools/schemas/derive.js.map +1 -0
- package/dist/components/mcp/tools/schemas/operationDescriptions.d.ts +32 -0
- package/dist/components/mcp/tools/schemas/operationDescriptions.js +179 -0
- package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -0
- package/dist/components/mcp/tools/schemas/operations.d.ts +27 -0
- package/dist/components/mcp/tools/schemas/operations.js +299 -0
- package/dist/components/mcp/tools/schemas/operations.js.map +1 -0
- package/dist/components/mcp/transport.d.ts +38 -0
- package/dist/components/mcp/transport.js +467 -0
- package/dist/components/mcp/transport.js.map +1 -0
- package/dist/components/ollama/index.d.ts +46 -0
- package/dist/components/ollama/index.js +239 -0
- package/dist/components/ollama/index.js.map +1 -0
- package/dist/components/openai/index.d.ts +51 -0
- package/dist/components/openai/index.js +475 -0
- package/dist/components/openai/index.js.map +1 -0
- package/dist/components/operations.d.ts +6 -6
- package/dist/components/operations.js +205 -52
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.d.ts +2 -2
- package/dist/components/operationsValidation.js +13 -4
- package/dist/components/operationsValidation.js.map +1 -1
- package/dist/components/packageComponent.d.ts +28 -6
- package/dist/components/packageComponent.js +87 -26
- package/dist/components/packageComponent.js.map +1 -1
- package/dist/components/requestRestart.d.ts +1 -0
- package/dist/components/requestRestart.js +12 -1
- package/dist/components/requestRestart.js.map +1 -1
- package/dist/components/status/crossThread.d.ts +5 -1
- package/dist/components/status/crossThread.js +12 -5
- package/dist/components/status/crossThread.js.map +1 -1
- package/dist/components/status/errors.js +7 -7
- package/dist/config/RootConfigWatcher.d.ts +3 -0
- package/dist/config/RootConfigWatcher.js +52 -1
- package/dist/config/RootConfigWatcher.js.map +1 -1
- package/dist/config/configUtils.js +31 -8
- package/dist/config/configUtils.js.map +1 -1
- package/dist/config/harperConfigEnvVars.js +1 -1
- package/dist/config/harperConfigEnvVars.js.map +1 -1
- package/dist/dataLayer/CreateAttributeObject.d.ts +3 -7
- package/dist/dataLayer/CreateAttributeObject.js +4 -3
- package/dist/dataLayer/CreateAttributeObject.js.map +1 -1
- package/dist/dataLayer/CreateTableObject.d.ts +2 -4
- package/dist/dataLayer/CreateTableObject.js +2 -1
- package/dist/dataLayer/CreateTableObject.js.map +1 -1
- package/dist/dataLayer/DataLayerObjects.d.ts +17 -16
- package/dist/dataLayer/DataLayerObjects.js +19 -5
- package/dist/dataLayer/DataLayerObjects.js.map +1 -1
- package/dist/dataLayer/DeleteBeforeObject.d.ts +3 -5
- package/dist/dataLayer/DeleteBeforeObject.js +2 -1
- package/dist/dataLayer/DeleteBeforeObject.js.map +1 -1
- package/dist/dataLayer/DeleteObject.d.ts +3 -7
- package/dist/dataLayer/DeleteObject.js +4 -3
- package/dist/dataLayer/DeleteObject.js.map +1 -1
- package/dist/dataLayer/DropAttributeObject.d.ts +2 -4
- package/dist/dataLayer/DropAttributeObject.js +2 -1
- package/dist/dataLayer/DropAttributeObject.js.map +1 -1
- package/dist/dataLayer/GetBackupObject.d.ts +3 -5
- package/dist/dataLayer/GetBackupObject.js +4 -3
- package/dist/dataLayer/GetBackupObject.js.map +1 -1
- package/dist/dataLayer/InsertObject.d.ts +3 -8
- package/dist/dataLayer/InsertObject.js +4 -3
- package/dist/dataLayer/InsertObject.js.map +1 -1
- package/dist/dataLayer/ReadAuditLogObject.d.ts +3 -7
- package/dist/dataLayer/ReadAuditLogObject.js +4 -3
- package/dist/dataLayer/ReadAuditLogObject.js.map +1 -1
- package/dist/dataLayer/SQLSearch.d.ts +68 -38
- package/dist/dataLayer/SQLSearch.js +140 -78
- package/dist/dataLayer/SQLSearch.js.map +1 -1
- package/dist/dataLayer/SearchByConditionsObject.d.ts +10 -58
- package/dist/dataLayer/SearchByConditionsObject.js +5 -7
- package/dist/dataLayer/SearchByConditionsObject.js.map +1 -1
- package/dist/dataLayer/SearchByHashObject.d.ts +3 -6
- package/dist/dataLayer/SearchByHashObject.js +2 -1
- package/dist/dataLayer/SearchByHashObject.js.map +1 -1
- package/dist/dataLayer/SearchObject.d.ts +3 -12
- package/dist/dataLayer/SearchObject.js +2 -1
- package/dist/dataLayer/SearchObject.js.map +1 -1
- package/dist/dataLayer/SqlSearchObject.d.ts +2 -4
- package/dist/dataLayer/SqlSearchObject.js +2 -1
- package/dist/dataLayer/SqlSearchObject.js.map +1 -1
- package/dist/dataLayer/UpdateObject.d.ts +3 -7
- package/dist/dataLayer/UpdateObject.js +4 -3
- package/dist/dataLayer/UpdateObject.js.map +1 -1
- package/dist/dataLayer/UpsertObject.d.ts +3 -7
- package/dist/dataLayer/UpsertObject.js +4 -3
- package/dist/dataLayer/UpsertObject.js.map +1 -1
- package/dist/dataLayer/bulkLoad.d.ts +4 -4
- package/dist/dataLayer/bulkLoad.js +122 -88
- package/dist/dataLayer/bulkLoad.js.map +1 -1
- package/dist/dataLayer/delete.d.ts +10 -11
- package/dist/dataLayer/delete.js +74 -39
- package/dist/dataLayer/delete.js.map +1 -1
- package/dist/dataLayer/export.d.ts +8 -8
- package/dist/dataLayer/export.js +90 -55
- package/dist/dataLayer/export.js.map +1 -1
- package/dist/dataLayer/getBackup.d.ts +4 -3
- package/dist/dataLayer/getBackup.js +43 -11
- package/dist/dataLayer/getBackup.js.map +1 -1
- package/dist/dataLayer/harperBridge/BridgeMethods.d.ts +39 -21
- package/dist/dataLayer/harperBridge/BridgeMethods.js +41 -20
- package/dist/dataLayer/harperBridge/BridgeMethods.js.map +1 -1
- package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +2 -2
- package/dist/dataLayer/harperBridge/ResourceBridge.js +26 -25
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
- package/dist/dataLayer/harperBridge/TableSizeObject.d.ts +1 -0
- package/dist/dataLayer/harperBridge/TableSizeObject.js.map +1 -1
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.d.ts +4 -4
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
- package/dist/dataLayer/harperBridge/harperBridge.d.ts +2 -3
- package/dist/dataLayer/harperBridge/harperBridge.js +38 -4
- package/dist/dataLayer/harperBridge/harperBridge.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +7 -6
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +5 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +8 -8
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.d.ts +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +3 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +5 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
- package/dist/dataLayer/hdbInfoController.d.ts +4 -8
- package/dist/dataLayer/hdbInfoController.js +66 -31
- package/dist/dataLayer/hdbInfoController.js.map +1 -1
- package/dist/dataLayer/insert.d.ts +14 -26
- package/dist/dataLayer/insert.js +63 -28
- package/dist/dataLayer/insert.js.map +1 -1
- package/dist/dataLayer/readAuditLog.d.ts +1 -3
- package/dist/dataLayer/readAuditLog.js +45 -13
- package/dist/dataLayer/readAuditLog.js.map +1 -1
- package/dist/dataLayer/schema.d.ts +10 -10
- package/dist/dataLayer/schema.js +124 -89
- package/dist/dataLayer/schema.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.d.ts +4 -4
- package/dist/dataLayer/schemaDescribe.js +78 -41
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/dataLayer/search.d.ts +4 -4
- package/dist/dataLayer/search.js +12 -13
- package/dist/dataLayer/search.js.map +1 -1
- package/dist/dataLayer/transaction.d.ts +1 -1
- package/dist/dataLayer/transaction.js +3 -4
- package/dist/dataLayer/transaction.js.map +1 -1
- package/dist/dataLayer/update.d.ts +2 -8
- package/dist/dataLayer/update.js +53 -18
- package/dist/dataLayer/update.js.map +1 -1
- package/dist/globals.d.ts +1 -1
- package/dist/globals.js +1 -0
- package/dist/globals.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/json/systemSchema.json +65 -0
- package/dist/launchServiceScripts/launchHarperDB.d.ts +1 -0
- package/dist/launchServiceScripts/launchHarperDB.js +3 -0
- package/dist/launchServiceScripts/launchHarperDB.js.map +1 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.js +3 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +14 -6
- package/dist/resources/DatabaseTransaction.js +39 -15
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/ErrorResource.d.ts +1 -1
- package/dist/resources/ErrorResource.js +3 -1
- package/dist/resources/ErrorResource.js.map +1 -1
- package/dist/resources/LMDBTransaction.d.ts +10 -13
- package/dist/resources/LMDBTransaction.js +18 -7
- package/dist/resources/LMDBTransaction.js.map +1 -1
- package/dist/resources/RecordEncoder.d.ts +10 -12
- package/dist/resources/RecordEncoder.js +38 -38
- package/dist/resources/RecordEncoder.js.map +1 -1
- package/dist/resources/RequestTarget.d.ts +1 -0
- package/dist/resources/RequestTarget.js.map +1 -1
- package/dist/resources/Resource.d.ts +25 -5
- package/dist/resources/Resource.js +43 -10
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +24 -5
- package/dist/resources/ResourceInterface.js +20 -0
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Resources.d.ts +3 -4
- package/dist/resources/Resources.js +7 -6
- package/dist/resources/Resources.js.map +1 -1
- package/dist/resources/RocksIndexStore.js +3 -0
- package/dist/resources/RocksIndexStore.js.map +1 -1
- package/dist/resources/RocksTransactionLogStore.d.ts +1 -1
- package/dist/resources/RocksTransactionLogStore.js +10 -3
- package/dist/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/resources/Table.d.ts +76 -329
- package/dist/resources/Table.js +306 -116
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/metadata.d.ts +1 -0
- package/dist/resources/analytics/metadata.js +1 -0
- package/dist/resources/analytics/metadata.js.map +1 -1
- package/dist/resources/analytics/read.d.ts +8 -1
- package/dist/resources/analytics/read.js +69 -8
- package/dist/resources/analytics/read.js.map +1 -1
- package/dist/resources/analytics/write.d.ts +28 -0
- package/dist/resources/analytics/write.js +232 -20
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/auditStore.d.ts +18 -13
- package/dist/resources/auditStore.js +16 -8
- package/dist/resources/auditStore.js.map +1 -1
- package/dist/resources/blob.d.ts +16 -27
- package/dist/resources/blob.js +8 -8
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/dataLoader.d.ts +1 -1
- package/dist/resources/dataLoader.js +13 -13
- package/dist/resources/databases.d.ts +17 -0
- package/dist/resources/databases.js +175 -59
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/graphql.d.ts +1 -7
- package/dist/resources/graphql.js +267 -173
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +17 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +327 -59
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/indexes/vector.d.ts +1 -0
- package/dist/resources/indexes/vector.js +14 -0
- package/dist/resources/indexes/vector.js.map +1 -1
- package/dist/resources/jsonSchemaTypes.d.ts +60 -0
- package/dist/resources/jsonSchemaTypes.js +78 -0
- package/dist/resources/jsonSchemaTypes.js.map +1 -0
- package/dist/resources/loadEnv.d.ts +2 -5
- package/dist/resources/loadEnv.js +21 -18
- package/dist/resources/loadEnv.js.map +1 -1
- package/dist/resources/login.d.ts +2 -3
- package/dist/resources/login.js +5 -4
- package/dist/resources/login.js.map +1 -1
- package/dist/resources/models/Models.d.ts +45 -0
- package/dist/resources/models/Models.js +265 -0
- package/dist/resources/models/Models.js.map +1 -0
- package/dist/resources/models/TestBackend.d.ts +15 -0
- package/dist/resources/models/TestBackend.js +71 -0
- package/dist/resources/models/TestBackend.js.map +1 -0
- package/dist/resources/models/agentLoop.d.ts +125 -0
- package/dist/resources/models/agentLoop.js +746 -0
- package/dist/resources/models/agentLoop.js.map +1 -0
- package/dist/resources/models/analyticsTable.d.ts +65 -0
- package/dist/resources/models/analyticsTable.js +166 -0
- package/dist/resources/models/analyticsTable.js.map +1 -0
- package/dist/resources/models/backendHelpers.d.ts +57 -0
- package/dist/resources/models/backendHelpers.js +109 -0
- package/dist/resources/models/backendHelpers.js.map +1 -0
- package/dist/resources/models/backendRegistry.d.ts +36 -0
- package/dist/resources/models/backendRegistry.js +54 -0
- package/dist/resources/models/backendRegistry.js.map +1 -0
- package/dist/resources/models/bootstrap.d.ts +24 -0
- package/dist/resources/models/bootstrap.js +112 -0
- package/dist/resources/models/bootstrap.js.map +1 -0
- package/dist/resources/models/embedHook.d.ts +33 -0
- package/dist/resources/models/embedHook.js +127 -0
- package/dist/resources/models/embedHook.js.map +1 -0
- package/dist/resources/models/types.d.ts +301 -0
- package/dist/resources/models/types.js +11 -0
- package/dist/resources/models/types.js.map +1 -0
- package/dist/resources/openApi.js +74 -34
- package/dist/resources/openApi.js.map +1 -1
- package/dist/resources/replayLogs.js +7 -1
- package/dist/resources/replayLogs.js.map +1 -1
- package/dist/resources/replayLogsGuards.d.ts +9 -0
- package/dist/resources/replayLogsGuards.js +47 -0
- package/dist/resources/replayLogsGuards.js.map +1 -1
- package/dist/resources/roles.d.ts +1 -7
- package/dist/resources/roles.js +67 -71
- package/dist/resources/roles.js.map +1 -1
- package/dist/resources/search.d.ts +18 -1
- package/dist/resources/search.js +349 -140
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/tracked.d.ts +1 -1
- package/dist/resources/tracked.js +23 -15
- package/dist/resources/tracked.js.map +1 -1
- package/dist/resources/transaction.d.ts +1 -1
- package/dist/resources/transaction.js +1 -1
- package/dist/resources/transaction.js.map +1 -1
- package/dist/resources/transactionBroadcast.d.ts +1 -1
- package/dist/resources/transactionBroadcast.js.map +1 -1
- package/dist/security/auth.d.ts +1 -5
- package/dist/security/auth.js +34 -25
- package/dist/security/auth.js.map +1 -1
- package/dist/security/certificateVerification/crlVerification.js +7 -1
- package/dist/security/certificateVerification/crlVerification.js.map +1 -1
- package/dist/security/cryptoHash.d.ts +2 -2
- package/dist/security/cryptoHash.js +37 -5
- package/dist/security/cryptoHash.js.map +1 -1
- package/dist/security/data_objects/PermissionAttributeResponseObject.d.ts +3 -4
- package/dist/security/data_objects/PermissionAttributeResponseObject.js +4 -1
- package/dist/security/data_objects/PermissionAttributeResponseObject.js.map +1 -1
- package/dist/security/data_objects/PermissionResponseObject.d.ts +9 -9
- package/dist/security/data_objects/PermissionResponseObject.js +15 -8
- package/dist/security/data_objects/PermissionResponseObject.js.map +1 -1
- package/dist/security/data_objects/PermissionTableResponseObject.d.ts +5 -6
- package/dist/security/data_objects/PermissionTableResponseObject.js +6 -1
- package/dist/security/data_objects/PermissionTableResponseObject.js.map +1 -1
- package/dist/security/fastifyAuth.d.ts +2 -2
- package/dist/security/fastifyAuth.js +131 -22
- package/dist/security/fastifyAuth.js.map +1 -1
- package/dist/security/impersonation.js +15 -15
- package/dist/security/jsLoader.js +18 -5
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/keys.d.ts +45 -48
- package/dist/security/keys.js +160 -114
- package/dist/security/keys.js.map +1 -1
- package/dist/security/permissionsTranslator.js +2 -2
- package/dist/security/role.d.ts +5 -5
- package/dist/security/role.js +70 -35
- package/dist/security/role.js.map +1 -1
- package/dist/security/tokenAuthentication.d.ts +13 -0
- package/dist/security/tokenAuthentication.js +57 -27
- package/dist/security/tokenAuthentication.js.map +1 -1
- package/dist/security/user.js +74 -38
- package/dist/security/user.js.map +1 -1
- package/dist/server/DurableSubscriptionsSession.d.ts +4 -2
- package/dist/server/DurableSubscriptionsSession.js +71 -55
- package/dist/server/DurableSubscriptionsSession.js.map +1 -1
- package/dist/server/REST.d.ts +1 -8
- package/dist/server/REST.js +17 -16
- package/dist/server/REST.js.map +1 -1
- package/dist/server/Server.d.ts +23 -4
- package/dist/server/Server.js +1 -1
- package/dist/server/Server.js.map +1 -1
- package/dist/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
- package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
- package/dist/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
- package/dist/server/fastifyRoutes.d.ts +1 -4
- package/dist/server/fastifyRoutes.js +34 -30
- package/dist/server/fastifyRoutes.js.map +1 -1
- package/dist/server/graphqlQuerying.d.ts +1 -1
- package/dist/server/graphqlQuerying.js +8 -7
- package/dist/server/graphqlQuerying.js.map +1 -1
- package/dist/server/http.d.ts +9 -4
- package/dist/server/http.js +523 -47
- package/dist/server/http.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +66 -15
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/jobs/JobObject.d.ts +3 -3
- package/dist/server/jobs/JobObject.js +53 -7
- package/dist/server/jobs/JobObject.js.map +1 -1
- package/dist/server/jobs/jobProcess.js +64 -24
- package/dist/server/jobs/jobProcess.js.map +1 -1
- package/dist/server/jobs/jobRunner.d.ts +7 -6
- package/dist/server/jobs/jobRunner.js +68 -30
- package/dist/server/jobs/jobRunner.js.map +1 -1
- package/dist/server/jobs/jobs.d.ts +18 -7
- package/dist/server/jobs/jobs.js +93 -61
- package/dist/server/jobs/jobs.js.map +1 -1
- package/dist/server/loadRootComponents.js +1 -1
- package/dist/server/middlewareChain.d.ts +80 -0
- package/dist/server/middlewareChain.js +252 -0
- package/dist/server/middlewareChain.js.map +1 -0
- package/dist/server/mqtt.d.ts +1 -8
- package/dist/server/mqtt.js +22 -17
- package/dist/server/mqtt.js.map +1 -1
- package/dist/server/nodeName.js +46 -13
- package/dist/server/nodeName.js.map +1 -1
- package/dist/server/operationsServer.d.ts +2 -2
- package/dist/server/operationsServer.js +106 -33
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/Headers.d.ts +4 -4
- package/dist/server/serverHelpers/Headers.js +2 -0
- package/dist/server/serverHelpers/Headers.js.map +1 -1
- package/dist/server/serverHelpers/JSONStream.d.ts +7 -1
- package/dist/server/serverHelpers/JSONStream.js +12 -3
- package/dist/server/serverHelpers/JSONStream.js.map +1 -1
- package/dist/server/serverHelpers/Request.d.ts +106 -8
- package/dist/server/serverHelpers/Request.js +370 -9
- package/dist/server/serverHelpers/Request.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.d.ts +1 -1
- package/dist/server/serverHelpers/contentTypes.js +36 -7
- package/dist/server/serverHelpers/contentTypes.js.map +1 -1
- package/dist/server/serverHelpers/multipartParser.d.ts +21 -0
- package/dist/server/serverHelpers/multipartParser.js +142 -0
- package/dist/server/serverHelpers/multipartParser.js.map +1 -0
- package/dist/server/serverHelpers/progressEmitter.d.ts +25 -0
- package/dist/server/serverHelpers/progressEmitter.js +103 -0
- package/dist/server/serverHelpers/progressEmitter.js.map +1 -0
- package/dist/server/serverHelpers/serverHandlers.d.ts +1 -1
- package/dist/server/serverHelpers/serverHandlers.js +38 -7
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/serverUtilities.d.ts +4 -2
- package/dist/server/serverHelpers/serverUtilities.js +97 -93
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/server/static.js +8 -5
- package/dist/server/static.js.map +1 -1
- package/dist/server/status/index.js +3 -3
- package/dist/server/storageReclamation.d.ts +10 -0
- package/dist/server/storageReclamation.js +68 -9
- package/dist/server/storageReclamation.js.map +1 -1
- package/dist/server/threads/itc.js +7 -4
- package/dist/server/threads/itc.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +1 -1
- package/dist/server/threads/manageThreads.js +110 -26
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/socketRouter.d.ts +0 -1
- package/dist/server/threads/socketRouter.js +8 -271
- package/dist/server/threads/socketRouter.js.map +1 -1
- package/dist/server/threads/threadServer.d.ts +1 -0
- package/dist/server/threads/threadServer.js +360 -118
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/server/threads/workerProcessGuard.d.ts +42 -0
- package/dist/server/threads/workerProcessGuard.js +114 -0
- package/dist/server/threads/workerProcessGuard.js.map +1 -0
- package/dist/server/throttle.js +17 -0
- package/dist/server/throttle.js.map +1 -1
- package/dist/sqlTranslator/SelectValidator.d.ts +21 -24
- package/dist/sqlTranslator/SelectValidator.js +86 -47
- package/dist/sqlTranslator/SelectValidator.js.map +1 -1
- package/dist/sqlTranslator/alasqlFunctionImporter.d.ts +6 -2
- package/dist/sqlTranslator/alasqlFunctionImporter.js +40 -3
- package/dist/sqlTranslator/alasqlFunctionImporter.js.map +1 -1
- package/dist/sqlTranslator/deleteTranslator.d.ts +4 -7
- package/dist/sqlTranslator/deleteTranslator.js +48 -14
- package/dist/sqlTranslator/deleteTranslator.js.map +1 -1
- package/dist/sqlTranslator/index.d.ts +10 -9
- package/dist/sqlTranslator/index.js +69 -30
- package/dist/sqlTranslator/index.js.map +1 -1
- package/dist/sqlTranslator/sql_statement_bucket.d.ts +10 -10
- package/dist/sqlTranslator/sql_statement_bucket.js +55 -13
- package/dist/sqlTranslator/sql_statement_bucket.js.map +1 -1
- package/dist/upgrade/UpgradeObjects.d.ts +2 -3
- package/dist/upgrade/UpgradeObjects.js +37 -4
- package/dist/upgrade/UpgradeObjects.js.map +1 -1
- package/dist/upgrade/directives/5-1-0.d.ts +6 -0
- package/dist/upgrade/directives/5-1-0.js +114 -0
- package/dist/upgrade/directives/5-1-0.js.map +1 -0
- package/dist/upgrade/directives/directivesController.d.ts +10 -10
- package/dist/upgrade/directives/directivesController.js +52 -11
- package/dist/upgrade/directives/directivesController.js.map +1 -1
- package/dist/upgrade/directivesManager.d.ts +1 -1
- package/dist/upgrade/directivesManager.js +53 -18
- package/dist/upgrade/directivesManager.js.map +1 -1
- package/dist/upgrade/upgradePrompt.d.ts +2 -8
- package/dist/upgrade/upgradePrompt.js +55 -60
- package/dist/upgrade/upgradePrompt.js.map +1 -1
- package/dist/upgrade/upgradeUtilities.d.ts +1 -1
- package/dist/upgrade/upgradeUtilities.js +37 -5
- package/dist/upgrade/upgradeUtilities.js.map +1 -1
- package/dist/utility/OperationFunctionCaller.d.ts +1 -1
- package/dist/utility/OperationFunctionCaller.js +45 -10
- package/dist/utility/OperationFunctionCaller.js.map +1 -1
- package/dist/utility/assignCmdEnvVariables.d.ts +1 -2
- package/dist/utility/assignCmdEnvVariables.js +8 -4
- package/dist/utility/assignCmdEnvVariables.js.map +1 -1
- package/dist/utility/common_utils.d.ts +80 -77
- package/dist/utility/common_utils.js +140 -79
- package/dist/utility/common_utils.js.map +1 -1
- package/dist/utility/environment/environmentManager.d.ts +12 -11
- package/dist/utility/environment/environmentManager.js +75 -29
- package/dist/utility/environment/environmentManager.js.map +1 -1
- package/dist/utility/environment/systemInformation.d.ts +4 -0
- package/dist/utility/environment/systemInformation.js +27 -16
- package/dist/utility/environment/systemInformation.js.map +1 -1
- package/dist/utility/errors/commonErrors.d.ts +192 -168
- package/dist/utility/errors/commonErrors.js +49 -18
- package/dist/utility/errors/commonErrors.js.map +1 -1
- package/dist/utility/errors/hdbError.d.ts +37 -51
- package/dist/utility/errors/hdbError.js +65 -26
- package/dist/utility/errors/hdbError.js.map +1 -1
- package/dist/utility/expandEnvVar.d.ts +61 -0
- package/dist/utility/expandEnvVar.js +113 -0
- package/dist/utility/expandEnvVar.js.map +1 -0
- package/dist/utility/functions/geo.js +2 -2
- package/dist/utility/functions/sql/alaSQLExtension.js +1 -1
- package/dist/utility/globalSchema.d.ts +13 -4
- package/dist/utility/globalSchema.js +14 -11
- package/dist/utility/globalSchema.js.map +1 -1
- package/dist/utility/hdbTerms.d.ts +54 -1
- package/dist/utility/hdbTerms.js +54 -1
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/install/checkJWTTokensExist.js +1 -1
- package/dist/utility/install/installer.d.ts +9 -12
- package/dist/utility/install/installer.js +117 -54
- package/dist/utility/install/installer.js.map +1 -1
- package/dist/utility/installation.js +3 -3
- package/dist/utility/lmdb/DBIDefinition.d.ts +4 -4
- package/dist/utility/lmdb/DBIDefinition.js +5 -1
- package/dist/utility/lmdb/DBIDefinition.js.map +1 -1
- package/dist/utility/lmdb/DeleteRecordsResponseObject.d.ts +3 -6
- package/dist/utility/lmdb/DeleteRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/DeleteRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/InsertRecordsResponseObject.d.ts +3 -5
- package/dist/utility/lmdb/InsertRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/InsertRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/OpenDBIObject.d.ts +12 -15
- package/dist/utility/lmdb/OpenDBIObject.js +68 -6
- package/dist/utility/lmdb/OpenDBIObject.js.map +1 -1
- package/dist/utility/lmdb/OpenEnvironmentObject.d.ts +5 -8
- package/dist/utility/lmdb/OpenEnvironmentObject.js +52 -4
- package/dist/utility/lmdb/OpenEnvironmentObject.js.map +1 -1
- package/dist/utility/lmdb/UpdateRecordsResponseObject.d.ts +3 -6
- package/dist/utility/lmdb/UpdateRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/UpdateRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/UpsertRecordsResponseObject.d.ts +3 -5
- package/dist/utility/lmdb/UpsertRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/UpsertRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/cleanLMDBMap.d.ts +1 -1
- package/dist/utility/lmdb/cleanLMDBMap.js +44 -7
- package/dist/utility/lmdb/cleanLMDBMap.js.map +1 -1
- package/dist/utility/lmdb/commonUtility.d.ts +8 -9
- package/dist/utility/lmdb/commonUtility.js +46 -17
- package/dist/utility/lmdb/commonUtility.js.map +1 -1
- package/dist/utility/lmdb/deleteUtility.d.ts +2 -3
- package/dist/utility/lmdb/deleteUtility.js +51 -16
- package/dist/utility/lmdb/deleteUtility.js.map +1 -1
- package/dist/utility/lmdb/environmentUtility.d.ts +69 -36
- package/dist/utility/lmdb/environmentUtility.js +91 -51
- package/dist/utility/lmdb/environmentUtility.js.map +1 -1
- package/dist/utility/lmdb/searchCursorFunctions.d.ts +19 -19
- package/dist/utility/lmdb/searchCursorFunctions.js +46 -14
- package/dist/utility/lmdb/searchCursorFunctions.js.map +1 -1
- package/dist/utility/lmdb/searchUtility.d.ts +142 -73
- package/dist/utility/lmdb/searchUtility.js +91 -55
- package/dist/utility/lmdb/searchUtility.js.map +1 -1
- package/dist/utility/lmdb/terms.d.ts +34 -34
- package/dist/utility/lmdb/terms.js +12 -22
- package/dist/utility/lmdb/terms.js.map +1 -1
- package/dist/utility/lmdb/writeUtility.d.ts +3 -6
- package/dist/utility/lmdb/writeUtility.js +61 -28
- package/dist/utility/lmdb/writeUtility.js.map +1 -1
- package/dist/utility/logging/harper_logger.d.ts +87 -103
- package/dist/utility/logging/harper_logger.js +177 -82
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/logging/logRotator.d.ts +2 -10
- package/dist/utility/logging/logRotator.js +67 -32
- package/dist/utility/logging/logRotator.js.map +1 -1
- package/dist/utility/logging/logger.js +4 -4
- package/dist/utility/logging/readLog.d.ts +1 -1
- package/dist/utility/logging/readLog.js +54 -17
- package/dist/utility/logging/readLog.js.map +1 -1
- package/dist/utility/logging/transactionLog.d.ts +2 -2
- package/dist/utility/logging/transactionLog.js +51 -16
- package/dist/utility/logging/transactionLog.js.map +1 -1
- package/dist/utility/mount_hdb.d.ts +1 -2
- package/dist/utility/mount_hdb.js +54 -17
- package/dist/utility/mount_hdb.js.map +1 -1
- package/dist/utility/npmUtilities.d.ts +1 -1
- package/dist/utility/npmUtilities.js +54 -19
- package/dist/utility/npmUtilities.js.map +1 -1
- package/dist/utility/operation_authorization.d.ts +36 -9
- package/dist/utility/operation_authorization.js +135 -86
- package/dist/utility/operation_authorization.js.map +1 -1
- package/dist/utility/packageUtils.d.ts +0 -2
- package/dist/utility/packageUtils.js +7 -17
- package/dist/utility/packageUtils.js.map +1 -1
- package/dist/utility/password.js +2 -2
- package/dist/utility/processManagement/processManagement.js +2 -2
- package/dist/utility/processManagement/servicesConfig.js +1 -1
- package/dist/utility/signalling.d.ts +2 -2
- package/dist/utility/signalling.js +51 -16
- package/dist/utility/signalling.js.map +1 -1
- package/dist/utility/watcherFallback.d.ts +36 -0
- package/dist/utility/watcherFallback.js +73 -0
- package/dist/utility/watcherFallback.js.map +1 -0
- package/dist/validation/analyticsValidator.d.ts +1 -0
- package/dist/validation/analyticsValidator.js +80 -0
- package/dist/validation/analyticsValidator.js.map +1 -0
- package/dist/validation/bulkDeleteValidator.d.ts +1 -2
- package/dist/validation/bulkDeleteValidator.js +49 -11
- package/dist/validation/bulkDeleteValidator.js.map +1 -1
- package/dist/validation/check_permissions.d.ts +1 -2
- package/dist/validation/check_permissions.js +38 -3
- package/dist/validation/check_permissions.js.map +1 -1
- package/dist/validation/common_validators.d.ts +20 -20
- package/dist/validation/common_validators.js +62 -31
- package/dist/validation/common_validators.js.map +1 -1
- package/dist/validation/configValidator.d.ts +4 -4
- package/dist/validation/configValidator.js +189 -54
- package/dist/validation/configValidator.js.map +1 -1
- package/dist/validation/deleteValidator.d.ts +1 -2
- package/dist/validation/deleteValidator.js +49 -11
- package/dist/validation/deleteValidator.js.map +1 -1
- package/dist/validation/fileLoadValidator.d.ts +4 -4
- package/dist/validation/fileLoadValidator.js +67 -32
- package/dist/validation/fileLoadValidator.js.map +1 -1
- package/dist/validation/insertValidator.d.ts +1 -2
- package/dist/validation/insertValidator.js +48 -10
- package/dist/validation/insertValidator.js.map +1 -1
- package/dist/validation/installValidator.d.ts +2 -2
- package/dist/validation/installValidator.js +47 -10
- package/dist/validation/installValidator.js.map +1 -1
- package/dist/validation/readLogValidator.d.ts +1 -2
- package/dist/validation/readLogValidator.js +60 -22
- package/dist/validation/readLogValidator.js.map +1 -1
- package/dist/validation/role_validation.d.ts +3 -3
- package/dist/validation/role_validation.js +55 -19
- package/dist/validation/role_validation.js.map +1 -1
- package/dist/validation/schemaMetadataValidator.d.ts +3 -4
- package/dist/validation/schemaMetadataValidator.js +11 -12
- package/dist/validation/schemaMetadataValidator.js.map +1 -1
- package/dist/validation/searchValidator.d.ts +1 -2
- package/dist/validation/searchValidator.js +82 -43
- package/dist/validation/searchValidator.js.map +1 -1
- package/dist/validation/statusValidator.d.ts +1 -1
- package/dist/validation/transactionLogValidator.d.ts +3 -3
- package/dist/validation/transactionLogValidator.js +52 -17
- package/dist/validation/transactionLogValidator.js.map +1 -1
- package/dist/validation/user_validation.d.ts +3 -3
- package/dist/validation/user_validation.js +38 -6
- package/dist/validation/user_validation.js.map +1 -1
- package/dist/validation/validationWrapper.d.ts +3 -3
- package/dist/validation/validationWrapper.js +4 -5
- package/dist/validation/validationWrapper.js.map +1 -1
- package/index.ts +5 -0
- package/json/systemSchema.json +65 -0
- package/launchServiceScripts/utility/checkNodeVersion.js +2 -0
- package/package.json +38 -24
- package/resources/DESIGN.md +98 -0
- package/resources/DatabaseTransaction.ts +58 -30
- package/resources/ErrorResource.ts +2 -1
- package/resources/LMDBTransaction.ts +38 -29
- package/resources/RecordEncoder.ts +41 -39
- package/resources/RequestTarget.ts +2 -0
- package/resources/Resource.ts +96 -56
- package/resources/ResourceInterface.ts +44 -21
- package/resources/Resources.ts +8 -8
- package/resources/RocksIndexStore.ts +3 -0
- package/resources/RocksTransactionLogStore.ts +13 -4
- package/resources/Table.ts +440 -223
- package/resources/analytics/metadata.ts +1 -0
- package/resources/analytics/read.ts +99 -10
- package/resources/analytics/write.ts +240 -17
- package/resources/auditStore.ts +30 -19
- package/resources/blob.ts +53 -53
- package/resources/dataLoader.ts +4 -4
- package/resources/databases.ts +208 -74
- package/resources/graphql.ts +267 -165
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +310 -65
- package/resources/indexes/vector.ts +17 -0
- package/resources/jsonSchemaTypes.ts +102 -0
- package/resources/loadEnv.ts +21 -17
- package/resources/login.ts +5 -3
- package/resources/models/Models.ts +304 -0
- package/resources/models/TestBackend.ts +83 -0
- package/resources/models/agentLoop.ts +895 -0
- package/resources/models/analyticsTable.ts +199 -0
- package/resources/models/backendHelpers.ts +116 -0
- package/resources/models/backendRegistry.ts +66 -0
- package/resources/models/bootstrap.ts +135 -0
- package/resources/models/embedHook.ts +138 -0
- package/resources/models/types.ts +296 -0
- package/resources/openApi.ts +65 -31
- package/resources/replayLogs.ts +20 -9
- package/resources/replayLogsGuards.ts +45 -0
- package/resources/roles.ts +62 -67
- package/resources/search.ts +355 -135
- package/resources/tracked.ts +18 -9
- package/resources/transaction.ts +8 -8
- package/resources/transactionBroadcast.ts +3 -3
- package/schema.graphql +7 -0
- package/security/auth.ts +35 -26
- package/security/certificateVerification/crlVerification.ts +11 -4
- package/security/{cryptoHash.js → cryptoHash.ts} +3 -8
- package/security/data_objects/{PermissionAttributeResponseObject.js → PermissionAttributeResponseObject.ts} +4 -4
- package/security/data_objects/{PermissionResponseObject.js → PermissionResponseObject.ts} +12 -11
- package/security/data_objects/{PermissionTableResponseObject.js → PermissionTableResponseObject.ts} +6 -4
- package/security/{fastifyAuth.js → fastifyAuth.ts} +93 -20
- package/security/impersonation.ts +3 -3
- package/security/jsLoader.ts +22 -8
- package/security/{keys.js → keys.ts} +113 -121
- package/security/permissionsTranslator.js +2 -2
- package/security/{role.js → role.ts} +26 -33
- package/security/tokenAuthentication.ts +34 -7
- package/security/user.ts +26 -22
- package/server/DESIGN.md +139 -0
- package/server/DurableSubscriptionsSession.ts +67 -50
- package/server/REST.ts +120 -107
- package/server/Server.ts +31 -12
- package/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
- package/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
- package/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
- package/server/fastifyRoutes.ts +37 -33
- package/server/graphqlQuerying.ts +6 -5
- package/server/http.ts +517 -26
- package/server/itc/serverHandlers.js +75 -14
- package/server/jobs/{JobObject.js → JobObject.ts} +13 -6
- package/server/jobs/{jobProcess.js → jobProcess.ts} +20 -16
- package/server/jobs/{jobRunner.js → jobRunner.ts} +20 -21
- package/server/jobs/{jobs.js → jobs.ts} +41 -44
- package/server/loadRootComponents.js +1 -1
- package/server/middlewareChain.ts +270 -0
- package/server/mqtt.ts +35 -26
- package/server/nodeName.ts +3 -1
- package/server/operationsServer.ts +85 -10
- package/server/serverHelpers/Headers.ts +10 -8
- package/server/serverHelpers/JSONStream.ts +15 -5
- package/server/serverHelpers/Request.ts +370 -13
- package/server/serverHelpers/contentTypes.ts +42 -11
- package/server/serverHelpers/multipartParser.ts +152 -0
- package/server/serverHelpers/progressEmitter.ts +110 -0
- package/server/serverHelpers/serverHandlers.js +43 -7
- package/server/serverHelpers/serverUtilities.ts +40 -30
- package/server/static.ts +9 -6
- package/server/status/index.ts +2 -2
- package/server/storageReclamation.ts +39 -2
- package/server/threads/itc.js +7 -4
- package/server/threads/manageThreads.js +100 -26
- package/server/threads/socketRouter.ts +12 -275
- package/server/threads/threadServer.js +345 -105
- package/server/threads/workerProcessGuard.ts +93 -0
- package/server/throttle.ts +18 -0
- package/sqlTranslator/{SelectValidator.js → SelectValidator.ts} +41 -49
- package/sqlTranslator/{alasqlFunctionImporter.js → alasqlFunctionImporter.ts} +5 -5
- package/sqlTranslator/{deleteTranslator.js → deleteTranslator.ts} +13 -18
- package/sqlTranslator/{index.js → index.ts} +30 -33
- package/sqlTranslator/{sql_statement_bucket.js → sql_statement_bucket.ts} +49 -20
- package/static/README.md +10 -9
- package/static/defaultConfig.yaml +0 -1
- package/studio/web/assets/{index-CybLScHg.js → index-Dqr9oVhe.js} +5 -5
- package/studio/web/assets/index-Dqr9oVhe.js.map +1 -0
- package/studio/web/assets/{index.lazy-DKx5-iXF.js → index.lazy-CpKcKb7M.js} +2 -2
- package/studio/web/assets/{index.lazy-DKx5-iXF.js.map → index.lazy-CpKcKb7M.js.map} +1 -1
- package/studio/web/assets/{profile-BOjes0Wl.js → profile-C1cujdsg.js} +2 -2
- package/studio/web/assets/{profile-BOjes0Wl.js.map → profile-C1cujdsg.js.map} +1 -1
- package/studio/web/assets/{status-EWKUIrjT.js → status-CTiIIQlY.js} +2 -2
- package/studio/web/assets/{status-EWKUIrjT.js.map → status-CTiIIQlY.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/{UpgradeObjects.js → UpgradeObjects.ts} +3 -6
- package/upgrade/directives/5-1-0.ts +89 -0
- package/upgrade/directives/{directivesController.js → directivesController.ts} +16 -16
- package/upgrade/{directivesManager.js → directivesManager.ts} +7 -11
- package/upgrade/{upgradePrompt.js → upgradePrompt.ts} +6 -54
- package/upgrade/{upgradeUtilities.js → upgradeUtilities.ts} +3 -7
- package/utility/{OperationFunctionCaller.js → OperationFunctionCaller.ts} +7 -7
- package/utility/{assignCmdEnvVariables.js → assignCmdEnvVariables.ts} +6 -8
- package/utility/{common_utils.js → common_utils.ts} +113 -139
- package/utility/environment/{environmentManager.js → environmentManager.ts} +34 -33
- package/utility/environment/systemInformation.ts +18 -4
- package/utility/errors/{commonErrors.js → commonErrors.ts} +9 -9
- package/utility/errors/{hdbError.js → hdbError.ts} +39 -45
- package/utility/expandEnvVar.ts +110 -0
- package/utility/functions/geo.js +2 -2
- package/utility/functions/sql/alaSQLExtension.js +1 -1
- package/utility/globalSchema.ts +30 -0
- package/utility/hdbTerms.ts +54 -1
- package/utility/install/checkJWTTokensExist.js +1 -1
- package/utility/install/{installer.js → installer.ts} +66 -42
- package/utility/installation.ts +2 -2
- package/utility/lmdb/{DBIDefinition.js → DBIDefinition.ts} +4 -1
- package/utility/lmdb/{DeleteRecordsResponseObject.js → DeleteRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/{InsertRecordsResponseObject.js → InsertRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/OpenDBIObject.ts +57 -0
- package/utility/lmdb/{OpenEnvironmentObject.js → OpenEnvironmentObject.ts} +19 -6
- package/utility/lmdb/{UpdateRecordsResponseObject.js → UpdateRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/{UpsertRecordsResponseObject.js → UpsertRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/{cleanLMDBMap.js → cleanLMDBMap.ts} +5 -5
- package/utility/lmdb/{commonUtility.js → commonUtility.ts} +13 -21
- package/utility/lmdb/{deleteUtility.js → deleteUtility.ts} +8 -12
- package/utility/lmdb/{environmentUtility.js → environmentUtility.ts} +43 -52
- package/utility/lmdb/{searchCursorFunctions.js → searchCursorFunctions.ts} +12 -26
- package/utility/lmdb/{searchUtility.js → searchUtility.ts} +75 -64
- package/utility/lmdb/{terms.js → terms.ts} +10 -23
- package/utility/lmdb/{writeUtility.js → writeUtility.ts} +37 -22
- package/utility/logging/{harper_logger.js → harper_logger.ts} +137 -90
- package/utility/logging/{logRotator.js → logRotator.ts} +15 -18
- package/utility/logging/logger.ts +1 -1
- package/utility/logging/{readLog.js → readLog.ts} +19 -19
- package/utility/logging/{transactionLog.js → transactionLog.ts} +10 -14
- package/utility/{mount_hdb.js → mount_hdb.ts} +15 -16
- package/utility/{npmUtilities.js → npmUtilities.ts} +14 -17
- package/utility/{operation_authorization.js → operation_authorization.ts} +173 -124
- package/utility/packageUtils.js +7 -16
- package/utility/password.ts +1 -1
- package/utility/processManagement/processManagement.js +2 -2
- package/utility/processManagement/servicesConfig.js +1 -1
- package/utility/{signalling.js → signalling.ts} +6 -11
- package/utility/watcherFallback.ts +74 -0
- package/validation/analyticsValidator.ts +44 -0
- package/validation/{bulkDeleteValidator.js → bulkDeleteValidator.ts} +5 -5
- package/validation/{check_permissions.js → check_permissions.ts} +3 -3
- package/validation/{common_validators.js → common_validators.ts} +12 -24
- package/validation/{configValidator.js → configValidator.ts} +114 -18
- package/validation/{deleteValidator.js → deleteValidator.ts} +5 -5
- package/validation/{fileLoadValidator.js → fileLoadValidator.ts} +12 -19
- package/validation/{insertValidator.js → insertValidator.ts} +5 -5
- package/validation/{installValidator.js → installValidator.ts} +8 -8
- package/validation/{readLogValidator.js → readLogValidator.ts} +10 -10
- package/validation/{role_validation.js → role_validation.ts} +26 -32
- package/validation/{schemaMetadataValidator.js → schemaMetadataValidator.ts} +5 -11
- package/validation/{searchValidator.js → searchValidator.ts} +12 -11
- package/validation/statusValidator.ts +1 -1
- package/validation/{transactionLogValidator.js → transactionLogValidator.ts} +4 -9
- package/validation/{user_validation.js → user_validation.ts} +4 -10
- package/validation/{validationWrapper.js → validationWrapper.ts} +3 -9
- package/bin/cliOperations.js +0 -159
- package/bin/lite.js +0 -5
- package/dataLayer/harperBridge/BridgeMethods.js +0 -85
- package/studio/web/assets/index-CybLScHg.js.map +0 -1
- package/utility/globalSchema.js +0 -35
- package/utility/lmdb/OpenDBIObject.js +0 -31
|
@@ -1,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) {
|
|
@@ -1,12 +1,13 @@
|
|
|
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 { EventEmitter, once } from 'events';
|
|
4
4
|
import yaml from 'yaml';
|
|
5
5
|
import chokidar, { type FSWatcher } from 'chokidar';
|
|
6
6
|
import { readFile } from 'node:fs/promises';
|
|
7
7
|
import { isDeepStrictEqual } from 'util';
|
|
8
|
-
import { DEFAULT_CONFIG } from './DEFAULT_CONFIG.
|
|
8
|
+
import { DEFAULT_CONFIG } from './DEFAULT_CONFIG.ts';
|
|
9
9
|
import { cloneDeep } from 'lodash';
|
|
10
|
+
import { POLLING_FALLBACK_OPTIONS, isWatcherExhaustionError, warnWatcherFallback } from '../utility/watcherFallback.ts';
|
|
10
11
|
|
|
11
12
|
export interface Config {
|
|
12
13
|
[key: string]: ConfigValue;
|
|
@@ -82,11 +83,15 @@ export class CannotSetPropertyError extends Error {
|
|
|
82
83
|
*/
|
|
83
84
|
export class OptionsWatcher extends EventEmitter<OptionsWatcherEventMap> {
|
|
84
85
|
#filePath: string;
|
|
85
|
-
#watcher
|
|
86
|
+
#watcher!: FSWatcher;
|
|
86
87
|
#scopedConfig?: ConfigValue;
|
|
87
88
|
#rootConfig?: Config;
|
|
88
89
|
#name: string;
|
|
89
90
|
#logger: Logger;
|
|
91
|
+
#usingPolling: boolean;
|
|
92
|
+
#closed: boolean;
|
|
93
|
+
#openCount: number = 0;
|
|
94
|
+
#pendingReads: Set<Promise<void>> = new Set();
|
|
90
95
|
ready: Promise<any[]>;
|
|
91
96
|
|
|
92
97
|
constructor(name: string, filePath: string, logger?: Logger) {
|
|
@@ -94,9 +99,19 @@ export class OptionsWatcher extends EventEmitter<OptionsWatcherEventMap> {
|
|
|
94
99
|
this.#name = name;
|
|
95
100
|
this.#filePath = filePath;
|
|
96
101
|
this.#logger = logger || loggerWithTag(name);
|
|
102
|
+
this.#usingPolling = false;
|
|
103
|
+
this.#closed = false;
|
|
97
104
|
this.ready = once(this, 'ready');
|
|
105
|
+
this.#openWatcher();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
#openWatcher() {
|
|
109
|
+
this.#openCount++;
|
|
98
110
|
this.#watcher = chokidar
|
|
99
|
-
.watch(filePath, {
|
|
111
|
+
.watch(this.#filePath, {
|
|
112
|
+
persistent: false,
|
|
113
|
+
...(this.#usingPolling ? POLLING_FALLBACK_OPTIONS : {}),
|
|
114
|
+
})
|
|
100
115
|
.on('add', this.#handleChange.bind(this))
|
|
101
116
|
.on('change', this.#handleChange.bind(this))
|
|
102
117
|
.on('error', this.#handleError.bind(this))
|
|
@@ -105,9 +120,10 @@ export class OptionsWatcher extends EventEmitter<OptionsWatcherEventMap> {
|
|
|
105
120
|
}
|
|
106
121
|
|
|
107
122
|
#handleChange() {
|
|
108
|
-
readFile(this.#filePath, 'utf-8')
|
|
123
|
+
const read: Promise<void> = readFile(this.#filePath, 'utf-8')
|
|
109
124
|
.then((contents) => {
|
|
110
|
-
|
|
125
|
+
const parsed = yaml.parse(contents);
|
|
126
|
+
this.#rootConfig = parsed && typeof parsed === 'object' ? parsed : undefined;
|
|
111
127
|
// If the extension is in the config file
|
|
112
128
|
if (this.#rootConfig && this.#name in this.#rootConfig) {
|
|
113
129
|
// If a config object does not exist
|
|
@@ -146,10 +162,36 @@ export class OptionsWatcher extends EventEmitter<OptionsWatcherEventMap> {
|
|
|
146
162
|
return;
|
|
147
163
|
}
|
|
148
164
|
this.emit('error', error);
|
|
165
|
+
})
|
|
166
|
+
.finally(() => {
|
|
167
|
+
this.#pendingReads.delete(read);
|
|
149
168
|
});
|
|
169
|
+
this.#pendingReads.add(read);
|
|
150
170
|
}
|
|
151
171
|
|
|
152
172
|
#handleError(error: unknown) {
|
|
173
|
+
if (isWatcherExhaustionError(error)) {
|
|
174
|
+
// Swallow every exhaustion error — chokidar can emit several before the
|
|
175
|
+
// failed native watcher closes, and we don't want a flurry of ENOSPC to
|
|
176
|
+
// surface to consumers in the middle of recovery.
|
|
177
|
+
if (!this.#usingPolling) {
|
|
178
|
+
warnWatcherFallback(this.#filePath);
|
|
179
|
+
this.#usingPolling = true;
|
|
180
|
+
// Close the failed native watcher and reopen with polling. Guard
|
|
181
|
+
// against reopen-after-close: the caller may have invoked close()
|
|
182
|
+
// while this teardown was in flight. The .catch is required because
|
|
183
|
+
// `finally` would re-raise a teardown rejection as an unhandled one.
|
|
184
|
+
this.#watcher
|
|
185
|
+
.close()
|
|
186
|
+
.catch(() => {
|
|
187
|
+
// Teardown errors on an already-failed watcher are not actionable.
|
|
188
|
+
})
|
|
189
|
+
.finally(() => {
|
|
190
|
+
if (!this.#closed) this.#openWatcher();
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
153
195
|
this.emit('error', new OptionsWatcherConfigFileError(this.#filePath, error));
|
|
154
196
|
}
|
|
155
197
|
|
|
@@ -283,17 +325,39 @@ export class OptionsWatcher extends EventEmitter<OptionsWatcherEventMap> {
|
|
|
283
325
|
this.emit('change', keys, value, this.#scopedConfig);
|
|
284
326
|
}
|
|
285
327
|
|
|
328
|
+
// Test-only: simulate the underlying chokidar watcher emitting an error.
|
|
329
|
+
// Exposed so the polling-fallback path can be exercised without triggering a
|
|
330
|
+
// real ENOSPC/EMFILE on the host.
|
|
331
|
+
_simulateWatcherErrorForTests(error: unknown): void {
|
|
332
|
+
this.#handleError(error);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
// Test-only: whether the watcher has fallen back to polling.
|
|
336
|
+
get _usingPollingForTests(): boolean {
|
|
337
|
+
return this.#usingPolling;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
// Test-only: number of times the underlying watcher has been (re)opened.
|
|
341
|
+
// Used to assert that a close()-during-fallback race didn't install a
|
|
342
|
+
// replacement watcher.
|
|
343
|
+
get _openCountForTests(): number {
|
|
344
|
+
return this.#openCount;
|
|
345
|
+
}
|
|
346
|
+
|
|
286
347
|
/**
|
|
287
|
-
* Closes the underlying file watcher
|
|
348
|
+
* Closes the underlying file watcher and drains any pending config-file reads.
|
|
349
|
+
* Emits `close` synchronously, removes all listeners, then returns a Promise that
|
|
350
|
+
* resolves once the chokidar watcher has fully stopped and all in-flight reads settle.
|
|
288
351
|
*/
|
|
289
|
-
close() {
|
|
290
|
-
this.#
|
|
352
|
+
close(): Promise<this> {
|
|
353
|
+
this.#closed = true;
|
|
354
|
+
const pendingReads = [...this.#pendingReads];
|
|
355
|
+
const watcherClose = Promise.resolve(this.#watcher.close()).catch(() => {});
|
|
291
356
|
|
|
292
357
|
this.emit('close');
|
|
293
|
-
|
|
294
358
|
this.removeAllListeners();
|
|
295
359
|
|
|
296
|
-
return this;
|
|
360
|
+
return Promise.allSettled([watcherClose, ...pendingReads]).then(() => this);
|
|
297
361
|
}
|
|
298
362
|
|
|
299
363
|
/**
|
package/components/Scope.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
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 { EventEmitter, once } from 'node:events';
|
|
4
|
-
import { databaseEventsEmitter } from '../resources/databases.ts';
|
|
4
|
+
import { databaseEventsEmitter, table } from '../resources/databases.ts';
|
|
5
5
|
import { server, type Server } from '../server/Server.ts';
|
|
6
6
|
import { EntryHandler, type EntryHandlerEventMap, type onEntryEventHandler } from './EntryHandler.ts';
|
|
7
7
|
import { OptionsWatcher, OptionsWatcherEventMap } from './OptionsWatcher.ts';
|
|
8
8
|
import { resources, type Resources } from '../resources/Resources.ts';
|
|
9
|
+
import { Models, models as modelsSingleton } from '../resources/models/Models.ts';
|
|
9
10
|
import type { FileAndURLPathConfig } from './Component.ts';
|
|
10
11
|
import { FilesOption } from './deriveGlobOptions.ts';
|
|
11
12
|
import { requestRestart } from './requestRestart.ts';
|
|
12
13
|
import { ApplicationScope } from './ApplicationScope.ts';
|
|
14
|
+
import { deployLifecycle } from './deployLifecycle.ts';
|
|
13
15
|
|
|
14
16
|
export class MissingDefaultFilesOptionError extends Error {
|
|
15
17
|
constructor() {
|
|
@@ -19,10 +21,18 @@ export class MissingDefaultFilesOptionError extends Error {
|
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
export type ScopeEventsMap = {
|
|
22
|
-
all: [...args: unknown[]];
|
|
23
|
-
close: [];
|
|
24
|
-
error: [error: unknown];
|
|
25
|
-
ready: [];
|
|
24
|
+
'all': [...args: unknown[]];
|
|
25
|
+
'close': [];
|
|
26
|
+
'error': [error: unknown];
|
|
27
|
+
'ready': [];
|
|
28
|
+
// Fired on this scope just before deploy I/O begins for the parent component
|
|
29
|
+
// (extract + npm install). Plugins observing these can pause their own
|
|
30
|
+
// file-driven work to avoid acting on intermediate states.
|
|
31
|
+
'deploy:start': [componentName: string];
|
|
32
|
+
// Fired after deploy I/O completes (success or failure). The scope's
|
|
33
|
+
// EntryHandlers have been recreated by this point; subsequent `add`/`change`
|
|
34
|
+
// events reflect the post-deploy tree.
|
|
35
|
+
'deploy:end': [componentName: string];
|
|
26
36
|
[record: string]: [...args: unknown[]];
|
|
27
37
|
};
|
|
28
38
|
|
|
@@ -38,10 +48,18 @@ export class Scope extends EventEmitter<ScopeEventsMap> {
|
|
|
38
48
|
#directory: string;
|
|
39
49
|
#appName: string;
|
|
40
50
|
#pluginName: string;
|
|
51
|
+
#origin: string;
|
|
41
52
|
#entryHandler?: EntryHandler;
|
|
42
53
|
#entryHandlers: EntryHandler[];
|
|
43
54
|
#logger: Logger;
|
|
44
55
|
#pendingInitialLoads: Set<Promise<void>>;
|
|
56
|
+
#deployStartHandler: (name: string) => void;
|
|
57
|
+
#deployEndHandler: (name: string) => void;
|
|
58
|
+
// While a deploy of this component is in flight, EntryHandler events do not
|
|
59
|
+
// drive requestRestart() — the deploy itself produces hundreds of file
|
|
60
|
+
// changes that would otherwise pile up. A single coalesced restart is
|
|
61
|
+
// triggered by the post-deploy re-scan instead.
|
|
62
|
+
#deployInFlight: boolean = false;
|
|
45
63
|
applicationScope?: ApplicationScope;
|
|
46
64
|
|
|
47
65
|
options: OptionsWatcher;
|
|
@@ -49,26 +67,53 @@ export class Scope extends EventEmitter<ScopeEventsMap> {
|
|
|
49
67
|
server?: Server;
|
|
50
68
|
ready: Promise<any[]>;
|
|
51
69
|
databaseEvents: typeof databaseEventsEmitter;
|
|
70
|
+
models: Models;
|
|
52
71
|
|
|
53
72
|
constructor(
|
|
54
73
|
appName: string,
|
|
55
74
|
pluginName: string,
|
|
56
75
|
directory: string,
|
|
57
76
|
configFilePath: string,
|
|
58
|
-
applicationScope: ApplicationScope
|
|
77
|
+
applicationScope: ApplicationScope,
|
|
78
|
+
origin: string = appName
|
|
59
79
|
) {
|
|
60
80
|
super();
|
|
61
81
|
|
|
62
82
|
this.#appName = appName;
|
|
63
83
|
this.#pluginName = pluginName;
|
|
84
|
+
this.#origin = typeof origin === 'string' ? origin : appName;
|
|
64
85
|
this.#directory = directory;
|
|
65
86
|
this.#configFilePath = configFilePath;
|
|
66
|
-
this.#logger =
|
|
87
|
+
this.#logger = loggerWithTag(this.#appName);
|
|
67
88
|
|
|
68
89
|
this.databaseEvents = databaseEventsEmitter;
|
|
69
90
|
this.applicationScope = applicationScope;
|
|
70
91
|
this.resources = applicationScope?.resources ?? resources;
|
|
71
|
-
this.
|
|
92
|
+
this.models = modelsSingleton;
|
|
93
|
+
|
|
94
|
+
const baseServer = applicationScope?.server ?? server;
|
|
95
|
+
const scopeRef = this;
|
|
96
|
+
// Wrap server so http/request/ws/upgrade calls automatically carry this plugin's name,
|
|
97
|
+
// urlPath, and host — enabling routing and before/after dependencies on named middleware.
|
|
98
|
+
this.server = new Proxy(baseServer, {
|
|
99
|
+
get(target, prop, receiver) {
|
|
100
|
+
if (prop === 'http' || prop === 'request' || prop === 'ws' || prop === 'upgrade') {
|
|
101
|
+
const method = Reflect.get(target, prop, receiver);
|
|
102
|
+
if (typeof method === 'function') {
|
|
103
|
+
return (listener: any, options?: any) => {
|
|
104
|
+
const scopeConfig = (scopeRef.options?.getAll() as any) ?? {};
|
|
105
|
+
return method.call(target, listener, {
|
|
106
|
+
name: pluginName,
|
|
107
|
+
urlPath: scopeConfig.urlPath || undefined,
|
|
108
|
+
host: scopeConfig.host || undefined,
|
|
109
|
+
...options,
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return Reflect.get(target, prop, receiver);
|
|
115
|
+
},
|
|
116
|
+
}) as Server;
|
|
72
117
|
|
|
73
118
|
this.#entryHandlers = [];
|
|
74
119
|
this.#pendingInitialLoads = new Set();
|
|
@@ -80,6 +125,18 @@ export class Scope extends EventEmitter<ScopeEventsMap> {
|
|
|
80
125
|
.on('error', this.#handleError.bind(this))
|
|
81
126
|
.on('change', this.#optionsWatcherChangeListener.bind(this)())
|
|
82
127
|
.on('ready', this.#handleOptionsWatcherReady.bind(this));
|
|
128
|
+
|
|
129
|
+
// Bridge cross-thread deploy lifecycle events for this component. The
|
|
130
|
+
// handlers live on the scope for the lifetime of the scope and are torn
|
|
131
|
+
// down in close().
|
|
132
|
+
this.#deployStartHandler = (name) => {
|
|
133
|
+
if (name === this.#appName) this.#onDeployStart(name);
|
|
134
|
+
};
|
|
135
|
+
this.#deployEndHandler = (name) => {
|
|
136
|
+
if (name === this.#appName) this.#onDeployEnd(name);
|
|
137
|
+
};
|
|
138
|
+
deployLifecycle.on('deploy:start', this.#deployStartHandler);
|
|
139
|
+
deployLifecycle.on('deploy:end', this.#deployEndHandler);
|
|
83
140
|
}
|
|
84
141
|
|
|
85
142
|
get logger(): Logger {
|
|
@@ -102,6 +159,11 @@ export class Scope extends EventEmitter<ScopeEventsMap> {
|
|
|
102
159
|
return this.#configFilePath;
|
|
103
160
|
}
|
|
104
161
|
|
|
162
|
+
ensureTable<TableResourceType = unknown>(options: any): TableResourceType {
|
|
163
|
+
options.origin = this.#origin;
|
|
164
|
+
return table<TableResourceType>(options);
|
|
165
|
+
}
|
|
166
|
+
|
|
105
167
|
#handleOptionsWatcherReady(): void {
|
|
106
168
|
// This previously created the default entry handler immediately, but now we wait for the user to call `handleEntry`
|
|
107
169
|
// The issue was that since the component loader was awaiting `scope.ready()` and then calling `pluginModule.handleApplication(scope)`,
|
|
@@ -116,20 +178,61 @@ export class Scope extends EventEmitter<ScopeEventsMap> {
|
|
|
116
178
|
this.emit('error', error);
|
|
117
179
|
}
|
|
118
180
|
|
|
119
|
-
close() {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
181
|
+
async close(): Promise<this> {
|
|
182
|
+
deployLifecycle.off('deploy:start', this.#deployStartHandler);
|
|
183
|
+
deployLifecycle.off('deploy:end', this.#deployEndHandler);
|
|
123
184
|
|
|
124
|
-
this.options.close();
|
|
185
|
+
await Promise.allSettled([...this.#entryHandlers.map((h) => h.close()), this.options.close()]);
|
|
125
186
|
|
|
126
187
|
this.emit('close');
|
|
127
|
-
|
|
128
188
|
this.removeAllListeners();
|
|
129
189
|
|
|
130
190
|
return this;
|
|
131
191
|
}
|
|
132
192
|
|
|
193
|
+
#onDeployStart(componentName: string): void {
|
|
194
|
+
this.#deployInFlight = true;
|
|
195
|
+
// Pause each EntryHandler so it stops emitting events for the
|
|
196
|
+
// intermediate filesystem state the deploy is writing, and so it
|
|
197
|
+
// releases its inotify handles while npm install is unpacking
|
|
198
|
+
// dependencies. pause() preserves the EntryHandler INSTANCE — listeners
|
|
199
|
+
// the plugin attached via scope.handleEntry(handler) remain attached.
|
|
200
|
+
for (const entryHandler of this.#entryHandlers) {
|
|
201
|
+
entryHandler.pause();
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
this.#safeEmit('deploy:start', componentName);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
#onDeployEnd(componentName: string): void {
|
|
208
|
+
this.#deployInFlight = false;
|
|
209
|
+
|
|
210
|
+
// Resume each EntryHandler BEFORE notifying plugins. Otherwise a plugin
|
|
211
|
+
// throwing in its deploy:end handler would abort this function and
|
|
212
|
+
// leave the watchers permanently paused (surfaced by Gemini review).
|
|
213
|
+
// The fresh chokidar watcher does an initial scan and emits add events
|
|
214
|
+
// for the post-deploy tree; the existing per-event listener calls
|
|
215
|
+
// scope.requestRestart() for each, and the restart debounce in
|
|
216
|
+
// componentLoader collapses them into a single restart cycle. Plugin
|
|
217
|
+
// handlers stay attached across the pause.
|
|
218
|
+
for (const entryHandler of this.#entryHandlers) {
|
|
219
|
+
void entryHandler.resume();
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
this.#safeEmit('deploy:end', componentName);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// Swallow and log listener exceptions so one buggy plugin can't stop us
|
|
226
|
+
// from running the rest of the deploy-lifecycle bookkeeping. EventEmitter
|
|
227
|
+
// by default rethrows from synchronous listeners.
|
|
228
|
+
#safeEmit(event: 'deploy:start' | 'deploy:end', componentName: string): void {
|
|
229
|
+
try {
|
|
230
|
+
this.emit(event, componentName);
|
|
231
|
+
} catch (error) {
|
|
232
|
+
this.#logger.error?.(`Listener for ${event} threw for ${this.#appName}:`, error);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
133
236
|
#createEntryHandler(config: FilesOption | FileAndURLPathConfig): EntryHandler {
|
|
134
237
|
const entryHandler = new EntryHandler(this.#pluginName, this.#directory, config, this.#logger)
|
|
135
238
|
.on('error', this.#handleError.bind(this))
|
|
@@ -168,10 +271,14 @@ export class Scope extends EventEmitter<ScopeEventsMap> {
|
|
|
168
271
|
if (key[0] === 'files' || key[0] === 'urlPath') {
|
|
169
272
|
// TODO: validate options
|
|
170
273
|
|
|
171
|
-
// If
|
|
172
|
-
//
|
|
274
|
+
// If no entry handler exists yet, the plugin's handleApplication has not called
|
|
275
|
+
// handleEntry() yet — or it hasn't been called at all for this scope. Either way,
|
|
276
|
+
// when handleEntry() is eventually called it will read the current config via
|
|
277
|
+
// getFilesOption() and create the handler with the correct, up-to-date values.
|
|
278
|
+
// Eagerly creating an entry handler here would start chokidar's initial scan
|
|
279
|
+
// before the plugin's callback is attached, causing the initial `add` events to
|
|
280
|
+
// be missed (RE-8).
|
|
173
281
|
if (!scope.#entryHandler) {
|
|
174
|
-
scope.#entryHandler = scope.#createEntryHandler(config as FileAndURLPathConfig);
|
|
175
282
|
return;
|
|
176
283
|
}
|
|
177
284
|
|
|
@@ -303,6 +410,13 @@ export class Scope extends EventEmitter<ScopeEventsMap> {
|
|
|
303
410
|
}
|
|
304
411
|
|
|
305
412
|
requestRestart() {
|
|
413
|
+
if (this.#deployInFlight) {
|
|
414
|
+
// Suppressed: a deploy is rewriting this component's files. The
|
|
415
|
+
// post-deploy re-scan in #onDeployEnd will trigger the coalesced
|
|
416
|
+
// restart instead.
|
|
417
|
+
this.#logger.debug?.(`Restart suppressed (deploy in flight) for ${this.#appName}`);
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
306
420
|
this.#logger.debug?.(`Restart requested from ${this.#pluginName} scope for ${this.#appName}`);
|
|
307
421
|
requestRestart();
|
|
308
422
|
}
|