@memberjunction/server 5.40.1 → 5.41.0

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.
Files changed (101) hide show
  1. package/dist/agentSessions/HostInstance.d.ts +19 -0
  2. package/dist/agentSessions/HostInstance.d.ts.map +1 -0
  3. package/dist/agentSessions/HostInstance.js +48 -0
  4. package/dist/agentSessions/HostInstance.js.map +1 -0
  5. package/dist/agentSessions/SessionJanitor.d.ts +97 -0
  6. package/dist/agentSessions/SessionJanitor.d.ts.map +1 -0
  7. package/dist/agentSessions/SessionJanitor.js +222 -0
  8. package/dist/agentSessions/SessionJanitor.js.map +1 -0
  9. package/dist/agentSessions/SessionManager.d.ts +142 -0
  10. package/dist/agentSessions/SessionManager.d.ts.map +1 -0
  11. package/dist/agentSessions/SessionManager.js +308 -0
  12. package/dist/agentSessions/SessionManager.js.map +1 -0
  13. package/dist/agentSessions/index.d.ts +4 -0
  14. package/dist/agentSessions/index.d.ts.map +1 -0
  15. package/dist/agentSessions/index.js +26 -0
  16. package/dist/agentSessions/index.js.map +1 -0
  17. package/dist/auth/initializeProviders.d.ts.map +1 -1
  18. package/dist/auth/initializeProviders.js +6 -1
  19. package/dist/auth/initializeProviders.js.map +1 -1
  20. package/dist/config.d.ts +245 -0
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +34 -0
  23. package/dist/config.js.map +1 -1
  24. package/dist/context.d.ts.map +1 -1
  25. package/dist/context.js +41 -7
  26. package/dist/context.js.map +1 -1
  27. package/dist/generated/generated.d.ts +659 -3
  28. package/dist/generated/generated.d.ts.map +1 -1
  29. package/dist/generated/generated.js +5459 -1759
  30. package/dist/generated/generated.js.map +1 -1
  31. package/dist/generic/ResolverBase.js +1 -1
  32. package/dist/generic/ResolverBase.js.map +1 -1
  33. package/dist/generic/RunViewResolver.js +9 -10
  34. package/dist/generic/RunViewResolver.js.map +1 -1
  35. package/dist/index.d.ts +4 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +112 -42
  38. package/dist/index.js.map +1 -1
  39. package/dist/logging/StartupLogger.d.ts +121 -0
  40. package/dist/logging/StartupLogger.d.ts.map +1 -0
  41. package/dist/logging/StartupLogger.js +245 -0
  42. package/dist/logging/StartupLogger.js.map +1 -0
  43. package/dist/logging/variablesLoggingMiddleware.d.ts.map +1 -1
  44. package/dist/logging/variablesLoggingMiddleware.js +21 -2
  45. package/dist/logging/variablesLoggingMiddleware.js.map +1 -1
  46. package/dist/middleware/RateLimitMiddleware.d.ts +16 -0
  47. package/dist/middleware/RateLimitMiddleware.d.ts.map +1 -0
  48. package/dist/middleware/RateLimitMiddleware.js +77 -0
  49. package/dist/middleware/RateLimitMiddleware.js.map +1 -0
  50. package/dist/middleware/index.d.ts +1 -0
  51. package/dist/middleware/index.d.ts.map +1 -1
  52. package/dist/middleware/index.js +1 -0
  53. package/dist/middleware/index.js.map +1 -1
  54. package/dist/resolvers/AgentSessionResolver.d.ts +42 -0
  55. package/dist/resolvers/AgentSessionResolver.d.ts.map +1 -0
  56. package/dist/resolvers/AgentSessionResolver.js +152 -0
  57. package/dist/resolvers/AgentSessionResolver.js.map +1 -0
  58. package/dist/resolvers/EntityPermissionResolver.d.ts +16 -0
  59. package/dist/resolvers/EntityPermissionResolver.d.ts.map +1 -0
  60. package/dist/resolvers/EntityPermissionResolver.js +95 -0
  61. package/dist/resolvers/EntityPermissionResolver.js.map +1 -0
  62. package/dist/resolvers/RealtimeClientSessionResolver.d.ts +688 -0
  63. package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -0
  64. package/dist/resolvers/RealtimeClientSessionResolver.js +1774 -0
  65. package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -0
  66. package/dist/resolvers/RemoteBrowserActionResolver.d.ts +359 -0
  67. package/dist/resolvers/RemoteBrowserActionResolver.d.ts.map +1 -0
  68. package/dist/resolvers/RemoteBrowserActionResolver.js +896 -0
  69. package/dist/resolvers/RemoteBrowserActionResolver.js.map +1 -0
  70. package/dist/rest/SignatureWebhookHandler.js +3 -2
  71. package/dist/rest/SignatureWebhookHandler.js.map +1 -1
  72. package/dist/services/ScheduledJobsService.d.ts.map +1 -1
  73. package/dist/services/ScheduledJobsService.js +6 -5
  74. package/dist/services/ScheduledJobsService.js.map +1 -1
  75. package/package.json +78 -74
  76. package/src/__tests__/RealtimeClientSessionResolver.test.ts +2605 -0
  77. package/src/__tests__/RemoteBrowserAudioStream.test.ts +174 -0
  78. package/src/__tests__/SessionJanitor.test.ts +234 -0
  79. package/src/__tests__/SessionManager.test.ts +465 -0
  80. package/src/__tests__/subscriptionRedaction.test.ts +5 -0
  81. package/src/agentSessions/HostInstance.ts +53 -0
  82. package/src/agentSessions/SessionJanitor.ts +267 -0
  83. package/src/agentSessions/SessionManager.ts +446 -0
  84. package/src/agentSessions/index.ts +27 -0
  85. package/src/auth/initializeProviders.ts +6 -1
  86. package/src/config.ts +38 -0
  87. package/src/context.ts +42 -7
  88. package/src/generated/generated.ts +3111 -567
  89. package/src/generic/ResolverBase.ts +1 -1
  90. package/src/generic/RunViewResolver.ts +9 -9
  91. package/src/index.ts +112 -42
  92. package/src/logging/StartupLogger.ts +317 -0
  93. package/src/logging/variablesLoggingMiddleware.ts +25 -5
  94. package/src/middleware/RateLimitMiddleware.ts +87 -0
  95. package/src/middleware/index.ts +1 -0
  96. package/src/resolvers/AgentSessionResolver.ts +138 -0
  97. package/src/resolvers/EntityPermissionResolver.ts +73 -0
  98. package/src/resolvers/RealtimeClientSessionResolver.ts +2162 -0
  99. package/src/resolvers/RemoteBrowserActionResolver.ts +907 -0
  100. package/src/rest/SignatureWebhookHandler.ts +3 -2
  101. package/src/services/ScheduledJobsService.ts +6 -5
