@oneuptime/common 12.0.13 → 12.0.14

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 (376) hide show
  1. package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +14 -0
  2. package/Models/DatabaseModels/UserCall.ts +94 -3
  3. package/Models/DatabaseModels/UserEmail.ts +94 -3
  4. package/Models/DatabaseModels/UserIncomingCallNumber.ts +94 -3
  5. package/Models/DatabaseModels/UserPush.ts +37 -0
  6. package/Models/DatabaseModels/UserSMS.ts +94 -3
  7. package/Models/DatabaseModels/UserWhatsApp.ts +93 -2
  8. package/Server/API/BaseAPI.ts +79 -14
  9. package/Server/API/UserCallAPI.ts +53 -45
  10. package/Server/API/UserEmailAPI.ts +53 -44
  11. package/Server/API/UserIncomingCallNumberAPI.ts +48 -38
  12. package/Server/API/UserNotificationMethodAdminAPI.ts +481 -0
  13. package/Server/API/UserPushAPI.ts +126 -2
  14. package/Server/API/UserSmsAPI.ts +53 -44
  15. package/Server/API/UserWhatsAppAPI.ts +53 -50
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1787142779538-MigrationName.ts +154 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/1787156982416-MigrationName.ts +17 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/1787700000000-FixTotpOtpUrlAlgorithm.ts +45 -0
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
  20. package/Server/Middleware/VerificationCodeRateLimit.ts +586 -0
  21. package/Server/Services/AnalyticsDatabaseService.ts +169 -0
  22. package/Server/Services/DatabaseService.ts +101 -0
  23. package/Server/Services/LogAggregationService.ts +5 -0
  24. package/Server/Services/PushNotificationService.ts +127 -12
  25. package/Server/Services/TeamMemberService.ts +53 -13
  26. package/Server/Services/UserCallService.ts +55 -24
  27. package/Server/Services/UserEmailService.ts +83 -17
  28. package/Server/Services/UserIncomingCallNumberService.ts +49 -85
  29. package/Server/Services/UserNotificationMethodAdminService.ts +1527 -0
  30. package/Server/Services/UserNotificationRuleService.ts +26 -0
  31. package/Server/Services/UserPushService.ts +89 -0
  32. package/Server/Services/UserSmsService.ts +50 -17
  33. package/Server/Services/UserWhatsAppService.ts +48 -15
  34. package/Server/Types/Database/QueryHelper.ts +30 -0
  35. package/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.ts +59 -0
  36. package/Server/Utils/ChannelVerification.ts +510 -0
  37. package/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.ts +13 -16
  38. package/Server/Utils/Monitor/MonitorAlert.ts +24 -21
  39. package/Server/Utils/Monitor/MonitorIncident.ts +21 -18
  40. package/Server/Utils/Monitor/MonitorResourceContext.ts +107 -0
  41. package/Server/Utils/Monitor/MonitorStepResourceIdentity.ts +442 -0
  42. package/Server/Utils/Monitor/SeriesResourceLabels.ts +3 -3
  43. package/Server/Utils/Monitor/SeriesResourceLinker.ts +96 -28
  44. package/Server/Utils/TotpAuth.ts +137 -9
  45. package/Server/Utils/UserRegistrationToken.ts +182 -0
  46. package/Server/Utils/VerificationCode.ts +134 -0
  47. package/Tests/App/Dashboard/AdminNotificationRulesPage.test.tsx +173 -94
  48. package/Tests/App/Dashboard/AdminUserNotificationMethodsPage.test.tsx +1151 -0
  49. package/Tests/App/Dashboard/AdminUserOnCallPages.test.tsx +905 -0
  50. package/Tests/App/Dashboard/DashboardCommandPalette.test.tsx +338 -0
  51. package/Tests/App/Dashboard/InvestigationPanel.test.tsx +1 -1
  52. package/Tests/App/Dashboard/MonitorTypePicker.test.tsx +28 -0
  53. package/Tests/Models/UserPushCriticalAlertColumn.test.ts +172 -0
  54. package/Tests/Server/API/BaseAPIGetListParallel.test.ts +519 -0
  55. package/Tests/Server/API/NotificationChannelVerificationAPI.test.ts +543 -0
  56. package/Tests/Server/API/UserIncomingCallNumberApi.test.ts +108 -18
  57. package/Tests/Server/API/UserNotificationMethodAdminAPI.test.ts +963 -0
  58. package/Tests/Server/API/UserPushCriticalAlertsApi.test.ts +114 -0
  59. package/Tests/Server/API/UserSmsApi.test.ts +107 -14
  60. package/Tests/Server/API/UserTotpAuthAPI.test.ts +427 -0
  61. package/Tests/Server/Infrastructure/Postgres/FixTotpOtpUrlAlgorithmMigration.test.ts +315 -0
  62. package/Tests/Server/Middleware/VerificationCodeRateLimit.test.ts +775 -0
  63. package/Tests/Server/Services/AddNetworkDeviceReachabilityColumnsMigration.test.ts +10 -62
  64. package/Tests/Server/Services/AnalyticsDatabasePaginationStability.test.ts +33 -13
  65. package/Tests/Server/Services/AnalyticsDatabaseSortKeyBoundary.test.ts +658 -0
  66. package/Tests/Server/Services/CriticalOnCallAlertDelivery.test.ts +458 -0
  67. package/Tests/Server/Services/CriticalPushAlertPayload.test.ts +301 -0
  68. package/Tests/Server/Services/DatabaseServiceAtomicIncrement.test.ts +143 -0
  69. package/Tests/Server/Services/DeliverNotificationForRuleExtraction.test.ts +1 -0
  70. package/Tests/Server/Services/LogAggregationScanMemory.test.ts +421 -0
  71. package/Tests/Server/Services/LogAggregationService.test.ts +2 -2
  72. package/Tests/Server/Services/NotificationChannelCodeIssuance.test.ts +401 -0
  73. package/Tests/Server/Services/PushNotificationDeliveryOptions.test.ts +204 -0
  74. package/Tests/Server/Services/TeamMemberAutoAcceptInvitation.test.ts +21 -1
  75. package/Tests/Server/Services/TeamMemberInviteRegistrationToken.test.ts +290 -0
  76. package/Tests/Server/Services/UserNotificationMethodAdminService.test.ts +948 -0
  77. package/Tests/Server/Services/UserNotificationRuleExecuteItem.test.ts +1 -0
  78. package/Tests/Server/Services/UserPushCriticalAlertToggle.test.ts +255 -0
  79. package/Tests/Server/Services/UserTotpAuthEnrolment.test.ts +218 -0
  80. package/Tests/Server/TestingUtils/AuthenticatorApp.ts +248 -0
  81. package/Tests/Server/Types/Database/Permissions/NotificationChannelVerificationColumns.test.ts +135 -0
  82. package/Tests/Server/Types/Database/Permissions/OnCallScheduleRelationSelect.test.ts +504 -0
  83. package/Tests/Server/Types/Database/QueryHelperFindWithSameTextAnyOf.test.ts +91 -0
  84. package/Tests/Server/Types/Workflow/Components/JsonToText.test.ts +384 -0
  85. package/Tests/Server/Types/Workflow/Components/MergeJson.test.ts +403 -0
  86. package/Tests/Server/Utils/Browser.test.ts +162 -0
  87. package/Tests/Server/Utils/ChannelVerification.test.ts +689 -0
  88. package/Tests/Server/Utils/Express.test.ts +371 -0
  89. package/Tests/Server/Utils/Monitor/Criteria/CustomCodeMonitorCriteria.test.ts +707 -0
  90. package/Tests/Server/Utils/Monitor/Criteria/DnsMonitorCriteria.test.ts +698 -0
  91. package/Tests/Server/Utils/Monitor/Criteria/IncomingEmailBodyCriteria.test.ts +243 -0
  92. package/Tests/Server/Utils/Monitor/Criteria/IncomingRequestBodyCriteria.test.ts +278 -0
  93. package/Tests/Server/Utils/Monitor/MonitorAlertResourceLinking.test.ts +160 -20
  94. package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +13 -8
  95. package/Tests/Server/Utils/Monitor/MonitorIncidentResourceLinking.test.ts +162 -18
  96. package/Tests/Server/Utils/Monitor/MonitorResourceContext.test.ts +349 -0
  97. package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +690 -0
  98. package/Tests/Server/Utils/Monitor/MonitorSummaryPersistence.test.ts +7 -2
  99. package/Tests/Server/Utils/Monitor/SeriesResourceLinker.test.ts +92 -18
  100. package/Tests/Server/Utils/PushNotificationUtilCreators.test.ts +267 -0
  101. package/Tests/Server/Utils/Telemetry/OneuptimeLabel.test.ts +439 -0
  102. package/Tests/Server/Utils/TotpAuth.test.ts +719 -0
  103. package/Tests/Server/Utils/UserRegistrationToken.test.ts +322 -0
  104. package/Tests/Server/Utils/VerificationCode.test.ts +296 -0
  105. package/Tests/Types/AutoRemediation/AutoRemediationSuggestionStatus.test.ts +192 -0
  106. package/Tests/Types/Call/CallRequest.test.ts +189 -0
  107. package/Tests/Types/Dashboard/DashboardSize.test.ts +226 -0
  108. package/Tests/Types/Incident/IncidentSlaStatus.test.ts +191 -0
  109. package/Tests/Types/Metrics/MetricDashboardMetricType.test.ts +278 -0
  110. package/Tests/Types/Metrics/MetricPipelineRuleType.test.ts +517 -0
  111. package/Tests/Types/Monitor/IncomingMonitorDefaultCriteria.test.ts +470 -0
  112. package/Tests/Types/Monitor/MonitorCriteriaInstance.test.ts +6 -4
  113. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +262 -5
  114. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +1 -1
  115. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +1 -1
  116. package/Tests/Types/Monitor/ServiceAlertTemplates.test.ts +905 -0
  117. package/Tests/Types/Service/ServiceLanguage.test.ts +255 -0
  118. package/Tests/Types/TextRandomGeneration.test.ts +211 -0
  119. package/Tests/UI/Components/Button.test.tsx +175 -1
  120. package/Tests/UI/Components/CodeBlockLanguages.test.tsx +236 -0
  121. package/Tests/UI/Components/CommandPalette/CommandPalette.test.tsx +568 -0
  122. package/Tests/UI/Components/CommandPalette/CommandPaletteKeyboard.test.tsx +239 -0
  123. package/Tests/UI/Components/CommandPalette/CommandPaletteProviders.test.tsx +400 -0
  124. package/Tests/UI/Components/CommandPalette/PaletteFilter.test.ts +234 -0
  125. package/Tests/UI/Components/CommandPalette/RecentCommands.test.ts +97 -0
  126. package/Tests/UI/Components/CountModelSideMenuItemGuard.test.tsx +198 -0
  127. package/Tests/UI/Components/FeedItemSafeMode.test.tsx +1 -1
  128. package/Tests/UI/Components/Forms/Utils/FormFieldSchemaTypeUtil.test.ts +267 -0
  129. package/Tests/UI/Components/List.test.tsx +9 -2
  130. package/Tests/UI/Components/ListLoadingStates.test.tsx +173 -0
  131. package/Tests/UI/Components/MarkdownLazy.test.tsx +113 -0
  132. package/Tests/UI/Components/MarkdownMermaidRetry.test.tsx +110 -0
  133. package/Tests/UI/Components/ModelTable/useCustomFieldColumns.test.tsx +8 -0
  134. package/Tests/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.test.ts +692 -0
  135. package/Tests/UI/Components/MoreMenuMotion.test.tsx +118 -0
  136. package/Tests/UI/Components/NavBarCommandKGating.test.tsx +178 -0
  137. package/Tests/UI/Components/OrderedStatesList.test.tsx +19 -2
  138. package/Tests/UI/Components/SideOverMotion.test.tsx +109 -0
  139. package/Tests/UI/Components/Skeleton.test.tsx +71 -0
  140. package/Tests/UI/Components/TableLoadingStates.test.tsx +279 -0
  141. package/Tests/UI/Components/Tabs.test.tsx +24 -0
  142. package/Tests/UI/Components/Toast.test.tsx +130 -7
  143. package/Tests/UI/Components/ToastStacking.test.tsx +198 -0
  144. package/Tests/UI/Utils/Dropdown.test.ts +423 -0
  145. package/Tests/UI/Utils/ModelAPITenantHeader.test.ts +122 -0
  146. package/Tests/UI/Utils/ModelListCache.test.ts +338 -0
  147. package/Tests/UI/Utils/ProjectListCacheInvalidation.test.ts +225 -0
  148. package/Tests/Utils/API.test.ts +16 -2
  149. package/Tests/Utils/Dashboard/Components/DashboardKubernetesResourceListShared.test.ts +347 -0
  150. package/Tests/Utils/Dashboard/Components/DashboardListSharedArgs.test.ts +259 -0
  151. package/Tests/Utils/Dashboard/Components/DashboardMonitorListComponent.test.ts +466 -0
  152. package/Tests/Utils/Rum/UrlScrubberSegments.test.ts +362 -0
  153. package/Types/Email/EmailTemplateType.ts +1 -0
  154. package/Types/Monitor/MonitorCriteriaInstance.ts +41 -20
  155. package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +131 -8
  156. package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +48 -8
  157. package/Types/Monitor/ServiceAlertTemplates.ts +1352 -0
  158. package/Types/Permission.ts +35 -0
  159. package/Types/PushNotification/AndroidNotificationChannel.ts +26 -0
  160. package/Types/PushNotification/PushNotificationMessage.ts +15 -0
  161. package/Types/PushNotification/PushNotificationRequest.ts +8 -16
  162. package/Types/Service/ServiceLanguage.ts +144 -0
  163. package/Types/Text.ts +111 -19
  164. package/UI/Components/Button/Button.tsx +27 -14
  165. package/UI/Components/CodeBlock/CodeBlock.tsx +54 -7
  166. package/UI/Components/CodeBlock/LanguageRegistry.ts +103 -0
  167. package/UI/Components/CommandPalette/CommandPalette.tsx +790 -0
  168. package/UI/Components/CommandPalette/PaletteFilter.ts +196 -0
  169. package/UI/Components/CommandPalette/PaletteRow.tsx +173 -0
  170. package/UI/Components/CommandPalette/RecentCommands.ts +57 -0
  171. package/UI/Components/CommandPalette/Types.ts +49 -0
  172. package/UI/Components/CommandPalette/UseProviderSearch.ts +129 -0
  173. package/UI/Components/Dropdown/Dropdown.tsx +6 -1
  174. package/UI/Components/Feed/FeedItem.tsx +1 -1
  175. package/UI/Components/List/List.tsx +37 -5
  176. package/UI/Components/List/ListSkeleton.tsx +54 -0
  177. package/UI/Components/Markdown.tsx/LazyMarkdownViewer.tsx +6 -1
  178. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +71 -26
  179. package/UI/Components/Modal/Modal.tsx +2 -2
  180. package/UI/Components/ModelTable/BaseModelTable.tsx +1 -1
  181. package/UI/Components/ModelTable/useCustomFieldColumns.ts +11 -5
  182. package/UI/Components/MoreMenu/MoreMenu.tsx +39 -1
  183. package/UI/Components/Navbar/NavBar.tsx +14 -1
  184. package/UI/Components/OrderedStatesList/OrderedStatesList.tsx +50 -5
  185. package/UI/Components/SideMenu/CountModelSideMenuItem.tsx +40 -1
  186. package/UI/Components/SideOver/SideOver.tsx +37 -2
  187. package/UI/Components/Skeleton/Skeleton.tsx +53 -0
  188. package/UI/Components/Table/Table.tsx +74 -44
  189. package/UI/Components/Table/TableSkeletonRows.tsx +141 -0
  190. package/UI/Components/Tabs/Tab.tsx +1 -1
  191. package/UI/Components/Toast/Toast.tsx +118 -53
  192. package/UI/Components/Toast/ToastInit.tsx +82 -32
  193. package/UI/Styles/Theme.css +40 -0
  194. package/UI/Utils/ModelAPI/ModelAPI.ts +20 -10
  195. package/UI/Utils/ModelListCache.ts +188 -0
  196. package/UI/Utils/Project.ts +29 -0
  197. package/Utils/API.ts +6 -1
  198. package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +14 -0
  199. package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
  200. package/build/dist/Models/DatabaseModels/UserCall.js +101 -3
  201. package/build/dist/Models/DatabaseModels/UserCall.js.map +1 -1
  202. package/build/dist/Models/DatabaseModels/UserEmail.js +101 -3
  203. package/build/dist/Models/DatabaseModels/UserEmail.js.map +1 -1
  204. package/build/dist/Models/DatabaseModels/UserIncomingCallNumber.js +101 -3
  205. package/build/dist/Models/DatabaseModels/UserIncomingCallNumber.js.map +1 -1
  206. package/build/dist/Models/DatabaseModels/UserPush.js +38 -0
  207. package/build/dist/Models/DatabaseModels/UserPush.js.map +1 -1
  208. package/build/dist/Models/DatabaseModels/UserSMS.js +101 -3
  209. package/build/dist/Models/DatabaseModels/UserSMS.js.map +1 -1
  210. package/build/dist/Models/DatabaseModels/UserWhatsApp.js +100 -2
  211. package/build/dist/Models/DatabaseModels/UserWhatsApp.js.map +1 -1
  212. package/build/dist/Server/API/BaseAPI.js +69 -13
  213. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  214. package/build/dist/Server/API/UserCallAPI.js +42 -38
  215. package/build/dist/Server/API/UserCallAPI.js.map +1 -1
  216. package/build/dist/Server/API/UserEmailAPI.js +42 -38
  217. package/build/dist/Server/API/UserEmailAPI.js.map +1 -1
  218. package/build/dist/Server/API/UserIncomingCallNumberAPI.js +37 -32
  219. package/build/dist/Server/API/UserIncomingCallNumberAPI.js.map +1 -1
  220. package/build/dist/Server/API/UserNotificationMethodAdminAPI.js +341 -0
  221. package/build/dist/Server/API/UserNotificationMethodAdminAPI.js.map +1 -0
  222. package/build/dist/Server/API/UserPushAPI.js +95 -2
  223. package/build/dist/Server/API/UserPushAPI.js.map +1 -1
  224. package/build/dist/Server/API/UserSmsAPI.js +42 -38
  225. package/build/dist/Server/API/UserSmsAPI.js.map +1 -1
  226. package/build/dist/Server/API/UserWhatsAppAPI.js +42 -40
  227. package/build/dist/Server/API/UserWhatsAppAPI.js.map +1 -1
  228. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787142779538-MigrationName.js +89 -0
  229. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787142779538-MigrationName.js.map +1 -0
  230. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787156982416-MigrationName.js +12 -0
  231. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787156982416-MigrationName.js.map +1 -0
  232. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787700000000-FixTotpOtpUrlAlgorithm.js +40 -0
  233. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787700000000-FixTotpOtpUrlAlgorithm.js.map +1 -0
  234. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
  235. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  236. package/build/dist/Server/Middleware/VerificationCodeRateLimit.js +393 -0
  237. package/build/dist/Server/Middleware/VerificationCodeRateLimit.js.map +1 -0
  238. package/build/dist/Server/Services/AnalyticsDatabaseService.js +136 -0
  239. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  240. package/build/dist/Server/Services/DatabaseService.js +74 -0
  241. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  242. package/build/dist/Server/Services/LogAggregationService.js +5 -0
  243. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  244. package/build/dist/Server/Services/PushNotificationService.js +69 -30
  245. package/build/dist/Server/Services/PushNotificationService.js.map +1 -1
  246. package/build/dist/Server/Services/TeamMemberService.js +43 -7
  247. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  248. package/build/dist/Server/Services/UserCallService.js +54 -22
  249. package/build/dist/Server/Services/UserCallService.js.map +1 -1
  250. package/build/dist/Server/Services/UserEmailService.js +78 -17
  251. package/build/dist/Server/Services/UserEmailService.js.map +1 -1
  252. package/build/dist/Server/Services/UserIncomingCallNumberService.js +45 -74
  253. package/build/dist/Server/Services/UserIncomingCallNumberService.js.map +1 -1
  254. package/build/dist/Server/Services/UserNotificationMethodAdminService.js +1117 -0
  255. package/build/dist/Server/Services/UserNotificationMethodAdminService.js.map +1 -0
  256. package/build/dist/Server/Services/UserNotificationRuleService.js +20 -0
  257. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  258. package/build/dist/Server/Services/UserPushService.js +77 -0
  259. package/build/dist/Server/Services/UserPushService.js.map +1 -1
  260. package/build/dist/Server/Services/UserSmsService.js +50 -17
  261. package/build/dist/Server/Services/UserSmsService.js.map +1 -1
  262. package/build/dist/Server/Services/UserWhatsAppService.js +48 -15
  263. package/build/dist/Server/Services/UserWhatsAppService.js.map +1 -1
  264. package/build/dist/Server/Types/Database/QueryHelper.js +27 -0
  265. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  266. package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js +46 -0
  267. package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js.map +1 -1
  268. package/build/dist/Server/Utils/ChannelVerification.js +348 -0
  269. package/build/dist/Server/Utils/ChannelVerification.js.map +1 -0
  270. package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js +13 -12
  271. package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js.map +1 -1
  272. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +20 -17
  273. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  274. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +17 -14
  275. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  276. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js +95 -0
  277. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js.map +1 -0
  278. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js +313 -0
  279. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js.map +1 -0
  280. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +3 -3
  281. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js +67 -26
  282. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js.map +1 -1
  283. package/build/dist/Server/Utils/TotpAuth.js +127 -8
  284. package/build/dist/Server/Utils/TotpAuth.js.map +1 -1
  285. package/build/dist/Server/Utils/UserRegistrationToken.js +170 -0
  286. package/build/dist/Server/Utils/UserRegistrationToken.js.map +1 -0
  287. package/build/dist/Server/Utils/VerificationCode.js +120 -0
  288. package/build/dist/Server/Utils/VerificationCode.js.map +1 -0
  289. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  290. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  291. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +42 -21
  292. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  293. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +77 -5
  294. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
  295. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +18 -6
  296. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
  297. package/build/dist/Types/Monitor/ServiceAlertTemplates.js +1028 -0
  298. package/build/dist/Types/Monitor/ServiceAlertTemplates.js.map +1 -0
  299. package/build/dist/Types/Permission.js +33 -0
  300. package/build/dist/Types/Permission.js.map +1 -1
  301. package/build/dist/Types/PushNotification/AndroidNotificationChannel.js +27 -0
  302. package/build/dist/Types/PushNotification/AndroidNotificationChannel.js.map +1 -0
  303. package/build/dist/Types/Service/ServiceLanguage.js +96 -0
  304. package/build/dist/Types/Service/ServiceLanguage.js.map +1 -0
  305. package/build/dist/Types/Text.js +82 -17
  306. package/build/dist/Types/Text.js.map +1 -1
  307. package/build/dist/UI/Components/Button/Button.js +22 -14
  308. package/build/dist/UI/Components/Button/Button.js.map +1 -1
  309. package/build/dist/UI/Components/CodeBlock/CodeBlock.js +35 -3
  310. package/build/dist/UI/Components/CodeBlock/CodeBlock.js.map +1 -1
  311. package/build/dist/UI/Components/CodeBlock/LanguageRegistry.js +57 -0
  312. package/build/dist/UI/Components/CodeBlock/LanguageRegistry.js.map +1 -0
  313. package/build/dist/UI/Components/CommandPalette/CommandPalette.js +439 -0
  314. package/build/dist/UI/Components/CommandPalette/CommandPalette.js.map +1 -0
  315. package/build/dist/UI/Components/CommandPalette/PaletteFilter.js +135 -0
  316. package/build/dist/UI/Components/CommandPalette/PaletteFilter.js.map +1 -0
  317. package/build/dist/UI/Components/CommandPalette/PaletteRow.js +83 -0
  318. package/build/dist/UI/Components/CommandPalette/PaletteRow.js.map +1 -0
  319. package/build/dist/UI/Components/CommandPalette/RecentCommands.js +47 -0
  320. package/build/dist/UI/Components/CommandPalette/RecentCommands.js.map +1 -0
  321. package/build/dist/UI/Components/CommandPalette/Types.js +2 -0
  322. package/build/dist/UI/Components/CommandPalette/Types.js.map +1 -0
  323. package/build/dist/UI/Components/CommandPalette/UseProviderSearch.js +88 -0
  324. package/build/dist/UI/Components/CommandPalette/UseProviderSearch.js.map +1 -0
  325. package/build/dist/UI/Components/Dropdown/Dropdown.js +6 -1
  326. package/build/dist/UI/Components/Dropdown/Dropdown.js.map +1 -1
  327. package/build/dist/UI/Components/Feed/FeedItem.js +1 -1
  328. package/build/dist/UI/Components/Feed/FeedItem.js.map +1 -1
  329. package/build/dist/UI/Components/List/List.js +19 -5
  330. package/build/dist/UI/Components/List/List.js.map +1 -1
  331. package/build/dist/UI/Components/List/ListSkeleton.js +21 -0
  332. package/build/dist/UI/Components/List/ListSkeleton.js.map +1 -0
  333. package/build/dist/UI/Components/Markdown.tsx/LazyMarkdownViewer.js.map +1 -1
  334. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +52 -25
  335. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  336. package/build/dist/UI/Components/Modal/Modal.js +2 -2
  337. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +1 -1
  338. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  339. package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js +9 -2
  340. package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js.map +1 -1
  341. package/build/dist/UI/Components/MoreMenu/MoreMenu.js +32 -1
  342. package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
  343. package/build/dist/UI/Components/Navbar/NavBar.js +5 -1
  344. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  345. package/build/dist/UI/Components/OrderedStatesList/OrderedStatesList.js +29 -5
  346. package/build/dist/UI/Components/OrderedStatesList/OrderedStatesList.js.map +1 -1
  347. package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js +23 -1
  348. package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js.map +1 -1
  349. package/build/dist/UI/Components/SideOver/SideOver.js +23 -2
  350. package/build/dist/UI/Components/SideOver/SideOver.js.map +1 -1
  351. package/build/dist/UI/Components/Skeleton/Skeleton.js +23 -0
  352. package/build/dist/UI/Components/Skeleton/Skeleton.js.map +1 -0
  353. package/build/dist/UI/Components/Table/Table.js +35 -24
  354. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  355. package/build/dist/UI/Components/Table/TableSkeletonRows.js +52 -0
  356. package/build/dist/UI/Components/Table/TableSkeletonRows.js.map +1 -0
  357. package/build/dist/UI/Components/Tabs/Tab.js +1 -1
  358. package/build/dist/UI/Components/Tabs/Tab.js.map +1 -1
  359. package/build/dist/UI/Components/Toast/Toast.js +77 -23
  360. package/build/dist/UI/Components/Toast/Toast.js.map +1 -1
  361. package/build/dist/UI/Components/Toast/ToastInit.js +37 -15
  362. package/build/dist/UI/Components/Toast/ToastInit.js.map +1 -1
  363. package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +18 -9
  364. package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
  365. package/build/dist/UI/Utils/ModelListCache.js +126 -0
  366. package/build/dist/UI/Utils/ModelListCache.js.map +1 -0
  367. package/build/dist/UI/Utils/Project.js +24 -1
  368. package/build/dist/UI/Utils/Project.js.map +1 -1
  369. package/build/dist/Utils/API.js +6 -1
  370. package/build/dist/Utils/API.js.map +1 -1
  371. package/jest.config.json +1 -1
  372. package/package.json +2 -3
  373. package/Server/Utils/Monitor/MonitorClusterContext.ts +0 -182
  374. package/Tests/__mocks__/otpauth.js +0 -30
  375. package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js +0 -141
  376. package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import React, { useState } from "react";
