@oneuptime/common 12.0.20 → 12.0.22

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 (119) hide show
  1. package/Models/AnalyticsModels/ChangeEvent.ts +331 -0
  2. package/Models/AnalyticsModels/Index.ts +2 -0
  3. package/Models/DatabaseModels/Index.ts +2 -0
  4. package/Models/DatabaseModels/UserTwoFactorBackupCode.ts +262 -0
  5. package/Server/API/UserTwoFactorBackupCodeAPI.ts +258 -0
  6. package/Server/EnvironmentConfig.ts +1 -8
  7. package/Server/Infrastructure/Postgres/SchemaMigrations/1789000000000-AddUserSlackAndMicrosoftTeams.ts +42 -0
  8. package/Server/Infrastructure/Postgres/SchemaMigrations/1789100000000-AddUserTwoFactorBackupCode.ts +63 -0
  9. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -2
  10. package/Server/Services/ChangeEventService.ts +11 -0
  11. package/Server/Services/EnterpriseLicenseService.ts +3 -3
  12. package/Server/Services/Index.ts +4 -0
  13. package/Server/Services/UserService.ts +42 -0
  14. package/Server/Services/UserTwoFactorBackupCodeService.ts +355 -0
  15. package/Server/Utils/Attribution.ts +11 -11
  16. package/Server/Utils/Marketing/MarketingEventWebhook.ts +4 -5
  17. package/Server/Utils/Telemetry/ChangeEventRow.ts +228 -0
  18. package/Server/Utils/TwoFactorBackupCode.ts +266 -0
  19. package/Server/Views/Partials/AnalyticsConsent.ejs +3 -95
  20. package/Tests/App/Dashboard/DashboardChartWidgetZoom.test.tsx +64 -0
  21. package/Tests/App/Dashboard/EventOverlayHook.test.tsx +249 -0
  22. package/Tests/App/Dashboard/InvestigationArtifacts.test.tsx +315 -0
  23. package/Tests/App/Dashboard/InvestigationDrawer.test.tsx +258 -0
  24. package/Tests/App/Dashboard/MetricChartsCompare.test.tsx +171 -0
  25. package/Tests/App/Dashboard/MetricViewCompare.test.tsx +233 -0
  26. package/Tests/Server/API/UserAuthenticationAPI.test.ts +16 -3
  27. package/Tests/Server/API/UserTwoFactorAuthAdminAPI.test.ts +18 -2
  28. package/Tests/Server/API/UserTwoFactorBackupCodeAPI.test.ts +1390 -0
  29. package/Tests/Server/Infrastructure/Postgres/AddUserSlackAndMicrosoftTeamsMigration.test.ts +236 -0
  30. package/Tests/Server/Services/UserAuthenticationService.test.ts +23 -1
  31. package/Tests/Server/Services/UserTwoFactorAuthAdmin.test.ts +21 -0
  32. package/Tests/Server/Services/UserTwoFactorBackupCodeAdminSurface.test.ts +919 -0
  33. package/Tests/Server/Services/UserTwoFactorBackupCodeService.test.ts +862 -0
  34. package/Tests/Server/Utils/AI/SRE/Insights/Detectors/ExceptionIdentity.test.ts +224 -0
  35. package/Tests/Server/Utils/Attribution.test.ts +4 -5
  36. package/Tests/Server/Utils/Marketing/MarketingEventUtil.test.ts +2 -2
  37. package/Tests/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.test.ts +300 -0
  38. package/Tests/Server/Utils/TwoFactorBackupCode.test.ts +475 -0
  39. package/Tests/UI/Components/Charts/ChartGhostSeries.test.tsx +103 -0
  40. package/Tests/UI/Components/Charts/TooltipEntries.test.ts +44 -8
  41. package/Tests/Utils/Telemetry/CrossSignalScope.test.ts +13 -2
  42. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +7 -0
  43. package/Types/Email/EmailTemplateType.ts +2 -0
  44. package/Types/Marketing/Attribution.ts +9 -15
  45. package/Types/Marketing/MarketingEvent.ts +10 -46
  46. package/Types/UserAuthenticationStatus.ts +16 -0
  47. package/UI/Components/Charts/Area/AreaChart.tsx +15 -0
  48. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +16 -1
  49. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +189 -93
  50. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +6 -1
  51. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +213 -114
  52. package/UI/Components/Charts/ChartLibrary/Utils/TooltipEntries.ts +42 -27
  53. package/UI/Components/Charts/Line/LineChart.tsx +15 -0
  54. package/Utils/Metrics/MetricExplorerUrl.ts +119 -5
  55. package/Utils/Telemetry/CrossSignalScope.ts +19 -10
  56. package/build/dist/Models/AnalyticsModels/ChangeEvent.js +298 -0
  57. package/build/dist/Models/AnalyticsModels/ChangeEvent.js.map +1 -0
  58. package/build/dist/Models/AnalyticsModels/Index.js +2 -0
  59. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  60. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  61. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  62. package/build/dist/Models/DatabaseModels/UserTwoFactorBackupCode.js +277 -0
  63. package/build/dist/Models/DatabaseModels/UserTwoFactorBackupCode.js.map +1 -0
  64. package/build/dist/Server/API/UserTwoFactorBackupCodeAPI.js +201 -0
  65. package/build/dist/Server/API/UserTwoFactorBackupCodeAPI.js.map +1 -0
  66. package/build/dist/Server/EnvironmentConfig.js +1 -7
  67. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  68. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789000000000-AddUserSlackAndMicrosoftTeams.js +39 -0
  69. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789000000000-AddUserSlackAndMicrosoftTeams.js.map +1 -1
  70. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789100000000-AddUserTwoFactorBackupCode.js +46 -0
  71. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789100000000-AddUserTwoFactorBackupCode.js.map +1 -0
  72. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -2
  73. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  74. package/build/dist/Server/Services/ChangeEventService.js +9 -0
  75. package/build/dist/Server/Services/ChangeEventService.js.map +1 -0
  76. package/build/dist/Server/Services/EnterpriseLicenseService.js +3 -3
  77. package/build/dist/Server/Services/Index.js +4 -0
  78. package/build/dist/Server/Services/Index.js.map +1 -1
  79. package/build/dist/Server/Services/UserService.js +39 -0
  80. package/build/dist/Server/Services/UserService.js.map +1 -1
  81. package/build/dist/Server/Services/UserTwoFactorBackupCodeService.js +327 -0
  82. package/build/dist/Server/Services/UserTwoFactorBackupCodeService.js.map +1 -0
  83. package/build/dist/Server/Utils/Attribution.js +6 -6
  84. package/build/dist/Server/Utils/Marketing/MarketingEventWebhook.js +4 -5
  85. package/build/dist/Server/Utils/Marketing/MarketingEventWebhook.js.map +1 -1
  86. package/build/dist/Server/Utils/Telemetry/ChangeEventRow.js +150 -0
  87. package/build/dist/Server/Utils/Telemetry/ChangeEventRow.js.map +1 -0
  88. package/build/dist/Server/Utils/TwoFactorBackupCode.js +269 -0
  89. package/build/dist/Server/Utils/TwoFactorBackupCode.js.map +1 -0
  90. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +7 -0
  91. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  92. package/build/dist/Types/Email/EmailTemplateType.js +2 -0
  93. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  94. package/build/dist/Types/Marketing/Attribution.js +9 -15
  95. package/build/dist/Types/Marketing/Attribution.js.map +1 -1
  96. package/build/dist/Types/Marketing/MarketingEvent.js +2 -33
  97. package/build/dist/Types/Marketing/MarketingEvent.js.map +1 -1
  98. package/build/dist/UI/Components/Charts/Area/AreaChart.js +1 -1
  99. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  100. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +9 -1
  101. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  102. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +92 -38
  103. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  104. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +8 -8
  105. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
  106. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +95 -37
  107. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  108. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/TooltipEntries.js +39 -24
  109. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/TooltipEntries.js.map +1 -1
  110. package/build/dist/UI/Components/Charts/Line/LineChart.js +1 -1
  111. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  112. package/build/dist/Utils/Metrics/MetricExplorerUrl.js +81 -0
  113. package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -1
  114. package/build/dist/Utils/Telemetry/CrossSignalScope.js +14 -8
  115. package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -1
  116. package/package.json +1 -1
  117. package/Server/Infrastructure/Postgres/SchemaMigrations/1788900000000-RedactStoredMonitorIngestSecrets.ts +0 -117
  118. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788900000000-RedactStoredMonitorIngestSecrets.js +0 -106
  119. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788900000000-RedactStoredMonitorIngestSecrets.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"UserService.js","sourceRoot":"","sources":["../../../../Server/Services/UserService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAK9B,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,MAAyB,MAAM,iBAAiB,CAAC;AACxD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,6BAA6B,MAAM,iCAAiC,CAAC;AAC5E,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,iBAAiB,MAAM,mCAAmC,CAAC;AAGlE,OAAO,KAAK,MAAM,uBAAuB,CAAC;AAC1C,OAAO,GAAG,MAAM,qBAAqB,CAAC;AAGtC,OAAO,SAAS,MAAM,+BAA+B,CAAC;AACtD,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,SAA6B,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,iBAAiB,MAAM,qCAAqC,CAAC;AACpE,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,sBAAsB,MAAM,oDAAoD,CAAC;AAExF,OAAO,KAAK,MAAM,kCAAkC,CAAC;AACrD,OAAO,SAAS,MAAM,gCAAgC,CAAC;AACvD,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AACzD,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AACtE,OAAO,iBAAiB,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,mBAAmB,MAAM,iCAAiC,CAAC;AAElE,OAAO,WAAW,MAAM,gCAAgC,CAAC;AAEzD,OAAO,gBAAgB,MAAM,oCAAoC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,0CAA0C,GAC9C,sCAAsC,CAAC;AACzC,MAAM,oCAAoC,GAAW,UAAU,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,2CAA2C,GAAW,KAAM,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,8CAA8C,GAAW,IAAK,CAAC;AAErE,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IASjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;QATf;;;WAGG;QACK,oBAAe,GAA2B,IAAI,gBAAgB,CACpE,KAAM,CACP,CAAC;IAIF,CAAC;IAED;;;;OAIG;IAEU,AAAN,KAAK,CAAC,gBAAgB,CAAC,MAAgB;QAC5C,MAAM,GAAG,GAAW,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QACD;;;WAGG;QACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,KAAM,CAAC,CAAC;QAE5C,KAAK,IAAI,CAAC,aAAa,CAAC;YACtB,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,cAAc,EAAE,EAAE;YACpD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CACV,wCAAwC,GAAG,KAAK,GAAG,CAAC,OAAO,EAAE,CAC9D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAGY,AAAN,KAAK,CAAC,qBAAqB,CAAC,IAGlC;;QACC;;;;;;WAMG;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,IAAI,GAAiB,MAAM,IAAI,CAAC,SAAS,CAAC;YAC9C,KAAK,EAAE;gBACL,GAAG,EAAE,IAAI,CAAC,MAAM;aACjB;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI;aACZ;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,QAAQ,EAAE,MAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,EAAE,CAAA,IAAI,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC;IAC1J,CAAC;IAGY,AAAN,KAAK,CAAC,sBAAsB,CACjC,SAAmB,EACnB,MAAgB;QAEhB,MAAM,YAAY,GAAQ,MAAM,cAAc,CAAC,eAAe,EAAE,CAAC;QAEjE,OAAO,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CACrD,IAAI,SAAS,CAAC,QAAQ,EAAE,mBAAmB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAC/D,CAAC;IACJ,CAAC;IAGwB,AAAN,KAAK,CAAC,cAAc,CACrC,QAAyB;QAEzB;;;;WAIG;QACH,MAAM,iBAAiB,GACrB,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAqB,CAAC,CAAC;QAEpE,IAAI,iBAAiB,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChC,CAAC;QAED,MAAM,8BAA8B,GAClC,WAAW,CAAC,6BAA6B,CACvC,QAAQ,CAAC,IAAI,CAAC,qBAAkC,CACjD,CAAC;QAEJ,IAAI,8BAA8B,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,GAAG,8BAA8B,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC;QAC7C,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAGwB,AAAN,KAAK,CAAC,eAAe,CACtC,SAA0B,EAC1B,WAAkB;;QAElB,IAAI,oCAAoC,EAAE,CAAC;YACzC,SAAS,CAAC,sCAAsC,CAAC;gBAC/C,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,oCAAoC,CAAC;gBACzD,IAAI,EAAE;aACD,CAAA,MAAA,WAAW,CAAC,KAAK,0CAAE,QAAQ,EAAE,KAAI,KAAK;YACvC,CAAA,MAAA,WAAW,CAAC,IAAI,0CAAE,QAAQ,EAAE,KAAI,KAAK;aACpC,CAAA,MAAA,WAAW,CAAC,kBAAkB,0CAAE,QAAQ,EAAE,KAAI,KAAK;eACjD,CAAA,MAAA,WAAW,CAAC,WAAW,0CAAE,QAAQ,EAAE,KAAI,KAAK,EAAE;aACtD,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;;gBACtB,gFAAgF;gBAChF,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;oBAChB,MAAM,EAAE,MAAA,WAAW,CAAC,EAAE,0CAAE,QAAQ,EAAE;iBAClB,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC;QAED;;;;WAIG;QACH,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,gBAAgB,CAAC,OAAO,CAAC;gBACvB,KAAK,EAAE,qBAAqB;gBAC5B,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACxC,UAAU,EAAE;oBACV,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC3C,UAAU,EAAE,WAAW,CAAC,SAAS,IAAI,EAAE;oBACvC,UAAU,EAAE,WAAW,CAAC,SAAS,IAAI,EAAE;oBACvC,YAAY,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE;oBAC3C,QAAQ,EAAE,WAAW,CAAC,OAAO,IAAI,EAAE;oBACnC,WAAW,EAAE,WAAW,CAAC,UAAU,IAAI,EAAE;oBACzC,OAAO,EAAE,WAAW,CAAC,MAAM,IAAI,EAAE;oBACjC,SAAS,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE;oBACrC,WAAW,EAAE,WAAW,CAAC,qBAAqB,IAAI,EAAE;iBACrD;aACF,CAAC,CAAC;YAEH;;;;;;;;;;;eAWG;YACH,kBAAkB,CAAC,gBAAgB,CACjC,kBAAkB,CAAC,UAAU,CAAC;gBAC5B,SAAS,EAAE,kBAAkB,CAAC,MAAM;gBACpC,OAAO,EAAE,GAAG,kBAAkB,CAAC,MAAM,IAAI,MAAA,WAAW,CAAC,EAAE,0CAAE,QAAQ,EAAE,EAAE;gBACrE,UAAU,EAAE,WAAW,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE;gBAC/C,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACnC,iBAAiB,EAAE,WAAW;gBAC9B,IAAI,EAAE;oBACJ,MAAM,EAAE,CAAA,MAAA,WAAW,CAAC,EAAE,0CAAE,QAAQ,EAAE,KAAI,EAAE;oBACxC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;iBAC3C;aACF,CAAC,CACH,CAAC;QACJ,CAAC;QAED,6CAA6C;QAC7C,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAGY,AAAN,KAAK,CAAC,WAAW,CACtB,KAAY,EACZ,KAAqC;QAErC,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC;YAC1B,KAAK,EAAE;gBACL,KAAK,EAAE,KAAK;aACb;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;aACV;YACD,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAGwB,AAAN,KAAK,CAAC,cAAc,CACrC,QAAyB;QAEzB,IAAI,YAAY,GAAiB,EAAE,CAAC;QAEpC,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAClD,MAAM,KAAK,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;gBAC5C,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE;oBACN,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE,IAAI;iBACZ;gBACD,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,CAAC;aACR,CAAC,CAAC;YAEH,YAAY,GAAG,KAAK,CAAC;QACvB,CAAC;QAED;;;;;;;;;;;;;;;;;;;;;WAqBG;QAEH;;;;;;;;;;;;;;;;;;;;;;;;;;WA0BG;QACH,IAAI,QAAQ,CAAC,IAAI,CAAC,mBAAmB,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1E,MAAM,IAAI,gBAAgB,CACxB,gFAAgF,CACjF,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IAClD,CAAC;IAGwB,AAAN,KAAK,CAAC,cAAc,CACrC,QAAyB;QAEzB,+CAA+C;QAC/C,MAAM,KAAK,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;YAC5C,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;aACV;YACD,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,CAAC;SACR,CAAC,CAAC;QAEH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,WAAW,GAAsB,MAAM,iBAAiB,CAAC,MAAM,CAAC;gBACpE,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI,CAAC,EAAG;iBACjB;gBACD,MAAM,EAAE;oBACN,GAAG,EAAE,IAAI;oBACT,SAAS,EAAE,IAAI;iBAChB;gBACD,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI;iBACb;aACF,CAAC,CAAC;YAEH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,gBAAgB,CACxB,0IAA0I,CAC3I,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAGwB,AAAN,KAAK,CAAC,eAAe,CACtC,QAAyB,EACzB,eAA2B;;QAE3B,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,IAAI,GAAa,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;YACtD,MAAM,YAAY,GAAa,MAAM,cAAc,CAAC,eAAe,EAAE,CAAC;YAEtE,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;gBACzC,8DAA8D;gBAC9D,MAAM,kBAAkB,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAG,EAAE;oBAC3D,MAAM,EAAE,kBAAkB;iBAC3B,CAAC,CAAC;gBAEH,+CAA+C;gBAC/C,WAAW,CAAC,QAAQ,CAAC;oBACnB,OAAO,EAAE,IAAI,CAAC,KAAM;oBACpB,OAAO,EAAE,mBAAmB;oBAC5B,YAAY,EAAE,iBAAiB,CAAC,eAAe;oBAC/C,IAAI,EAAE;wBACJ,OAAO,EAAE,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;qBAChD;iBACF,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;;oBACtB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAA,IAAI,CAAC,EAAE,0CAAE,QAAQ,EAAE,EAAmB,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvD,uEAAuE;YAEvE,MAAM,QAAQ,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;gBAC/C,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK;gBAC9B,MAAM,EAAE;oBACN,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE,IAAI;iBACZ;gBACD,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI;iBACb;gBACD,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,CAAC;aACR,CAAC,CAAC;YAEH,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,2DAA2D;gBAC3D,MAAM,WAAW,GAAsB,MAAM,iBAAiB,CAAC,MAAM,CAAC;oBACpE,KAAK,EAAE;wBACL,MAAM,EAAE,IAAI,CAAC,EAAG;wBAChB,qBAAqB,EAAE,IAAI;qBAC5B;oBACD,MAAM,EAAE;wBACN,SAAS,EAAE,IAAI;qBAChB;oBACD,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE;wBACL,MAAM,EAAE,IAAI;qBACb;iBACF,CAAC,CAAC;gBAEH,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;oBACjC,yCAAyC;oBACzC,MAAM,2BAA2B,CAAC,iCAAiC,CACjE,MAAM,CAAC,SAAU,EACjB,IAAI,CAAC,EAAG,EACR,IAAI,CAAC,KAAM,CACZ,CAAC;oBAEF,MAAM,8BAA8B,CAAC,qCAAqC,CACxE,IAAI,CAAC,EAAG,EACR,MAAM,CAAC,SAAU,CAClB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;gBAC/C,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK;gBAC9B,MAAM,EAAE;oBACN,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,IAAI;iBACX;gBACD,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI;iBACb;gBACD,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,CAAC;aACR,CAAC,CAAC;YAEH,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAsB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAQ,EAAE,EAAE;;oBAC5D,OAAO,CAAA,MAAA,CAAC,CAAC,GAAG,0CAAE,QAAQ,EAAE,MAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACnD,CAAC,CAAC,CAAC;gBAEH,IAAI,OAAO,IAAI,CAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,QAAQ,EAAE,MAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;oBACnE,+CAA+C;oBAC/C,MAAM,cAAc,GAAa,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBAErD,MAAM,sBAAsB,GAC1B,IAAI,sBAAsB,EAAE,CAAC;oBAC/B,sBAAsB,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;oBACxC,sBAAsB,CAAC,KAAK,GAAG,OAAO,CAAC,KAAM,CAAC;oBAC9C,sBAAsB,CAAC,KAAK,GAAG,cAAc,CAAC;oBAC9C,sBAAsB,CAAC,OAAO,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;oBAEhE,MAAM,6BAA6B,CAAC,MAAM,CAAC;wBACzC,IAAI,EAAE,sBAAsB;wBAC5B,KAAK,EAAE;4BACL,MAAM,EAAE,IAAI;yBACb;qBACF,CAAC,CAAC;oBAEH,MAAM,IAAI,GAAa,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;oBACtD,MAAM,YAAY,GAAa,MAAM,cAAc,CAAC,eAAe,EAAE,CAAC;oBAEtE,WAAW,CAAC,QAAQ,CAAC;wBACnB,OAAO,EAAE,OAAO,CAAC,KAAM;wBACvB,OAAO,EAAE,wDAAwD;wBACjE,YAAY,EAAE,iBAAiB,CAAC,YAAY;wBAC5C,IAAI,EAAE;4BACJ,IAAI,EAAE,OAAO,CAAC,IAAK,CAAC,QAAQ,EAAE;4BAC9B,cAAc,EAAE,IAAI,GAAG,CACrB,YAAY,EACZ,IAAI,EACJ,IAAI,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAC1C,gBAAgB,GAAG,cAAc,CAAC,QAAQ,EAAE,CAC7C,CACF,CAAC,QAAQ,EAAE;4BACZ,OAAO,EAAE,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;yBAChD;qBACF,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;;wBACtB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAA,IAAI,CAAC,EAAE,0CAAE,QAAQ,EAAE,EAAmB,CAAC,CAAC;oBACtE,CAAC,CAAC,CAAC;oBAEH,MAAM,IAAI,CAAC,WAAW,CAAC;wBACrB,KAAK,EAAE;4BACL,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;yBACxB;wBACD,IAAI,EAAE;4BACJ,eAAe,EAAE,KAAK;yBACvB;wBACD,KAAK,EAAE;4BACL,MAAM,EAAE,IAAI;4BACZ,WAAW,EAAE,IAAI;yBAClB;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IAEU,AAAN,KAAK,CAAC,kBAAkB,CAAC,IAG/B;QACC,iEAAiE;QACjE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAEhC,IAAI,gBAAgB,EAAE,CAAC;YACrB;;;;eAIG;YACH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;QAED;;;;;;;;;;;;;WAaG;QACH,IAAI,KAAqB,CAAC;QAE1B,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC;gBAC3B,GAAG,EAAE,oCAAoC;gBACzC,SAAS,EAAE,0CAA0C;gBACrD,WAAW,EAAE,2CAA2C;gBACxD,cAAc,EAAE,8CAA8C;aAC/D,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb;;;;eAIG;YACH,MAAM,CAAC,KAAK,CACV,sFAAsF,CACvF,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAElB,MAAM,GAAG,CAAC;QACZ,CAAC;QAED;;;;;;;WAOG;QACH,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;YAEnE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb;;;;mBAIG;gBACH,MAAM,CAAC,KAAK,CACV,oFAAoF,CACrF,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,2BAA2B;QACvC,MAAM,SAAS,GAAmB,MAAM,IAAI,CAAC,OAAO,CAAC;YACnD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;YACD,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED;;;;;;;;;;;;;WAaG;QACH,MAAM,YAAY,GAAmB,MAAM,cAAc,CAAC,OAAO,CAAC;YAChE,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;YACD,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CACT,wJAAwJ,CACzJ,CAAC;YAEF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAGY,AAAN,KAAK,CAAC,aAAa,CAAC,IAO1B;QACC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAE9B,MAAM,IAAI,GAAU,IAAI,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC;QAErD;;;;WAIG;QACH,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC9C,CAAC;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,gEAAgE;YAChE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IAEU,AAAN,KAAK,CAAC,uBAAuB,CAClC,MAAgB;QAEhB,MAAM,IAAI,GAAiB,MAAM,IAAI,CAAC,SAAS,CAAC;YAC9C,KAAK,EAAE;gBACL,GAAG,EAAE,MAAM;aACZ;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,IAAI;gBACrB,mBAAmB,EAAE,IAAI;gBACzB,kBAAkB,EAAE,IAAI;gBACxB,oBAAoB,EAAE,IAAI;aAC3B;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QACjD,CAAC;QAED;;;;WAIG;QACH,MAAM,2BAA2B,GAAY,OAAO,CAClD,IAAI,CAAC,kBAAkB;YACrB,IAAI,CAAC,oBAAoB;YACzB,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CACvD,CAAC;QAEF,MAAM,sBAAsB,GAAY,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE1E,MAAM,gCAAgC,GACpC,MAAM,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC;QAEvD,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;YAC9C,sBAAsB,EAAE,sBAAsB;YAC9C,mBAAmB,EAAE,OAAO,CAAC,yBAAyB,CAAC;gBACrD,sBAAsB,EAAE,sBAAsB;gBAC9C,mBAAmB,EAAE,gCAAgC;aACtD,CAAC;YACF,gCAAgC,EAAE,gCAAgC;YAClE,2BAA2B,EAAE,2BAA2B;SACzD,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;OAaG;IAEW,AAAN,KAAK,CAAC,iCAAiC,CAC7C,MAAgB;QAEhB,MAAM,iBAAiB,GAAmB,MAAM,mBAAmB,CAAC,OAAO,CACzE;YACE,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM;gBACd,UAAU,EAAE,IAAI;aACjB;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CACF,CAAC;QAEF,MAAM,qBAAqB,GACzB,MAAM,mBAAmB,CAAC,OAAO,CAAC;YAChC,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM;gBACd,UAAU,EAAE,IAAI;aACjB;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEL,OAAO,iBAAiB,CAAC,QAAQ,EAAE,GAAG,qBAAqB,CAAC,QAAQ,EAAE,CAAC;IACzE,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,yBAAyB,CAAC,IAGvC;QACC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,OAAO,mBAAmB,CAAC,UAAU,CAAC;QACxC,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,mBAAmB,CAAC,iBAAiB,CAAC;QAC/C,CAAC;QAED,OAAO,mBAAmB,CAAC,mBAAmB,CAAC;IACjD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IAEU,AAAN,KAAK,CAAC,wBAAwB,CAAC,IAGrC;QACC,MAAM,IAAI,GAAiB,MAAM,IAAI,CAAC,SAAS,CAAC;YAC9C,KAAK,EAAE;gBACL,GAAG,EAAE,IAAI,CAAC,MAAM;aACjB;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;aACV;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC;YACvB,EAAE,EAAE,IAAI,CAAC,EAAG;YACZ,IAAI,EAAE;gBACJ,mBAAmB,EAAE,IAAI,CAAC,UAAU;aACrC;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB;;;;eAIG;YACH,MAAM,kBAAkB,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAG,EAAE;gBAC3D,MAAM,EAAE,mCAAmC;aAC5C,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,CACT,sCAAsC,IAAI,CAAC,UAAU,gCAAgC,IAAI,CAAC,EAAG,CAAC,QAAQ,EAAE,EAAE,CAC3G,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IAEU,AAAN,KAAK,CAAC,kBAAkB,CAAC,IAA0B;QACxD,MAAM,IAAI,GAAiB,MAAM,IAAI,CAAC,SAAS,CAAC;YAC9C,KAAK,EAAE;gBACL,GAAG,EAAE,IAAI,CAAC,MAAM;aACjB;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;aACV;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,mBAAmB,CAAC,QAAQ,CAAC;YACjC,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI,CAAC,EAAG;aACjB;YACD,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,CAAC;YACP,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,MAAM,mBAAmB,CAAC,QAAQ,CAAC;YACjC,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI,CAAC,EAAG;aACjB;YACD,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,CAAC;YACP,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH;;;;;WAKG;QACH,MAAM,kBAAkB,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAG,EAAE;YAC3D,MAAM,EAAE,gCAAgC;SACzC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CACT,qDAAqD,IAAI,CAAC,EAAG,CAAC,QAAQ,EAAE,EAAE,CAC3E,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IAEU,AAAN,KAAK,CAAC,WAAW,CAAC,IAGxB;QACC,MAAM,eAAe,GAAkB,0BAA0B,CAC/D,IAAI,CAAC,QAAQ,CACd,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,IAAI,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,IAAI,GAAiB,MAAM,IAAI,CAAC,SAAS,CAAC;YAC9C,KAAK,EAAE;gBACL,GAAG,EAAE,IAAI,CAAC,MAAM;aACjB;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,KAAK,EAAE,IAAI;aACZ;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC;YACvB,EAAE,EAAE,IAAI,CAAC,EAAG;YACZ,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACzC,kBAAkB,EAAE,IAAK;gBACzB,oBAAoB,EAAE,IAAK;aAC5B;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CACT,4CAA4C,IAAI,CAAC,EAAG,CAAC,QAAQ,EAAE,EAAE,CAClE,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IAEU,AAAN,KAAK,CAAC,qBAAqB,CAAC,IAElC;QACC,MAAM,IAAI,GAAiB,MAAM,IAAI,CAAC,SAAS,CAAC;YAC9C,KAAK,EAAE;gBACL,GAAG,EAAE,IAAI,CAAC,MAAM;aACjB;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,KAAK,EAAE,IAAI;aACZ;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QACjD,CAAC;QAED;;;;;WAKG;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,gBAAgB,CACxB,kFAAkF,CACnF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAW,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;QAErD,MAAM,WAAW,GAAW,MAAM,YAAY,CAAC,SAAS,CACtD,KAAK,EACL,gBAAgB,CACjB,CAAC;QAEF,MAAM,IAAI,CAAC,aAAa,CAAC;YACvB,EAAE,EAAE,IAAI,CAAC,MAAM;YACf,IAAI,EAAE;gBACJ,kBAAkB,EAAE,WAAW;gBAC/B,oBAAoB,EAAE,aAAa,CAAC,cAAc,EAAE;aACrD;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,GAAa,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;QACtD,MAAM,YAAY,GAAa,MAAM,cAAc,CAAC,eAAe,EAAE,CAAC;QAEtE,MAAM,cAAc,GAAW,IAAI,GAAG,CACpC,YAAY,EACZ,IAAI,EACJ,IAAI,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,GAAG,KAAK,CAAC,CACzE,CAAC,QAAQ,EAAE,CAAC;QAEb;;;;;WAKG;QACH,IAAI,CAAC;YACH,MAAM,YAAY,GAChB,MAAM,WAAW,CAAC,QAAQ,CAAC;gBACzB,OAAO,EAAE,IAAI,CAAC,KAAK;gBACnB,OAAO,EAAE,sCAAsC;gBAC/C,YAAY,EAAE,iBAAiB,CAAC,cAAc;gBAC9C,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;oBAC/C,cAAc,EAAE,cAAc;iBAC/B;aACF,CAAC,CAAC;YAEL;;;;;;;;;;;eAWG;YACH,IAAI,YAAY,YAAY,iBAAiB,EAAE,CAAC;gBAC9C,MAAM,IAAI,gBAAgB,CACxB,4CAA4C,YAAY,CAAC,OAAO,EAAE,CACnE,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb;;;;;;;;;eASG;YACH,MAAM,IAAI,CAAC,aAAa,CAAC;gBACvB,EAAE,EAAE,IAAI,CAAC,MAAM;gBACf,IAAI,EAAE;oBACJ,kBAAkB,EAAE,IAAK;oBACzB,oBAAoB,EAAE,IAAK;iBAC5B;gBACD,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI;iBACb;aACF,CAAC,CAAC,KAAK,CAAC,CAAC,UAAiB,EAAE,EAAE;gBAC7B,MAAM,CAAC,KAAK,CACV,4DAA4D,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CACjH,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,MAAM,CAAC,IAAI,CACT,uDAAuD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAChF,CAAC;QAEF,oEAAoE;QACpE,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,MAAgB;QAC9C,MAAM,IAAI,GAAiB,MAAM,IAAI,CAAC,SAAS,CAAC;YAC9C,KAAK,EAAE;gBACL,GAAG,EAAE,MAAM;aACZ;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,IAAI;aACf;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC/B,CAAC;CACF;AA7pCc;IADZ,WAAW,EAAE;;qCACwB,QAAQ;;+CAqB7C;AAGY;IADZ,WAAW,EAAE;;;;oDAkCb;AAGY;IADZ,WAAW,EAAE;;qCAED,QAAQ;QACX,QAAQ;;qDAOjB;AAGwB;IADxB,WAAW,EAAE;;;;6CA8Bb;AAGwB;IADxB,WAAW,EAAE;;6CAGC,KAAK;;8CAqEnB;AAGY;IADZ,WAAW,EAAE;;qCAEL,KAAK;;0CAYb;AAGwB;IADxB,WAAW,EAAE;;;;6CA8Eb;AAGwB;IADxB,WAAW,EAAE;;;;6CAuCb;AAGwB;IADxB,WAAW,EAAE;;;;8CA2Jb;AAcY;IADZ,WAAW,EAAE;;;;iDAuFb;AAqDY;IADZ,WAAW,EAAE;;;;4CAwCb;AAYY;IADZ,WAAW,EAAE;;qCAEJ,QAAQ;;sDAkDjB;AAiBa;IADb,WAAW,EAAE;;qCAEJ,QAAQ;;gEA0BjB;AAuDY;IADZ,WAAW,EAAE;;;;uDA6Cb;AAwBY;IADZ,WAAW,EAAE;;;;iDAqDb;AAqBY;IADZ,WAAW,EAAE;;;;0CA6Cb;AAsBY;IADZ,WAAW,EAAE;;;;oDAmIb;AAuBH,eAAe,IAAI,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"UserService.js","sourceRoot":"","sources":["../../../../Server/Services/UserService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,327 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import DatabaseService from "./DatabaseService";
11
+ import Model from "../../Models/DatabaseModels/UserTwoFactorBackupCode";
12
+ import TwoFactorBackupCode, { BackupCodeSetSize, } from "../Utils/TwoFactorBackupCode";
13
+ import QueryHelper from "../Types/Database/QueryHelper";
14
+ import BadDataException from "../../Types/Exception/BadDataException";
15
+ import LIMIT_MAX from "../../Types/Database/LimitMax";
16
+ import SortOrder from "../../Types/BaseDatabase/SortOrder";
17
+ import OneUptimeDate from "../../Types/Date";
18
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
19
+ import logger from "../Utils/Logger";
20
+ export class Service extends DatabaseService {
21
+ constructor() {
22
+ super(Model);
23
+ }
24
+ /*
25
+ * The model denies create to everyone, so the only way a row is written is
26
+ * `regenerateForUser` below, as root. This hook is the second lock on the
27
+ * same door: it refuses any create that did not come through there.
28
+ *
29
+ * Worth having both because the two guards fail differently. The table
30
+ * permission is enforced by the CRUD API layer and is bypassed wholesale by
31
+ * `isRoot`, which every internal caller uses -- so a future service that
32
+ * reaches for `UserTwoFactorBackupCodeService.create()` with a plaintext
33
+ * code, or with no owner, would sail past it. What lands in `codeHash` is
34
+ * the credential; there is no recovering from writing the wrong thing there.
35
+ */
36
+ async onBeforeCreate(createBy) {
37
+ if (!createBy.data.userId) {
38
+ throw new BadDataException("User id is required");
39
+ }
40
+ if (!createBy.data.codeHash) {
41
+ throw new BadDataException("Backup code hash is required");
42
+ }
43
+ /*
44
+ * A code that arrives already spent is a caller confusing itself about
45
+ * which end of the lifecycle it is at. Codes are minted usable and are
46
+ * spent only by `consumeCode`.
47
+ *
48
+ * Deleted rather than set to undefined: `exactOptionalPropertyTypes` is on,
49
+ * so the property being ABSENT and the property holding `undefined` are
50
+ * different things to the compiler, and only the first is allowed here.
51
+ */
52
+ delete createBy.data.usedAt;
53
+ return {
54
+ createBy: createBy,
55
+ carryForward: {},
56
+ };
57
+ }
58
+ /**
59
+ * Mint a fresh set of backup codes for one user, replacing whatever they
60
+ * had, and return the PLAINTEXT codes.
61
+ *
62
+ * This is the only moment the plaintext exists anywhere. The caller shows it
63
+ * to the user once and then it is gone -- only the keyed digests are stored,
64
+ * so nothing (not this service, not a master admin, not a database dump) can
65
+ * produce the codes again. That is the property the feature is worth having
66
+ * for, and it is why the API route wraps this in a response the UI is
67
+ * expected to make the user acknowledge.
68
+ *
69
+ * REPLACING rather than adding is deliberate. "Generate more codes" would
70
+ * leave the codes from a list the user printed, lost and then regenerated
71
+ * over still working, which defeats the point of regenerating after a
72
+ * suspected compromise.
73
+ *
74
+ * ALL OR NOTHING, and this is the part that needs care. The old set is
75
+ * deleted first, then the new rows are written one at a time -- so a failure
76
+ * partway through the loop would otherwise leave the account holding a few
77
+ * rows that WERE written and that the caller, having thrown, never showed to
78
+ * anybody. `getStatusForUser` would then report "4 backup codes" to a user
79
+ * who has never seen one of them: codes that are unusable in practice and
80
+ * that hide the fact that they have no recovery route left. That is the
81
+ * worst state this feature can produce, because it looks exactly like the
82
+ * good one.
83
+ *
84
+ * So a failure is compensated: everything written for this user is removed,
85
+ * and the account ends with NO codes and an error on screen. "You have no
86
+ * backup codes" is a state the profile page already tells the user to fix;
87
+ * "you have four codes you have never seen" is not.
88
+ *
89
+ * The compensating delete is itself best-effort -- if it also fails there is
90
+ * nothing further to try -- but it turns a silent, permanent trap into two
91
+ * consecutive infrastructure failures.
92
+ */
93
+ async regenerateForUser(data) {
94
+ const count = data.count || BackupCodeSetSize;
95
+ await this.deleteAllForUser({ userId: data.userId });
96
+ const codes = TwoFactorBackupCode.generateCodeSet(count);
97
+ try {
98
+ for (const code of codes) {
99
+ const backupCode = new Model();
100
+ backupCode.userId = data.userId;
101
+ backupCode.codeHash = TwoFactorBackupCode.hashCode({
102
+ code: code,
103
+ userId: data.userId,
104
+ });
105
+ await this.create({
106
+ data: backupCode,
107
+ props: {
108
+ isRoot: true,
109
+ },
110
+ });
111
+ }
112
+ }
113
+ catch (err) {
114
+ try {
115
+ await this.deleteAllForUser({ userId: data.userId });
116
+ }
117
+ catch (cleanupError) {
118
+ /*
119
+ * Swallowed so the ORIGINAL failure is what the caller sees. The
120
+ * cleanup error is the less useful of the two -- it explains why the
121
+ * rollback did not happen, not why the write did not.
122
+ */
123
+ logger.error(cleanupError);
124
+ }
125
+ throw err;
126
+ }
127
+ return codes;
128
+ }
129
+ /**
130
+ * Spend one of this user's backup codes, if the submitted code is one of
131
+ * them and has not been used already.
132
+ *
133
+ * ONE STATEMENT, ON PURPOSE
134
+ *
135
+ * The obvious shape -- find the row, check `usedAt`, then update it -- has a
136
+ * window between the read and the write, and "single use" is the entire
137
+ * guarantee a backup code offers. Two sign-in attempts carrying the same
138
+ * code that arrive together would both read a null `usedAt` and both be let
139
+ * in, which is precisely the property an attacker who has watched somebody
140
+ * type a code off a printed list would exploit.
141
+ *
142
+ * `usedAt IS NULL` in the WHERE clause moves the decision inside Postgres,
143
+ * where the row lock settles it: the first statement to reach the row
144
+ * updates it, the second matches nothing. `RETURNING "_id"` is what turns
145
+ * that into an answer for the caller -- an UPDATE that matched no rows and
146
+ * an UPDATE that matched one are otherwise indistinguishable from here.
147
+ *
148
+ * Written as raw parameterized SQL rather than through the ORM because no
149
+ * write path on DatabaseService both takes a non-primary-key predicate and
150
+ * reports what it matched. Column and table names are literals in this file,
151
+ * never caller input, and all three values are bound parameters.
152
+ *
153
+ * `deletedAt IS NULL` is included because soft-deleted rows are still
154
+ * physically present; without it, a code from a set that regeneration
155
+ * replaced would still sign somebody in.
156
+ *
157
+ * @returns true when a code was spent, false when the code was wrong,
158
+ * already used, or belongs to somebody else.
159
+ */
160
+ async consumeCode(data) {
161
+ const normalizedCode = TwoFactorBackupCode.normalizeCode(data.code);
162
+ /*
163
+ * Refused before the query rather than hashed and looked up. An empty
164
+ * submission cannot be anybody's code, and letting it through would mean
165
+ * one round trip per empty request on a route an attacker can call.
166
+ */
167
+ if (!normalizedCode) {
168
+ return false;
169
+ }
170
+ const codeHash = TwoFactorBackupCode.hashCode({
171
+ code: normalizedCode,
172
+ userId: data.userId,
173
+ });
174
+ const rows = await this.getRepository()
175
+ .manager.query(`UPDATE "UserTwoFactorBackupCode"
176
+ SET "usedAt" = $1, "updatedAt" = CURRENT_TIMESTAMP
177
+ WHERE "userId" = $2
178
+ AND "codeHash" = $3
179
+ AND "usedAt" IS NULL
180
+ AND "deletedAt" IS NULL
181
+ RETURNING "_id"`, [OneUptimeDate.getCurrentDate(), data.userId.toString(), codeHash])
182
+ /*
183
+ * For an UPDATE the postgres driver hands back `[rows, rowCount]` rather
184
+ * than a bare row array, so the rows have to be unwrapped. Written
185
+ * defensively: a driver that returns the bare array instead must read as
186
+ * "no code was spent", never as a silent success.
187
+ */
188
+ .then((result) => {
189
+ if (!Array.isArray(result)) {
190
+ return [];
191
+ }
192
+ const first = result[0];
193
+ return Array.isArray(first) ? first : [];
194
+ });
195
+ return rows.length > 0;
196
+ }
197
+ /**
198
+ * How many codes this user has, and how many are still spendable.
199
+ *
200
+ * Counted rather than fetched: the rows carry a credential digest and there
201
+ * is no caller that needs them, so nothing is loaded that a stray log line
202
+ * could then print.
203
+ */
204
+ async getStatusForUser(data) {
205
+ const total = await this.countBy({
206
+ query: {
207
+ userId: data.userId,
208
+ },
209
+ props: {
210
+ isRoot: true,
211
+ },
212
+ });
213
+ if (total.toNumber() === 0) {
214
+ return {
215
+ total: 0,
216
+ unused: 0,
217
+ generatedAt: null,
218
+ };
219
+ }
220
+ const unused = await this.countUnusedForUser({
221
+ userId: data.userId,
222
+ });
223
+ const newest = await this.findOneBy({
224
+ query: {
225
+ userId: data.userId,
226
+ },
227
+ select: {
228
+ createdAt: true,
229
+ },
230
+ sort: {
231
+ createdAt: SortOrder.Descending,
232
+ },
233
+ props: {
234
+ isRoot: true,
235
+ },
236
+ });
237
+ return {
238
+ total: total.toNumber(),
239
+ unused: unused,
240
+ generatedAt: (newest === null || newest === void 0 ? void 0 : newest.createdAt) || null,
241
+ };
242
+ }
243
+ /**
244
+ * How many unused codes this user has left.
245
+ *
246
+ * Split out from `getStatusForUser` because the login path needs exactly
247
+ * this number and nothing else: it decides whether the two factor challenge
248
+ * screen offers "use a backup code" at all, and it is answered on every
249
+ * two-factor sign-in.
250
+ *
251
+ * `usedAt: QueryHelper.isNull()` rather than `usedAt: null`. A bare null
252
+ * predicate is dropped by TypeORM rather than compiled to `IS NULL`, so the
253
+ * count would silently include spent codes and the login page would offer a
254
+ * recovery route to a user with nothing left to recover with.
255
+ */
256
+ async countUnusedForUser(data) {
257
+ const unused = await this.countBy({
258
+ query: {
259
+ userId: data.userId,
260
+ usedAt: QueryHelper.isNull(),
261
+ },
262
+ props: {
263
+ isRoot: true,
264
+ },
265
+ });
266
+ return unused.toNumber();
267
+ }
268
+ /**
269
+ * Drop every backup code this user has.
270
+ *
271
+ * Called by regeneration, and by UserService.resetTwoFactorAuth -- an
272
+ * operator resetting two factor auth for somebody who lost a device must
273
+ * take the recovery codes with it. Leaving them behind would mean the reset
274
+ * did not actually revoke the account's second-factor material, which is the
275
+ * one thing the operator pressed the button to do.
276
+ */
277
+ async deleteAllForUser(data) {
278
+ await this.deleteBy({
279
+ query: {
280
+ userId: data.userId,
281
+ },
282
+ limit: LIMIT_MAX,
283
+ skip: 0,
284
+ props: {
285
+ isRoot: true,
286
+ },
287
+ });
288
+ }
289
+ }
290
+ __decorate([
291
+ CaptureSpan(),
292
+ __metadata("design:type", Function),
293
+ __metadata("design:paramtypes", [Object]),
294
+ __metadata("design:returntype", Promise)
295
+ ], Service.prototype, "onBeforeCreate", null);
296
+ __decorate([
297
+ CaptureSpan(),
298
+ __metadata("design:type", Function),
299
+ __metadata("design:paramtypes", [Object]),
300
+ __metadata("design:returntype", Promise)
301
+ ], Service.prototype, "regenerateForUser", null);
302
+ __decorate([
303
+ CaptureSpan(),
304
+ __metadata("design:type", Function),
305
+ __metadata("design:paramtypes", [Object]),
306
+ __metadata("design:returntype", Promise)
307
+ ], Service.prototype, "consumeCode", null);
308
+ __decorate([
309
+ CaptureSpan(),
310
+ __metadata("design:type", Function),
311
+ __metadata("design:paramtypes", [Object]),
312
+ __metadata("design:returntype", Promise)
313
+ ], Service.prototype, "getStatusForUser", null);
314
+ __decorate([
315
+ CaptureSpan(),
316
+ __metadata("design:type", Function),
317
+ __metadata("design:paramtypes", [Object]),
318
+ __metadata("design:returntype", Promise)
319
+ ], Service.prototype, "countUnusedForUser", null);
320
+ __decorate([
321
+ CaptureSpan(),
322
+ __metadata("design:type", Function),
323
+ __metadata("design:paramtypes", [Object]),
324
+ __metadata("design:returntype", Promise)
325
+ ], Service.prototype, "deleteAllForUser", null);
326
+ export default new Service();
327
+ //# sourceMappingURL=UserTwoFactorBackupCodeService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserTwoFactorBackupCodeService.js","sourceRoot":"","sources":["../../../../Server/Services/UserTwoFactorBackupCodeService.ts"],"names":[],"mappings":"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"}
@@ -47,10 +47,10 @@ export default class Attribution {
47
47
  /*
48
48
  * UTM values out of an arbitrary object, accepting either spelling.
49
49
  *
50
- * A URL and Cal booking metadata carry `utm_source`; a JSON body posted by
51
- * the signup page carries `utmSource`. Both arrive at server doors that
52
- * write the same columns, so both are read here rather than making each
53
- * caller remember which shape it is holding. camelCase wins when a caller
50
+ * A URL carries `utm_source`; a JSON body posted by the signup page carries
51
+ * `utmSource`. Both arrive at server doors that write the same columns, so
52
+ * both are read here rather than making each caller remember which shape it
53
+ * is holding. camelCase wins when a caller
54
54
  * somehow sends both, because that is the spelling the browser writes
55
55
  * deliberately and the snake_case one is the raw URL echo.
56
56
  */
@@ -104,8 +104,8 @@ export default class Attribution {
104
104
  }
105
105
  /*
106
106
  * SHA-256 of the normalised email, hex encoded — the identifier every ad
107
- * platform's enhanced matching expects, and the key the conversion ledger
108
- * joins a booked meeting to the signup it later produced.
107
+ * platform's enhanced matching expects, and the key a receiver joins one
108
+ * person's conversions on.
109
109
  */
110
110
  static hashEmail(email) {
111
111
  const normalized = this.normalizeEmail(email);
@@ -6,8 +6,8 @@ const REQUEST_TIMEOUT_MS = 15000;
6
6
  /*
7
7
  * Delivers marketing conversion events to one operator-configured endpoint.
8
8
  *
9
- * OneUptime keeps no conversion ledger, so this is the only exit for a signup,
10
- * a booked meeting or a plan change. That has one consequence worth stating
9
+ * OneUptime keeps no conversion ledger, so this is the only exit for a signup
10
+ * or a plan change. That has one consequence worth stating
11
11
  * plainly: a delivery this class gives up on is gone, because there is no row
12
12
  * anywhere to reconcile against later. deliver() therefore THROWS on anything
13
13
  * that might succeed on a retry, and the queue is what retries it.
@@ -15,9 +15,8 @@ const REQUEST_TIMEOUT_MS = 15000;
15
15
  * SIGNING
16
16
  *
17
17
  * The signature is HMAC-SHA256 over the exact request body bytes, hex encoded,
18
- * in `x-oneuptime-signature-256`. This is the same scheme OneUptime verifies
19
- * on the way in from Cal, deliberately: one thing to understand rather than
20
- * two. The receiver must compute its digest over the raw bytes it received —
18
+ * in `x-oneuptime-signature-256`. The receiver must compute its digest over
19
+ * the raw bytes it received
21
20
  * JSON parsed and re-serialised is NOT equivalent, because whitespace, key
22
21
  * order and escaping all change the digest.
23
22
  *
@@ -1 +1 @@
1
- {"version":3,"file":"MarketingEventWebhook.js","sourceRoot":"","sources":["../../../../../Server/Utils/Marketing/MarketingEventWebhook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAiB,MAAM,OAAO,CAAC;AACzD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,kBAAkB,GAAW,KAAK,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;IACjC,MAAM,CAAC,YAAY;QACxB,OAAO,OAAO,CAAC,mBAAmB,IAAI,sBAAsB,CAAC,CAAC;IAChE,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe;QAC3B,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,sBAAsB,CAAC;IACjE,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,IAAY;QAC7B,OAAO,MAAM;aACV,UAAU,CAAC,QAAQ,EAAE,sBAAsB,CAAC;aAC5C,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;aACpB,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAqB;;QAC/C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,wDAAwD;QACxD,MAAM,IAAI,GAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAkB,MAAM,KAAK,CAAC,IAAI,CAC9C,mBAAmB,EACnB,IAAI,EACJ;gBACE,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,2BAA2B,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC5C,sBAAsB,EAAE,KAAK,CAAC,OAAO;oBACrC,wBAAwB,EAAE,KAAK,CAAC,SAAS;iBAC1C;gBACD,OAAO,EAAE,kBAAkB;gBAC3B,4DAA4D;gBAC5D,cAAc,EAAE,CAAC,MAAc,EAAW,EAAE;oBAC1C,OAAO,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC;gBACvC,CAAC;aACF,CACF,CAAC;YAEF,MAAM,CAAC,KAAK,CACV,6BAA6B,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,YAAY,QAAQ,CAAC,MAAM,EAAE,CAC5F,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GACX,GAAG,YAAY,UAAU;gBACvB,CAAC,CAAC,QAAQ,CAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,MAAM,KAAI,GAAG,KAAK,IAAI,CAAC,SAAS,CACpD,CAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,IAAI,KAAI,GAAG,CAAC,OAAO,CAClC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;gBACnB,CAAC,CAAC,CAAC,GAAa,aAAb,GAAG,uBAAH,GAAG,CAAY,OAAO,KAAI,eAAe,CAAC;YAEjD;;;eAGG;YACH,MAAM,IAAI,KAAK,CACb,yCAAyC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,MAAM,OAAO,EAAE,CAC1F,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"MarketingEventWebhook.js","sourceRoot":"","sources":["../../../../../Server/Utils/Marketing/MarketingEventWebhook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAiB,MAAM,OAAO,CAAC;AACzD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,kBAAkB,GAAW,KAAK,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;IACjC,MAAM,CAAC,YAAY;QACxB,OAAO,OAAO,CAAC,mBAAmB,IAAI,sBAAsB,CAAC,CAAC;IAChE,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe;QAC3B,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,sBAAsB,CAAC;IACjE,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,IAAY;QAC7B,OAAO,MAAM;aACV,UAAU,CAAC,QAAQ,EAAE,sBAAsB,CAAC;aAC5C,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;aACpB,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAqB;;QAC/C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,wDAAwD;QACxD,MAAM,IAAI,GAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAkB,MAAM,KAAK,CAAC,IAAI,CAC9C,mBAAmB,EACnB,IAAI,EACJ;gBACE,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,2BAA2B,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC5C,sBAAsB,EAAE,KAAK,CAAC,OAAO;oBACrC,wBAAwB,EAAE,KAAK,CAAC,SAAS;iBAC1C;gBACD,OAAO,EAAE,kBAAkB;gBAC3B,4DAA4D;gBAC5D,cAAc,EAAE,CAAC,MAAc,EAAW,EAAE;oBAC1C,OAAO,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC;gBACvC,CAAC;aACF,CACF,CAAC;YAEF,MAAM,CAAC,KAAK,CACV,6BAA6B,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,YAAY,QAAQ,CAAC,MAAM,EAAE,CAC5F,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GACX,GAAG,YAAY,UAAU;gBACvB,CAAC,CAAC,QAAQ,CAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,MAAM,KAAI,GAAG,KAAK,IAAI,CAAC,SAAS,CACpD,CAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,IAAI,KAAI,GAAG,CAAC,OAAO,CAClC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;gBACnB,CAAC,CAAC,CAAC,GAAa,aAAb,GAAG,uBAAH,GAAG,CAAY,OAAO,KAAI,eAAe,CAAC;YAEjD;;;eAGG;YACH,MAAM,IAAI,KAAK,CACb,yCAAyC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,MAAM,OAAO,EAAE,CAC1F,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,150 @@
1
+ import OneUptimeDate from "../../../Types/Date";
2
+ import ObjectID from "../../../Types/ObjectID";
3
+ /*
4
+ * Change-event ingest parsing + ClickHouse row building. Pure on purpose
5
+ * (no network, no request objects) so App/Tests can pin every validation
6
+ * rule without a server.
7
+ */
8
+ /*
9
+ * Events whose source timestamp is outside this window are stamped with
10
+ * the ingestion time instead (original preserved in attributes). The
11
+ * table partitions by toYYYYMMDD(time), so a forged or garbage timestamp
12
+ * must not be allowed to create arbitrary partitions.
13
+ */
14
+ export const MAX_CHANGE_EVENT_AGE_IN_DAYS = 366;
15
+ export const MAX_CHANGE_EVENT_FUTURE_SKEW_IN_MINUTES = 60;
16
+ // Caps keep a CI script's mistake from becoming a storage problem.
17
+ export const MAX_CHANGE_EVENTS_PER_REQUEST = 100;
18
+ export const MAX_CHANGE_EVENT_TITLE_LENGTH = 500;
19
+ export const MAX_CHANGE_EVENT_DESCRIPTION_LENGTH = 5000;
20
+ export const MAX_CHANGE_EVENT_TYPE_LENGTH = 50;
21
+ export const MAX_CHANGE_EVENT_ATTRIBUTES = 50;
22
+ export const DEFAULT_CHANGE_EVENT_TYPE = "deployment";
23
+ /*
24
+ * Serviceless change events (project-wide markers) have no service
25
+ * retention ladder to consult; deploy markers are tiny and valuable for
26
+ * long-baseline comparisons, so keep them a year.
27
+ */
28
+ export const DEFAULT_CHANGE_EVENT_RETENTION_IN_DAYS = 365;
29
+ function parseEntryTime(value) {
30
+ if (typeof value === "number" && Number.isFinite(value)) {
31
+ /*
32
+ * Epoch seconds vs milliseconds: anything below 1e12 read as ms would
33
+ * be before 2001 — CI clocks don't say that; treat it as seconds.
34
+ */
35
+ const ms = value < 1e12 ? value * 1000 : value;
36
+ const date = new Date(ms);
37
+ return Number.isNaN(date.getTime()) ? null : date;
38
+ }
39
+ if (typeof value === "string" && value.trim() !== "") {
40
+ const date = new Date(value);
41
+ return Number.isNaN(date.getTime()) ? null : date;
42
+ }
43
+ return null;
44
+ }
45
+ /**
46
+ * Validate one raw ingest entry. Returns null when the entry cannot be a
47
+ * change event at all (no usable title); every other malformation is
48
+ * repaired (defaults, trims, caps) rather than rejected — CI pipelines
49
+ * should not fail a deploy over a long description.
50
+ */
51
+ export function parseChangeEventIngestEntry(entry) {
52
+ var _a, _b, _c;
53
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
54
+ return null;
55
+ }
56
+ const rawTitle = (_a = entry["title"]) !== null && _a !== void 0 ? _a : entry["name"];
57
+ const title = typeof rawTitle === "string"
58
+ ? rawTitle.trim().slice(0, MAX_CHANGE_EVENT_TITLE_LENGTH)
59
+ : "";
60
+ if (title === "") {
61
+ return null;
62
+ }
63
+ const rawEventType = (_b = entry["eventType"]) !== null && _b !== void 0 ? _b : entry["type"];
64
+ const eventType = typeof rawEventType === "string" && rawEventType.trim() !== ""
65
+ ? rawEventType.trim().toLowerCase().slice(0, MAX_CHANGE_EVENT_TYPE_LENGTH)
66
+ : DEFAULT_CHANGE_EVENT_TYPE;
67
+ const rawDescription = entry["description"];
68
+ const description = typeof rawDescription === "string"
69
+ ? rawDescription.trim().slice(0, MAX_CHANGE_EVENT_DESCRIPTION_LENGTH)
70
+ : "";
71
+ const attributes = {};
72
+ const rawAttributes = entry["attributes"];
73
+ if (rawAttributes &&
74
+ typeof rawAttributes === "object" &&
75
+ !Array.isArray(rawAttributes)) {
76
+ for (const key of Object.keys(rawAttributes)) {
77
+ if (key.trim() === "") {
78
+ continue;
79
+ }
80
+ if (Object.keys(attributes).length >= MAX_CHANGE_EVENT_ATTRIBUTES) {
81
+ break;
82
+ }
83
+ const value = rawAttributes[key];
84
+ if (typeof value === "string" ||
85
+ typeof value === "number" ||
86
+ typeof value === "boolean") {
87
+ attributes[key] = String(value);
88
+ }
89
+ }
90
+ }
91
+ return {
92
+ time: parseEntryTime((_c = entry["time"]) !== null && _c !== void 0 ? _c : entry["timestamp"]),
93
+ eventType,
94
+ title,
95
+ description,
96
+ attributes,
97
+ };
98
+ }
99
+ /**
100
+ * Accept the shapes CI scripts actually send: a bare object (one event),
101
+ * a bare array, or { events: [...] }.
102
+ */
103
+ export function extractChangeEventEntries(body) {
104
+ if (!body) {
105
+ return [];
106
+ }
107
+ if (Array.isArray(body)) {
108
+ return body.filter((item) => {
109
+ return typeof item === "object" && item !== null && !Array.isArray(item);
110
+ });
111
+ }
112
+ if (typeof body !== "object") {
113
+ return [];
114
+ }
115
+ const asObject = body;
116
+ const nested = asObject["events"];
117
+ if (Array.isArray(nested)) {
118
+ return extractChangeEventEntries(nested);
119
+ }
120
+ // A single bare event object — but not the {events: <non-array>} shape.
121
+ if (nested === undefined && Object.keys(asObject).length > 0) {
122
+ return [asObject];
123
+ }
124
+ return [];
125
+ }
126
+ /**
127
+ * ParsedChangeEventEntry -> ChangeEvent ClickHouse row.
128
+ */
129
+ export function buildChangeEventDbRow(data) {
130
+ const { parsed, projectId, serviceMetadata, retentionDays } = data;
131
+ const ingestionDate = OneUptimeDate.getCurrentDate();
132
+ let eventTime = parsed.time || ingestionDate;
133
+ let attributes = Object.assign({}, parsed.attributes);
134
+ const ageInDays = OneUptimeDate.getNumberOfDaysBetweenDates(eventTime, ingestionDate);
135
+ const futureSkewInMinutes = (eventTime.getTime() - ingestionDate.getTime()) / (60 * 1000);
136
+ if (Number.isNaN(eventTime.getTime()) ||
137
+ ageInDays > MAX_CHANGE_EVENT_AGE_IN_DAYS ||
138
+ futureSkewInMinutes > MAX_CHANGE_EVENT_FUTURE_SKEW_IN_MINUTES) {
139
+ attributes = Object.assign(Object.assign({}, attributes), { "oneuptime.original_time": String(parsed.time) });
140
+ eventTime = ingestionDate;
141
+ }
142
+ const retentionDate = OneUptimeDate.addRemoveDays(ingestionDate, retentionDays);
143
+ return Object.assign(Object.assign({ _id: ObjectID.generateTimeOrdered().toString(), createdAt: OneUptimeDate.toClickhouseDateTime(ingestionDate), projectId: projectId.toString() }, (serviceMetadata
144
+ ? {
145
+ primaryEntityId: serviceMetadata.primaryEntityId.toString(),
146
+ primaryEntityType: serviceMetadata.primaryEntityType,
147
+ }
148
+ : {})), { time: OneUptimeDate.toClickhouseDateTime64(eventTime), eventType: parsed.eventType, title: parsed.title, description: parsed.description, attributes, attributeKeys: Object.keys(attributes).sort(), retentionDate: OneUptimeDate.toClickhouseDateTime(retentionDate) });
149
+ }
150
+ //# sourceMappingURL=ChangeEventRow.js.map