@memberjunction/server 6.2.0-edge.2 → 6.2.0-edge.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/agentSessions/BridgeHostInstance.d.ts +25 -0
- package/dist/agentSessions/BridgeHostInstance.d.ts.map +1 -0
- package/dist/agentSessions/BridgeHostInstance.js +30 -0
- package/dist/agentSessions/BridgeHostInstance.js.map +1 -0
- package/dist/agentSessions/HostInstance.d.ts +75 -11
- package/dist/agentSessions/HostInstance.d.ts.map +1 -1
- package/dist/agentSessions/HostInstance.js +99 -28
- package/dist/agentSessions/HostInstance.js.map +1 -1
- package/dist/agentSessions/ReturningVisitorRecap.d.ts.map +1 -1
- package/dist/agentSessions/ReturningVisitorRecap.js +7 -3
- package/dist/agentSessions/ReturningVisitorRecap.js.map +1 -1
- package/dist/agentSessions/SessionJanitor.d.ts +173 -25
- package/dist/agentSessions/SessionJanitor.d.ts.map +1 -1
- package/dist/agentSessions/SessionJanitor.js +452 -54
- package/dist/agentSessions/SessionJanitor.js.map +1 -1
- package/dist/agentSessions/SessionManager.d.ts +43 -2
- package/dist/agentSessions/SessionManager.d.ts.map +1 -1
- package/dist/agentSessions/SessionManager.js +99 -8
- package/dist/agentSessions/SessionManager.js.map +1 -1
- package/dist/agentSessions/SessionRunIDVerifier.d.ts +63 -0
- package/dist/agentSessions/SessionRunIDVerifier.d.ts.map +1 -0
- package/dist/agentSessions/SessionRunIDVerifier.js +129 -0
- package/dist/agentSessions/SessionRunIDVerifier.js.map +1 -0
- package/dist/agentSessions/index.d.ts +2 -0
- package/dist/agentSessions/index.d.ts.map +1 -1
- package/dist/agentSessions/index.js +10 -3
- package/dist/agentSessions/index.js.map +1 -1
- package/dist/auth/actionAuthorization.d.ts +40 -0
- package/dist/auth/actionAuthorization.d.ts.map +1 -0
- package/dist/auth/actionAuthorization.js +94 -0
- package/dist/auth/actionAuthorization.js.map +1 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +3 -10
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/magicLink/MagicLinkService.d.ts.map +1 -1
- package/dist/auth/magicLink/MagicLinkService.js +6 -3
- package/dist/auth/magicLink/MagicLinkService.js.map +1 -1
- package/dist/auth/newUsers.d.ts +10 -0
- package/dist/auth/newUsers.d.ts.map +1 -1
- package/dist/auth/newUsers.js +80 -11
- package/dist/auth/newUsers.js.map +1 -1
- package/dist/config.d.ts +4567 -71
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +246 -3
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +8 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +25 -34
- package/dist/context.js.map +1 -1
- package/dist/generated/graphql-schemas/__mj.d.ts +1073 -10
- package/dist/generated/graphql-schemas/__mj.d.ts.map +1 -1
- package/dist/generated/graphql-schemas/__mj.js +9188 -3649
- package/dist/generated/graphql-schemas/__mj.js.map +1 -1
- package/dist/generic/OrphanedConversationDetailReconciler.js +3 -3
- package/dist/generic/OrphanedConversationDetailReconciler.js.map +1 -1
- package/dist/generic/ResolverBase.d.ts +62 -6
- package/dist/generic/ResolverBase.d.ts.map +1 -1
- package/dist/generic/ResolverBase.js +179 -35
- package/dist/generic/ResolverBase.js.map +1 -1
- package/dist/generic/RunViewResolver.d.ts +4 -0
- package/dist/generic/RunViewResolver.d.ts.map +1 -1
- package/dist/generic/RunViewResolver.js +37 -1
- package/dist/generic/RunViewResolver.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +214 -159
- package/dist/index.js.map +1 -1
- package/dist/isolatedProvider.d.ts +20 -0
- package/dist/isolatedProvider.d.ts.map +1 -0
- package/dist/isolatedProvider.js +22 -0
- package/dist/isolatedProvider.js.map +1 -0
- package/dist/postgresqlCompat.d.ts +8 -0
- package/dist/postgresqlCompat.d.ts.map +1 -0
- package/dist/postgresqlCompat.js +19 -0
- package/dist/postgresqlCompat.js.map +1 -0
- package/dist/postgresqlPoolSettings.d.ts +108 -0
- package/dist/postgresqlPoolSettings.d.ts.map +1 -0
- package/dist/postgresqlPoolSettings.js +134 -0
- package/dist/postgresqlPoolSettings.js.map +1 -0
- package/dist/realtimeProxy/RealtimeProxyServer.d.ts +44 -4
- package/dist/realtimeProxy/RealtimeProxyServer.d.ts.map +1 -1
- package/dist/realtimeProxy/RealtimeProxyServer.js +121 -16
- package/dist/realtimeProxy/RealtimeProxyServer.js.map +1 -1
- package/dist/realtimeProxy/RealtimeRelayTunnel.d.ts +171 -0
- package/dist/realtimeProxy/RealtimeRelayTunnel.d.ts.map +1 -0
- package/dist/realtimeProxy/RealtimeRelayTunnel.js +532 -0
- package/dist/realtimeProxy/RealtimeRelayTunnel.js.map +1 -0
- package/dist/realtimeSessions/RealtimeSessionEventService.d.ts +148 -0
- package/dist/realtimeSessions/RealtimeSessionEventService.d.ts.map +1 -0
- package/dist/realtimeSessions/RealtimeSessionEventService.js +191 -0
- package/dist/realtimeSessions/RealtimeSessionEventService.js.map +1 -0
- package/dist/realtimeSessions/RealtimeSessionVerificationService.d.ts +66 -0
- package/dist/realtimeSessions/RealtimeSessionVerificationService.d.ts.map +1 -0
- package/dist/realtimeSessions/RealtimeSessionVerificationService.js +138 -0
- package/dist/realtimeSessions/RealtimeSessionVerificationService.js.map +1 -0
- package/dist/realtimeSessions/RealtimeVerifyRouter.d.ts +38 -0
- package/dist/realtimeSessions/RealtimeVerifyRouter.d.ts.map +1 -0
- package/dist/realtimeSessions/RealtimeVerifyRouter.js +98 -0
- package/dist/realtimeSessions/RealtimeVerifyRouter.js.map +1 -0
- package/dist/realtimeSessions/SessionVerificationPortsBase.d.ts +61 -0
- package/dist/realtimeSessions/SessionVerificationPortsBase.d.ts.map +1 -0
- package/dist/realtimeSessions/SessionVerificationPortsBase.js +149 -0
- package/dist/realtimeSessions/SessionVerificationPortsBase.js.map +1 -0
- package/dist/realtimeSessions/SlidingWindowRateLimiter.d.ts +57 -0
- package/dist/realtimeSessions/SlidingWindowRateLimiter.d.ts.map +1 -0
- package/dist/realtimeSessions/SlidingWindowRateLimiter.js +69 -0
- package/dist/realtimeSessions/SlidingWindowRateLimiter.js.map +1 -0
- package/dist/realtimeSessions/index.d.ts +17 -0
- package/dist/realtimeSessions/index.d.ts.map +1 -0
- package/dist/realtimeSessions/index.js +17 -0
- package/dist/realtimeSessions/index.js.map +1 -0
- package/dist/realtimeSessions/sessionAccess.d.ts +86 -0
- package/dist/realtimeSessions/sessionAccess.d.ts.map +1 -0
- package/dist/realtimeSessions/sessionAccess.js +90 -0
- package/dist/realtimeSessions/sessionAccess.js.map +1 -0
- package/dist/realtimeSessions/sessionConfigStamps.d.ts +70 -0
- package/dist/realtimeSessions/sessionConfigStamps.d.ts.map +1 -0
- package/dist/realtimeSessions/sessionConfigStamps.js +93 -0
- package/dist/realtimeSessions/sessionConfigStamps.js.map +1 -0
- package/dist/realtimeSessions/subscriptionAuthorization.d.ts +65 -0
- package/dist/realtimeSessions/subscriptionAuthorization.d.ts.map +1 -0
- package/dist/realtimeSessions/subscriptionAuthorization.js +71 -0
- package/dist/realtimeSessions/subscriptionAuthorization.js.map +1 -0
- package/dist/realtimeSessions/verificationCore.d.ts +243 -0
- package/dist/realtimeSessions/verificationCore.d.ts.map +1 -0
- package/dist/realtimeSessions/verificationCore.js +356 -0
- package/dist/realtimeSessions/verificationCore.js.map +1 -0
- package/dist/realtimeSessions/verificationPages.d.ts +66 -0
- package/dist/realtimeSessions/verificationPages.d.ts.map +1 -0
- package/dist/realtimeSessions/verificationPages.js +110 -0
- package/dist/realtimeSessions/verificationPages.js.map +1 -0
- package/dist/realtimeSessions/verificationPolicy.d.ts +147 -0
- package/dist/realtimeSessions/verificationPolicy.d.ts.map +1 -0
- package/dist/realtimeSessions/verificationPolicy.js +249 -0
- package/dist/realtimeSessions/verificationPolicy.js.map +1 -0
- package/dist/realtimeSessions/verificationWorkflow.d.ts +263 -0
- package/dist/realtimeSessions/verificationWorkflow.d.ts.map +1 -0
- package/dist/realtimeSessions/verificationWorkflow.js +435 -0
- package/dist/realtimeSessions/verificationWorkflow.js.map +1 -0
- package/dist/realtimeWidget/widgetGuestElevation.d.ts +20 -2
- package/dist/realtimeWidget/widgetGuestElevation.d.ts.map +1 -1
- package/dist/realtimeWidget/widgetGuestElevation.js +31 -2
- package/dist/realtimeWidget/widgetGuestElevation.js.map +1 -1
- package/dist/resolvers/ActionResolver.d.ts +31 -5
- package/dist/resolvers/ActionResolver.d.ts.map +1 -1
- package/dist/resolvers/ActionResolver.js +75 -14
- package/dist/resolvers/ActionResolver.js.map +1 -1
- package/dist/resolvers/AdhocQueryResolver.d.ts +35 -17
- package/dist/resolvers/AdhocQueryResolver.d.ts.map +1 -1
- package/dist/resolvers/AdhocQueryResolver.js +92 -166
- package/dist/resolvers/AdhocQueryResolver.js.map +1 -1
- package/dist/resolvers/CacheStatsResolver.d.ts +27 -0
- package/dist/resolvers/CacheStatsResolver.d.ts.map +1 -1
- package/dist/resolvers/CacheStatsResolver.js +113 -2
- package/dist/resolvers/CacheStatsResolver.js.map +1 -1
- package/dist/resolvers/ClientToolRequestResolver.d.ts +4 -2
- package/dist/resolvers/ClientToolRequestResolver.d.ts.map +1 -1
- package/dist/resolvers/ClientToolRequestResolver.js +28 -10
- package/dist/resolvers/ClientToolRequestResolver.js.map +1 -1
- package/dist/resolvers/EntityRecordNameResolver.d.ts +7 -23
- package/dist/resolvers/EntityRecordNameResolver.d.ts.map +1 -1
- package/dist/resolvers/EntityRecordNameResolver.js +9 -47
- package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
- package/dist/resolvers/FetchEntityVectorsResolver.d.ts +12 -1
- package/dist/resolvers/FetchEntityVectorsResolver.d.ts.map +1 -1
- package/dist/resolvers/FetchEntityVectorsResolver.js +83 -2
- package/dist/resolvers/FetchEntityVectorsResolver.js.map +1 -1
- package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
- package/dist/resolvers/GetDataResolver.js +9 -0
- package/dist/resolvers/GetDataResolver.js.map +1 -1
- package/dist/resolvers/HumanHandoffResolver.d.ts +107 -0
- package/dist/resolvers/HumanHandoffResolver.d.ts.map +1 -0
- package/dist/resolvers/HumanHandoffResolver.js +330 -0
- package/dist/resolvers/HumanHandoffResolver.js.map +1 -0
- package/dist/resolvers/MCPResolver.d.ts.map +1 -1
- package/dist/resolvers/MCPResolver.js +9 -4
- package/dist/resolvers/MCPResolver.js.map +1 -1
- package/dist/resolvers/MeetingResolver.d.ts +69 -0
- package/dist/resolvers/MeetingResolver.d.ts.map +1 -0
- package/dist/resolvers/MeetingResolver.js +381 -0
- package/dist/resolvers/MeetingResolver.js.map +1 -0
- package/dist/resolvers/RealtimeBridgeResolver.d.ts +88 -3
- package/dist/resolvers/RealtimeBridgeResolver.d.ts.map +1 -1
- package/dist/resolvers/RealtimeBridgeResolver.js +352 -12
- package/dist/resolvers/RealtimeBridgeResolver.js.map +1 -1
- package/dist/resolvers/RealtimeClientSessionResolver.d.ts +156 -108
- package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -1
- package/dist/resolvers/RealtimeClientSessionResolver.js +395 -293
- package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -1
- package/dist/resolvers/RealtimeSessionEventsResolver.d.ts +61 -0
- package/dist/resolvers/RealtimeSessionEventsResolver.d.ts.map +1 -0
- package/dist/resolvers/RealtimeSessionEventsResolver.js +130 -0
- package/dist/resolvers/RealtimeSessionEventsResolver.js.map +1 -0
- package/dist/resolvers/RealtimeSessionVerificationResolver.d.ts +85 -0
- package/dist/resolvers/RealtimeSessionVerificationResolver.d.ts.map +1 -0
- package/dist/resolvers/RealtimeSessionVerificationResolver.js +188 -0
- package/dist/resolvers/RealtimeSessionVerificationResolver.js.map +1 -0
- package/dist/resolvers/RemoteBrowserActionResolver.d.ts +2 -0
- package/dist/resolvers/RemoteBrowserActionResolver.d.ts.map +1 -1
- package/dist/resolvers/RemoteBrowserActionResolver.js +5 -1
- package/dist/resolvers/RemoteBrowserActionResolver.js.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.d.ts +10 -0
- package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.js +68 -11
- package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
- package/dist/resolvers/RunTemplateResolver.d.ts.map +1 -1
- package/dist/resolvers/RunTemplateResolver.js +12 -11
- package/dist/resolvers/RunTemplateResolver.js.map +1 -1
- package/dist/resolvers/SyncDataResolver.d.ts.map +1 -1
- package/dist/resolvers/SyncDataResolver.js +6 -2
- package/dist/resolvers/SyncDataResolver.js.map +1 -1
- package/dist/resolvers/SyncRolesUsersResolver.d.ts +2 -0
- package/dist/resolvers/SyncRolesUsersResolver.d.ts.map +1 -1
- package/dist/resolvers/SyncRolesUsersResolver.js +23 -6
- package/dist/resolvers/SyncRolesUsersResolver.js.map +1 -1
- package/dist/resolvers/UserAvatarResolver.d.ts +16 -0
- package/dist/resolvers/UserAvatarResolver.d.ts.map +1 -0
- package/dist/resolvers/UserAvatarResolver.js +124 -0
- package/dist/resolvers/UserAvatarResolver.js.map +1 -0
- package/dist/resolvers/UserResolver.d.ts.map +1 -1
- package/dist/resolvers/UserResolver.js +2 -17
- package/dist/resolvers/UserResolver.js.map +1 -1
- package/dist/resolvers/adhocTimeout.d.ts +7 -0
- package/dist/resolvers/adhocTimeout.d.ts.map +1 -0
- package/dist/resolvers/adhocTimeout.js +12 -0
- package/dist/resolvers/adhocTimeout.js.map +1 -0
- package/dist/resolvers/agentVisionConsentAudit.d.ts +37 -0
- package/dist/resolvers/agentVisionConsentAudit.d.ts.map +1 -0
- package/dist/resolvers/agentVisionConsentAudit.js +63 -0
- package/dist/resolvers/agentVisionConsentAudit.js.map +1 -0
- package/dist/resolvers/avatarInputValidation.d.ts +40 -0
- package/dist/resolvers/avatarInputValidation.d.ts.map +1 -0
- package/dist/resolvers/avatarInputValidation.js +97 -0
- package/dist/resolvers/avatarInputValidation.js.map +1 -0
- package/dist/resolvers/currentUserRoles.d.ts +29 -0
- package/dist/resolvers/currentUserRoles.d.ts.map +1 -1
- package/dist/resolvers/currentUserRoles.js +30 -0
- package/dist/resolvers/currentUserRoles.js.map +1 -1
- package/dist/resolvers/meetings/index.d.ts +5 -0
- package/dist/resolvers/meetings/index.d.ts.map +1 -0
- package/dist/resolvers/meetings/index.js +5 -0
- package/dist/resolvers/meetings/index.js.map +1 -0
- package/dist/resolvers/meetings/meetingHelpers.d.ts +17 -0
- package/dist/resolvers/meetings/meetingHelpers.d.ts.map +1 -0
- package/dist/resolvers/meetings/meetingHelpers.js +212 -0
- package/dist/resolvers/meetings/meetingHelpers.js.map +1 -0
- package/dist/resolvers/meetings/meetingMutations.d.ts +18 -0
- package/dist/resolvers/meetings/meetingMutations.d.ts.map +1 -0
- package/dist/resolvers/meetings/meetingMutations.js +439 -0
- package/dist/resolvers/meetings/meetingMutations.js.map +1 -0
- package/dist/resolvers/meetings/meetingQueries.d.ts +7 -0
- package/dist/resolvers/meetings/meetingQueries.d.ts.map +1 -0
- package/dist/resolvers/meetings/meetingQueries.js +113 -0
- package/dist/resolvers/meetings/meetingQueries.js.map +1 -0
- package/dist/resolvers/meetings/meetingTypes.d.ts +89 -0
- package/dist/resolvers/meetings/meetingTypes.d.ts.map +1 -0
- package/dist/resolvers/meetings/meetingTypes.js +345 -0
- package/dist/resolvers/meetings/meetingTypes.js.map +1 -0
- package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
- package/dist/rest/ViewOperationsHandler.js +8 -5
- package/dist/rest/ViewOperationsHandler.js.map +1 -1
- package/dist/services/TaskGraphActionRunner.d.ts +8 -0
- package/dist/services/TaskGraphActionRunner.d.ts.map +1 -1
- package/dist/services/TaskGraphActionRunner.js +27 -1
- package/dist/services/TaskGraphActionRunner.js.map +1 -1
- package/dist/services/TaskGraphContinuationDeliverer.d.ts +4 -3
- package/dist/services/TaskGraphContinuationDeliverer.d.ts.map +1 -1
- package/dist/services/TaskGraphContinuationDeliverer.js +13 -7
- package/dist/services/TaskGraphContinuationDeliverer.js.map +1 -1
- package/dist/services/WorkQueueHostService.d.ts +36 -0
- package/dist/services/WorkQueueHostService.d.ts.map +1 -0
- package/dist/services/WorkQueueHostService.js +97 -0
- package/dist/services/WorkQueueHostService.js.map +1 -0
- package/dist/services/workQueueConfig.d.ts +103 -0
- package/dist/services/workQueueConfig.d.ts.map +1 -0
- package/dist/services/workQueueConfig.js +48 -0
- package/dist/services/workQueueConfig.js.map +1 -0
- package/dist/sharedCache.d.ts +105 -0
- package/dist/sharedCache.d.ts.map +1 -0
- package/dist/sharedCache.js +276 -0
- package/dist/sharedCache.js.map +1 -0
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +97 -94
- package/src/__tests__/ActionResolver.authorization.test.ts +353 -0
- package/src/__tests__/AdhocQueryResolver.bugs.test.ts +14 -35
- package/src/__tests__/AdhocQueryResolver.pagination.test.ts +6 -2
- package/src/__tests__/AdhocQueryResolver.scopeGuard.test.ts +3 -3
- package/src/__tests__/AdhocQueryResolver.sqlAuthorizer.test.ts +104 -0
- package/src/__tests__/BridgeHostInstance.test.ts +232 -0
- package/src/__tests__/ClientToolRequestResolver.test.ts +116 -0
- package/src/__tests__/EntityRecordNameResolver.fieldSecurity.test.ts +27 -72
- package/src/__tests__/FetchEntityVectorsResolver.test.ts +285 -0
- package/src/__tests__/HostInstance.test.ts +84 -0
- package/src/__tests__/HumanHandoffResolver.test.ts +250 -0
- package/src/__tests__/MeetingResolver.test.ts +448 -0
- package/src/__tests__/RealtimeBridgeResolver.test.ts +651 -4
- package/src/__tests__/RealtimeClientSessionResolver.configTamper.test.ts +383 -0
- package/src/__tests__/RealtimeClientSessionResolver.test.ts +682 -58
- package/src/__tests__/RealtimeProxyServer.test.ts +16 -1
- package/src/__tests__/RealtimeRelay.test.ts +876 -0
- package/src/__tests__/RemoteBrowserActionResolver.goalRunLink.test.ts +129 -0
- package/src/__tests__/ResolverBase.adhocReadScope.test.ts +96 -0
- package/src/__tests__/ResolverBase.aggregateScreen.test.ts +174 -0
- package/src/__tests__/ResolverBase.clientOldValues.test.ts +6 -3
- package/src/__tests__/ResolverBase.filterEscaping.test.ts +21 -2
- package/src/__tests__/ResolverBase.includeBinaryFields.test.ts +291 -0
- package/src/__tests__/ReturningVisitorRecap.test.ts +115 -0
- package/src/__tests__/RunAIAgentResolver.branch.test.ts +169 -0
- package/src/__tests__/RunAIAgentResolver.historyFrom.test.ts +4 -4
- package/src/__tests__/RunAIAgentResolver.stoppedPredecessor.test.ts +166 -0
- package/src/__tests__/RunTemplateResolver.test.ts +132 -0
- package/src/__tests__/RunViewResolver.cacheCheckForwarding.test.ts +63 -0
- package/src/__tests__/SessionJanitor.test.ts +845 -18
- package/src/__tests__/SessionManager.test.ts +213 -17
- package/src/__tests__/SessionRunIDVerifier.test.ts +251 -0
- package/src/__tests__/SyncRolesUsersResolver.userRoles.test.ts +97 -0
- package/src/__tests__/TaskGraphActionRunner.durablePayload.test.ts +41 -0
- package/src/__tests__/TaskGraphContinuationDeliverer.test.ts +50 -3
- package/src/__tests__/UserAvatarResolver.test.ts +255 -0
- package/src/__tests__/UserResolver.currentUser.test.ts +16 -1
- package/src/__tests__/WorkQueueHostService.test.ts +133 -0
- package/src/__tests__/actionAuthorization.test.ts +130 -0
- package/src/__tests__/adhocTimeoutClamp.test.ts +26 -0
- package/src/__tests__/agentVisionConsentAudit.test.ts +118 -0
- package/src/__tests__/avatarInputValidation.test.ts +160 -0
- package/src/__tests__/isolatedProviderTransactions.test.ts +169 -0
- package/src/__tests__/magicLinkService.consume.test.ts +6 -0
- package/src/__tests__/magicLinkService.provisionLog.test.ts +5 -0
- package/src/__tests__/newUsers.template.test.ts +151 -0
- package/src/__tests__/newUsers.test.ts +74 -5
- package/src/__tests__/orphanedConversationDetailReconciler.test.ts +17 -2
- package/src/__tests__/postgresqlPoolSettings.test.ts +131 -0
- package/src/__tests__/realtimeSessions/RealtimeSessionEventService.test.ts +201 -0
- package/src/__tests__/realtimeSessions/RealtimeSessionEventsResolver.test.ts +215 -0
- package/src/__tests__/realtimeSessions/RealtimeSessionVerificationResolver.test.ts +102 -0
- package/src/__tests__/realtimeSessions/RealtimeSessionVerificationService.test.ts +349 -0
- package/src/__tests__/realtimeSessions/RealtimeVerifyRouter.test.ts +131 -0
- package/src/__tests__/realtimeSessions/SlidingWindowRateLimiter.test.ts +56 -0
- package/src/__tests__/realtimeSessions/helpers.ts +4 -0
- package/src/__tests__/realtimeSessions/sessionAccess.test.ts +129 -0
- package/src/__tests__/realtimeSessions/sessionConfigStamps.test.ts +124 -0
- package/src/__tests__/realtimeSessions/verificationCore.test.ts +355 -0
- package/src/__tests__/realtimeSessions/verificationPages.test.ts +84 -0
- package/src/__tests__/realtimeSessions/verificationPolicy.test.ts +226 -0
- package/src/__tests__/realtimeSessions/verificationWorkflow.test.ts +633 -0
- package/src/__tests__/resolverBase.fls.test.ts +87 -4
- package/src/__tests__/serverExtensionReservedRoots.test.ts +2 -0
- package/src/__tests__/sharedCache.test.ts +310 -0
- package/src/__tests__/translateBracketsToPG.test.ts +20 -0
- package/src/__tests__/widgetGuestElevation.test.ts +44 -0
- package/src/agentSessions/BridgeHostInstance.ts +32 -0
- package/src/agentSessions/HostInstance.ts +124 -28
- package/src/agentSessions/ReturningVisitorRecap.ts +7 -3
- package/src/agentSessions/SessionJanitor.ts +543 -57
- package/src/agentSessions/SessionManager.ts +125 -25
- package/src/agentSessions/SessionRunIDVerifier.ts +171 -0
- package/src/agentSessions/index.ts +10 -3
- package/src/auth/actionAuthorization.ts +116 -0
- package/src/auth/index.ts +3 -8
- package/src/auth/magicLink/MagicLinkService.ts +6 -3
- package/src/auth/newUsers.ts +99 -11
- package/src/config.ts +255 -3
- package/src/context.ts +26 -34
- package/src/generated/graphql-schemas/__mj.ts +22701 -18838
- package/src/generic/OrphanedConversationDetailReconciler.ts +3 -3
- package/src/generic/ResolverBase.ts +210 -36
- package/src/generic/RunViewResolver.ts +37 -2
- package/src/index.ts +236 -170
- package/src/isolatedProvider.ts +22 -0
- package/src/postgresqlCompat.ts +21 -0
- package/src/postgresqlPoolSettings.ts +213 -0
- package/src/realtimeProxy/RealtimeProxyServer.ts +148 -16
- package/src/realtimeProxy/RealtimeRelayTunnel.ts +645 -0
- package/src/realtimeSessions/README.md +179 -0
- package/src/realtimeSessions/RealtimeSessionEventService.ts +274 -0
- package/src/realtimeSessions/RealtimeSessionVerificationService.ts +167 -0
- package/src/realtimeSessions/RealtimeVerifyRouter.ts +108 -0
- package/src/realtimeSessions/SessionVerificationPortsBase.ts +189 -0
- package/src/realtimeSessions/SlidingWindowRateLimiter.ts +92 -0
- package/src/realtimeSessions/index.ts +16 -0
- package/src/realtimeSessions/sessionAccess.ts +141 -0
- package/src/realtimeSessions/sessionConfigStamps.ts +123 -0
- package/src/realtimeSessions/subscriptionAuthorization.ts +116 -0
- package/src/realtimeSessions/verificationCore.ts +502 -0
- package/src/realtimeSessions/verificationPages.ts +149 -0
- package/src/realtimeSessions/verificationPolicy.ts +321 -0
- package/src/realtimeSessions/verificationWorkflow.ts +702 -0
- package/src/realtimeWidget/widgetGuestElevation.ts +34 -2
- package/src/resolvers/ActionResolver.ts +84 -21
- package/src/resolvers/AdhocQueryResolver.ts +105 -187
- package/src/resolvers/CacheStatsResolver.ts +89 -2
- package/src/resolvers/ClientToolRequestResolver.ts +25 -7
- package/src/resolvers/EntityRecordNameResolver.ts +9 -51
- package/src/resolvers/FetchEntityVectorsResolver.ts +97 -2
- package/src/resolvers/GetDataResolver.ts +10 -0
- package/src/resolvers/HumanHandoffResolver.ts +312 -0
- package/src/resolvers/MCPResolver.ts +8 -5
- package/src/resolvers/MeetingResolver.ts +438 -0
- package/src/resolvers/RealtimeBridgeResolver.ts +385 -19
- package/src/resolvers/RealtimeClientSessionResolver.ts +503 -344
- package/src/resolvers/RealtimeSessionEventsResolver.ts +133 -0
- package/src/resolvers/RealtimeSessionVerificationResolver.ts +174 -0
- package/src/resolvers/RemoteBrowserActionResolver.ts +11 -1
- package/src/resolvers/RunAIAgentResolver.ts +78 -11
- package/src/resolvers/RunTemplateResolver.ts +13 -12
- package/src/resolvers/SyncDataResolver.ts +6 -2
- package/src/resolvers/SyncRolesUsersResolver.ts +24 -6
- package/src/resolvers/UserAvatarResolver.ts +111 -0
- package/src/resolvers/UserResolver.ts +2 -16
- package/src/resolvers/adhocTimeout.ts +12 -0
- package/src/resolvers/agentVisionConsentAudit.ts +82 -0
- package/src/resolvers/avatarInputValidation.ts +123 -0
- package/src/resolvers/currentUserRoles.ts +32 -1
- package/src/resolvers/meetings/index.ts +4 -0
- package/src/resolvers/meetings/meetingHelpers.ts +307 -0
- package/src/resolvers/meetings/meetingMutations.ts +556 -0
- package/src/resolvers/meetings/meetingQueries.ts +172 -0
- package/src/resolvers/meetings/meetingTypes.ts +238 -0
- package/src/rest/ViewOperationsHandler.ts +8 -5
- package/src/services/TaskGraphActionRunner.ts +29 -1
- package/src/services/TaskGraphContinuationDeliverer.ts +13 -7
- package/src/services/WorkQueueHostService.ts +129 -0
- package/src/services/workQueueConfig.ts +52 -0
- package/src/sharedCache.ts +302 -0
- package/src/types.ts +12 -0
- package/dist/resolvers/adhoc-query-helpers.d.ts +0 -33
- package/dist/resolvers/adhoc-query-helpers.d.ts.map +0 -1
- package/dist/resolvers/adhoc-query-helpers.js +0 -50
- package/dist/resolvers/adhoc-query-helpers.js.map +0 -1
- package/src/__tests__/adhoc-query-helpers.test.ts +0 -50
- package/src/resolvers/adhoc-query-helpers.ts +0 -67
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { WebSocket as WsClient } from 'ws';
|
|
2
|
+
import { type IRealtimeRelayPolicy } from '@memberjunction/ai';
|
|
3
|
+
/** The relay's deadlines, pings, buffers and caps. */
|
|
4
|
+
export interface RealtimeRelayLimits {
|
|
5
|
+
/** How long the browser has to send its first frame after the upgrade, in ms. */
|
|
6
|
+
FirstFrameTimeoutMs: number;
|
|
7
|
+
/** How long the upstream has to open, from the header fetch to the end of its handshake, in ms. */
|
|
8
|
+
UpstreamOpenTimeoutMs: number;
|
|
9
|
+
/** How often the relay pings each leg, in ms. */
|
|
10
|
+
PingIntervalMs: number;
|
|
11
|
+
/**
|
|
12
|
+
* Pings a leg may leave unanswered in a row. At the next ping a leg that answered none of them is terminated and the
|
|
13
|
+
* other leg is closed (any pong resets the count).
|
|
14
|
+
*/
|
|
15
|
+
MaxMissedPongs: number;
|
|
16
|
+
/** Client frames held while the upstream opens; past this the oldest are dropped. */
|
|
17
|
+
MaxPendingFrames: number;
|
|
18
|
+
/** Bytes of client frames held while the upstream opens; past this the oldest are dropped. */
|
|
19
|
+
MaxPendingBytes: number;
|
|
20
|
+
/**
|
|
21
|
+
* Bytes the browser leg may have queued after a downstream send. Past this the browser cannot keep up: the tunnel
|
|
22
|
+
* closes (1013 to the browser, 1001 upstream) and the client resumes on a new connection.
|
|
23
|
+
*/
|
|
24
|
+
MaxBrowserBufferedBytes: number;
|
|
25
|
+
/**
|
|
26
|
+
* Bytes the upstream leg may have queued after an upstream send. Past this the provider has stopped reading: the
|
|
27
|
+
* tunnel closes (1013 to the browser, 1001 upstream) and the client resumes on a new connection.
|
|
28
|
+
*/
|
|
29
|
+
MaxUpstreamBufferedBytes: number;
|
|
30
|
+
}
|
|
31
|
+
/** The limits MJAPI runs the relay with. */
|
|
32
|
+
export declare const REALTIME_RELAY_LIMITS: Readonly<RealtimeRelayLimits>;
|
|
33
|
+
/**
|
|
34
|
+
* The largest client message the relay accepts (2 MiB). The relay's websocket server enforces it while reading, so a
|
|
35
|
+
* larger message closes the browser leg with 1009 before it is buffered.
|
|
36
|
+
*/
|
|
37
|
+
export declare const REALTIME_RELAY_MAX_CLIENT_FRAME_BYTES: number;
|
|
38
|
+
/** How a relay tunnel reports to the server that owns it. */
|
|
39
|
+
export interface RealtimeRelayTunnelHost {
|
|
40
|
+
/** The session granted this connection: the server makes it the session's live one and closes the older one. */
|
|
41
|
+
OnGranted(tunnel: RealtimeRelayTunnel): void;
|
|
42
|
+
/** The tunnel closed; called once. */
|
|
43
|
+
OnClosed(tunnel: RealtimeRelayTunnel): void;
|
|
44
|
+
}
|
|
45
|
+
/** The first 8 characters of a ticket id, safe to log (never the whole id). */
|
|
46
|
+
export declare function RelayTicketPrefix(id: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* One browser connection through MJAPI's realtime relay (`/realtime/relay/<ticket>/…`).
|
|
49
|
+
*
|
|
50
|
+
* It waits for the browser's first frame, asks the session's policy what that frame opens, and lets the registry
|
|
51
|
+
* decide (one fresh connection, then resumes with a forwarded handle). Then it opens the upstream with headers the
|
|
52
|
+
* policy mints for this connection, sends the policy's opening frames before anything else, and pumps both ways: client
|
|
53
|
+
* frames through the policy's filter (text only; binary client frames are dropped), server frames unchanged once the
|
|
54
|
+
* policy has looked for a resumption handle. It pings both legs and terminates one that stops answering, closes a
|
|
55
|
+
* browser that cannot keep up with what it is sent and an upstream that stops reading, passes close codes through, and closes when the session ends. Logs
|
|
56
|
+
* carry counts, sizes, codes and an 8-character ticket prefix, never payloads, headers or tokens.
|
|
57
|
+
*/
|
|
58
|
+
export declare class RealtimeRelayTunnel {
|
|
59
|
+
private readonly browser;
|
|
60
|
+
private readonly sessionId;
|
|
61
|
+
private readonly policy;
|
|
62
|
+
private readonly limits;
|
|
63
|
+
private readonly host;
|
|
64
|
+
private upstream;
|
|
65
|
+
private grant;
|
|
66
|
+
private intent;
|
|
67
|
+
/** Client frames that passed the filter before the upstream opened, in arrival order. */
|
|
68
|
+
private readonly pending;
|
|
69
|
+
private pendingBytes;
|
|
70
|
+
/** Dropped client frames per type label. */
|
|
71
|
+
private readonly drops;
|
|
72
|
+
private readonly traffic;
|
|
73
|
+
/** Pings each leg has left unanswered since its last pong. */
|
|
74
|
+
private readonly unanswered;
|
|
75
|
+
private firstFrameTimer;
|
|
76
|
+
private upstreamTimer;
|
|
77
|
+
private lifetimeTimer;
|
|
78
|
+
private pingTimer;
|
|
79
|
+
private openedAtMs;
|
|
80
|
+
private browserCloseCode;
|
|
81
|
+
private upstreamCloseNote;
|
|
82
|
+
private closed;
|
|
83
|
+
constructor(browser: WsClient, sessionId: string, policy: IRealtimeRelayPolicy, limits: RealtimeRelayLimits, host: RealtimeRelayTunnelHost);
|
|
84
|
+
/** The relay session this connection belongs to. */
|
|
85
|
+
get SessionID(): string;
|
|
86
|
+
/** Starts the first-frame deadline and the pings, and listens to the browser leg. */
|
|
87
|
+
Start(): void;
|
|
88
|
+
/** Closes both legs with `code` and `reason` (no code: a close frame without one). Idempotent. */
|
|
89
|
+
Close(code?: number, reason?: string): void;
|
|
90
|
+
private onBrowserMessage;
|
|
91
|
+
/** Reads the first frame's intent, asks the registry, and opens the upstream when the connection is granted. */
|
|
92
|
+
private openFromFirstFrame;
|
|
93
|
+
/** The policy's reading of the first frame; a policy that throws opens nothing (only the error's name is logged). */
|
|
94
|
+
private readIntent;
|
|
95
|
+
/** Opens the upstream with headers the policy mints now, under the upstream deadline. */
|
|
96
|
+
private openUpstream;
|
|
97
|
+
/** Asks the policy for this connection's upstream headers; a failure closes the tunnel with 1011. */
|
|
98
|
+
private fetchHeaders;
|
|
99
|
+
/** Starts the upstream handshake; a refused URL closes the tunnel with 1014. */
|
|
100
|
+
private connectUpstream;
|
|
101
|
+
/** The upstream is open: the policy's opening frames go first, then what the browser sent meanwhile. */
|
|
102
|
+
private onUpstreamOpen;
|
|
103
|
+
/** The policy's opening frames; a policy that throws closes the tunnel with 1011. */
|
|
104
|
+
private openingFrames;
|
|
105
|
+
/** A client frame after the first: binary is dropped, text goes through the policy's filter. */
|
|
106
|
+
private fromBrowser;
|
|
107
|
+
/** The policy's verdict on a client frame; a policy that throws drops the frame. */
|
|
108
|
+
private filter;
|
|
109
|
+
/**
|
|
110
|
+
* Holds a frame until the upstream opens; past either cap (frames or bytes) the oldest go (stale audio is worthless
|
|
111
|
+
* anyway). A frame larger than the byte cap on its own is dropped.
|
|
112
|
+
*/
|
|
113
|
+
private hold;
|
|
114
|
+
/**
|
|
115
|
+
* A server frame: a handle it carries is recorded before the frame goes to the browser, unchanged; then the browser
|
|
116
|
+
* leg's queue is checked against the cap.
|
|
117
|
+
*/
|
|
118
|
+
private onUpstreamMessage;
|
|
119
|
+
/**
|
|
120
|
+
* A browser that cannot keep up (its queued bytes pass `MaxBrowserBufferedBytes` after a downstream send) is closed
|
|
121
|
+
* with 1013 and the upstream with 1001; the client resumes on a new connection.
|
|
122
|
+
*/
|
|
123
|
+
private closeIfBrowserBehind;
|
|
124
|
+
/** The resumption handle the policy finds in a server frame, if any; a policy that throws finds none. */
|
|
125
|
+
private observe;
|
|
126
|
+
/** Sends one text frame upstream and counts it; then the upstream leg's queue is checked against the cap. */
|
|
127
|
+
private sendUp;
|
|
128
|
+
/**
|
|
129
|
+
* An upstream that has stopped reading (its queued bytes pass `MaxUpstreamBufferedBytes` after an upstream send) is
|
|
130
|
+
* closed with 1001 and the browser with 1013, before the ping watchdog would notice; the client resumes on a new
|
|
131
|
+
* connection.
|
|
132
|
+
*/
|
|
133
|
+
private closeIfUpstreamBehind;
|
|
134
|
+
/** Sends on a leg that is open, keeping text as text and binary as binary; a failed send closes the tunnel. */
|
|
135
|
+
private send;
|
|
136
|
+
/**
|
|
137
|
+
* Pings each open leg, so idle timeouts on load balancers and ingresses do not close it. A leg that answered none of
|
|
138
|
+
* its last `MaxMissedPongs` pings is gone: it is terminated and the other leg closed.
|
|
139
|
+
*/
|
|
140
|
+
private pingBoth;
|
|
141
|
+
/** A leg stopped answering pings: it is terminated, and the other leg closes (1001 upstream, 1014 to the browser). */
|
|
142
|
+
private closeSilentLeg;
|
|
143
|
+
/** The upstream closed: the browser gets the same code and reason (1014 when the upstream sent none). */
|
|
144
|
+
private onUpstreamClose;
|
|
145
|
+
/** The browser closed: the upstream gets the same code and reason (1001 when the browser sent none). */
|
|
146
|
+
private onBrowserClose;
|
|
147
|
+
/** The upstream failed (a refused handshake, a dropped socket): the browser gets 1014. */
|
|
148
|
+
private onUpstreamError;
|
|
149
|
+
/** The browser leg failed; `ws` has already closed it with the right code (1009 for an oversized frame). */
|
|
150
|
+
private onBrowserError;
|
|
151
|
+
/**
|
|
152
|
+
* Closes both legs (the upstream with the browser's close unless it gets its own), stops the timers and reports to
|
|
153
|
+
* the server. Idempotent.
|
|
154
|
+
*/
|
|
155
|
+
private closeWith;
|
|
156
|
+
/** Closes one leg unless it is already closing; `Terminate`, or a handshake in progress, drops the socket. */
|
|
157
|
+
private static closeLeg;
|
|
158
|
+
private static terminate;
|
|
159
|
+
/** Refuses the connection with 1008; the reason is logged, the browser only learns it was refused. */
|
|
160
|
+
private refuse;
|
|
161
|
+
private static after;
|
|
162
|
+
private static cancel;
|
|
163
|
+
private stopTimers;
|
|
164
|
+
/** Counts a dropped client frame under a sanitized label (the label is the policy's, never the payload). */
|
|
165
|
+
private countDrop;
|
|
166
|
+
private get label();
|
|
167
|
+
private warn;
|
|
168
|
+
private logOpened;
|
|
169
|
+
private logClosed;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=RealtimeRelayTunnel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RealtimeRelayTunnel.d.ts","sourceRoot":"","sources":["../../src/realtimeProxy/RealtimeRelayTunnel.ts"],"names":[],"mappings":"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"}
|