@harperfast/harper 5.2.13 → 5.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent/mcpTools.ts +1 -1
- package/agent/session.ts +25 -14
- package/bin/cliOperations.ts +58 -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 +120 -4
- package/bin/run.ts +6 -11
- package/bin/upgrade.js +7 -3
- package/bin/workloadIdentity.ts +119 -0
- package/components/Application.ts +3436 -242
- package/components/ApplicationScope.ts +8 -0
- package/components/EntryHandler.ts +59 -39
- package/components/OptionsWatcher.ts +440 -98
- package/components/RuntimeModuleTracker.ts +38 -7
- package/components/Scope.ts +56 -15
- package/components/awaitRestart.ts +84 -0
- package/components/componentLoader.ts +381 -32
- package/components/componentPreparationLock.ts +16 -5
- package/components/deploymentOperations.ts +4 -1
- package/components/deploymentRecorder.ts +9 -2
- 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 +537 -113
- package/components/operationsValidation.js +98 -3
- package/components/packageComponent.ts +25 -1
- package/components/requestRestart.ts +11 -0
- package/components/status/ComponentStatusRegistry.ts +59 -0
- package/config/RootConfigWatcher.ts +240 -40
- package/config/configReadRetry.ts +62 -0
- package/config/configUtils.ts +357 -48
- package/config/harperConfigEnvVars.ts +170 -27
- package/config/parseConfigFile.ts +34 -0
- package/config/readConfigFileSync.ts +44 -0
- package/config/watcherArming.ts +59 -0
- package/config-root.schema.json +33 -0
- package/dataLayer/blobBackup.ts +160 -50
- package/dataLayer/delete.ts +6 -1
- package/dataLayer/harperBridge/ResourceBridge.ts +80 -10
- 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 +61 -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 +91 -6
- 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 +235 -17
- package/dist/components/Application.js +3038 -238
- 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 +4 -0
- package/dist/components/OptionsWatcher.js +440 -99
- 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 +52 -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 +313 -24
- 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/deploymentOperations.js +4 -1
- package/dist/components/deploymentOperations.js.map +1 -1
- package/dist/components/deploymentRecorder.d.ts +4 -2
- package/dist/components/deploymentRecorder.js +1 -0
- package/dist/components/deploymentRecorder.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.d.ts +28 -0
- package/dist/components/operations.js +476 -113
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.js +97 -3
- package/dist/components/operationsValidation.js.map +1 -1
- package/dist/components/packageComponent.js +24 -0
- package/dist/components/packageComponent.js.map +1 -1
- package/dist/components/requestRestart.d.ts +1 -0
- package/dist/components/requestRestart.js +7 -0
- package/dist/components/requestRestart.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 +9 -1
- package/dist/config/RootConfigWatcher.js +228 -37
- package/dist/config/RootConfigWatcher.js.map +1 -1
- package/dist/config/configReadRetry.d.ts +8 -0
- package/dist/config/configReadRetry.js +62 -0
- package/dist/config/configReadRetry.js.map +1 -0
- package/dist/config/configUtils.d.ts +11 -2
- package/dist/config/configUtils.js +304 -47
- 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/config/parseConfigFile.d.ts +4 -0
- package/dist/config/parseConfigFile.js +35 -0
- package/dist/config/parseConfigFile.js.map +1 -0
- package/dist/config/readConfigFileSync.d.ts +1 -0
- package/dist/config/readConfigFileSync.js +47 -0
- package/dist/config/readConfigFileSync.js.map +1 -0
- package/dist/config/watcherArming.d.ts +15 -0
- package/dist/config/watcherArming.js +59 -0
- package/dist/config/watcherArming.js.map +1 -0
- 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 +72 -12
- 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 +2 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/json/systemSchema.json +55 -0
- package/dist/resources/DatabaseTransaction.d.ts +77 -0
- package/dist/resources/DatabaseTransaction.js +586 -54
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/LMDBTransaction.d.ts +2 -1
- package/dist/resources/LMDBTransaction.js +43 -6
- package/dist/resources/LMDBTransaction.js.map +1 -1
- package/dist/resources/PrimaryRocksDatabase.d.ts +1 -0
- package/dist/resources/PrimaryRocksDatabase.js +49 -5
- package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
- package/dist/resources/RecordEncoder.d.ts +20 -0
- package/dist/resources/RecordEncoder.js +110 -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 +117 -24
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +28 -1
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/RocksIndexStore.d.ts +6 -1
- package/dist/resources/RocksIndexStore.js +24 -9
- package/dist/resources/RocksIndexStore.js.map +1 -1
- package/dist/resources/RocksTransactionLogStore.d.ts +24 -1
- package/dist/resources/RocksTransactionLogStore.js +160 -49
- package/dist/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/resources/Table.d.ts +165 -10
- package/dist/resources/Table.js +1805 -303
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/write.js +10 -3
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/auditStore.d.ts +181 -2
- package/dist/resources/auditStore.js +640 -29
- 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/dataLoader.js +3 -4
- package/dist/resources/dataLoader.js.map +1 -1
- package/dist/resources/databases.d.ts +157 -14
- package/dist/resources/databases.js +1462 -325
- 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/derivedIndexRegistry.d.ts +5 -0
- package/dist/resources/derivedIndexRegistry.js +68 -0
- package/dist/resources/derivedIndexRegistry.js.map +1 -0
- package/dist/resources/derivedIndexRuntime.d.ts +215 -0
- package/dist/resources/derivedIndexRuntime.js +2027 -0
- package/dist/resources/derivedIndexRuntime.js.map +1 -0
- package/dist/resources/graphql.d.ts +1 -1
- package/dist/resources/graphql.js +52 -16
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +103 -9
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +854 -41
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/indexes/hnswDerivedIndex.d.ts +67 -0
- package/dist/resources/indexes/hnswDerivedIndex.js +464 -0
- package/dist/resources/indexes/hnswDerivedIndex.js.map +1 -0
- package/dist/resources/indexes/hnswPlaneBinding.d.ts +65 -0
- package/dist/resources/indexes/hnswPlaneBinding.js +91 -0
- package/dist/resources/indexes/hnswPlaneBinding.js.map +1 -0
- 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/nodeIdMapping.d.ts +5 -0
- package/dist/resources/nodeIdMapping.js +49 -0
- package/dist/resources/nodeIdMapping.js.map +1 -1
- package/dist/resources/recordLock.d.ts +123 -0
- package/dist/resources/recordLock.js +315 -0
- package/dist/resources/recordLock.js.map +1 -0
- package/dist/resources/recordLockCoordinator.d.ts +557 -0
- package/dist/resources/recordLockCoordinator.js +2565 -0
- package/dist/resources/recordLockCoordinator.js.map +1 -0
- package/dist/resources/replayLogs.d.ts +14 -1
- package/dist/resources/replayLogs.js +157 -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/replicatedApplyFailure.d.ts +16 -0
- package/dist/resources/replicatedApplyFailure.js +63 -0
- package/dist/resources/replicatedApplyFailure.js.map +1 -0
- package/dist/resources/scheduler/scheduler.js +3 -3
- package/dist/resources/scheduler/scheduler.js.map +1 -1
- package/dist/resources/search.d.ts +10 -4
- package/dist/resources/search.js +283 -37
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/tracked.d.ts +5 -1
- package/dist/resources/tracked.js +74 -23
- package/dist/resources/tracked.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 +77 -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 +106 -2
- 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 +16 -1
- package/dist/server/http.js +122 -17
- 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 +27 -0
- package/dist/server/serverHelpers/Headers.js +145 -1
- package/dist/server/serverHelpers/Headers.js.map +1 -1
- package/dist/server/serverHelpers/NodeAdapterResponse.d.ts +48 -0
- package/dist/server/serverHelpers/NodeAdapterResponse.js +220 -0
- package/dist/server/serverHelpers/NodeAdapterResponse.js.map +1 -0
- package/dist/server/serverHelpers/Request.d.ts +5 -10
- package/dist/server/serverHelpers/Request.js +38 -136
- package/dist/server/serverHelpers/Request.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.d.ts +11 -0
- package/dist/server/serverHelpers/contentTypes.js +221 -40
- 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 +178 -29
- 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 +17 -1
- package/dist/server/storageReclamation.js.map +1 -1
- package/dist/server/threads/isolatedApplications.d.ts +47 -0
- package/dist/server/threads/isolatedApplications.js +171 -0
- package/dist/server/threads/isolatedApplications.js.map +1 -0
- 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/logRotationTransport.d.ts +1 -0
- package/dist/server/threads/logRotationTransport.js +33 -0
- package/dist/server/threads/logRotationTransport.js.map +1 -0
- package/dist/server/threads/manageThreads.d.ts +83 -3
- package/dist/server/threads/manageThreads.js +769 -75
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/socketRouter.d.ts +1 -0
- package/dist/server/threads/socketRouter.js +277 -31
- 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 +76 -22
- 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 +33 -0
- package/dist/utility/errors/hdbError.js +58 -1
- package/dist/utility/errors/hdbError.js.map +1 -1
- package/dist/utility/globalSchema.d.ts +18 -0
- package/dist/utility/hdbTerms.d.ts +18 -0
- package/dist/utility/hdbTerms.js +20 -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 +286 -30
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/logging/logGenerationCoordinator.d.ts +35 -0
- package/dist/utility/logging/logGenerationCoordinator.js +184 -0
- package/dist/utility/logging/logGenerationCoordinator.js.map +1 -0
- package/dist/utility/logging/logRotation.d.ts +46 -0
- package/dist/utility/logging/logRotation.js +365 -0
- package/dist/utility/logging/logRotation.js.map +1 -0
- package/dist/utility/logging/logRotator.d.ts +1 -1
- package/dist/utility/logging/logRotator.js +192 -85
- 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 +11 -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 +41 -0
- package/dist/utility/watcherFallback.js +153 -0
- package/dist/utility/watcherFallback.js.map +1 -1
- package/dist/validation/configValidator.d.ts +12 -0
- package/dist/validation/configValidator.js +205 -75
- 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 +8 -0
- package/json/systemSchema.json +55 -0
- package/npm-shrinkwrap.json +286 -194
- package/package.json +15 -7
- package/resources/DESIGN.md +219 -52
- package/resources/DatabaseTransaction.ts +657 -52
- package/resources/LMDBTransaction.ts +46 -6
- package/resources/PrimaryRocksDatabase.ts +46 -7
- package/resources/RecordEncoder.ts +124 -9
- package/resources/RequestTarget.ts +2 -0
- package/resources/Resource.ts +114 -22
- package/resources/ResourceInterface.ts +31 -0
- package/resources/RocksIndexStore.ts +30 -9
- package/resources/RocksTransactionLogStore.ts +188 -51
- package/resources/Table.ts +1960 -301
- package/resources/analytics/write.ts +10 -3
- package/resources/auditStore.ts +647 -32
- package/resources/blob.ts +1029 -110
- package/resources/branchDatabase.ts +941 -0
- package/resources/crdt.ts +76 -12
- package/resources/dataLoader.ts +3 -4
- package/resources/databases.ts +1584 -320
- package/resources/defineTable.ts +18 -2
- package/resources/derivedIndexRegistry.ts +56 -0
- package/resources/derivedIndexRuntime.ts +2292 -0
- package/resources/graphql.ts +72 -17
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +911 -48
- package/resources/indexes/hnswDerivedIndex.ts +531 -0
- package/resources/indexes/hnswPlaneBinding.ts +174 -0
- package/resources/longLivedTransactions.ts +360 -0
- package/resources/models/backendRegistry.ts +84 -2
- package/resources/models/bootstrap.ts +473 -28
- package/resources/nodeIdMapping.ts +50 -0
- package/resources/recordLock.ts +419 -0
- package/resources/recordLockCoordinator.ts +3043 -0
- package/resources/replayLogs.ts +152 -26
- package/resources/replayLogsGuards.ts +171 -8
- package/resources/replicatedApplyFailure.ts +77 -0
- package/resources/scheduler/scheduler.ts +4 -4
- package/resources/search.ts +288 -46
- package/resources/tracked.ts +73 -22
- 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 +83 -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 +194 -16
- package/server/DurableSubscriptionsSession.ts +71 -11
- package/server/REST.ts +115 -4
- package/server/graphqlQuerying.ts +4 -0
- package/server/http.ts +133 -20
- 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 +135 -0
- package/server/serverHelpers/NodeAdapterResponse.ts +221 -0
- package/server/serverHelpers/Request.ts +33 -131
- package/server/serverHelpers/contentTypes.ts +217 -36
- 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 +232 -40
- package/server/serverHelpers/sharedMessageEncoding.ts +307 -0
- package/server/serverHelpers/uwsServer.ts +17 -2
- package/server/static.ts +23 -29
- package/server/storageReclamation.ts +15 -2
- package/server/threads/isolatedApplications.ts +157 -0
- package/server/threads/itc.js +11 -1
- package/server/threads/logRotationTransport.ts +40 -0
- package/server/threads/manageThreads.js +771 -66
- package/server/threads/socketRouter.ts +291 -30
- package/server/threads/threadHeapMemory.ts +26 -0
- package/server/threads/threadServer.js +73 -22
- package/sqlTranslator/index.ts +31 -8
- package/studio/web/assets/{Chat-4RrB5134.js → Chat-D3j-1yY1.js} +1 -1
- package/studio/web/assets/{FloatingChat-omlNMDcJ.js → FloatingChat-BxJGYcfB.js} +3 -3
- package/studio/web/assets/{apiToken-Bke3wvfZ.js → apiToken-CT55oWOe.js} +1 -1
- package/studio/web/assets/{applications-DvFDYJgK.js → applications-D9Ct9_vm.js} +1 -1
- package/studio/web/assets/{cssMode-C1vRa7zh.js → cssMode-DV8H7VwA.js} +1 -1
- package/studio/web/assets/{editor-3XRWEDWX.js → editor-uatc0unt.js} +1 -1
- package/studio/web/assets/{html-CTY5tdMr.js → html-Bm6D6paN.js} +1 -1
- package/studio/web/assets/{htmlMode-CG1vSD9t.js → htmlMode-CEn7tpLG.js} +1 -1
- package/studio/web/assets/{index-Dfpeofdu.js → index-BIXW6Pu4.js} +5 -5
- package/studio/web/assets/{index.lazy-B1VOIv-t.js → index.lazy-UI7L-Vrk.js} +1 -1
- package/studio/web/assets/{javascript-CJeJzGnI.js → javascript-CJ0G3AFZ.js} +1 -1
- package/studio/web/assets/{jsonMode-CYPBwM82.js → jsonMode-DQADAYEa.js} +1 -1
- package/studio/web/assets/{languageServices-IKH4GUHl.js → languageServices-CAQJXWcI.js} +1 -1
- package/studio/web/assets/{lspLanguageFeatures-BC8_gxKG.js → lspLanguageFeatures-CCQ8P5sY.js} +1 -1
- package/studio/web/assets/{notifications-BfKBpYcq.js → notifications-BbxTU6Aw.js} +1 -1
- package/studio/web/assets/{notifications-DFbArTfC.js → notifications-Cvb3P1lB.js} +1 -1
- package/studio/web/assets/{profile-Q4-T6c-S.js → profile-Yyb7gsvL.js} +1 -1
- package/studio/web/assets/{regions-CtkV0xje.js → regions-OgjGHlU5.js} +1 -1
- package/studio/web/assets/{register-1ZZuMsiA.js → register-6qwNEOY3.js} +2 -2
- package/studio/web/assets/{setComponentFile-ZWLcWv5X.js → setComponentFile-BilDMtgB.js} +1 -1
- package/studio/web/assets/{setup-DWprJyJy.js → setup-J6qJ7OIU.js} +2 -2
- package/studio/web/assets/{status--aNm8isn.js → status-0RWGcfyD.js} +1 -1
- package/studio/web/assets/{toggleHighContrast-Cq_lt3XD.js → toggleHighContrast-BIn-vErT.js} +1 -1
- package/studio/web/assets/{tsMode-pjgytARx.js → tsMode-DgUXku4d.js} +1 -1
- package/studio/web/assets/{typescript-Cdg0mqUh.js → typescript-C9orXcsM.js} +1 -1
- package/studio/web/assets/{useEntityRestURL-RZhaY8Rn.js → useEntityRestURL-BEoXXbUB.js} +1 -1
- package/studio/web/assets/{workers-BgoXIqQe.js → workers-JVzSDmgx.js} +1 -1
- package/studio/web/assets/{xml-BwSeDMiP.js → xml-Cq-S8S4X.js} +1 -1
- package/studio/web/assets/{yaml-DotCUG5l.js → yaml-sfoRdh1M.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 +57 -0
- package/utility/hdbTerms.ts +19 -0
- package/utility/logging/harper_logger.ts +278 -26
- package/utility/logging/logGenerationCoordinator.ts +196 -0
- package/utility/logging/logRotation.ts +367 -0
- package/utility/logging/logRotator.ts +213 -81
- package/utility/nodeIdentity.ts +45 -0
- package/utility/npmUtilities.ts +12 -8
- package/utility/operationPermissions.ts +18 -1
- package/utility/operation_authorization.ts +231 -42
- package/utility/watchPath.ts +63 -0
- package/utility/watcherFallback.ts +148 -0
- package/validation/configValidator.ts +215 -75
- package/validation/installValidator.ts +15 -0
- package/validation/validationWrapper.ts +18 -4
|
@@ -40,10 +40,13 @@ exports.contentTypes = void 0;
|
|
|
40
40
|
exports.registerContentHandlers = registerContentHandlers;
|
|
41
41
|
exports.findBestSerializer = findBestSerializer;
|
|
42
42
|
exports.serialize = serialize;
|
|
43
|
+
exports.getMessageSerializer = getMessageSerializer;
|
|
43
44
|
exports.serializeMessage = serializeMessage;
|
|
44
45
|
exports.asyncSerialization = asyncSerialization;
|
|
45
46
|
exports.hasAsyncSerialization = hasAsyncSerialization;
|
|
46
47
|
exports.getDeserializer = getDeserializer;
|
|
48
|
+
exports.discardSerializedStream = discardSerializedStream;
|
|
49
|
+
exports.waitForStreamStartup = waitForStreamStartup;
|
|
47
50
|
exports.toCsvStream = toCsvStream;
|
|
48
51
|
const JSONStream_ts_1 = require("./JSONStream.js");
|
|
49
52
|
const msgpackr_1 = require("msgpackr");
|
|
@@ -57,6 +60,7 @@ const envMgr = __importStar(require("../../utility/environment/environmentManage
|
|
|
57
60
|
const hdbTerms_ts_1 = require("../../utility/hdbTerms.js");
|
|
58
61
|
const YAML = __importStar(require("yaml"));
|
|
59
62
|
const logger_ts_1 = require("../../utility/logging/logger.js");
|
|
63
|
+
const harper_logger_ts_1 = require("../../utility/logging/harper_logger.js");
|
|
60
64
|
const blob_ts_1 = require("../../resources/blob.js");
|
|
61
65
|
// TODO: Only load this if fastify is loaded
|
|
62
66
|
const fastify_plugin_1 = __importDefault(require("fastify-plugin"));
|
|
@@ -64,6 +68,36 @@ const multipartParser_ts_1 = require("./multipartParser.js");
|
|
|
64
68
|
const SERIALIZATION_BIGINT = envMgr.get(hdbTerms_ts_1.CONFIG_PARAMS.SERIALIZATION_BIGINT) !== false;
|
|
65
69
|
const JSONStringify = SERIALIZATION_BIGINT ? JSONStream_ts_1.stringify : JSON.stringify;
|
|
66
70
|
const JSONParse = SERIALIZATION_BIGINT ? JSONStream_ts_1.parse : JSON.parse;
|
|
71
|
+
const streamStartup = Symbol('streamStartup');
|
|
72
|
+
const serializedStreamError = Symbol('serializedStreamError');
|
|
73
|
+
function streamErrorRecord(error) {
|
|
74
|
+
let name = 'Error';
|
|
75
|
+
let message;
|
|
76
|
+
try {
|
|
77
|
+
const code = error?.code;
|
|
78
|
+
if (typeof code === 'string' || typeof code === 'number')
|
|
79
|
+
name = String(code);
|
|
80
|
+
else if (typeof error?.constructor?.name === 'string')
|
|
81
|
+
name = error.constructor.name;
|
|
82
|
+
else if (typeof error?.name === 'string')
|
|
83
|
+
name = error.name;
|
|
84
|
+
}
|
|
85
|
+
catch { }
|
|
86
|
+
try {
|
|
87
|
+
if (typeof error?.message === 'string')
|
|
88
|
+
message = error.message;
|
|
89
|
+
}
|
|
90
|
+
catch { }
|
|
91
|
+
message ??= (0, harper_logger_ts_1.errorToString)(error);
|
|
92
|
+
const record = { error: name, message };
|
|
93
|
+
try {
|
|
94
|
+
const status = error?.statusCode ?? error?.status;
|
|
95
|
+
if (typeof status === 'number')
|
|
96
|
+
record.status = status;
|
|
97
|
+
}
|
|
98
|
+
catch { }
|
|
99
|
+
return record;
|
|
100
|
+
}
|
|
67
101
|
const PUBLIC_ENCODE_OPTIONS = {
|
|
68
102
|
useRecords: false,
|
|
69
103
|
useToJSON: true,
|
|
@@ -135,9 +169,9 @@ mediaTypes.set('text/yaml', {
|
|
|
135
169
|
q: 0.7,
|
|
136
170
|
});
|
|
137
171
|
const ndjsonHandler = {
|
|
138
|
-
serializeStream(data) {
|
|
172
|
+
serializeStream(data, _response, request) {
|
|
139
173
|
if (data?.[Symbol.iterator] || data?.[Symbol.asyncIterator]) {
|
|
140
|
-
return
|
|
174
|
+
return errorFrameStream(data, (msg) => JSONStringify(msg) + '\n', (error) => JSONStringify({ $harperStreamError: streamErrorRecord(error) }) + '\n', request?.method === 'GET');
|
|
141
175
|
}
|
|
142
176
|
return JSONStringify(data) + '\n';
|
|
143
177
|
},
|
|
@@ -156,11 +190,16 @@ const ndjsonHandler = {
|
|
|
156
190
|
};
|
|
157
191
|
mediaTypes.set('application/x-ndjson', ndjsonHandler);
|
|
158
192
|
mediaTypes.set('application/ndjson', ndjsonHandler);
|
|
193
|
+
function serializeSSEData(data) {
|
|
194
|
+
if (typeof data === 'object')
|
|
195
|
+
return 'data: ' + JSONStringify(data) + '\n';
|
|
196
|
+
return 'data: ' + String(data).replace(/\r\n|\r|\n/g, '\ndata: ') + '\n';
|
|
197
|
+
}
|
|
159
198
|
mediaTypes.set('text/event-stream', {
|
|
160
199
|
// Server-Sent Events (SSE)
|
|
161
|
-
serializeStream: function (iterable) {
|
|
200
|
+
serializeStream: function (iterable, _response, request) {
|
|
162
201
|
// create a readable stream that we use to stream out events from our subscription
|
|
163
|
-
return
|
|
202
|
+
return errorFrameStream(iterable, this.serialize, (error) => this.serialize({ event: 'harper-error', data: streamErrorRecord(error) }), request?.method === 'GET');
|
|
164
203
|
},
|
|
165
204
|
serialize: function (message) {
|
|
166
205
|
if (message.acknowledge)
|
|
@@ -173,26 +212,24 @@ mediaTypes.set('text/event-stream', {
|
|
|
173
212
|
id: message.timestamp,
|
|
174
213
|
};
|
|
175
214
|
}
|
|
176
|
-
|
|
215
|
+
// A non-null top-level `data` or truthy `event` is an SSE envelope, even with sibling fields.
|
|
216
|
+
// `id`/`retry` alone do not open it: `id` is too common a literal-payload field name (e.g. a
|
|
217
|
+
// database record) to safely treat as an SSE-envelope signal.
|
|
218
|
+
if (message.data != null || message.event) {
|
|
177
219
|
let serialized = '';
|
|
178
220
|
if (message.event)
|
|
179
221
|
serialized += 'event: ' + message.event + '\n';
|
|
180
|
-
if (message.data) {
|
|
181
|
-
|
|
182
|
-
if (typeof data === 'object')
|
|
183
|
-
data = JSONStringify(data);
|
|
184
|
-
serialized += 'data: ' + data + '\n';
|
|
222
|
+
if (message.data != null) {
|
|
223
|
+
serialized += serializeSSEData(message.data);
|
|
185
224
|
}
|
|
186
|
-
if (message.id)
|
|
225
|
+
if (message.id != null)
|
|
187
226
|
serialized += 'id: ' + message.id + '\n';
|
|
188
|
-
if (message.retry)
|
|
227
|
+
if (message.retry != null)
|
|
189
228
|
serialized += 'retry: ' + message.retry + '\n';
|
|
190
229
|
return serialized + '\n';
|
|
191
230
|
}
|
|
192
231
|
else {
|
|
193
|
-
|
|
194
|
-
return `data: ${JSONStringify(message)}\n\n`;
|
|
195
|
-
return `data: ${message}\n\n`;
|
|
232
|
+
return serializeSSEData(message) + '\n';
|
|
196
233
|
}
|
|
197
234
|
},
|
|
198
235
|
compressible: false,
|
|
@@ -428,7 +465,10 @@ function serialize(responseData, request, responseObject) {
|
|
|
428
465
|
responseData &&
|
|
429
466
|
(responseData[Symbol.iterator] || responseData[Symbol.asyncIterator]) &&
|
|
430
467
|
serializer.serializer.serializeStream) {
|
|
431
|
-
if (responseData.mapError
|
|
468
|
+
if (responseData.mapError &&
|
|
469
|
+
serializer.type !== 'application/x-ndjson' &&
|
|
470
|
+
serializer.type !== 'application/ndjson' &&
|
|
471
|
+
serializer.type !== 'text/event-stream') {
|
|
432
472
|
// indicate that we want iterator errors to be returned so we can serialize them in a meaningful way, if possible
|
|
433
473
|
const getColumns = responseData.getColumns;
|
|
434
474
|
responseData = responseData.mapError((error) => {
|
|
@@ -439,9 +479,10 @@ function serialize(responseData, request, responseObject) {
|
|
|
439
479
|
});
|
|
440
480
|
responseData.getColumns = getColumns;
|
|
441
481
|
}
|
|
442
|
-
let stream = serializer.serializer.serializeStream(responseData, responseObject);
|
|
482
|
+
let stream = serializer.serializer.serializeStream(responseData, responseObject, request);
|
|
443
483
|
if (canCompress) {
|
|
444
484
|
responseObject.headers.set('Content-Encoding', 'br');
|
|
485
|
+
const uncompressedStream = stream;
|
|
445
486
|
stream = stream.pipe((0, zlib_1.createBrotliCompress)({
|
|
446
487
|
params: {
|
|
447
488
|
[zlib_1.constants.BROTLI_PARAM_MODE]: serializer.type.includes('json') || serializer.type.includes('text')
|
|
@@ -450,6 +491,8 @@ function serialize(responseData, request, responseObject) {
|
|
|
450
491
|
[zlib_1.constants.BROTLI_PARAM_QUALITY]: 2, // go fast
|
|
451
492
|
},
|
|
452
493
|
}));
|
|
494
|
+
if (uncompressedStream[streamStartup])
|
|
495
|
+
stream[streamStartup] = uncompressedStream[streamStartup];
|
|
453
496
|
}
|
|
454
497
|
return stream;
|
|
455
498
|
}
|
|
@@ -469,6 +512,22 @@ function serialize(responseData, request, responseObject) {
|
|
|
469
512
|
return responseBody;
|
|
470
513
|
}
|
|
471
514
|
let asyncSerializations;
|
|
515
|
+
/**
|
|
516
|
+
* Get the message serializer for a request's negotiated content type, memoized on the request.
|
|
517
|
+
* The returned function is the registered per-content-type serializer, so its identity keys the
|
|
518
|
+
* content type. Caching serialized output across requests under that key is only valid because the
|
|
519
|
+
* built-in serializers are pure functions of their argument — a component registering a serializer
|
|
520
|
+
* into `server.contentTypes` whose output depends on anything else would not be shareable.
|
|
521
|
+
* @param request
|
|
522
|
+
*/
|
|
523
|
+
function getMessageSerializer(request) {
|
|
524
|
+
if (!request)
|
|
525
|
+
return JSONStringify;
|
|
526
|
+
let serialize = request.serialize;
|
|
527
|
+
if (!serialize)
|
|
528
|
+
serialize = request.serialize = findBestSerializer(request).serializer.serialize;
|
|
529
|
+
return serialize;
|
|
530
|
+
}
|
|
472
531
|
/**
|
|
473
532
|
* Serialize a message, may be use multiple times (like with WebSockets)
|
|
474
533
|
* @param message
|
|
@@ -480,20 +539,7 @@ function serializeMessage(message, request, inAsyncContinuation) {
|
|
|
480
539
|
return message.data;
|
|
481
540
|
asyncSerializations = inAsyncContinuation ? undefined : [];
|
|
482
541
|
try {
|
|
483
|
-
|
|
484
|
-
if (request) {
|
|
485
|
-
let serialize = request.serialize;
|
|
486
|
-
if (serialize)
|
|
487
|
-
serialized = serialize(message);
|
|
488
|
-
else {
|
|
489
|
-
const serializer = findBestSerializer(request);
|
|
490
|
-
serialize = request.serialize = serializer.serializer.serialize;
|
|
491
|
-
serialized = serialize(message);
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
else {
|
|
495
|
-
serialized = JSONStringify(message);
|
|
496
|
-
}
|
|
542
|
+
const serialized = getMessageSerializer(request)(message);
|
|
497
543
|
if (asyncSerializations?.length > 0)
|
|
498
544
|
// if there were any serialization attempts that must wait for async work to be done, we wait now and then retry the serialization
|
|
499
545
|
return (asyncSerializations.length === 1 ? asyncSerializations[0] : Promise.all(asyncSerializations)).then(() => serializeMessage(message, request, true));
|
|
@@ -615,24 +661,159 @@ function deserializerUnknownType(contentType) {
|
|
|
615
661
|
};
|
|
616
662
|
}
|
|
617
663
|
}
|
|
618
|
-
function
|
|
664
|
+
function errorFrameStream(iterable, transform, serializeError, eager) {
|
|
665
|
+
const transformed = transformIterable(iterable, transform, serializeError, eager);
|
|
666
|
+
const readable = node_stream_1.Readable.from(transformed);
|
|
667
|
+
const startup = transformed[streamStartup];
|
|
668
|
+
startup.cancel = () => readable.destroy();
|
|
669
|
+
readable[streamStartup] = startup;
|
|
670
|
+
return readable;
|
|
671
|
+
}
|
|
672
|
+
function discardSerializedStream(stream) {
|
|
673
|
+
stream?.[streamStartup]?.cancel?.();
|
|
674
|
+
stream?.destroy?.();
|
|
675
|
+
}
|
|
676
|
+
function waitForStreamStartup(stream) {
|
|
677
|
+
const startup = stream?.[streamStartup];
|
|
678
|
+
if (!startup)
|
|
679
|
+
return;
|
|
680
|
+
startup.start();
|
|
681
|
+
return startup.result.then((result) => {
|
|
682
|
+
if (result.failed) {
|
|
683
|
+
startup.abort();
|
|
684
|
+
discardSerializedStream(stream);
|
|
685
|
+
throw result.error;
|
|
686
|
+
}
|
|
687
|
+
});
|
|
688
|
+
}
|
|
689
|
+
function transformIterable(iterable, transform, serializeError, eager) {
|
|
690
|
+
let iterator;
|
|
691
|
+
let terminal = false;
|
|
692
|
+
let first = true;
|
|
693
|
+
let started = false;
|
|
694
|
+
let firstStep;
|
|
695
|
+
let startupSettled = false;
|
|
696
|
+
const startupResult = Promise.withResolvers();
|
|
697
|
+
const errorDecision = Promise.withResolvers();
|
|
698
|
+
let startupTimer;
|
|
699
|
+
const commit = () => {
|
|
700
|
+
if (startupTimer)
|
|
701
|
+
clearImmediate(startupTimer);
|
|
702
|
+
if (!startupSettled) {
|
|
703
|
+
startupSettled = true;
|
|
704
|
+
startupResult.resolve({});
|
|
705
|
+
}
|
|
706
|
+
errorDecision.resolve(true);
|
|
707
|
+
};
|
|
708
|
+
const abort = () => {
|
|
709
|
+
if (startupTimer)
|
|
710
|
+
clearImmediate(startupTimer);
|
|
711
|
+
errorDecision.resolve(false);
|
|
712
|
+
};
|
|
713
|
+
const handleError = async (error) => {
|
|
714
|
+
terminal = true;
|
|
715
|
+
try {
|
|
716
|
+
const returned = iterator.return?.();
|
|
717
|
+
returned?.catch?.(() => { });
|
|
718
|
+
}
|
|
719
|
+
catch { }
|
|
720
|
+
if (!startupSettled)
|
|
721
|
+
startupResult.resolve({ failed: true, error });
|
|
722
|
+
if (!startupSettled && !(await errorDecision.promise))
|
|
723
|
+
return { done: true };
|
|
724
|
+
logger_ts_1.logger.warn?.('Error serializing in stream', (0, harper_logger_ts_1.errorForLog)(error));
|
|
725
|
+
return { value: serializeError(error), done: false, [serializedStreamError]: true };
|
|
726
|
+
};
|
|
727
|
+
const transformStep = (step) => {
|
|
728
|
+
if (step?.[serializedStreamError])
|
|
729
|
+
return step;
|
|
730
|
+
if (terminal)
|
|
731
|
+
return { done: true };
|
|
732
|
+
if (step.done)
|
|
733
|
+
return step;
|
|
734
|
+
try {
|
|
735
|
+
return { value: transform(step.value), done: false };
|
|
736
|
+
}
|
|
737
|
+
catch (error) {
|
|
738
|
+
return handleError(error);
|
|
739
|
+
}
|
|
740
|
+
};
|
|
741
|
+
const getRawNext = () => {
|
|
742
|
+
if (terminal)
|
|
743
|
+
return { done: true };
|
|
744
|
+
let step;
|
|
745
|
+
try {
|
|
746
|
+
step = iterator.next();
|
|
747
|
+
}
|
|
748
|
+
catch (error) {
|
|
749
|
+
return handleError(error);
|
|
750
|
+
}
|
|
751
|
+
if (step.then)
|
|
752
|
+
return step.then(undefined, handleError);
|
|
753
|
+
return step;
|
|
754
|
+
};
|
|
755
|
+
const getNext = () => {
|
|
756
|
+
if (terminal)
|
|
757
|
+
return { done: true };
|
|
758
|
+
let step;
|
|
759
|
+
try {
|
|
760
|
+
step = iterator.next();
|
|
761
|
+
}
|
|
762
|
+
catch (error) {
|
|
763
|
+
return handleError(error);
|
|
764
|
+
}
|
|
765
|
+
if (step.then)
|
|
766
|
+
return step.then(transformStep, handleError);
|
|
767
|
+
return transformStep(step);
|
|
768
|
+
};
|
|
769
|
+
const start = () => {
|
|
770
|
+
if (started)
|
|
771
|
+
return;
|
|
772
|
+
started = true;
|
|
773
|
+
iterator = iterable[Symbol.asyncIterator] ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();
|
|
774
|
+
firstStep = getRawNext();
|
|
775
|
+
Promise.resolve(firstStep).then(() => {
|
|
776
|
+
if (!terminal)
|
|
777
|
+
commit();
|
|
778
|
+
}, () => { });
|
|
779
|
+
// After this turn, the HTTP status can no longer wait for a first item without delaying long-lived streams.
|
|
780
|
+
startupTimer = setImmediate(commit);
|
|
781
|
+
};
|
|
782
|
+
if (eager)
|
|
783
|
+
start();
|
|
619
784
|
return {
|
|
785
|
+
[streamStartup]: {
|
|
786
|
+
result: startupResult.promise,
|
|
787
|
+
abort,
|
|
788
|
+
start,
|
|
789
|
+
},
|
|
620
790
|
[Symbol.asyncIterator]() {
|
|
621
|
-
const iterator = iterable[Symbol.asyncIterator] ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();
|
|
622
791
|
return {
|
|
623
792
|
next() {
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
793
|
+
if (terminal)
|
|
794
|
+
return { done: true };
|
|
795
|
+
if (first) {
|
|
796
|
+
first = false;
|
|
797
|
+
start();
|
|
798
|
+
const step = firstStep;
|
|
799
|
+
firstStep = undefined;
|
|
800
|
+
if (step.then)
|
|
801
|
+
return step.then(transformStep);
|
|
802
|
+
return transformStep(step);
|
|
628
803
|
}
|
|
629
|
-
return
|
|
804
|
+
return getNext();
|
|
630
805
|
},
|
|
631
806
|
return(value) {
|
|
632
|
-
|
|
807
|
+
terminal = true;
|
|
808
|
+
started = true;
|
|
809
|
+
if (!iterator)
|
|
810
|
+
iterator = iterable[Symbol.asyncIterator]
|
|
811
|
+
? iterable[Symbol.asyncIterator]()
|
|
812
|
+
: iterable[Symbol.iterator]?.();
|
|
813
|
+
return iterator?.return?.(value) ?? { value, done: true };
|
|
633
814
|
},
|
|
634
815
|
throw(error) {
|
|
635
|
-
return iterator
|
|
816
|
+
return iterator?.throw?.(error) ?? Promise.reject(error);
|
|
636
817
|
},
|
|
637
818
|
};
|
|
638
819
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentTypes.js","sourceRoot":"","sources":["../../../server/serverHelpers/contentTypes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6MA,0DAuDC;AAkDD,gDA2CC;AAWD,8BAuEC;AASD,4CA6BC;AAOD,gDAGC;AACD,sDAEC;AAsFD,0CAUC;AAgED,kCAgDC;AAtrBD,mDAAiE;AACjE,uCAAoD;AACpD,mCAAwD;AACxD,+BAAuE;AACvE,kEAA+D;AAC/D,2DAA0D;AAC1D,4CAAsC;AACtC,iDAAwD;AACxD,wFAA0E;AAC1E,2DAA0D;AAC1D,2CAA6B;AAC7B,+DAAyD;AACzD,qDAA+C;AAC/C,4CAA4C;AAC5C,oEAAgC;AAChC,6DAA6D;AAC7D,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,2BAAa,CAAC,oBAAoB,CAAC,KAAK,KAAK,CAAC;AACtF,MAAM,aAAa,GAAG,oBAAoB,CAAC,CAAC,CAAC,yBAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AACxE,MAAM,SAAS,GAAG,oBAAoB,CAAC,CAAC,CAAC,qBAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAE5D,MAAM,qBAAqB,GAAG;IAC7B,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,IAAI;CACf,CAAC;AAIF,MAAM,UAAU,GAAG,IAAI,GAAG,EASvB,CAAC;AAES,QAAA,YAAY,GAAG,UAAU,CAAC;AACvC,kBAAM,CAAC,YAAY,GAAG,oBAAmB,CAAC;AAC1C,IAAA,iCAAoB,EAAC,cAAc,EAAE,oBAAY,CAAC,CAAC;AACnD,gEAAgE;AAChE,UAAU,CAAC,GAAG,CAAC,kBAAkB,EAAE;IAClC,eAAe,EAAE,4BAAY;IAC7B,SAAS,EAAE,aAAa;IACxB,WAAW,CAAC,IAAI;QACf,OAAO,SAAS,CAAC,IAAW,CAAC,CAAC;IAC/B,CAAC;IACD,CAAC,EAAE,GAAG;CACN,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,IAAI,gBAAO,CAAC,qBAAqB,CAAC,CAAC;AACvD,UAAU,CAAC,GAAG,CAAC,kBAAkB,EAAE;IAClC,eAAe,CAAC,IAAI;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,qCAAqC;QACnG,OAAO,IAAI,sBAAa,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,SAAS,EAAE,WAAW,CAAC,MAAM;IAC7B,WAAW,EAAE,WAAW,CAAC,MAAM;IAC/B,CAAC,EAAE,CAAC;CACJ,CAAC,CAAC;AACH,UAAU,CAAC,GAAG,CAAC,uBAAuB,EAAE;IACvC,eAAe,CAAC,IAAS;QACxB,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACvF,OAAO,sBAAQ,CAAC,IAAI,CAAC,IAAA,qBAAU,EAAC,IAAI,EAAE,qBAAqB,CAAQ,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAA,eAAI,EAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,SAAS,EAAE,eAAI;IACf,WAAW,EAAE,iBAAM;IACnB,CAAC,EAAE,GAAG;CACN,CAAC,CAAC;AACH,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE;IAC1B,eAAe,CAAC,IAAS,EAAE,QAAkB;QAC5C,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,iCAAiC,CAAC,CAAC;QAC/E,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,SAAS,CAAC,IAAS,EAAE,QAAkB;QACtC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,iCAAiC,CAAC,CAAC;QAC/E,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAAE,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChF,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,CAAC,EAAE,GAAG;CACN,CAAC,CAAC;AACH,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE;IAC5B,SAAS,CAAC,IAAS;QAClB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IACD,eAAe,CAAC,IAAS;QACxB,OAAO,sBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IACD,WAAW,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IACD,CAAC,EAAE,GAAG;CACN,CAAC,CAAC;AAEH,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE;IAC3B,SAAS,CAAC,IAAI;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,CAAC,EAAE,GAAG;CACN,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG;IACrB,eAAe,CAAC,IAAS;QACxB,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7D,OAAO,sBAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC;IACD,SAAS,CAAC,IAAS;QAClB,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC;IACD,WAAW,CAAC,IAAY;QACvB,OAAO,IAAI;aACT,QAAQ,EAAE;aACV,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,CAAC,EAAE,GAAG;CACN,CAAC;AACF,UAAU,CAAC,GAAG,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;AACtD,UAAU,CAAC,GAAG,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;AAEpD,UAAU,CAAC,GAAG,CAAC,mBAAmB,EAAE;IACnC,2BAA2B;IAC3B,eAAe,EAAE,UAAU,QAAQ;QAClC,kFAAkF;QAClF,OAAO,sBAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,SAAS,EAAE,UAAU,OAAO;QAC3B,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5E,kBAAkB;YAClB,OAAO,GAAG;gBACT,IAAI,EAAE,OAAO,CAAC,KAAK;gBACnB,KAAK,EAAE,OAAO,CAAC,IAAI;gBACnB,EAAE,EAAE,OAAO,CAAC,SAAS;aACrB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,KAAK;gBAAE,UAAU,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YAClE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACzD,UAAU,IAAI,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;YACtC,CAAC;YACD,IAAI,OAAO,CAAC,EAAE;gBAAE,UAAU,IAAI,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC;YACzD,IAAI,OAAO,CAAC,KAAK;gBAAE,UAAU,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YAClE,OAAO,UAAU,GAAG,IAAI,CAAC;QAC1B,CAAC;aAAM,CAAC;YACP,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9E,OAAO,SAAS,OAAO,MAAM,CAAC;QAC/B,CAAC;IACF,CAAC;IACD,YAAY,EAAE,KAAK;IACnB,CAAC,EAAE,GAAG;CACN,CAAC,CAAC;AACH,8BAA8B;AAC9B,uBAAuB;AACvB,UAAU,CAAC,GAAG,CAAC,mCAAmC,EAAE;IACnD,WAAW,CAAC,IAAI;QACf,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,MAAM,MAAM,GAAsC,EAAE,CAAC;QACrD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5D,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,uFAAuF;gBACvF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;oBACrC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC;;gBAAM,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IACD,SAAS,CAAC,IAAI;QACb,MAAM,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;CACD,CAAC,CAAC;AACH,MAAM,cAAc,GAAG;IACtB,IAAI,EAAE,kBAAkB;IACxB,eAAe,EAAE,4BAAY;IAC7B,SAAS,EAAE,aAAa;IACxB,WAAW,EAAE,YAAY;IACzB,CAAC,EAAE,GAAG;CACN,CAAC;AACF,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACtC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;AACnC,iFAAiF;AACjF,YAAY;AACZ,SAAS,YAAY,CAAC,KAAK;IAC1B,IAAI,CAAC;QACJ,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;;YAC3C,OAAO,KAAK,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AACD,SAAgB,uBAAuB,CAAC,GAAG;IAC1C,GAAG,CAAC,QAAQ,CAAC,0BAA0B,EAAE;QACxC,WAAW,EAAE;YACZ;gBACC,KAAK,EAAE,qBAAqB;gBAC5B,UAAU,EAAE,4BAAY;aACxB;YACD;gBACC,KAAK,EAAE,qBAAqB;gBAC5B,UAAU,EAAE,UAAU,IAAI;oBACzB,OAAO,IAAI,sBAAa,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3D,CAAC;aACD;YACD;gBACC,KAAK,EAAE,6BAA6B;gBACpC,UAAU,EAAE,UAAU,IAAI;oBACzB,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvF,OAAO,sBAAQ,CAAC,IAAI,CAAC,IAAA,qBAAU,EAAC,IAAI,EAAE,qBAAqB,CAAQ,CAAC,CAAC;oBACtE,CAAC;oBACD,OAAO,IAAA,eAAI,EAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;aACD;YACD;gBACC,KAAK,EAAE,aAAa;gBACpB,UAAU,EAAE,UAAU,IAAI;oBACzB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,CAAC,CAAC;oBACtE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;aACD;SACD;KACD,CAAC,CAAC;IACH,GAAG,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC5F,IAAI,CAAC;YACJ,IAAI,CAAC,IAAI,EAAE,IAAA,iBAAM,EAAC,IAAI,CAAC,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,CAAC;QACb,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QACvF,IAAI,CAAC;YACJ,IAAI,CAAC,IAAI,EAAE,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,CAAC;QACb,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,yFAAyF;IACzF,wFAAwF;IACxF,0EAA0E;IAC1E,GAAG,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACxE,IAAA,0CAAqB,EAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,0BAA0B,GAAG,IAAA,wBAAE,EACpC,UAAU,OAAO,EAAE,IAAI,EAAE,IAAI;IAC5B,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,WAAW;YAAE,OAAO;QACxB,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,KAAK,CAAC,UAAU,CAAC,UAAU,IAAS;YACnC,IAAI,SAA2C,CAAC;YAChD,IACC,OAAO,IAAI,KAAK,QAAQ;gBACxB,IAAI;gBACJ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBACrD,UAAU,CAAC,eAAe,EACzB,CAAC;gBACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,iHAAiH;oBACjH,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBACnC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC9B,gDAAgD;wBAChD,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;wBAC7F,OAAO,KAAK,CAAC;oBACd,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC9B,CAAC;gBACD,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC;YACxC,CAAC;;gBAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;YAExC,OAAO,SAAS,CAAC,IAAI,EAAE;gBACtB,gEAAgE;gBAChE,OAAO,EAAE;oBACR,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;wBACnB,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC1B,CAAC;iBACD;aACD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,IAAI,EAAE,CAAC;AACR,CAAC,EACD,EAAE,IAAI,EAAE,0BAA0B,EAAE,CACpC,CAAC;AAEF;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,eAAe;IACjD,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC,OAAO,CAAC;IAClF,MAAM,UAAU,GAAG,eAAe,CAAC,oBAAoB,IAAI,aAAa,CAAC,MAAM,CAAC;IAChF,IAAI,cAAc,CAAC;IACnB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,QAAQ,CAAC;IACb,IAAI,cAAc,CAAC;IACnB,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,EAAE,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,aAAa,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC;YACpD,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;gBAC3B,cAAc,GAAG,UAAU,CAAC;gBAC5B,QAAQ,GAAI,UAAkB,CAAC,IAAI,IAAI,IAAI,CAAC;gBAC5C,WAAW,GAAG,OAAO,CAAC;gBACtB,cAAc,GAAG,UAAU,CAAC;YAC7B,CAAC;QACF,CAAC;IACF,CAAC;IACD,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,yBAAW,CACpB,8EAA8E;gBAC7E,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EACzC,GAAG,CACH,CAAC;QACH,CAAC;aAAM,CAAC;YACP,qCAAqC;YACrC,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YACpD,QAAQ,GAAG,kBAAkB,CAAC;QAC/B,CAAC;IACF,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACnF,CAAC;AAED,yDAAyD;AACzD,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,2BAAa,CAAC,yBAAyB,CAAC,CAAC;AAClF;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc;IAC9D,kHAAkH;IAClH,uDAAuD;IACvD,IAAI,WAAW,GAAG,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzG,IAAI,YAAY,CAAC;IACjB,IAAI,YAAY,EAAE,WAAW,IAAI,IAAI,IAAI,YAAY,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QACpE,yFAAyF;QACzF,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QACrE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACtD,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC;IAClC,CAAC;SAAM,IAAI,YAAY,YAAY,UAAU,IAAI,YAAY,YAAY,cAAI,EAAE,CAAC;QAC/E,8GAA8G;QAC9G,eAAe;QACf,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;QACvE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACtD,YAAY,GAAG,YAAY,CAAC;IAC7B,CAAC;SAAM,CAAC;QACP,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,KAAK,KAAK;YAAE,WAAW,GAAG,KAAK,CAAC;QACtE,gGAAgG;QAChG,6DAA6D;QAC7D,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;QAC9D,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5D,IACC,OAAO,YAAY,KAAK,QAAQ;YAChC,YAAY;YACZ,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACrE,UAAU,CAAC,UAAU,CAAC,eAAe,EACpC,CAAC;YACF,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC3B,iHAAiH;gBACjH,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;gBAC3C,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC9C,gDAAgD;oBAChD,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;oBAC7F,kBAAM,CAAC,IAAI,EAAE,CAAC,2BAA2B,OAAO,EAAE,GAAG,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;oBAC9E,OAAO,KAAK,CAAC;gBACd,CAAC,CAAC,CAAC;gBACH,YAAY,CAAC,UAAU,GAAG,UAAU,CAAC;YACtC,CAAC;YACD,IAAI,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YACjF,IAAI,WAAW,EAAE,CAAC;gBACjB,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;gBACrD,MAAM,GAAG,MAAM,CAAC,IAAI,CACnB,IAAA,2BAAoB,EAAC;oBACpB,MAAM,EAAE;wBACP,CAAC,gBAAS,CAAC,iBAAiB,CAAC,EAC5B,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;4BACnE,CAAC,CAAC,gBAAS,CAAC,gBAAgB;4BAC5B,CAAC,CAAC,gBAAS,CAAC,mBAAmB;wBACjC,CAAC,gBAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,UAAU;qBAC/C;iBACD,CAAC,CACF,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC;QACD,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,WAAW,IAAI,YAAY,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;QACjE,kGAAkG;QAClG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACrD,4EAA4E;QAC5E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACtC,IAAA,qBAAc,EAAC,YAAY,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC1C,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CACF,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,IAAI,mBAAoC,CAAC;AACzC;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC/B,OAAY,EACZ,OAAiB,EACjB,mBAA6B;IAE7B,IAAI,OAAO,EAAE,WAAW,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC;IAC9E,mBAAmB,GAAG,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,IAAI,CAAC;QACJ,IAAI,UAA2B,CAAC;QAChC,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,SAAS,GAAI,OAAe,CAAC,SAAS,CAAC;YAC3C,IAAI,SAAS;gBAAE,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;iBAC1C,CAAC;gBACL,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAC/C,SAAS,GAAI,OAAe,CAAC,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;gBACzE,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;aAAM,CAAC;YACP,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,mBAAmB,EAAE,MAAM,GAAG,CAAC;YAClC,kIAAkI;YAClI,OAAO,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC/G,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CACxC,CAAC;QACH,OAAO,UAAU,CAAC;IACnB,CAAC;YAAS,CAAC;QACV,mBAAmB,GAAG,SAAS,CAAC;IACjC,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,kBAAgC;IAClE,IAAI,mBAAmB;QAAE,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;;QACjE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAC5D,CAAC;AACD,SAAgB,qBAAqB;IACpC,OAAO,CAAC,CAAC,mBAAmB,CAAC;AAC9B,CAAC;AAED,SAAS,cAAc,CAAC,MAAgB;IACvC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,2BAAa,CAAC,uBAAuB,CAAC,IAAI,UAAU,CAAC;IAC9F,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;YACpB,IAAI,IAAI,GAAG,qBAAqB,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,IAAI,yBAAW,CAAC,2CAA2C,qBAAqB,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC7G,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,iBAAiB;gBACrC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACR,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACJ,CAAC;AAeD,MAAM,gBAAgB,GAAG;IACxB,OAAO;IACP,MAAM;IACN,OAAO;IACP,SAAS;IACT,UAAU;IACV,MAAM;IACN,OAAO;IACP,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,KAAK;CACL,CAAC;AACF,SAAS,gBAAgB,CAAC,KAAa;IACtC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,WAAmB;IAC5C,uEAAuE;IACvE,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,UAAqC,CAAC;IAE1C,+CAA+C;IAC/C,IAAI,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1B,UAAU,GAAG,EAAE,CAAC;QAChB,2EAA2E;QAC3E,6DAA6D;QAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;QACD,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAC1C,CAAC;AAUD,SAAgB,eAAe,CAC9B,oBAA4B,EAAE,EAC9B,YAAqB,KAAK;IAE1B,MAAM,WAAW,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAExD,MAAM,WAAW,GAChB,CAAC,WAAW,CAAC,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAE7G,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,MAAgB,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AACjG,CAAC;AAED,SAAS,uBAAuB,CAAC,WAAwB;IACxD,0CAA0C;IAE1C,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,0FAA0F;QAC1F,IAAI,WAAW,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1F,kBAAM,CAAC,IAAI,EAAE,CAAC,2BAA2B,WAAW,CAAC,UAAU,CAAC,OAAO,uCAAuC,CAAC,CAAC;QACjH,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACjB,WAAW,EAAE,WAAW,CAAC,IAAI;YAC7B,qHAAqH;YACrH,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,IAAI,OAAO,CAAC;SAC/D,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,WAAW,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;QAC5D,4FAA4F;QAC5F,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IACvB,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,IAAI,EAAE,EAAE;YACf,IAAI,WAAW,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;gBAC7B,0CAA0C;gBAC1C,IAAI,CAAC;oBACJ,kDAAkD;oBAClD,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG;wBAAE,OAAO,SAAS,CAAC,IAAW,CAAC,CAAC;gBACtD,CAAC;gBAAC,MAAM,CAAC;oBACR,mCAAmC;gBACpC,CAAC;YACF,CAAC;YACD,iDAAiD;YACjD,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,IAAI,IAAI,0BAA0B,EAAE,IAAI,EAAE,CAAC;QAC9E,CAAC,CAAC;IACH,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAQ,EAAE,SAAS;IAC7C,OAAO;QACN,CAAC,MAAM,CAAC,aAAa,CAAC;YACrB,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjH,OAAO;gBACN,IAAI;oBACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC7B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBACf,uEAAuE;wBACvE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBACxG,CAAC;oBACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACzE,CAAC;gBACD,MAAM,CAAC,KAAK;oBACX,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;gBACD,KAAK,CAAC,KAAK;oBACV,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;aACD,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAI,EAAE,OAAQ;IACzC,qCAAqC;IACrC,MAAM,UAAU,GAAG,qBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjH,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC;IAE7B,sDAAsD;IACtD,MAAM,YAAY,GAAG,IAAI,uBAAS,CAAC;QAClC,UAAU,EAAE,IAAI;QAChB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ;YAClC,IAAI,CAAC;gBACJ,mDAAmD;gBACnD,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC5D,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7B,CAAC;gBAED,kCAAkC;gBAClC,IAAI,CAAC,aAAa,IAAI,MAAM,EAAE,CAAC;oBAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;oBAC7C,aAAa,GAAG,IAAI,CAAC;gBACtB,CAAC;gBAED,4BAA4B;gBAC5B,IAAI,MAAM,EAAE,CAAC;oBACZ,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;wBAC3B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;4BAC3C,OAAO,EAAE,CAAC;wBACX,CAAC;wBACD,uCAAuC;wBACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;4BAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBAC9B,CAAC;wBACD,OAAO,KAAK,CAAC;oBACd,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC/C,CAAC;gBAED,QAAQ,EAAE,CAAC;YACZ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;KACD,CAAC,CAAC;IAEH,sDAAsD;IACtD,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,MAAa,EAAE,WAAoB,KAAK;IAC7D,OAAO,MAAM;SACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,2BAA2B;QAC3B,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC3D,OAAO,EAAE,CAAC;QACX,CAAC;QAED,iEAAiE;QACjE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,yDAAyD;QACzD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,oDAAoD;QACpD,OAAO,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;IACpD,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"contentTypes.js","sourceRoot":"","sources":["../../../server/serverHelpers/contentTypes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8PA,0DAuDC;AAkDD,gDA2CC;AAWD,8BA8EC;AAWD,oDAKC;AAOD,4CAkBC;AAOD,gDAGC;AACD,sDAEC;AAsFD,0CAUC;AA4CD,0DAGC;AAED,oDAWC;AA8HD,kCAgDC;AA32BD,mDAAiE;AACjE,uCAAoD;AACpD,mCAAwD;AACxD,+BAAuE;AACvE,kEAA+D;AAC/D,2DAA0D;AAC1D,4CAAsC;AACtC,iDAAwD;AACxD,wFAA0E;AAC1E,2DAA0D;AAC1D,2CAA6B;AAC7B,+DAAyD;AACzD,6EAGgD;AAChD,qDAA+C;AAC/C,4CAA4C;AAC5C,oEAAgC;AAChC,6DAA6D;AAC7D,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,2BAAa,CAAC,oBAAoB,CAAC,KAAK,KAAK,CAAC;AACtF,MAAM,aAAa,GAAG,oBAAoB,CAAC,CAAC,CAAC,yBAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AACxE,MAAM,SAAS,GAAG,oBAAoB,CAAC,CAAC,CAAC,qBAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5D,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAC9C,MAAM,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAS9D,SAAS,iBAAiB,CAAC,KAAU;IACpC,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC;QACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;aACzE,IAAI,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,KAAK,QAAQ;YAAE,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;aAChF,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ;YAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,IAAI,CAAC;QACJ,IAAI,OAAO,KAAK,EAAE,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,KAAK,IAAA,gCAAmB,EAAC,KAAK,CAAC,CAAC;IACvC,MAAM,MAAM,GAAwD,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC7F,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,KAAK,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,CAAC;QAClD,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,qBAAqB,GAAG;IAC7B,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,IAAI;CACf,CAAC;AAIF,MAAM,UAAU,GAAG,IAAI,GAAG,EASvB,CAAC;AAES,QAAA,YAAY,GAAG,UAAU,CAAC;AACvC,kBAAM,CAAC,YAAY,GAAG,oBAAmB,CAAC;AAC1C,IAAA,iCAAoB,EAAC,cAAc,EAAE,oBAAY,CAAC,CAAC;AACnD,gEAAgE;AAChE,UAAU,CAAC,GAAG,CAAC,kBAAkB,EAAE;IAClC,eAAe,EAAE,4BAAY;IAC7B,SAAS,EAAE,aAAa;IACxB,WAAW,CAAC,IAAI;QACf,OAAO,SAAS,CAAC,IAAW,CAAC,CAAC;IAC/B,CAAC;IACD,CAAC,EAAE,GAAG;CACN,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,IAAI,gBAAO,CAAC,qBAAqB,CAAC,CAAC;AACvD,UAAU,CAAC,GAAG,CAAC,kBAAkB,EAAE;IAClC,eAAe,CAAC,IAAI;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,qCAAqC;QACnG,OAAO,IAAI,sBAAa,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,SAAS,EAAE,WAAW,CAAC,MAAM;IAC7B,WAAW,EAAE,WAAW,CAAC,MAAM;IAC/B,CAAC,EAAE,CAAC;CACJ,CAAC,CAAC;AACH,UAAU,CAAC,GAAG,CAAC,uBAAuB,EAAE;IACvC,eAAe,CAAC,IAAS;QACxB,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACvF,OAAO,sBAAQ,CAAC,IAAI,CAAC,IAAA,qBAAU,EAAC,IAAI,EAAE,qBAAqB,CAAQ,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAA,eAAI,EAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,SAAS,EAAE,eAAI;IACf,WAAW,EAAE,iBAAM;IACnB,CAAC,EAAE,GAAG;CACN,CAAC,CAAC;AACH,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE;IAC1B,eAAe,CAAC,IAAS,EAAE,QAAkB;QAC5C,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,iCAAiC,CAAC,CAAC;QAC/E,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,SAAS,CAAC,IAAS,EAAE,QAAkB;QACtC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,iCAAiC,CAAC,CAAC;QAC/E,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAAE,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChF,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,CAAC,EAAE,GAAG;CACN,CAAC,CAAC;AACH,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE;IAC5B,SAAS,CAAC,IAAS;QAClB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IACD,eAAe,CAAC,IAAS;QACxB,OAAO,sBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IACD,WAAW,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IACD,CAAC,EAAE,GAAG;CACN,CAAC,CAAC;AAEH,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE;IAC3B,SAAS,CAAC,IAAI;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,CAAC,EAAE,GAAG;CACN,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG;IACrB,eAAe,CAAC,IAAS,EAAE,SAAoB,EAAE,OAAa;QAC7D,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7D,OAAO,gBAAgB,CACtB,IAAI,EACJ,CAAC,GAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,EACvC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,EACjF,OAAO,EAAE,MAAM,KAAK,KAAK,CACzB,CAAC;QACH,CAAC;QACD,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC;IACD,SAAS,CAAC,IAAS;QAClB,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC;IACD,WAAW,CAAC,IAAY;QACvB,OAAO,IAAI;aACT,QAAQ,EAAE;aACV,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,CAAC,EAAE,GAAG;CACN,CAAC;AACF,UAAU,CAAC,GAAG,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;AACtD,UAAU,CAAC,GAAG,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;AAEpD,SAAS,gBAAgB,CAAC,IAAS;IAClC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3E,OAAO,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;AAC1E,CAAC;AAED,UAAU,CAAC,GAAG,CAAC,mBAAmB,EAAE;IACnC,2BAA2B;IAC3B,eAAe,EAAE,UAAU,QAAQ,EAAE,SAAoB,EAAE,OAAa;QACvE,kFAAkF;QAClF,OAAO,gBAAgB,CACtB,QAAQ,EACR,IAAI,CAAC,SAAS,EACd,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,EACpF,OAAO,EAAE,MAAM,KAAK,KAAK,CACzB,CAAC;IACH,CAAC;IACD,SAAS,EAAE,UAAU,OAAO;QAC3B,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5E,kBAAkB;YAClB,OAAO,GAAG;gBACT,IAAI,EAAE,OAAO,CAAC,KAAK;gBACnB,KAAK,EAAE,OAAO,CAAC,IAAI;gBACnB,EAAE,EAAE,OAAO,CAAC,SAAS;aACrB,CAAC;QACH,CAAC;QACD,8FAA8F;QAC9F,6FAA6F;QAC7F,8DAA8D;QAC9D,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3C,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,KAAK;gBAAE,UAAU,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YAClE,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;gBAC1B,UAAU,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,OAAO,CAAC,EAAE,IAAI,IAAI;gBAAE,UAAU,IAAI,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC;YACjE,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI;gBAAE,UAAU,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YAC1E,OAAO,UAAU,GAAG,IAAI,CAAC;QAC1B,CAAC;aAAM,CAAC;YACP,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QACzC,CAAC;IACF,CAAC;IACD,YAAY,EAAE,KAAK;IACnB,CAAC,EAAE,GAAG;CACN,CAAC,CAAC;AACH,8BAA8B;AAC9B,uBAAuB;AACvB,UAAU,CAAC,GAAG,CAAC,mCAAmC,EAAE;IACnD,WAAW,CAAC,IAAI;QACf,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,MAAM,MAAM,GAAsC,EAAE,CAAC;QACrD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5D,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,uFAAuF;gBACvF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;oBACrC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC;;gBAAM,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IACD,SAAS,CAAC,IAAI;QACb,MAAM,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;CACD,CAAC,CAAC;AACH,MAAM,cAAc,GAAG;IACtB,IAAI,EAAE,kBAAkB;IACxB,eAAe,EAAE,4BAAY;IAC7B,SAAS,EAAE,aAAa;IACxB,WAAW,EAAE,YAAY;IACzB,CAAC,EAAE,GAAG;CACN,CAAC;AACF,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACtC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;AACnC,iFAAiF;AACjF,YAAY;AACZ,SAAS,YAAY,CAAC,KAAK;IAC1B,IAAI,CAAC;QACJ,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;;YAC3C,OAAO,KAAK,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AACD,SAAgB,uBAAuB,CAAC,GAAG;IAC1C,GAAG,CAAC,QAAQ,CAAC,0BAA0B,EAAE;QACxC,WAAW,EAAE;YACZ;gBACC,KAAK,EAAE,qBAAqB;gBAC5B,UAAU,EAAE,4BAAY;aACxB;YACD;gBACC,KAAK,EAAE,qBAAqB;gBAC5B,UAAU,EAAE,UAAU,IAAI;oBACzB,OAAO,IAAI,sBAAa,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3D,CAAC;aACD;YACD;gBACC,KAAK,EAAE,6BAA6B;gBACpC,UAAU,EAAE,UAAU,IAAI;oBACzB,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvF,OAAO,sBAAQ,CAAC,IAAI,CAAC,IAAA,qBAAU,EAAC,IAAI,EAAE,qBAAqB,CAAQ,CAAC,CAAC;oBACtE,CAAC;oBACD,OAAO,IAAA,eAAI,EAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;aACD;YACD;gBACC,KAAK,EAAE,aAAa;gBACpB,UAAU,EAAE,UAAU,IAAI;oBACzB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,CAAC,CAAC;oBACtE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;aACD;SACD;KACD,CAAC,CAAC;IACH,GAAG,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC5F,IAAI,CAAC;YACJ,IAAI,CAAC,IAAI,EAAE,IAAA,iBAAM,EAAC,IAAI,CAAC,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,CAAC;QACb,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QACvF,IAAI,CAAC;YACJ,IAAI,CAAC,IAAI,EAAE,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,CAAC;QACb,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,yFAAyF;IACzF,wFAAwF;IACxF,0EAA0E;IAC1E,GAAG,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACxE,IAAA,0CAAqB,EAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,0BAA0B,GAAG,IAAA,wBAAE,EACpC,UAAU,OAAO,EAAE,IAAI,EAAE,IAAI;IAC5B,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,WAAW;YAAE,OAAO;QACxB,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,KAAK,CAAC,UAAU,CAAC,UAAU,IAAS;YACnC,IAAI,SAA2C,CAAC;YAChD,IACC,OAAO,IAAI,KAAK,QAAQ;gBACxB,IAAI;gBACJ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBACrD,UAAU,CAAC,eAAe,EACzB,CAAC;gBACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,iHAAiH;oBACjH,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBACnC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC9B,gDAAgD;wBAChD,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;wBAC7F,OAAO,KAAK,CAAC;oBACd,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC9B,CAAC;gBACD,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC;YACxC,CAAC;;gBAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;YAExC,OAAO,SAAS,CAAC,IAAI,EAAE;gBACtB,gEAAgE;gBAChE,OAAO,EAAE;oBACR,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;wBACnB,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC1B,CAAC;iBACD;aACD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,IAAI,EAAE,CAAC;AACR,CAAC,EACD,EAAE,IAAI,EAAE,0BAA0B,EAAE,CACpC,CAAC;AAEF;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,eAAe;IACjD,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC,OAAO,CAAC;IAClF,MAAM,UAAU,GAAG,eAAe,CAAC,oBAAoB,IAAI,aAAa,CAAC,MAAM,CAAC;IAChF,IAAI,cAAc,CAAC;IACnB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,QAAQ,CAAC;IACb,IAAI,cAAc,CAAC;IACnB,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,EAAE,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,aAAa,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC;YACpD,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;gBAC3B,cAAc,GAAG,UAAU,CAAC;gBAC5B,QAAQ,GAAI,UAAkB,CAAC,IAAI,IAAI,IAAI,CAAC;gBAC5C,WAAW,GAAG,OAAO,CAAC;gBACtB,cAAc,GAAG,UAAU,CAAC;YAC7B,CAAC;QACF,CAAC;IACF,CAAC;IACD,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,yBAAW,CACpB,8EAA8E;gBAC7E,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EACzC,GAAG,CACH,CAAC;QACH,CAAC;aAAM,CAAC;YACP,qCAAqC;YACrC,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YACpD,QAAQ,GAAG,kBAAkB,CAAC;QAC/B,CAAC;IACF,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACnF,CAAC;AAED,yDAAyD;AACzD,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,2BAAa,CAAC,yBAAyB,CAAC,CAAC;AAClF;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc;IAC9D,kHAAkH;IAClH,uDAAuD;IACvD,IAAI,WAAW,GAAG,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzG,IAAI,YAAY,CAAC;IACjB,IAAI,YAAY,EAAE,WAAW,IAAI,IAAI,IAAI,YAAY,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QACpE,yFAAyF;QACzF,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QACrE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACtD,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC;IAClC,CAAC;SAAM,IAAI,YAAY,YAAY,UAAU,IAAI,YAAY,YAAY,cAAI,EAAE,CAAC;QAC/E,8GAA8G;QAC9G,eAAe;QACf,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;QACvE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACtD,YAAY,GAAG,YAAY,CAAC;IAC7B,CAAC;SAAM,CAAC;QACP,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,KAAK,KAAK;YAAE,WAAW,GAAG,KAAK,CAAC;QACtE,gGAAgG;QAChG,6DAA6D;QAC7D,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;QAC9D,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5D,IACC,OAAO,YAAY,KAAK,QAAQ;YAChC,YAAY;YACZ,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACrE,UAAU,CAAC,UAAU,CAAC,eAAe,EACpC,CAAC;YACF,IACC,YAAY,CAAC,QAAQ;gBACrB,UAAU,CAAC,IAAI,KAAK,sBAAsB;gBAC1C,UAAU,CAAC,IAAI,KAAK,oBAAoB;gBACxC,UAAU,CAAC,IAAI,KAAK,mBAAmB,EACtC,CAAC;gBACF,iHAAiH;gBACjH,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;gBAC3C,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC9C,gDAAgD;oBAChD,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;oBAC7F,kBAAM,CAAC,IAAI,EAAE,CAAC,2BAA2B,OAAO,EAAE,GAAG,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;oBAC9E,OAAO,KAAK,CAAC;gBACd,CAAC,CAAC,CAAC;gBACH,YAAY,CAAC,UAAU,GAAG,UAAU,CAAC;YACtC,CAAC;YACD,IAAI,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,YAAY,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;YAC1F,IAAI,WAAW,EAAE,CAAC;gBACjB,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;gBACrD,MAAM,kBAAkB,GAAG,MAAM,CAAC;gBAClC,MAAM,GAAG,MAAM,CAAC,IAAI,CACnB,IAAA,2BAAoB,EAAC;oBACpB,MAAM,EAAE;wBACP,CAAC,gBAAS,CAAC,iBAAiB,CAAC,EAC5B,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;4BACnE,CAAC,CAAC,gBAAS,CAAC,gBAAgB;4BAC5B,CAAC,CAAC,gBAAS,CAAC,mBAAmB;wBACjC,CAAC,gBAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,UAAU;qBAC/C;iBACD,CAAC,CACF,CAAC;gBACF,IAAI,kBAAkB,CAAC,aAAa,CAAC;oBAAE,MAAM,CAAC,aAAa,CAAC,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;YAClG,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC;QACD,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,WAAW,IAAI,YAAY,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;QACjE,kGAAkG;QAClG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACrD,4EAA4E;QAC5E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACtC,IAAA,qBAAc,EAAC,YAAY,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC1C,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CACF,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,IAAI,mBAAoC,CAAC;AACzC;;;;;;;GAOG;AACH,SAAgB,oBAAoB,CAAC,OAAiB;IACrD,IAAI,CAAC,OAAO;QAAE,OAAO,aAAa,CAAC;IACnC,IAAI,SAAS,GAAI,OAAe,CAAC,SAAS,CAAC;IAC3C,IAAI,CAAC,SAAS;QAAE,SAAS,GAAI,OAAe,CAAC,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;IAC1G,OAAO,SAAS,CAAC;AAClB,CAAC;AACD;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC/B,OAAY,EACZ,OAAiB,EACjB,mBAA6B;IAE7B,IAAI,OAAO,EAAE,WAAW,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC;IAC9E,mBAAmB,GAAG,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,IAAI,CAAC;QACJ,MAAM,UAAU,GAAoB,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3E,IAAI,mBAAmB,EAAE,MAAM,GAAG,CAAC;YAClC,kIAAkI;YAClI,OAAO,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC/G,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CACxC,CAAC;QACH,OAAO,UAAU,CAAC;IACnB,CAAC;YAAS,CAAC;QACV,mBAAmB,GAAG,SAAS,CAAC;IACjC,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,kBAAgC;IAClE,IAAI,mBAAmB;QAAE,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;;QACjE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAC5D,CAAC;AACD,SAAgB,qBAAqB;IACpC,OAAO,CAAC,CAAC,mBAAmB,CAAC;AAC9B,CAAC;AAED,SAAS,cAAc,CAAC,MAAgB;IACvC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,2BAAa,CAAC,uBAAuB,CAAC,IAAI,UAAU,CAAC;IAC9F,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;YACpB,IAAI,IAAI,GAAG,qBAAqB,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,IAAI,yBAAW,CAAC,2CAA2C,qBAAqB,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC7G,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,iBAAiB;gBACrC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACR,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACJ,CAAC;AAeD,MAAM,gBAAgB,GAAG;IACxB,OAAO;IACP,MAAM;IACN,OAAO;IACP,SAAS;IACT,UAAU;IACV,MAAM;IACN,OAAO;IACP,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,KAAK;CACL,CAAC;AACF,SAAS,gBAAgB,CAAC,KAAa;IACtC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,WAAmB;IAC5C,uEAAuE;IACvE,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,UAAqC,CAAC;IAE1C,+CAA+C;IAC/C,IAAI,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1B,UAAU,GAAG,EAAE,CAAC;QAChB,2EAA2E;QAC3E,6DAA6D;QAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;QACD,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAC1C,CAAC;AAUD,SAAgB,eAAe,CAC9B,oBAA4B,EAAE,EAC9B,YAAqB,KAAK;IAE1B,MAAM,WAAW,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAExD,MAAM,WAAW,GAChB,CAAC,WAAW,CAAC,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAE7G,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,MAAgB,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AACjG,CAAC;AAED,SAAS,uBAAuB,CAAC,WAAwB;IACxD,0CAA0C;IAE1C,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,0FAA0F;QAC1F,IAAI,WAAW,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1F,kBAAM,CAAC,IAAI,EAAE,CAAC,2BAA2B,WAAW,CAAC,UAAU,CAAC,OAAO,uCAAuC,CAAC,CAAC;QACjH,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACjB,WAAW,EAAE,WAAW,CAAC,IAAI;YAC7B,qHAAqH;YACrH,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,IAAI,OAAO,CAAC;SAC/D,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,WAAW,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;QAC5D,4FAA4F;QAC5F,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IACvB,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,IAAI,EAAE,EAAE;YACf,IAAI,WAAW,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;gBAC7B,0CAA0C;gBAC1C,IAAI,CAAC;oBACJ,kDAAkD;oBAClD,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG;wBAAE,OAAO,SAAS,CAAC,IAAW,CAAC,CAAC;gBACtD,CAAC;gBAAC,MAAM,CAAC;oBACR,mCAAmC;gBACpC,CAAC;YACF,CAAC;YACD,iDAAiD;YACjD,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,IAAI,IAAI,0BAA0B,EAAE,IAAI,EAAE,CAAC;QAC9E,CAAC,CAAC;IACH,CAAC;AACF,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,KAAc;IAC5E,MAAM,WAAW,GAAG,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,sBAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAkB,WAAW,CAAC,aAAa,CAAC,CAAC;IAC1D,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;IAClC,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAgB,uBAAuB,CAAC,MAAM;IAC7C,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACpC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;AACrB,CAAC;AAED,SAAgB,oBAAoB,CAAC,MAAM;IAC1C,MAAM,OAAO,GAA8B,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,MAAM,CAAC,KAAK,CAAC;QACpB,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK;IACpE,IAAI,QAAQ,CAAC;IACb,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,SAAS,CAAC;IACd,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,EAAsC,CAAC;IAClF,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,EAAW,CAAC;IACvD,IAAI,YAAY,CAAC;IAEjB,MAAM,MAAM,GAAG,GAAG,EAAE;QACnB,IAAI,YAAY;YAAE,cAAc,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,cAAc,GAAG,IAAI,CAAC;YACtB,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,GAAG,EAAE;QAClB,IAAI,YAAY;YAAE,cAAc,CAAC,YAAY,CAAC,CAAC;QAC/C,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;QACnC,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,IAAI,CAAC,cAAc;YAAE,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7E,kBAAM,CAAC,IAAI,EAAE,CAAC,6BAA6B,EAAE,IAAA,8BAAiB,EAAC,KAAK,CAAC,CAAC,CAAC;QACvE,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,CAAC;IACrF,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,EAAE;QAC9B,IAAI,IAAI,EAAE,CAAC,qBAAqB,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,CAAC;YACJ,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACF,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,EAAE;QACvB,IAAI,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACJ,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,GAAG,EAAE;QACpB,IAAI,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACJ,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC5D,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,GAAG,EAAE;QAClB,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3G,SAAS,GAAG,UAAU,EAAE,CAAC;QACzB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAC9B,GAAG,EAAE;YACJ,IAAI,CAAC,QAAQ;gBAAE,MAAM,EAAE,CAAC;QACzB,CAAC,EACD,GAAG,EAAE,GAAE,CAAC,CACR,CAAC;QACF,4GAA4G;QAC5G,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC;IACF,IAAI,KAAK;QAAE,KAAK,EAAE,CAAC;IAEnB,OAAO;QACN,CAAC,aAAa,CAAC,EAAE;YAChB,MAAM,EAAE,aAAa,CAAC,OAAO;YAC7B,KAAK;YACL,KAAK;SACL;QACD,CAAC,MAAM,CAAC,aAAa,CAAC;YACrB,OAAO;gBACN,IAAI;oBACH,IAAI,QAAQ;wBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;oBACpC,IAAI,KAAK,EAAE,CAAC;wBACX,KAAK,GAAG,KAAK,CAAC;wBACd,KAAK,EAAE,CAAC;wBACR,MAAM,IAAI,GAAG,SAAS,CAAC;wBACvB,SAAS,GAAG,SAAS,CAAC;wBACtB,IAAI,IAAI,CAAC,IAAI;4BAAE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC/C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC;oBACD,OAAO,OAAO,EAAE,CAAC;gBAClB,CAAC;gBACD,MAAM,CAAC,KAAK;oBACX,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,GAAG,IAAI,CAAC;oBACf,IAAI,CAAC,QAAQ;wBACZ,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;4BACxC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;4BAClC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAClC,OAAO,QAAQ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBAC3D,CAAC;gBACD,KAAK,CAAC,KAAK;oBACV,OAAO,QAAQ,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1D,CAAC;aACD,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAI,EAAE,OAAQ;IACzC,qCAAqC;IACrC,MAAM,UAAU,GAAG,qBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjH,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC;IAE7B,sDAAsD;IACtD,MAAM,YAAY,GAAG,IAAI,uBAAS,CAAC;QAClC,UAAU,EAAE,IAAI;QAChB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ;YAClC,IAAI,CAAC;gBACJ,mDAAmD;gBACnD,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC5D,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7B,CAAC;gBAED,kCAAkC;gBAClC,IAAI,CAAC,aAAa,IAAI,MAAM,EAAE,CAAC;oBAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;oBAC7C,aAAa,GAAG,IAAI,CAAC;gBACtB,CAAC;gBAED,4BAA4B;gBAC5B,IAAI,MAAM,EAAE,CAAC;oBACZ,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;wBAC3B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;4BAC3C,OAAO,EAAE,CAAC;wBACX,CAAC;wBACD,uCAAuC;wBACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;4BAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBAC9B,CAAC;wBACD,OAAO,KAAK,CAAC;oBACd,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC/C,CAAC;gBAED,QAAQ,EAAE,CAAC;YACZ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;KACD,CAAC,CAAC;IAEH,sDAAsD;IACtD,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,MAAa,EAAE,WAAoB,KAAK;IAC7D,OAAO,MAAM;SACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,2BAA2B;QAC3B,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC3D,OAAO,EAAE,CAAC;QACX,CAAC;QAED,iEAAiE;QACjE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,yDAAyD;QACzD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,oDAAoD;QACpD,OAAO,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;IACpD,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,CAAC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import type { ComponentStatus } from '../../components/status/ComponentStatus.ts';
|
|
1
2
|
export declare function isDeployValidating(): boolean;
|
|
3
|
+
/** The throwaway map a candidate's status writes belong in, or `undefined` outside a validation load. */
|
|
4
|
+
export declare function deployValidationStatusSink(): Map<string, ComponentStatus> | undefined;
|
|
2
5
|
/** Run `fn` (the throwaway validation load) with the guard raised, lowering it even if `fn` throws. */
|
|
3
6
|
export declare function runWithDeployValidationGuard<T>(fn: () => Promise<T>): Promise<T>;
|
|
@@ -1,29 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isDeployValidating = isDeployValidating;
|
|
4
|
+
exports.deployValidationStatusSink = deployValidationStatusSink;
|
|
4
5
|
exports.runWithDeployValidationGuard = runWithDeployValidationGuard;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
// process-wide state (the operation map, its cross-thread announcement, the quota handler) that is
|
|
8
|
-
// NOT owned by a Scope, so a failed/rolled-back deploy would otherwise leak the candidate's
|
|
9
|
-
// registrations onto the live worker. Those registration methods no-op while this guard is active.
|
|
10
|
-
//
|
|
11
|
-
// Depth-counted so overlapping validations both keep the guard raised until the last one finishes.
|
|
12
|
-
// Caveat: while a validation is in flight, a legitimate registration from an interleaving real load
|
|
13
|
-
// is also skipped (it re-registers on its next load); that window is narrow, and the alternative —
|
|
14
|
-
// leaking a candidate's registration live — is worse.
|
|
15
|
-
let validationDepth = 0;
|
|
6
|
+
const node_async_hooks_1 = require("node:async_hooks");
|
|
7
|
+
const deployValidation = new node_async_hooks_1.AsyncLocalStorage();
|
|
16
8
|
function isDeployValidating() {
|
|
17
|
-
return
|
|
9
|
+
return deployValidation.getStore() !== undefined;
|
|
10
|
+
}
|
|
11
|
+
/** The throwaway map a candidate's status writes belong in, or `undefined` outside a validation load. */
|
|
12
|
+
function deployValidationStatusSink() {
|
|
13
|
+
return deployValidation.getStore()?.statusSink;
|
|
18
14
|
}
|
|
19
15
|
/** Run `fn` (the throwaway validation load) with the guard raised, lowering it even if `fn` throws. */
|
|
20
16
|
async function runWithDeployValidationGuard(fn) {
|
|
21
|
-
|
|
22
|
-
try {
|
|
23
|
-
return await fn();
|
|
24
|
-
}
|
|
25
|
-
finally {
|
|
26
|
-
validationDepth--;
|
|
27
|
-
}
|
|
17
|
+
return deployValidation.run({ statusSink: new Map() }, fn);
|
|
28
18
|
}
|
|
29
19
|
//# sourceMappingURL=deployValidationState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployValidationState.js","sourceRoot":"","sources":["../../../server/serverHelpers/deployValidationState.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"deployValidationState.js","sourceRoot":"","sources":["../../../server/serverHelpers/deployValidationState.ts"],"names":[],"mappings":";;AAuBA,gDAEC;AAGD,gEAEC;AAGD,oEAEC;AAnCD,uDAAqD;AAqBrD,MAAM,gBAAgB,GAAG,IAAI,oCAAiB,EAA2B,CAAC;AAE1E,SAAgB,kBAAkB;IACjC,OAAO,gBAAgB,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC;AAClD,CAAC;AAED,yGAAyG;AACzG,SAAgB,0BAA0B;IACzC,OAAO,gBAAgB,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC;AAChD,CAAC;AAED,uGAAuG;AAChG,KAAK,UAAU,4BAA4B,CAAI,EAAoB;IACzE,OAAO,gBAAgB,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -1,2 +1,14 @@
|
|
|
1
|
+
interface OperationAuthorizationState {
|
|
2
|
+
bypassAuth: boolean;
|
|
3
|
+
apiOperation?: string;
|
|
4
|
+
}
|
|
1
5
|
export declare function runWithOperationAuthorizationBypass<T>(bypassAuth: boolean, callback: () => T): T;
|
|
6
|
+
/**
|
|
7
|
+
* `apiOperation` MUST come from the same value that selected the code now running, so it cannot name
|
|
8
|
+
* an operation other than the one executing. That is the entire basis for trusting it: a request
|
|
9
|
+
* property would be forgeable, and on the direct-SQL path this check is the only gate.
|
|
10
|
+
*/
|
|
11
|
+
export declare function runWithDispatchedOperation<T>(apiOperation: string, callback: () => T): T;
|
|
12
|
+
export declare function getOperationAuthorizationState(): OperationAuthorizationState | undefined;
|
|
2
13
|
export declare function isOperationAuthorizationBypassed(): boolean;
|
|
14
|
+
export {};
|
|
@@ -1,13 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runWithOperationAuthorizationBypass = runWithOperationAuthorizationBypass;
|
|
4
|
+
exports.runWithDispatchedOperation = runWithDispatchedOperation;
|
|
5
|
+
exports.getOperationAuthorizationState = getOperationAuthorizationState;
|
|
4
6
|
exports.isOperationAuthorizationBypassed = isOperationAuthorizationBypassed;
|
|
5
7
|
const node_async_hooks_1 = require("node:async_hooks");
|
|
6
8
|
const operationAuthorizationState = new node_async_hooks_1.AsyncLocalStorage();
|
|
9
|
+
// Shared, for the common case of no carrier to preserve.
|
|
10
|
+
const BYPASSED = Object.freeze({ bypassAuth: true });
|
|
11
|
+
const ENFORCED = Object.freeze({ bypassAuth: false });
|
|
7
12
|
function runWithOperationAuthorizationBypass(bypassAuth, callback) {
|
|
8
|
-
|
|
13
|
+
// An existing carrier survives: the enforced branch is not a bypass, and a job handler dispatching
|
|
14
|
+
// a nested authorized operation must not lose its own operation identity.
|
|
15
|
+
const apiOperation = operationAuthorizationState.getStore()?.apiOperation;
|
|
16
|
+
if (apiOperation === undefined) {
|
|
17
|
+
return operationAuthorizationState.run(bypassAuth === true ? BYPASSED : ENFORCED, callback);
|
|
18
|
+
}
|
|
19
|
+
return operationAuthorizationState.run(Object.freeze({ bypassAuth: bypassAuth === true, apiOperation }), callback);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* `apiOperation` MUST come from the same value that selected the code now running, so it cannot name
|
|
23
|
+
* an operation other than the one executing. That is the entire basis for trusting it: a request
|
|
24
|
+
* property would be forgeable, and on the direct-SQL path this check is the only gate.
|
|
25
|
+
*/
|
|
26
|
+
function runWithDispatchedOperation(apiOperation, callback) {
|
|
27
|
+
return operationAuthorizationState.run(Object.freeze({ bypassAuth: operationAuthorizationState.getStore()?.bypassAuth === true, apiOperation }), callback);
|
|
28
|
+
}
|
|
29
|
+
function getOperationAuthorizationState() {
|
|
30
|
+
return operationAuthorizationState.getStore();
|
|
9
31
|
}
|
|
10
32
|
function isOperationAuthorizationBypassed() {
|
|
11
|
-
return operationAuthorizationState.getStore() === true;
|
|
33
|
+
return operationAuthorizationState.getStore()?.bypassAuth === true;
|
|
12
34
|
}
|
|
13
35
|
//# sourceMappingURL=operationAuthorizationState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operationAuthorizationState.js","sourceRoot":"","sources":["../../../server/serverHelpers/operationAuthorizationState.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"operationAuthorizationState.js","sourceRoot":"","sources":["../../../server/serverHelpers/operationAuthorizationState.ts"],"names":[],"mappings":";;AAaA,kFAQC;AAOD,gEAKC;AAED,wEAEC;AAED,4EAEC;AAzCD,uDAAqD;AAOrD,MAAM,2BAA2B,GAAG,IAAI,oCAAiB,EAA+B,CAAC;AAEzF,yDAAyD;AACzD,MAAM,QAAQ,GAAgC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAClF,MAAM,QAAQ,GAAgC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AAEnF,SAAgB,mCAAmC,CAAI,UAAmB,EAAE,QAAiB;IAC5F,mGAAmG;IACnG,0EAA0E;IAC1E,MAAM,YAAY,GAAG,2BAA2B,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC;IAC1E,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,2BAA2B,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,UAAU,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACpH,CAAC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CAAI,YAAoB,EAAE,QAAiB;IACpF,OAAO,2BAA2B,CAAC,GAAG,CACrC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,2BAA2B,CAAC,QAAQ,EAAE,EAAE,UAAU,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,EACxG,QAAQ,CACR,CAAC;AACH,CAAC;AAED,SAAgB,8BAA8B;IAC7C,OAAO,2BAA2B,CAAC,QAAQ,EAAE,CAAC;AAC/C,CAAC;AAED,SAAgB,gCAAgC;IAC/C,OAAO,2BAA2B,CAAC,QAAQ,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC;AACpE,CAAC"}
|
|
@@ -8,14 +8,15 @@ export declare function setLocalOperationDispatch(dispatch: typeof localDispatch
|
|
|
8
8
|
* a lost announcement just means the op stays unreachable (the pre-#1736 status quo), and the
|
|
9
9
|
* broadcast has its own ack timeout.
|
|
10
10
|
*/
|
|
11
|
-
export declare function announceRegisteredOperation(name: string): void;
|
|
11
|
+
export declare function announceRegisteredOperation(name: string, grantable?: boolean): void;
|
|
12
12
|
/**
|
|
13
13
|
* ITC handler (all threads receive the broadcast; only main records it).
|
|
14
14
|
*/
|
|
15
15
|
export declare function operationRegisteredHandler(event: {
|
|
16
|
-
message
|
|
17
|
-
name
|
|
18
|
-
|
|
16
|
+
message?: {
|
|
17
|
+
name?: string;
|
|
18
|
+
grantable?: boolean;
|
|
19
|
+
originator?: number;
|
|
19
20
|
};
|
|
20
21
|
}): void;
|
|
21
22
|
/**
|