@harperfast/harper 5.2.10 → 5.3.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent/mcpTools.ts +1 -1
- package/agent/session.ts +25 -14
- package/bin/cliOperations.ts +46 -9
- package/bin/copyDb.ts +282 -59
- package/bin/deploySetup.ts +16 -5
- package/bin/harper.ts +1 -1
- package/bin/help.ts +4 -1
- package/bin/lite.ts +4 -1
- package/bin/restart.ts +59 -3
- package/bin/run.ts +6 -11
- package/bin/upgrade.js +7 -3
- package/bin/workloadIdentity.ts +119 -0
- package/components/Application.ts +2414 -242
- package/components/ApplicationScope.ts +8 -0
- package/components/EntryHandler.ts +59 -39
- package/components/OptionsWatcher.ts +150 -74
- package/components/RuntimeModuleTracker.ts +38 -7
- package/components/Scope.ts +37 -15
- package/components/awaitRestart.ts +84 -0
- package/components/componentLoader.ts +340 -30
- package/components/componentPreparationLock.ts +16 -5
- package/components/mcp/adapters/harperHttp.ts +4 -0
- package/components/mcp/listChanged.ts +4 -0
- package/components/mcp/toolRegistry.ts +2 -0
- package/components/mcp/tools/operations.ts +9 -0
- package/components/mcp/tools/schemas/operationDescriptions.ts +2 -2
- package/components/operations.js +270 -78
- package/components/operationsValidation.js +49 -1
- package/components/status/ComponentStatusRegistry.ts +59 -0
- package/config/RootConfigWatcher.ts +80 -34
- package/config/configUtils.ts +291 -34
- package/config/harperConfigEnvVars.ts +170 -27
- package/config-root.schema.json +29 -0
- package/dataLayer/blobBackup.ts +160 -50
- package/dataLayer/delete.ts +6 -1
- package/dataLayer/harperBridge/ResourceBridge.ts +52 -8
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
- package/dataLayer/hdbInfoController.ts +34 -1
- package/dataLayer/insert.ts +44 -1
- package/dataLayer/rocksdbBackup.ts +53 -10
- package/dataLayer/schema.ts +11 -1
- package/dataLayer/schemaDescribe.ts +8 -1
- package/dist/agent/mcpTools.js +1 -1
- package/dist/agent/mcpTools.js.map +1 -1
- package/dist/agent/session.d.ts +22 -0
- package/dist/agent/session.js +26 -15
- package/dist/agent/session.js.map +1 -1
- package/dist/bin/cliOperations.js +48 -9
- package/dist/bin/cliOperations.js.map +1 -1
- package/dist/bin/copyDb.d.ts +12 -1
- package/dist/bin/copyDb.js +248 -60
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/bin/deploySetup.d.ts +2 -0
- package/dist/bin/deploySetup.js +11 -3
- package/dist/bin/deploySetup.js.map +1 -1
- package/dist/bin/harper.js +1 -1
- package/dist/bin/harper.js.map +1 -1
- package/dist/bin/help.js +4 -1
- package/dist/bin/help.js.map +1 -1
- package/dist/bin/lite.js +4 -1
- package/dist/bin/lite.js.map +1 -1
- package/dist/bin/restart.js +54 -5
- package/dist/bin/restart.js.map +1 -1
- package/dist/bin/run.js +4 -10
- package/dist/bin/run.js.map +1 -1
- package/dist/bin/upgrade.js +4 -3
- package/dist/bin/upgrade.js.map +1 -1
- package/dist/bin/workloadIdentity.d.ts +18 -0
- package/dist/bin/workloadIdentity.js +100 -0
- package/dist/bin/workloadIdentity.js.map +1 -0
- package/dist/components/Application.d.ts +139 -16
- package/dist/components/Application.js +2215 -267
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.d.ts +8 -0
- package/dist/components/ApplicationScope.js +7 -0
- package/dist/components/ApplicationScope.js.map +1 -1
- package/dist/components/EntryHandler.js +26 -10
- package/dist/components/EntryHandler.js.map +1 -1
- package/dist/components/OptionsWatcher.d.ts +1 -0
- package/dist/components/OptionsWatcher.js +141 -74
- package/dist/components/OptionsWatcher.js.map +1 -1
- package/dist/components/RuntimeModuleTracker.js +40 -6
- package/dist/components/RuntimeModuleTracker.js.map +1 -1
- package/dist/components/Scope.js +38 -13
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/awaitRestart.d.ts +33 -0
- package/dist/components/awaitRestart.js +61 -0
- package/dist/components/awaitRestart.js.map +1 -0
- package/dist/components/componentLoader.d.ts +38 -1
- package/dist/components/componentLoader.js +279 -22
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/componentPreparationLock.d.ts +5 -0
- package/dist/components/componentPreparationLock.js +14 -6
- package/dist/components/componentPreparationLock.js.map +1 -1
- package/dist/components/mcp/adapters/harperHttp.js +4 -0
- package/dist/components/mcp/adapters/harperHttp.js.map +1 -1
- package/dist/components/mcp/listChanged.js +5 -0
- package/dist/components/mcp/listChanged.js.map +1 -1
- package/dist/components/mcp/toolRegistry.d.ts +1 -0
- package/dist/components/mcp/toolRegistry.js.map +1 -1
- package/dist/components/mcp/tools/operations.d.ts +5 -0
- package/dist/components/mcp/tools/operations.js +9 -0
- package/dist/components/mcp/tools/operations.js.map +1 -1
- package/dist/components/mcp/tools/schemas/operationDescriptions.js +2 -2
- package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
- package/dist/components/operations.js +231 -77
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.js +49 -1
- package/dist/components/operationsValidation.js.map +1 -1
- package/dist/components/status/ComponentStatusRegistry.d.ts +0 -4
- package/dist/components/status/ComponentStatusRegistry.js +63 -0
- package/dist/components/status/ComponentStatusRegistry.js.map +1 -1
- package/dist/config/RootConfigWatcher.d.ts +7 -1
- package/dist/config/RootConfigWatcher.js +64 -27
- package/dist/config/RootConfigWatcher.js.map +1 -1
- package/dist/config/configUtils.d.ts +9 -1
- package/dist/config/configUtils.js +254 -33
- package/dist/config/configUtils.js.map +1 -1
- package/dist/config/harperConfigEnvVars.d.ts +16 -0
- package/dist/config/harperConfigEnvVars.js +162 -25
- package/dist/config/harperConfigEnvVars.js.map +1 -1
- package/dist/dataLayer/blobBackup.d.ts +49 -20
- package/dist/dataLayer/blobBackup.js +139 -50
- package/dist/dataLayer/blobBackup.js.map +1 -1
- package/dist/dataLayer/delete.js +1 -1
- package/dist/dataLayer/delete.js.map +1 -1
- package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +14 -1
- package/dist/dataLayer/harperBridge/ResourceBridge.js +51 -10
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.d.ts +3 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js.map +1 -1
- package/dist/dataLayer/hdbInfoController.d.ts +10 -0
- package/dist/dataLayer/hdbInfoController.js +30 -1
- package/dist/dataLayer/hdbInfoController.js.map +1 -1
- package/dist/dataLayer/insert.d.ts +9 -1
- package/dist/dataLayer/insert.js +30 -0
- package/dist/dataLayer/insert.js.map +1 -1
- package/dist/dataLayer/rocksdbBackup.d.ts +2 -2
- package/dist/dataLayer/rocksdbBackup.js +45 -8
- package/dist/dataLayer/rocksdbBackup.js.map +1 -1
- package/dist/dataLayer/schema.js +8 -0
- package/dist/dataLayer/schema.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.js +8 -1
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/json/systemSchema.json +52 -0
- package/dist/resources/DatabaseTransaction.d.ts +55 -3
- package/dist/resources/DatabaseTransaction.js +460 -134
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/LMDBTransaction.js +22 -4
- package/dist/resources/LMDBTransaction.js.map +1 -1
- package/dist/resources/PrimaryRocksDatabase.d.ts +1 -0
- package/dist/resources/PrimaryRocksDatabase.js +30 -2
- package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
- package/dist/resources/RecordEncoder.d.ts +20 -0
- package/dist/resources/RecordEncoder.js +94 -9
- package/dist/resources/RecordEncoder.js.map +1 -1
- package/dist/resources/RequestTarget.d.ts +2 -0
- package/dist/resources/RequestTarget.js.map +1 -1
- package/dist/resources/Resource.js +20 -11
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +20 -1
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/RocksIndexStore.d.ts +6 -1
- package/dist/resources/RocksIndexStore.js +24 -10
- package/dist/resources/RocksIndexStore.js.map +1 -1
- package/dist/resources/RocksTransactionLogStore.d.ts +14 -1
- package/dist/resources/RocksTransactionLogStore.js +57 -17
- package/dist/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/resources/Table.d.ts +112 -8
- package/dist/resources/Table.js +1071 -197
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/auditStore.d.ts +11 -2
- package/dist/resources/auditStore.js +183 -18
- package/dist/resources/auditStore.js.map +1 -1
- package/dist/resources/blob.d.ts +129 -9
- package/dist/resources/blob.js +992 -114
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/branchDatabase.d.ts +48 -0
- package/dist/resources/branchDatabase.js +892 -0
- package/dist/resources/branchDatabase.js.map +1 -0
- package/dist/resources/crdt.js +50 -12
- package/dist/resources/crdt.js.map +1 -1
- package/dist/resources/databases.d.ts +150 -9
- package/dist/resources/databases.js +1247 -525
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/defineTable.d.ts +10 -2
- package/dist/resources/defineTable.js +9 -1
- package/dist/resources/defineTable.js.map +1 -1
- package/dist/resources/graphql.d.ts +1 -1
- package/dist/resources/graphql.js +50 -15
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +1 -0
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +6 -2
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/longLivedTransactions.d.ts +71 -0
- package/dist/resources/longLivedTransactions.js +358 -0
- package/dist/resources/longLivedTransactions.js.map +1 -0
- package/dist/resources/models/backendRegistry.d.ts +26 -0
- package/dist/resources/models/backendRegistry.js +60 -2
- package/dist/resources/models/backendRegistry.js.map +1 -1
- package/dist/resources/models/bootstrap.d.ts +33 -1
- package/dist/resources/models/bootstrap.js +416 -31
- package/dist/resources/models/bootstrap.js.map +1 -1
- package/dist/resources/recordLock.d.ts +80 -0
- package/dist/resources/recordLock.js +184 -0
- package/dist/resources/recordLock.js.map +1 -0
- package/dist/resources/replayLogs.d.ts +14 -1
- package/dist/resources/replayLogs.js +152 -24
- package/dist/resources/replayLogs.js.map +1 -1
- package/dist/resources/replayLogsGuards.d.ts +94 -7
- package/dist/resources/replayLogsGuards.js +111 -7
- package/dist/resources/replayLogsGuards.js.map +1 -1
- package/dist/resources/search.js +158 -32
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/transactionBroadcast.d.ts +1 -1
- package/dist/resources/transactionBroadcast.js +2 -2
- package/dist/resources/transactionBroadcast.js.map +1 -1
- package/dist/security/auth.js +61 -30
- package/dist/security/auth.js.map +1 -1
- package/dist/security/authn/oidc/claims.d.ts +22 -0
- package/dist/security/authn/oidc/claims.js +71 -0
- package/dist/security/authn/oidc/claims.js.map +1 -0
- package/dist/security/authn/oidc/identityToken.d.ts +27 -0
- package/dist/security/authn/oidc/identityToken.js +111 -0
- package/dist/security/authn/oidc/identityToken.js.map +1 -0
- package/dist/security/authn/oidc/jwks.d.ts +25 -0
- package/dist/security/authn/oidc/jwks.js +261 -0
- package/dist/security/authn/oidc/jwks.js.map +1 -0
- package/dist/security/authn/oidc/providers/generic.d.ts +13 -0
- package/dist/security/authn/oidc/providers/generic.js +34 -0
- package/dist/security/authn/oidc/providers/generic.js.map +1 -0
- package/dist/security/authn/oidc/providers/githubActions.d.ts +11 -0
- package/dist/security/authn/oidc/providers/githubActions.js +129 -0
- package/dist/security/authn/oidc/providers/githubActions.js.map +1 -0
- package/dist/security/authn/oidc/providers/index.d.ts +37 -0
- package/dist/security/authn/oidc/providers/index.js +24 -0
- package/dist/security/authn/oidc/providers/index.js.map +1 -0
- package/dist/security/authn/oidc/tokenExchange.d.ts +12 -0
- package/dist/security/authn/oidc/tokenExchange.js +306 -0
- package/dist/security/authn/oidc/tokenExchange.js.map +1 -0
- package/dist/security/authn/oidc/trustPolicyOperations.d.ts +49 -0
- package/dist/security/authn/oidc/trustPolicyOperations.js +358 -0
- package/dist/security/authn/oidc/trustPolicyOperations.js.map +1 -0
- package/dist/security/authn/oidc/types.d.ts +38 -0
- package/dist/security/authn/oidc/types.js +6 -0
- package/dist/security/authn/oidc/types.js.map +1 -0
- package/dist/security/certificateVerification/index.js +40 -11
- package/dist/security/certificateVerification/index.js.map +1 -1
- package/dist/security/certificateVerification/trustedIssuers.d.ts +24 -0
- package/dist/security/certificateVerification/trustedIssuers.js +79 -0
- package/dist/security/certificateVerification/trustedIssuers.js.map +1 -0
- package/dist/security/certificateVerification/types.d.ts +1 -0
- package/dist/security/credentialProvenance.d.ts +35 -0
- package/dist/security/credentialProvenance.js +51 -0
- package/dist/security/credentialProvenance.js.map +1 -0
- package/dist/security/credentialRejection.d.ts +4 -0
- package/dist/security/credentialRejection.js +24 -0
- package/dist/security/credentialRejection.js.map +1 -0
- package/dist/security/deferredAuthentication.d.ts +36 -0
- package/dist/security/deferredAuthentication.js +70 -0
- package/dist/security/deferredAuthentication.js.map +1 -0
- package/dist/security/impersonation.d.ts +21 -0
- package/dist/security/impersonation.js +108 -9
- package/dist/security/impersonation.js.map +1 -1
- package/dist/security/jsLoader.d.ts +6 -0
- package/dist/security/jsLoader.js +75 -15
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/keys.js +301 -71
- package/dist/security/keys.js.map +1 -1
- package/dist/security/operationScope.d.ts +21 -0
- package/dist/security/operationScope.js +36 -0
- package/dist/security/operationScope.js.map +1 -0
- package/dist/security/permissionsTranslator.js +21 -0
- package/dist/security/permissionsTranslator.js.map +1 -1
- package/dist/security/tokenAuthentication.d.ts +19 -1
- package/dist/security/tokenAuthentication.js +191 -10
- package/dist/security/tokenAuthentication.js.map +1 -1
- package/dist/security/user.js +4 -3
- package/dist/security/user.js.map +1 -1
- package/dist/server/DurableSubscriptionsSession.d.ts +2 -2
- package/dist/server/DurableSubscriptionsSession.js +67 -10
- package/dist/server/DurableSubscriptionsSession.js.map +1 -1
- package/dist/server/REST.js +73 -0
- package/dist/server/REST.js.map +1 -1
- package/dist/server/graphqlQuerying.js +4 -0
- package/dist/server/graphqlQuerying.js.map +1 -1
- package/dist/server/http.d.ts +11 -0
- package/dist/server/http.js +88 -15
- package/dist/server/http.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +8 -1
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/jobs/jobProcess.js +6 -2
- package/dist/server/jobs/jobProcess.js.map +1 -1
- package/dist/server/jobs/jobs.js +4 -1
- package/dist/server/jobs/jobs.js.map +1 -1
- package/dist/server/liveSubscriptionAuth.d.ts +26 -4
- package/dist/server/liveSubscriptionAuth.js +105 -39
- package/dist/server/liveSubscriptionAuth.js.map +1 -1
- package/dist/server/loadRootComponents.js +49 -10
- package/dist/server/loadRootComponents.js.map +1 -1
- package/dist/server/mqtt.d.ts +2 -0
- package/dist/server/mqtt.js +165 -30
- package/dist/server/mqtt.js.map +1 -1
- package/dist/server/nodeName.d.ts +2 -0
- package/dist/server/nodeName.js +107 -23
- package/dist/server/nodeName.js.map +1 -1
- package/dist/server/serverHelpers/Headers.d.ts +25 -0
- package/dist/server/serverHelpers/Headers.js +139 -1
- package/dist/server/serverHelpers/Headers.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.d.ts +9 -0
- package/dist/server/serverHelpers/contentTypes.js +32 -25
- package/dist/server/serverHelpers/contentTypes.js.map +1 -1
- package/dist/server/serverHelpers/deployValidationState.d.ts +3 -0
- package/dist/server/serverHelpers/deployValidationState.js +9 -19
- package/dist/server/serverHelpers/deployValidationState.js.map +1 -1
- package/dist/server/serverHelpers/operationAuthorizationState.d.ts +12 -0
- package/dist/server/serverHelpers/operationAuthorizationState.js +24 -2
- package/dist/server/serverHelpers/operationAuthorizationState.js.map +1 -1
- package/dist/server/serverHelpers/registeredOperations.d.ts +5 -4
- package/dist/server/serverHelpers/registeredOperations.js +74 -21
- package/dist/server/serverHelpers/registeredOperations.js.map +1 -1
- package/dist/server/serverHelpers/requestSanitization.d.ts +11 -0
- package/dist/server/serverHelpers/requestSanitization.js +20 -0
- package/dist/server/serverHelpers/requestSanitization.js.map +1 -0
- package/dist/server/serverHelpers/serverHandlers.js +6 -3
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/serverUtilities.d.ts +18 -0
- package/dist/server/serverHelpers/serverUtilities.js +90 -20
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/server/serverHelpers/sharedMessageEncoding.d.ts +67 -0
- package/dist/server/serverHelpers/sharedMessageEncoding.js +280 -0
- package/dist/server/serverHelpers/sharedMessageEncoding.js.map +1 -0
- package/dist/server/serverHelpers/uwsServer.js +19 -1
- package/dist/server/serverHelpers/uwsServer.js.map +1 -1
- package/dist/server/static.js +24 -28
- package/dist/server/static.js.map +1 -1
- package/dist/server/storageReclamation.d.ts +5 -0
- package/dist/server/storageReclamation.js +16 -0
- package/dist/server/storageReclamation.js.map +1 -1
- package/dist/server/threads/itc.d.ts +7 -2
- package/dist/server/threads/itc.js +5 -1
- package/dist/server/threads/itc.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +26 -4
- package/dist/server/threads/manageThreads.js +517 -72
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/socketRouter.js +89 -26
- package/dist/server/threads/socketRouter.js.map +1 -1
- package/dist/server/threads/threadHeapMemory.d.ts +2 -0
- package/dist/server/threads/threadHeapMemory.js +31 -0
- package/dist/server/threads/threadHeapMemory.js.map +1 -0
- package/dist/server/threads/threadServer.js +46 -15
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/sqlEngine/config.d.ts +1 -3
- package/dist/sqlEngine/config.js +19 -16
- package/dist/sqlEngine/config.js.map +1 -1
- package/dist/sqlTranslator/index.d.ts +1 -1
- package/dist/sqlTranslator/index.js +30 -7
- package/dist/sqlTranslator/index.js.map +1 -1
- package/dist/upgrade/directives/5-3-0.d.ts +7 -0
- package/dist/upgrade/directives/5-3-0.js +148 -0
- package/dist/upgrade/directives/5-3-0.js.map +1 -0
- package/dist/upgrade/directives/directivesController.js +2 -1
- package/dist/upgrade/directives/directivesController.js.map +1 -1
- package/dist/utility/OperationFunctionCaller.js +2 -1
- package/dist/utility/OperationFunctionCaller.js.map +1 -1
- package/dist/utility/common_utils.d.ts +16 -0
- package/dist/utility/common_utils.js +32 -6
- package/dist/utility/common_utils.js.map +1 -1
- package/dist/utility/componentNames.d.ts +8 -0
- package/dist/utility/componentNames.js +12 -1
- package/dist/utility/componentNames.js.map +1 -1
- package/dist/utility/environment/environmentManager.js +3 -6
- package/dist/utility/environment/environmentManager.js.map +1 -1
- package/dist/utility/environment/systemInformation.d.ts +1 -0
- package/dist/utility/environment/systemInformation.js +1 -0
- package/dist/utility/environment/systemInformation.js.map +1 -1
- package/dist/utility/errors/commonErrors.d.ts +2 -0
- package/dist/utility/errors/commonErrors.js +2 -0
- package/dist/utility/errors/commonErrors.js.map +1 -1
- package/dist/utility/errors/hdbError.d.ts +17 -0
- package/dist/utility/errors/hdbError.js +30 -1
- package/dist/utility/errors/hdbError.js.map +1 -1
- package/dist/utility/globalSchema.d.ts +18 -0
- package/dist/utility/hdbTerms.d.ts +16 -0
- package/dist/utility/hdbTerms.js +18 -2
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/logging/harper_logger.d.ts +2 -0
- package/dist/utility/logging/harper_logger.js +91 -14
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/logging/logRotator.js +76 -49
- package/dist/utility/logging/logRotator.js.map +1 -1
- package/dist/utility/nodeIdentity.d.ts +9 -0
- package/dist/utility/nodeIdentity.js +58 -0
- package/dist/utility/nodeIdentity.js.map +1 -0
- package/dist/utility/npmUtilities.js +9 -7
- package/dist/utility/npmUtilities.js.map +1 -1
- package/dist/utility/operationPermissions.d.ts +3 -1
- package/dist/utility/operationPermissions.js +16 -1
- package/dist/utility/operationPermissions.js.map +1 -1
- package/dist/utility/operation_authorization.d.ts +10 -7
- package/dist/utility/operation_authorization.js +212 -41
- package/dist/utility/operation_authorization.js.map +1 -1
- package/dist/utility/watchPath.d.ts +29 -0
- package/dist/utility/watchPath.js +68 -0
- package/dist/utility/watchPath.js.map +1 -0
- package/dist/utility/watcherFallback.d.ts +86 -0
- package/dist/utility/watcherFallback.js +278 -1
- package/dist/utility/watcherFallback.js.map +1 -1
- package/dist/validation/configValidator.d.ts +12 -0
- package/dist/validation/configValidator.js +199 -72
- package/dist/validation/configValidator.js.map +1 -1
- package/dist/validation/installValidator.js +12 -0
- package/dist/validation/installValidator.js.map +1 -1
- package/dist/validation/validationWrapper.d.ts +11 -0
- package/dist/validation/validationWrapper.js +16 -3
- package/dist/validation/validationWrapper.js.map +1 -1
- package/index.ts +2 -0
- package/json/systemSchema.json +52 -0
- package/npm-shrinkwrap.json +235 -233
- package/package.json +8 -7
- package/resources/DESIGN.md +114 -52
- package/resources/DatabaseTransaction.ts +522 -130
- package/resources/LMDBTransaction.ts +26 -4
- package/resources/PrimaryRocksDatabase.ts +29 -3
- package/resources/RecordEncoder.ts +103 -8
- package/resources/RequestTarget.ts +2 -0
- package/resources/Resource.ts +17 -9
- package/resources/ResourceInterface.ts +23 -0
- package/resources/RocksIndexStore.ts +30 -10
- package/resources/RocksTransactionLogStore.ts +78 -21
- package/resources/Table.ts +1107 -164
- package/resources/auditStore.ts +187 -21
- package/resources/blob.ts +1029 -110
- package/resources/branchDatabase.ts +941 -0
- package/resources/crdt.ts +76 -12
- package/resources/databases.ts +1354 -522
- package/resources/defineTable.ts +18 -2
- package/resources/graphql.ts +70 -16
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +6 -2
- package/resources/longLivedTransactions.ts +360 -0
- package/resources/models/backendRegistry.ts +84 -2
- package/resources/models/bootstrap.ts +473 -28
- package/resources/recordLock.ts +253 -0
- package/resources/replayLogs.ts +147 -26
- package/resources/replayLogsGuards.ts +171 -8
- package/resources/search.ts +154 -32
- package/resources/transactionBroadcast.ts +3 -3
- package/security/auth.ts +68 -29
- package/security/authn/oidc/claims.ts +72 -0
- package/security/authn/oidc/identityToken.ts +129 -0
- package/security/authn/oidc/jwks.ts +260 -0
- package/security/authn/oidc/providers/generic.ts +40 -0
- package/security/authn/oidc/providers/githubActions.ts +137 -0
- package/security/authn/oidc/providers/index.ts +52 -0
- package/security/authn/oidc/tokenExchange.ts +300 -0
- package/security/authn/oidc/trustPolicyOperations.ts +343 -0
- package/security/authn/oidc/types.ts +41 -0
- package/security/certificateVerification/index.ts +54 -13
- package/security/certificateVerification/trustedIssuers.ts +76 -0
- package/security/certificateVerification/types.ts +1 -0
- package/security/credentialProvenance.ts +47 -0
- package/security/credentialRejection.ts +22 -0
- package/security/deferredAuthentication.ts +71 -0
- package/security/impersonation.ts +117 -12
- package/security/jsLoader.ts +81 -18
- package/security/keys.ts +298 -72
- package/security/operationScope.ts +33 -0
- package/security/permissionsTranslator.js +23 -0
- package/security/tokenAuthentication.ts +233 -12
- package/security/user.ts +4 -3
- package/server/DESIGN.md +183 -16
- package/server/DurableSubscriptionsSession.ts +71 -11
- package/server/REST.ts +79 -1
- package/server/graphqlQuerying.ts +4 -0
- package/server/http.ts +99 -18
- package/server/itc/serverHandlers.js +8 -1
- package/server/jobs/jobProcess.ts +8 -2
- package/server/jobs/jobs.ts +4 -1
- package/server/liveSubscriptionAuth.ts +129 -46
- package/server/loadRootComponents.js +50 -8
- package/server/mqtt.ts +179 -38
- package/server/nodeName.ts +103 -21
- package/server/serverHelpers/Headers.ts +131 -0
- package/server/serverHelpers/contentTypes.ts +29 -21
- package/server/serverHelpers/deployValidationState.ts +24 -13
- package/server/serverHelpers/operationAuthorizationState.ts +34 -3
- package/server/serverHelpers/registeredOperations.ts +79 -22
- package/server/serverHelpers/requestSanitization.ts +15 -0
- package/server/serverHelpers/serverHandlers.js +6 -3
- package/server/serverHelpers/serverUtilities.ts +104 -31
- package/server/serverHelpers/sharedMessageEncoding.ts +307 -0
- package/server/serverHelpers/uwsServer.ts +17 -2
- package/server/static.ts +23 -29
- package/server/storageReclamation.ts +13 -0
- package/server/threads/itc.js +11 -1
- package/server/threads/manageThreads.js +526 -63
- package/server/threads/socketRouter.ts +81 -26
- package/server/threads/threadHeapMemory.ts +26 -0
- package/server/threads/threadServer.js +43 -15
- package/sqlTranslator/index.ts +31 -8
- package/studio/web/assets/{Chat-Br06zdMA.js → Chat-BnCBegQz.js} +1 -1
- package/studio/web/assets/{FloatingChat-BWImX5fA.js → FloatingChat-CoDW1ySS.js} +3 -3
- package/studio/web/assets/{apiToken-DN0nmDsq.js → apiToken-Bwk5BLXW.js} +1 -1
- package/studio/web/assets/{applications-kSxVoyeU.js → applications-DHxGi7JH.js} +1 -1
- package/studio/web/assets/{cssMode-C1JeufH5.js → cssMode-s0cWI-_M.js} +1 -1
- package/studio/web/assets/{editor-qoo9CrGO.js → editor-DNcRHK54.js} +1 -1
- package/studio/web/assets/{html-Dt4IIy04.js → html-Bdssedlg.js} +1 -1
- package/studio/web/assets/{htmlMode-DXgKKr4C.js → htmlMode-CoDlJ3fw.js} +1 -1
- package/studio/web/assets/{index-6onkYFOG.js → index-D6sxmFLR.js} +5 -5
- package/studio/web/assets/{index.lazy-BrCFnpNJ.js → index.lazy-tmU5BS8s.js} +1 -1
- package/studio/web/assets/{javascript-DNCQGUBc.js → javascript-B8meVSTH.js} +1 -1
- package/studio/web/assets/{jsonMode-CR6HWruP.js → jsonMode-DpIPd35T.js} +1 -1
- package/studio/web/assets/{languageServices-BM4fI4rS.js → languageServices-C_5FMJzQ.js} +1 -1
- package/studio/web/assets/{lspLanguageFeatures-DSa1ttcD.js → lspLanguageFeatures-BIzNBzPK.js} +1 -1
- package/studio/web/assets/{notifications-BHXLnh6x.js → notifications-CQf18QKb.js} +1 -1
- package/studio/web/assets/{notifications-CUmtIA6z.js → notifications-CvZivSbh.js} +1 -1
- package/studio/web/assets/{profile-8BeFSF3j.js → profile-DdOwtntb.js} +1 -1
- package/studio/web/assets/{regions-C8qR0HhD.js → regions-n69fwagr.js} +1 -1
- package/studio/web/assets/{register-B4n5i0SD.js → register-PfWTCXWB.js} +2 -2
- package/studio/web/assets/{setComponentFile-g0_B0lgX.js → setComponentFile-Bg6O7X0S.js} +1 -1
- package/studio/web/assets/{setup-B0CTj_Q5.js → setup-CUx_aUDl.js} +2 -2
- package/studio/web/assets/{status-C6Yib7-K.js → status-D7BVKqX9.js} +1 -1
- package/studio/web/assets/{toggleHighContrast-Dgta7bVi.js → toggleHighContrast-DBSyXzMr.js} +1 -1
- package/studio/web/assets/{tsMode-CH_jHvU-.js → tsMode-BByKCjBS.js} +1 -1
- package/studio/web/assets/{typescript-Co9LCXd5.js → typescript-DDLnLpw9.js} +1 -1
- package/studio/web/assets/{useEntityRestURL-wKC8NsC_.js → useEntityRestURL-31CHGaHk.js} +1 -1
- package/studio/web/assets/{workers-CWeLxCXA.js → workers-pR3jRY9D.js} +1 -1
- package/studio/web/assets/{xml-BadC-0Rk.js → xml-2iRnMhQO.js} +1 -1
- package/studio/web/assets/{yaml-BiUfxPbC.js → yaml-Bf92gJpd.js} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/directives/5-3-0.ts +132 -0
- package/upgrade/directives/directivesController.ts +2 -1
- package/utility/OperationFunctionCaller.ts +2 -1
- package/utility/common_utils.ts +30 -5
- package/utility/componentNames.ts +12 -0
- package/utility/environment/environmentManager.ts +3 -7
- package/utility/environment/systemInformation.ts +7 -0
- package/utility/errors/commonErrors.ts +4 -0
- package/utility/errors/hdbError.ts +29 -0
- package/utility/hdbTerms.ts +17 -0
- package/utility/logging/harper_logger.ts +87 -14
- package/utility/logging/logRotator.ts +72 -45
- package/utility/nodeIdentity.ts +45 -0
- package/utility/npmUtilities.ts +10 -8
- package/utility/operationPermissions.ts +18 -1
- package/utility/operation_authorization.ts +231 -42
- package/utility/watchPath.ts +63 -0
- package/utility/watcherFallback.ts +270 -0
- package/validation/configValidator.ts +209 -72
- package/validation/installValidator.ts +15 -0
- package/validation/validationWrapper.ts +18 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,c as t,d as n,g as r,h as i,l as a,r as o}from"./register-
|
|
1
|
+
import{_ as e,c as t,d as n,g as r,h as i,l as a,r as o}from"./register-PfWTCXWB.js";import{t as s}from"./workers-pR3jRY9D.js";var c=class{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;let e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||=(async()=>(this._worker=s({moduleId:`vs/language/typescript/tsWorker`,createWorker:()=>new Worker(new URL(`/assets/ts.worker-DpaaFKhy.js`,``+import.meta.url),{type:`module`}),label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(r.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))(),this._client}async getLanguageServiceWorker(...e){let t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}},l={};l[`lib.d.ts`]=!0,l[`lib.decorators.d.ts`]=!0,l[`lib.decorators.legacy.d.ts`]=!0,l[`lib.dom.asynciterable.d.ts`]=!0,l[`lib.dom.d.ts`]=!0,l[`lib.dom.iterable.d.ts`]=!0,l[`lib.es2015.collection.d.ts`]=!0,l[`lib.es2015.core.d.ts`]=!0,l[`lib.es2015.d.ts`]=!0,l[`lib.es2015.generator.d.ts`]=!0,l[`lib.es2015.iterable.d.ts`]=!0,l[`lib.es2015.promise.d.ts`]=!0,l[`lib.es2015.proxy.d.ts`]=!0,l[`lib.es2015.reflect.d.ts`]=!0,l[`lib.es2015.symbol.d.ts`]=!0,l[`lib.es2015.symbol.wellknown.d.ts`]=!0,l[`lib.es2016.array.include.d.ts`]=!0,l[`lib.es2016.d.ts`]=!0,l[`lib.es2016.full.d.ts`]=!0,l[`lib.es2016.intl.d.ts`]=!0,l[`lib.es2017.arraybuffer.d.ts`]=!0,l[`lib.es2017.d.ts`]=!0,l[`lib.es2017.date.d.ts`]=!0,l[`lib.es2017.full.d.ts`]=!0,l[`lib.es2017.intl.d.ts`]=!0,l[`lib.es2017.object.d.ts`]=!0,l[`lib.es2017.sharedmemory.d.ts`]=!0,l[`lib.es2017.string.d.ts`]=!0,l[`lib.es2017.typedarrays.d.ts`]=!0,l[`lib.es2018.asyncgenerator.d.ts`]=!0,l[`lib.es2018.asynciterable.d.ts`]=!0,l[`lib.es2018.d.ts`]=!0,l[`lib.es2018.full.d.ts`]=!0,l[`lib.es2018.intl.d.ts`]=!0,l[`lib.es2018.promise.d.ts`]=!0,l[`lib.es2018.regexp.d.ts`]=!0,l[`lib.es2019.array.d.ts`]=!0,l[`lib.es2019.d.ts`]=!0,l[`lib.es2019.full.d.ts`]=!0,l[`lib.es2019.intl.d.ts`]=!0,l[`lib.es2019.object.d.ts`]=!0,l[`lib.es2019.string.d.ts`]=!0,l[`lib.es2019.symbol.d.ts`]=!0,l[`lib.es2020.bigint.d.ts`]=!0,l[`lib.es2020.d.ts`]=!0,l[`lib.es2020.date.d.ts`]=!0,l[`lib.es2020.full.d.ts`]=!0,l[`lib.es2020.intl.d.ts`]=!0,l[`lib.es2020.number.d.ts`]=!0,l[`lib.es2020.promise.d.ts`]=!0,l[`lib.es2020.sharedmemory.d.ts`]=!0,l[`lib.es2020.string.d.ts`]=!0,l[`lib.es2020.symbol.wellknown.d.ts`]=!0,l[`lib.es2021.d.ts`]=!0,l[`lib.es2021.full.d.ts`]=!0,l[`lib.es2021.intl.d.ts`]=!0,l[`lib.es2021.promise.d.ts`]=!0,l[`lib.es2021.string.d.ts`]=!0,l[`lib.es2021.weakref.d.ts`]=!0,l[`lib.es2022.array.d.ts`]=!0,l[`lib.es2022.d.ts`]=!0,l[`lib.es2022.error.d.ts`]=!0,l[`lib.es2022.full.d.ts`]=!0,l[`lib.es2022.intl.d.ts`]=!0,l[`lib.es2022.object.d.ts`]=!0,l[`lib.es2022.regexp.d.ts`]=!0,l[`lib.es2022.string.d.ts`]=!0,l[`lib.es2023.array.d.ts`]=!0,l[`lib.es2023.collection.d.ts`]=!0,l[`lib.es2023.d.ts`]=!0,l[`lib.es2023.full.d.ts`]=!0,l[`lib.es2023.intl.d.ts`]=!0,l[`lib.es2024.arraybuffer.d.ts`]=!0,l[`lib.es2024.collection.d.ts`]=!0,l[`lib.es2024.d.ts`]=!0,l[`lib.es2024.full.d.ts`]=!0,l[`lib.es2024.object.d.ts`]=!0,l[`lib.es2024.promise.d.ts`]=!0,l[`lib.es2024.regexp.d.ts`]=!0,l[`lib.es2024.sharedmemory.d.ts`]=!0,l[`lib.es2024.string.d.ts`]=!0,l[`lib.es5.d.ts`]=!0,l[`lib.es6.d.ts`]=!0,l[`lib.esnext.array.d.ts`]=!0,l[`lib.esnext.collection.d.ts`]=!0,l[`lib.esnext.d.ts`]=!0,l[`lib.esnext.decorators.d.ts`]=!0,l[`lib.esnext.disposable.d.ts`]=!0,l[`lib.esnext.error.d.ts`]=!0,l[`lib.esnext.float16.d.ts`]=!0,l[`lib.esnext.full.d.ts`]=!0,l[`lib.esnext.intl.d.ts`]=!0,l[`lib.esnext.iterator.d.ts`]=!0,l[`lib.esnext.promise.d.ts`]=!0,l[`lib.esnext.sharedmemory.d.ts`]=!0,l[`lib.scripthost.d.ts`]=!0,l[`lib.webworker.asynciterable.d.ts`]=!0,l[`lib.webworker.d.ts`]=!0,l[`lib.webworker.importscripts.d.ts`]=!0,l[`lib.webworker.iterable.d.ts`]=!0;function u(e,t,n=0){if(typeof e==`string`)return e;if(e===void 0)return``;let r=``;if(n){r+=t;for(let e=0;e<n;e++)r+=` `}if(r+=e.messageText,n++,e.next)for(let i of e.next)r+=u(i,t,n);return r}function d(e){return e?e.map(e=>e.text).join(``):``}var f=class{constructor(e){this._worker=e}_textSpanToRange(e,t){let n=e.getPositionAt(t.start),r=e.getPositionAt(t.start+t.length),{lineNumber:i,column:a}=n,{lineNumber:o,column:s}=r;return{startLineNumber:i,startColumn:a,endLineNumber:o,endColumn:s}}},p=class{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e?e.path.indexOf(`/lib.`)===0&&!!l[e.path.slice(1)]:!1}getOrCreateModel(e){let t=i.parse(e),n=r.getModel(t);if(n)return n;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return r.createModel(this._libFiles[t.path.slice(1)],`typescript`,t);let a=o.getExtraLibs()[e];return a?r.createModel(a.content,`typescript`,t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e}),this._fetchLibFilesPromise}},m=class extends f{constructor(e,t,n,i){super(i),this._libFiles=e,this._defaults=t,this._selector=n,this._disposables=[],this._listener=Object.create(null);let a=e=>{if(e.getLanguageId()!==n)return;let t=()=>{let{onlyVisible:t}=this._defaults.getDiagnosticsOptions();t?e.isAttachedToEditor()&&this._doValidate(e):this._doValidate(e)},i,a=e.onDidChangeContent(()=>{clearTimeout(i),i=window.setTimeout(t,500)}),o=e.onDidChangeAttached(()=>{let{onlyVisible:n}=this._defaults.getDiagnosticsOptions();n&&(e.isAttachedToEditor()?t():r.setModelMarkers(e,this._selector,[]))});this._listener[e.uri.toString()]={dispose(){a.dispose(),o.dispose(),clearTimeout(i)}},t()},o=e=>{r.setModelMarkers(e,this._selector,[]);let t=e.uri.toString();this._listener[t]&&(this._listener[t].dispose(),delete this._listener[t])};this._disposables.push(r.onDidCreateModel(e=>a(e))),this._disposables.push(r.onWillDisposeModel(o)),this._disposables.push(r.onDidChangeModelLanguage(e=>{o(e.model),a(e.model)})),this._disposables.push({dispose(){for(let e of r.getModels())o(e)}});let s=()=>{for(let e of r.getModels())o(e),a(e)};this._disposables.push(this._defaults.onDidChange(s)),this._disposables.push(this._defaults.onDidExtraLibsChange(s)),r.getModels().forEach(e=>a(e))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){let t=await this._worker(e.uri);if(e.isDisposed())return;let n=[],{noSyntaxValidation:a,noSemanticValidation:o,noSuggestionDiagnostics:s}=this._defaults.getDiagnosticsOptions();a||n.push(t.getSyntacticDiagnostics(e.uri.toString())),o||n.push(t.getSemanticDiagnostics(e.uri.toString())),s||n.push(t.getSuggestionDiagnostics(e.uri.toString()));let c=await Promise.all(n);if(!c||e.isDisposed())return;let l=c.reduce((e,t)=>t.concat(e),[]).filter(e=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code)===-1),u=l.map(e=>e.relatedInformation||[]).reduce((e,t)=>t.concat(e),[]).map(e=>e.file?i.parse(e.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(u),!e.isDisposed()&&r.setModelMarkers(e,this._selector,l.map(t=>this._convertDiagnostics(e,t)))}_convertDiagnostics(e,t){let n=t.start||0,r=t.length||1,{lineNumber:i,column:o}=e.getPositionAt(n),{lineNumber:s,column:c}=e.getPositionAt(n+r),l=[];return t.reportsUnnecessary&&l.push(a.Unnecessary),t.reportsDeprecated&&l.push(a.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:i,startColumn:o,endLineNumber:s,endColumn:c,message:u(t.messageText,`
|
|
2
2
|
`),code:t.code.toString(),tags:l,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];let n=[];return t.forEach(t=>{let r=e;if(t.file&&(r=this._libFiles.getOrCreateModel(t.file.fileName)),!r)return;let i=t.start||0,a=t.length||1,{lineNumber:o,column:s}=r.getPositionAt(i),{lineNumber:c,column:l}=r.getPositionAt(i+a);n.push({resource:r.uri,startLineNumber:o,startColumn:s,endLineNumber:c,endColumn:l,message:u(t.messageText,`
|
|
3
3
|
`)})}),n}_tsDiagnosticCategoryToMarkerSeverity(e){switch(e){case 1:return t.Error;case 3:return t.Info;case 0:return t.Warning;case 2:return t.Hint}return t.Info}},h=class t extends f{get triggerCharacters(){return[`.`]}async provideCompletionItems(r,i,a,o){let s=r.getWordUntilPosition(i),c=new n(i.lineNumber,s.startColumn,i.lineNumber,s.endColumn),l=r.uri,u=r.getOffsetAt(i),d=await this._worker(l);if(r.isDisposed())return;let f=await d.getCompletionsAtPosition(l.toString(),u);if(!(!f||r.isDisposed()))return{suggestions:f.entries.map(a=>{let o=c;if(a.replacementSpan){let e=r.getPositionAt(a.replacementSpan.start),t=r.getPositionAt(a.replacementSpan.start+a.replacementSpan.length);o=new n(e.lineNumber,e.column,t.lineNumber,t.column)}let s=[];return a.kindModifiers!==void 0&&a.kindModifiers.indexOf(`deprecated`)!==-1&&s.push(e.CompletionItemTag.Deprecated),{uri:l,position:i,offset:u,range:o,label:a.name,insertText:a.name,sortText:a.sortText,kind:t.convertKind(a.kind),tags:s}})}}async resolveCompletionItem(e,n){let r=e,i=r.uri,a=r.position,o=r.offset,s=await(await this._worker(i)).getCompletionEntryDetails(i.toString(),o,r.label);return s?{uri:i,position:a,label:s.name,kind:t.convertKind(s.kind),detail:d(s.displayParts),documentation:{value:t.createDocumentationString(s)}}:r}static convertKind(t){switch(t){case C.primitiveType:case C.keyword:return e.CompletionItemKind.Keyword;case C.variable:case C.localVariable:return e.CompletionItemKind.Variable;case C.memberVariable:case C.memberGetAccessor:case C.memberSetAccessor:return e.CompletionItemKind.Field;case C.function:case C.memberFunction:case C.constructSignature:case C.callSignature:case C.indexSignature:return e.CompletionItemKind.Function;case C.enum:return e.CompletionItemKind.Enum;case C.module:return e.CompletionItemKind.Module;case C.class:return e.CompletionItemKind.Class;case C.interface:return e.CompletionItemKind.Interface;case C.warning:return e.CompletionItemKind.File}return e.CompletionItemKind.Property}static createDocumentationString(e){let t=d(e.documentation);if(e.tags)for(let n of e.tags)t+=`
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e}from"./register-
|
|
1
|
+
import{_ as e}from"./register-PfWTCXWB.js";var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:e.IndentAction.IndentOutdent,appendText:` * `}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:e.IndentAction.None,appendText:` * `}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:e.IndentAction.None,appendText:`* `}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:e.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]},{open:`'`,close:`'`,notIn:[`string`,`comment`]},{open:"`",close:"`",notIn:[`string`,`comment`]},{open:`/**`,close:` */`,notIn:[`string`]}],folding:{markers:{start:RegExp(`^\\s*//\\s*#?region\\b`),end:RegExp(`^\\s*//\\s*#?endregion\\b`)}}},n={defaultToken:`invalid`,tokenPostfix:`.ts`,keywords:`abstract.any.as.asserts.bigint.boolean.break.case.catch.class.continue.const.constructor.debugger.declare.default.delete.do.else.enum.export.extends.false.finally.for.from.function.get.if.implements.import.in.infer.instanceof.interface.is.keyof.let.module.namespace.never.new.null.number.object.out.package.private.protected.public.override.readonly.require.global.return.satisfies.set.static.string.super.switch.symbol.this.throw.true.try.type.typeof.undefined.unique.unknown.var.void.while.with.yield.async.await.of`.split(`.`),operators:`<=.>=.==.!=.===.!==.=>.+.-.**.*./.%.++.--.<<.</.>>.>>>.&.|.^.!.~.&&.||.??.?.:.=.+=.-=.*=.**=./=.%=.<<=.>>=.>>>=.&=.|=.^=.@`.split(`.`),symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,`delimiter.bracket`],{include:`common`}],common:[[/#?[a-z_$][\w$]*/,{cases:{"@keywords":`keyword`,"@default":`identifier`}}],[/[A-Z][\w\$]*/,`type.identifier`],{include:`@whitespace`},[/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:`regexp`,bracket:`@open`,next:`@regexp`}],[/[()\[\]]/,`@brackets`],[/[<>](?!@symbols)/,`@brackets`],[/!(?=([^=]|$))/,`delimiter`],[/@symbols/,{cases:{"@operators":`delimiter`,"@default":``}}],[/(@digits)[eE]([\-+]?(@digits))?/,`number.float`],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,`number.float`],[/0[xX](@hexdigits)n?/,`number.hex`],[/0[oO]?(@octaldigits)n?/,`number.octal`],[/0[bB](@binarydigits)n?/,`number.binary`],[/(@digits)n?/,`number`],[/[;,.]/,`delimiter`],[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/"/,`string`,`@string_double`],[/'/,`string`,`@string_single`],[/`/,`string`,`@string_backtick`]],whitespace:[[/[ \t\r\n]+/,``],[/\/\*\*(?!\/)/,`comment.doc`,`@jsdoc`],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`]],comment:[[/[^\/*]+/,`comment`],[/\*\//,`comment`,`@pop`],[/[\/*]/,`comment`]],jsdoc:[[/[^\/*]+/,`comment.doc`],[/\*\//,`comment.doc`,`@pop`],[/[\/*]/,`comment.doc`]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,[`regexp.escape.control`,`regexp.escape.control`,`regexp.escape.control`]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,[`regexp.escape.control`,{token:`regexp.escape.control`,next:`@regexrange`}]],[/(\()(\?:|\?=|\?!)/,[`regexp.escape.control`,`regexp.escape.control`]],[/[()]/,`regexp.escape.control`],[/@regexpctl/,`regexp.escape.control`],[/[^\\\/]/,`regexp`],[/@regexpesc/,`regexp.escape`],[/\\\./,`regexp.invalid`],[/(\/)([dgimsuy]*)/,[{token:`regexp`,bracket:`@close`,next:`@pop`},`keyword.other`]]],regexrange:[[/-/,`regexp.escape.control`],[/\^/,`regexp.invalid`],[/@regexpesc/,`regexp.escape`],[/[^\]]/,`regexp`],[/\]/,{token:`regexp.escape.control`,next:`@pop`,bracket:`@close`}]],string_double:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],string_single:[[/[^\\']+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/'/,`string`,`@pop`]],string_backtick:[[/\$\{/,{token:`delimiter.bracket`,next:`@bracketCounting`}],[/[^\\`$]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/`/,`string`,`@pop`]],bracketCounting:[[/\{/,`delimiter.bracket`,`@bracketCounting`],[/\}/,`delimiter.bracket`,`@pop`],{include:`common`}]}};export{t as conf,n as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./authStore-C3Nfubqr.js";import{k as t,z as n}from"./vendor-tanstack-DxzraizX.js";import{_n as r,kn as i}from"./index-
|
|
1
|
+
import{n as e}from"./authStore-C3Nfubqr.js";import{k as t,z as n}from"./vendor-tanstack-DxzraizX.js";import{_n as r,kn as i}from"./index-D6sxmFLR.js";function a(e){return new URL(e.match(/^https?:\/\//i)?e:`https://${e}`).toString()}function o(e){if(e?.domains){for(let t of e.domains)if(t.domain)return a(t.domain)}return e?.fqdn?a(e.fqdn):null}function s(){let{clusterId:a,instanceId:s}=t({strict:!1}),c=i(),{data:l}=n(r(a));return a&&e.checkForFabricConnect(a)||s&&e.checkForFabricConnect(s)||l&&!s?o(l):c.defaults.baseURL?c.defaults.baseURL.replace(/:9925\/?/,``):null}export{s as t};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{At as e,Bl as t,Cn as n,Hs as r,Hu as i,Is as a,Nd as o,Pd as s,Qu as c,So as l,Uu as u,ai as d,bn as f,bs as p,dd as m,ds as h,fc as g,ft as _,g as v,gs as y,kt as b,md as ee,ms as x,nc as S,nf as C,pd as w,tf as T,ti as E,vd as D,xn as O,xs as k,ys as A}from"./register-
|
|
1
|
+
import{At as e,Bl as t,Cn as n,Hs as r,Hu as i,Is as a,Nd as o,Pd as s,Qu as c,So as l,Uu as u,ai as d,bn as f,bs as p,dd as m,ds as h,fc as g,ft as _,g as v,gs as y,kt as b,md as ee,ms as x,nc as S,nf as C,pd as w,tf as T,ti as E,vd as D,xn as O,xs as k,ys as A}from"./register-PfWTCXWB.js";import{a as j,c as M,d as te,f as ne,i as N,l as P,n as F,o as I,p as L,r as R,u as z}from"./toggleHighContrast-DBSyXzMr.js";var B=class{constructor(e,t){this._selection=e,this._isMovingLeft=t}getEditOperations(e,t){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;let n=this._selection.startLineNumber,r=this._selection.startColumn,i=this._selection.endColumn;if(!(this._isMovingLeft&&r===1)&&!(!this._isMovingLeft&&i===e.getLineMaxColumn(n))){if(this._isMovingLeft){let a=new u(n,r-1,n,r),o=e.getValueInRange(a);t.addEditOperation(a,null),t.addEditOperation(new u(n,i,n,i),o)}else{let a=new u(n,i,n,i+1),o=e.getValueInRange(a);t.addEditOperation(a,null),t.addEditOperation(new u(n,r,n,r),o)}}}computeCursorState(e,t){return this._isMovingLeft?new i(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new i(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}},V=class extends x{constructor(e,t){super(t),this.left=e}run(e,t){if(!t.hasModel())return;let n=[],r=t.getSelections();for(let e of r)n.push(new B(e,this.left));t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}},H=class extends V{constructor(){super(!0,{id:`editor.action.moveCarretLeftAction`,label:s(846,`Move Selected Text Left`),precondition:d.writable})}},U=class extends V{constructor(){super(!1,{id:`editor.action.moveCarretRightAction`,label:s(847,`Move Selected Text Right`),precondition:d.writable})}};A(H),A(U);var W=`editor.action.pasteAs`;k(M.ID,M,0),_(te),p(new class extends y{constructor(){super({id:P,precondition:z,kbOpts:{weight:100,primary:2137}})}runEditorCommand(e,t){return M.get(t)?.changePasteType()}}),p(new class extends y{constructor(){super({id:`editor.hidePasteWidget`,precondition:z,kbOpts:{weight:100,primary:9}})}runEditorCommand(e,t){M.get(t)?.clearWidgets()}}),A(class e extends x{static{this.argsSchema={oneOf:[{type:`object`,required:[`kind`],properties:{kind:{type:`string`,description:o(952,`The kind of the paste edit to try pasting with.
|
|
2
2
|
If there are multiple edits for this kind, the editor will show a picker. If there are no edits of this kind, the editor will show an error message.`)}}},{type:`object`,required:[`preferences`],properties:{preferences:{type:`array`,description:o(953,`List of preferred paste edit kind to try applying.
|
|
3
3
|
The first edit matching the preferences will be applied.`),items:{type:`string`}}}}]}}constructor(){super({id:W,label:s(954,`Paste As...`),precondition:d.writable,metadata:{description:`Paste as`,args:[{name:`args`,schema:e.argsSchema}]},canTriggerInlineEdits:!0})}run(e,t,n){let r;return n&&(`kind`in n?r={only:new L(n.kind)}:`preferences`in n&&(r={preferences:n.preferences.map(e=>new L(e))})),M.get(t)?.pasteAs(r)}}),A(class extends x{constructor(){super({id:`editor.action.pasteAsText`,label:s(955,`Paste as Text`),precondition:d.writable,canTriggerInlineEdits:!0})}run(e,t){return M.get(t)?.pasteAs({providerId:ne.id})}});var G=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},K=function(e,t){return function(n,r){t(n,r,e)}},q=class extends w{static{this.ID=`editor.contrib.markerSelectionStatus`}constructor(e,t,n){super(),this._editor=e,this._markerService=n,this._ctxHasDiagnostics=d.selectionHasDiagnostics.bindTo(t),this._store.add(this._editor.onDidChangeCursorSelection(()=>this._update())),this._store.add(this._editor.onDidChangeModel(()=>this._update())),this._store.add(this._markerService.onMarkerChanged(e=>{let t=this._editor.getModel();t&&e.some(e=>a(e,t.uri))&&this._update()})),this._update()}dispose(){this._ctxHasDiagnostics.reset(),super.dispose()}_update(){let t=this._editor.getModel(),n=this._editor.getSelection();if(!t||!n){this._ctxHasDiagnostics.reset();return}let r=this._markerService.read({resource:t.uri,severities:e.Error|e.Warning|e.Info}).some(e=>u.areIntersecting({startLineNumber:e.startLineNumber,startColumn:e.startColumn,endLineNumber:e.endLineNumber,endColumn:e.endColumn},n));this._ctxHasDiagnostics.set(r)}};q=G([K(1,S),K(2,b)],q),k(q.ID,q,1);var J=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Y=function(e,t){return function(n,r){t(n,r,e)}},X,Z=class extends w{constructor(e,t,n,i,a,o){super(),this._watchers=new r,this._providerChangeListeners=this._register(new ee);let s=o.documentSemanticTokensProvider,c=t=>{this._watchers.get(t.uri)?.dispose(),this._watchers.set(t.uri,new Q(t,e,n,a,o))},l=(e,t)=>{t.dispose(),this._watchers.delete(e.uri)},u=()=>{for(let e of t.getModels()){let t=this._watchers.get(e.uri);F(e,n,i)?t||c(e):t&&l(e,t)}},d=()=>{this._providerChangeListeners.clear();for(let e of s.allNoModel())typeof e.onDidChange==`function`&&this._providerChangeListeners.add(e.onDidChange(()=>{for(let t of this._watchers.values())t.handleProviderDidChange(e)}))};t.getModels().forEach(e=>{F(e,n,i)&&c(e)}),this._register(t.onModelAdded(e=>{F(e,n,i)&&c(e)})),this._register(t.onModelRemoved(e=>{let t=this._watchers.get(e.uri);t&&l(e,t)})),this._register(i.onDidChangeConfiguration(e=>{e.affectsConfiguration(`editor.semanticHighlighting`)&&u()})),this._register(n.onDidColorThemeChange(u)),d(),this._register(s.onDidChange(()=>{d();for(let e of this._watchers.values())e.handleRegistryChange()}))}dispose(){D(this._watchers.values()),this._watchers.clear(),super.dispose()}};Z=J([Y(0,f),Y(1,g),Y(2,E),Y(3,h),Y(4,n),Y(5,l)],Z);var Q=class extends w{static{X=this}static{this.REQUEST_MIN_DELAY=300}static{this.REQUEST_MAX_DELAY=2e3}constructor(e,n,r,i,a){super(),this._semanticTokensStylingService=n,this._relevantProviders=new Set,this._isDisposed=!1,this._model=e,this._provider=a.documentSemanticTokensProvider,this._debounceInformation=i.for(this._provider,`DocumentSemanticTokens`,{min:X.REQUEST_MIN_DELAY,max:X.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new t(()=>this._fetchDocumentSemanticTokensNow(),X.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._providersChangedDuringRequest=!1,this._updateRelevantProviders(),this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&=(this._currentDocumentResponse.dispose(),null),this._currentDocumentRequestCancellationTokenSource&&=(this._currentDocumentRequestCancellationTokenSource.cancel(),null),this._setDocumentSemanticTokens(null,null,null,[]),this._updateRelevantProviders(),this._fetchDocumentSemanticTokens.schedule(0)})),this._register(r.onDidColorThemeChange(e=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}handleRegistryChange(){this._updateRelevantProviders(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}handleProviderDidChange(e){if(this._relevantProviders.has(e)){if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}}_updateRelevantProviders(){this._relevantProviders=new Set(this._provider.all(this._model))}dispose(){this._currentDocumentResponse&&=(this._currentDocumentResponse.dispose(),null),this._currentDocumentRequestCancellationTokenSource&&=(this._currentDocumentRequestCancellationTokenSource.cancel(),null),this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!N(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;let e=new c,t=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,n=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,r=R(this._provider,this._model,t,n,e.token);this._currentDocumentRequestCancellationTokenSource=e,this._providersChangedDuringRequest=!1;let i=[],a=this._model.onDidChangeContent(e=>{i.push(e)}),o=new m(!1);r.then(e=>{if(this._debounceInformation.update(this._model,o.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,a.dispose(),!e)this._setDocumentSemanticTokens(null,null,null,i);else{let{provider:t,tokens:n}=e,r=this._semanticTokensStylingService.getStyling(t);this._setDocumentSemanticTokens(t,n||null,r,i)}},e=>{e&&(T(e)||typeof e.message==`string`&&e.message.indexOf(`busy`)!==-1)||C(e),this._currentDocumentRequestCancellationTokenSource=null,a.dispose(),(i.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(e,t,n,r,i){i=Math.min(i,n.length-r,e.length-t);for(let a=0;a<i;a++)n[r+a]=e[t+a]}_setDocumentSemanticTokens(e,t,n,r){let i=this._currentDocumentResponse,a=()=>{(r.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&=(this._currentDocumentResponse.dispose(),null),this._isDisposed){e&&t&&e.releaseDocumentSemanticTokens(t.resultId);return}if(!e||!n){this._model.tokenization.setSemanticTokens(null,!1);return}if(!t){this._model.tokenization.setSemanticTokens(null,!0),a();return}if(I(t)){if(!i){this._model.tokenization.setSemanticTokens(null,!0);return}if(t.edits.length===0)t={resultId:t.resultId,data:i.data};else{let e=0;for(let n of t.edits)e+=(n.data?n.data.length:0)-n.deleteCount;let r=i.data,a=new Uint32Array(r.length+e),o=r.length,s=a.length;for(let e=t.edits.length-1;e>=0;e--){let c=t.edits[e];if(c.start>r.length){n.warnInvalidEditStart(i.resultId,t.resultId,e,c.start,r.length),this._model.tokenization.setSemanticTokens(null,!0);return}let l=o-(c.start+c.deleteCount);l>0&&(X._copy(r,o-l,a,s-l,l),s-=l),c.data&&(X._copy(c.data,0,a,s-c.data.length,c.data.length),s-=c.data.length),o=c.start}o>0&&X._copy(r,0,a,0,o),t={resultId:t.resultId,data:a}}}if(j(t)){this._currentDocumentResponse=new re(e,t.resultId,t.data);let i=O(t,n,this._model.getLanguageId());if(r.length>0)for(let e of r)for(let t of i)for(let n of e.changes)t.applyEdit(n.range,n.text);this._model.tokenization.setSemanticTokens(i,!0)}else this._model.tokenization.setSemanticTokens(null,!0);a()}};Q=X=J([Y(1,f),Y(2,E),Y(3,n),Y(4,l)],Q);var re=class{constructor(e,t,n){this.provider=e,this.resultId=t,this.data=n}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}};_(Z);function ie(e,t){let n=globalThis.MonacoEnvironment;if(n?.createTrustedTypesPolicy)try{return n.createTrustedTypesPolicy(e,t)}catch(e){console.error(e);return}try{return globalThis.trustedTypes?.createPolicy(e,t)}catch(e){console.error(e);return}}var $=typeof self==`object`&&self.constructor&&self.constructor.name===`DedicatedWorkerGlobalScope`&&globalThis.workerttPolicy!==void 0?globalThis.workerttPolicy:ie(`defaultWorkerFactory`,{createScriptURL:e=>e});function ae(e){let t=e.label,n=globalThis.MonacoEnvironment;if(n){if(typeof n.getWorker==`function`)return n.getWorker(`workerMain.js`,t);if(typeof n.getWorkerUrl==`function`){let e=n.getWorkerUrl(`workerMain.js`,t);return new Worker($?$.createScriptURL(e):e,{name:t,type:`module`})}}if(e.createWorker)return e.createWorker();throw Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`)}function oe(e){let t=Promise.resolve(ae({label:e.label??`monaco-editor-worker`,moduleId:e.moduleId,createWorker:e.createWorker})).then(t=>(t.postMessage(`ignore`),t.postMessage(e.createData),t));return v.createWebWorker({worker:t,host:e.host,keepIdleModels:e.keepIdleModels})}export{oe as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e}from"./register-
|
|
1
|
+
import{_ as e}from"./register-PfWTCXWB.js";var t={comments:{blockComment:[`<!--`,`-->`]},brackets:[[`<`,`>`]],autoClosingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],surroundingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],onEnterRules:[{beforeText:RegExp(`<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},n={defaultToken:``,tokenPostfix:`.xml`,ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,``],{include:`@whitespace`},[/(<)(@qualifiedName)/,[{token:`delimiter`},{token:`tag`,next:`@tag`}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:`delimiter`},{token:`tag`},``,{token:`delimiter`}]],[/(<\?)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/(<\!)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/<\!\[CDATA\[/,{token:`delimiter.cdata`,next:`@cdata`}],[/&\w+;/,`string.escape`]],cdata:[[/[^\]]+/,``],[/\]\]>/,{token:`delimiter.cdata`,next:`@pop`}],[/\]/,``]],tag:[[/[ \t\r\n]+/,``],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,[`attribute.name`,``,`attribute.value`]],[/@qualifiedName/,`attribute.name`],[/\?>/,{token:`delimiter`,next:`@pop`}],[/(\/)(>)/,[{token:`tag`},{token:`delimiter`,next:`@pop`}]],[/>/,{token:`delimiter`,next:`@pop`}]],whitespace:[[/[ \t\r\n]+/,``],[/<!--/,{token:`comment`,next:`@comment`}]],comment:[[/[^<\-]+/,`comment.content`],[/-->/,{token:`comment`,next:`@pop`}],[/<!--/,`comment.content.invalid`],[/[<\-]/,`comment.content`]]}};export{t as conf,n as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e}from"./register-
|
|
1
|
+
import{_ as e}from"./register-PfWTCXWB.js";var t={comments:{lineComment:`#`},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:e.IndentAction.Indent}}]},n={tokenPostfix:`.yaml`,brackets:[{token:`delimiter.bracket`,open:`{`,close:`}`},{token:`delimiter.square`,open:`[`,close:`]`}],keywords:[`true`,`True`,`TRUE`,`false`,`False`,`FALSE`,`null`,`Null`,`Null`,`~`],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:`@whitespace`},{include:`@comment`},[/%[^ ]+.*$/,`meta.directive`],[/---/,`operators.directivesEnd`],[/\.{3}/,`operators.documentEnd`],[/[-?:](?= )/,`operators`],{include:`@anchor`},{include:`@tagHandle`},{include:`@flowCollections`},{include:`@blockStyle`},[/@numberInteger(?![ \t]*\S+)/,`number`],[/@numberFloat(?![ \t]*\S+)/,`number.float`],[/@numberOctal(?![ \t]*\S+)/,`number.octal`],[/@numberHex(?![ \t]*\S+)/,`number.hex`],[/@numberInfinity(?![ \t]*\S+)/,`number.infinity`],[/@numberNaN(?![ \t]*\S+)/,`number.nan`],[/@numberDate(?![ \t]*\S+)/,`number.date`],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,[`type`,`white`,`operators`,`white`]],{include:`@flowScalars`},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],object:[{include:`@whitespace`},{include:`@comment`},[/\}/,`@brackets`,`@pop`],[/,/,`delimiter.comma`],[/:(?= )/,`operators`],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,`type`],{include:`@flowCollections`},{include:`@flowScalars`},{include:`@tagHandle`},{include:`@anchor`},{include:`@flowNumber`},[/[^\},]+/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],array:[{include:`@whitespace`},{include:`@comment`},[/\]/,`@brackets`,`@pop`],[/,/,`delimiter.comma`],{include:`@flowCollections`},{include:`@flowScalars`},{include:`@tagHandle`},{include:`@anchor`},{include:`@flowNumber`},[/[^\],]+/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],multiString:[[/^( +).+$/,`string`,`@multiStringContinued.$1`]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":`string`,"@default":{token:`@rematch`,next:`@popall`}}}]],whitespace:[[/[ \t\r\n]+/,`white`]],comment:[[/#.*$/,`comment`]],flowCollections:[[/\[/,`@brackets`,`@array`],[/\{/,`@brackets`,`@object`]],flowScalars:[[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/'[^']*'/,`string`],[/"/,`string`,`@doubleQuotedString`]],doubleQuotedString:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],blockStyle:[[/[>|][0-9]*[+-]?$/,`operators`,`@multiString`]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,`number`],[/@numberFloat(?=[ \t]*[,\]\}])/,`number.float`],[/@numberOctal(?=[ \t]*[,\]\}])/,`number.octal`],[/@numberHex(?=[ \t]*[,\]\}])/,`number.hex`],[/@numberInfinity(?=[ \t]*[,\]\}])/,`number.infinity`],[/@numberNaN(?=[ \t]*[,\]\}])/,`number.nan`],[/@numberDate(?=[ \t]*[,\]\}])/,`number.date`]],tagHandle:[[/\![^ ]*/,`tag`]],anchor:[[/[&*][^ ]+/,`namespace`]]}};export{t as conf,n as language};
|
package/studio/web/index.html
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
} catch (e) {}
|
|
22
22
|
})();
|
|
23
23
|
</script>
|
|
24
|
-
<script type="module" crossorigin src="/assets/index-
|
|
24
|
+
<script type="module" crossorigin src="/assets/index-D6sxmFLR.js"></script>
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-hePW80VL.js">
|
|
26
26
|
<link rel="modulepreload" crossorigin href="/assets/vendor-core-c2JRRJpV.js">
|
|
27
27
|
<link rel="modulepreload" crossorigin href="/assets/vendor-datadog-CLUcJXOo.js">
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// 5.3.0 — introduces system.hdb_oidc_trust and system.hdb_oidc_token_use for OIDC trusted
|
|
4
|
+
// publishing (#2171).
|
|
5
|
+
//
|
|
6
|
+
// Fresh installs get the table from json/systemSchema.json; this covers existing installs. The
|
|
7
|
+
// version must match the release that ships the dependent operations — see 5-1-0.ts for what
|
|
8
|
+
// happens when it does not, and DESIGN.md "System table bootstrap" for the three touchpoints.
|
|
9
|
+
|
|
10
|
+
import { databases } from '../../resources/databases.ts';
|
|
11
|
+
import systemSchema from '../../json/systemSchema.json';
|
|
12
|
+
import * as terms from '../../utility/hdbTerms.ts';
|
|
13
|
+
import * as initPaths from '../../dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js';
|
|
14
|
+
import bridge from '../../dataLayer/harperBridge/harperBridge.ts';
|
|
15
|
+
import hdbLogger from '../../utility/logging/harper_logger.ts';
|
|
16
|
+
|
|
17
|
+
const OIDC_TRUST_TABLE = terms.SYSTEM_TABLE_NAMES.OIDC_TRUST_TABLE_NAME;
|
|
18
|
+
const OIDC_TOKEN_USE_TABLE = terms.SYSTEM_TABLE_NAMES.OIDC_TOKEN_USE_TABLE_NAME;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The replay table gets the same bootstrap as the trust table, for a reason specific to it: replay
|
|
22
|
+
* records must replicate, and a node that has never completed an exchange would otherwise not have
|
|
23
|
+
* the table at all when a peer's record arrives. Provisioning it at install/upgrade time removes
|
|
24
|
+
* that question entirely rather than depending on how replication treats a row for an unknown table.
|
|
25
|
+
*
|
|
26
|
+
* Only the primary key is declared here. The `expiresAt` TTL attribute is not expressible through
|
|
27
|
+
* CreateTableObject, so tokenExchange.ts layers it on with an unconditional `table()` call — the
|
|
28
|
+
* same two-step hdb_certificate_cache uses.
|
|
29
|
+
*
|
|
30
|
+
* KNOWN LIMITATION, shared with hdb_certificate_cache rather than specific to this table: that
|
|
31
|
+
* second step runs on the exchange path, so a node that never performs an exchange — the passive
|
|
32
|
+
* members of a cluster, which is most of them when CI always targets one endpoint — has the table
|
|
33
|
+
* from this directive but never registers `expiresAt` locally. Replicated replay rows still land
|
|
34
|
+
* there (that is what `audit: true` buys) but get no eviction, so the table grows on exactly the
|
|
35
|
+
* nodes doing no work. Rows are small and bounded by exchange volume, so this is slow rather than
|
|
36
|
+
* dangerous. Fixing it properly means installing the TTL at system-table setup instead of on first
|
|
37
|
+
* use, which is a change to how every lazily-extended system table is provisioned — worth doing
|
|
38
|
+
* once, for both tables, rather than special-casing this one.
|
|
39
|
+
*/
|
|
40
|
+
async function createHdbOidcTokenUseIfMissing() {
|
|
41
|
+
if (databases.system?.[OIDC_TOKEN_USE_TABLE]) {
|
|
42
|
+
hdbLogger.info(`system.${OIDC_TOKEN_USE_TABLE} already exists; skipping create.`);
|
|
43
|
+
await patchIsHashAttribute(OIDC_TOKEN_USE_TABLE);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
hdbLogger.info(`Creating system.${OIDC_TOKEN_USE_TABLE} table for OIDC replay protection.`);
|
|
48
|
+
|
|
49
|
+
const CreateTableObject =
|
|
50
|
+
require('../../dataLayer/CreateTableObject').default || require('../../dataLayer/CreateTableObject');
|
|
51
|
+
const schema = (systemSchema as any)[OIDC_TOKEN_USE_TABLE];
|
|
52
|
+
if (!schema) {
|
|
53
|
+
throw new Error(`systemSchema.${OIDC_TOKEN_USE_TABLE} is missing; cannot run 5.3.0 directive.`);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
initPaths.initSystemSchemaPaths(terms.SYSTEM_SCHEMA_NAME, OIDC_TOKEN_USE_TABLE);
|
|
57
|
+
const createTable = new (CreateTableObject as any)(
|
|
58
|
+
terms.SYSTEM_SCHEMA_NAME,
|
|
59
|
+
OIDC_TOKEN_USE_TABLE,
|
|
60
|
+
schema.hash_attribute
|
|
61
|
+
);
|
|
62
|
+
createTable.attributes = schema.attributes;
|
|
63
|
+
const primaryKeyAttribute = createTable.attributes.find(({ attribute }) => attribute === schema.hash_attribute);
|
|
64
|
+
if (primaryKeyAttribute) primaryKeyAttribute.isPrimaryKey = true;
|
|
65
|
+
// Must match `"audit": true` in systemSchema.json — and here auditing is not cosmetic: it is the
|
|
66
|
+
// replication change feed, without which replay protection would be node-local.
|
|
67
|
+
createTable.audit = true;
|
|
68
|
+
|
|
69
|
+
await bridge.createTable(OIDC_TOKEN_USE_TABLE, createTable);
|
|
70
|
+
await patchIsHashAttribute(OIDC_TOKEN_USE_TABLE);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
async function createHdbOidcTrustIfMissing() {
|
|
74
|
+
if (databases.system?.[OIDC_TRUST_TABLE]) {
|
|
75
|
+
hdbLogger.info(`system.${OIDC_TRUST_TABLE} already exists; skipping create.`);
|
|
76
|
+
await patchIsHashAttribute(OIDC_TRUST_TABLE);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
hdbLogger.info(`Creating system.${OIDC_TRUST_TABLE} table for OIDC trusted publishing.`);
|
|
81
|
+
|
|
82
|
+
const CreateTableObject =
|
|
83
|
+
require('../../dataLayer/CreateTableObject').default || require('../../dataLayer/CreateTableObject');
|
|
84
|
+
const schema = (systemSchema as any)[OIDC_TRUST_TABLE];
|
|
85
|
+
if (!schema) {
|
|
86
|
+
throw new Error(`systemSchema.${OIDC_TRUST_TABLE} is missing; cannot run 5.3.0 directive.`);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
initPaths.initSystemSchemaPaths(terms.SYSTEM_SCHEMA_NAME, OIDC_TRUST_TABLE);
|
|
90
|
+
const createTable = new (CreateTableObject as any)(terms.SYSTEM_SCHEMA_NAME, OIDC_TRUST_TABLE, schema.hash_attribute);
|
|
91
|
+
createTable.attributes = schema.attributes;
|
|
92
|
+
const primaryKeyAttribute = createTable.attributes.find(({ attribute }) => attribute === schema.hash_attribute);
|
|
93
|
+
if (primaryKeyAttribute) primaryKeyAttribute.isPrimaryKey = true;
|
|
94
|
+
// Must match `"audit": true` in systemSchema.json, or the fresh-install and upgrade paths diverge.
|
|
95
|
+
createTable.audit = true;
|
|
96
|
+
|
|
97
|
+
await bridge.createTable(OIDC_TRUST_TABLE, createTable);
|
|
98
|
+
await patchIsHashAttribute(OIDC_TRUST_TABLE);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Ensure a table's __dbis__ primary-key entry carries is_hash_attribute: true.
|
|
103
|
+
*
|
|
104
|
+
* harperdb@4.x reads is_hash_attribute from __dbis__ to derive the LMDB DBI open flags; without it
|
|
105
|
+
* the DBI is opened with the opposite flags (DUPSORT set) and LMDB throws MDB_INCOMPATIBLE, breaking
|
|
106
|
+
* downgrade — the same guard 5-1-0.ts and 5-2-0.ts apply to their tables. Both tables created here
|
|
107
|
+
* go through the identical CreateTableObject + bridge.createTable path, so both need it; exempting
|
|
108
|
+
* one would be a silent asymmetry rather than a decision. Idempotent: no-op when already set.
|
|
109
|
+
*/
|
|
110
|
+
async function patchIsHashAttribute(tableName: string) {
|
|
111
|
+
const systemTable = (databases as any).system?.[tableName];
|
|
112
|
+
if (!systemTable?.dbisDB) return;
|
|
113
|
+
|
|
114
|
+
const dbiName = `${tableName}/`;
|
|
115
|
+
const primaryAttr = systemTable.dbisDB.getSync(dbiName);
|
|
116
|
+
if (!primaryAttr || primaryAttr.is_hash_attribute) return; // already correct
|
|
117
|
+
|
|
118
|
+
primaryAttr.is_hash_attribute = true;
|
|
119
|
+
await systemTable.dbisDB.put(dbiName, primaryAttr);
|
|
120
|
+
hdbLogger.info(
|
|
121
|
+
`Patched system.${tableName} __dbis__ entry with is_hash_attribute=true for harperdb@4.x downgrade compatibility.`
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const directive530 = {
|
|
126
|
+
version: '5.3.0',
|
|
127
|
+
description: 'create system.hdb_oidc_trust and system.hdb_oidc_token_use tables for OIDC trusted publishing',
|
|
128
|
+
sync_functions: [] as Array<() => unknown>,
|
|
129
|
+
async_functions: [createHdbOidcTrustIfMissing, createHdbOidcTokenUseIfMissing] as Array<() => Promise<unknown>>,
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
export default [directive530];
|
|
@@ -11,13 +11,14 @@ import * as hdbTerms from '../../utility/hdbTerms.ts';
|
|
|
11
11
|
import hdbLog from '../../utility/logging/harper_logger.ts';
|
|
12
12
|
import directive510 from './5-1-0.ts';
|
|
13
13
|
import directive520 from './5-2-0.ts';
|
|
14
|
+
import directive530 from './5-3-0.ts';
|
|
14
15
|
const { DATA_VERSION, UPGRADE_VERSION } = hdbTerms.UPGRADE_JSON_FIELD_NAMES_ENUM as any;
|
|
15
16
|
|
|
16
17
|
let versions: any = new Map();
|
|
17
18
|
|
|
18
19
|
// All directive modules export an array of { version, sync_functions, async_functions }.
|
|
19
20
|
// New directives must be imported above and registered here.
|
|
20
|
-
for (const directive of [...directive510, ...directive520]) {
|
|
21
|
+
for (const directive of [...directive510, ...directive520, ...directive530]) {
|
|
21
22
|
versions.set(directive.version, directive);
|
|
22
23
|
}
|
|
23
24
|
|
|
@@ -34,7 +34,8 @@ export async function callOperationFunctionAsAwait(
|
|
|
34
34
|
if (
|
|
35
35
|
functionInput.operation === terms.OPERATIONS_ENUM.INSERT ||
|
|
36
36
|
functionInput.operation === terms.OPERATIONS_ENUM.UPDATE ||
|
|
37
|
-
functionInput.operation === terms.OPERATIONS_ENUM.UPSERT
|
|
37
|
+
functionInput.operation === terms.OPERATIONS_ENUM.UPSERT ||
|
|
38
|
+
functionInput.operation === terms.OPERATIONS_ENUM.PUT
|
|
38
39
|
) {
|
|
39
40
|
delete result.new_attributes;
|
|
40
41
|
delete result.txn_time;
|
package/utility/common_utils.ts
CHANGED
|
@@ -739,6 +739,11 @@ export function getEnvCliRootPath() {
|
|
|
739
739
|
* This is used for running HDB without a boot file
|
|
740
740
|
*/
|
|
741
741
|
let noBootFileChecked;
|
|
742
|
+
// test support: the memoized result is derived from the ROOTPATH env var, so a test that
|
|
743
|
+
// clears that variable for its own scope must also drop a value cached while it was set
|
|
744
|
+
export function resetNoBootFileCache() {
|
|
745
|
+
noBootFileChecked = undefined;
|
|
746
|
+
}
|
|
742
747
|
export function noBootFile() {
|
|
743
748
|
if (noBootFileChecked) return noBootFileChecked;
|
|
744
749
|
const cliEnvRoot = getEnvCliRootPath();
|
|
@@ -828,16 +833,36 @@ export function httpRequest(options: any, data: any): Promise<http.IncomingMessa
|
|
|
828
833
|
});
|
|
829
834
|
}
|
|
830
835
|
|
|
836
|
+
/**
|
|
837
|
+
* Which database an operation request targets: `database` wins over the legacy `schema`, and a
|
|
838
|
+
* request that names neither targets the default database.
|
|
839
|
+
*
|
|
840
|
+
* The single source of truth for that question. Authorization has to answer it identically to the
|
|
841
|
+
* handlers — it runs first, and if the two disagree then the permissions checked are not the
|
|
842
|
+
* permissions for the write that happens. Two divergences between this and the copy that used to
|
|
843
|
+
* live in `verifyPerms` (`schema ?? database`) were each exploitable on their own: nullish
|
|
844
|
+
* coalescing let a falsy-but-present `database: 0` through where this defaults, and the reversed
|
|
845
|
+
* precedence let a request authorize against `schema` while the handler wrote `database`.
|
|
846
|
+
*
|
|
847
|
+
* Deliberately falsy rather than nullish: a `database` of `0` or `''` is not a database, and
|
|
848
|
+
* `Joi.number()` is an accepted type for the field, so `0` reaches here validated.
|
|
849
|
+
*/
|
|
850
|
+
export function resolveTargetDatabase(req: any): string {
|
|
851
|
+
return req.database || req.schema || terms.DEFAULT_DATABASE_NAME;
|
|
852
|
+
}
|
|
853
|
+
|
|
831
854
|
/**
|
|
832
855
|
* Will set default schema/database or set database to schema
|
|
833
856
|
* @param req
|
|
834
857
|
*/
|
|
835
858
|
export function transformReq(req: any) {
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
859
|
+
const database = resolveTargetDatabase(req);
|
|
860
|
+
// Only write when it would change something. The previous implementation left `req.schema` alone
|
|
861
|
+
// whenever it was already the resolved value, and an unconditional assignment is not equivalent:
|
|
862
|
+
// re-assigning an identical value still throws on a frozen or sealed object under strict mode,
|
|
863
|
+
// which every module here is. Nothing is known to pass one, but a write that cannot change the
|
|
864
|
+
// outcome is not worth the failure mode.
|
|
865
|
+
if (req.schema !== database) req.schema = database;
|
|
841
866
|
}
|
|
842
867
|
|
|
843
868
|
export function convertToMS(interval: any) {
|
|
@@ -105,3 +105,15 @@ export function deriveGitSecretName(component: string, host: string): string {
|
|
|
105
105
|
const componentKey = String(component).replace(/[^\w.-]+/g, '_');
|
|
106
106
|
return `deploy.${componentKey}.git.${hostKey}`;
|
|
107
107
|
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* The root config namespace holds core settings sections and application entries side by side, so
|
|
111
|
+
* an application deployed under one of these names overwrites the section and fails the next boot's
|
|
112
|
+
* config validation. Only `sql` is listed: it is the one section whose schema is closed to unknown
|
|
113
|
+
* keys, so it is the one a stray application entry breaks.
|
|
114
|
+
*/
|
|
115
|
+
export const RESERVED_COMPONENT_NAMES = new Set(['sql']);
|
|
116
|
+
|
|
117
|
+
export function isReservedComponentName(project: string): boolean {
|
|
118
|
+
return typeof project === 'string' && RESERVED_COMPONENT_NAMES.has(project);
|
|
119
|
+
}
|
|
@@ -307,13 +307,9 @@ export function initTestEnvironment(testConfigObj: any = {}) {
|
|
|
307
307
|
setProperty(hdbTerms.HDB_SETTINGS_NAMES.LOG_PATH_KEY, path.join(TEST_HDB_PATH, 'log'));
|
|
308
308
|
setProperty(hdbTerms.HDB_SETTINGS_NAMES.LOG_DAILY_ROTATE_KEY, false);
|
|
309
309
|
setProperty(hdbTerms.HDB_SETTINGS_NAMES.HDB_ROOT_KEY, TEST_HDB_PATH);
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
(globalThis as any).databases.system?.hdb_user?.primaryStore?.path;
|
|
314
|
-
if (systemPath) {
|
|
315
|
-
setProperty(hdbTerms.CONFIG_PARAMS.DATABASES, { system: { path: path.dirname(systemPath) } });
|
|
316
|
-
}
|
|
310
|
+
// same storage layout the unit-test preload pins (see unitTests/mocha.init.js): a
|
|
311
|
+
// re-init through this function must not detach databases seeded under <root>/database
|
|
312
|
+
setProperty(hdbTerms.CONFIG_PARAMS.STORAGE_PATH, path.join(TEST_HDB_PATH, 'database'));
|
|
317
313
|
|
|
318
314
|
if (https_enabled) {
|
|
319
315
|
setProperty(hdbTerms.CONFIG_PARAMS.HTTP_SECUREPORT, get(hdbTerms.CONFIG_PARAMS.HTTP_PORT));
|
|
@@ -517,6 +517,7 @@ const rocksDBDatabaseLevelStats = new Set<string>([
|
|
|
517
517
|
'numberKeysWritten',
|
|
518
518
|
'numberReseeksIteration',
|
|
519
519
|
'numRunningFlushes',
|
|
520
|
+
'numSnapshots',
|
|
520
521
|
'oldestSnapshotTime',
|
|
521
522
|
'stallMicros',
|
|
522
523
|
'txnOverheadMutexOldCommitMap',
|
|
@@ -547,6 +548,12 @@ type RocksDBStats = {
|
|
|
547
548
|
numberKeysWritten: number;
|
|
548
549
|
numberReseeksIteration: number;
|
|
549
550
|
numRunningFlushes: number;
|
|
551
|
+
// Live RocksDB snapshots for this database. In-flight reads legitimately hold one, so what
|
|
552
|
+
// matters is a count that stays nonzero while nothing is reading: obsolete versions behind the
|
|
553
|
+
// oldest snapshot cannot be discarded for as long as it is held (#2107). oldestSnapshotTime
|
|
554
|
+
// alone can't show accrual — it stops moving once the oldest snapshot is pinned.
|
|
555
|
+
// Optional: rocksdb-js 2.7.1 does not yet report rocksdb.num-snapshots.
|
|
556
|
+
numSnapshots?: number;
|
|
550
557
|
oldestSnapshotTime: number;
|
|
551
558
|
stallMicros: number;
|
|
552
559
|
txnOverheadMutexOldCommitMap: number;
|
|
@@ -132,6 +132,8 @@ const OPERATION_AUTH_ERROR_MSGS = {
|
|
|
132
132
|
OP_IS_SU_ONLY: (op) => `Operation '${op}' is restricted to 'super_user' roles`,
|
|
133
133
|
OP_NOT_FOUND: (op) => `Operation '${op}' not found`,
|
|
134
134
|
OP_NOT_IN_OPERATIONS: (op) => `Operation '${op}' is not permitted for this role's operations configuration`,
|
|
135
|
+
PUT_WITH_ATTRIBUTE_PERMS: (schema, table) =>
|
|
136
|
+
`'put' is not permitted for a role with attribute permissions on '${schema}.${table}', because replacing a record removes the attributes the request omits and those removals cannot be checked against attribute permissions. Use 'update' or 'upsert' to merge, or a REST PUT, which restores attributes the role may not update.`,
|
|
135
137
|
OPERATIONS_MUST_BE_ARRAY: "Permission 'operations' must be an array of operation names or group names",
|
|
136
138
|
INVALID_OPERATIONS_OP: (op) =>
|
|
137
139
|
`Invalid operations value '${op}'. Must be a valid operation name or group (e.g. 'read_only').`,
|
|
@@ -234,6 +236,8 @@ const CUSTOM_FUNCTIONS_ERROR_MSGS = {
|
|
|
234
236
|
NO_FILE: 'File does not exist',
|
|
235
237
|
BAD_FILE_NAME: 'File name can only contain alphanumeric, dash and underscore characters',
|
|
236
238
|
BAD_PROJECT_NAME: 'Project name can only contain alphanumeric, dash and underscores characters',
|
|
239
|
+
RESERVED_PROJECT_NAME: (project: string) =>
|
|
240
|
+
`Component name '${project}' is reserved for Harper's '${project}' configuration section; deploy under a different name`,
|
|
237
241
|
BAD_PACKAGE: 'Packaged project must be base64-encoded tar file of project directory',
|
|
238
242
|
DROP_FUNCTION: 'Error dropping custom function, check the log for more details',
|
|
239
243
|
ADD_FUNCTION: 'Error adding custom function project, check the log for more details',
|
|
@@ -85,6 +85,35 @@ export class IndexRebuildingError extends ServerError {
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
/**
|
|
89
|
+
* Thrown when a write transaction's commit kept losing write-intent conflicts past its queue-time
|
|
90
|
+
* budget (`storage.maxTransactionQueueTime`, or the transaction's own larger `timeoutBudget`) and
|
|
91
|
+
* Harper abandoned it rather than let the request wait on an intent holder that may never release
|
|
92
|
+
* (issue #2450). `retryable` is false when part of the transaction already landed durably — the
|
|
93
|
+
* caller must not replay a request whose earlier store committed.
|
|
94
|
+
*/
|
|
95
|
+
export class TransactionCommitConflictTimeoutError extends ServerError {
|
|
96
|
+
code: string;
|
|
97
|
+
retryable: boolean;
|
|
98
|
+
constructor(message: string, retryable: boolean) {
|
|
99
|
+
super(message, 503);
|
|
100
|
+
this.name = 'TransactionCommitConflictTimeoutError';
|
|
101
|
+
this.code = 'TRANSACTION_COMMIT_CONFLICT_TIMEOUT';
|
|
102
|
+
this.retryable = retryable;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export class UpdateAttributesLockTimeoutError extends ServerError {
|
|
107
|
+
code: string;
|
|
108
|
+
retryable: boolean;
|
|
109
|
+
constructor(message: string) {
|
|
110
|
+
super(message, 503);
|
|
111
|
+
this.name = 'UpdateAttributesLockTimeoutError';
|
|
112
|
+
this.code = 'UPDATE_ATTRIBUTES_LOCK_TIMEOUT';
|
|
113
|
+
this.retryable = true;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
88
117
|
/** One structured validation failure. `path` is dot-scoped (`body.price`, `query.sort`, `params.id`). */
|
|
89
118
|
export interface ValidationIssue {
|
|
90
119
|
/** Where the failure occurred, e.g. `body.price`, `query.expand`, `params.id`. */
|
package/utility/hdbTerms.ts
CHANGED
|
@@ -155,6 +155,9 @@ export const MAX_SET_TIMEOUT_MS = 2147483647;
|
|
|
155
155
|
/** Harper File Permissions Mode */
|
|
156
156
|
export const HDB_FILE_PERMISSIONS = 0o700;
|
|
157
157
|
|
|
158
|
+
/** Smallest `threads.maxHeapMemory` (MB) a worker thread is accepted on — see server/threads/threadHeapMemory.ts */
|
|
159
|
+
export const MIN_THREAD_HEAP_MEMORY_MB = 64;
|
|
160
|
+
|
|
158
161
|
/** Database directory */
|
|
159
162
|
export const DATABASES_DIR_NAME = 'database';
|
|
160
163
|
/** Suffix for in-progress LMDB→RocksDB migration staging directories: excluded from database
|
|
@@ -211,6 +214,8 @@ export const SYSTEM_TABLE_NAMES = {
|
|
|
211
214
|
DEPLOYMENT_TABLE_NAME: 'hdb_deployment',
|
|
212
215
|
AGENT_SESSION_TABLE_NAME: 'hdb_agent_session',
|
|
213
216
|
SECRET_TABLE_NAME: 'hdb_secret',
|
|
217
|
+
OIDC_TRUST_TABLE_NAME: 'hdb_oidc_trust',
|
|
218
|
+
OIDC_TOKEN_USE_TABLE_NAME: 'hdb_oidc_token_use',
|
|
214
219
|
} as const;
|
|
215
220
|
|
|
216
221
|
/** Hash attribute for the system info table */
|
|
@@ -245,6 +250,7 @@ export const OPERATIONS_ENUM = {
|
|
|
245
250
|
INSERT: 'insert',
|
|
246
251
|
UPDATE: 'update',
|
|
247
252
|
UPSERT: 'upsert',
|
|
253
|
+
PUT: 'put',
|
|
248
254
|
SEARCH_BY_CONDITIONS: 'search_by_conditions',
|
|
249
255
|
SEARCH_BY_HASH: 'search_by_hash',
|
|
250
256
|
SEARCH_BY_ID: 'search_by_id',
|
|
@@ -348,6 +354,10 @@ export const OPERATIONS_ENUM = {
|
|
|
348
354
|
LIST_SECRETS: 'list_secrets',
|
|
349
355
|
DELETE_SECRET: 'delete_secret',
|
|
350
356
|
GET_SECRETS_PUBLIC_KEY: 'get_secrets_public_key',
|
|
357
|
+
ADD_OIDC_TRUST: 'add_oidc_trust',
|
|
358
|
+
LIST_OIDC_TRUST: 'list_oidc_trust',
|
|
359
|
+
DROP_OIDC_TRUST: 'drop_oidc_trust',
|
|
360
|
+
EXCHANGE_OIDC_TOKEN: 'exchange_oidc_token',
|
|
351
361
|
GET_DEPLOYMENT_PAYLOAD: 'get_deployment_payload',
|
|
352
362
|
DELETE_DEPLOYMENT_PAYLOAD: 'delete_deployment_payload',
|
|
353
363
|
AGENT_PROMPT: 'agent_prompt',
|
|
@@ -683,9 +693,11 @@ export const CONFIG_PARAMS = {
|
|
|
683
693
|
STORAGE_MAXTRANSACTIONOPENTIME: 'storage_maxTransactionOpenTime',
|
|
684
694
|
STORAGE_MAX_READ_TRANSACTION_OPEN_TIME: 'storage_maxReadTransactionOpenTime',
|
|
685
695
|
STORAGE_DEBUGLONGTRANSACTIONS: 'storage_debugLongTransactions',
|
|
696
|
+
STORAGE_LONGTRANSACTIONREPORTTHRESHOLD: 'storage_longTransactionReportThreshold',
|
|
686
697
|
STORAGE_PATH: 'storage_path',
|
|
687
698
|
STORAGE_BACKUPPATH: 'storage_backupPath',
|
|
688
699
|
STORAGE_BLOBPATHS: 'storage_blobPaths',
|
|
700
|
+
STORAGE_BLOBS_COMPRESSION: 'storage_blobs_compression',
|
|
689
701
|
STORAGE_BLOBCLEANUPSPEED: 'storage_blobCleanupSpeed',
|
|
690
702
|
STORAGE_BLOBREADTIMEOUT: 'storage_blobReadTimeout',
|
|
691
703
|
STORAGE_BLOBRETENTION: 'storage_blobRetention',
|
|
@@ -730,6 +742,10 @@ export const CONFIG_PARAMS = {
|
|
|
730
742
|
CLONED: 'cloned',
|
|
731
743
|
NODE_HOSTNAME: 'node_hostname',
|
|
732
744
|
NODE_URL: 'node_url',
|
|
745
|
+
SQL_ENGINE: 'sql_engine',
|
|
746
|
+
SQL_ALLOWFULLSCAN: 'sql_allowFullScan',
|
|
747
|
+
SQL_MAXSORTROWS: 'sql_maxSortRows',
|
|
748
|
+
SQL_MAXHASHROWS: 'sql_maxHashRows',
|
|
733
749
|
} as const;
|
|
734
750
|
|
|
735
751
|
/**
|
|
@@ -926,6 +942,7 @@ export const JWT_ENUM = {
|
|
|
926
942
|
export const ITC_EVENT_TYPES = {
|
|
927
943
|
SHUTDOWN: 'shutdown',
|
|
928
944
|
CHILD_STARTED: 'child_started',
|
|
945
|
+
CHILD_STARTUP_PHASE: 'child_startup_phase',
|
|
929
946
|
CHILD_STOPPED: 'child_stopped',
|
|
930
947
|
SCHEMA: 'schema',
|
|
931
948
|
USER: 'user',
|