@@ -42,11 +42,12 @@ function captureRawBody(req: express.Request, _res: express.Response, buf: Buffe
42
42
  }
43
43
 
44
44
  async function handleWebhook(req: express.Request, res: express.Response): Promise<void> {
45
- const driverKey = req.params.driverKey;
46
- if (!driverKey) {
45
+ const rawDriverKey = req.params.driverKey;
46
+ if (!rawDriverKey) {
47
47
  res.status(400).json({ error: 'Missing driver key in path.' });
48
48
  return;
49
49
  }
50
+ const driverKey: string = Array.isArray(rawDriverKey) ? rawDriverKey[0] : rawDriverKey;
50
51
 
51
52
  const contextUser = getSystemUser();
52
53
  if (!contextUser) {
@@ -3,7 +3,7 @@
3
3
  * @module MJServer/services
4
4
  */
5
5
 
6
- import { LogError, LogStatus, UserInfo } from '@memberjunction/core';
6
+ import { LogError, LogStatus, LogStatusEx, UserInfo } from '@memberjunction/core';
7
7
  import { UserCache } from '@memberjunction/sqlserver-dataprovider';
8
8
  import { SchedulingEngine } from '@memberjunction/scheduling-engine';
9
9
  import { ScheduledJobsConfig } from '../config.js';
@@ -81,20 +81,21 @@ export class ScheduledJobsService {
81
81
  await this.engine.StartPolling(this.systemUser);
82
82
  this.isRunning = true;
83
83
 
84
- // Single consolidated console message
84
+ // Single consolidated status message — verbose-only (boot cadence detail; the job count is
85
+ // already in the startup summary banner, and actual job runs log their own ▶️/✅ lines).
85
86
  const jobCount = this.engine.ScheduledJobs.length;
86
87
  if (jobCount === 0) {
87
- console.log(`📅 Scheduled Jobs: No active jobs, polling suspended (will auto-start when jobs are added)`);
88
+ LogStatusEx({ message: `📅 Scheduled Jobs: No active jobs, polling suspended (will auto-start when jobs are added)`, verboseOnly: true });
88
89
  } else {
89
90
  const interval = this.engine.ActivePollingInterval;
90
91
  if (interval !== null) {
91
92
  const intervalDisplay = interval >= 60000
92
93
  ? `${Math.round(interval / 60000)} minute(s)`
93
94
  : `${Math.round(interval / 1000)} second(s)`;
94
- console.log(`📅 Scheduled Jobs: ${jobCount} active job(s), polling every ${intervalDisplay}`);
95
+ LogStatusEx({ message: `📅 Scheduled Jobs: ${jobCount} active job(s), polling every ${intervalDisplay}`, verboseOnly: true });
95
96
  } else {
96
97
  // This shouldn't happen if jobCount > 0, but handle it gracefully
97
- console.log(`📅 Scheduled Jobs: ${jobCount} active job(s), polling interval not set`);
98
+ LogStatusEx({ message: `📅 Scheduled Jobs: ${jobCount} active job(s), polling interval not set`, verboseOnly: true });
98
99
  }
99
100
  }
100
101
  } catch (error) {