@memberjunction/server 6.2.0-edge.0 → 6.2.0-edge.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.
Files changed (403) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/agentSessions/ReturningVisitorRecap.d.ts +2 -0
  3. package/dist/agentSessions/ReturningVisitorRecap.d.ts.map +1 -1
  4. package/dist/agentSessions/ReturningVisitorRecap.js +5 -1
  5. package/dist/agentSessions/ReturningVisitorRecap.js.map +1 -1
  6. package/dist/agentSessions/SessionManager.js +2 -2
  7. package/dist/agentSessions/remoteBrowserGoalEngine.d.ts +8 -0
  8. package/dist/agentSessions/remoteBrowserGoalEngine.d.ts.map +1 -1
  9. package/dist/agentSessions/remoteBrowserGoalEngine.js +21 -5
  10. package/dist/agentSessions/remoteBrowserGoalEngine.js.map +1 -1
  11. package/dist/auth/AuthProviderCatalogRouter.d.ts +2 -0
  12. package/dist/auth/AuthProviderCatalogRouter.d.ts.map +1 -1
  13. package/dist/auth/AuthProviderCatalogRouter.js +5 -1
  14. package/dist/auth/AuthProviderCatalogRouter.js.map +1 -1
  15. package/dist/auth/index.d.ts +20 -1
  16. package/dist/auth/index.d.ts.map +1 -1
  17. package/dist/auth/index.js +20 -10
  18. package/dist/auth/index.js.map +1 -1
  19. package/dist/auth/initializeProviders.d.ts +8 -0
  20. package/dist/auth/initializeProviders.d.ts.map +1 -1
  21. package/dist/auth/initializeProviders.js +21 -5
  22. package/dist/auth/initializeProviders.js.map +1 -1
  23. package/dist/auth/magicLink/MagicLinkRouter.d.ts +9 -0
  24. package/dist/auth/magicLink/MagicLinkRouter.d.ts.map +1 -1
  25. package/dist/auth/magicLink/MagicLinkRouter.js +22 -10
  26. package/dist/auth/magicLink/MagicLinkRouter.js.map +1 -1
  27. package/dist/auth/magicLink/MagicLinkService.d.ts +17 -15
  28. package/dist/auth/magicLink/MagicLinkService.d.ts.map +1 -1
  29. package/dist/auth/magicLink/MagicLinkService.js +65 -51
  30. package/dist/auth/magicLink/MagicLinkService.js.map +1 -1
  31. package/dist/auth/magicLink/index.d.ts +2 -2
  32. package/dist/auth/magicLink/index.d.ts.map +1 -1
  33. package/dist/auth/magicLink/index.js +2 -2
  34. package/dist/auth/magicLink/index.js.map +1 -1
  35. package/dist/auth/magicLink/magicLinkCore.d.ts +54 -33
  36. package/dist/auth/magicLink/magicLinkCore.d.ts.map +1 -1
  37. package/dist/auth/magicLink/magicLinkCore.js +61 -61
  38. package/dist/auth/magicLink/magicLinkCore.js.map +1 -1
  39. package/dist/auth/magicLink/redeemLanding.d.ts +4 -0
  40. package/dist/auth/magicLink/redeemLanding.d.ts.map +1 -1
  41. package/dist/auth/magicLink/redeemLanding.js +12 -4
  42. package/dist/auth/magicLink/redeemLanding.js.map +1 -1
  43. package/dist/auth/magicLink/types.d.ts +4 -4
  44. package/dist/auth/principals.d.ts +2 -0
  45. package/dist/auth/principals.d.ts.map +1 -1
  46. package/dist/auth/principals.js +6 -2
  47. package/dist/auth/principals.js.map +1 -1
  48. package/dist/cache.d.ts +2 -0
  49. package/dist/cache.d.ts.map +1 -1
  50. package/dist/cache.js +3 -1
  51. package/dist/cache.js.map +1 -1
  52. package/dist/config.d.ts +346 -2
  53. package/dist/config.d.ts.map +1 -1
  54. package/dist/config.js +34 -4
  55. package/dist/config.js.map +1 -1
  56. package/dist/context.d.ts +20 -0
  57. package/dist/context.d.ts.map +1 -1
  58. package/dist/context.js +27 -19
  59. package/dist/context.js.map +1 -1
  60. package/dist/directives/Public.d.ts +2 -0
  61. package/dist/directives/Public.d.ts.map +1 -1
  62. package/dist/directives/Public.js +3 -1
  63. package/dist/directives/Public.js.map +1 -1
  64. package/dist/directives/RequireSystemUser.d.ts +2 -0
  65. package/dist/directives/RequireSystemUser.d.ts.map +1 -1
  66. package/dist/directives/RequireSystemUser.js +3 -1
  67. package/dist/directives/RequireSystemUser.js.map +1 -1
  68. package/dist/generated/graphql-schemas/__mj.d.ts +11 -0
  69. package/dist/generated/graphql-schemas/__mj.d.ts.map +1 -1
  70. package/dist/generated/graphql-schemas/__mj.js +48 -0
  71. package/dist/generated/graphql-schemas/__mj.js.map +1 -1
  72. package/dist/generic/CacheInvalidationResolver.d.ts +94 -4
  73. package/dist/generic/CacheInvalidationResolver.d.ts.map +1 -1
  74. package/dist/generic/CacheInvalidationResolver.js +122 -3
  75. package/dist/generic/CacheInvalidationResolver.js.map +1 -1
  76. package/dist/generic/DeleteOptionsInput.d.ts +8 -1
  77. package/dist/generic/DeleteOptionsInput.d.ts.map +1 -1
  78. package/dist/generic/DeleteOptionsInput.js +1 -1
  79. package/dist/generic/DeleteOptionsInput.js.map +1 -1
  80. package/dist/generic/FireAndForgetHeartbeat.d.ts +3 -1
  81. package/dist/generic/FireAndForgetHeartbeat.d.ts.map +1 -1
  82. package/dist/generic/FireAndForgetHeartbeat.js +8 -4
  83. package/dist/generic/FireAndForgetHeartbeat.js.map +1 -1
  84. package/dist/generic/PushStatusResolver.d.ts +10 -1
  85. package/dist/generic/PushStatusResolver.d.ts.map +1 -1
  86. package/dist/generic/PushStatusResolver.js +11 -3
  87. package/dist/generic/PushStatusResolver.js.map +1 -1
  88. package/dist/generic/ResolverBase.d.ts +5 -1
  89. package/dist/generic/ResolverBase.d.ts.map +1 -1
  90. package/dist/generic/ResolverBase.js +15 -8
  91. package/dist/generic/ResolverBase.js.map +1 -1
  92. package/dist/index.d.ts +6 -0
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +30 -9
  95. package/dist/index.js.map +1 -1
  96. package/dist/integration/CustomColumnPromoter.d.ts +2 -0
  97. package/dist/integration/CustomColumnPromoter.d.ts.map +1 -1
  98. package/dist/integration/CustomColumnPromoter.js +5 -1
  99. package/dist/integration/CustomColumnPromoter.js.map +1 -1
  100. package/dist/integration/EntityMapLifecycle.d.ts +4 -0
  101. package/dist/integration/EntityMapLifecycle.d.ts.map +1 -1
  102. package/dist/integration/EntityMapLifecycle.js +10 -2
  103. package/dist/integration/EntityMapLifecycle.js.map +1 -1
  104. package/dist/logging/NoLog.d.ts +4 -0
  105. package/dist/logging/NoLog.d.ts.map +1 -1
  106. package/dist/logging/NoLog.js +10 -2
  107. package/dist/logging/NoLog.js.map +1 -1
  108. package/dist/logging/StartupLogger.d.ts +2 -0
  109. package/dist/logging/StartupLogger.d.ts.map +1 -1
  110. package/dist/logging/StartupLogger.js +5 -1
  111. package/dist/logging/StartupLogger.js.map +1 -1
  112. package/dist/logging/bootAudit.d.ts +11 -7
  113. package/dist/logging/bootAudit.d.ts.map +1 -1
  114. package/dist/logging/bootAudit.js +15 -7
  115. package/dist/logging/bootAudit.js.map +1 -1
  116. package/dist/logging/boundaryLogPayload.d.ts +4 -0
  117. package/dist/logging/boundaryLogPayload.d.ts.map +1 -1
  118. package/dist/logging/boundaryLogPayload.js +5 -1
  119. package/dist/logging/boundaryLogPayload.js.map +1 -1
  120. package/dist/logging/secretRedactor.d.ts +2 -0
  121. package/dist/logging/secretRedactor.d.ts.map +1 -1
  122. package/dist/logging/secretRedactor.js +8 -4
  123. package/dist/logging/secretRedactor.js.map +1 -1
  124. package/dist/logging/shortenForLog.d.ts +2 -0
  125. package/dist/logging/shortenForLog.d.ts.map +1 -1
  126. package/dist/logging/shortenForLog.js +7 -3
  127. package/dist/logging/shortenForLog.js.map +1 -1
  128. package/dist/logging/variablesLoggingMiddleware.d.ts +2 -0
  129. package/dist/logging/variablesLoggingMiddleware.d.ts.map +1 -1
  130. package/dist/logging/variablesLoggingMiddleware.js +8 -6
  131. package/dist/logging/variablesLoggingMiddleware.js.map +1 -1
  132. package/dist/metadataRefreshSignal.d.ts +19 -0
  133. package/dist/metadataRefreshSignal.d.ts.map +1 -0
  134. package/dist/metadataRefreshSignal.js +45 -0
  135. package/dist/metadataRefreshSignal.js.map +1 -0
  136. package/dist/middleware/MJTenantFilterMiddleware.js +4 -4
  137. package/dist/multiTenancy/index.d.ts +8 -0
  138. package/dist/multiTenancy/index.d.ts.map +1 -1
  139. package/dist/multiTenancy/index.js +21 -5
  140. package/dist/multiTenancy/index.js.map +1 -1
  141. package/dist/realtimeWidget/WidgetRouter.d.ts +5 -0
  142. package/dist/realtimeWidget/WidgetRouter.d.ts.map +1 -1
  143. package/dist/realtimeWidget/WidgetRouter.js +14 -10
  144. package/dist/realtimeWidget/WidgetRouter.js.map +1 -1
  145. package/dist/realtimeWidget/WidgetSessionService.d.ts +6 -6
  146. package/dist/realtimeWidget/WidgetSessionService.js +27 -27
  147. package/dist/realtimeWidget/host-identity.d.ts +5 -1
  148. package/dist/realtimeWidget/host-identity.d.ts.map +1 -1
  149. package/dist/realtimeWidget/host-identity.js +11 -3
  150. package/dist/realtimeWidget/host-identity.js.map +1 -1
  151. package/dist/realtimeWidget/index.d.ts +2 -2
  152. package/dist/realtimeWidget/index.d.ts.map +1 -1
  153. package/dist/realtimeWidget/index.js +2 -2
  154. package/dist/realtimeWidget/index.js.map +1 -1
  155. package/dist/realtimeWidget/visitorIdentity.d.ts +21 -1
  156. package/dist/realtimeWidget/visitorIdentity.d.ts.map +1 -1
  157. package/dist/realtimeWidget/visitorIdentity.js +16 -4
  158. package/dist/realtimeWidget/visitorIdentity.js.map +1 -1
  159. package/dist/realtimeWidget/widgetCore.d.ts +48 -0
  160. package/dist/realtimeWidget/widgetCore.d.ts.map +1 -1
  161. package/dist/realtimeWidget/widgetCore.js +38 -10
  162. package/dist/realtimeWidget/widgetCore.js.map +1 -1
  163. package/dist/realtimeWidget/widgetGuestElevation.d.ts +10 -6
  164. package/dist/realtimeWidget/widgetGuestElevation.d.ts.map +1 -1
  165. package/dist/realtimeWidget/widgetGuestElevation.js +14 -6
  166. package/dist/realtimeWidget/widgetGuestElevation.js.map +1 -1
  167. package/dist/resolvers/AdhocQueryResolver.js +3 -3
  168. package/dist/resolvers/FileResolver.js +3 -3
  169. package/dist/resolvers/GeoResolver.d.ts +2 -2
  170. package/dist/resolvers/GeoResolver.js +4 -4
  171. package/dist/resolvers/GetDataResolver.d.ts +14 -0
  172. package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
  173. package/dist/resolvers/GetDataResolver.js +43 -15
  174. package/dist/resolvers/GetDataResolver.js.map +1 -1
  175. package/dist/resolvers/IntegrationDiscoveryResolver.js +2 -2
  176. package/dist/resolvers/ListOperationsResolver.d.ts +20 -0
  177. package/dist/resolvers/ListOperationsResolver.d.ts.map +1 -1
  178. package/dist/resolvers/ListOperationsResolver.js +68 -28
  179. package/dist/resolvers/ListOperationsResolver.js.map +1 -1
  180. package/dist/resolvers/MCPResolver.d.ts +11 -1
  181. package/dist/resolvers/MCPResolver.d.ts.map +1 -1
  182. package/dist/resolvers/MCPResolver.js +7 -3
  183. package/dist/resolvers/MCPResolver.js.map +1 -1
  184. package/dist/resolvers/RealtimeBridgeResolver.js +3 -3
  185. package/dist/resolvers/RealtimeClientSessionResolver.js +3 -3
  186. package/dist/resolvers/RemoteBrowserActionResolver.js +5 -5
  187. package/dist/resolvers/RunAIAgentResolver.d.ts +10 -4
  188. package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
  189. package/dist/resolvers/RunAIAgentResolver.js +69 -38
  190. package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
  191. package/dist/resolvers/RunAIPromptResolver.d.ts +1 -1
  192. package/dist/resolvers/RunAIPromptResolver.js +2 -2
  193. package/dist/resolvers/RunTestResolver.js +5 -5
  194. package/dist/resolvers/SqlLoggingConfigResolver.d.ts +8 -4
  195. package/dist/resolvers/SqlLoggingConfigResolver.d.ts.map +1 -1
  196. package/dist/resolvers/SqlLoggingConfigResolver.js +5 -5
  197. package/dist/resolvers/TaskGraphFrameResolver.d.ts +8 -1
  198. package/dist/resolvers/TaskGraphFrameResolver.d.ts.map +1 -1
  199. package/dist/resolvers/TaskGraphFrameResolver.js +6 -2
  200. package/dist/resolvers/TaskGraphFrameResolver.js.map +1 -1
  201. package/dist/resolvers/adhoc-query-helpers.d.ts +6 -0
  202. package/dist/resolvers/adhoc-query-helpers.d.ts.map +1 -1
  203. package/dist/resolvers/adhoc-query-helpers.js +10 -2
  204. package/dist/resolvers/adhoc-query-helpers.js.map +1 -1
  205. package/dist/resolvers/artifact-routing.d.ts +8 -8
  206. package/dist/resolvers/artifact-routing.js +2 -2
  207. package/dist/resolvers/artifact-routing.js.map +1 -1
  208. package/dist/resolvers/meetingRecordingRegistration.d.ts +10 -2
  209. package/dist/resolvers/meetingRecordingRegistration.d.ts.map +1 -1
  210. package/dist/resolvers/meetingRecordingRegistration.js +24 -8
  211. package/dist/resolvers/meetingRecordingRegistration.js.map +1 -1
  212. package/dist/resolvers/peaksSidecar.d.ts +4 -0
  213. package/dist/resolvers/peaksSidecar.d.ts.map +1 -1
  214. package/dist/resolvers/peaksSidecar.js +10 -2
  215. package/dist/resolvers/peaksSidecar.js.map +1 -1
  216. package/dist/rest/EntityCRUDHandler.d.ts +28 -0
  217. package/dist/rest/EntityCRUDHandler.d.ts.map +1 -1
  218. package/dist/rest/EntityCRUDHandler.js +20 -4
  219. package/dist/rest/EntityCRUDHandler.js.map +1 -1
  220. package/dist/rest/MediaStreamHandler.d.ts +2 -0
  221. package/dist/rest/MediaStreamHandler.d.ts.map +1 -1
  222. package/dist/rest/MediaStreamHandler.js +10 -6
  223. package/dist/rest/MediaStreamHandler.js.map +1 -1
  224. package/dist/rest/OAuthCallbackHandler.d.ts +9 -0
  225. package/dist/rest/OAuthCallbackHandler.d.ts.map +1 -1
  226. package/dist/rest/OAuthCallbackHandler.js +15 -3
  227. package/dist/rest/OAuthCallbackHandler.js.map +1 -1
  228. package/dist/rest/RESTEndpointHandler.d.ts +6 -4
  229. package/dist/rest/RESTEndpointHandler.d.ts.map +1 -1
  230. package/dist/rest/RESTEndpointHandler.js +15 -11
  231. package/dist/rest/RESTEndpointHandler.js.map +1 -1
  232. package/dist/rest/RealtimeSdpBrokerHandler.d.ts +5 -1
  233. package/dist/rest/RealtimeSdpBrokerHandler.d.ts.map +1 -1
  234. package/dist/rest/RealtimeSdpBrokerHandler.js +12 -4
  235. package/dist/rest/RealtimeSdpBrokerHandler.js.map +1 -1
  236. package/dist/rest/SignatureWebhookHandler.d.ts +2 -0
  237. package/dist/rest/SignatureWebhookHandler.d.ts.map +1 -1
  238. package/dist/rest/SignatureWebhookHandler.js +5 -1
  239. package/dist/rest/SignatureWebhookHandler.js.map +1 -1
  240. package/dist/rest/UploadTokenManager.d.ts +24 -8
  241. package/dist/rest/UploadTokenManager.d.ts.map +1 -1
  242. package/dist/rest/UploadTokenManager.js +53 -21
  243. package/dist/rest/UploadTokenManager.js.map +1 -1
  244. package/dist/rest/ViewOperationsHandler.d.ts +20 -0
  245. package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
  246. package/dist/rest/ViewOperationsHandler.js +20 -4
  247. package/dist/rest/ViewOperationsHandler.js.map +1 -1
  248. package/dist/rest/mediaRange.d.ts +4 -0
  249. package/dist/rest/mediaRange.d.ts.map +1 -1
  250. package/dist/rest/mediaRange.js +10 -2
  251. package/dist/rest/mediaRange.js.map +1 -1
  252. package/dist/rest/setupRESTEndpoints.d.ts +4 -0
  253. package/dist/rest/setupRESTEndpoints.d.ts.map +1 -1
  254. package/dist/rest/setupRESTEndpoints.js +13 -7
  255. package/dist/rest/setupRESTEndpoints.js.map +1 -1
  256. package/dist/serverExtensionReservedRoots.d.ts +2 -0
  257. package/dist/serverExtensionReservedRoots.d.ts.map +1 -1
  258. package/dist/serverExtensionReservedRoots.js +5 -1
  259. package/dist/serverExtensionReservedRoots.js.map +1 -1
  260. package/dist/services/TaskGraphActionRunner.d.ts +13 -8
  261. package/dist/services/TaskGraphActionRunner.d.ts.map +1 -1
  262. package/dist/services/TaskGraphActionRunner.js +16 -15
  263. package/dist/services/TaskGraphActionRunner.js.map +1 -1
  264. package/dist/types.d.ts +2 -0
  265. package/dist/types.d.ts.map +1 -1
  266. package/dist/types.js +7 -3
  267. package/dist/types.js.map +1 -1
  268. package/dist/util.d.ts +6 -0
  269. package/dist/util.d.ts.map +1 -1
  270. package/dist/util.js +13 -5
  271. package/dist/util.js.map +1 -1
  272. package/package.json +92 -92
  273. package/src/__tests__/DeleteOptionsInput.wireShape.test.ts +62 -0
  274. package/src/__tests__/FileResolverPeaks.test.ts +13 -13
  275. package/src/__tests__/ListOperationsResolver.test.ts +17 -17
  276. package/src/__tests__/MediaStreamHandler.test.ts +28 -28
  277. package/src/__tests__/NoLog.test.ts +11 -11
  278. package/src/__tests__/PrimaryKeyAlwaysMapped.test.ts +10 -10
  279. package/src/__tests__/RESTEndpointHandler.test.ts +14 -14
  280. package/src/__tests__/RealtimeBridgeResolver.test.ts +4 -2
  281. package/src/__tests__/RealtimeSdpBrokerHandler.test.ts +6 -6
  282. package/src/__tests__/RefreshAdoptsNewColumns.test.ts +8 -8
  283. package/src/__tests__/RemoteBrowserGoalEngine.test.ts +18 -18
  284. package/src/__tests__/RunAIAgentResolver.historyFrom.test.ts +228 -0
  285. package/src/__tests__/TaskGraphActionRunner.durablePayload.test.ts +129 -0
  286. package/src/__tests__/TaskGraphFrameResolver.test.ts +2 -2
  287. package/src/__tests__/WidgetSessionService.test.ts +8 -4
  288. package/src/__tests__/adhoc-query-helpers.test.ts +21 -21
  289. package/src/__tests__/bootAudit.test.ts +11 -11
  290. package/src/__tests__/boundaryLogPayload.test.ts +6 -6
  291. package/src/__tests__/cacheInvalidationRecordData.test.ts +177 -0
  292. package/src/__tests__/databaseAbstraction.test.ts +12 -6
  293. package/src/__tests__/getDataTokenRedaction.test.ts +7 -7
  294. package/src/__tests__/initializeProviders.refresh.test.ts +4 -4
  295. package/src/__tests__/magicLink.test.ts +73 -134
  296. package/src/__tests__/magicLinkService.consume.test.ts +224 -0
  297. package/src/__tests__/meetingRecordingRegistration.test.ts +12 -12
  298. package/src/__tests__/metadataRefreshSignal.test.ts +78 -0
  299. package/src/__tests__/multiTenancy.security.test.ts +40 -40
  300. package/src/__tests__/multiTenancy.test.ts +18 -18
  301. package/src/__tests__/newUsers.test.ts +24 -23
  302. package/src/__tests__/principals.test.ts +22 -22
  303. package/src/__tests__/pushStatusResolver.filter.test.ts +8 -8
  304. package/src/__tests__/secretRedactor.failOpen.test.ts +12 -12
  305. package/src/__tests__/secretRedactor.test.ts +12 -12
  306. package/src/__tests__/serverExtensionReservedRoots.test.ts +7 -7
  307. package/src/__tests__/subscriptionRedaction.test.ts +5 -5
  308. package/src/__tests__/unifiedAuth.test.ts +15 -9
  309. package/src/__tests__/visitorIdentity.resolve.test.ts +6 -6
  310. package/src/__tests__/widget.test.ts +45 -45
  311. package/src/__tests__/widgetGuestElevation.test.ts +7 -7
  312. package/src/__tests__/widgetHostIdentity.test.ts +14 -14
  313. package/src/agentSessions/ReturningVisitorRecap.ts +12 -1
  314. package/src/agentSessions/SessionManager.ts +2 -2
  315. package/src/agentSessions/remoteBrowserGoalEngine.ts +30 -5
  316. package/src/auth/AuthProviderCatalogRouter.ts +6 -1
  317. package/src/auth/__tests__/backward-compatibility.test.ts +3 -3
  318. package/src/auth/index.ts +43 -28
  319. package/src/auth/initializeProviders.ts +25 -5
  320. package/src/auth/magicLink/MagicLinkRouter.ts +28 -10
  321. package/src/auth/magicLink/MagicLinkService.ts +71 -52
  322. package/src/auth/magicLink/index.ts +7 -7
  323. package/src/auth/magicLink/magicLinkCore.ts +96 -64
  324. package/src/auth/magicLink/redeemLanding.ts +14 -4
  325. package/src/auth/magicLink/types.ts +54 -54
  326. package/src/auth/newUsers.ts +1 -1
  327. package/src/auth/principals.ts +11 -2
  328. package/src/cache.ts +4 -1
  329. package/src/config.ts +37 -4
  330. package/src/context.ts +37 -24
  331. package/src/directives/Public.ts +4 -1
  332. package/src/directives/RequireSystemUser.ts +4 -1
  333. package/src/generated/graphql-schemas/__mj.ts +37 -0
  334. package/src/generic/CacheInvalidationResolver.ts +148 -4
  335. package/src/generic/DeleteOptionsInput.ts +9 -2
  336. package/src/generic/FireAndForgetHeartbeat.ts +19 -14
  337. package/src/generic/PushStatusResolver.ts +21 -7
  338. package/src/generic/ResolverBase.ts +16 -8
  339. package/src/generic/RunViewResolver.ts +22 -22
  340. package/src/generic/__tests__/FireAndForgetHeartbeat.test.ts +7 -7
  341. package/src/index.ts +35 -9
  342. package/src/integration/CustomColumnPromoter.ts +6 -1
  343. package/src/integration/EntityMapLifecycle.ts +20 -2
  344. package/src/logging/NoLog.ts +16 -2
  345. package/src/logging/StartupLogger.ts +6 -1
  346. package/src/logging/bootAudit.ts +26 -16
  347. package/src/logging/boundaryLogPayload.ts +8 -1
  348. package/src/logging/secretRedactor.ts +14 -9
  349. package/src/logging/shortenForLog.ts +8 -3
  350. package/src/logging/variablesLoggingMiddleware.ts +9 -6
  351. package/src/metadataRefreshSignal.ts +45 -0
  352. package/src/middleware/MJTenantFilterMiddleware.ts +4 -4
  353. package/src/multiTenancy/index.ts +29 -5
  354. package/src/realtimeWidget/WidgetRouter.ts +15 -10
  355. package/src/realtimeWidget/WidgetSessionService.ts +76 -76
  356. package/src/realtimeWidget/host-identity.ts +24 -10
  357. package/src/realtimeWidget/index.ts +3 -3
  358. package/src/realtimeWidget/visitorIdentity.ts +39 -8
  359. package/src/realtimeWidget/widgetCore.ts +75 -10
  360. package/src/realtimeWidget/widgetGuestElevation.ts +25 -12
  361. package/src/resolvers/AdhocQueryResolver.ts +3 -3
  362. package/src/resolvers/AgentSessionResolver.ts +3 -3
  363. package/src/resolvers/ColorResolver.ts +6 -6
  364. package/src/resolvers/ComponentRegistryResolver.ts +36 -36
  365. package/src/resolvers/EntityCommunicationsResolver.ts +4 -4
  366. package/src/resolvers/ExecuteRemoteOperationResolver.ts +9 -9
  367. package/src/resolvers/FileResolver.ts +42 -42
  368. package/src/resolvers/GeoResolver.ts +4 -4
  369. package/src/resolvers/GetDataResolver.ts +50 -15
  370. package/src/resolvers/IntegrationDiscoveryResolver.ts +2 -2
  371. package/src/resolvers/ListOperationsResolver.ts +78 -28
  372. package/src/resolvers/MCPResolver.ts +30 -15
  373. package/src/resolvers/QueryResolver.ts +13 -13
  374. package/src/resolvers/RealtimeBridgeResolver.ts +3 -3
  375. package/src/resolvers/RealtimeClientSessionResolver.ts +3 -3
  376. package/src/resolvers/RemoteBrowserActionResolver.ts +5 -5
  377. package/src/resolvers/RunAIAgentResolver.ts +113 -72
  378. package/src/resolvers/RunAIPromptResolver.ts +22 -22
  379. package/src/resolvers/RunTemplateResolver.ts +4 -4
  380. package/src/resolvers/RunTestResolver.ts +25 -25
  381. package/src/resolvers/SqlLoggingConfigResolver.ts +56 -56
  382. package/src/resolvers/TaskGraphFrameResolver.ts +37 -28
  383. package/src/resolvers/TelemetryResolver.ts +79 -79
  384. package/src/resolvers/__tests__/GetDataResolver.tokens.test.ts +40 -38
  385. package/src/resolvers/__tests__/artifact-routing.test.ts +23 -23
  386. package/src/resolvers/adhoc-query-helpers.ts +19 -2
  387. package/src/resolvers/artifact-routing.ts +19 -19
  388. package/src/resolvers/meetingRecordingRegistration.ts +44 -10
  389. package/src/resolvers/peaksSidecar.ts +12 -2
  390. package/src/rest/EntityCRUDHandler.ts +24 -4
  391. package/src/rest/MediaStreamHandler.ts +11 -6
  392. package/src/rest/OAuthCallbackHandler.ts +25 -7
  393. package/src/rest/RESTEndpointHandler.ts +20 -15
  394. package/src/rest/RealtimeSdpBrokerHandler.ts +14 -4
  395. package/src/rest/SignatureWebhookHandler.ts +6 -1
  396. package/src/rest/UploadTokenManager.ts +66 -30
  397. package/src/rest/ViewOperationsHandler.ts +24 -4
  398. package/src/rest/mediaRange.ts +16 -6
  399. package/src/rest/setupRESTEndpoints.ts +24 -12
  400. package/src/serverExtensionReservedRoots.ts +6 -1
  401. package/src/services/TaskGraphActionRunner.ts +16 -15
  402. package/src/types.ts +21 -16
  403. package/src/util.ts +16 -6