1
+ import React, { useEffect, useRef, useState, } from "react";
2
2
  import Icon from "../Icon/Icon";
3
3
  import IconProp from "../../../Types/Icon/IconProp";
4
4
  import useTranslateValue from "../../Utils/Translation";
@@ -10,9 +10,60 @@ export var ToastType;
10
10
  ToastType[ToastType["WARNING"] = 3] = "WARNING";
11
11
  ToastType[ToastType["NORMAL"] = 4] = "NORMAL";
12
12
  })(ToastType || (ToastType = {}));
13
+ /* How long the exit fade runs before the toast actually unmounts. */
14
+ const EXIT_DURATION_IN_MS = 150;
13
15
  const Component = (props) => {
14
16
  const { translateString } = useTranslateValue();
15
17
  const [show, setShow] = useState(true);
18
+ /*
19
+ * The toast is mounted in its closed state (faded, nudged down) and flipped
20
+ * open one frame later so the browser has something to transition from —
21
+ * the same pattern Modal uses for its entrance.
22
+ */
23
+ const [hasEntered, setHasEntered] = useState(false);
24
+ /*
25
+ * Dismissal fades the card out first and only unmounts (and notifies the
26
+ * owner) once the fade has finished, so the toast never blinks away.
27
+ */
28
+ const [isLeaving, setIsLeaving] = useState(false);
29
+ useEffect(() => {
30
+ const open = () => {
31
+ setHasEntered(true);
32
+ };
33
+ const frame = requestAnimationFrame(open);
34
+ /*
35
+ * A hidden or throttled tab never runs an animation frame; the timer
36
+ * skips the transition rather than leaving the toast at zero opacity.
37
+ */
38
+ const fallbackTimer = setTimeout(open, 80);
39
+ return () => {
40
+ cancelAnimationFrame(frame);
41
+ clearTimeout(fallbackTimer);
42
+ };
43
+ }, []);
44
+ /*
45
+ * The latest onClose lives in a ref so the exit effect can depend on
46
+ * isLeaving alone. Owners may recreate onClose every render, and a dep on
47
+ * it would restart the unmount timer whenever a sibling toast re-renders
48
+ * the stack mid-exit — leaving an invisible pointer-events-auto card
49
+ * intercepting clicks past its original deadline.
50
+ */
51
+ const onCloseRef = useRef(props.onClose);
52
+ onCloseRef.current = props.onClose;
53
+ useEffect(() => {
54
+ if (!isLeaving) {
55
+ return undefined;
56
+ }
57
+ const exitTimer = setTimeout(() => {
58
+ setShow(false);
59
+ if (onCloseRef.current) {
60
+ onCloseRef.current();
61
+ }
62
+ }, EXIT_DURATION_IN_MS);
63
+ return () => {
64
+ clearTimeout(exitTimer);
65
+ };
66
+ }, [isLeaving]);
16
67
  let typeCssClass = "text-gray-400";
17
68
  let iconType = IconProp.Info;
18
69
  if (props.type === ToastType.NORMAL) {
@@ -38,30 +89,33 @@ const Component = (props) => {
38
89
  if (props.icon) {
39
90
  iconType = props.icon;
40
91
  }
41
- let top = 0;
42
- if (props.index) {
43
- top = props.index * 16; // move the second item lower than the first one. 16 is the height of the toast.
92
+ /*
93
+ * Settled state carries no transform class at all — leaving a translate on
94
+ * the card would make it the containing block for position:fixed
95
+ * descendants (the Modal invariant).
96
+ */
97
+ let motionClassName = "translate-y-2 opacity-0";
98
+ if (isLeaving) {
99
+ motionClassName = "opacity-0";
100
+ }
101
+ else if (hasEntered) {
102
+ motionClassName = "opacity-100";
44
103
  }
45
104
  if (show) {
46
- return (React.createElement("div", { "data-testid": "toast", "aria-live": "assertive", className: `pointer-events-none fixed z-40 top-${top} left-0 right-0 flex items-end px-4 py-6 sm:items-start sm:p-6` },
47
- React.createElement("div", { className: "flex w-full flex-col items-center space-y-4 sm:items-end" },
48
- React.createElement("div", { className: "pointer-events-auto w-full max-w-sm overflow-hidden rounded-lg bg-white shadow-lg ring-1 ring-black ring-opacity-5" },
49
- React.createElement("div", { className: "p-4" },
50
- React.createElement("div", { className: "flex items-start" },
51
- React.createElement("div", { className: "flex-shrink-0" },
52
- React.createElement(Icon, { className: `h-6 w-6 ${typeCssClass}`, "data-testid": "toast-icon", icon: iconType })),
53
- React.createElement("div", { className: "ml-3 w-0 flex-1 pt-0.5" },
54
- React.createElement("p", { "data-testid": "title", className: "text-sm font-medium text-gray-900" }, translateString(props.title)),
55
- React.createElement("p", { "data-testid": "description", className: "mt-1 text-sm text-gray-500" }, translateString(props.description))),
56
- React.createElement("div", { className: "ml-4 flex flex-shrink-0" },
57
- React.createElement("button", { onClick: () => {
58
- setShow(false);
59
- if (props.onClose) {
60
- props.onClose();
61
- }
62
- }, "data-testid": "close-button", type: "button", className: "inline-flex rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2" },
63
- React.createElement("span", { className: "sr-only" }, "Close"),
64
- React.createElement(Icon, { className: `h-5 w-5`, icon: IconProp.Close })))))))));
105
+ return (React.createElement("div", { "data-testid": "toast", className: `pointer-events-auto w-full max-w-sm overflow-hidden rounded-lg bg-white shadow-lg ring-1 ring-black ring-opacity-5 transition duration-150 ease-out motion-reduce:transition-none ${motionClassName}` },
106
+ React.createElement("div", { className: "p-4" },
107
+ React.createElement("div", { className: "flex items-start" },
108
+ React.createElement("div", { className: "flex-shrink-0" },
109
+ React.createElement(Icon, { className: `h-6 w-6 ${typeCssClass}`, "data-testid": "toast-icon", icon: iconType })),
110
+ React.createElement("div", { className: "ml-3 w-0 flex-1 pt-0.5" },
111
+ React.createElement("p", { "data-testid": "title", className: "text-sm font-medium text-gray-900" }, translateString(props.title)),
112
+ React.createElement("p", { "data-testid": "description", className: "mt-1 text-sm text-gray-500" }, translateString(props.description))),
113
+ React.createElement("div", { className: "ml-4 flex flex-shrink-0" },
114
+ React.createElement("button", { onClick: () => {
115
+ setIsLeaving(true);
116
+ }, "data-testid": "close-button", type: "button", className: "inline-flex rounded-md bg-white text-gray-400 transition-colors duration-150 ease-out hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2" },
117
+ React.createElement("span", { className: "sr-only" }, "Close"),
118
+ React.createElement(Icon, { className: `h-5 w-5`, icon: IconProp.Close })))))));
65
119
  }
66
120
  return React.createElement(React.Fragment, null);
67
121
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../../../../UI/Components/Toast/Toast.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../../../../UI/Components/Toast/Toast.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React, { useEffect } from "react";
1
+ import React, { useEffect, useRef, } from "react";
2
2
  import Toast from "./Toast";
3
3
  import GlobalEvents from "../../Utils/GlobalEvents";
4
4
  export const ShowToastNotification = (toast) => {
@@ -6,26 +6,48 @@ export const ShowToastNotification = (toast) => {
6
6
  };
7
7
  const ToastLayout = () => {
8
8
  const [currentToasts, setCurrentToasts] = React.useState([]);
9
- const addToastNotification = (event) => {
10
- const toast = event.detail;
11
- setCurrentToasts([...currentToasts, toast]);
12
- };
9
+ const nextToastIdRef = useRef(0);
13
10
  useEffect(() => {
11
+ const addToastNotification = (event) => {
12
+ const toast = event.detail;
13
+ const id = nextToastIdRef.current;
14
+ nextToastIdRef.current += 1;
15
+ // setCurrentToasts is stable, so this closure never goes stale.
16
+ const onClose = () => {
17
+ if (toast.onClose) {
18
+ toast.onClose();
19
+ }
20
+ setCurrentToasts((toasts) => {
21
+ return toasts.filter((candidate) => {
22
+ return candidate.id !== id;
23
+ });
24
+ });
25
+ };
26
+ /*
27
+ * Functional update: this listener is registered once, so reading
28
+ * currentToasts from its closure would always see the mount-time empty
29
+ * array and every new toast would clobber the ones before it.
30
+ */
31
+ setCurrentToasts((toasts) => {
32
+ return [...toasts, { id, toast, onClose }];
33
+ });
34
+ };
14
35
  GlobalEvents.addEventListener("toast", addToastNotification);
15
36
  return () => {
16
37
  GlobalEvents.removeEventListener("toast", addToastNotification);
17
38
  };
18
39
  }, []);
19
- return (React.createElement("div", null, currentToasts.map((toast, index) => {
20
- return (React.createElement(Toast, { key: index, title: toast.title, description: toast.description, type: toast.type, onClose: () => {
21
- if (toast.onClose) {
22
- toast.onClose();
23
- }
24
- const newToasts = [...currentToasts];
25
- newToasts.splice(index, 1);
26
- setCurrentToasts(newToasts);
27
- } }));
28
- })));
40
+ /*
41
+ * ONE fixed container for every toast. Each toast used to render its own
42
+ * fixed strip at top-0 (the index prop that offset them was never passed),
43
+ * so stacked toasts painted on top of each other. A single region stacking
44
+ * cards with flex-col gap makes the order self-evident and keeps the
45
+ * z-index ladder in exactly one place (Toast z-40, under Modal z-50).
46
+ */
47
+ return (React.createElement("div", { "data-testid": "toast-region", "aria-live": "assertive", className: "pointer-events-none fixed z-40 top-0 left-0 right-0 flex items-end px-4 py-6 sm:items-start sm:p-6" },
48
+ React.createElement("div", { className: "flex w-full flex-col items-center gap-4 sm:items-end" }, currentToasts.map((entry) => {
49
+ return (React.createElement(Toast, { key: entry.id, title: entry.toast.title, description: entry.toast.description, type: entry.toast.type, icon: entry.toast.icon, onClose: entry.onClose }));
50
+ }))));
29
51
  };
30
52
  export default ToastLayout;
31
53
  //# sourceMappingURL=ToastInit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToastInit.js","sourceRoot":"","sources":["../../../../../UI/Components/Toast/ToastInit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAmC,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAgD,MAAM,SAAS,CAAC;AACvE,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAIpD,MAAM,CAAC,MAAM,qBAAqB,GAAkC,CAClE,KAA0B,EACpB,EAAE;IACR,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,KAAY,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,WAAW,GAAsB,GAAiB,EAAE;IACxD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAEtD,EAAE,CAAC,CAAC;IAIN,MAAM,oBAAoB,GAAiC,CACzD,KAAkB,EACZ,EAAE;QACR,MAAM,KAAK,GAAwB,KAAK,CAAC,MAAM,CAAC;QAChD,gBAAgB,CAAC,CAAC,GAAG,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAE7D,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,iCACG,aAAa,CAAC,GAAG,CAAC,CAAC,KAA0B,EAAE,KAAa,EAAE,EAAE;QAC/D,OAAO,CACL,oBAAC,KAAK,IACJ,GAAG,EAAE,KAAK,EACV,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,CAAC;gBAED,MAAM,SAAS,GAA+B,CAAC,GAAG,aAAa,CAAC,CAAC;gBACjE,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC3B,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC9B,CAAC,GACD,CACH,CAAC;IACJ,CAAC,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ToastInit.js","sourceRoot":"","sources":["../../../../../UI/Components/Toast/ToastInit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,SAAS,EACT,MAAM,GACP,MAAM,OAAO,CAAC;AACf,OAAO,KAAgD,MAAM,SAAS,CAAC;AACvE,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAIpD,MAAM,CAAC,MAAM,qBAAqB,GAAkC,CAClE,KAA0B,EACpB,EAAE;IACR,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,KAAY,CAAC,CAAC;AACpD,CAAC,CAAC;AAmBF,MAAM,WAAW,GAAsB,GAAiB,EAAE;IACxD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CACtD,EAAE,CACH,CAAC;IACF,MAAM,cAAc,GAAmC,MAAM,CAAS,CAAC,CAAC,CAAC;IAEzE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,oBAAoB,GAAiC,CACzD,KAAkB,EACZ,EAAE;YACR,MAAM,KAAK,GAAwB,KAAK,CAAC,MAAM,CAAC;YAChD,MAAM,EAAE,GAAW,cAAc,CAAC,OAAO,CAAC;YAC1C,cAAc,CAAC,OAAO,IAAI,CAAC,CAAC;YAE5B,gEAAgE;YAChE,MAAM,OAAO,GAAe,GAAS,EAAE;gBACrC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,CAAC;gBAED,gBAAgB,CAAC,CAAC,MAAyB,EAAE,EAAE;oBAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,SAAqB,EAAE,EAAE;wBAC7C,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;oBAC7B,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;YAEF;;;;eAIG;YACH,gBAAgB,CAAC,CAAC,MAAyB,EAAE,EAAE;gBAC7C,OAAO,CAAC,GAAG,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAE7D,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP;;;;;;OAMG;IACH,OAAO,CACL,4CACc,cAAc,eAChB,WAAW,EACrB,SAAS,EAAC,oGAAoG;QAE9G,6BAAK,SAAS,EAAC,sDAAsD,IAClE,aAAa,CAAC,GAAG,CAAC,CAAC,KAAiB,EAAE,EAAE;YACvC,OAAO,CACL,oBAAC,KAAK,IACJ,GAAG,EAAE,KAAK,CAAC,EAAE,EACb,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EACxB,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EACpC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EACtB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EACtB,OAAO,EAAE,KAAK,CAAC,OAAO,GACtB,CACH,CAAC;QACJ,CAAC,CAAC,CACE,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -170,19 +170,28 @@ export default class ModelAPI {
170
170
  if (!requestOptions ||
171
171
  !requestOptions.isMultiTenantRequest ||
172
172
  Object.keys(requestOptions).length === 0) {
173
- const project = ProjectUtil.getCurrentProject();
174
- if (project && project.id) {
175
- headers["tenantid"] = project.id.toString();
173
+ /*
174
+ * Read the tenant id via getCurrentProjectId() first - a plain string
175
+ * read off the URL/SessionStorage/LocalStorage id keys. This is what
176
+ * makes requests work in the SSO-login window where the project ID is
177
+ * already available in URL/SessionStorage but the full project data
178
+ * hasn't been fetched yet, and it avoids hydrating the entire Project
179
+ * model from LocalStorage on every single request just for the id.
180
+ */
181
+ const projectId = ProjectUtil.getCurrentProjectId();
182
+ if (projectId) {
183
+ headers["tenantid"] = projectId.toString();
176
184
  }
177
185
  else {
178
186
  /*
179
- * Fallback to getCurrentProjectId() when full project data is not yet loaded
180
- * This can happen after SSO login when the project ID is available in URL/SessionStorage
181
- * but the full project data hasn't been fetched yet
187
+ * Fallback to the stored project. getCurrentProject() resolves its id
188
+ * through getCurrentProjectId() too, so this only matters if that
189
+ * resolution ever diverges - kept to preserve the historical fallback
190
+ * chain.
182
191
  */
183
- const projectId = ProjectUtil.getCurrentProjectId();
184
- if (projectId) {
185
- headers["tenantid"] = projectId.toString();
192
+ const project = ProjectUtil.getCurrentProject();
193
+ if (project && project.id) {
194
+ headers["tenantid"] = project.id.toString();
186
195
  }
187
196
  }
188
197
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ModelAPI.js","sourceRoot":"","sources":["../../../../../UI/Utils/ModelAPI/ModelAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,WAAW,MAAM,YAAY,CAAC;AAErC,OAAO,SAAS,MAAM,oEAAoE,CAAC;AAE3F,OAAO,UAAU,MAAM,+BAA+B,CAAC;AACvD,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAC3D,OAAO,KAAK,MAAM,0BAA0B,CAAC;AAC7C,OAAO,GAAG,MAAM,wBAAwB,CAAC;AAEzC,OAAO,gBAAgB,MAAM,2CAA2C,CAAC;AAEzE,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAIzD,OAAO,GAAG,MAAM,YAAY,CAAC;AAG7B,MAAM,OAAO,oBAEX,SAAQ,YAAwB;CAEjC;AASD,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B;;;;;;OAMG;IACO,MAAM,CAAC,YAAY;QAC3B,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAA+B,IAUxD;QAGC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,QAAQ,CAAC,MAAM;YACzB,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE;YACvC,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAA+B,IAGxD;QAGC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,QAAQ,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,UAAU,CAA+B,IAM5D;;QAGC,MAAM,KAAK,GAAc,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9C,IAAI,MAAM,GAAe,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;QAErD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,OAAO,GAAiB,KAAK,CAAC,cAAc,EAAE,CAAC;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,gBAAgB,CACxB,0DAA0D,CAC3D,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEnD,MAAM,MAAM,GAER,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,iBAGjC,MAAM,EAAE,UAAU,CAAC,GAAG,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,EACD,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,IAChD,CAAC,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,iBAAiB;YACxC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC,EACP,CAAC;QAEH,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,MAAM,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,cAAc,CAA+B,IAMhE;;QACC,IAAI,MAAM,GAAe,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,kBAAkB,KAAI,IAAI,CAAC;QAEzE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,OAAO,GAAiB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,gBAAgB,CACxB,0DAA0D,CAC3D,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,UAAU,GACd,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAEvE,IACE,UAAU,KAAK,UAAU,CAAC,GAAG;YAC7B,CAAC,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,kBAAkB,CAAA,EACxC,CAAC;YACD,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,SAAS,GACb,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,iBAC7B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;gBACJ,IAAI,EAAE,aAAa,CAAC,SAAS,CAC3B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAC7C;gBACD,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE;aACxC,EACD,OAAO,kCACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,GAC1C,CAAC,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,cAAc,KAAI,EAAE,CAAC,KAE7C,CAAC,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,iBAAiB;YACxC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC,EACP,CAAC;QAEL,IAAI,SAAS,CAAC,SAAS,EAAE,IAAI,SAAS,YAAY,YAAY,EAAE,CAAC;YAC/D,MAAM,MAAM,GACV,SAA6C,CAAC;YAEhD,IAAK,MAAM,CAAC,IAAY,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,QAAQ,GAAI,MAAM,CAAC,IAAY,CAAC,WAAW,CAAe,CAAC;gBAClE,OAAQ,MAAM,CAAC,IAAY,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAEpE,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEhC,MAAM,SAAS,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,OAAO,CAA+B,IASzD;;QACC,MAAM,KAAK,GAAe,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAiB,KAAK,CAAC,cAAc,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,gBAAgB,CACxB,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,GAAQ,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;aACvC,QAAQ,CAAC,OAAO,CAAC;aACjB,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEzB,IAAI,MAAA,IAAI,CAAC,cAAc,0CAAE,kBAAkB,EAAE,CAAC;YAC5C,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,gBAAgB,CACxB,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAuB,IAAI,CAAC,gBAAgB,CACvD,IAAI,CAAC,cAAc,CACpB,CAAC;QACF,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;YACpE,OAAO,CAAC,sBAAsB,CAAC,GAAG,MAAM,CAAC;QAC3C,CAAC;QAED,MAAM,MAAM,GACV,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,iBAC7B,MAAM,EAAE,UAAU,CAAC,IAAI,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,kCACC,CAAC,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,qBAAqB,KAAI,EAAE,CAAC,KACrD,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAmB,CAAC,EACxD,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,MAAoB,CAAC,EAC1D,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,IAAkB,CAAC,EACtD,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,OAAqB,CAAC,KAE9D,OAAO,EACP,MAAM,EAAE;gBACN,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;aAC3B,IACE,CAAC,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,iBAAiB;YACxC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC,EACP,CAAC;QAEL,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,GAAsB,SAAS,CAAC,aAAa,CACrD,MAAM,CAAC,IAAiB,EACxB,IAAI,CAAC,SAAS,CACf,CAAC;YAEF,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,MAAM,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,KAAK,CAA+B,IAIvD;;QACC,MAAM,KAAK,GAAe,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAiB,KAAK,CAAC,cAAc,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,gBAAgB,CACxB,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,GAAQ,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;aACvC,QAAQ,CAAC,OAAO,CAAC;aACjB,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEtB,IAAI,MAAA,IAAI,CAAC,cAAc,0CAAE,kBAAkB,EAAE,CAAC;YAC5C,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,gBAAgB,CACxB,+CAA+C,CAChD,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAuB,IAAI,CAAC,gBAAgB,CACvD,IAAI,CAAC,cAAc,CACpB,CAAC;QACF,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;YACpE,OAAO,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC;QAC5C,CAAC;QAED,MAAM,MAAM,GACV,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,iBAC7B,MAAM,EAAE,UAAU,CAAC,IAAI,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;gBACJ,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAmB,CAAC;aACzD,EACD,OAAO,IACJ,CAAC,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,iBAAiB;YACxC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC,EACP,CAAC;QAEL,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;YACvB,MAAM,KAAK,GAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAW,CAAC;YAErD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,MAAM,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAC5B,cAA+B;QAE/B,IAAI,OAAO,GAAuB,EAAE,CAAC;QAErC,IACE,CAAC,cAAc;YACf,CAAC,cAAc,CAAC,oBAAoB;YACpC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,KAAK,CAAC,EACxC,CAAC;YACD,MAAM,OAAO,GAAmB,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAEhE,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC1B,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN;;;;mBAIG;gBACH,MAAM,SAAS,GAAoB,WAAW,CAAC,mBAAmB,EAAE,CAAC;gBACrE,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC;QAED,mBAAmB;QAEnB,OAAO,qBACF,OAAO,CACX,CAAC;QAEF,IAAI,cAAc,IAAI,cAAc,CAAC,oBAAoB,EAAE,CAAC;YAC1D,OAAO,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC;QAC5C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,OAAO,CAA+B,IAKzD;;QACC,MAAM,OAAO,GAAiB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,CAAC;QACpE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,gBAAgB,CAAC,6CAA6C,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,MAAM,GAAQ,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;aACvC,QAAQ,CAAC,OAAO,CAAC;aACjB,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;aAClC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEzB,IAAI,MAAA,IAAI,CAAC,cAAc,0CAAE,kBAAkB,EAAE,CAAC;YAC5C,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,gBAAgB,CAAC,6CAA6C,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAa;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CAA+B,IAKtD;;QACC,MAAM,MAAM,GACV,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,iBAC7B,MAAM,EAAE,UAAU,CAAC,IAAI,EACvB,GAAG,EAAE,IAAI,CAAC,MAAM,EAChB,IAAI,EAAE;gBACJ,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,MAAoB,CAAC,IAAI,EAAE;aACjE,EACD,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,IAChD,CAAC,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,iBAAiB;YACxC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC,EACP,CAAC;QAEL,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;YACvB,MAAM,SAAS,GAAe,SAAS,CAAC,cAAc,CACpD,MAAM,CAAC,IAAkB,EACzB,IAAI,CAAC,SAAS,CACf,CAAC;YAEF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,MAAM,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,UAAU,CAA+B,IAI5D;;QACC,MAAM,OAAO,GAAiB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,CAAC;QACpE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,gBAAgB,CACxB,gDAAgD,CACjD,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAQ,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;aACzC,QAAQ,CAAC,OAAO,CAAC;aACjB,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,gBAAgB,CACxB,gDAAgD,CACjD,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GACV,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,iBAC7B,MAAM,EAAE,UAAU,CAAC,MAAM,EACzB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,IAChD,CAAC,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,iBAAiB;YACxC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC,EACP,CAAC;QAEL,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,MAAM,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,eAAe,CAC5B,MAEqB;QAErB,IAAI,MAAM,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAmB,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAEhE,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC1B,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,cAAc,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ModelAPI.js","sourceRoot":"","sources":["../../../../../UI/Utils/ModelAPI/ModelAPI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ import JSONFunctions from "../../Types/JSONFunctions";
2
+ import ModelAPI from "./ModelAPI/ModelAPI";
3
+ /*
4
+ * A tiny read-through cache for reference-data lists (incident states, alert
5
+ * states, custom-field definitions, ...): tables that hold a handful of rows
6
+ * per project and change approximately never, yet are fetched independently by
7
+ * every component that needs them - the Home view alone used to request the
8
+ * IncidentState list three times.
9
+ *
10
+ * Modeled on GlobalConfigUtil (./GlobalConfig.ts): a module-level cache plus
11
+ * in-flight promise dedup, so concurrent callers share one request and
12
+ * callers within the TTL share one response. Entries are keyed by the model's
13
+ * table name, the project id and the serialized query/select/sort/paging, so
14
+ * different projects and different shapes of the same list never collide.
15
+ *
16
+ * Callers share the returned ListResult (and the model instances inside it) -
17
+ * treat it as read-only and copy before mutating.
18
+ *
19
+ * Invalidation: the key carries the project id, so a project switch can never
20
+ * be served another project's rows even before anything is invalidated; the
21
+ * 60-second TTL bounds staleness after someone edits the underlying rows in
22
+ * settings. Screens that edit reference data and need to see the change
23
+ * immediately should call invalidate(modelType) on success.
24
+ */
25
+ const TTL_IN_MS = 60 * 1000;
26
+ class ModelListCache {
27
+ static async getList(data) {
28
+ const tableName = new data.modelType().tableName || "";
29
+ const key = ModelListCache.buildKey({
30
+ tableName: tableName,
31
+ projectId: data.projectId,
32
+ query: data.query,
33
+ select: data.select,
34
+ sort: data.sort,
35
+ skip: data.skip,
36
+ limit: data.limit,
37
+ requestOptions: data.requestOptions,
38
+ });
39
+ const cached = ModelListCache.cache[key];
40
+ if (cached) {
41
+ if (cached.expiresAt > Date.now()) {
42
+ return cached.result;
43
+ }
44
+ delete ModelListCache.cache[key];
45
+ }
46
+ const existing = ModelListCache.inFlight[key];
47
+ if (existing) {
48
+ return existing.promise;
49
+ }
50
+ const promise = ModelAPI.getList(Object.assign({ modelType: data.modelType, query: data.query, limit: data.limit, skip: data.skip, select: data.select, sort: data.sort }, (data.requestOptions ? { requestOptions: data.requestOptions } : {})));
51
+ const entry = {
52
+ tableName: tableName,
53
+ promise: promise,
54
+ };
55
+ ModelListCache.inFlight[key] = entry;
56
+ try {
57
+ const result = await promise;
58
+ /*
59
+ * Only cache while this request is still the current one for its key -
60
+ * an invalidate() that ran mid-flight must not have its effect undone
61
+ * by a stale response landing afterwards. (Failures are never cached:
62
+ * the next caller simply issues a fresh request.)
63
+ */
64
+ if (ModelListCache.inFlight[key] === entry) {
65
+ ModelListCache.cache[key] = {
66
+ tableName: tableName,
67
+ expiresAt: Date.now() + TTL_IN_MS,
68
+ result: result,
69
+ };
70
+ }
71
+ return result;
72
+ }
73
+ finally {
74
+ if (ModelListCache.inFlight[key] === entry) {
75
+ delete ModelListCache.inFlight[key];
76
+ }
77
+ }
78
+ }
79
+ // Drop every entry for one model type, or everything when none is given.
80
+ static invalidate(modelType) {
81
+ var _a, _b;
82
+ if (!modelType) {
83
+ ModelListCache.invalidateAll();
84
+ return;
85
+ }
86
+ const tableName = new modelType().tableName || "";
87
+ for (const key of Object.keys(ModelListCache.cache)) {
88
+ if (((_a = ModelListCache.cache[key]) === null || _a === void 0 ? void 0 : _a.tableName) === tableName) {
89
+ delete ModelListCache.cache[key];
90
+ }
91
+ }
92
+ for (const key of Object.keys(ModelListCache.inFlight)) {
93
+ if (((_b = ModelListCache.inFlight[key]) === null || _b === void 0 ? void 0 : _b.tableName) === tableName) {
94
+ delete ModelListCache.inFlight[key];
95
+ }
96
+ }
97
+ }
98
+ // Call on project switch (and logout): the next reads refetch everything.
99
+ static invalidateAll() {
100
+ ModelListCache.cache = {};
101
+ ModelListCache.inFlight = {};
102
+ }
103
+ static buildKey(data) {
104
+ var _a, _b, _c;
105
+ /*
106
+ * JSONFunctions.serialize is the same serialization ModelAPI sends over
107
+ * the wire, so two requests get one key exactly when the server would see
108
+ * the same request body. Key order inside the literals is stable because
109
+ * call sites are static object literals.
110
+ */
111
+ return JSON.stringify({
112
+ tableName: data.tableName,
113
+ projectId: ((_a = data.projectId) === null || _a === void 0 ? void 0 : _a.toString()) || "",
114
+ query: JSONFunctions.serialize(data.query),
115
+ select: JSONFunctions.serialize(data.select),
116
+ sort: JSONFunctions.serialize(data.sort),
117
+ skip: data.skip,
118
+ limit: data.limit,
119
+ url: ((_c = (_b = data.requestOptions) === null || _b === void 0 ? void 0 : _b.overrideRequestUrl) === null || _c === void 0 ? void 0 : _c.toString()) || "",
120
+ });
121
+ }
122
+ }
123
+ ModelListCache.cache = {};
124
+ ModelListCache.inFlight = {};
125
+ export default ModelListCache;
126
+ //# sourceMappingURL=ModelListCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelListCache.js","sourceRoot":"","sources":["../../../../UI/Utils/ModelListCache.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import SubscriptionPlan from "../../Types/Billing/SubscriptionPlan";
5
5
  import ObjectID from "../../Types/ObjectID";
6
6
  import Project from "../../Models/DatabaseModels/Project";
7
7
  import { SubscriptionStatusUtil, } from "../../Types/Billing/SubscriptionStatus";
8
+ import ModelListCache from "./ModelListCache";
8
9
  import Navigation from "./Navigation";
9
10
  import SessionStorage from "./SessionStorage";
10
11
  import Telemetry from "./Telemetry/Telemetry";
@@ -185,13 +186,33 @@ export default class ProjectUtil {
185
186
  return BaseModel.fromJSON(projectJson, Project);
186
187
  }
187
188
  static setCurrentProject(project) {
188
- var _a, _b;
189
+ var _a, _b, _c;
189
190
  const currentProjectId = ((_a = project._id) === null || _a === void 0 ? void 0 : _a.toString()) || ((_b = this.getCurrentProjectId()) === null || _b === void 0 ? void 0 : _b.toString());
191
+ /*
192
+ * What this tab was showing BEFORE this call, read straight off session
193
+ * storage (not getCurrentProjectId(), whose URL fallback may already
194
+ * carry the NEW project mid-switch) so it can be compared after the
195
+ * overwrite below.
196
+ */
197
+ const previousProjectId = (_c = this.toProjectId(SessionStorage.getItem(CURRENT_PROJECT_ID_STORAGE_KEY))) === null || _c === void 0 ? void 0 : _c.toString();
190
198
  if (project instanceof Project) {
191
199
  project = BaseModel.toJSON(project, Project);
192
200
  }
193
201
  LocalStorage.setItem(`project_${currentProjectId}`, project);
194
202
  SessionStorage.setItem(CURRENT_PROJECT_ID_STORAGE_KEY, currentProjectId);
203
+ /*
204
+ * Cached reference lists (incident/alert states, custom fields...) are
205
+ * keyed by project id, so a switch could never serve another project's
206
+ * rows — invalidation just guarantees fresh reads and frees the old
207
+ * entries now that project selection can happen without a full page
208
+ * reload. Only on an actual CHANGE though: setCurrentProject also runs
209
+ * on every boot, in the same commit as the Header/Home mounts whose
210
+ * reference-list requests are already in flight, and wiping the cache
211
+ * then would discard its very first fill.
212
+ */
213
+ if (previousProjectId !== currentProjectId) {
214
+ ModelListCache.invalidateAll();
215
+ }
195
216
  // Remember this project for the next time the user opens the dashboard.
196
217
  this.setLastAccessedProjectId(currentProjectId);
197
218
  // Keep RUM span context in sync with the project being viewed.
@@ -206,6 +227,8 @@ export default class ProjectUtil {
206
227
  LocalStorage.removeItem(`project_${currentProjectId}`);
207
228
  }
208
229
  SessionStorage.removeItem(CURRENT_PROJECT_ID_STORAGE_KEY);
230
+ // Project-scoped cached reference lists must not outlive the project.
231
+ ModelListCache.invalidateAll();
209
232
  /*
210
233
  * The project is gone (or the user is leaving it), so it must not be
211
234
  * reopened the next time the dashboard loads.
@@ -1 +1 @@
1
- {"version":3,"file":"Project.js","sourceRoot":"","sources":["../../../../UI/Utils/Project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Project.js","sourceRoot":"","sources":["../../../../UI/Utils/Project.ts"],"names":[],"mappings":"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"}
@@ -63,8 +63,13 @@ class API {
63
63
  return Promise.resolve(headers);
64
64
  }
65
65
  static getDefaultHeaders(_props) {
66
+ /*
67
+ * NOTE: no "Access-Control-Allow-Origin" here - that is a RESPONSE-only
68
+ * header. Sending it as a request header forces a CORS preflight on every
69
+ * cross-origin call (self-hosted setups where the API is on a different
70
+ * origin), doubling the request count for zero benefit.
71
+ */
66
72
  const defaultHeaders = {
67
- "Access-Control-Allow-Origin": "*",
68
73
  Accept: "application/json",
69
74
  "Content-Type": "application/json;charset=UTF-8",
70
75
  };