From 4f164449e42dcc824f8d754f4d5f0a03e394c1a0 Mon Sep 17 00:00:00 2001 From: runic-docs-bot Date: Tue, 1 Sep 2026 13:58:11 +0000 Subject: [PATCH] docs(tree): sync website/PROJECT_TREE.md from RunicGateway/website@66bb3b9 [skip ci] --- website/PROJECT_TREE.md | 125 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 119 insertions(+), 6 deletions(-) diff --git a/website/PROJECT_TREE.md b/website/PROJECT_TREE.md index 02fea5a..fb5fb87 100644 --- a/website/PROJECT_TREE.md +++ b/website/PROJECT_TREE.md @@ -137,6 +137,7 @@ website/ │ │ │ └── registry.js │ │ ├── components/ │ │ │ ├── security/ +│ │ │ │ ├── EmailAddressPanel.jsx │ │ │ │ ├── RecoveryCodesDisplay.jsx │ │ │ │ ├── RecoveryCodesPanel.jsx │ │ │ │ ├── TrustedDevicesPanel.jsx @@ -147,6 +148,7 @@ website/ │ │ │ ├── Modal.jsx │ │ │ ├── MoonDot.jsx │ │ │ ├── NavDropdown.jsx +│ │ │ ├── NotificationBell.jsx │ │ │ ├── PageHeader.jsx │ │ │ ├── PageState.jsx │ │ │ ├── ProviderIcon.jsx @@ -160,12 +162,18 @@ website/ │ │ ├── contexts/ │ │ │ ├── AuthContext.jsx │ │ │ └── SiteContext.jsx +│ │ ├── emailBlocks/ +│ │ │ ├── index.js +│ │ │ ├── registry.js +│ │ │ └── types.jsx │ │ ├── lib/ │ │ │ ├── adminNav.js +│ │ │ ├── engagementRules.js │ │ │ ├── format.js │ │ │ ├── heroLayout.js │ │ │ ├── moduleAdmin.js │ │ │ ├── navOverrides.js +│ │ │ ├── notificationPaths.js │ │ │ ├── pageShell.js │ │ │ ├── settingsJson.js │ │ │ ├── teamActivity.js @@ -201,6 +209,12 @@ website/ │ │ │ │ │ ├── Dashboard.jsx │ │ │ │ │ ├── DiscordBotAdmin.jsx │ │ │ │ │ ├── EmailDelivery.jsx +│ │ │ │ │ ├── EngagementAudiences.jsx +│ │ │ │ │ ├── EngagementRules.jsx +│ │ │ │ │ ├── EngagementSendLog.jsx +│ │ │ │ │ ├── EngagementSuppressions.jsx +│ │ │ │ │ ├── EngagementTemplates.jsx +│ │ │ │ │ ├── EngagementTriggers.jsx │ │ │ │ │ ├── HeroEditor.jsx │ │ │ │ │ ├── InvitesAdmin.jsx │ │ │ │ │ ├── Moderation.jsx @@ -231,13 +245,15 @@ website/ │ │ │ │ ├── ForgotPassword.jsx │ │ │ │ ├── PlayerAccount.jsx │ │ │ │ ├── PlayerAppeals.jsx +│ │ │ │ ├── PlayerInbox.jsx │ │ │ │ ├── PlayerLogin.jsx │ │ │ │ ├── PlayerNotifications.jsx │ │ │ │ ├── PlayerPortalLayout.jsx │ │ │ │ ├── PlayerRegister.jsx │ │ │ │ ├── PlayerShell.jsx │ │ │ │ ├── ResetPassword.jsx -│ │ │ │ └── Unsubscribe.jsx +│ │ │ │ ├── Unsubscribe.jsx +│ │ │ │ └── VerifyEmail.jsx │ │ │ ├── public/ │ │ │ │ ├── About.jsx │ │ │ │ ├── CmsPage.jsx @@ -260,6 +276,8 @@ website/ │ ├── test/ │ │ ├── adminNav.test.js │ │ ├── apiClient.test.js +│ │ ├── emailTemplates.test.js +│ │ ├── engagementRules.test.js │ │ ├── featureGate.test.js │ │ ├── format.test.js │ │ ├── heroLayout.test.js @@ -268,6 +286,7 @@ website/ │ │ ├── moduleRegistry.test.js │ │ ├── moduleSlots.test.js │ │ ├── navOverrides.test.js +│ │ ├── notificationPaths.test.js │ │ ├── pageShell.test.js │ │ ├── settingsJson.test.js │ │ ├── teamActivity.test.js @@ -292,12 +311,14 @@ website/ │ │ ├── sso-bridge-smoketest.js │ │ └── stub-idp.js │ ├── checkModuleIdentifiers.js +│ ├── checkNoExternalHosts.js │ └── sonar-test-reporter.mjs ├── server/ │ ├── db/ │ │ ├── schema.sql │ │ └── seed.js │ ├── scripts/ +│ │ ├── engagementManifest.js │ │ └── routeManifest.js │ ├── src/ │ │ ├── auth/ @@ -331,9 +352,46 @@ website/ │ │ ├── config/ │ │ │ ├── brand.js │ │ │ ├── coreStreams.js +│ │ │ ├── coreTriggers.js │ │ │ ├── csp.js │ │ │ ├── themePresets.js │ │ │ └── version.js +│ │ ├── emailBlocks/ +│ │ │ ├── types/ +│ │ │ │ ├── button.js +│ │ │ │ ├── divider.js +│ │ │ │ ├── heading.js +│ │ │ │ ├── image.js +│ │ │ │ ├── itemList.js +│ │ │ │ └── text.js +│ │ │ ├── index.js +│ │ │ ├── interpolate.js +│ │ │ ├── registry.js +│ │ │ ├── render.js +│ │ │ └── variables.js +│ │ ├── engagement/ +│ │ │ ├── transports/ +│ │ │ │ ├── index.js +│ │ │ │ └── smtp.js +│ │ │ ├── audiences.js +│ │ │ ├── bounceClassify.js +│ │ │ ├── channels.js +│ │ │ ├── conditions.js +│ │ │ ├── coreChannels.js +│ │ │ ├── coreRules.js +│ │ │ ├── coreScopePrefs.js +│ │ │ ├── emailChannel.js +│ │ │ ├── engine.js +│ │ │ ├── inappChannel.js +│ │ │ ├── index.js +│ │ │ ├── moduleSeeds.js +│ │ │ ├── projection.js +│ │ │ ├── pushChannel.js +│ │ │ ├── scopedPrefs.js +│ │ │ ├── segments.js +│ │ │ ├── suppressions.js +│ │ │ ├── templates.js +│ │ │ └── templateSeeds.js │ │ ├── middleware/ │ │ │ ├── botScore.js │ │ │ ├── loginProtection.js @@ -363,6 +421,25 @@ website/ │ │ │ ├── emailConfig/ │ │ │ │ ├── emailConfig.db.js │ │ │ │ └── emailConfig.model.js +│ │ │ ├── emailDedupe/ +│ │ │ │ ├── emailDedupe.db.js +│ │ │ │ └── emailDedupe.model.js +│ │ │ ├── emailVerifications/ +│ │ │ │ ├── emailVerifications.db.js +│ │ │ │ └── emailVerifications.model.js +│ │ │ ├── engagement/ +│ │ │ │ ├── engagementCooldowns.db.js +│ │ │ │ ├── engagementDigest.db.js +│ │ │ │ ├── engagementOutbox.db.js +│ │ │ │ ├── engagementRecipients.db.js +│ │ │ │ ├── engagementRules.db.js +│ │ │ │ ├── engagementRules.model.js +│ │ │ │ ├── engagementSegments.db.js +│ │ │ │ ├── engagementSegments.model.js +│ │ │ │ ├── engagementSends.db.js +│ │ │ │ ├── engagementSuppressions.db.js +│ │ │ │ ├── engagementTemplates.db.js +│ │ │ │ └── engagementTemplates.model.js │ │ │ ├── invites/ │ │ │ │ ├── invites.db.js │ │ │ │ └── invites.model.js @@ -382,6 +459,9 @@ website/ │ │ │ ├── modules/ │ │ │ │ ├── modules.db.js │ │ │ │ └── modules.model.js +│ │ │ ├── notificationChannelPrefs/ +│ │ │ │ ├── notificationChannelPrefs.db.js +│ │ │ │ └── notificationChannelPrefs.model.js │ │ │ ├── notificationSubs/ │ │ │ │ ├── notificationSubs.db.js │ │ │ │ └── notificationSubs.model.js @@ -440,6 +520,8 @@ website/ │ │ │ ├── userIdentities/ │ │ │ │ ├── userIdentities.db.js │ │ │ │ └── userIdentities.model.js +│ │ │ ├── userNotifications/ +│ │ │ │ └── userNotifications.db.js │ │ │ ├── users/ │ │ │ │ ├── users.db.js │ │ │ │ └── users.model.js @@ -450,6 +532,7 @@ website/ │ │ │ └── singletonConfigDb.js │ │ ├── modules/ │ │ │ ├── archive.js +│ │ │ ├── ceilings.js │ │ │ ├── declared.js │ │ │ ├── install.js │ │ │ ├── lifecycle.js @@ -461,8 +544,6 @@ website/ │ │ ├── router/ │ │ │ ├── v1/ │ │ │ │ ├── admin/ -│ │ │ │ │ ├── account.controller.js -│ │ │ │ │ ├── account.router.js │ │ │ │ │ ├── activity.router.js │ │ │ │ │ ├── admin.controller.js │ │ │ │ │ ├── authProviders.controller.js @@ -474,6 +555,8 @@ website/ │ │ │ │ │ ├── discordBot.router.js │ │ │ │ │ ├── email.router.js │ │ │ │ │ ├── emailConfig.controller.js +│ │ │ │ │ ├── engagement.controller.js +│ │ │ │ │ ├── engagement.router.js │ │ │ │ │ ├── imageUpload.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── invites.controller.js @@ -493,7 +576,10 @@ website/ │ │ │ │ │ ├── users.router.js │ │ │ │ │ └── wiki.router.js │ │ │ │ ├── auth/ +│ │ │ │ │ ├── account.controller.js │ │ │ │ │ ├── auth.controller.js +│ │ │ │ │ ├── emailVerify.controller.js +│ │ │ │ │ ├── emailVerify.router.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── invite.controller.js │ │ │ │ │ ├── invite.router.js @@ -517,7 +603,6 @@ website/ │ │ │ │ │ ├── internal.controller.js │ │ │ │ │ └── internal.routes.js │ │ │ │ ├── player/ -│ │ │ │ │ ├── account.router.js │ │ │ │ │ ├── appeals.controller.js │ │ │ │ │ ├── appeals.router.js │ │ │ │ │ ├── index.js @@ -526,6 +611,8 @@ website/ │ │ │ │ │ ├── teams.controller.js │ │ │ │ │ └── teams.router.js │ │ │ │ ├── public/ +│ │ │ │ │ ├── engagement.controller.js +│ │ │ │ │ ├── engagement.router.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── modules.controller.js │ │ │ │ │ ├── modules.router.js @@ -554,11 +641,14 @@ website/ │ │ │ ├── brandAssets.js │ │ │ ├── db.js │ │ │ ├── discordAnnounce.js +│ │ │ ├── engagementEmit.js +│ │ │ ├── engagementWorker.js │ │ │ ├── forumHtml.js │ │ │ ├── htmlShell.js │ │ │ ├── logger.js │ │ │ ├── mailer.js │ │ │ ├── navOverrides.js +│ │ │ ├── newsNotify.js │ │ │ ├── pushDispatch.js │ │ │ ├── reservedNames.js │ │ │ ├── sanitizeHtml.js @@ -575,7 +665,8 @@ website/ │ │ │ ├── themeResolve.js │ │ │ ├── totp.js │ │ │ ├── trustProxy.js -│ │ │ └── unsubscribeToken.js +│ │ │ ├── unsubscribeToken.js +│ │ │ └── userNotificationsPrune.js │ │ ├── app.js │ │ ├── internalApp.js │ │ └── server.js @@ -604,15 +695,31 @@ website/ │ │ ├── botScore.test.js │ │ ├── brandAssets.test.js │ │ ├── checkModuleIdentifiers.test.js +│ │ ├── checkNoExternalHosts.test.js │ │ ├── contentReports.test.js │ │ ├── csp.test.js +│ │ ├── emailCollisionSurfaces.test.js │ │ ├── emailConfig.model.test.js +│ │ ├── emailTemplates.test.js +│ │ ├── emailUniqueness.test.js +│ │ ├── emailVerification.test.js +│ │ ├── engagementAdmin.test.js +│ │ ├── engagementCeilings.test.js +│ │ ├── engagementDeliverability.test.js +│ │ ├── engagementEmail.test.js +│ │ ├── engagementEngine.test.js +│ │ ├── engagementEngineSql.test.js +│ │ ├── engagementInapp.test.js +│ │ ├── engagementManifest.test.js +│ │ ├── engagementTemplatesAdmin.test.js +│ │ ├── engagementTriggers.test.js │ │ ├── honeypot.test.js │ │ ├── htmlShell.test.js │ │ ├── inviteController.test.js │ │ ├── invites.test.js │ │ ├── loginProtection.test.js │ │ ├── mailer.test.js +│ │ ├── mailTransports.test.js │ │ ├── mobileAuthBridge.model.test.js │ │ ├── mobileDeviceSessions.test.js │ │ ├── mobileSession.test.js @@ -623,6 +730,7 @@ website/ │ │ ├── moduleClientChunk.test.js │ │ ├── moduleDeclared.test.js │ │ ├── moduleDocsSpec.test.js +│ │ ├── moduleEngagementSeeds.test.js │ │ ├── moduleInstall.test.js │ │ ├── moduleLifecycle.test.js │ │ ├── moduleLoader.test.js @@ -630,6 +738,8 @@ website/ │ │ ├── modules.model.test.js │ │ ├── moduleSchema.test.js │ │ ├── navOverrides.test.js +│ │ ├── newsNotify.test.js +│ │ ├── notificationChannelPrefs.test.js │ │ ├── notificationsRoutes.test.js │ │ ├── pages.model.test.js │ │ ├── passwordResetController.test.js @@ -654,6 +764,7 @@ website/ │ │ ├── settingsTheming.test.js │ │ ├── slashCommands.test.js │ │ ├── ssoCallback.test.js +│ │ ├── ssoEmailVerified.test.js │ │ ├── ssoState.test.js │ │ ├── ssoTrustedDevice.test.js │ │ ├── teamAccess.test.js @@ -674,13 +785,15 @@ website/ │ │ ├── totp.test.js │ │ ├── trustedDevices.test.js │ │ ├── trustProxy.test.js -│ │ └── usernamePolicy.test.js +│ │ ├── usernamePolicy.test.js +│ │ └── userNotificationsSql.test.js │ ├── tools/ │ │ └── cliloc-export/ │ │ ├── clilocexport.csproj │ │ ├── Program.cs │ │ └── README.md │ ├── .env.example +│ ├── engagement-triggers.json │ ├── package-lock.json │ ├── package.json │ ├── routes.guards.json -- 2.49.1