@@ -12,7 +12,7 @@
12
12
  * @module @memberjunction/server/widget
13
13
  */
14
14
 
15
- import { buildSessionClaims } from '../auth/magicLink/magicLinkCore.js';
15
+ import { BuildSessionClaims } from '../auth/magicLink/magicLinkCore.js';
16
16
  import type { MagicLinkJWTClaims } from '../auth/magicLink/types.js';
17
17
 
18
18
  /**
@@ -46,7 +46,7 @@ export interface WidgetInstanceEligibilityInput {
46
46
  * comma-separated string (tolerated). Returns an empty array for null/blank/garbage
47
47
  * — which makes the allowlist FAIL-CLOSED (no origin is allowed) by construction.
48
48
  */
49
- export function parseAllowedOrigins(allowedOrigins: string | null | undefined): string[] {
49
+ export function ParseAllowedOrigins(allowedOrigins: string | null | undefined): string[] {
50
50
  const raw = allowedOrigins?.trim();
51
51
  if (!raw) {
52
52
  return [];
@@ -64,6 +64,11 @@ export function parseAllowedOrigins(allowedOrigins: string | null | undefined):
64
64
  return list.filter((s): s is string => typeof s === 'string').map(normalizeOrigin).filter((s): s is string => !!s);
65
65
  }
66
66
 
67
+ /** @deprecated Use {@link ParseAllowedOrigins}. */
68
+ export function parseAllowedOrigins(allowedOrigins: string | null | undefined): string[] {
69
+ return ParseAllowedOrigins(allowedOrigins);
70
+ }
71
+
67
72
  /** Lowercases + trims an origin and strips a trailing slash for stable comparison. */
68
73
  function normalizeOrigin(origin: string): string {
69
74
  return origin.trim().toLowerCase().replace(/\/+$/, '');
@@ -74,7 +79,7 @@ function normalizeOrigin(origin: string): string {
74
79
  * JSON array (preferred, e.g. `["Whiteboard"]`) or a comma-separated string (tolerated). Returns an
75
80
  * empty array for null/blank/garbage — the backwards-compatible default (no channels attached).
76
81
  */
77
- export function parseEnabledChannels(enabledChannels: string | null | undefined): string[] {
82
+ export function ParseEnabledChannels(enabledChannels: string | null | undefined): string[] {
78
83
  const raw = enabledChannels?.trim();
79
84
  if (!raw) {
80
85
  return [];
@@ -89,12 +94,17 @@ export function parseEnabledChannels(enabledChannels: string | null | undefined)
89
94
  }
90
95
  }
91
96
 
97
+ /** @deprecated Use {@link ParseEnabledChannels}. */
98
+ export function parseEnabledChannels(enabledChannels: string | null | undefined): string[] {
99
+ return ParseEnabledChannels(enabledChannels);
100
+ }
101
+
92
102
  /**
93
103
  * FAIL-CLOSED origin check. The request's `Origin` header must exactly match one of
94
104
  * the widget's allowed origins (after normalization). A missing request origin, or
95
105
  * an empty allowlist, is rejected — a public mint endpoint must never accept "*".
96
106
  */
97
- export function isOriginAllowed(requestOrigin: string | null | undefined, allowedOrigins: readonly string[]): boolean {
107
+ export function IsOriginAllowed(requestOrigin: string | null | undefined, allowedOrigins: readonly string[]): boolean {
98
108
  if (!requestOrigin || allowedOrigins.length === 0) {
99
109
  return false;
100
110
  }
@@ -102,8 +112,13 @@ export function isOriginAllowed(requestOrigin: string | null | undefined, allowe
102
112
  return allowedOrigins.some((o) => o === candidate);
103
113
  }
104
114
 
115
+ /** @deprecated Use {@link IsOriginAllowed}. */
116
+ export function isOriginAllowed(requestOrigin: string | null | undefined, allowedOrigins: readonly string[]): boolean {
117
+ return IsOriginAllowed(requestOrigin, allowedOrigins);
118
+ }
119
+
105
120
  /** True when the requested modality (or the widget's default render) is enabled by the instance. */
106
- export function isModalityEnabled(widgetModality: string, requested: 'Text' | 'Voice'): boolean {
121
+ export function IsModalityEnabled(widgetModality: string, requested: 'Text' | 'Voice'): boolean {
107
122
  const m = widgetModality.trim().toLowerCase();
108
123
  if (m === 'both') {
109
124
  return true;
@@ -111,25 +126,38 @@ export function isModalityEnabled(widgetModality: string, requested: 'Text' | 'V
111
126
  return m === requested.toLowerCase();
112
127
  }
113
128
 
129
+ /** @deprecated Use {@link IsModalityEnabled}. */
130
+ export function isModalityEnabled(widgetModality: string, requested: 'Text' | 'Voice'): boolean {
131
+ return IsModalityEnabled(widgetModality, requested);
132
+ }
133
+
114
134
  /**
115
135
  * Pure eligibility check for a mint: the widget must be Active and the request's
116
136
  * origin must be on the allowlist. Returns an error code on the first failure so the
117
137
  * router can map it to a precise HTTP status. Modality is checked separately by the
118
138
  * voice path (W4) since a text mint is always permitted for an enabled widget.
119
139
  */
120
- export function evaluateWidgetMint(
140
+ export function EvaluateWidgetMint(
121
141
  widget: WidgetInstanceEligibilityInput,
122
142
  requestOrigin: string | null | undefined,
123
143
  ): { ok: boolean; errorCode?: WidgetMintErrorCode } {
124
144
  if (widget.Status.trim().toLowerCase() !== 'active') {
125
145
  return { ok: false, errorCode: 'disabled' };
126
146
  }
127
- if (!isOriginAllowed(requestOrigin, parseAllowedOrigins(widget.AllowedOrigins))) {
147
+ if (!IsOriginAllowed(requestOrigin, ParseAllowedOrigins(widget.AllowedOrigins))) {
128
148
  return { ok: false, errorCode: 'origin_not_allowed' };
129
149
  }
130
150
  return { ok: true };
131
151
  }
132
152
 
153
+ /** @deprecated Use {@link EvaluateWidgetMint}. */
154
+ export function evaluateWidgetMint(
155
+ widget: WidgetInstanceEligibilityInput,
156
+ requestOrigin: string | null | undefined,
157
+ ): { ok: boolean; errorCode?: WidgetMintErrorCode } {
158
+ return EvaluateWidgetMint(widget, requestOrigin);
159
+ }
160
+
133
161
  /**
134
162
  * Known automated-client User-Agent substrings (lowercased). A public mint endpoint is a cheap
135
163
  * target for crawlers and scripted abuse; this catches the obvious non-browser callers. It is a
@@ -148,7 +176,7 @@ const BOT_USER_AGENT_MARKERS = [
148
176
  * known automation marker. Deliberately conservative to avoid false positives on real browsers; pair
149
177
  * with the origin allowlist + rate limits, which are the hard controls.
150
178
  */
151
- export function looksLikeBot(userAgent: string | null | undefined): boolean {
179
+ export function LooksLikeBot(userAgent: string | null | undefined): boolean {
152
180
  const ua = (userAgent ?? '').trim().toLowerCase();
153
181
  if (!ua) {
154
182
  return true;
@@ -156,6 +184,11 @@ export function looksLikeBot(userAgent: string | null | undefined): boolean {
156
184
  return BOT_USER_AGENT_MARKERS.some((marker) => ua.includes(marker));
157
185
  }
158
186
 
187
+ /** @deprecated Use {@link LooksLikeBot}. */
188
+ export function looksLikeBot(userAgent: string | null | undefined): boolean {
189
+ return LooksLikeBot(userAgent);
190
+ }
191
+
159
192
  /**
160
193
  * Builds the guest-session JWT claims for a widget visitor. Reuses magic-link's
161
194
  * `buildSessionClaims` (anonymous mode → the shared Anonymous principal + claims-based
@@ -163,7 +196,7 @@ export function looksLikeBot(userAgent: string | null | undefined): boolean {
163
196
  * principal is locked to one widget instance. The role name carried here is the
164
197
  * widget's restricted guest role (D5 backstop).
165
198
  */
166
- export function buildWidgetGuestClaims(args: {
199
+ export function BuildWidgetGuestClaims(args: {
167
200
  issuer: string;
168
201
  audience: string;
169
202
  widgetId: string;
@@ -191,7 +224,7 @@ export function buildWidgetGuestClaims(args: {
191
224
  linkedRecordId?: string;
192
225
  };
193
226
  }): MagicLinkJWTClaims {
194
- const claims = buildSessionClaims({
227
+ const claims = BuildSessionClaims({
195
228
  issuer: args.issuer,
196
229
  audience: args.audience,
197
230
  // No invite row for a direct-mint guest; the opaque session id stands in as the
@@ -229,3 +262,35 @@ export function buildWidgetGuestClaims(args: {
229
262
  }
230
263
  return claims;
231
264
  }
265
+
266
+ /** @deprecated Use {@link BuildWidgetGuestClaims}. */
267
+ export function buildWidgetGuestClaims(args: {
268
+ issuer: string;
269
+ audience: string;
270
+ widgetId: string;
271
+ sessionId: string;
272
+ anonymousEmail: string;
273
+ applicationId: string;
274
+ guestRoleName: string;
275
+ nowSeconds: number;
276
+ ttlSeconds: number;
277
+ /**
278
+ * Host-asserted identity for a `host-identity` session. Its email/name are carried as
279
+ * INFORMATIONAL claims only — the principal-resolving `email`/`sub` remain the shared
280
+ * Anonymous principal, so a host can never escalate a guest into a real account.
281
+ */
282
+ hostIdentity?: { email: string; firstName?: string; lastName?: string };
283
+ /**
284
+ * Returning-visitor anchor + linked identity (RV1/RV2/RV4) carried as claims so the VOICE path
285
+ * (server-created conversation) stamps the same fields the text path stamps client-side. Set only
286
+ * when the widget remembers returning visitors. Omitted ⇒ no returning-visitor claims (default off).
287
+ */
288
+ returningVisitor?: {
289
+ visitorKey?: string;
290
+ lastConversationId?: string;
291
+ linkedEntityId?: string;
292
+ linkedRecordId?: string;
293
+ };
294
+ }): MagicLinkJWTClaims {
295
+ return BuildWidgetGuestClaims(args);
296
+ }
@@ -22,19 +22,19 @@ const WIDGET_ENTITY = 'MJ: Conversation Widget Instances';
22
22
 
23
23
  /**
24
24
  * Resolved elevation context for a widget-guest agent run. Returned only when the request is a
25
- * widget guest; the dispatch resolver runs the agent under {@link WidgetGuestRunContext.elevatedUser}
26
- * with {@link WidgetGuestRunContext.pinnedAgentId} (authoritative), keeping ownership checks under
25
+ * widget guest; the dispatch resolver runs the agent under {@link WidgetGuestRunContext.ElevatedUser}
26
+ * with {@link WidgetGuestRunContext.PinnedAgentId} (authoritative), keeping ownership checks under
27
27
  * the guest principal.
28
28
  */
29
29
  export interface WidgetGuestRunContext {
30
30
  /** The trusted server principal under which the agent run (and its run-entity writes) executes. */
31
- elevatedUser: UserInfo;
31
+ ElevatedUser: UserInfo;
32
32
  /** The widget instance the guest session is bound to (authoritative config). */
33
- widget: MJConversationWidgetInstanceEntity;
33
+ Widget: MJConversationWidgetInstanceEntity;
34
34
  /** The authoritative pinned support agent id — overrides any client-supplied agent id (D5). */
35
- pinnedAgentId: string;
35
+ PinnedAgentId: string;
36
36
  /** The guest's per-session scope id (Conversation.ExternalID), used to validate conversation ownership. */
37
- sessionScopeId?: string;
37
+ SessionScopeId?: string;
38
38
  }
39
39
 
40
40
  /**
@@ -47,7 +47,7 @@ export interface WidgetGuestRunContext {
47
47
  * Never throws: a resolution failure (no system user, widget not found, read error) returns `null`,
48
48
  * so the caller falls back to the normal (guest-principal) path rather than failing the request.
49
49
  */
50
- export async function resolveWidgetGuestRunContext(
50
+ export async function ResolveWidgetGuestRunContext(
51
51
  userPayload: UserPayload,
52
52
  provider: DatabaseProviderBase,
53
53
  ): Promise<WidgetGuestRunContext | null> {
@@ -70,13 +70,21 @@ export async function resolveWidgetGuestRunContext(
70
70
  }
71
71
 
72
72
  return {
73
- elevatedUser,
74
- widget,
75
- pinnedAgentId: widget.PinnedAgentID,
76
- sessionScopeId: guest.MagicLinkScope?.ResourceID,
73
+ ElevatedUser: elevatedUser,
74
+ Widget: widget,
75
+ PinnedAgentId: widget.PinnedAgentID,
76
+ SessionScopeId: guest.MagicLinkScope?.ResourceID,
77
77
  };
78
78
  }
79
79
 
80
+ /** @deprecated Use {@link ResolveWidgetGuestRunContext}. */
81
+ export async function resolveWidgetGuestRunContext(
82
+ userPayload: UserPayload,
83
+ provider: DatabaseProviderBase,
84
+ ): Promise<WidgetGuestRunContext | null> {
85
+ return ResolveWidgetGuestRunContext(userPayload, provider);
86
+ }
87
+
80
88
  /**
81
89
  * Returns the identity a realtime session's AI-RUN-ENTITY work (delegated tool dispatch +
82
90
  * observability run creation/append/finalize) should execute as: the trusted SYSTEM principal when
@@ -123,7 +131,7 @@ export function ResolveScopedAnonymousRunUser(contextUser: UserInfo): UserInfo {
123
131
  * preserving the guest's `sessionId` — so progress/streaming PubSub still routes to the guest's
124
132
  * live websocket, but all AI run-entity writes happen under the trusted server principal.
125
133
  */
126
- export function elevateUserPayload(userPayload: UserPayload, elevatedUser: UserInfo): UserPayload {
134
+ export function ElevateUserPayload(userPayload: UserPayload, elevatedUser: UserInfo): UserPayload {
127
135
  return {
128
136
  ...userPayload,
129
137
  email: elevatedUser.Email,
@@ -132,6 +140,11 @@ export function elevateUserPayload(userPayload: UserPayload, elevatedUser: UserI
132
140
  };
133
141
  }
134
142
 
143
+ /** @deprecated Use {@link ElevateUserPayload}. */
144
+ export function elevateUserPayload(userPayload: UserPayload, elevatedUser: UserInfo): UserPayload {
145
+ return ElevateUserPayload(userPayload, elevatedUser);
146
+ }
147
+
135
148
  /** Loads a single widget instance by id under the elevated principal (read-only). */
136
149
  async function loadWidgetById(
137
150
  widgetId: string,
@@ -7,7 +7,7 @@ import { GetReadOnlyDataSource, GetReadOnlyProvider } from '../util.js';
7
7
  import { ResolverBase } from '../generic/ResolverBase.js';
8
8
  import { IsScopeLimitedPrincipal } from '../auth/scopeLimitedPrincipal.js';
9
9
  import { RunQueryResultType } from './QueryResolver.js';
10
- import { exactTotalFromPage, resolveAdhocTotalRowCount } from './adhoc-query-helpers.js';
10
+ import { ExactTotalFromPage, ResolveAdhocTotalRowCount } from './adhoc-query-helpers.js';
11
11
  import sql from 'mssql';
12
12
 
13
13
  /**
@@ -200,7 +200,7 @@ export class AdhocQueryResolver extends ResolverBase {
200
200
  const recordset = (dataResult.recordset ?? []) as Record<string, unknown>[];
201
201
 
202
202
  // Total already known from the page alone (unpaged, or a short page)? Skip the count.
203
- const exact = exactTotalFromPage(startRow, recordset.length, maxRows);
203
+ const exact = ExactTotalFromPage(startRow, recordset.length, maxRows);
204
204
  if (exact != null || !countSQL) {
205
205
  return { recordset, totalRowCount: exact ?? recordset.length };
206
206
  }
@@ -209,7 +209,7 @@ export class AdhocQueryResolver extends ResolverBase {
209
209
  const lowerBound = startRow + recordset.length;
210
210
  try {
211
211
  const countResult = await this.runSqlWithDeadline<{ TotalRowCount: number }>(ds, countSQL, deadline);
212
- return { recordset, totalRowCount: resolveAdhocTotalRowCount(countResult.recordset, lowerBound) };
212
+ return { recordset, totalRowCount: ResolveAdhocTotalRowCount(countResult.recordset, lowerBound) };
213
213
  } catch (countErr) {
214
214
  const msg = countErr instanceof Error ? countErr.message : String(countErr);
215
215
  LogError(`Ad-hoc query row-count failed; reporting a lower-bound total (${lowerBound}). ${msg}`);
@@ -25,15 +25,15 @@ import { SessionManager, SessionAuthorizationError } from '../agentSessions/inde
25
25
  export class StartAgentSessionResult {
26
26
  /** ID of the newly created session. */
27
27
  @Field()
28
- agentSessionId: string;
28
+ agentSessionId: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
29
29
 
30
30
  /** Lifecycle status of the session (always `Active` on a successful start). */
31
31
  @Field()
32
- status: string;
32
+ status: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
33
33
 
34
34
  /** ID of the conversation the session is attached to (supplied or freshly created). */
35
35
  @Field()
36
- conversationId: string;
36
+ conversationId: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
37
37
  }
38
38
 
39
39
  /**
@@ -10,22 +10,22 @@ export class Color {
10
10
 
11
11
  @Field(() => String)
12
12
  @Public()
13
- name: string;
13
+ name: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
14
14
 
15
15
  @Field(() => String)
16
16
  @Public()
17
- createdZ: string;
17
+ createdZ: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
18
18
  }
19
19
 
20
20
  @ObjectType()
21
21
  export class ColorNotification {
22
22
  @Public()
23
23
  @Field(() => String, { nullable: true })
24
- message?: string;
24
+ message?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
25
25
 
26
26
  @Public()
27
27
  @Field((_type) => Date)
28
- date!: Date;
28
+ date!: Date; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
29
29
  }
30
30
 
31
31
  export interface ColorNotificationPayload {
@@ -36,13 +36,13 @@ export interface ColorNotificationPayload {
36
36
  export class ColorResolver {
37
37
  @Subscription(() => ColorNotification, { topics: 'COLOR' })
38
38
  @Public()
39
- colorSubscription(@Root() { message }: ColorNotificationPayload): ColorNotification {
39
+ colorSubscription(@Root() { message }: ColorNotificationPayload): ColorNotification { // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
40
40
  return { message, date: new Date() };
41
41
  }
42
42
 
43
43
  @Query(() => [Color])
44
44
  @Public()
45
- async colors(@Ctx() _ctx: AppContext, @PubSub() pubSub: PubSubEngine) {
45
+ async colors(@Ctx() _ctx: AppContext, @PubSub() pubSub: PubSubEngine) { // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
46
46
  const createdZ = new Date().toISOString();
47
47
 
48
48
  pubSub.publish('COLOR', {
@@ -25,79 +25,79 @@ import { configInfo } from '../config.js';
25
25
  @ObjectType()
26
26
  class ComponentSpecWithHashType {
27
27
  @Field(() => String, { nullable: true })
28
- specification?: string; // JSON string of ComponentSpec
28
+ specification?: string; // JSON string of ComponentSpec — case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
29
29
 
30
30
  @Field(() => String)
31
- hash: string;
31
+ hash: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
32
32
 
33
33
  @Field(() => Boolean)
34
- notModified: boolean;
34
+ notModified: boolean; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
35
35
 
36
36
  @Field(() => String, { nullable: true })
37
- message?: string;
37
+ message?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
38
38
  }
39
39
 
40
40
  @InputType()
41
41
  class SearchRegistryComponentsInput {
42
42
  @Field({ nullable: true })
43
- registryId?: string;
43
+ registryId?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
44
44
 
45
45
  @Field({ nullable: true })
46
- namespace?: string;
46
+ namespace?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
47
47
 
48
48
  @Field({ nullable: true })
49
- query?: string;
49
+ query?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
50
50
 
51
51
  @Field({ nullable: true })
52
- type?: string;
52
+ type?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
53
53
 
54
54
  @Field(() => [String], { nullable: true })
55
- tags?: string[];
55
+ tags?: string[]; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
56
56
 
57
57
  @Field({ nullable: true })
58
- limit?: number;
58
+ limit?: number; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
59
59
 
60
60
  @Field({ nullable: true })
61
- offset?: number;
61
+ offset?: number; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
62
62
  }
63
63
 
64
64
  @ObjectType()
65
65
  class RegistryComponentSearchResultType {
66
66
  @Field(() => [String])
67
- components: string[]; // Array of JSON strings of ComponentSpec
67
+ components: string[]; // Array of JSON strings of ComponentSpec — case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
68
68
 
69
69
  @Field()
70
- total: number;
70
+ total: number; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
71
71
 
72
72
  @Field()
73
- offset: number;
73
+ offset: number; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
74
74
 
75
75
  @Field()
76
- limit: number;
76
+ limit: number; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
77
77
  }
78
78
 
79
79
  @ObjectType()
80
80
  class ComponentDependencyTreeType {
81
81
  @Field()
82
- componentId: string;
82
+ componentId: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
83
83
 
84
84
  @Field({ nullable: true })
85
- name?: string;
85
+ name?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
86
86
 
87
87
  @Field({ nullable: true })
88
- namespace?: string;
88
+ namespace?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
89
89
 
90
90
  @Field({ nullable: true })
91
- version?: string;
91
+ version?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
92
92
 
93
93
  @Field({ nullable: true })
94
- circular?: boolean;
94
+ circular?: boolean; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
95
95
 
96
96
  @Field({ nullable: true })
97
- totalCount?: number;
97
+ totalCount?: number; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
98
98
 
99
99
  @Field(() => [ComponentDependencyTreeType], { nullable: true })
100
- dependencies?: ComponentDependencyTreeType[];
100
+ dependencies?: ComponentDependencyTreeType[]; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
101
101
  }
102
102
 
103
103
  /**
@@ -107,37 +107,37 @@ class ComponentDependencyTreeType {
107
107
  @InputType()
108
108
  class ComponentFeedbackInput {
109
109
  @Field()
110
- componentName: string;
110
+ componentName: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
111
111
 
112
112
  @Field()
113
- componentNamespace: string;
113
+ componentNamespace: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
114
114
 
115
115
  @Field({ nullable: true })
116
- componentVersion?: string;
116
+ componentVersion?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
117
117
 
118
118
  @Field({ nullable: true })
119
- registryName?: string;
119
+ registryName?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
120
120
 
121
121
  @Field()
122
- rating: number;
122
+ rating: number; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
123
123
 
124
124
  @Field({ nullable: true })
125
- feedbackType?: string;
125
+ feedbackType?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
126
126
 
127
127
  @Field({ nullable: true })
128
- comments?: string;
128
+ comments?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
129
129
 
130
130
  @Field({ nullable: true })
131
- conversationID?: string;
131
+ conversationID?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
132
132
 
133
133
  @Field({ nullable: true })
134
- conversationDetailID?: string;
134
+ conversationDetailID?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
135
135
 
136
136
  @Field({ nullable: true })
137
- reportID?: string;
137
+ reportID?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
138
138
 
139
139
  @Field({ nullable: true })
140
- dashboardID?: string;
140
+ dashboardID?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
141
141
  }
142
142
 
143
143
  /**
@@ -146,13 +146,13 @@ class ComponentFeedbackInput {
146
146
  @ObjectType()
147
147
  class ComponentFeedbackResponse {
148
148
  @Field()
149
- success: boolean;
149
+ success: boolean; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
150
150
 
151
151
  @Field({ nullable: true })
152
- feedbackID?: string;
152
+ feedbackID?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
153
153
 
154
154
  @Field({ nullable: true })
155
- error?: string;
155
+ error?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
156
156
  }
157
157
 
158
158
  /**
@@ -31,10 +31,10 @@ export class CommunicationProviderMessageType {
31
31
  AdditionalAttributes: string;
32
32
 
33
33
  @Field()
34
- _mj_CreatedAt: Date;
34
+ _mj_CreatedAt: Date; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
35
35
 
36
36
  @Field()
37
- _mj_UpdatedAt: Date;
37
+ _mj_UpdatedAt: Date; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
38
38
 
39
39
  @Field()
40
40
  CommunicationProvider?: string;
@@ -73,10 +73,10 @@ export class TemplateInputType {
73
73
  IsActive: boolean;
74
74
 
75
75
  @Field()
76
- _mj_CreatedAt: Date;
76
+ _mj_CreatedAt: Date; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
77
77
 
78
78
  @Field()
79
- _mj_UpdatedAt: Date;
79
+ _mj_UpdatedAt: Date; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
80
80
 
81
81
  @Field({ nullable: true })
82
82
  Category?: string;
@@ -13,13 +13,13 @@ const REMOTE_OP_PROGRESS_TOPIC = 'RemoteOperationProgress';
13
13
  @InputType()
14
14
  export class ExecuteRemoteOperationInput {
15
15
  @Field()
16
- operationKey: string;
16
+ operationKey: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
17
17
 
18
18
  @Field()
19
- inputJSON: string;
19
+ inputJSON: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
20
20
 
21
21
  @Field()
22
- invokeMode: string;
22
+ invokeMode: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
23
23
 
24
24
  /**
25
25
  * Optional client-generated channel id. When set (attached mode over the wire), the server publishes every
@@ -27,7 +27,7 @@ export class ExecuteRemoteOperationInput {
27
27
  * so the caller's `onProgress` fires live while the operation runs. Omitted for sync / no-progress calls.
28
28
  */
29
29
  @Field(() => String, { nullable: true })
30
- progressChannelId?: string;
30
+ progressChannelId?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
31
31
  }
32
32
 
33
33
  /** A single streamed progress envelope delivered over the `RemoteOperationProgress` subscription. */
@@ -45,19 +45,19 @@ export class RemoteOperationProgressNotification {
45
45
  @ObjectType()
46
46
  export class ExecuteRemoteOperationResultType {
47
47
  @Field(() => Boolean)
48
- success: boolean;
48
+ success: boolean; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
49
49
 
50
50
  @Field(() => String, { nullable: true })
51
- resultCode?: string;
51
+ resultCode?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
52
52
 
53
53
  @Field(() => String, { nullable: true })
54
- outputJSON?: string;
54
+ outputJSON?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
55
55
 
56
56
  @Field(() => String, { nullable: true })
57
- handle?: string;
57
+ handle?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
58
58
 
59
59
  @Field(() => String, { nullable: true })
60
- errorMessage?: string;
60
+ errorMessage?: string; // case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
61
61
  }
62
62
 
63
63
  /**