@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,9 @@
1
- import React, { FunctionComponent, ReactElement, useEffect } from "react";
1
+ import React, {
2
+ FunctionComponent,
3
+ ReactElement,
4
+ useEffect,
5
+ useRef,
6
+ } from "react";
2
7
  import Toast, { ComponentProps as ToastComponentProps } from "./Toast";
3
8
  import GlobalEvents from "../../Utils/GlobalEvents";
4
9
 
@@ -10,21 +15,60 @@ export const ShowToastNotification: ShowToastNotificationFunction = (
10
15
  GlobalEvents.dispatchEvent("toast", toast as any);
11
16
  };
12
17
 
18
+ /*
19
+ * Each queued toast gets a stable id so removals key correctly — keying by
20
+ * array index would re-key (and so re-mount and re-animate) every toast below
21
+ * the one that was dismissed.
22
+ */
23
+ interface ToastEntry {
24
+ id: number;
25
+ toast: ToastComponentProps;
26
+ /*
27
+ * Built once at dispatch and stable for the toast's lifetime: recreating
28
+ * onClose per render would hand every Toast a fresh prop on each stack
29
+ * re-render, which used to restart the exit-unmount timer of any toast
30
+ * mid-fade.
31
+ */
32
+ onClose: () => void;
33
+ }
34
+
13
35
  const ToastLayout: FunctionComponent = (): ReactElement => {
14
- const [currentToasts, setCurrentToasts] = React.useState<
15
- ToastComponentProps[]
16
- >([]);
36
+ const [currentToasts, setCurrentToasts] = React.useState<Array<ToastEntry>>(
37
+ [],
38
+ );
39
+ const nextToastIdRef: React.MutableRefObject<number> = useRef<number>(0);
17
40
 
18
- type AddToastNotificationFunction = (event: CustomEvent) => void;
41
+ useEffect(() => {
42
+ const addToastNotification: (event: CustomEvent) => void = (
43
+ event: CustomEvent,
44
+ ): void => {
45
+ const toast: ToastComponentProps = event.detail;
46
+ const id: number = nextToastIdRef.current;
47
+ nextToastIdRef.current += 1;
19
48
 
20
- const addToastNotification: AddToastNotificationFunction = (
21
- event: CustomEvent,
22
- ): void => {
23
- const toast: ToastComponentProps = event.detail;
24
- setCurrentToasts([...currentToasts, toast]);
25
- };
49
+ // setCurrentToasts is stable, so this closure never goes stale.
50
+ const onClose: () => void = (): void => {
51
+ if (toast.onClose) {
52
+ toast.onClose();
53
+ }
54
+
55
+ setCurrentToasts((toasts: Array<ToastEntry>) => {
56
+ return toasts.filter((candidate: ToastEntry) => {
57
+ return candidate.id !== id;
58
+ });
59
+ });
60
+ };
61
+
62
+ /*
63
+ * Functional update: this listener is registered once, so reading
64
+ * currentToasts from its closure would always see the mount-time empty
65
+ * array and every new toast would clobber the ones before it.
66
+ */
67
+ setCurrentToasts((toasts: Array<ToastEntry>) => {
68
+ return [...toasts, { id, toast, onClose }];
69
+ });
70
+ };
26
71
 
27
- useEffect(() => {
28
72
  GlobalEvents.addEventListener("toast", addToastNotification);
29
73
 
30
74
  return () => {
@@ -32,27 +76,33 @@ const ToastLayout: FunctionComponent = (): ReactElement => {
32
76
  };
33
77
  }, []);
34
78
 
79
+ /*
80
+ * ONE fixed container for every toast. Each toast used to render its own
81
+ * fixed strip at top-0 (the index prop that offset them was never passed),
82
+ * so stacked toasts painted on top of each other. A single region stacking
83
+ * cards with flex-col gap makes the order self-evident and keeps the
84
+ * z-index ladder in exactly one place (Toast z-40, under Modal z-50).
85
+ */
35
86
  return (
36
- <div>
37
- {currentToasts.map((toast: ToastComponentProps, index: number) => {
38
- return (
39
- <Toast
40
- key={index}
41
- title={toast.title}
42
- description={toast.description}
43
- type={toast.type}
44
- onClose={() => {
45
- if (toast.onClose) {
46
- toast.onClose();
47
- }
48
-
49
- const newToasts: Array<ToastComponentProps> = [...currentToasts];
50
- newToasts.splice(index, 1);
51
- setCurrentToasts(newToasts);
52
- }}
53
- />
54
- );
55
- })}
87
+ <div
88
+ data-testid="toast-region"
89
+ aria-live="assertive"
90
+ 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"
91
+ >
92
+ <div className="flex w-full flex-col items-center gap-4 sm:items-end">
93
+ {currentToasts.map((entry: ToastEntry) => {
94
+ return (
95
+ <Toast
96
+ key={entry.id}
97
+ title={entry.toast.title}
98
+ description={entry.toast.description}
99
+ type={entry.toast.type}
100
+ icon={entry.toast.icon}
101
+ onClose={entry.onClose}
102
+ />
103
+ );
104
+ })}
105
+ </div>
56
106
  </div>
57
107
  );
58
108
  };
@@ -127,6 +127,7 @@ html.dark [class~="!bg-white"] {
127
127
 
128
128
  html.dark :is(
129
129
  [class~="bg-white/60"],
130
+ [class~="bg-white/70"],
130
131
  [class~="bg-white/80"],
131
132
  [class~="bg-white/90"],
132
133
  [class~="bg-white/95"]
@@ -204,6 +205,14 @@ html.dark [class~="bg-gray-900/5"] {
204
205
  background-color: rgb(148 163 184 / 12%);
205
206
  }
206
207
 
208
+ /*
209
+ * Overlay scrims built from a mid-gray: literal gray-500 at 25% paints a LIGHT
210
+ * veil over a dark page, so the command palette backdrop deepens instead.
211
+ */
212
+ html.dark [class~="bg-gray-500/25"] {
213
+ background-color: rgb(2 6 23 / 55%);
214
+ }
215
+
207
216
  /* State variants that otherwise flash back to literal light Tailwind colors. */
208
217
  html.dark :is(
209
218
  [class~="hover:bg-gray-50"],
@@ -1340,3 +1349,34 @@ html.dark :fullscreen,
1340
1349
  html.dark ::backdrop {
1341
1350
  background-color: var(--ou-background-primary);
1342
1351
  }
1352
+
1353
+ /*
1354
+ * Motion. Tailwind here is the Play-CDN runtime configured inline per app, so
1355
+ * a new animate-* utility name would silently generate nothing unless its
1356
+ * keyframes were duplicated into every EJS config. Plain CSS in this one
1357
+ * shared stylesheet sidesteps that entirely.
1358
+ *
1359
+ * ou-animate-pop-in exists for surfaces that MOUNT already open (react-select
1360
+ * portals its menu fully formed), where a transition has no closed state to
1361
+ * start from. It is an animation, so it ends by reverting to the element's
1362
+ * own style — no transform lingers to become a containing block for
1363
+ * position:fixed descendants. Surfaces that control their own mount use the
1364
+ * Modal hasEntered transition pattern instead.
1365
+ */
1366
+ @keyframes ou-pop-in {
1367
+ from {
1368
+ opacity: 0;
1369
+ transform: scale(0.98);
1370
+ }
1371
+
1372
+ to {
1373
+ opacity: 1;
1374
+ transform: scale(1);
1375
+ }
1376
+ }
1377
+
1378
+ @media (prefers-reduced-motion: no-preference) {
1379
+ .ou-animate-pop-in {
1380
+ animation: ou-pop-in 120ms ease-out;
1381
+ }
1382
+ }
@@ -347,19 +347,29 @@ export default class ModelAPI {
347
347
  !requestOptions.isMultiTenantRequest ||
348
348
  Object.keys(requestOptions).length === 0
349
349
  ) {
350
- const project: Project | null = ProjectUtil.getCurrentProject();
351
-
352
- if (project && project.id) {
353
- headers["tenantid"] = project.id.toString();
350
+ /*
351
+ * Read the tenant id via getCurrentProjectId() first - a plain string
352
+ * read off the URL/SessionStorage/LocalStorage id keys. This is what
353
+ * makes requests work in the SSO-login window where the project ID is
354
+ * already available in URL/SessionStorage but the full project data
355
+ * hasn't been fetched yet, and it avoids hydrating the entire Project
356
+ * model from LocalStorage on every single request just for the id.
357
+ */
358
+ const projectId: ObjectID | null = ProjectUtil.getCurrentProjectId();
359
+
360
+ if (projectId) {
361
+ headers["tenantid"] = projectId.toString();
354
362
  } else {
355
363
  /*
356
- * Fallback to getCurrentProjectId() when full project data is not yet loaded
357
- * This can happen after SSO login when the project ID is available in URL/SessionStorage
358
- * but the full project data hasn't been fetched yet
364
+ * Fallback to the stored project. getCurrentProject() resolves its id
365
+ * through getCurrentProjectId() too, so this only matters if that
366
+ * resolution ever diverges - kept to preserve the historical fallback
367
+ * chain.
359
368
  */
360
- const projectId: ObjectID | null = ProjectUtil.getCurrentProjectId();
361
- if (projectId) {
362
- headers["tenantid"] = projectId.toString();
369
+ const project: Project | null = ProjectUtil.getCurrentProject();
370
+
371
+ if (project && project.id) {
372
+ headers["tenantid"] = project.id.toString();
363
373
  }
364
374
  }
365
375
  }
@@ -0,0 +1,188 @@
1
+ import ListResult from "../../Types/BaseDatabase/ListResult";
2
+ import Query from "../../Types/BaseDatabase/Query";
3
+ import Select from "../../Types/BaseDatabase/Select";
4
+ import Sort from "../../Types/BaseDatabase/Sort";
5
+ import Dictionary from "../../Types/Dictionary";
6
+ import { JSONObject } from "../../Types/JSON";
7
+ import JSONFunctions from "../../Types/JSONFunctions";
8
+ import ObjectID from "../../Types/ObjectID";
9
+ import BaseModel from "../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel";
10
+ import ModelAPI, { RequestOptions } from "./ModelAPI/ModelAPI";
11
+
12
+ /*
13
+ * A tiny read-through cache for reference-data lists (incident states, alert
14
+ * states, custom-field definitions, ...): tables that hold a handful of rows
15
+ * per project and change approximately never, yet are fetched independently by
16
+ * every component that needs them - the Home view alone used to request the
17
+ * IncidentState list three times.
18
+ *
19
+ * Modeled on GlobalConfigUtil (./GlobalConfig.ts): a module-level cache plus
20
+ * in-flight promise dedup, so concurrent callers share one request and
21
+ * callers within the TTL share one response. Entries are keyed by the model's
22
+ * table name, the project id and the serialized query/select/sort/paging, so
23
+ * different projects and different shapes of the same list never collide.
24
+ *
25
+ * Callers share the returned ListResult (and the model instances inside it) -
26
+ * treat it as read-only and copy before mutating.
27
+ *
28
+ * Invalidation: the key carries the project id, so a project switch can never
29
+ * be served another project's rows even before anything is invalidated; the
30
+ * 60-second TTL bounds staleness after someone edits the underlying rows in
31
+ * settings. Screens that edit reference data and need to see the change
32
+ * immediately should call invalidate(modelType) on success.
33
+ */
34
+
35
+ const TTL_IN_MS: number = 60 * 1000;
36
+
37
+ interface CacheEntry {
38
+ tableName: string;
39
+ expiresAt: number;
40
+ result: ListResult<BaseModel>;
41
+ }
42
+
43
+ interface InFlightEntry {
44
+ tableName: string;
45
+ promise: Promise<ListResult<BaseModel>>;
46
+ }
47
+
48
+ export default class ModelListCache {
49
+ private static cache: Dictionary<CacheEntry> = {};
50
+ private static inFlight: Dictionary<InFlightEntry> = {};
51
+
52
+ public static async getList<TBaseModel extends BaseModel>(data: {
53
+ modelType: { new (): TBaseModel };
54
+ query: Query<TBaseModel>;
55
+ limit: number;
56
+ skip: number;
57
+ select: Select<TBaseModel>;
58
+ sort: Sort<TBaseModel>;
59
+ projectId?: ObjectID | null | undefined;
60
+ requestOptions?: RequestOptions | undefined;
61
+ }): Promise<ListResult<TBaseModel>> {
62
+ const tableName: string = new data.modelType().tableName || "";
63
+ const key: string = ModelListCache.buildKey({
64
+ tableName: tableName,
65
+ projectId: data.projectId,
66
+ query: data.query,
67
+ select: data.select,
68
+ sort: data.sort,
69
+ skip: data.skip,
70
+ limit: data.limit,
71
+ requestOptions: data.requestOptions,
72
+ });
73
+
74
+ const cached: CacheEntry | undefined = ModelListCache.cache[key];
75
+
76
+ if (cached) {
77
+ if (cached.expiresAt > Date.now()) {
78
+ return cached.result as ListResult<TBaseModel>;
79
+ }
80
+
81
+ delete ModelListCache.cache[key];
82
+ }
83
+
84
+ const existing: InFlightEntry | undefined = ModelListCache.inFlight[key];
85
+
86
+ if (existing) {
87
+ return existing.promise as Promise<ListResult<TBaseModel>>;
88
+ }
89
+
90
+ const promise: Promise<ListResult<TBaseModel>> =
91
+ ModelAPI.getList<TBaseModel>({
92
+ modelType: data.modelType,
93
+ query: data.query,
94
+ limit: data.limit,
95
+ skip: data.skip,
96
+ select: data.select,
97
+ sort: data.sort,
98
+ ...(data.requestOptions ? { requestOptions: data.requestOptions } : {}),
99
+ });
100
+
101
+ const entry: InFlightEntry = {
102
+ tableName: tableName,
103
+ promise: promise as Promise<ListResult<BaseModel>>,
104
+ };
105
+
106
+ ModelListCache.inFlight[key] = entry;
107
+
108
+ try {
109
+ const result: ListResult<TBaseModel> = await promise;
110
+
111
+ /*
112
+ * Only cache while this request is still the current one for its key -
113
+ * an invalidate() that ran mid-flight must not have its effect undone
114
+ * by a stale response landing afterwards. (Failures are never cached:
115
+ * the next caller simply issues a fresh request.)
116
+ */
117
+ if (ModelListCache.inFlight[key] === entry) {
118
+ ModelListCache.cache[key] = {
119
+ tableName: tableName,
120
+ expiresAt: Date.now() + TTL_IN_MS,
121
+ result: result as ListResult<BaseModel>,
122
+ };
123
+ }
124
+
125
+ return result;
126
+ } finally {
127
+ if (ModelListCache.inFlight[key] === entry) {
128
+ delete ModelListCache.inFlight[key];
129
+ }
130
+ }
131
+ }
132
+
133
+ // Drop every entry for one model type, or everything when none is given.
134
+ public static invalidate(modelType?: { new (): BaseModel }): void {
135
+ if (!modelType) {
136
+ ModelListCache.invalidateAll();
137
+ return;
138
+ }
139
+
140
+ const tableName: string = new modelType().tableName || "";
141
+
142
+ for (const key of Object.keys(ModelListCache.cache)) {
143
+ if (ModelListCache.cache[key]?.tableName === tableName) {
144
+ delete ModelListCache.cache[key];
145
+ }
146
+ }
147
+
148
+ for (const key of Object.keys(ModelListCache.inFlight)) {
149
+ if (ModelListCache.inFlight[key]?.tableName === tableName) {
150
+ delete ModelListCache.inFlight[key];
151
+ }
152
+ }
153
+ }
154
+
155
+ // Call on project switch (and logout): the next reads refetch everything.
156
+ public static invalidateAll(): void {
157
+ ModelListCache.cache = {};
158
+ ModelListCache.inFlight = {};
159
+ }
160
+
161
+ private static buildKey(data: {
162
+ tableName: string;
163
+ projectId?: ObjectID | null | undefined;
164
+ query: Query<BaseModel>;
165
+ select: Select<BaseModel>;
166
+ sort: Sort<BaseModel>;
167
+ skip: number;
168
+ limit: number;
169
+ requestOptions?: RequestOptions | undefined;
170
+ }): string {
171
+ /*
172
+ * JSONFunctions.serialize is the same serialization ModelAPI sends over
173
+ * the wire, so two requests get one key exactly when the server would see
174
+ * the same request body. Key order inside the literals is stable because
175
+ * call sites are static object literals.
176
+ */
177
+ return JSON.stringify({
178
+ tableName: data.tableName,
179
+ projectId: data.projectId?.toString() || "",
180
+ query: JSONFunctions.serialize(data.query as JSONObject),
181
+ select: JSONFunctions.serialize(data.select as JSONObject),
182
+ sort: JSONFunctions.serialize(data.sort as JSONObject),
183
+ skip: data.skip,
184
+ limit: data.limit,
185
+ url: data.requestOptions?.overrideRequestUrl?.toString() || "",
186
+ });
187
+ }
188
+ }
@@ -10,6 +10,7 @@ import Project from "../../Models/DatabaseModels/Project";
10
10
  import SubscriptionStatus, {
11
11
  SubscriptionStatusUtil,
12
12
  } from "../../Types/Billing/SubscriptionStatus";
13
+ import ModelListCache from "./ModelListCache";
13
14
  import Navigation from "./Navigation";
14
15
  import SessionStorage from "./SessionStorage";
15
16
  import Telemetry from "./Telemetry/Telemetry";
@@ -278,12 +279,37 @@ export default class ProjectUtil {
278
279
  public static setCurrentProject(project: JSONObject | Project): void {
279
280
  const currentProjectId: string | undefined =
280
281
  project._id?.toString() || this.getCurrentProjectId()?.toString();
282
+
283
+ /*
284
+ * What this tab was showing BEFORE this call, read straight off session
285
+ * storage (not getCurrentProjectId(), whose URL fallback may already
286
+ * carry the NEW project mid-switch) so it can be compared after the
287
+ * overwrite below.
288
+ */
289
+ const previousProjectId: string | undefined = this.toProjectId(
290
+ SessionStorage.getItem(CURRENT_PROJECT_ID_STORAGE_KEY),
291
+ )?.toString();
292
+
281
293
  if (project instanceof Project) {
282
294
  project = BaseModel.toJSON(project, Project);
283
295
  }
284
296
  LocalStorage.setItem(`project_${currentProjectId}`, project);
285
297
  SessionStorage.setItem(CURRENT_PROJECT_ID_STORAGE_KEY, currentProjectId);
286
298
 
299
+ /*
300
+ * Cached reference lists (incident/alert states, custom fields...) are
301
+ * keyed by project id, so a switch could never serve another project's
302
+ * rows — invalidation just guarantees fresh reads and frees the old
303
+ * entries now that project selection can happen without a full page
304
+ * reload. Only on an actual CHANGE though: setCurrentProject also runs
305
+ * on every boot, in the same commit as the Header/Home mounts whose
306
+ * reference-list requests are already in flight, and wiping the cache
307
+ * then would discard its very first fill.
308
+ */
309
+ if (previousProjectId !== currentProjectId) {
310
+ ModelListCache.invalidateAll();
311
+ }
312
+
287
313
  // Remember this project for the next time the user opens the dashboard.
288
314
  this.setLastAccessedProjectId(currentProjectId);
289
315
 
@@ -303,6 +329,9 @@ export default class ProjectUtil {
303
329
 
304
330
  SessionStorage.removeItem(CURRENT_PROJECT_ID_STORAGE_KEY);
305
331
 
332
+ // Project-scoped cached reference lists must not outlive the project.
333
+ ModelListCache.invalidateAll();
334
+
306
335
  /*
307
336
  * The project is gone (or the user is leaving it), so it must not be
308
337
  * reopened the next time the dashboard loads.
package/Utils/API.ts CHANGED
@@ -226,8 +226,13 @@ export default class API {
226
226
  }
227
227
 
228
228
  public static getDefaultHeaders(_props?: any): Headers {
229
+ /*
230
+ * NOTE: no "Access-Control-Allow-Origin" here - that is a RESPONSE-only
231
+ * header. Sending it as a request header forces a CORS preflight on every
232
+ * cross-origin call (self-hosted setups where the API is on a different
233
+ * origin), doubling the request count for zero benefit.
234
+ */
229
235
  const defaultHeaders: Headers = {
230
- "Access-Control-Allow-Origin": "*",
231
236
  Accept: "application/json",
232
237
  "Content-Type": "application/json;charset=UTF-8",
233
238
  };
@@ -538,6 +538,20 @@ __decorate([
538
538
  }),
539
539
  TableColumn({
540
540
  type: TableColumnType.ObjectID,
541
+ /*
542
+ * Read through a relation, alongside `name`, so a joined schedule row can
543
+ * say whether it would page anybody right now. An escalation rule lists
544
+ * schedules by name and has to mark the ones that are currently uncovered;
545
+ * that is one join away from the rule, and without this flag
546
+ * QueryPermission rejects the whole select rather than dropping the column
547
+ * - the escalation rule page fails to load at all.
548
+ *
549
+ * The disclosure is a user id belonging to the same project as the
550
+ * schedule, to a caller who is already reading the schedule's name off the
551
+ * same joined row. It is not an @OwnerOnlyColumn: who is on call is
552
+ * operational state the team is meant to see, not a personal credential.
553
+ */
554
+ canReadOnRelationQuery: true,
541
555
  title: "Current User ID On Roster",
542
556
  description: "User ID who is currently on roster",
543
557
  example: "c3d4e5f6-a7b8-9012-cdef-123456789012",
@@ -1 +1 @@
1
- {"version":3,"file":"OnCallDutyPolicySchedule.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/OnCallDutyPolicySchedule.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAC9D,OAAO,KAAK,MAAM,uBAAuB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,mBAAmB,MAAM,wDAAwD,CAAC;AACzF,OAAO,kBAAkB,MAAM,uDAAuD,CAAC;AACvF,OAAO,yBAAyB,MAAM,8DAA8D,CAAC;AACrG,OAAO,mBAAmB,MAAM,0CAA0C,CAAC;AAC3E,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAC7D,OAAO,UAAU,MAAM,iCAAiC,CAAC;AACzD,OAAO,eAAe,MAAM,sCAAsC,CAAC;AACnE,OAAO,mBAAmB,MAAM,0CAA0C,CAAC;AAC3E,OAAO,aAAa,MAAM,oCAAoC,CAAC;AAC/D,OAAO,WAAW,MAAM,kCAAkC,CAAC;AAC3D,OAAO,eAAe,MAAM,sCAAsC,CAAC;AACnE,OAAO,aAAa,MAAM,oCAAoC,CAAC;AAC/D,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAC7D,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,cAAc,MAAM,qCAAqC,CAAC;AAkElD,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,SAAS;IAAhD;;QA0CN,YAAO,GAAa,SAAS,CAAC;QAqC9B,cAAS,GAAc,SAAS,CAAC;QA4CjC,SAAI,GAAY,SAAS,CAAC;QAwD1B,WAAM,GAAkB,SAAS,CAAC;QA2ClC,gBAAW,GAAY,SAAS,CAAC;QA2CjC,aAAQ,GAAc,SAAS,CAAC;QAuChC,SAAI,GAAY,SAAS,CAAC;QA4C1B,kBAAa,GAAU,SAAS,CAAC;QAmCjC,oBAAe,GAAc,SAAS,CAAC;QA6BvC,kBAAa,GAAU,SAAS,CAAC;QAmBjC,oBAAe,GAAc,SAAS,CAAC;QA2CvC,wBAAmB,GAAU,SAAS,CAAC;QA2BvC,0BAAqB,GAAc,SAAS,CAAC;QA2C7C,qBAAgB,GAAU,SAAS,CAAC;QA2BpC,uBAAkB,GAAc,SAAS,CAAC;QA4B1C,oBAAe,GAAU,SAAS,CAAC;QA2BnC,wBAAmB,GAAU,SAAS,CAAC;QA4BvC,sBAAiB,GAAU,SAAS,CAAC;QA2BrC,kBAAa,GAAU,SAAS,CAAC;IAC1C,CAAC;CAAA,CAAA;AAhoBQ;IAzCN,mBAAmB,CAAC;QACnB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,qCAAqC;SACjD;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,uBAAuB,EAAE,WAAW;QACpC,IAAI,EAAE,eAAe,CAAC,MAAM;QAC5B,SAAS,EAAE,OAAO;QAClB,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,2DAA2D;QACxE,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,SAAS,CACR,GAAG,EAAE;QACH,OAAO,OAAO,CAAC;IACjB,CAAC,EACD;QACE,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,SAAS;QACnB,iBAAiB,EAAE,SAAS;KAC7B,CACF;IACA,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BACjB,OAAO;yDAAa;AAqC9B;IAnCN,mBAAmB,CAAC;QACnB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,qCAAqC;SACjD;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,KAAK,EAAE;IACP,WAAW,CAAC;QACX,IAAI,EAAE,eAAe,CAAC,QAAQ;QAC9B,QAAQ,EAAE,IAAI;QACd,sBAAsB,EAAE,IAAI;QAC5B,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,2DAA2D;QACxE,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,MAAM,CAAC;QACN,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,QAAQ,CAAC,sBAAsB,EAAE;KAC/C,CAAC;8BACiB,QAAQ;2DAAa;AA4CjC;IA1CN,mBAAmB,CAAC;QACnB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,qCAAqC;SACjD;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;KACF,CAAC;IACD,KAAK,EAAE;IACP,WAAW,CAAC;QACX,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,eAAe,CAAC,SAAS;QAC/B,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,kCAAkC;QAC/C,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,MAAM,CAAC;QACN,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,UAAU,CAAC,SAAS;QAC1B,MAAM,EAAE,YAAY,CAAC,SAAS;KAC/B,CAAC;;sDAC+B;AAwD1B;IAtDN,mBAAmB,CAAC;QACnB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,qCAAqC;SACjD;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;KACF,CAAC;IACD,WAAW,CAAC;QACX,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,eAAe,CAAC,WAAW;QACjC,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,QAAQ;QACf,WAAW,EACT,+DAA+D;QACjE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;KACxD,CAAC;IACD,UAAU,CACT,GAAG,EAAE;QACH,OAAO,KAAK,CAAC;IACf,CAAC,EACD,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB;IACA,SAAS,CAAC;QACT,IAAI,EAAE,+BAA+B;QACrC,iBAAiB,EAAE;YACjB,IAAI,EAAE,SAAS;YACf,oBAAoB,EAAE,KAAK;SAC5B;QACD,UAAU,EAAE;YACV,IAAI,EAAE,4BAA4B;YAClC,oBAAoB,EAAE,KAAK;SAC5B;KACF,CAAC;8BACc,KAAK;wDAAoB;AA2ClC;IAzCN,mBAAmB,CAAC;QACnB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,qCAAqC;SACjD;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;KACF,CAAC;IACD,WAAW,CAAC;QACX,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,eAAe,CAAC,QAAQ;QAC9B,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,kDAAkD;QAC/D,OAAO,EACL,oFAAoF;KACvF,CAAC;IACD,MAAM,CAAC;QACN,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,MAAM,EAAE,YAAY,CAAC,QAAQ;KAC9B,CAAC;;6DACsC;AA2CjC;IAzCN,mBAAmB,CAAC;QACnB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,qCAAqC;SACjD;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;KACF,CAAC;IACD,WAAW,CAAC;QACX,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,eAAe,CAAC,SAAS;QAC/B,KAAK,EAAE,UAAU;QACjB,WAAW,EACT,iLAAiL;QACnL,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACD,MAAM,CAAC;QACN,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,UAAU,CAAC,SAAS;QAC1B,MAAM,EAAE,YAAY,CAAC,SAAS;KAC/B,CAAC;;0DACqC;AAuChC;IArCN,KAAK,EAAE;IACP,mBAAmB,CAAC;QACnB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,qCAAqC;SACjD;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,eAAe,CAAC,IAAI;QAC1B,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,+CAA+C;QAC5D,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,MAAM,CAAC;QACN,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,YAAY,CAAC,IAAI;QACzB,MAAM,EAAE,IAAI;KACb,CAAC;;sDAC+B;AA4C1B;IA1CN,mBAAmB,CAAC;QACnB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,qCAAqC;SACjD;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,uBAAuB,EAAE,iBAAiB;QAC1C,IAAI,EAAE,eAAe,CAAC,MAAM;QAC5B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,iFAAiF;QACnF,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,SAAS,CACR,GAAG,EAAE;QACH,OAAO,IAAI,CAAC;IACd,CAAC,EACD;QACE,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,UAAU;QACpB,iBAAiB,EAAE,SAAS;KAC7B,CACF;IACA,UAAU,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;8BACjB,IAAI;+DAAa;AAmCjC;IAjCN,mBAAmB,CAAC;QACnB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,qCAAqC;SACjD;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,IAAI,EAAE,eAAe,CAAC,QAAQ;QAC9B,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,wEAAwE;QAC1E,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,MAAM,CAAC;QACN,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,QAAQ,CAAC,sBAAsB,EAAE;KAC/C,CAAC;8BACuB,QAAQ;iEAAa;AA6BvC;IA3BN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,uBAAuB,EAAE,iBAAiB;QAC1C,IAAI,EAAE,eAAe,CAAC,MAAM;QAC5B,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,iFAAiF;QACnF,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,SAAS,CACR,GAAG,EAAE;QACH,OAAO,IAAI,CAAC;IACd,CAAC,EACD;QACE,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,UAAU;QACpB,iBAAiB,EAAE,SAAS;KAC7B,CACF;IACA,UAAU,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;8BACjB,IAAI;+DAAa;AAmBjC;IAjBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,IAAI,EAAE,eAAe,CAAC,QAAQ;QAC9B,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,wEAAwE;QAC1E,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,MAAM,CAAC;QACN,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,QAAQ,CAAC,sBAAsB,EAAE;KAC/C,CAAC;8BACuB,QAAQ;iEAAa;AA2CvC;IAzCN,mBAAmB,CAAC;QACnB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,qCAAqC;SACjD;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,uBAAuB,EAAE,uBAAuB;QAChD,IAAI,EAAE,eAAe,CAAC,MAAM;QAC5B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,6CAA6C;QAC1D,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,SAAS,CACR,GAAG,EAAE;QACH,OAAO,IAAI,CAAC;IACd,CAAC,EACD;QACE,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,UAAU;QACpB,iBAAiB,EAAE,SAAS;KAC7B,CACF;IACA,UAAU,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;8BACjB,IAAI;qEAAa;AA2BvC;IAzBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,IAAI,EAAE,eAAe,CAAC,QAAQ;QAC9B,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,MAAM,CAAC;QACN,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,QAAQ,CAAC,sBAAsB,EAAE;KAC/C,CAAC;8BAC6B,QAAQ;uEAAa;AA2C7C;IAzCN,mBAAmB,CAAC;QACnB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,qCAAqC;SACjD;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,uBAAuB,EAAE,oBAAoB;QAC7C,IAAI,EAAE,eAAe,CAAC,MAAM;QAC5B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,SAAS,CACR,GAAG,EAAE;QACH,OAAO,IAAI,CAAC;IACd,CAAC,EACD;QACE,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,UAAU;QACpB,iBAAiB,EAAE,SAAS;KAC7B,CACF;IACA,UAAU,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;8BACjB,IAAI;kEAAa;AA2BpC;IAzBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,IAAI,EAAE,eAAe,CAAC,QAAQ;QAC9B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACD,MAAM,CAAC;QACN,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,QAAQ,CAAC,sBAAsB,EAAE;KAC/C,CAAC;8BAC0B,QAAQ;oEAAa;AA4B1C;IA1BN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,IAAI,EAAE,eAAe,CAAC,IAAI;QAC1B,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,4EAA4E;QAC9E,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,KAAK,EAAE;IACP,MAAM,CAAC;QACN,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,QAAQ,EAAE,IAAI;KACf,CAAC;8BACuB,IAAI;iEAAa;AA2BnC;IAzBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,IAAI,EAAE,eAAe,CAAC,IAAI;QAC1B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,8EAA8E;QAChF,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,MAAM,CAAC;QACN,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,QAAQ,EAAE,IAAI;KACf,CAAC;8BAC2B,IAAI;qEAAa;AA4BvC;IA1BN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,IAAI,EAAE,eAAe,CAAC,IAAI;QAC1B,KAAK,EAAE,4BAA4B;QACnC,WAAW,EACT,qEAAqE;QACvE,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,KAAK,EAAE;IACP,MAAM,CAAC;QACN,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,QAAQ,EAAE,IAAI;KACf,CAAC;8BACyB,IAAI;mEAAa;AA2BrC;IAzBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,IAAI,EAAE,eAAe,CAAC,IAAI;QAC1B,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,2EAA2E;QAC7E,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,MAAM,CAAC;QACN,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,QAAQ,EAAE,IAAI;KACf,CAAC;8BACqB,IAAI;+DAAa;AAzqBrB,wBAAwB;IAhE5C,mBAAmB,EAAE;IACrB,yBAAyB,CAAC;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI,EAAE,QAAQ,CAAC,MAAM;QACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC;IACD,cAAc,CAAC;QACd,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,IAAI;KACX,CAAC;IACD,mBAAmB,CAAC,QAAQ,CAAC;IAC7B,YAAY,CAAC,WAAW,CAAC;IACzB,kBAAkB,CAAC;QAClB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,qCAAqC;SACjD;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;QACD,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,qCAAqC;SACjD;QACD,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,mCAAmC;SAC/C;KACF,CAAC;IACD,eAAe,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC3D,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC;QACN,IAAI,EAAE,0BAA0B;KACjC,CAAC;IACD,aAAa,CAAC;QACb,SAAS,EAAE,0BAA0B;QACrC,YAAY,EAAE,yBAAyB;QACvC,UAAU,EAAE,+BAA+B;QAC3C,IAAI,EAAE,QAAQ,CAAC,QAAQ;QACvB,gBAAgB,EACd,8DAA8D;KACjE,CAAC;GACmB,wBAAwB,CA0qB5C;eA1qBoB,wBAAwB"}
1
+ {"version":3,"file":"OnCallDutyPolicySchedule.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/OnCallDutyPolicySchedule.ts"],"names":[],"mappings":"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"}