├── .nvmrc ├── packages ├── js │ ├── jest.setup.ts │ ├── .gitignore │ ├── package.esm.json │ ├── src │ │ ├── ui │ │ │ ├── api │ │ │ │ └── index.ts │ │ │ ├── themes │ │ │ │ └── index.ts │ │ │ ├── components │ │ │ │ ├── InboxTabs │ │ │ │ │ └── index.ts │ │ │ │ ├── elements │ │ │ │ │ ├── Bell │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Header │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Preferences │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ └── Notification │ │ │ │ │ └── index.ts │ │ │ ├── config │ │ │ │ └── index.ts │ │ │ └── internal │ │ │ │ └── index.ts │ │ ├── session │ │ │ └── index.ts │ │ ├── api │ │ │ └── index.ts │ │ ├── umd.ts │ │ ├── event-emitter │ │ │ └── index.ts │ │ ├── utils │ │ │ ├── is-browser.ts │ │ │ └── strings.ts │ │ ├── notifications │ │ │ └── index.ts │ │ ├── preferences │ │ │ └── index.ts │ │ ├── cache │ │ │ └── index.ts │ │ └── ws │ │ │ └── index.ts │ ├── package.cjs.json │ ├── scripts │ │ └── copy-package-json.sh │ ├── ui │ │ └── package.json │ ├── tsconfig.cjs.json │ ├── themes │ │ └── package.json │ ├── internal │ │ └── package.json │ ├── .vscode │ │ └── settings.json │ └── postcss.config.js ├── stateless │ ├── src │ │ └── types │ │ │ └── example.d.ts │ ├── .czrc │ ├── jest.config.js │ └── .gitignore ├── framework │ ├── scripts │ │ ├── schema_input.json │ │ └── schema_output.json │ ├── src │ │ ├── validators │ │ │ └── index.ts │ │ ├── resources │ │ │ ├── index.ts │ │ │ └── workflow │ │ │ │ └── index.ts │ │ ├── schemas │ │ │ └── index.ts │ │ ├── types │ │ │ ├── code.types.ts │ │ │ ├── skip.types.ts │ │ │ └── server.types.ts │ │ ├── globals.d.ts │ │ ├── constants │ │ │ ├── http-methods.constants.ts │ │ │ ├── resource.constants.ts │ │ │ └── http-query.constants.ts │ │ ├── filters │ │ │ ├── types.ts │ │ │ └── index.ts │ │ └── servers │ │ │ └── nest │ │ │ └── nest.constants.ts │ ├── h3 │ │ └── package.json │ ├── nest │ │ └── package.json │ ├── next │ │ └── package.json │ ├── nuxt │ │ └── package.json │ ├── lambda │ │ └── package.json │ ├── remix │ │ └── package.json │ ├── express │ │ └── package.json │ ├── internal │ │ └── package.json │ └── sveltekit │ │ └── package.json ├── shared │ ├── .dockerignore │ └── src │ │ ├── ui │ │ ├── index.ts │ │ └── marketing.ts │ │ ├── dto │ │ ├── layout │ │ │ └── index.ts │ │ ├── shared │ │ │ └── index.ts │ │ ├── events │ │ │ └── index.ts │ │ ├── session │ │ │ └── index.ts │ │ ├── bridge │ │ │ ├── index.ts │ │ │ └── bridge.interface.ts │ │ ├── environments │ │ │ ├── index.ts │ │ │ └── tags.interface.ts │ │ ├── pagination │ │ │ └── index.ts │ │ ├── subscriber │ │ │ └── index.ts │ │ ├── message-template │ │ │ └── index.ts │ │ ├── subscription │ │ │ └── index.ts │ │ ├── stateless-control-values │ │ │ └── index.ts │ │ ├── topic │ │ │ └── index.ts │ │ ├── workflows │ │ │ ├── promote-workflow-dto.ts │ │ │ └── workflow-status-enum.ts │ │ ├── notification-templates │ │ │ └── index.ts │ │ ├── tenant │ │ │ └── index.ts │ │ ├── widget │ │ │ └── index.ts │ │ └── integration │ │ │ └── index.ts │ │ ├── entities │ │ ├── log │ │ │ └── index.ts │ │ ├── actor │ │ │ ├── index.ts │ │ │ └── actor.interface.ts │ │ ├── apiKeys │ │ │ ├── index.ts │ │ │ └── apiKeys.interface.ts │ │ ├── change │ │ │ └── index.ts │ │ ├── layout │ │ │ └── index.ts │ │ ├── messages │ │ │ └── index.ts │ │ ├── tenant │ │ │ └── index.ts │ │ ├── activity-feed │ │ │ └── index.ts │ │ ├── environment │ │ │ └── index.ts │ │ ├── notification │ │ │ ├── index.ts │ │ │ └── notification.interface.ts │ │ ├── execution-details │ │ │ └── index.ts │ │ ├── message-template │ │ │ └── index.ts │ │ ├── notification-group │ │ │ └── index.ts │ │ ├── workflow-override │ │ │ └── index.ts │ │ ├── job │ │ │ └── index.ts │ │ ├── notification-trigger │ │ │ └── index.ts │ │ ├── notification-template │ │ │ └── index.ts │ │ ├── subscriber-preference │ │ │ └── index.ts │ │ ├── workflow-run │ │ │ └── index.ts │ │ ├── user │ │ │ ├── index.ts │ │ │ ├── user.enums.ts │ │ │ └── subscriber-user.interface.ts │ │ ├── organization │ │ │ └── index.ts │ │ └── integration │ │ │ └── index.ts │ │ ├── services │ │ ├── index.ts │ │ └── feature-flags │ │ │ └── index.ts │ │ ├── utils │ │ ├── slugify │ │ │ └── index.ts │ │ └── locales │ │ │ └── index.ts │ │ ├── webhooks │ │ └── index.ts │ │ ├── consts │ │ ├── preferences │ │ │ └── index.ts │ │ ├── rate-limiting │ │ │ └── index.ts │ │ ├── filters │ │ │ └── index.ts │ │ ├── translation │ │ │ └── index.ts │ │ ├── notification-item-buttons │ │ │ └── index.ts │ │ ├── password-helper │ │ │ ├── index.ts │ │ │ └── PasswordResetFlowEnum.ts │ │ ├── inviteTeamMemberNudge.ts │ │ ├── providers │ │ │ ├── credentials │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── channels │ │ │ │ └── index.ts │ │ └── severity.ts │ │ ├── types │ │ ├── workflow-override.ts │ │ ├── resource-limiting.ts │ │ ├── storage.ts │ │ ├── topic.ts │ │ ├── secrets.ts │ │ ├── controls.ts │ │ ├── layout.ts │ │ ├── ws.ts │ │ └── billing.ts │ │ └── config │ │ └── index.ts ├── novu │ └── src │ │ ├── client │ │ └── index.ts │ │ ├── constants │ │ └── index.ts │ │ ├── dev-server │ │ └── index.ts │ │ ├── commands │ │ ├── index.ts │ │ ├── dev │ │ │ └── index.ts │ │ └── init │ │ │ └── templates │ │ │ └── app-react-email │ │ │ └── ts │ │ │ ├── eslintrc.json │ │ │ ├── app │ │ │ ├── novu │ │ │ │ └── workflows │ │ │ │ │ ├── index.ts │ │ │ │ │ └── welcome-onboarding-email │ │ │ │ │ └── index.ts │ │ │ └── favicon.ico │ │ │ ├── postcss.config.cjs │ │ │ ├── next.config.mjs │ │ │ └── public │ │ │ └── vercel.svg │ │ └── services │ │ └── index.ts ├── providers │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── sms │ │ │ └── imedia │ │ │ │ └── index.ts │ │ │ └── index.ts │ ├── .czrc │ └── .gitignore ├── react-native │ └── src │ │ └── index.ts ├── react │ ├── src │ │ ├── themes │ │ │ └── index.ts │ │ └── internal │ │ │ └── index.ts │ ├── hooks │ │ └── package.json │ ├── server │ │ └── package.json │ ├── themes │ │ └── package.json │ └── internal │ │ └── package.json ├── nextjs │ ├── src │ │ ├── hooks │ │ │ └── index.ts │ │ └── themes │ │ │ └── index.ts │ ├── server │ │ └── package.json │ ├── hooks │ │ └── package.json │ └── themes │ │ └── package.json └── add-inbox │ └── src │ └── generators │ └── frameworks │ └── index.ts ├── apps ├── webhook │ ├── e2e │ │ └── mocha.e2e.opts │ └── src │ │ ├── shared │ │ ├── constants.ts │ │ └── helpers │ │ │ └── regex.service.ts │ │ ├── main.ts │ │ ├── webhooks │ │ ├── interfaces │ │ │ └── webhook.interface.ts │ │ └── dtos │ │ │ └── webhooks-response.dto.ts │ │ ├── .env.test │ │ ├── .example.env │ │ └── app.service.ts ├── inbound-mail │ └── src │ │ ├── python │ │ ├── DNS │ │ │ ├── Lib.py │ │ │ └── Type.py │ │ └── dkim │ │ │ ├── .__init__.py.swo │ │ │ └── __main__.py │ │ └── config │ │ └── index.ts ├── web │ ├── src │ │ ├── ee │ │ │ ├── translations │ │ │ │ ├── icons │ │ │ │ │ └── flags │ │ │ │ │ │ └── eskib │ │ │ │ └── index.ts │ │ │ ├── editor │ │ │ │ └── index.ts │ │ │ ├── billing │ │ │ │ └── utils │ │ │ │ │ ├── formatCurrency.ts │ │ │ │ │ ├── hubspot.constants.ts │ │ │ │ │ └── capitalize.ts │ │ │ └── clerk │ │ │ │ └── index.ts │ │ ├── utils │ │ │ ├── index copy.ts │ │ │ ├── iframe.ts │ │ │ ├── string.ts │ │ │ └── create-hash.ts │ │ ├── components │ │ │ ├── Timeline │ │ │ │ └── index.ts │ │ │ ├── shared │ │ │ │ └── index.tsx │ │ │ ├── layout │ │ │ │ ├── constants.ts │ │ │ │ └── components │ │ │ │ │ ├── Header.tsx │ │ │ │ │ ├── LocalStudioHeader │ │ │ │ │ └── index.ts │ │ │ │ │ ├── LocalStudioSidebar │ │ │ │ │ └── index.ts │ │ │ │ │ └── PageContainer.tsx │ │ │ ├── quick-start │ │ │ │ ├── common │ │ │ │ │ └── index.ts │ │ │ │ ├── in-app-onboarding │ │ │ │ │ └── index.ts │ │ │ │ ├── digest-demo-flow │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── workflow │ │ │ │ ├── preview │ │ │ │ │ ├── email │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── Skeleton │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── common │ │ │ │ │ │ ├── phone-simulator │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── icons │ │ │ │ │ │ │ ├── android │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── iphone │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── push │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── sms │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── chat │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── in-app │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── nav │ │ │ │ ├── EnvironmentSelect │ │ │ │ │ └── index.ts │ │ │ │ ├── OrganizationSelect │ │ │ │ │ └── index.ts │ │ │ │ └── NavMenuButton │ │ │ │ │ └── index.ts │ │ │ ├── conditions │ │ │ │ └── index.ts │ │ │ ├── utils │ │ │ │ └── When.tsx │ │ │ ├── index.ts │ │ │ └── settings │ │ │ │ └── index.ts │ │ ├── pages │ │ │ ├── activities │ │ │ │ ├── consts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── mock │ │ │ │ │ │ └── index.ts │ │ │ │ └── services │ │ │ │ │ ├── index.ts │ │ │ │ │ └── chart-bar │ │ │ │ │ └── index.ts │ │ │ ├── settings │ │ │ │ ├── tabs │ │ │ │ │ └── index.ts │ │ │ │ ├── ApiKeysPage │ │ │ │ │ └── index.ts │ │ │ │ ├── WebhookPage │ │ │ │ │ ├── index.ts │ │ │ │ │ └── WebhookPage.types.ts │ │ │ │ ├── components │ │ │ │ │ └── index.ts │ │ │ │ ├── organization │ │ │ │ │ └── index.ts │ │ │ │ └── user-profile-page │ │ │ │ │ └── index.ts │ │ │ ├── integrations │ │ │ │ └── components │ │ │ │ │ ├── v2 │ │ │ │ │ └── index.ts │ │ │ │ │ └── multi-provider │ │ │ │ │ └── v2 │ │ │ │ │ └── index.ts │ │ │ └── templates │ │ │ │ └── components │ │ │ │ └── templates-store │ │ │ │ └── index.ts │ │ ├── react-app-env.d.ts │ │ ├── studio │ │ │ ├── constants │ │ │ │ ├── index.ts │ │ │ │ └── EnvironmentEnum.ts │ │ │ ├── utils │ │ │ │ └── index.ts │ │ │ ├── hooks │ │ │ │ └── useStudioState.ts │ │ │ ├── layout │ │ │ │ └── index.ts │ │ │ └── components │ │ │ │ └── workflows │ │ │ │ ├── preferences │ │ │ │ └── index.ts │ │ │ │ └── layout │ │ │ │ └── index.ts │ │ ├── index.css │ │ ├── hooks │ │ │ ├── useAuth.ts │ │ │ ├── useEnvironment.ts │ │ │ └── useDataRef.ts │ │ ├── types │ │ │ ├── index.ts │ │ │ ├── FCBase.ts │ │ │ └── FCWithChildren.ts │ │ ├── api │ │ │ ├── index.ts │ │ │ ├── invitation.ts │ │ │ ├── notification-groups.ts │ │ │ └── bridge.ts │ │ ├── constants │ │ │ ├── workflowConstants.ts │ │ │ └── BaseEnvironmentEnum.ts │ │ └── emotion.d.ts │ ├── .vscode │ │ └── settings.json │ ├── public │ │ ├── favicon.ico │ │ ├── warning.png │ │ ├── robots.txt │ │ ├── favicon-gradient.png │ │ ├── warning-underline.png │ │ ├── static │ │ │ └── images │ │ │ │ ├── logo.webp │ │ │ │ ├── novu.png │ │ │ │ ├── avatar.webp │ │ │ │ ├── signin_bg.webp │ │ │ │ ├── logo-light.webp │ │ │ │ ├── frameworks │ │ │ │ ├── js.webp │ │ │ │ ├── vue.webp │ │ │ │ ├── react.webp │ │ │ │ └── angular.webp │ │ │ │ ├── novu-colored-text.png │ │ │ │ ├── providers │ │ │ │ ├── dark │ │ │ │ │ ├── apns.png │ │ │ │ │ ├── nexmo.png │ │ │ │ │ ├── novu.png │ │ │ │ │ ├── plivo.png │ │ │ │ │ ├── plunk.png │ │ │ │ │ ├── ryver.png │ │ │ │ │ ├── sinch.png │ │ │ │ │ ├── 46elks.png │ │ │ │ │ ├── bulk-sms.png │ │ │ │ │ ├── gupshup.png │ │ │ │ │ ├── infobip.png │ │ │ │ │ ├── kannel.png │ │ │ │ │ ├── mailjet.png │ │ │ │ │ ├── maqsam.png │ │ │ │ │ ├── netcore.png │ │ │ │ │ ├── postmark.png │ │ │ │ │ ├── sendgrid.png │ │ │ │ │ ├── telnyx.png │ │ │ │ │ ├── termii.png │ │ │ │ │ ├── twilio.png │ │ │ │ │ ├── azure-sms.png │ │ │ │ │ ├── bandwidth.png │ │ │ │ │ ├── clickatell.png │ │ │ │ │ ├── clicksend.png │ │ │ │ │ ├── isend-sms.png │ │ │ │ │ ├── outlook365.png │ │ │ │ │ ├── sendinblue.png │ │ │ │ │ ├── messagebird.png │ │ │ │ │ ├── mobishastra.png │ │ │ │ │ ├── simpletexting.png │ │ │ │ │ ├── sms-central.png │ │ │ │ │ └── grafana-on-call.png │ │ │ │ └── light │ │ │ │ │ ├── apns.png │ │ │ │ │ ├── novu.png │ │ │ │ │ ├── sinch.png │ │ │ │ │ ├── 46elks.png │ │ │ │ │ ├── gupshup.png │ │ │ │ │ ├── infobip.png │ │ │ │ │ ├── kannel.png │ │ │ │ │ ├── mailjet.png │ │ │ │ │ ├── maqsam.png │ │ │ │ │ ├── netcore.png │ │ │ │ │ ├── nexmo.png │ │ │ │ │ ├── plivo.png │ │ │ │ │ ├── plunk.png │ │ │ │ │ ├── ryver.png │ │ │ │ │ ├── telnyx.png │ │ │ │ │ ├── termii.png │ │ │ │ │ ├── twilio.png │ │ │ │ │ ├── azure-sms.png │ │ │ │ │ ├── bandwidth.png │ │ │ │ │ ├── bulk-sms.png │ │ │ │ │ ├── clicksend.png │ │ │ │ │ ├── isend-sms.png │ │ │ │ │ ├── postmark.png │ │ │ │ │ ├── sendgrid.png │ │ │ │ │ ├── clickatell.png │ │ │ │ │ ├── messagebird.png │ │ │ │ │ ├── mobishastra.png │ │ │ │ │ ├── outlook365.png │ │ │ │ │ ├── sendinblue.png │ │ │ │ │ ├── sms-central.png │ │ │ │ │ ├── simpletexting.png │ │ │ │ │ └── grafana-on-call.png │ │ │ │ ├── mobilePreview │ │ │ │ ├── android.webp │ │ │ │ └── iphone.webp │ │ │ │ ├── notifications │ │ │ │ ├── notification_01.webp │ │ │ │ ├── notification_02.webp │ │ │ │ └── notification_03.webp │ │ │ │ └── onboarding │ │ │ │ └── collaborate-controls.png │ │ └── animations │ │ │ └── get-started │ │ │ ├── delay.riv │ │ │ ├── digest.riv │ │ │ ├── in-app.riv │ │ │ ├── translation.riv │ │ │ └── multi-channel.riv │ ├── postcss.config.cjs │ └── tests │ │ ├── fixtures │ │ └── test-logo.png │ │ └── page-models │ │ └── editorState.ts ├── api │ ├── src │ │ ├── app │ │ │ ├── inbox │ │ │ │ └── utils │ │ │ │ │ └── index.ts │ │ │ ├── content-templates │ │ │ │ └── usecases │ │ │ │ │ └── parse-preview │ │ │ │ │ ├── preview-email.command.ts │ │ │ │ │ └── preview-email.usecase.ts │ │ │ ├── shared │ │ │ │ ├── usecases │ │ │ │ │ ├── index.ts │ │ │ │ │ └── create-variables-object │ │ │ │ │ │ └── index.ts │ │ │ │ ├── helpers │ │ │ │ │ ├── utils │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── regex.service.ts │ │ │ │ ├── framework │ │ │ │ │ └── constants │ │ │ │ │ │ └── index.ts │ │ │ │ ├── services │ │ │ │ │ └── encryption │ │ │ │ │ │ └── index.ts │ │ │ │ ├── transformers │ │ │ │ │ └── trim.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── dtos │ │ │ │ │ ├── api-key.ts │ │ │ │ │ └── widget-settings.ts │ │ │ │ └── types.ts │ │ │ ├── workflows-v1 │ │ │ │ └── queries │ │ │ │ │ ├── index.ts │ │ │ │ │ └── CreateWorkflowQuery.ts │ │ │ ├── widgets │ │ │ │ ├── usecases │ │ │ │ │ └── mark-all-message-as-seen │ │ │ │ │ │ └── mark-all-message-as-seen.usecase.ts │ │ │ │ ├── queries │ │ │ │ │ ├── store.query.ts │ │ │ │ │ └── get-count.query.ts │ │ │ │ └── dtos │ │ │ │ │ ├── log-usage-response.dto.ts │ │ │ │ │ └── unseen-count-response.dto.ts │ │ │ ├── bridge │ │ │ │ ├── dtos │ │ │ │ │ └── create-bridge-response.dto.ts │ │ │ │ ├── index.ts │ │ │ │ └── usecases │ │ │ │ │ ├── sync │ │ │ │ │ └── index.ts │ │ │ │ │ ├── store-control-values │ │ │ │ │ └── index.ts │ │ │ │ │ ├── preview-step │ │ │ │ │ └── index.ts │ │ │ │ │ └── get-bridge-status │ │ │ │ │ └── index.ts │ │ │ ├── preferences │ │ │ │ └── index.ts │ │ │ ├── change │ │ │ │ ├── usecases │ │ │ │ │ ├── shared │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── promote-layout-change │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── promote-translation-change │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── promote-translation-group-change │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── apply-change │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── promote-notification-template-change │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── promote-type-change.command.ts │ │ │ │ │ └── promote-change-to-environment │ │ │ │ │ │ └── index.ts │ │ │ │ └── dtos │ │ │ │ │ └── bulk-apply-change.dto.ts │ │ │ ├── subscribers │ │ │ │ ├── params │ │ │ │ │ └── index.ts │ │ │ │ └── usecases │ │ │ │ │ ├── get-subscriber │ │ │ │ │ └── index.ts │ │ │ │ │ ├── get-subscribers │ │ │ │ │ └── index.ts │ │ │ │ │ ├── remove-subscriber │ │ │ │ │ └── index.ts │ │ │ │ │ ├── get-subscriber-preference │ │ │ │ │ └── index.ts │ │ │ │ │ ├── delete-subscriber-credentials │ │ │ │ │ └── index.ts │ │ │ │ │ ├── update-subscriber-online-flag │ │ │ │ │ └── index.ts │ │ │ │ │ ├── get-subscriber-global-preference │ │ │ │ │ └── index.ts │ │ │ │ │ └── search-by-external-subscriber-ids │ │ │ │ │ └── index.ts │ │ │ ├── layouts-v2 │ │ │ │ ├── types │ │ │ │ │ └── index.ts │ │ │ │ └── usecases │ │ │ │ │ ├── get-layout │ │ │ │ │ └── index.ts │ │ │ │ │ ├── list-layouts │ │ │ │ │ └── index.ts │ │ │ │ │ ├── delete-layout │ │ │ │ │ └── index.ts │ │ │ │ │ ├── preview-layout │ │ │ │ │ └── index.ts │ │ │ │ │ ├── upsert-layout │ │ │ │ │ └── index.ts │ │ │ │ │ ├── get-layout-usage │ │ │ │ │ └── index.ts │ │ │ │ │ ├── duplicate-layout │ │ │ │ │ └── index.ts │ │ │ │ │ ├── layout-variables-schema │ │ │ │ │ └── index.ts │ │ │ │ │ └── sync-to-environment │ │ │ │ │ └── index.ts │ │ │ ├── rate-limiting │ │ │ │ ├── guards │ │ │ │ │ └── index.ts │ │ │ │ └── usecases │ │ │ │ │ ├── get-api-rate-limit-cost-config │ │ │ │ │ └── index.ts │ │ │ │ │ ├── get-api-rate-limit-algorithm-config │ │ │ │ │ └── index.ts │ │ │ │ │ └── get-api-rate-limit-maximum │ │ │ │ │ └── index.ts │ │ │ ├── integrations │ │ │ │ ├── dtos │ │ │ │ │ └── auto-configure-integration-request.dto.ts │ │ │ │ └── usecases │ │ │ │ │ └── generate-chat-oath-url │ │ │ │ │ └── chat-oauth.constants.ts │ │ │ ├── support │ │ │ │ └── usecases │ │ │ │ │ └── index.ts │ │ │ ├── workflows-v2 │ │ │ │ ├── usecases │ │ │ │ │ ├── preview │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── get-workflow │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── list-workflows │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── build-step-data │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── patch-workflow │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── upsert-workflow │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── duplicate-workflow │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── sync-to-environment │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── build-test-data │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── build-variable-schema │ │ │ │ │ │ └── index.ts │ │ │ │ └── shared │ │ │ │ │ └── index.ts │ │ │ ├── topics-v1 │ │ │ │ ├── use-cases │ │ │ │ │ ├── get-topic │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── create-topic │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── delete-topic │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── rename-topic │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── filter-topics │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── add-subscribers │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── remove-subscribers │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── get-topic-subscriber │ │ │ │ │ │ └── index.ts │ │ │ │ └── dtos │ │ │ │ │ └── get-topic.dto.ts │ │ │ ├── user │ │ │ │ └── usecases │ │ │ │ │ └── create-user │ │ │ │ │ └── index.ts │ │ │ ├── contexts │ │ │ │ └── usecases │ │ │ │ │ ├── get-context │ │ │ │ │ └── index.ts │ │ │ │ │ ├── list-contexts │ │ │ │ │ └── index.ts │ │ │ │ │ ├── create-context │ │ │ │ │ └── index.ts │ │ │ │ │ ├── delete-context │ │ │ │ │ └── index.ts │ │ │ │ │ └── update-context │ │ │ │ │ └── index.ts │ │ │ ├── environments-v2 │ │ │ │ ├── usecases │ │ │ │ │ ├── sync-strategies │ │ │ │ │ │ ├── base │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── operations │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── diff-environment │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── publish-environment │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── get-environment-tags │ │ │ │ │ │ └── index.ts │ │ │ │ ├── services │ │ │ │ │ └── index.ts │ │ │ │ └── dtos │ │ │ │ │ └── index.ts │ │ │ ├── blueprint │ │ │ │ └── usecases │ │ │ │ │ ├── get-blueprint │ │ │ │ │ └── index.ts │ │ │ │ │ └── get-grouped-blueprints │ │ │ │ │ └── index.ts │ │ │ ├── messages │ │ │ │ ├── usecases │ │ │ │ │ ├── get-messages │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── remove-message │ │ │ │ │ │ └── index.ts │ │ │ │ └── params │ │ │ │ │ └── delete-message.param.ts │ │ │ ├── events │ │ │ │ ├── usecases │ │ │ │ │ ├── send-test-email │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── cancel-delayed │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── trigger-event-to-all │ │ │ │ │ │ └── index.ts │ │ │ │ └── e2e │ │ │ │ │ └── utils │ │ │ │ │ └── sleep.util.ts │ │ │ ├── layouts-v1 │ │ │ │ ├── usecases │ │ │ │ │ ├── create-layout │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── delete-layout │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── filter-layouts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── update-layout │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── find-deleted-layout │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── set-default-layout │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── check-layout-is-used │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── create-default-layout │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── create-layout-change │ │ │ │ │ │ └── index.ts │ │ │ │ └── dtos │ │ │ │ │ └── get-layout.dto.ts │ │ │ ├── auth │ │ │ │ ├── usecases │ │ │ │ │ ├── switch-environment │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── switch-organization │ │ │ │ │ │ └── index.ts │ │ │ │ └── framework │ │ │ │ │ └── external-api.decorator.ts │ │ │ ├── environments-v1 │ │ │ │ └── usecases │ │ │ │ │ ├── get-environment │ │ │ │ │ └── index.ts │ │ │ │ │ ├── delete-environment │ │ │ │ │ └── index.ts │ │ │ │ │ └── construct-framework-workflow │ │ │ │ │ └── index.ts │ │ │ ├── storage │ │ │ │ └── usecases │ │ │ │ │ └── index.ts │ │ │ ├── inbound-parse │ │ │ │ └── usecases │ │ │ │ │ └── index.ts │ │ │ ├── subscriptions │ │ │ │ └── usecases │ │ │ │ │ ├── create-subscriptions │ │ │ │ │ └── index.ts │ │ │ │ │ ├── update-subscription │ │ │ │ │ └── index.ts │ │ │ │ │ └── create-subscription-preferences │ │ │ │ │ └── index.ts │ │ │ ├── organization │ │ │ │ └── dtos │ │ │ │ │ ├── get-my-organization.dto.ts │ │ │ │ │ └── get-organizations.dto.ts │ │ │ ├── topics-v2 │ │ │ │ └── usecases │ │ │ │ │ ├── delete-topic-subscriptions │ │ │ │ │ └── index.ts │ │ │ │ │ └── list-subscriber-subscriptions │ │ │ │ │ └── index.ts │ │ │ ├── activity │ │ │ │ └── usecases │ │ │ │ │ ├── build-total-interactions-chart │ │ │ │ │ └── index.ts │ │ │ │ │ ├── build-workflow-by-volume-chart │ │ │ │ │ └── index.ts │ │ │ │ │ └── build-workflow-runs-trend-chart │ │ │ │ │ └── index.ts │ │ │ ├── message-template │ │ │ │ └── usecases │ │ │ │ │ └── find-message-templates-by-layout │ │ │ │ │ └── index.ts │ │ │ └── notifications │ │ │ │ └── usecases │ │ │ │ └── get-activity-stats │ │ │ │ └── index.ts │ │ ├── main.ts │ │ └── config │ │ │ └── index.ts │ └── webpack.config.js ├── dashboard │ ├── tests │ │ └── package.json │ ├── src │ │ ├── vite-env.d.ts │ │ ├── components │ │ │ ├── schema-editor │ │ │ │ ├── types │ │ │ │ │ └── index.ts │ │ │ │ ├── json-schema.ts │ │ │ │ └── index.ts │ │ │ ├── workflow-editor │ │ │ │ ├── control-input │ │ │ │ │ └── index.ts │ │ │ │ ├── payload-schema │ │ │ │ │ ├── utils │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── hooks │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ └── test-workflow │ │ │ │ │ └── types.ts │ │ │ ├── welcome │ │ │ │ └── inbox-framework-guide │ │ │ │ │ └── types.ts │ │ │ ├── billing │ │ │ │ └── utils │ │ │ │ │ ├── action.button.constants.ts │ │ │ │ │ └── hubspot.constants.ts │ │ │ ├── side-navigation │ │ │ │ └── organization-dropdown.tsx │ │ │ ├── translations │ │ │ │ └── translation-drawer │ │ │ │ │ └── hooks │ │ │ │ │ └── index.ts │ │ │ └── ai-drawer │ │ │ │ └── index.ts │ │ ├── context │ │ │ ├── segment │ │ │ │ └── index.ts │ │ │ ├── escape-key-manager │ │ │ │ └── priority.ts │ │ │ └── auth │ │ │ │ └── hooks.ts │ │ ├── routes │ │ │ └── index.ts │ │ ├── utils │ │ │ └── titleize.ts │ │ └── pages │ │ │ └── create-layout.tsx │ ├── public │ │ ├── favicon.ico │ │ ├── images │ │ │ ├── opt-in.png │ │ │ ├── logo-light.webp │ │ │ ├── signin_bg.webp │ │ │ ├── novu-branding.png │ │ │ ├── severity │ │ │ │ ├── high.webp │ │ │ │ ├── low.webp │ │ │ │ └── medium.webp │ │ │ ├── auth │ │ │ │ ├── chat-preview.webp │ │ │ │ ├── email-preview.webp │ │ │ │ ├── push-preview.webp │ │ │ │ ├── sms-preview.webp │ │ │ │ ├── in_app-preview.webp │ │ │ │ └── in_app-preview-v3.webp │ │ │ ├── email-editor │ │ │ │ ├── logo.png │ │ │ │ ├── linkedin.png │ │ │ │ ├── twitter.png │ │ │ │ ├── youtube.png │ │ │ │ ├── header-hero-image.webp │ │ │ │ ├── digest-block-preview.webp │ │ │ │ ├── html-block-preview.webp │ │ │ │ ├── footer-minimal-text-preview.png │ │ │ │ ├── footer-text-with-logo-preview.png │ │ │ │ ├── header-logo-with-text-preview.png │ │ │ │ ├── paragraph-with-image-preview.webp │ │ │ │ ├── footer-logo-with-simple-text-preview.png │ │ │ │ ├── horizontal-card-with-image-preview.webp │ │ │ │ └── information-card-with-logo-preview.webp │ │ │ ├── welcome │ │ │ │ ├── compliance.png │ │ │ │ ├── view_code.png │ │ │ │ └── calendar_schedule.png │ │ │ ├── translation-onboarding-1.jpg │ │ │ ├── translations-onboarding.png │ │ │ └── notifications │ │ │ │ ├── notification_01.webp │ │ │ │ ├── notification_02.webp │ │ │ │ └── notification_03.webp │ │ └── favicon-gradient.png │ └── postcss.config.js ├── ws │ └── src │ │ ├── shared │ │ ├── constants.ts │ │ ├── subscriber-online │ │ │ └── index.ts │ │ └── helpers │ │ │ └── regex.service.ts │ │ ├── main.ts │ │ ├── config │ │ └── index.ts │ │ ├── socket │ │ └── usecases │ │ │ └── external-services-route │ │ │ └── index.ts │ │ └── app.service.ts └── worker │ ├── src │ ├── main.ts │ ├── app │ │ ├── shared │ │ │ └── utils │ │ │ │ ├── exceptions.ts │ │ │ │ ├── constants.ts │ │ │ │ └── index.ts │ │ └── workflow │ │ │ └── usecases │ │ │ ├── send-message │ │ │ └── throttle │ │ │ │ └── index.ts │ │ │ ├── run-job │ │ │ └── index.ts │ │ │ ├── process-unsnooze-job │ │ │ └── index.ts │ │ │ ├── store-subscriber-jobs │ │ │ └── index.ts │ │ │ ├── queue-next-job │ │ │ └── index.ts │ │ │ ├── webhook-filter-backoff-strategy │ │ │ ├── event-job.dto.ts │ │ │ └── index.ts │ │ │ └── execute-bridge-job │ │ │ └── index.ts │ └── config │ │ └── index.ts │ ├── webpack.config.js │ └── .mocharc.json ├── libs ├── internal-sdk │ ├── sources │ │ └── temp.json │ ├── .gitattributes │ ├── postman │ │ └── .gitignore │ ├── src │ │ ├── sdk │ │ │ └── index.ts │ │ └── hooks │ │ │ └── index.ts │ ├── temp │ │ └── example.ts │ ├── examples │ │ └── .env.template │ └── core.js.map ├── dal │ ├── .dockerignore │ └── src │ │ ├── shared │ │ ├── consts │ │ │ └── index.ts │ │ ├── types │ │ │ ├── index.ts │ │ │ └── index.type.ts │ │ ├── exceptions │ │ │ ├── index.ts │ │ │ └── dal.exception.ts │ │ └── index.ts │ │ ├── types │ │ ├── sort-order.ts │ │ ├── error.enum.ts │ │ ├── helpers.ts │ │ └── auth.ts │ │ └── repositories │ │ ├── index.ts │ │ ├── user │ │ └── types.ts │ │ ├── tenant │ │ ├── types.ts │ │ └── index.ts │ │ ├── environment │ │ ├── types.ts │ │ └── index.ts │ │ ├── organization │ │ └── types.ts │ │ ├── workflow-override │ │ └── types.ts │ │ ├── integration │ │ └── index.ts │ │ ├── feed │ │ └── index.ts │ │ ├── job │ │ └── index.ts │ │ ├── layout │ │ └── index.ts │ │ ├── change │ │ └── index.ts │ │ ├── context │ │ └── index.ts │ │ ├── message │ │ └── index.ts │ │ ├── notification-template │ │ └── index.ts │ │ ├── preferences │ │ └── index.ts │ │ ├── localization │ │ └── index.ts │ │ ├── control-values │ │ └── index.ts │ │ ├── channel-endpoint │ │ └── index.ts │ │ ├── execution-details │ │ └── index.ts │ │ ├── subscriber │ │ └── index.ts │ │ ├── channel-connection │ │ └── index.ts │ │ ├── localization-group │ │ └── index.ts │ │ └── notification-group │ │ └── index.ts ├── testing │ ├── .dockerignore │ └── src │ │ ├── constants.ts │ │ └── utils │ │ └── index.ts ├── application-generic │ ├── src │ │ ├── commands │ │ │ ├── commandValidationException.ts │ │ │ └── index.ts │ │ ├── config │ │ │ └── index.ts │ │ ├── resilience │ │ │ └── index.ts │ │ ├── services │ │ │ ├── workers │ │ │ │ ├── inbound-parse-worker.service.ts │ │ │ │ └── completed-jobs-metric-worker.service.ts │ │ │ ├── bull-mq │ │ │ │ └── index.ts │ │ │ ├── feature-flags │ │ │ │ └── index.ts │ │ │ ├── calculate-delay │ │ │ │ └── index.ts │ │ │ ├── cron │ │ │ │ ├── cron.constants.ts │ │ │ │ └── index.ts │ │ │ ├── auth │ │ │ │ └── index.ts │ │ │ ├── socket-worker │ │ │ │ └── index.ts │ │ │ ├── readiness │ │ │ │ └── index.ts │ │ │ ├── throttle │ │ │ │ └── index.ts │ │ │ ├── analytic-logs │ │ │ │ ├── step-run │ │ │ │ │ └── index.ts │ │ │ │ ├── trace-log │ │ │ │ │ └── index.ts │ │ │ │ ├── request-log │ │ │ │ │ └── index.ts │ │ │ │ └── workflow-run │ │ │ │ │ └── index.ts │ │ │ └── cache │ │ │ │ ├── key-builders │ │ │ │ └── index.ts │ │ │ │ └── interceptors │ │ │ │ └── index.ts │ │ ├── utils │ │ │ ├── base62 │ │ │ │ └── index.ts │ │ │ ├── exceptions.ts │ │ │ ├── variants │ │ │ │ └── index.ts │ │ │ └── subscription.ts │ │ ├── webhooks │ │ │ ├── utils │ │ │ │ └── index.ts │ │ │ ├── mappers │ │ │ │ └── index.ts │ │ │ ├── services │ │ │ │ └── index.ts │ │ │ ├── usecases │ │ │ │ ├── index.ts │ │ │ │ └── send-webhook-message │ │ │ │ │ └── index.ts │ │ │ ├── dtos │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── encryption │ │ │ └── index.ts │ │ ├── instrumentation │ │ │ └── index.ts │ │ ├── schemas │ │ │ └── channel-endpoint │ │ │ │ └── index.ts │ │ ├── http │ │ │ └── index.ts │ │ ├── tracing │ │ │ └── index.ts │ │ ├── usecases │ │ │ ├── subscribers │ │ │ │ ├── index.ts │ │ │ │ ├── types │ │ │ │ │ └── index.ts │ │ │ │ └── update-subscriber-channel │ │ │ │ │ └── index.ts │ │ │ ├── trigger-base │ │ │ │ └── index.ts │ │ │ ├── get-tenant │ │ │ │ └── index.ts │ │ │ ├── create-change │ │ │ │ └── index.ts │ │ │ ├── create-tenant │ │ │ │ └── index.ts │ │ │ ├── select-variant │ │ │ │ └── index.ts │ │ │ ├── trigger-event │ │ │ │ └── index.ts │ │ │ ├── update-change │ │ │ │ └── index.ts │ │ │ ├── update-tenant │ │ │ │ └── index.ts │ │ │ ├── get-novu-layout │ │ │ │ ├── index.ts │ │ │ │ └── get-novu-layout.command.ts │ │ │ ├── conditions-filter │ │ │ │ └── index.ts │ │ │ ├── merge-preferences │ │ │ │ └── index.ts │ │ │ ├── trigger-broadcast │ │ │ │ └── index.ts │ │ │ ├── trigger-multicast │ │ │ │ └── index.ts │ │ │ ├── update-subscriber │ │ │ │ └── index.ts │ │ │ ├── delete-preferences │ │ │ │ └── index.ts │ │ │ ├── normalize-variables │ │ │ │ └── index.ts │ │ │ ├── compile-email-template │ │ │ │ └── index.ts │ │ │ ├── compile-step-template │ │ │ │ └── index.ts │ │ │ ├── create-execution-details │ │ │ │ └── dtos │ │ │ │ │ └── index.ts │ │ │ ├── get-layout │ │ │ │ └── index.ts │ │ │ ├── get-topic-subscribers │ │ │ │ └── index.ts │ │ │ ├── upsert-control-values │ │ │ │ └── index.ts │ │ │ ├── compile-in-app-template │ │ │ │ └── index.ts │ │ │ ├── get-decrypted-secret-key │ │ │ │ └── index.ts │ │ │ ├── get-subscriber-schedule │ │ │ │ └── index.ts │ │ │ ├── create-or-update-subscriber │ │ │ │ └── index.ts │ │ │ ├── get-decrypted-integrations │ │ │ │ └── index.ts │ │ │ ├── process-tenant │ │ │ │ └── index.ts │ │ │ ├── tier-restrictions-validate │ │ │ │ └── index.ts │ │ │ ├── verify-payload │ │ │ │ └── index.ts │ │ │ ├── get-novu-provider-credentials │ │ │ │ └── index.ts │ │ │ ├── message-template │ │ │ │ └── create-message-template │ │ │ │ │ └── index.ts │ │ │ ├── workflow │ │ │ │ └── index.ts │ │ │ ├── get-preferences │ │ │ │ └── index.ts │ │ │ ├── calculate-limit-novu-integration │ │ │ │ └── index.ts │ │ │ ├── compile-template │ │ │ │ └── index.ts │ │ │ ├── get-subscriber-template-preference │ │ │ │ └── index.ts │ │ │ └── select-integration │ │ │ │ └── index.ts │ │ ├── factories │ │ │ ├── sms │ │ │ │ └── interfaces │ │ │ │ │ └── index.ts │ │ │ └── push │ │ │ │ └── interfaces │ │ │ │ └── index.ts │ │ ├── pipes │ │ │ └── index.ts │ │ ├── modules │ │ │ └── interfaces.ts │ │ └── value-objects │ │ │ └── i-step.control.ts │ ├── .czrc │ ├── jest.setup.js │ ├── README.md │ └── .gitignore ├── novui │ ├── src │ │ ├── components │ │ │ ├── tabs │ │ │ │ └── index.ts │ │ │ ├── text │ │ │ │ └── index.ts │ │ │ ├── input │ │ │ │ └── index.ts │ │ │ ├── select │ │ │ │ └── index.ts │ │ │ ├── table │ │ │ │ └── index.ts │ │ │ ├── title │ │ │ │ └── index.ts │ │ │ ├── checkbox │ │ │ │ └── index.ts │ │ │ ├── code-block │ │ │ │ └── index.ts │ │ │ ├── textarea │ │ │ │ └── index.ts │ │ │ ├── loader │ │ │ │ └── index.ts │ │ │ └── button │ │ │ │ └── index.ts │ │ ├── utils │ │ │ └── index.ts │ │ ├── hooks │ │ │ └── index.ts │ │ ├── ingredients │ │ │ └── index.ts │ │ ├── icons │ │ │ ├── index.ts │ │ │ └── Icon.const.ts │ │ ├── json-schema-components │ │ │ └── widgets │ │ │ │ └── index.ts │ │ └── types │ │ │ └── index.ts │ └── .storybook │ │ └── manager-head.html ├── design-system │ ├── src │ │ ├── popover │ │ │ └── index.ts │ │ ├── arrow-button │ │ │ └── index.ts │ │ ├── color-scheme │ │ │ ├── ColorScheme.ts │ │ │ └── index.ts │ │ ├── dots-navigation │ │ │ └── index.ts │ │ ├── utils │ │ │ └── index.ts │ │ ├── layout │ │ │ └── index.ts │ │ ├── iconsV2 │ │ │ ├── index.ts │ │ │ └── Icon.const.ts │ │ ├── cards │ │ │ └── index.ts │ │ ├── config │ │ │ └── index.ts │ │ ├── search-input │ │ │ └── index.ts │ │ ├── pagination │ │ │ ├── index.ts │ │ │ └── util │ │ │ │ └── index.ts │ │ ├── when │ │ │ └── index.tsx │ │ └── sidebar │ │ │ └── index.ts │ ├── .storybook │ │ └── manager-head.html │ └── tsconfig.esm.json ├── maily-render │ ├── .babelrc │ ├── src │ │ ├── index.ts │ │ └── utils.ts │ └── tsconfig.json ├── notifications │ ├── src │ │ └── index.ts │ ├── README.md │ └── .gitignore ├── automation │ └── .vscode │ │ └── extensions.json ├── maily-core │ └── src │ │ ├── index.ts │ │ ├── styles │ │ └── tailwind.css │ │ └── editor │ │ ├── bubble-suggestions │ │ └── providers │ │ │ └── index.ts │ │ └── extensions │ │ └── inline-decorator │ │ └── index.ts └── maily-tsconfig │ └── package.json ├── playground ├── nestjs │ ├── .gitignore │ └── .env.example └── nextjs │ ├── public │ └── favicon.ico │ ├── next.config.mjs │ ├── src │ └── components │ │ └── Title.tsx │ └── .env.example ├── enterprise ├── packages │ ├── api │ │ └── src │ ├── auth │ │ └── src │ ├── dal │ │ ├── src │ │ └── .dockerignore │ ├── billing │ │ └── src │ ├── translation │ │ └── src │ └── shared-services │ │ ├── src │ │ ├── .czrc │ │ ├── .gitignore │ │ └── README.md └── workers │ └── socket │ └── .vscode │ └── settings.json ├── .vscode └── extensions.json ├── jest.config.js ├── .husky └── pre-commit ├── .gitmodules ├── .cursorignore ├── .npmrc ├── .nxignore ├── scripts └── clean-build.sh ├── _templates └── module │ └── new │ └── usecase-index.ejs.t ├── .cursor └── environment.json ├── .idea ├── codeStyles │ └── codeStyleConfig.xml └── .gitignore └── .npmrc-cloud /.nvmrc: -------------------------------------------------------------------------------- 1 | 20.19.0 2 | -------------------------------------------------------------------------------- /packages/js/jest.setup.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/webhook/e2e/mocha.e2e.opts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/internal-sdk/sources/temp.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/inbound-mail/src/python/DNS/Lib.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/inbound-mail/src/python/DNS/Type.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/dal/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /libs/testing/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /packages/js/.gitignore: -------------------------------------------------------------------------------- 1 | index.directcss 2 | -------------------------------------------------------------------------------- /packages/stateless/src/types/example.d.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/web/src/ee/translations/icons/flags/eskib: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/framework/scripts/schema_input.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/framework/scripts/schema_output.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/shared/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /playground/nestjs/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | .env 3 | -------------------------------------------------------------------------------- /apps/inbound-mail/src/python/dkim/.__init__.py.swo: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /enterprise/packages/api/src: -------------------------------------------------------------------------------- 1 | ../../../.source/api/src -------------------------------------------------------------------------------- /enterprise/packages/auth/src: -------------------------------------------------------------------------------- 1 | ../../../.source/auth/src -------------------------------------------------------------------------------- /enterprise/packages/dal/src: -------------------------------------------------------------------------------- 1 | ../../../.source/dal/src -------------------------------------------------------------------------------- /enterprise/packages/dal/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /apps/web/src/utils/index copy.ts: -------------------------------------------------------------------------------- 1 | export * from './segment'; 2 | -------------------------------------------------------------------------------- /enterprise/packages/billing/src: -------------------------------------------------------------------------------- 1 | ../../../.source/billing/src -------------------------------------------------------------------------------- /libs/dal/src/shared/consts/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ttl'; 2 | -------------------------------------------------------------------------------- /packages/js/package.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module" 3 | } 4 | -------------------------------------------------------------------------------- /packages/js/src/ui/api/index.ts: -------------------------------------------------------------------------------- 1 | export * from './hooks'; 2 | -------------------------------------------------------------------------------- /packages/js/src/ui/themes/index.ts: -------------------------------------------------------------------------------- 1 | export * from './dark'; 2 | -------------------------------------------------------------------------------- /enterprise/packages/translation/src: -------------------------------------------------------------------------------- 1 | ../../../.source/translation/src -------------------------------------------------------------------------------- /libs/application-generic/src/commands/commandValidationException.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/dal/src/shared/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './index.type'; 2 | -------------------------------------------------------------------------------- /libs/dal/src/types/sort-order.ts: -------------------------------------------------------------------------------- 1 | export type SortOrder = 1 | -1; 2 | -------------------------------------------------------------------------------- /libs/novui/src/components/tabs/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Tabs'; 2 | -------------------------------------------------------------------------------- /libs/novui/src/components/text/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Text'; 2 | -------------------------------------------------------------------------------- /packages/js/package.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "commonjs" 3 | } 4 | -------------------------------------------------------------------------------- /packages/novu/src/client/index.ts: -------------------------------------------------------------------------------- 1 | export * from './cli.client'; 2 | -------------------------------------------------------------------------------- /packages/providers/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/index'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/ui/index.ts: -------------------------------------------------------------------------------- 1 | export * from './marketing'; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/inbox/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './analytics'; 2 | -------------------------------------------------------------------------------- /apps/dashboard/tests/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "commonjs" 3 | } 4 | -------------------------------------------------------------------------------- /apps/web/src/components/Timeline/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Timeline'; 2 | -------------------------------------------------------------------------------- /apps/web/src/pages/activities/consts/index.ts: -------------------------------------------------------------------------------- 1 | export * from './mock'; 2 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/index.ts: -------------------------------------------------------------------------------- 1 | export * from './base-repository'; 2 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/user/types.ts: -------------------------------------------------------------------------------- 1 | export type UserId = string; 2 | -------------------------------------------------------------------------------- /libs/novui/src/components/input/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Input'; 2 | -------------------------------------------------------------------------------- /libs/novui/src/components/select/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Select'; 2 | -------------------------------------------------------------------------------- /libs/novui/src/components/table/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Table'; 2 | -------------------------------------------------------------------------------- /libs/novui/src/components/title/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Title'; 2 | -------------------------------------------------------------------------------- /libs/novui/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './createContextAndHook'; 2 | -------------------------------------------------------------------------------- /packages/novu/src/constants/index.ts: -------------------------------------------------------------------------------- 1 | export * from './constants'; 2 | -------------------------------------------------------------------------------- /packages/novu/src/dev-server/index.ts: -------------------------------------------------------------------------------- 1 | export * from './http-server'; 2 | -------------------------------------------------------------------------------- /packages/react-native/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@novu/react/hooks'; 2 | -------------------------------------------------------------------------------- /packages/react/src/themes/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@novu/js/themes'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/dto/layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './layout.dto'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/dto/shared/index.ts: -------------------------------------------------------------------------------- 1 | export * from './shared'; 2 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["biomejs.biome"] 3 | } 4 | -------------------------------------------------------------------------------- /apps/dashboard/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /apps/web/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": ["Loggable"] 3 | } 4 | -------------------------------------------------------------------------------- /apps/web/src/components/shared/index.tsx: -------------------------------------------------------------------------------- 1 | export * from './ProfileImage'; 2 | -------------------------------------------------------------------------------- /apps/web/src/pages/settings/tabs/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ApiKeysCard'; 2 | -------------------------------------------------------------------------------- /apps/web/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /apps/web/src/studio/constants/index.ts: -------------------------------------------------------------------------------- 1 | export * from './EnvironmentEnum'; 2 | -------------------------------------------------------------------------------- /apps/ws/src/shared/constants.ts: -------------------------------------------------------------------------------- 1 | export const DAL_SERVICE = 'DalService'; 2 | -------------------------------------------------------------------------------- /enterprise/packages/shared-services/src: -------------------------------------------------------------------------------- 1 | ../../../.source/shared-services/src -------------------------------------------------------------------------------- /libs/application-generic/src/config/index.ts: -------------------------------------------------------------------------------- 1 | export * from './workers'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/resilience/index.ts: -------------------------------------------------------------------------------- 1 | export * from './delay'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/workers/inbound-parse-worker.service.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/tenant/types.ts: -------------------------------------------------------------------------------- 1 | export type TenantId = string; 2 | -------------------------------------------------------------------------------- /libs/dal/src/shared/exceptions/index.ts: -------------------------------------------------------------------------------- 1 | export * from './dal.exception'; 2 | -------------------------------------------------------------------------------- /libs/novui/src/components/checkbox/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Checkbox'; 2 | -------------------------------------------------------------------------------- /libs/novui/src/components/code-block/index.ts: -------------------------------------------------------------------------------- 1 | export * from './CodeBlock'; 2 | -------------------------------------------------------------------------------- /libs/novui/src/components/textarea/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Textarea'; 2 | -------------------------------------------------------------------------------- /packages/providers/.czrc: -------------------------------------------------------------------------------- 1 | { 2 | "path": "cz-conventional-changelog" 3 | } 4 | -------------------------------------------------------------------------------- /packages/shared/src/dto/events/index.ts: -------------------------------------------------------------------------------- 1 | export * from './event.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/dto/session/index.ts: -------------------------------------------------------------------------------- 1 | export * from './session.dto'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/log/index.ts: -------------------------------------------------------------------------------- 1 | export * from './log.enums'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/services/index.ts: -------------------------------------------------------------------------------- 1 | export * from './feature-flags'; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/content-templates/usecases/parse-preview/preview-email.command.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/api/src/app/content-templates/usecases/parse-preview/preview-email.usecase.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/web/src/index.css: -------------------------------------------------------------------------------- 1 | @layer reset, mantine, base, tokens, recipes, utilities; 2 | -------------------------------------------------------------------------------- /apps/web/src/pages/activities/services/index.ts: -------------------------------------------------------------------------------- 1 | export * from './chart-bar'; 2 | -------------------------------------------------------------------------------- /apps/web/src/pages/settings/ApiKeysPage/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ApiKeysPage'; 2 | -------------------------------------------------------------------------------- /apps/web/src/pages/settings/WebhookPage/index.ts: -------------------------------------------------------------------------------- 1 | export * from './WebhookPage'; 2 | -------------------------------------------------------------------------------- /apps/web/src/pages/settings/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './InputPlain'; 2 | -------------------------------------------------------------------------------- /apps/webhook/src/shared/constants.ts: -------------------------------------------------------------------------------- 1 | export const DAL_SERVICE = 'DalService'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/utils/base62/index.ts: -------------------------------------------------------------------------------- 1 | export * from './base62'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/webhooks/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './app-id'; 2 | -------------------------------------------------------------------------------- /libs/design-system/src/popover/index.ts: -------------------------------------------------------------------------------- 1 | export { Popover } from './Popover'; 2 | -------------------------------------------------------------------------------- /libs/maily-render/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-react"] 3 | } 4 | -------------------------------------------------------------------------------- /libs/novui/src/components/loader/index.ts: -------------------------------------------------------------------------------- 1 | export * from './LoadingOverlay'; 2 | -------------------------------------------------------------------------------- /libs/testing/src/constants.ts: -------------------------------------------------------------------------------- 1 | export const TEST_USER_PASSWORD = 'asd#Faf4fd'; 2 | -------------------------------------------------------------------------------- /packages/framework/src/validators/index.ts: -------------------------------------------------------------------------------- 1 | export * from './base.validator'; 2 | -------------------------------------------------------------------------------- /packages/js/src/ui/components/InboxTabs/index.ts: -------------------------------------------------------------------------------- 1 | export * from './InboxTabs'; 2 | -------------------------------------------------------------------------------- /packages/js/src/ui/components/elements/Bell/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Bell'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/dto/bridge/index.ts: -------------------------------------------------------------------------------- 1 | export * from './bridge.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/dto/environments/index.ts: -------------------------------------------------------------------------------- 1 | export * from './tags.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/dto/pagination/index.ts: -------------------------------------------------------------------------------- 1 | export * from './pagination.dto'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/dto/subscriber/index.ts: -------------------------------------------------------------------------------- 1 | export * from './subscriber.dto'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/actor/index.ts: -------------------------------------------------------------------------------- 1 | export * from './actor.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/utils/slugify/index.ts: -------------------------------------------------------------------------------- 1 | export { slugify } from './slugify'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/webhooks/index.ts: -------------------------------------------------------------------------------- 1 | export * from './webhook-event.enum'; 2 | -------------------------------------------------------------------------------- /packages/stateless/.czrc: -------------------------------------------------------------------------------- 1 | { 2 | "path": "cz-conventional-changelog" 3 | } 4 | -------------------------------------------------------------------------------- /apps/api/src/app/shared/usecases/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-variables-object'; 2 | -------------------------------------------------------------------------------- /apps/api/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrap } from './bootstrap'; 2 | 3 | bootstrap(); 4 | -------------------------------------------------------------------------------- /apps/web/src/components/layout/constants.ts: -------------------------------------------------------------------------------- 1 | export const HEADER_NAV_HEIGHT = 40; 2 | -------------------------------------------------------------------------------- /apps/ws/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrap } from './bootstrap'; 2 | 3 | bootstrap(); 4 | -------------------------------------------------------------------------------- /libs/application-generic/.czrc: -------------------------------------------------------------------------------- 1 | { 2 | "path": "cz-conventional-changelog" 3 | } 4 | -------------------------------------------------------------------------------- /libs/application-generic/src/encryption/index.ts: -------------------------------------------------------------------------------- 1 | export * from './encrypt-provider'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/workers/completed-jobs-metric-worker.service.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/environment/types.ts: -------------------------------------------------------------------------------- 1 | export type EnvironmentId = string; 2 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/organization/types.ts: -------------------------------------------------------------------------------- 1 | export type OrganizationId = string; 2 | -------------------------------------------------------------------------------- /libs/novui/src/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export { useDebouncedCallback } from '@mantine/hooks'; 2 | -------------------------------------------------------------------------------- /packages/js/src/ui/components/elements/Header/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Header'; 2 | -------------------------------------------------------------------------------- /packages/providers/src/lib/sms/imedia/index.ts: -------------------------------------------------------------------------------- 1 | export * from './imedia.provider'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/consts/preferences/index.ts: -------------------------------------------------------------------------------- 1 | export * from './preferences.const'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/consts/rate-limiting/index.ts: -------------------------------------------------------------------------------- 1 | export * from './apiRateLimits'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/apiKeys/index.ts: -------------------------------------------------------------------------------- 1 | export * from './apiKeys.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/change/index.ts: -------------------------------------------------------------------------------- 1 | export * from './change.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './layout.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/messages/index.ts: -------------------------------------------------------------------------------- 1 | export * from './messages.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/tenant/index.ts: -------------------------------------------------------------------------------- 1 | export * from './tenant.interface'; 2 | -------------------------------------------------------------------------------- /playground/nestjs/.env.example: -------------------------------------------------------------------------------- 1 | NOVU_SECRET_KEY= 2 | NOVU_API_URL=https://api.novu.co 3 | -------------------------------------------------------------------------------- /apps/api/src/app/workflows-v1/queries/index.ts: -------------------------------------------------------------------------------- 1 | export * from './CreateWorkflowQuery'; 2 | -------------------------------------------------------------------------------- /apps/web/src/components/quick-start/common/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Workflow.styles'; 2 | -------------------------------------------------------------------------------- /apps/web/src/components/workflow/preview/email/index.ts: -------------------------------------------------------------------------------- 1 | export * from './EmailPreview'; 2 | -------------------------------------------------------------------------------- /apps/web/src/pages/settings/organization/index.ts: -------------------------------------------------------------------------------- 1 | export * from './OrganizationPage'; 2 | -------------------------------------------------------------------------------- /apps/web/src/pages/settings/user-profile-page/index.ts: -------------------------------------------------------------------------------- 1 | export * from './UserProfilePage'; 2 | -------------------------------------------------------------------------------- /apps/webhook/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrap } from './bootstrap'; 2 | 3 | bootstrap(); 4 | -------------------------------------------------------------------------------- /apps/worker/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrap } from './bootstrap'; 2 | 3 | bootstrap(); 4 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/bull-mq/index.ts: -------------------------------------------------------------------------------- 1 | export * from './bull-mq.service'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/webhooks/mappers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './message.mapper'; 2 | -------------------------------------------------------------------------------- /libs/dal/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export * from './consts'; 2 | export * from './exceptions'; 3 | -------------------------------------------------------------------------------- /libs/design-system/src/arrow-button/index.ts: -------------------------------------------------------------------------------- 1 | export { ArrowButton } from './ArrowButton'; 2 | -------------------------------------------------------------------------------- /libs/novui/src/ingredients/index.ts: -------------------------------------------------------------------------------- 1 | export * from './colorPaletteGradient.ingredient'; 2 | -------------------------------------------------------------------------------- /libs/testing/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './processTestAgentExpectedStatusCode'; 2 | -------------------------------------------------------------------------------- /packages/framework/h3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/servers/h3.cjs" 3 | } 4 | -------------------------------------------------------------------------------- /packages/framework/nest/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/servers/nest.cjs" 3 | } 4 | -------------------------------------------------------------------------------- /packages/framework/next/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/servers/next.cjs" 3 | } 4 | -------------------------------------------------------------------------------- /packages/framework/nuxt/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/servers/nuxt.cjs" 3 | } 4 | -------------------------------------------------------------------------------- /packages/framework/src/resources/index.ts: -------------------------------------------------------------------------------- 1 | export * from './workflow/workflow.resource'; 2 | -------------------------------------------------------------------------------- /packages/framework/src/resources/workflow/index.ts: -------------------------------------------------------------------------------- 1 | export * from './workflow.resource'; 2 | -------------------------------------------------------------------------------- /packages/js/src/session/index.ts: -------------------------------------------------------------------------------- 1 | export * from './session'; 2 | export * from './types'; 3 | -------------------------------------------------------------------------------- /packages/react/src/internal/index.ts: -------------------------------------------------------------------------------- 1 | export { buildSubscriber } from '@novu/js/internal'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/consts/filters/index.ts: -------------------------------------------------------------------------------- 1 | export { FILTER_TO_LABEL } from './filters'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/consts/translation/index.ts: -------------------------------------------------------------------------------- 1 | export * from './translation.constants'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/dto/message-template/index.ts: -------------------------------------------------------------------------------- 1 | export * from './message-template.dto'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/dto/subscription/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-subscription.dto'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/activity-feed/index.ts: -------------------------------------------------------------------------------- 1 | export * from './activity.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/services/feature-flags/index.ts: -------------------------------------------------------------------------------- 1 | export * from './feature-flags.util'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/types/workflow-override.ts: -------------------------------------------------------------------------------- 1 | export type WorkflowOverrideId = string; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/widgets/usecases/mark-all-message-as-seen/mark-all-message-as-seen.usecase.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/web/src/components/nav/EnvironmentSelect/index.ts: -------------------------------------------------------------------------------- 1 | export * from './EnvironmentSelect'; 2 | -------------------------------------------------------------------------------- /apps/web/src/components/nav/OrganizationSelect/index.ts: -------------------------------------------------------------------------------- 1 | export * from './OrganizationSelect'; 2 | -------------------------------------------------------------------------------- /apps/web/src/hooks/useAuth.ts: -------------------------------------------------------------------------------- 1 | export { useAuth } from '../components/providers/AuthProvider'; 2 | -------------------------------------------------------------------------------- /apps/web/src/studio/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './routing'; 2 | export * from './variables'; 3 | -------------------------------------------------------------------------------- /apps/web/src/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './FCWithChildren'; 2 | export * from './FCBase'; 3 | -------------------------------------------------------------------------------- /apps/worker/src/app/shared/utils/exceptions.ts: -------------------------------------------------------------------------------- 1 | export class PlatformException extends Error {} 2 | -------------------------------------------------------------------------------- /apps/ws/src/shared/subscriber-online/index.ts: -------------------------------------------------------------------------------- 1 | export * from './subscriber-online.service'; 2 | -------------------------------------------------------------------------------- /enterprise/packages/shared-services/.czrc: -------------------------------------------------------------------------------- 1 | { 2 | "path": "cz-conventional-changelog" 3 | } 4 | -------------------------------------------------------------------------------- /libs/application-generic/jest.setup.js: -------------------------------------------------------------------------------- 1 | require('dotenv').config({ path: './src/.env.test' }); 2 | -------------------------------------------------------------------------------- /libs/dal/src/shared/exceptions/dal.exception.ts: -------------------------------------------------------------------------------- 1 | export class DalException extends Error {} 2 | -------------------------------------------------------------------------------- /libs/design-system/src/color-scheme/ColorScheme.ts: -------------------------------------------------------------------------------- 1 | export type ColorScheme = 'light' | 'dark'; 2 | -------------------------------------------------------------------------------- /packages/framework/lambda/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/servers/lambda.cjs" 3 | } 4 | -------------------------------------------------------------------------------- /packages/framework/remix/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/servers/remix.cjs" 3 | } 4 | -------------------------------------------------------------------------------- /packages/js/src/ui/components/elements/Preferences/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Preferences'; 2 | -------------------------------------------------------------------------------- /packages/nextjs/src/hooks/index.ts: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | export * from '@novu/react/hooks'; 4 | -------------------------------------------------------------------------------- /packages/nextjs/src/themes/index.ts: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | export * from '@novu/react/themes'; 4 | -------------------------------------------------------------------------------- /packages/novu/src/commands/index.ts: -------------------------------------------------------------------------------- 1 | export * from './dev'; 2 | export * from './translations'; 3 | -------------------------------------------------------------------------------- /packages/shared/src/entities/environment/index.ts: -------------------------------------------------------------------------------- 1 | export * from './environment.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/notification/index.ts: -------------------------------------------------------------------------------- 1 | export * from './notification.interface'; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/bridge/dtos/create-bridge-response.dto.ts: -------------------------------------------------------------------------------- 1 | export class CreateBridgeResponseDto {} 2 | -------------------------------------------------------------------------------- /apps/api/src/app/preferences/index.ts: -------------------------------------------------------------------------------- 1 | export { PreferencesModule } from './preferences.module'; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/shared/helpers/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './mapMarkMessageToWebSocketEvent'; 2 | -------------------------------------------------------------------------------- /apps/dashboard/src/components/schema-editor/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './schema-form.types'; 2 | -------------------------------------------------------------------------------- /apps/web/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/favicon.ico -------------------------------------------------------------------------------- /apps/web/public/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/warning.png -------------------------------------------------------------------------------- /apps/web/src/pages/activities/consts/mock/index.ts: -------------------------------------------------------------------------------- 1 | export * from './activity-graph-stats.mock'; 2 | -------------------------------------------------------------------------------- /apps/web/src/pages/integrations/components/v2/index.ts: -------------------------------------------------------------------------------- 1 | export * from './NovuInAppFrameworksV2'; 2 | -------------------------------------------------------------------------------- /apps/web/src/studio/constants/EnvironmentEnum.ts: -------------------------------------------------------------------------------- 1 | import { EnvironmentEnum } from '@novu/shared'; 2 | -------------------------------------------------------------------------------- /apps/worker/src/config/index.ts: -------------------------------------------------------------------------------- 1 | export * from './env.config'; 2 | export * from './env.validators'; 3 | -------------------------------------------------------------------------------- /apps/ws/src/config/index.ts: -------------------------------------------------------------------------------- 1 | export * from './env.config'; 2 | export * from './env.validators'; 3 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'ts-jest', 3 | testEnvironment: 'node', 4 | }; 5 | -------------------------------------------------------------------------------- /libs/application-generic/src/instrumentation/index.ts: -------------------------------------------------------------------------------- 1 | export * from './instrumentation.decorator'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/utils/exceptions.ts: -------------------------------------------------------------------------------- 1 | export class PlatformException extends Error {} 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/webhooks/services/index.ts: -------------------------------------------------------------------------------- 1 | export * from './svix-provider.service'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/webhooks/usecases/index.ts: -------------------------------------------------------------------------------- 1 | export * from './send-webhook-message'; 2 | -------------------------------------------------------------------------------- /libs/dal/src/types/error.enum.ts: -------------------------------------------------------------------------------- 1 | export enum ErrorCodesEnum { 2 | DUPLICATE_KEY = '11000', 3 | } 4 | -------------------------------------------------------------------------------- /libs/design-system/src/dots-navigation/index.ts: -------------------------------------------------------------------------------- 1 | export { DotsNavigation } from './DotsNavigation'; 2 | -------------------------------------------------------------------------------- /libs/design-system/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './clamp'; 2 | export * from './notifications'; 3 | -------------------------------------------------------------------------------- /libs/notifications/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './workflows/usage-limits/usage-limits.workflow'; 2 | -------------------------------------------------------------------------------- /libs/novui/src/icons/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Icon.types'; 2 | export * from './icon-registry'; 3 | -------------------------------------------------------------------------------- /packages/framework/express/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/servers/express.cjs" 3 | } 4 | -------------------------------------------------------------------------------- /packages/framework/internal/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/internal/index.cjs" 3 | } 4 | -------------------------------------------------------------------------------- /packages/framework/src/schemas/index.ts: -------------------------------------------------------------------------------- 1 | export * from './providers'; 2 | export * from './steps'; 3 | -------------------------------------------------------------------------------- /packages/framework/src/types/code.types.ts: -------------------------------------------------------------------------------- 1 | export type CodeResult = { 2 | code: string; 3 | }; 4 | -------------------------------------------------------------------------------- /packages/framework/sveltekit/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/servers/sveltekit.cjs" 3 | } 4 | -------------------------------------------------------------------------------- /packages/js/src/api/index.ts: -------------------------------------------------------------------------------- 1 | export * from './http-client'; 2 | export * from './inbox-service'; 3 | -------------------------------------------------------------------------------- /packages/shared/src/dto/stateless-control-values/index.ts: -------------------------------------------------------------------------------- 1 | export * from './stateless-controls'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/ui/marketing.ts: -------------------------------------------------------------------------------- 1 | export const UTM_CAMPAIGN_QUERY_PARAM = '?utm_campaign=in-app'; 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npm run lint-staged 5 | -------------------------------------------------------------------------------- /apps/dashboard/src/components/workflow-editor/control-input/index.ts: -------------------------------------------------------------------------------- 1 | export * from './control-input'; 2 | -------------------------------------------------------------------------------- /apps/web/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /apps/web/src/components/conditions/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Conditions'; 2 | export * from './types'; 3 | -------------------------------------------------------------------------------- /apps/web/src/studio/hooks/useStudioState.ts: -------------------------------------------------------------------------------- 1 | export { useStudioState } from '../StudioStateProvider'; 2 | -------------------------------------------------------------------------------- /apps/web/src/studio/layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './PageTemplate'; 2 | export * from './PageContainer'; 3 | -------------------------------------------------------------------------------- /apps/webhook/src/webhooks/interfaces/webhook.interface.ts: -------------------------------------------------------------------------------- 1 | export type WebhookTypes = 'sms' | 'email'; 2 | -------------------------------------------------------------------------------- /apps/worker/src/app/workflow/usecases/send-message/throttle/index.ts: -------------------------------------------------------------------------------- 1 | export * from './throttle.usecase'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/feature-flags/index.ts: -------------------------------------------------------------------------------- 1 | export * from './feature-flags.service'; 2 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/workflow-override/types.ts: -------------------------------------------------------------------------------- 1 | export { WorkflowOverrideId } from '@novu/shared'; 2 | -------------------------------------------------------------------------------- /libs/design-system/src/layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './PageContainer'; 2 | export * from './PageMeta'; 3 | -------------------------------------------------------------------------------- /libs/novui/.storybook/manager-head.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /libs/novui/src/components/button/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Button'; 2 | export * from './IconButton'; 3 | -------------------------------------------------------------------------------- /packages/js/src/umd.ts: -------------------------------------------------------------------------------- 1 | import { Novu } from './novu'; 2 | 3 | // @ts-ignore 4 | window.Novu = Novu; 5 | -------------------------------------------------------------------------------- /packages/shared/src/consts/notification-item-buttons/index.ts: -------------------------------------------------------------------------------- 1 | export * from './notificationItemButton'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/execution-details/index.ts: -------------------------------------------------------------------------------- 1 | export * from './execution-details.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/message-template/index.ts: -------------------------------------------------------------------------------- 1 | export * from './message-template.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/notification-group/index.ts: -------------------------------------------------------------------------------- 1 | export * from './notification-group.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/workflow-override/index.ts: -------------------------------------------------------------------------------- 1 | export * from './workflow-override.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/types/resource-limiting.ts: -------------------------------------------------------------------------------- 1 | export enum ResourceEnum { 2 | EVENTS = 'events', 3 | } 4 | -------------------------------------------------------------------------------- /apps/api/src/app/change/usecases/shared/index.ts: -------------------------------------------------------------------------------- 1 | export * from './notification-template-change.interface'; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/subscribers/params/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-subscriber-preferences-by-level.params'; 2 | -------------------------------------------------------------------------------- /apps/dashboard/src/context/segment/index.ts: -------------------------------------------------------------------------------- 1 | export * from './hooks'; 2 | export * from './segment-provider'; 3 | -------------------------------------------------------------------------------- /apps/inbound-mail/src/config/index.ts: -------------------------------------------------------------------------------- 1 | export * from './env.config'; 2 | export * from './env.validators'; 3 | -------------------------------------------------------------------------------- /apps/web/src/components/layout/components/Header.tsx: -------------------------------------------------------------------------------- 1 | export function Header() { 2 | return <>; 3 | } 4 | -------------------------------------------------------------------------------- /apps/web/src/components/layout/components/LocalStudioHeader/index.ts: -------------------------------------------------------------------------------- 1 | export * from './LocalStudioHeader'; 2 | -------------------------------------------------------------------------------- /apps/web/src/components/layout/components/LocalStudioSidebar/index.ts: -------------------------------------------------------------------------------- 1 | export * from './LocalStudioSidebar'; 2 | -------------------------------------------------------------------------------- /apps/web/src/components/quick-start/in-app-onboarding/index.ts: -------------------------------------------------------------------------------- 1 | export { InAppSandbox } from './InAppSandbox'; 2 | -------------------------------------------------------------------------------- /apps/web/src/components/workflow/preview/common/phone-simulator/index.ts: -------------------------------------------------------------------------------- 1 | export * from './MobileSimulator'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/schemas/channel-endpoint/index.ts: -------------------------------------------------------------------------------- 1 | export * from './channel-endpoint.schema'; 2 | -------------------------------------------------------------------------------- /libs/design-system/.storybook/manager-head.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /libs/design-system/src/iconsV2/index.ts: -------------------------------------------------------------------------------- 1 | export * from './icon-registry'; 2 | export * from './Icon.types'; 3 | -------------------------------------------------------------------------------- /packages/js/src/event-emitter/index.ts: -------------------------------------------------------------------------------- 1 | export * from './novu-event-emitter'; 2 | export * from './types'; 3 | -------------------------------------------------------------------------------- /packages/shared/src/entities/job/index.ts: -------------------------------------------------------------------------------- 1 | export * from './job.interface'; 2 | export * from './status.enum'; 3 | -------------------------------------------------------------------------------- /packages/shared/src/entities/notification-trigger/index.ts: -------------------------------------------------------------------------------- 1 | export * from './notification-trigger.interface'; 2 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "enterprise"] 2 | path = .source 3 | url = git@github.com:novuhq/packages-enterprise.git 4 | -------------------------------------------------------------------------------- /apps/api/src/app/bridge/index.ts: -------------------------------------------------------------------------------- 1 | export { BridgeModule } from './bridge.module'; 2 | export * from './usecases'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/bridge/usecases/sync/index.ts: -------------------------------------------------------------------------------- 1 | export * from './sync.command'; 2 | export * from './sync.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/change/usecases/promote-layout-change/index.ts: -------------------------------------------------------------------------------- 1 | export * from './promote-layout-change.use-case'; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/shared/helpers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './generate-transaction-id'; 2 | export * from './utils'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/favicon.ico -------------------------------------------------------------------------------- /apps/dashboard/src/components/workflow-editor/payload-schema/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './generate-schema'; 2 | -------------------------------------------------------------------------------- /apps/web/src/components/quick-start/digest-demo-flow/index.ts: -------------------------------------------------------------------------------- 1 | export { DigestDemoFlow } from './DigestDemoFlow'; 2 | -------------------------------------------------------------------------------- /apps/web/src/hooks/useEnvironment.ts: -------------------------------------------------------------------------------- 1 | export { useEnvironment } from '../components/providers/EnvironmentProvider'; 2 | -------------------------------------------------------------------------------- /apps/web/src/pages/integrations/components/multi-provider/v2/index.ts: -------------------------------------------------------------------------------- 1 | export * from './UpdateProviderSidebarV2'; 2 | -------------------------------------------------------------------------------- /apps/web/src/studio/components/workflows/preferences/index.ts: -------------------------------------------------------------------------------- 1 | export * from './WorkflowSettingsSidePanelContent'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/http/index.ts: -------------------------------------------------------------------------------- 1 | export * from './headers.types'; 2 | export * from './responses.types'; 3 | -------------------------------------------------------------------------------- /libs/design-system/src/cards/index.ts: -------------------------------------------------------------------------------- 1 | export { Cards } from './Cards'; 2 | export { CardTile } from './CardTile'; 3 | -------------------------------------------------------------------------------- /libs/design-system/src/config/index.ts: -------------------------------------------------------------------------------- 1 | export { colors } from './colors'; 2 | export { shadows } from './shadows'; 3 | -------------------------------------------------------------------------------- /libs/internal-sdk/.gitattributes: -------------------------------------------------------------------------------- 1 | # This allows generated code to be indexed correctly 2 | *.ts linguist-generated=false -------------------------------------------------------------------------------- /packages/novu/src/services/index.ts: -------------------------------------------------------------------------------- 1 | export * from './analytics.service'; 2 | export * from './config.service'; 3 | -------------------------------------------------------------------------------- /packages/shared/src/entities/notification-template/index.ts: -------------------------------------------------------------------------------- 1 | export * from './notification-template.interface'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/entities/subscriber-preference/index.ts: -------------------------------------------------------------------------------- 1 | export * from './subscriber-preference.interface'; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v2/types/index.ts: -------------------------------------------------------------------------------- 1 | export enum LayoutCreationSourceEnum { 2 | DASHBOARD = 'dashboard', 3 | } 4 | -------------------------------------------------------------------------------- /apps/web/postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | '@pandacss/dev/postcss': {}, 4 | }, 5 | }; 6 | -------------------------------------------------------------------------------- /apps/web/public/favicon-gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/favicon-gradient.png -------------------------------------------------------------------------------- /apps/web/public/warning-underline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/warning-underline.png -------------------------------------------------------------------------------- /apps/web/tests/fixtures/test-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/tests/fixtures/test-logo.png -------------------------------------------------------------------------------- /apps/worker/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = (options) => ({ 2 | ...options, 3 | devtool: 'source-map', 4 | }); 5 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/calculate-delay/index.ts: -------------------------------------------------------------------------------- 1 | export * from './compute-job-wait-duration.service'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/cron/cron.constants.ts: -------------------------------------------------------------------------------- 1 | export const ACTIVE_CRON_JOBS_TOKEN = 'ACTIVE_CRON_JOBS'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/tracing/index.ts: -------------------------------------------------------------------------------- 1 | export * from './otel-wrapper'; 2 | export * from './tracing.module'; 3 | -------------------------------------------------------------------------------- /packages/js/src/utils/is-browser.ts: -------------------------------------------------------------------------------- 1 | export function isBrowser() { 2 | return typeof window !== 'undefined'; 3 | } 4 | -------------------------------------------------------------------------------- /packages/shared/src/dto/topic/index.ts: -------------------------------------------------------------------------------- 1 | export * from './topic.dto'; 2 | export * from './topic-subscriber.interface'; 3 | -------------------------------------------------------------------------------- /packages/stateless/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'ts-jest', 3 | testEnvironment: 'node', 4 | }; 5 | -------------------------------------------------------------------------------- /playground/nextjs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/playground/nextjs/public/favicon.ico -------------------------------------------------------------------------------- /.cursorignore: -------------------------------------------------------------------------------- 1 | # Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv) 2 | apps/api/src/metadata.ts 3 | -------------------------------------------------------------------------------- /apps/api/src/app/change/usecases/promote-translation-change/index.ts: -------------------------------------------------------------------------------- 1 | export * from './promote-translation-change.usecase'; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/rate-limiting/guards/index.ts: -------------------------------------------------------------------------------- 1 | export * from './throttler.decorator'; 2 | export * from './throttler.guard'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/widgets/queries/store.query.ts: -------------------------------------------------------------------------------- 1 | export class StoreQuery { 2 | seen?: boolean; 3 | read?: boolean; 4 | } 5 | -------------------------------------------------------------------------------- /apps/dashboard/public/images/opt-in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/opt-in.png -------------------------------------------------------------------------------- /apps/web/public/static/images/logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/logo.webp -------------------------------------------------------------------------------- /apps/web/public/static/images/novu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/novu.png -------------------------------------------------------------------------------- /apps/web/src/api/index.ts: -------------------------------------------------------------------------------- 1 | export * from './api.client'; 2 | export * from './environment'; 3 | export * from './query.keys'; 4 | -------------------------------------------------------------------------------- /apps/web/src/components/quick-start/index.ts: -------------------------------------------------------------------------------- 1 | export * from './digest-demo-flow'; 2 | export * from './in-app-onboarding'; 3 | -------------------------------------------------------------------------------- /apps/web/src/components/workflow/preview/push/index.ts: -------------------------------------------------------------------------------- 1 | export * from './PushPreview'; 2 | export * from './PushBasePreview'; 3 | -------------------------------------------------------------------------------- /apps/web/src/components/workflow/preview/sms/index.ts: -------------------------------------------------------------------------------- 1 | export * from './SmsPreview'; 2 | export * from './SmsBasePreview'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/auth/index.ts: -------------------------------------------------------------------------------- 1 | export * from './auth.service.interface'; 2 | export * from './shared'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/socket-worker/index.ts: -------------------------------------------------------------------------------- 1 | export { SocketWorkerService } from './socket-worker.service'; 2 | -------------------------------------------------------------------------------- /libs/design-system/src/search-input/index.ts: -------------------------------------------------------------------------------- 1 | export * from './SearchInput'; 2 | export * from './useSearchQueryParamState'; 3 | -------------------------------------------------------------------------------- /packages/novu/src/commands/dev/index.ts: -------------------------------------------------------------------------------- 1 | export { devCommand } from './dev'; 2 | export { DevCommandOptions } from './types'; 3 | -------------------------------------------------------------------------------- /packages/novu/src/commands/init/templates/app-react-email/ts/eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /packages/shared/src/dto/environments/tags.interface.ts: -------------------------------------------------------------------------------- 1 | export interface ITagsResponse extends Array<{ name: string }> {} 2 | -------------------------------------------------------------------------------- /apps/api/src/app/integrations/dtos/auto-configure-integration-request.dto.ts: -------------------------------------------------------------------------------- 1 | export class AutoConfigureIntegrationRequestDto {} 2 | -------------------------------------------------------------------------------- /apps/api/src/app/shared/framework/constants/index.ts: -------------------------------------------------------------------------------- 1 | export * from './headers.schema'; 2 | export * from './responses.schema'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/support/usecases/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-thread.usecase'; 2 | export * from './plain-cards.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/workflows-v2/usecases/preview/index.ts: -------------------------------------------------------------------------------- 1 | export * from './preview.command'; 2 | export * from './preview.usecase'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/public/favicon-gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/favicon-gradient.png -------------------------------------------------------------------------------- /apps/dashboard/src/components/schema-editor/json-schema.ts: -------------------------------------------------------------------------------- 1 | export type { JSONSchema7, JSONSchema7TypeName } from 'json-schema'; 2 | -------------------------------------------------------------------------------- /apps/web/public/static/images/avatar.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/avatar.webp -------------------------------------------------------------------------------- /apps/web/src/components/utils/When.tsx: -------------------------------------------------------------------------------- 1 | export const When = ({ truthy, children, fallback = null }) => (truthy ? children : null); 2 | -------------------------------------------------------------------------------- /apps/web/src/constants/workflowConstants.ts: -------------------------------------------------------------------------------- 1 | export const FIRST_100_WORKFLOWS = { 2 | pageIndex: 0, 3 | pageSize: 100, 4 | }; 5 | -------------------------------------------------------------------------------- /apps/web/src/pages/activities/services/chart-bar/index.ts: -------------------------------------------------------------------------------- 1 | export * from './option.service'; 2 | export * from './data.service'; 3 | -------------------------------------------------------------------------------- /apps/webhook/src/.env.test: -------------------------------------------------------------------------------- 1 | MONGO_URL=mongodb://127.0.0.1:27017/novu-test 2 | PORT=1341 3 | NODE_ENV=test 4 | 5 | LOG_LEVEL=error 6 | -------------------------------------------------------------------------------- /enterprise/workers/socket/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "wrangler.json": "jsonc" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /libs/application-generic/README.md: -------------------------------------------------------------------------------- 1 | # Application generic 2 | 3 | Generic backend code used inside of Novu's different services 4 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/readiness/index.ts: -------------------------------------------------------------------------------- 1 | export { INovuWorker, ReadinessService } from './readiness.service'; 2 | -------------------------------------------------------------------------------- /libs/automation/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["nrwl.angular-console", "firsttris.vscode-jest-runner"] 3 | } 4 | -------------------------------------------------------------------------------- /libs/design-system/src/pagination/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Pagination'; 2 | export * from './usePaginationQueryParamsState'; 3 | -------------------------------------------------------------------------------- /libs/design-system/src/when/index.tsx: -------------------------------------------------------------------------------- 1 | export const When = ({ truthy, children, fallback = null }) => (truthy ? children : null); 2 | -------------------------------------------------------------------------------- /packages/shared/src/dto/bridge/bridge.interface.ts: -------------------------------------------------------------------------------- 1 | export interface IValidateBridgeUrlResponse { 2 | isValid: boolean; 3 | } 4 | -------------------------------------------------------------------------------- /packages/shared/src/entities/notification/notification.interface.ts: -------------------------------------------------------------------------------- 1 | export interface INotification { 2 | _id: string; 3 | } 4 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | auto-install-peers=true 2 | strict-peer-dependencies=false 3 | fetch-retry-maxtimeout=10000 4 | enable-pre-post-scripts=true 5 | -------------------------------------------------------------------------------- /apps/api/src/app/change/usecases/promote-translation-group-change/index.ts: -------------------------------------------------------------------------------- 1 | export * from './promote-translation-group-change.usecase'; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/topics-v1/use-cases/get-topic/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-topic.command'; 2 | export * from './get-topic.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/user/usecases/create-user/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-user.command'; 2 | export * from './create-user.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/config/index.ts: -------------------------------------------------------------------------------- 1 | export * from './cors.config'; 2 | export * from './env.config'; 3 | export * from './env.validators'; 4 | -------------------------------------------------------------------------------- /apps/dashboard/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /apps/dashboard/public/images/logo-light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/logo-light.webp -------------------------------------------------------------------------------- /apps/dashboard/public/images/signin_bg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/signin_bg.webp -------------------------------------------------------------------------------- /apps/dashboard/src/components/welcome/inbox-framework-guide/types.ts: -------------------------------------------------------------------------------- 1 | export type InstallationMethod = 'cli' | 'manual' | 'ai-assist'; 2 | -------------------------------------------------------------------------------- /apps/dashboard/src/components/workflow-editor/payload-schema/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export { useImportSchema } from './use-import-schema'; 2 | -------------------------------------------------------------------------------- /apps/web/public/static/images/signin_bg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/signin_bg.webp -------------------------------------------------------------------------------- /apps/web/src/components/nav/NavMenuButton/index.ts: -------------------------------------------------------------------------------- 1 | export * from './NavMenuLinkButton'; 2 | export * from './NavMenuToggleButton'; 3 | -------------------------------------------------------------------------------- /apps/web/src/ee/editor/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/ControlVariables'; 2 | export * from './components/ControlVariablesForm'; 3 | -------------------------------------------------------------------------------- /apps/web/src/pages/settings/WebhookPage/WebhookPage.types.ts: -------------------------------------------------------------------------------- 1 | export type WebhookClaimStatus = 'unclaimed' | 'pending' | 'claimed'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/subscribers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './types'; 2 | export * from './update-subscriber-channel'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/trigger-base/index.ts: -------------------------------------------------------------------------------- 1 | export { BaseTriggerCommand, TriggerBase } from './trigger-base.usecase'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/utils/variants/index.ts: -------------------------------------------------------------------------------- 1 | export * from './isVariantEmpty'; 2 | export * from './normalizeVariantDefault'; 3 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/integration/index.ts: -------------------------------------------------------------------------------- 1 | export * from './integration.entity'; 2 | export * from './integration.repository'; 3 | -------------------------------------------------------------------------------- /libs/internal-sdk/postman/.gitignore: -------------------------------------------------------------------------------- 1 | # .gitignore 2 | .DS_Store 3 | **/.speakeasy/temp/ 4 | **/.speakeasy/logs/ 5 | .speakeasy/reports 6 | -------------------------------------------------------------------------------- /packages/novu/src/commands/init/templates/app-react-email/ts/app/novu/workflows/index.ts: -------------------------------------------------------------------------------- 1 | export * from './welcome-onboarding-email'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/consts/password-helper/index.ts: -------------------------------------------------------------------------------- 1 | export * from './PasswordResetFlowEnum'; 2 | export * from './passwordHelper'; 3 | -------------------------------------------------------------------------------- /packages/shared/src/dto/workflows/promote-workflow-dto.ts: -------------------------------------------------------------------------------- 1 | export type SyncWorkflowDto = { 2 | targetEnvironmentId: string; 3 | }; 4 | -------------------------------------------------------------------------------- /.nxignore: -------------------------------------------------------------------------------- 1 | .cspell.json 2 | .devcontainer 3 | .github 4 | .source 5 | novu.code-workspace 6 | pnpm-lock.yaml 7 | scripts 8 | playground/ 9 | -------------------------------------------------------------------------------- /apps/api/src/app/change/usecases/apply-change/index.ts: -------------------------------------------------------------------------------- 1 | export * from './apply-change.command'; 2 | export * from './apply-change.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/contexts/usecases/get-context/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-context.command'; 2 | export * from './get-context.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/environments-v2/usecases/sync-strategies/base/index.ts: -------------------------------------------------------------------------------- 1 | export * from './interfaces'; 2 | export * from './operations'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v2/usecases/get-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-layout.command'; 2 | export * from './get-layout.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/rate-limiting/usecases/get-api-rate-limit-cost-config/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-api-rate-limit-cost-config.usecase'; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/shared/services/encryption/index.ts: -------------------------------------------------------------------------------- 1 | export { decryptCredentials, encryptCredentials } from '@novu/application-generic'; 2 | -------------------------------------------------------------------------------- /apps/dashboard/public/images/novu-branding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/novu-branding.png -------------------------------------------------------------------------------- /apps/dashboard/public/images/severity/high.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/severity/high.webp -------------------------------------------------------------------------------- /apps/dashboard/public/images/severity/low.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/severity/low.webp -------------------------------------------------------------------------------- /apps/web/public/static/images/logo-light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/logo-light.webp -------------------------------------------------------------------------------- /apps/web/src/components/workflow/preview/email/Skeleton/index.ts: -------------------------------------------------------------------------------- 1 | export * from './HeaderSkeleton'; 2 | export * from './ContentSkeleton'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/throttle/index.ts: -------------------------------------------------------------------------------- 1 | export * from './redis-throttle.service'; 2 | export * from './throttle.types'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/get-tenant/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-tenant.command'; 2 | export * from './get-tenant.usecase'; 3 | -------------------------------------------------------------------------------- /libs/maily-render/src/index.ts: -------------------------------------------------------------------------------- 1 | export type { JSONContent } from '@tiptap/core'; 2 | export * from './maily'; 3 | export * from './render'; 4 | -------------------------------------------------------------------------------- /packages/js/src/notifications/index.ts: -------------------------------------------------------------------------------- 1 | export * from './notification'; 2 | export * from './notifications'; 3 | export * from './types'; 4 | -------------------------------------------------------------------------------- /packages/providers/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/* 2 | .nyc_output 3 | build 4 | node_modules 5 | src/**.js 6 | coverage 7 | *.log 8 | package-lock.json 9 | -------------------------------------------------------------------------------- /packages/shared/src/consts/inviteTeamMemberNudge.ts: -------------------------------------------------------------------------------- 1 | export const INVITE_TEAM_MEMBER_NUDGE_PAYLOAD_KEY = 'nv-type-team-member-invite-nudge'; 2 | -------------------------------------------------------------------------------- /packages/shared/src/consts/providers/credentials/index.ts: -------------------------------------------------------------------------------- 1 | export * from './provider-credentials'; 2 | export * from './secure-credentials'; 3 | -------------------------------------------------------------------------------- /packages/shared/src/dto/notification-templates/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-template.dto'; 2 | export * from './update-template.dto'; 3 | -------------------------------------------------------------------------------- /packages/shared/src/types/storage.ts: -------------------------------------------------------------------------------- 1 | export enum UploadTypesEnum { 2 | BRANDING = 'BRANDING', 3 | USER_PROFILE = 'USER_PROFILE', 4 | } 5 | -------------------------------------------------------------------------------- /packages/shared/src/types/topic.ts: -------------------------------------------------------------------------------- 1 | export type TopicId = string; 2 | export type TopicKey = string; 3 | export type TopicName = string; 4 | -------------------------------------------------------------------------------- /apps/api/src/app/blueprint/usecases/get-blueprint/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-blueprint.command'; 2 | export * from './get-blueprint.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/change/usecases/promote-notification-template-change/index.ts: -------------------------------------------------------------------------------- 1 | export * from './promote-notification-template-change.usecase'; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/contexts/usecases/list-contexts/index.ts: -------------------------------------------------------------------------------- 1 | export * from './list-contexts.command'; 2 | export * from './list-contexts.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v2/usecases/list-layouts/index.ts: -------------------------------------------------------------------------------- 1 | export * from './list-layouts.command'; 2 | export * from './list-layouts.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/messages/usecases/get-messages/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-messages.command'; 2 | export * from './get-messages.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/topics-v1/use-cases/create-topic/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-topic.command'; 2 | export * from './create-topic.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/topics-v1/use-cases/delete-topic/index.ts: -------------------------------------------------------------------------------- 1 | export * from './delete-topic.command'; 2 | export * from './delete-topic.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/topics-v1/use-cases/rename-topic/index.ts: -------------------------------------------------------------------------------- 1 | export * from './rename-topic.command'; 2 | export * from './rename-topic.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/workflows-v2/usecases/get-workflow/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-workflow.command'; 2 | export * from './get-workflow.usecase'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/public/images/severity/medium.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/severity/medium.webp -------------------------------------------------------------------------------- /apps/web/public/animations/get-started/delay.riv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/animations/get-started/delay.riv -------------------------------------------------------------------------------- /apps/web/public/animations/get-started/digest.riv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/animations/get-started/digest.riv -------------------------------------------------------------------------------- /apps/web/public/animations/get-started/in-app.riv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/animations/get-started/in-app.riv -------------------------------------------------------------------------------- /apps/web/public/static/images/frameworks/js.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/frameworks/js.webp -------------------------------------------------------------------------------- /apps/web/public/static/images/frameworks/vue.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/frameworks/vue.webp -------------------------------------------------------------------------------- /apps/web/src/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './quick-start'; 2 | export * from './IconButton'; 3 | export * from './ClipboardIconButton'; 4 | -------------------------------------------------------------------------------- /apps/web/src/components/workflow/preview/chat/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ChatPreview'; 2 | export { ChatBasePreview } from './ChatBasePreview'; 3 | -------------------------------------------------------------------------------- /apps/web/src/types/FCBase.ts: -------------------------------------------------------------------------------- 1 | import { FC } from 'react'; 2 | 3 | export type FCBase

= FC

; 4 | -------------------------------------------------------------------------------- /apps/web/tests/page-models/editorState.ts: -------------------------------------------------------------------------------- 1 | export enum EditorState { 2 | EDIT = 'Edit', 3 | PREVIEW = 'Preview', 4 | TEST = 'Test', 5 | } 6 | -------------------------------------------------------------------------------- /apps/worker/src/app/shared/utils/constants.ts: -------------------------------------------------------------------------------- 1 | export const EXCEPTION_MESSAGE_ON_WEBHOOK_FILTER = 'Exception while performing webhook request.'; 2 | -------------------------------------------------------------------------------- /libs/application-generic/src/webhooks/dtos/index.ts: -------------------------------------------------------------------------------- 1 | export * from './message-webhook.response.dto'; 2 | export * from './webhook-payload.dto'; 3 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/feed/index.ts: -------------------------------------------------------------------------------- 1 | export * from './feed.entity'; 2 | export * from './feed.repository'; 3 | export * from './feed.schema'; 4 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/job/index.ts: -------------------------------------------------------------------------------- 1 | export * from './job.entity'; 2 | export * from './job.repository'; 3 | export * from './job.schema'; 4 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './layout.entity'; 2 | export * from './layout.repository'; 3 | export * from './types'; 4 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/tenant/index.ts: -------------------------------------------------------------------------------- 1 | export * from './tenant.entity'; 2 | export * from './tenant.repository'; 3 | export * from './types'; 4 | -------------------------------------------------------------------------------- /libs/design-system/src/sidebar/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Sidebar'; 2 | export * from './SidebarFormless'; 3 | export * from './Sidebar.const'; 4 | -------------------------------------------------------------------------------- /packages/js/src/preferences/index.ts: -------------------------------------------------------------------------------- 1 | export * from './preference-schedule'; 2 | export * from './preferences'; 3 | export * from './schedule'; 4 | -------------------------------------------------------------------------------- /packages/js/src/utils/strings.ts: -------------------------------------------------------------------------------- 1 | export const capitalize = (str: string) => { 2 | return str.charAt(0).toUpperCase() + str.slice(1); 3 | }; 4 | -------------------------------------------------------------------------------- /packages/providers/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | export * from './chat'; 2 | export * from './email'; 3 | export * from './push'; 4 | export * from './sms'; 5 | -------------------------------------------------------------------------------- /apps/api/src/app/contexts/usecases/create-context/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-context.command'; 2 | export * from './create-context.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/contexts/usecases/delete-context/index.ts: -------------------------------------------------------------------------------- 1 | export * from './delete-context.command'; 2 | export * from './delete-context.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/contexts/usecases/update-context/index.ts: -------------------------------------------------------------------------------- 1 | export * from './update-context.command'; 2 | export * from './update-context.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/events/usecases/send-test-email/index.ts: -------------------------------------------------------------------------------- 1 | export * from './send-test-email.command'; 2 | export * from './send-test-email.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v1/usecases/create-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-layout.command'; 2 | export * from './create-layout.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v1/usecases/delete-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './delete-layout.command'; 2 | export * from './delete-layout.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v1/usecases/filter-layouts/index.ts: -------------------------------------------------------------------------------- 1 | export * from './filter-layouts.command'; 2 | export * from './filter-layouts.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v1/usecases/update-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './update-layout.command'; 2 | export * from './update-layout.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v2/usecases/delete-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './delete-layout.command'; 2 | export * from './delete-layout.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v2/usecases/preview-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './preview-layout.command'; 2 | export * from './preview-layout.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v2/usecases/upsert-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './upsert-layout.command'; 2 | export * from './upsert-layout.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/messages/usecases/remove-message/index.ts: -------------------------------------------------------------------------------- 1 | export * from './remove-message.command'; 2 | export * from './remove-message.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/rate-limiting/usecases/get-api-rate-limit-algorithm-config/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-api-rate-limit-algorithm-config.usecase'; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/subscribers/usecases/get-subscriber/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-subscriber.command'; 2 | export * from './get-subscriber.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/topics-v1/use-cases/filter-topics/index.ts: -------------------------------------------------------------------------------- 1 | export * from './filter-topics.command'; 2 | export * from './filter-topics.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/workflows-v2/shared/index.ts: -------------------------------------------------------------------------------- 1 | export * from './map-step-type-to-result.mapper'; 2 | export * from './step-type-to-control.mapper'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/workflows-v2/usecases/list-workflows/index.ts: -------------------------------------------------------------------------------- 1 | export * from './list-workflow.usecase'; 2 | export * from './list-workflows.command'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/public/images/auth/chat-preview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/auth/chat-preview.webp -------------------------------------------------------------------------------- /apps/dashboard/public/images/auth/email-preview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/auth/email-preview.webp -------------------------------------------------------------------------------- /apps/dashboard/public/images/auth/push-preview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/auth/push-preview.webp -------------------------------------------------------------------------------- /apps/dashboard/public/images/auth/sms-preview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/auth/sms-preview.webp -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/logo.png -------------------------------------------------------------------------------- /apps/dashboard/public/images/welcome/compliance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/welcome/compliance.png -------------------------------------------------------------------------------- /apps/dashboard/public/images/welcome/view_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/welcome/view_code.png -------------------------------------------------------------------------------- /apps/web/public/static/images/frameworks/react.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/frameworks/react.webp -------------------------------------------------------------------------------- /apps/web/public/static/images/novu-colored-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/novu-colored-text.png -------------------------------------------------------------------------------- /apps/web/src/components/workflow/preview/in-app/index.ts: -------------------------------------------------------------------------------- 1 | export * from './InAppPreview'; 2 | export { InAppBasePreview } from './InAppBasePreview'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/factories/sms/interfaces/index.ts: -------------------------------------------------------------------------------- 1 | export * from './sms.factory.interface'; 2 | export * from './sms.handler.interface'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/analytic-logs/step-run/index.ts: -------------------------------------------------------------------------------- 1 | export * from './step-run.repository'; 2 | export * from './step-run.schema'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/create-change/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-change.command'; 2 | export * from './create-change.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/create-tenant/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-tenant.command'; 2 | export * from './create-tenant.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/select-variant/index.ts: -------------------------------------------------------------------------------- 1 | export * from './select-variant.command'; 2 | export * from './select-variant.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/trigger-event/index.ts: -------------------------------------------------------------------------------- 1 | export * from './trigger-event.command'; 2 | export * from './trigger-event.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/update-change/index.ts: -------------------------------------------------------------------------------- 1 | export * from './update-change.command'; 2 | export * from './update-change.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/update-tenant/index.ts: -------------------------------------------------------------------------------- 1 | export * from './update-tenant.command'; 2 | export * from './update-tenant.usecase'; 3 | -------------------------------------------------------------------------------- /packages/shared/src/entities/actor/actor.interface.ts: -------------------------------------------------------------------------------- 1 | import { IActorDto } from '../../dto'; 2 | 3 | export interface IActor extends IActorDto {} 4 | -------------------------------------------------------------------------------- /packages/shared/src/utils/locales/index.ts: -------------------------------------------------------------------------------- 1 | export * from './locale-registry'; 2 | export * from './locale-validator'; 3 | export * from './locales'; 4 | -------------------------------------------------------------------------------- /apps/api/src/app/auth/usecases/switch-environment/index.ts: -------------------------------------------------------------------------------- 1 | export * from './switch-environment.command'; 2 | export * from './switch-environment.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/environments-v2/services/index.ts: -------------------------------------------------------------------------------- 1 | export * from './dependency-analyzer.service'; 2 | export * from './environment-validation.service'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v2/usecases/get-layout-usage/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-layout-usage.command'; 2 | export * from './get-layout-usage.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/subscribers/usecases/get-subscribers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-subscribers.command'; 2 | export * from './get-subscribers.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/topics-v1/dtos/get-topic.dto.ts: -------------------------------------------------------------------------------- 1 | import { TopicDto } from './topic.dto'; 2 | 3 | export class GetTopicResponseDto extends TopicDto {} 4 | -------------------------------------------------------------------------------- /apps/api/src/app/topics-v1/use-cases/add-subscribers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './add-subscribers.command'; 2 | export * from './add-subscribers.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/workflows-v2/usecases/build-step-data/index.ts: -------------------------------------------------------------------------------- 1 | export * from './build-step-data.command'; 2 | export * from './build-step-data.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/workflows-v2/usecases/patch-workflow/index.ts: -------------------------------------------------------------------------------- 1 | export * from './patch-workflow.command'; 2 | export * from './patch-workflow.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/workflows-v2/usecases/upsert-workflow/index.ts: -------------------------------------------------------------------------------- 1 | export * from './upsert-workflow.command'; 2 | export * from './upsert-workflow.usecase'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/public/images/auth/in_app-preview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/auth/in_app-preview.webp -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/linkedin.png -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/twitter.png -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/youtube.png -------------------------------------------------------------------------------- /apps/dashboard/src/components/billing/utils/action.button.constants.ts: -------------------------------------------------------------------------------- 1 | export enum ActionType { 2 | BUTTON = 'button', 3 | CONTACT = 'contact', 4 | } 5 | -------------------------------------------------------------------------------- /apps/dashboard/src/routes/index.ts: -------------------------------------------------------------------------------- 1 | export * from './auth'; 2 | export * from './catch-all'; 3 | export * from './dashboard'; 4 | export * from './root'; 5 | -------------------------------------------------------------------------------- /apps/web/public/animations/get-started/translation.riv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/animations/get-started/translation.riv -------------------------------------------------------------------------------- /apps/web/public/static/images/frameworks/angular.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/frameworks/angular.webp -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/apns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/apns.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/nexmo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/nexmo.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/novu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/novu.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/plivo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/plivo.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/plunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/plunk.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/ryver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/ryver.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/sinch.png: -------------------------------------------------------------------------------- 1 | iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg== 2 | -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/apns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/apns.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/novu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/novu.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/sinch.png: -------------------------------------------------------------------------------- 1 | iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg== 2 | -------------------------------------------------------------------------------- /apps/web/src/components/layout/components/PageContainer.tsx: -------------------------------------------------------------------------------- 1 | import { PageContainer } from '@novu/design-system'; 2 | 3 | export default PageContainer; 4 | -------------------------------------------------------------------------------- /apps/web/src/components/workflow/preview/common/icons/android/index.ts: -------------------------------------------------------------------------------- 1 | export * from './AndroidIndicatorsIcon'; 2 | export * from './AndroidKeyboard'; 3 | -------------------------------------------------------------------------------- /apps/web/src/constants/BaseEnvironmentEnum.ts: -------------------------------------------------------------------------------- 1 | export enum BaseEnvironmentEnum { 2 | DEVELOPMENT = 'Development', 3 | PRODUCTION = 'Production', 4 | } 5 | -------------------------------------------------------------------------------- /apps/worker/src/app/workflow/usecases/run-job/index.ts: -------------------------------------------------------------------------------- 1 | export { RunJobCommand } from './run-job.command'; 2 | export { RunJob } from './run-job.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/factories/push/interfaces/index.ts: -------------------------------------------------------------------------------- 1 | export * from './push.factory.interface'; 2 | export * from './push.handler.interface'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/analytic-logs/trace-log/index.ts: -------------------------------------------------------------------------------- 1 | export * from './trace-log.repository'; 2 | export * from './trace-log.schema'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/get-novu-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-novu-layout.command'; 2 | export * from './get-novu-layout.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/subscribers/types/index.ts: -------------------------------------------------------------------------------- 1 | export enum OAuthHandlerEnum { 2 | NOVU = 'novu', 3 | EXTERNAL = 'external', 4 | } 5 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/change/index.ts: -------------------------------------------------------------------------------- 1 | export * from './change.entity'; 2 | export * from './change.repository'; 3 | export * from './change.schema'; 4 | -------------------------------------------------------------------------------- /libs/internal-sdk/src/sdk/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. 3 | */ 4 | 5 | export * from "./sdk.js"; 6 | -------------------------------------------------------------------------------- /libs/notifications/README.md: -------------------------------------------------------------------------------- 1 | # @novu/notifications 2 | 3 | Reusable notification templates and workflows for the Novu platform. 4 | 5 | ## Installation 6 | -------------------------------------------------------------------------------- /packages/framework/src/globals.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | 3 | declare global { 4 | const SDK_VERSION: string; 5 | const FRAMEWORK_VERSION: string; 6 | } 7 | -------------------------------------------------------------------------------- /packages/js/src/cache/index.ts: -------------------------------------------------------------------------------- 1 | export { NotificationsCache } from './notifications-cache'; 2 | export { SubscriptionsCache } from './subscriptions-cache'; 3 | -------------------------------------------------------------------------------- /packages/js/src/ui/config/index.ts: -------------------------------------------------------------------------------- 1 | export * from './appearanceKeys'; 2 | export * from './defaultLocalization'; 3 | export * from './defaultVariables'; 4 | -------------------------------------------------------------------------------- /packages/shared/src/consts/providers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './credentials'; 2 | export * from './provider.interface'; 3 | export * from './providers'; 4 | -------------------------------------------------------------------------------- /packages/shared/src/dto/tenant/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-tenant.dto'; 2 | export * from './tenant.dto'; 3 | export * from './update-tenant.dto'; 4 | -------------------------------------------------------------------------------- /packages/shared/src/dto/widget/index.ts: -------------------------------------------------------------------------------- 1 | export * from './notification.dto'; 2 | export * from './subscriber-preference/update-subscriber-preference.dto'; 3 | -------------------------------------------------------------------------------- /packages/shared/src/entities/apiKeys/apiKeys.interface.ts: -------------------------------------------------------------------------------- 1 | export interface IApiKey { 2 | key: string; 3 | _userId: string; 4 | hash?: string; 5 | } 6 | -------------------------------------------------------------------------------- /packages/shared/src/entities/workflow-run/index.ts: -------------------------------------------------------------------------------- 1 | export * from './delivery-lifecycle-detail.enum'; 2 | export * from './delivery-lifecycle-status.enum'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/auth/usecases/switch-organization/index.ts: -------------------------------------------------------------------------------- 1 | export * from './switch-organization.command'; 2 | export * from './switch-organization.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/environments-v1/usecases/get-environment/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-environment.command'; 2 | export * from './get-environment.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/environments-v2/usecases/diff-environment/index.ts: -------------------------------------------------------------------------------- 1 | export * from './diff-environment.command'; 2 | export * from './diff-environment.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/environments-v2/usecases/sync-strategies/index.ts: -------------------------------------------------------------------------------- 1 | export * from './base/base-sync.strategy'; 2 | export * from './workflow-sync.strategy'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v1/dtos/get-layout.dto.ts: -------------------------------------------------------------------------------- 1 | import { LayoutDto } from './layout.dto'; 2 | 3 | export class GetLayoutResponseDto extends LayoutDto {} 4 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v2/usecases/duplicate-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './duplicate-layout.command'; 2 | export * from './duplicate-layout.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/subscribers/usecases/remove-subscriber/index.ts: -------------------------------------------------------------------------------- 1 | export * from './remove-subscriber.command'; 2 | export * from './remove-subscriber.usecase'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/public/images/auth/in_app-preview-v3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/auth/in_app-preview-v3.webp -------------------------------------------------------------------------------- /apps/dashboard/public/images/translation-onboarding-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/translation-onboarding-1.jpg -------------------------------------------------------------------------------- /apps/dashboard/public/images/translations-onboarding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/translations-onboarding.png -------------------------------------------------------------------------------- /apps/dashboard/src/components/workflow-editor/payload-schema/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components'; 2 | export * from './hooks'; 3 | export * from './utils'; 4 | -------------------------------------------------------------------------------- /apps/dashboard/src/context/escape-key-manager/priority.ts: -------------------------------------------------------------------------------- 1 | export enum EscapeKeyManagerPriority { 2 | NONE = 0, 3 | SHEET = 100, 4 | POPOVER = 200, 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/public/animations/get-started/multi-channel.riv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/animations/get-started/multi-channel.riv -------------------------------------------------------------------------------- /apps/web/public/static/images/mobilePreview/android.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/mobilePreview/android.webp -------------------------------------------------------------------------------- /apps/web/public/static/images/mobilePreview/iphone.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/mobilePreview/iphone.webp -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/46elks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/46elks.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/bulk-sms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/bulk-sms.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/gupshup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/gupshup.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/infobip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/infobip.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/kannel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/kannel.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/mailjet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/mailjet.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/maqsam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/maqsam.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/netcore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/netcore.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/postmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/postmark.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/sendgrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/sendgrid.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/telnyx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/telnyx.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/termii.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/termii.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/twilio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/twilio.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/46elks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/46elks.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/gupshup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/gupshup.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/infobip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/infobip.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/kannel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/kannel.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/mailjet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/mailjet.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/maqsam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/maqsam.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/netcore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/netcore.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/nexmo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/nexmo.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/plivo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/plivo.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/plunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/plunk.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/ryver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/ryver.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/telnyx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/telnyx.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/termii.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/termii.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/twilio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/twilio.png -------------------------------------------------------------------------------- /apps/web/src/components/workflow/preview/common/icons/index.ts: -------------------------------------------------------------------------------- 1 | export * from './iphone'; 2 | export * from './android'; 3 | export * from './InAppHeaderIcons'; 4 | -------------------------------------------------------------------------------- /apps/web/src/ee/billing/utils/formatCurrency.ts: -------------------------------------------------------------------------------- 1 | export const formatCurrency = (num: number) => num.toLocaleString(undefined, { minimumFractionDigits: 2 }); 2 | -------------------------------------------------------------------------------- /apps/webhook/src/.example.env: -------------------------------------------------------------------------------- 1 | NODE_ENV=local 2 | PORT=3003 3 | MONGO_URL=mongodb://127.0.0.1:27017/novu-db 4 | MONGO_MAX_POOL_SIZE=500 5 | 6 | LOG_LEVEL=info 7 | -------------------------------------------------------------------------------- /apps/worker/src/app/shared/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './constants'; 2 | export * from './exceptions'; 3 | export * from './should-halt-on-step-failure'; 4 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/analytic-logs/request-log/index.ts: -------------------------------------------------------------------------------- 1 | export * from './request-log.repository'; 2 | export * from './request-log.schema'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/analytic-logs/workflow-run/index.ts: -------------------------------------------------------------------------------- 1 | export * from './workflow-run.repository'; 2 | export * from './workflow-run.schema'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/cache/key-builders/index.ts: -------------------------------------------------------------------------------- 1 | export * from './entities'; 2 | export * from './identifiers'; 3 | export * from './queries'; 4 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/conditions-filter/index.ts: -------------------------------------------------------------------------------- 1 | export * from './conditions-filter.command'; 2 | export * from './conditions-filter.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/merge-preferences/index.ts: -------------------------------------------------------------------------------- 1 | export * from './merge-preferences.command'; 2 | export * from './merge-preferences.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/trigger-broadcast/index.ts: -------------------------------------------------------------------------------- 1 | export * from './trigger-broadcast.command'; 2 | export * from './trigger-broadcast.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/trigger-multicast/index.ts: -------------------------------------------------------------------------------- 1 | export * from './trigger-multicast.command'; 2 | export * from './trigger-multicast.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/update-subscriber/index.ts: -------------------------------------------------------------------------------- 1 | export * from './update-subscriber.command'; 2 | export * from './update-subscriber.usecase'; 3 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/context/index.ts: -------------------------------------------------------------------------------- 1 | export * from './context.entity'; 2 | export * from './context.repository'; 3 | export * from './context.schema'; 4 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/environment/index.ts: -------------------------------------------------------------------------------- 1 | export * from './environment.entity'; 2 | export * from './environment.repository'; 3 | export * from './types'; 4 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/message/index.ts: -------------------------------------------------------------------------------- 1 | export * from './message.entity'; 2 | export * from './message.repository'; 3 | export * from './message.schema'; 4 | -------------------------------------------------------------------------------- /libs/notifications/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/* 2 | .nyc_output 3 | build 4 | node_modules 5 | test 6 | src/**.js 7 | coverage 8 | *.log 9 | package-lock.json 10 | -------------------------------------------------------------------------------- /packages/add-inbox/src/generators/frameworks/index.ts: -------------------------------------------------------------------------------- 1 | export { generateNextJsComponent } from './nextjs'; 2 | export { generateReactComponent } from './react'; 3 | -------------------------------------------------------------------------------- /packages/framework/src/types/skip.types.ts: -------------------------------------------------------------------------------- 1 | import type { Awaitable } from './util.types'; 2 | 3 | export type Skip = (controls: T) => Awaitable; 4 | -------------------------------------------------------------------------------- /packages/js/scripts/copy-package-json.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cp ./package.cjs.json ./dist/cjs/package.json 4 | cp ./package.esm.json ./dist/esm/package.json 5 | -------------------------------------------------------------------------------- /packages/novu/src/commands/init/templates/app-react-email/ts/postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | }, 5 | }; 6 | -------------------------------------------------------------------------------- /packages/shared/src/entities/user/index.ts: -------------------------------------------------------------------------------- 1 | export * from './subscriber-user.interface'; 2 | export * from './user.enums'; 3 | export * from './user.interface'; 4 | -------------------------------------------------------------------------------- /packages/stateless/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/* 2 | .nyc_output 3 | build 4 | node_modules 5 | test 6 | src/**.js 7 | coverage 8 | *.log 9 | package-lock.json 10 | -------------------------------------------------------------------------------- /scripts/clean-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | pnpm run clean 4 | pnpm i 5 | pnpm run symlink:submodules 6 | pnpm nx run-many --target=build --all --skip-nx-cache 7 | -------------------------------------------------------------------------------- /_templates/module/new/usecase-index.ejs.t: -------------------------------------------------------------------------------- 1 | --- 2 | to: apps/api/src/app/<%= name %>/usecases/index.ts 3 | --- 4 | export const USE_CASES = [ 5 | // 6 | ]; 7 | 8 | -------------------------------------------------------------------------------- /apps/api/src/app/bridge/usecases/store-control-values/index.ts: -------------------------------------------------------------------------------- 1 | export * from './store-control-values.command'; 2 | export * from './store-control-values.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v1/usecases/find-deleted-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './find-deleted-layout.command'; 2 | export * from './find-deleted-layout.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v1/usecases/set-default-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './set-default-layout.command'; 2 | export * from './set-default-layout.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/storage/usecases/index.ts: -------------------------------------------------------------------------------- 1 | import { GetSignedUrl } from './get-signed-url/get-signed-url.usecase'; 2 | 3 | export const USE_CASES = [GetSignedUrl]; 4 | -------------------------------------------------------------------------------- /apps/api/src/app/topics-v1/use-cases/remove-subscribers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './remove-subscribers.command'; 2 | export * from './remove-subscribers.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/workflows-v2/usecases/duplicate-workflow/index.ts: -------------------------------------------------------------------------------- 1 | export * from './duplicate-workflow.command'; 2 | export * from './duplicate-workflow.usecase'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/public/images/welcome/calendar_schedule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/welcome/calendar_schedule.png -------------------------------------------------------------------------------- /apps/dashboard/src/components/workflow-editor/test-workflow/types.ts: -------------------------------------------------------------------------------- 1 | export type SnippetLanguage = 'shell' | 'framework' | 'typescript' | 'php' | 'go' | 'python'; 2 | -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/azure-sms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/azure-sms.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/bandwidth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/bandwidth.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/clickatell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/clickatell.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/clicksend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/clicksend.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/isend-sms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/isend-sms.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/outlook365.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/outlook365.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/sendinblue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/sendinblue.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/azure-sms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/azure-sms.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/bandwidth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/bandwidth.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/bulk-sms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/bulk-sms.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/clicksend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/clicksend.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/isend-sms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/isend-sms.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/postmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/postmark.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/sendgrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/sendgrid.png -------------------------------------------------------------------------------- /libs/application-generic/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/* 2 | .nyc_output 3 | build 4 | node_modules 5 | test 6 | src/**.js 7 | coverage 8 | *.log 9 | package-lock.json 10 | -------------------------------------------------------------------------------- /libs/application-generic/src/pipes/index.ts: -------------------------------------------------------------------------------- 1 | export * from './parse-slug-env-id.pipe'; 2 | export * from './parse-slug-id'; 3 | export * from './parse-slug-id.pipe'; 4 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/delete-preferences/index.ts: -------------------------------------------------------------------------------- 1 | export * from './delete-preferences.command'; 2 | export * from './delete-preferences.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/normalize-variables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './normalize-variables.command'; 2 | export * from './normalize-variables.usecase'; 3 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/notification-template/index.ts: -------------------------------------------------------------------------------- 1 | export * from './notification-template.entity'; 2 | export * from './notification-template.repository'; 3 | -------------------------------------------------------------------------------- /libs/internal-sdk/temp/example.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. 3 | */ 4 | 5 | const value: number = [object Object]; -------------------------------------------------------------------------------- /packages/framework/src/constants/http-methods.constants.ts: -------------------------------------------------------------------------------- 1 | export enum HttpMethodEnum { 2 | POST = 'POST', 3 | GET = 'GET', 4 | OPTIONS = 'OPTIONS', 5 | } 6 | -------------------------------------------------------------------------------- /packages/framework/src/filters/types.ts: -------------------------------------------------------------------------------- 1 | export type LiquidFilterIssue = { 2 | message: string; 3 | begin: number; 4 | end: number; 5 | value: string; 6 | }; 7 | -------------------------------------------------------------------------------- /packages/framework/src/types/server.types.ts: -------------------------------------------------------------------------------- 1 | export type SupportedFrameworkName = 'next' | 'express' | 'nuxt' | 'h3' | 'sveltekit' | 'remix' | 'lambda' | 'nest'; 2 | -------------------------------------------------------------------------------- /packages/js/src/ws/index.ts: -------------------------------------------------------------------------------- 1 | export * from './base-socket'; 2 | export * from './party-socket'; 3 | export * from './socket'; 4 | export * from './socket-factory'; 5 | -------------------------------------------------------------------------------- /packages/js/ui/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/ui/index.js", 3 | "module": "../dist/esm/ui/index.mjs", 4 | "types": "../dist/cjs/ui/index.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /packages/shared/src/consts/severity.ts: -------------------------------------------------------------------------------- 1 | export enum SeverityLevelEnum { 2 | HIGH = 'high', 3 | MEDIUM = 'medium', 4 | LOW = 'low', 5 | NONE = 'none', 6 | } 7 | -------------------------------------------------------------------------------- /apps/api/src/app/auth/framework/external-api.decorator.ts: -------------------------------------------------------------------------------- 1 | import { ExternalApiAccessible } from '@novu/application-generic'; 2 | 3 | export { ExternalApiAccessible }; 4 | -------------------------------------------------------------------------------- /apps/api/src/app/environments-v1/usecases/delete-environment/index.ts: -------------------------------------------------------------------------------- 1 | export * from './delete-environment.command'; 2 | export * from './delete-environment.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/environments-v2/usecases/publish-environment/index.ts: -------------------------------------------------------------------------------- 1 | export * from './publish-environment.command'; 2 | export * from './publish-environment.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/inbound-parse/usecases/index.ts: -------------------------------------------------------------------------------- 1 | import { GetMxRecord } from './get-mx-record/get-mx-record.usecase'; 2 | 3 | export const USE_CASES = [GetMxRecord]; 4 | -------------------------------------------------------------------------------- /apps/api/src/app/integrations/usecases/generate-chat-oath-url/chat-oauth.constants.ts: -------------------------------------------------------------------------------- 1 | export const CHAT_OAUTH_CALLBACK_PATH = '/v1/integrations/chat/oauth/callback'; 2 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v1/usecases/check-layout-is-used/index.ts: -------------------------------------------------------------------------------- 1 | export * from './check-layout-is-used.command'; 2 | export * from './check-layout-is-used.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v1/usecases/create-default-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-default-layout.command'; 2 | export * from './create-default-layout.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v1/usecases/create-layout-change/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-layout-change.command'; 2 | export * from './create-layout-change.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/shared/transformers/trim.ts: -------------------------------------------------------------------------------- 1 | import { Transform } from 'class-transformer'; 2 | 3 | export const Trim = () => Transform(({ value }) => value?.trim()); 4 | -------------------------------------------------------------------------------- /apps/api/src/app/subscriptions/usecases/create-subscriptions/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-subscriptions.command'; 2 | export * from './create-subscriptions.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/subscriptions/usecases/update-subscription/index.ts: -------------------------------------------------------------------------------- 1 | export * from './update-subscription.command'; 2 | export * from './update-subscription.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/topics-v1/use-cases/get-topic-subscriber/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-topic-subscriber.command'; 2 | export * from './get-topic-subscriber.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/workflows-v2/usecases/sync-to-environment/index.ts: -------------------------------------------------------------------------------- 1 | export * from './sync-to-environment.command'; 2 | export * from './sync-to-environment.usecase'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/src/components/side-navigation/organization-dropdown.tsx: -------------------------------------------------------------------------------- 1 | export { OrganizationDropdown } from '@/components/side-navigation/organization-dropdown-clerk'; 2 | -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/messagebird.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/messagebird.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/mobishastra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/mobishastra.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/simpletexting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/simpletexting.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/sms-central.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/sms-central.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/clickatell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/clickatell.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/messagebird.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/messagebird.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/mobishastra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/mobishastra.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/outlook365.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/outlook365.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/sendinblue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/sendinblue.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/sms-central.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/sms-central.png -------------------------------------------------------------------------------- /apps/web/src/components/settings/index.ts: -------------------------------------------------------------------------------- 1 | export { OrganizationSettings } from './OrganizationSettings'; 2 | export { NovuBrandingSwitch } from './NovuBrandingSwitch'; 3 | -------------------------------------------------------------------------------- /apps/web/src/ee/translations/index.ts: -------------------------------------------------------------------------------- 1 | export { FlagIcon } from './components/shared'; 2 | export * from './routes'; 3 | export * from './utils/createTranslationMarks'; 4 | -------------------------------------------------------------------------------- /apps/web/src/utils/iframe.ts: -------------------------------------------------------------------------------- 1 | export function inIframe() { 2 | try { 3 | return window.self !== window.top; 4 | } catch (e) { 5 | return true; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /apps/worker/src/app/workflow/usecases/process-unsnooze-job/index.ts: -------------------------------------------------------------------------------- 1 | export * from './process-unsnooze-job.command'; 2 | export * from './process-unsnooze-job.usecase'; 3 | -------------------------------------------------------------------------------- /apps/ws/src/socket/usecases/external-services-route/index.ts: -------------------------------------------------------------------------------- 1 | export * from './external-services-route.command'; 2 | export * from './external-services-route.usecase'; 3 | -------------------------------------------------------------------------------- /libs/novui/src/icons/Icon.const.ts: -------------------------------------------------------------------------------- 1 | import { IconSize } from './Icon.types'; 2 | 3 | /** 4 | * Style Props 5 | */ 6 | export const DEFAULT_ICON_SIZE: IconSize = '20'; 7 | -------------------------------------------------------------------------------- /libs/novui/src/json-schema-components/widgets/index.ts: -------------------------------------------------------------------------------- 1 | export * from './CheckboxWidget'; 2 | export * from './InputEditorWidget'; 3 | export * from './SelectWidget'; 4 | -------------------------------------------------------------------------------- /packages/framework/src/constants/resource.constants.ts: -------------------------------------------------------------------------------- 1 | export enum ResourceEnum { 2 | WORKFLOW = 'workflow', 3 | PROVIDER = 'provider', 4 | STEP = 'step', 5 | } 6 | -------------------------------------------------------------------------------- /packages/framework/src/servers/nest/nest.constants.ts: -------------------------------------------------------------------------------- 1 | export const REGISTER_API_PATH = 'REGISTER_API_PATH'; 2 | export { NOVU_OPTIONS } from './nest.module-definition'; 3 | -------------------------------------------------------------------------------- /packages/js/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "module": "CommonJS", 5 | "outDir": "./dist/cjs" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/shared/src/config/index.ts: -------------------------------------------------------------------------------- 1 | export * from './contextPath'; 2 | export * from './job-queue'; 3 | export * from './processEnv'; 4 | export * from './redisPrefix'; 5 | -------------------------------------------------------------------------------- /packages/shared/src/entities/organization/index.ts: -------------------------------------------------------------------------------- 1 | export * from './member.enum'; 2 | export * from './member.interface'; 3 | export * from './organization.interface'; 4 | -------------------------------------------------------------------------------- /apps/api/src/app/bridge/usecases/preview-step/index.ts: -------------------------------------------------------------------------------- 1 | export { PreviewStepCommand } from './preview-step.command'; 2 | export { PreviewStep } from './preview-step.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/environments-v2/usecases/get-environment-tags/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-environment-tags.command'; 2 | export * from './get-environment-tags.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/organization/dtos/get-my-organization.dto.ts: -------------------------------------------------------------------------------- 1 | import { OrganizationEntity } from '@novu/dal'; 2 | 3 | export type IGetMyOrganizationDto = OrganizationEntity; 4 | -------------------------------------------------------------------------------- /apps/api/src/app/organization/dtos/get-organizations.dto.ts: -------------------------------------------------------------------------------- 1 | import { OrganizationEntity } from '@novu/dal'; 2 | 3 | export type IGetOrganizationsDto = OrganizationEntity[]; 4 | -------------------------------------------------------------------------------- /apps/api/src/app/shared/usecases/create-variables-object/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-variables-object.command'; 2 | export * from './create-variables-object.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/widgets/queries/get-count.query.ts: -------------------------------------------------------------------------------- 1 | export class GetCountQuery { 2 | feedIdentifier?: string[] | string; 3 | seen?: boolean; 4 | read?: boolean; 5 | } 6 | -------------------------------------------------------------------------------- /apps/api/src/app/workflows-v2/usecases/build-test-data/index.ts: -------------------------------------------------------------------------------- 1 | export * from './build-workflow-test-data.command'; 2 | export * from './build-workflow-test-data.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/webpack.config.js: -------------------------------------------------------------------------------- 1 | // biome-ignore lint/style/noCommonJs: 2 | module.exports = (options) => ({ 3 | ...options, 4 | devtool: 'source-map', 5 | }); 6 | -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/header-hero-image.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/header-hero-image.webp -------------------------------------------------------------------------------- /apps/dashboard/public/images/notifications/notification_01.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/notifications/notification_01.webp -------------------------------------------------------------------------------- /apps/dashboard/public/images/notifications/notification_02.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/notifications/notification_02.webp -------------------------------------------------------------------------------- /apps/dashboard/public/images/notifications/notification_03.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/notifications/notification_03.webp -------------------------------------------------------------------------------- /apps/dashboard/src/components/translations/translation-drawer/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export * from './use-translation-editor'; 2 | export * from './use-translation-file-operations'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/src/utils/titleize.ts: -------------------------------------------------------------------------------- 1 | export const titleize = (str: string) => { 2 | return str.replace(/_/g, ' ').replace(/\b\w/g, (char) => char.toUpperCase()); 3 | }; 4 | -------------------------------------------------------------------------------- /apps/web/public/static/images/notifications/notification_01.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/notifications/notification_01.webp -------------------------------------------------------------------------------- /apps/web/public/static/images/notifications/notification_02.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/notifications/notification_02.webp -------------------------------------------------------------------------------- /apps/web/public/static/images/notifications/notification_03.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/notifications/notification_03.webp -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/dark/grafana-on-call.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/dark/grafana-on-call.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/simpletexting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/simpletexting.png -------------------------------------------------------------------------------- /apps/web/src/components/workflow/preview/common/icons/iphone/index.ts: -------------------------------------------------------------------------------- 1 | export * from './IOSIndicatorsIcon'; 2 | export * from './IOSKeyboard'; 3 | export * from './TimeIcon'; 4 | -------------------------------------------------------------------------------- /apps/worker/src/app/workflow/usecases/store-subscriber-jobs/index.ts: -------------------------------------------------------------------------------- 1 | export * from './store-subscriber-jobs.command'; 2 | export * from './store-subscriber-jobs.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/modules/interfaces.ts: -------------------------------------------------------------------------------- 1 | export interface IDestroy { 2 | gracefulShutdown?: () => Promise; 3 | onModuleDestroy: () => Promise; 4 | } 5 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/compile-email-template/index.ts: -------------------------------------------------------------------------------- 1 | export * from './compile-email-template.command'; 2 | export * from './compile-email-template.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/compile-step-template/index.ts: -------------------------------------------------------------------------------- 1 | export * from './compile-step-template.command'; 2 | export * from './compile-step-template.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/create-execution-details/dtos/index.ts: -------------------------------------------------------------------------------- 1 | export * from './execution-details.dto'; 2 | export * from './execution-details-response.dto'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/get-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-layout.command'; 2 | export * from './get-layout.use-case'; 3 | export * from './layout.dto'; 4 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/get-topic-subscribers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-topic-subscribers.command'; 2 | export * from './get-topic-subscribers.use-case'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/upsert-control-values/index.ts: -------------------------------------------------------------------------------- 1 | export * from './upsert-control-values.command'; 2 | export * from './upsert-control-values.usecase'; 3 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/preferences/index.ts: -------------------------------------------------------------------------------- 1 | export * from './preferences.entity'; 2 | export * from './preferences.repository'; 3 | export * from './preferences.schema'; 4 | -------------------------------------------------------------------------------- /libs/design-system/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "module": "ESNext", 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /libs/maily-core/src/index.ts: -------------------------------------------------------------------------------- 1 | import './styles/index.css'; 2 | import './styles/preflight.css'; 3 | import './styles/tailwind.css'; 4 | 5 | export * from './editor/index'; 6 | -------------------------------------------------------------------------------- /libs/maily-render/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@novu/maily-tsconfig/react-library.json", 3 | "include": ["."], 4 | "exclude": ["dist", "build", "node_modules"] 5 | } 6 | -------------------------------------------------------------------------------- /packages/shared/src/dto/workflows/workflow-status-enum.ts: -------------------------------------------------------------------------------- 1 | export enum WorkflowStatusEnum { 2 | ACTIVE = 'ACTIVE', 3 | INACTIVE = 'INACTIVE', 4 | ERROR = 'ERROR', 5 | } 6 | -------------------------------------------------------------------------------- /packages/shared/src/entities/user/user.enums.ts: -------------------------------------------------------------------------------- 1 | export enum AuthProviderEnum { 2 | GITHUB = 'github', 3 | } 4 | 5 | export enum UserRoleEnum { 6 | USER = 'user', 7 | } 8 | -------------------------------------------------------------------------------- /packages/shared/src/types/secrets.ts: -------------------------------------------------------------------------------- 1 | export const NOVU_ENCRYPTION_SUB_MASK = 'nvsk.'; 2 | 3 | export type EncryptedSecret = `${typeof NOVU_ENCRYPTION_SUB_MASK}${string}`; 4 | -------------------------------------------------------------------------------- /playground/nextjs/next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | reactStrictMode: true, 4 | }; 5 | 6 | export default nextConfig; 7 | -------------------------------------------------------------------------------- /apps/api/src/app/change/usecases/promote-type-change.command.ts: -------------------------------------------------------------------------------- 1 | import { PromoteTypeChangeCommand } from '@novu/application-generic'; 2 | 3 | export { PromoteTypeChangeCommand }; 4 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v2/usecases/layout-variables-schema/index.ts: -------------------------------------------------------------------------------- 1 | export * from './layout-variables-schema.command'; 2 | export * from './layout-variables-schema.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/layouts-v2/usecases/sync-to-environment/index.ts: -------------------------------------------------------------------------------- 1 | export * from './layout-sync-to-environment.command'; 2 | export * from './layout-sync-to-environment.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/shared/constants.ts: -------------------------------------------------------------------------------- 1 | export const DAL_SERVICE = 'DalService'; 2 | export const EXCEPTION_MESSAGE_ON_WEBHOOK_FILTER = 'Exception while performing webhook request.'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/digest-block-preview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/digest-block-preview.webp -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/html-block-preview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/html-block-preview.webp -------------------------------------------------------------------------------- /apps/web/public/static/images/onboarding/collaborate-controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/onboarding/collaborate-controls.png -------------------------------------------------------------------------------- /apps/web/public/static/images/providers/light/grafana-on-call.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/web/public/static/images/providers/light/grafana-on-call.png -------------------------------------------------------------------------------- /apps/web/src/api/invitation.ts: -------------------------------------------------------------------------------- 1 | import { api } from './api.client'; 2 | 3 | export function getInviteTokenData(token: string) { 4 | return api.get(`/v1/invites/${token}`); 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/src/ee/clerk/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components/UserProfileButton'; 2 | export * from './components/OrganizationSwitcher'; 3 | export * from './EnterpriseAuthRoutes'; 4 | -------------------------------------------------------------------------------- /enterprise/packages/shared-services/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/* 2 | .nyc_output 3 | build 4 | node_modules 5 | test 6 | src/**.js 7 | coverage 8 | *.log 9 | package-lock.json 10 | -------------------------------------------------------------------------------- /enterprise/packages/shared-services/README.md: -------------------------------------------------------------------------------- 1 | # Shared services 2 | 3 | Generic service used inside of Novu's different services - can not be depended on application-generic. 4 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/compile-in-app-template/index.ts: -------------------------------------------------------------------------------- 1 | export * from './compile-in-app-template.command'; 2 | export * from './compile-in-app-template.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/get-decrypted-secret-key/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-decrypted-secret-key.command'; 2 | export * from './get-decrypted-secret-key.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/get-subscriber-schedule/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-subscriber-schedule.command'; 2 | export * from './get-subscriber-schedule.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/value-objects/i-step.control.ts: -------------------------------------------------------------------------------- 1 | import { JSONSchema } from './json-schema'; 2 | 3 | export interface IStepControl { 4 | schema: JSONSchema; 5 | } 6 | -------------------------------------------------------------------------------- /libs/application-generic/src/webhooks/usecases/send-webhook-message/index.ts: -------------------------------------------------------------------------------- 1 | export * from './send-webhook-message.command'; 2 | export * from './send-webhook-message.usecase'; 3 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/localization/index.ts: -------------------------------------------------------------------------------- 1 | export * from './localization.entity'; 2 | export * from './localization.repository'; 3 | export * from './localization.schema'; 4 | -------------------------------------------------------------------------------- /libs/dal/src/shared/types/index.type.ts: -------------------------------------------------------------------------------- 1 | import { IndexDirection } from 'mongoose'; 2 | 3 | export type IndexDefinition = Partial>; 4 | -------------------------------------------------------------------------------- /libs/design-system/src/pagination/util/index.ts: -------------------------------------------------------------------------------- 1 | export * from './getPaginationSymbols'; 2 | export * from './clampPageNumber'; 3 | export * from './getPageNumberForNewPageSize'; 4 | -------------------------------------------------------------------------------- /libs/maily-core/src/styles/tailwind.css: -------------------------------------------------------------------------------- 1 | /** biome-ignore-all lint/suspicious/noUnknownAtRules: tailwind */ 2 | @tailwind base; 3 | @tailwind components; 4 | @tailwind utilities; 5 | -------------------------------------------------------------------------------- /packages/js/themes/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/themes/index.js", 3 | "module": "../dist/esm/themes/index.mjs", 4 | "types": "../dist/cjs/themes/index.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /packages/nextjs/server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/server/index.js", 3 | "module": "../dist/esm/server/index.js", 4 | "types": "../dist/types/index.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /packages/react/hooks/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/hooks/index.cjs", 3 | "module": "../dist/esm/hooks/index.js", 4 | "types": "../dist/esm/hooks/index.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /packages/react/server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/server/index.cjs", 3 | "module": "../dist/esm/server/index.js", 4 | "types": "../dist/esm/index.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /packages/shared/src/entities/user/subscriber-user.interface.ts: -------------------------------------------------------------------------------- 1 | import { ISubscriberJwtDto } from '../../dto'; 2 | 3 | export interface ISubscriberJwt extends ISubscriberJwtDto {} 4 | -------------------------------------------------------------------------------- /playground/nextjs/src/components/Title.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default function Title({ title }: { title: string }) { 4 | return

{title}

; 5 | } 6 | -------------------------------------------------------------------------------- /apps/api/src/app/environments-v2/dtos/index.ts: -------------------------------------------------------------------------------- 1 | export * from './diff-environment.dto'; 2 | export * from './get-environment-tags.dto'; 3 | export * from './publish-environment.dto'; 4 | -------------------------------------------------------------------------------- /apps/api/src/app/events/usecases/cancel-delayed/index.ts: -------------------------------------------------------------------------------- 1 | export { CancelDelayedCommand } from './cancel-delayed.command'; 2 | export { CancelDelayed } from './cancel-delayed.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/subscribers/usecases/get-subscriber-preference/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-subscriber-preference.command'; 2 | export * from './get-subscriber-preference.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/topics-v2/usecases/delete-topic-subscriptions/index.ts: -------------------------------------------------------------------------------- 1 | export * from './delete-topic-subscriptions.command'; 2 | export * from './delete-topic-subscriptions.usecase'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/src/components/billing/utils/hubspot.constants.ts: -------------------------------------------------------------------------------- 1 | export const HUBSPOT_FORM_IDS = { 2 | UPGRADE_CONTACT_SALES: '297d0b87-4c09-4ccf-a74c-28fd5e3b37f6', 3 | } as const; 4 | -------------------------------------------------------------------------------- /apps/web/src/api/notification-groups.ts: -------------------------------------------------------------------------------- 1 | import { api } from './api.client'; 2 | 3 | export function getNotificationGroups() { 4 | return api.get(`/v1/notification-groups`); 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/src/ee/billing/utils/hubspot.constants.ts: -------------------------------------------------------------------------------- 1 | export const HUBSPOT_FORM_IDS: Record = { 2 | UPGRADE_CONTACT_SALES: '297d0b87-4c09-4ccf-a74c-28fd5e3b37f6', 3 | }; 4 | -------------------------------------------------------------------------------- /apps/web/src/studio/components/workflows/layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './WorkflowsPageHeader'; 2 | export * from './WorkflowsPageTemplate'; 3 | export * from './WorkflowsPanelLayout'; 4 | -------------------------------------------------------------------------------- /apps/web/src/utils/string.ts: -------------------------------------------------------------------------------- 1 | export function capitalizeFirstLetter(string) { 2 | if (!string) return ''; 3 | 4 | return string.charAt(0).toUpperCase() + string.slice(1); 5 | } 6 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/control-values/index.ts: -------------------------------------------------------------------------------- 1 | export * from './control-values.entity'; 2 | export * from './control-values.repository'; 3 | export * from './control-values.schema'; 4 | -------------------------------------------------------------------------------- /libs/design-system/src/iconsV2/Icon.const.ts: -------------------------------------------------------------------------------- 1 | import { IconSize } from './Icon.types'; 2 | 3 | /** 4 | * Style Props 5 | */ 6 | 7 | export const DEFAULT_ICON_SIZE: IconSize = '20'; 8 | -------------------------------------------------------------------------------- /packages/js/internal/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/internal/index.js", 3 | "module": "../dist/esm/internal/index.mjs", 4 | "types": "../dist/cjs/internal/index.d.ts" 5 | } -------------------------------------------------------------------------------- /packages/nextjs/hooks/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/hooks/index.js", 3 | "module": "../dist/esm/hooks/index.js", 4 | "types": "../dist/types/hooks/index.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /packages/nextjs/themes/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/themes/index.js", 3 | "module": "../dist/esm/themes/index.js", 4 | "types": "../dist/types/themes/index.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /packages/novu/src/commands/init/templates/app-react-email/ts/next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | export default nextConfig; 5 | -------------------------------------------------------------------------------- /packages/react/themes/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/themes/index.cjs", 3 | "module": "../dist/esm/themes/index.js", 4 | "types": "../dist/esm/themes/index.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /packages/shared/src/entities/integration/index.ts: -------------------------------------------------------------------------------- 1 | export * from './configuration.interface'; 2 | export * from './credential.interface'; 3 | export * from './integration.interface'; 4 | -------------------------------------------------------------------------------- /packages/shared/src/types/controls.ts: -------------------------------------------------------------------------------- 1 | export enum ControlValuesLevelEnum { 2 | WORKFLOW_CONTROLS = 'workflow', 3 | STEP_CONTROLS = 'step', 4 | LAYOUT_CONTROLS = 'layout', 5 | } 6 | -------------------------------------------------------------------------------- /.cursor/environment.json: -------------------------------------------------------------------------------- 1 | { 2 | "snapshot": "snapshot-20251031-ba251de5-e5c1-4e6f-9dc8-04f05d28cbd8", 3 | "install": "pnpm install:with-ee && pnpm build:agents", 4 | "terminals": [] 5 | } -------------------------------------------------------------------------------- /apps/api/src/app/change/usecases/promote-change-to-environment/index.ts: -------------------------------------------------------------------------------- 1 | export * from './promote-change-to-environment.command'; 2 | export * from './promote-change-to-environment.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/events/e2e/utils/sleep.util.ts: -------------------------------------------------------------------------------- 1 | export function sleep(ms: number): Promise { 2 | return new Promise((resolve) => { 3 | setTimeout(resolve, ms); 4 | }); 5 | } 6 | -------------------------------------------------------------------------------- /apps/api/src/app/rate-limiting/usecases/get-api-rate-limit-maximum/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-api-rate-limit-maximum.command'; 2 | export * from './get-api-rate-limit-maximum.usecase'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/src/components/schema-editor/index.ts: -------------------------------------------------------------------------------- 1 | export * from './constants'; 2 | export type { JSONSchema7 } from './json-schema'; 3 | export { SchemaEditor } from './schema-editor'; 4 | -------------------------------------------------------------------------------- /apps/web/src/components/workflow/index.ts: -------------------------------------------------------------------------------- 1 | export type { IFlowEditorProps } from './FlowEditor'; 2 | export { FlowEditor } from './FlowEditor'; 3 | export { NodeStep } from './NodeStep'; 4 | -------------------------------------------------------------------------------- /apps/web/src/components/workflow/preview/index.ts: -------------------------------------------------------------------------------- 1 | export * from './chat'; 2 | export * from './email'; 3 | export * from './push'; 4 | export * from './sms'; 5 | export * from './in-app'; 6 | -------------------------------------------------------------------------------- /apps/worker/src/app/workflow/usecases/queue-next-job/index.ts: -------------------------------------------------------------------------------- 1 | export { QueueNextJobCommand } from './queue-next-job.command'; 2 | export { QueueNextJob } from './queue-next-job.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/create-or-update-subscriber/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-or-update-subscriber.command'; 2 | export * from './create-or-update-subscriber.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/get-decrypted-integrations/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-decrypted-integrations.command'; 2 | export * from './get-decrypted-integrations.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/process-tenant/index.ts: -------------------------------------------------------------------------------- 1 | export { ProcessTenantCommand } from './process-tenant.command'; 2 | export { ProcessTenant } from './process-tenant.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/tier-restrictions-validate/index.ts: -------------------------------------------------------------------------------- 1 | export * from './tier-restrictions-validate.command'; 2 | export * from './tier-restrictions-validate.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/verify-payload/index.ts: -------------------------------------------------------------------------------- 1 | export { VerifyPayloadCommand } from './verify-payload.command'; 2 | export { VerifyPayload } from './verify-payload.usecase'; 3 | -------------------------------------------------------------------------------- /libs/internal-sdk/src/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. 3 | */ 4 | 5 | export * from "./hooks.js"; 6 | export * from "./types.js"; 7 | -------------------------------------------------------------------------------- /libs/maily-tsconfig/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@novu/maily-tsconfig", 3 | "version": "0.0.0", 4 | "private": true, 5 | "publishConfig": { 6 | "access": "public" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/js/src/ui/components/Notification/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Notification'; 2 | export * from './NotificationActions'; 3 | export { NotificationList } from './NotificationList'; 4 | -------------------------------------------------------------------------------- /packages/shared/src/consts/password-helper/PasswordResetFlowEnum.ts: -------------------------------------------------------------------------------- 1 | export enum PasswordResetFlowEnum { 2 | FORGOT_PASSWORD = 'FORGOT_PASSWORD', 3 | USER_PROFILE = 'USER_PROFILE', 4 | } 5 | -------------------------------------------------------------------------------- /packages/shared/src/dto/integration/index.ts: -------------------------------------------------------------------------------- 1 | export * from './construct-integration.interface'; 2 | export * from './create-integration.dto'; 3 | export * from './update-integration.dto'; 4 | -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /apps/api/src/app/activity/usecases/build-total-interactions-chart/index.ts: -------------------------------------------------------------------------------- 1 | export * from './build-total-interactions-chart.command'; 2 | export * from './build-total-interactions-chart.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/activity/usecases/build-workflow-by-volume-chart/index.ts: -------------------------------------------------------------------------------- 1 | export * from './build-workflow-by-volume-chart.command'; 2 | export * from './build-workflow-by-volume-chart.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/subscribers/usecases/delete-subscriber-credentials/index.ts: -------------------------------------------------------------------------------- 1 | export * from './delete-subscriber-credentials.command'; 2 | export * from './delete-subscriber-credentials.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/subscribers/usecases/update-subscriber-online-flag/index.ts: -------------------------------------------------------------------------------- 1 | export * from './update-subscriber-online-flag.command'; 2 | export * from './update-subscriber-online-flag.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/topics-v2/usecases/list-subscriber-subscriptions/index.ts: -------------------------------------------------------------------------------- 1 | export * from './list-subscriber-subscriptions.command'; 2 | export * from './list-subscriber-subscriptions.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/workflows-v2/usecases/build-variable-schema/index.ts: -------------------------------------------------------------------------------- 1 | export * from './build-available-variable-schema.command'; 2 | export * from './build-available-variable-schema.usecase'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/footer-minimal-text-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/footer-minimal-text-preview.png -------------------------------------------------------------------------------- /apps/webhook/src/webhooks/dtos/webhooks-response.dto.ts: -------------------------------------------------------------------------------- 1 | import { IEventBody } from '@novu/stateless'; 2 | 3 | export interface IWebhookResult { 4 | id: string; 5 | event: IEventBody; 6 | } 7 | -------------------------------------------------------------------------------- /apps/worker/src/app/workflow/usecases/webhook-filter-backoff-strategy/event-job.dto.ts: -------------------------------------------------------------------------------- 1 | import { JobEntity } from '@novu/dal'; 2 | 3 | export class EventJobDto { 4 | data: JobEntity; 5 | } 6 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/cache/interceptors/index.ts: -------------------------------------------------------------------------------- 1 | export * from './cached-query.interceptor'; 2 | export * from './cached-response.decorator'; 3 | export * from './shared-cache'; 4 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/get-novu-provider-credentials/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-novu-provider-credentials.command'; 2 | export * from './get-novu-provider-credentials.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/message-template/create-message-template/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-message-template.command'; 2 | export * from './create-message-template.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/subscribers/update-subscriber-channel/index.ts: -------------------------------------------------------------------------------- 1 | export * from './update-subscriber-channel.command'; 2 | export * from './update-subscriber-channel.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/workflow/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-workflow-by-ids/get-workflow-by-ids.command'; 2 | export * from './get-workflow-by-ids/get-workflow-by-ids.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/webhooks/index.ts: -------------------------------------------------------------------------------- 1 | export * from './dtos'; 2 | export * from './mappers'; 3 | export * from './services'; 4 | export * from './usecases'; 5 | export * from './utils'; 6 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/channel-endpoint/index.ts: -------------------------------------------------------------------------------- 1 | export * from './channel-endpoint.entity'; 2 | export * from './channel-endpoint.repository'; 3 | export * from './channel-endpoint.schema'; 4 | -------------------------------------------------------------------------------- /libs/dal/src/types/helpers.ts: -------------------------------------------------------------------------------- 1 | import { Types } from 'mongoose'; 2 | 3 | export type ChangePropsValueType = Omit & { 4 | [P in K]: V; 5 | }; 6 | -------------------------------------------------------------------------------- /libs/internal-sdk/examples/.env.template: -------------------------------------------------------------------------------- 1 | # @novu/api SDK Environment Variables 2 | # Copy this file to .env and fill in your actual values 3 | # DO NOT commit the .env file to version control 4 | -------------------------------------------------------------------------------- /packages/js/src/ui/components/elements/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Bell'; 2 | export * from './Footer'; 3 | export * from './Header'; 4 | export * from './Preferences'; 5 | export * from './Root'; 6 | -------------------------------------------------------------------------------- /packages/react/internal/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "../dist/cjs/internal/index.cjs", 3 | "module": "../dist/esm/internal/index.js", 4 | "types": "../dist/esm/internal/index.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /packages/shared/src/consts/providers/channels/index.ts: -------------------------------------------------------------------------------- 1 | export * from './chat'; 2 | export * from './email'; 3 | export * from './in-app'; 4 | export * from './push'; 5 | export * from './sms'; 6 | -------------------------------------------------------------------------------- /packages/shared/src/types/layout.ts: -------------------------------------------------------------------------------- 1 | export type LayoutDescription = string; 2 | export type LayoutId = string; 3 | export type LayoutName = string; 4 | export type LayoutIdentifier = string; 5 | -------------------------------------------------------------------------------- /packages/shared/src/types/ws.ts: -------------------------------------------------------------------------------- 1 | export enum WebSocketEventEnum { 2 | RECEIVED = 'notification_received', 3 | UNREAD = 'unread_count_changed', 4 | UNSEEN = 'unseen_count_changed', 5 | } 6 | -------------------------------------------------------------------------------- /apps/api/src/app/activity/usecases/build-workflow-runs-trend-chart/index.ts: -------------------------------------------------------------------------------- 1 | export * from './build-workflow-runs-trend-chart.command'; 2 | export * from './build-workflow-runs-trend-chart.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/bridge/usecases/get-bridge-status/index.ts: -------------------------------------------------------------------------------- 1 | export { GetBridgeStatusCommand } from './get-bridge-status.command'; 2 | export { GetBridgeStatus } from './get-bridge-status.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/environments-v1/usecases/construct-framework-workflow/index.ts: -------------------------------------------------------------------------------- 1 | export * from './construct-framework-workflow.command'; 2 | export * from './construct-framework-workflow.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/messages/params/delete-message.param.ts: -------------------------------------------------------------------------------- 1 | import { IsMongoId } from 'class-validator'; 2 | 3 | export class DeleteMessageParams { 4 | @IsMongoId() 5 | messageId: string; 6 | } 7 | -------------------------------------------------------------------------------- /apps/api/src/app/widgets/dtos/log-usage-response.dto.ts: -------------------------------------------------------------------------------- 1 | import { ApiProperty } from '@nestjs/swagger'; 2 | 3 | export class LogUsageResponseDto { 4 | @ApiProperty() 5 | success: boolean; 6 | } 7 | -------------------------------------------------------------------------------- /apps/api/src/app/widgets/dtos/unseen-count-response.dto.ts: -------------------------------------------------------------------------------- 1 | import { ApiProperty } from '@nestjs/swagger'; 2 | 3 | export class UnseenCountResponse { 4 | @ApiProperty() 5 | count: number; 6 | } 7 | -------------------------------------------------------------------------------- /apps/api/src/app/workflows-v1/queries/CreateWorkflowQuery.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @deprecated use dto's in /workflows directory 3 | */ 4 | export class CreateWorkflowQuery { 5 | __source?: string; 6 | } 7 | -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/footer-text-with-logo-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/footer-text-with-logo-preview.png -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/header-logo-with-text-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/header-logo-with-text-preview.png -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/paragraph-with-image-preview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/paragraph-with-image-preview.webp -------------------------------------------------------------------------------- /apps/web/src/api/bridge.ts: -------------------------------------------------------------------------------- 1 | import { api } from './index'; 2 | 3 | export function validateBridgeUrl(payload: { bridgeUrl: string }) { 4 | return api.post(`/v1/bridge/validate`, payload); 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/src/utils/create-hash.ts: -------------------------------------------------------------------------------- 1 | import CryptoJS from 'crypto-js'; 2 | 3 | export const createHash = (message: string) => { 4 | return CryptoJS.SHA256(message).toString(CryptoJS.enc.Hex); 5 | }; 6 | -------------------------------------------------------------------------------- /apps/ws/src/app.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@nestjs/common'; 2 | 3 | @Injectable() 4 | export class AppService { 5 | getHello(): string { 6 | return 'Hello World!'; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /apps/ws/src/shared/helpers/regex.service.ts: -------------------------------------------------------------------------------- 1 | export function escapeRegExp(text: string): string { 2 | if (!text) return text; 3 | 4 | return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 5 | } 6 | -------------------------------------------------------------------------------- /libs/application-generic/src/services/cron/index.ts: -------------------------------------------------------------------------------- 1 | export * from './agenda-cron.service'; 2 | export * from './cron.constants'; 3 | export * from './cron.service'; 4 | export * from './cron.types'; 5 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/get-preferences/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-preferences.command'; 2 | export * from './get-preferences.dto'; 3 | export * from './get-preferences.usecase'; 4 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/execution-details/index.ts: -------------------------------------------------------------------------------- 1 | export * from './execution-details.entity'; 2 | export * from './execution-details.repository'; 3 | export * from './execution-details.schema'; 4 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/subscriber/index.ts: -------------------------------------------------------------------------------- 1 | export * from './subscriber.entity'; 2 | export * from './subscriber.repository'; 3 | export * from './subscriber.schema'; 4 | export * from './types'; 5 | -------------------------------------------------------------------------------- /libs/dal/src/types/auth.ts: -------------------------------------------------------------------------------- 1 | export type AuthMechanism = 2 | | 'DEFAULT' 3 | | 'MONGODB-CR' 4 | | 'SCRAM-SHA-1' 5 | | 'SCRAM-SHA-256' 6 | | 'MONGODB-X509' 7 | | 'GSSAPI' 8 | | 'PLAIN'; 9 | -------------------------------------------------------------------------------- /libs/maily-render/src/utils.ts: -------------------------------------------------------------------------------- 1 | export function generateKey() { 2 | // Length of 6 is enough to avoid collisions 3 | // for react keys 4 | return Math.random().toString(36).substr(2, 6); 5 | } 6 | -------------------------------------------------------------------------------- /packages/framework/src/filters/index.ts: -------------------------------------------------------------------------------- 1 | export * from './digest'; 2 | export * from './pluralize'; 3 | export * from './to-sentence'; 4 | export * from './types'; 5 | export * from './validators'; 6 | -------------------------------------------------------------------------------- /packages/js/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.preferences.importModuleSpecifier": "relative", 3 | "editor.codeActionsOnSave": { 4 | "source.organizeImports": "explicit" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/js/src/ui/internal/index.ts: -------------------------------------------------------------------------------- 1 | export * from './buildContextKey'; 2 | export * from './buildSubscriber'; 3 | export * from './buildSubscriptionIdentifier'; 4 | export * from './parseMarkdown'; 5 | -------------------------------------------------------------------------------- /packages/novu/src/commands/init/templates/app-react-email/ts/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/packages/novu/src/commands/init/templates/app-react-email/ts/app/favicon.ico -------------------------------------------------------------------------------- /packages/shared/src/types/billing.ts: -------------------------------------------------------------------------------- 1 | export enum ProductFeatureKeyEnum { 2 | TRANSLATIONS = 'TRANSLATIONS', 3 | MANAGE_ENVIRONMENTS = 'MANAGE_ENVIRONMENTS', 4 | WEBHOOKS = 'WEBHOOKS', 5 | } 6 | -------------------------------------------------------------------------------- /playground/nextjs/.env.example: -------------------------------------------------------------------------------- 1 | NEXT_PUBLIC_NOVU_BACKEND_URL=https://dev.api.novu.co 2 | NEXT_PUBLIC_NOVU_SOCKET_URL=https://dev.ws.novu.co 3 | NEXT_PUBLIC_NOVU_APP_ID= 4 | NEXT_PUBLIC_NOVU_SUBSCRIBER_ID= -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Editor-based HTTP Client requests 5 | /httpRequests/ 6 | # GitHub Copilot persisted chat sessions 7 | /copilot/chatSessions 8 | -------------------------------------------------------------------------------- /.npmrc-cloud: -------------------------------------------------------------------------------- 1 | auto-install-peers=true 2 | strict-peer-dependencies=false 3 | @taskforcesh:registry=https://npm.taskforce.sh/ 4 | //npm.taskforce.sh/:_authToken=${BULL_MQ_PRO_NPM_TOKEN} 5 | always-auth=true 6 | -------------------------------------------------------------------------------- /apps/api/src/app/blueprint/usecases/get-grouped-blueprints/index.ts: -------------------------------------------------------------------------------- 1 | export * from './consts'; 2 | export * from './get-grouped-blueprints.command'; 3 | export * from './get-grouped-blueprints.usecase'; 4 | -------------------------------------------------------------------------------- /apps/api/src/app/environments-v2/usecases/sync-strategies/base/operations/index.ts: -------------------------------------------------------------------------------- 1 | export { BaseDiffOperation } from './base-diff.operation'; 2 | export { BaseSyncOperation } from './base-sync.operation'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/shared/helpers/regex.service.ts: -------------------------------------------------------------------------------- 1 | export function escapeRegExp(text: string): string { 2 | if (!text) return text; 3 | 4 | return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 5 | } 6 | -------------------------------------------------------------------------------- /apps/api/src/app/subscribers/usecases/get-subscriber-global-preference/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-subscriber-global-preference.command'; 2 | export * from './get-subscriber-global-preference.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/subscriptions/usecases/create-subscription-preferences/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-subscription-preferences.command'; 2 | export * from './create-subscription-preferences.usecase'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/src/components/ai-drawer/index.ts: -------------------------------------------------------------------------------- 1 | export { AiDrawer } from './ai-drawer'; 2 | export { AiDrawerProvider } from './ai-drawer-provider'; 3 | export { useAiDrawer } from './use-ai-drawer'; 4 | -------------------------------------------------------------------------------- /apps/dashboard/src/pages/create-layout.tsx: -------------------------------------------------------------------------------- 1 | import { NewLayoutDrawer } from '@/pages/new-layout-drawer'; 2 | 3 | export function CreateLayoutPage() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/src/pages/templates/components/templates-store/index.ts: -------------------------------------------------------------------------------- 1 | export type { ITemplatesStoreModalProps } from './TemplatesStoreModal'; 2 | export { TemplatesStoreModal } from './TemplatesStoreModal'; 3 | -------------------------------------------------------------------------------- /apps/web/src/types/FCWithChildren.ts: -------------------------------------------------------------------------------- 1 | import { FC, ReactNode } from 'react'; 2 | 3 | export type FCWithChildren

= FC

; 4 | -------------------------------------------------------------------------------- /apps/webhook/src/app.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@nestjs/common'; 2 | 3 | @Injectable() 4 | export class AppService { 5 | getHello(): string { 6 | return 'Hello World!'; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /apps/webhook/src/shared/helpers/regex.service.ts: -------------------------------------------------------------------------------- 1 | export function escapeRegExp(text: string): string { 2 | if (!text) return text; 3 | 4 | return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 5 | } 6 | -------------------------------------------------------------------------------- /apps/worker/.mocharc.json: -------------------------------------------------------------------------------- 1 | { 2 | "timeout": 10000, 3 | "require": "ts-node/register", 4 | "file": ["e2e/setup.ts"], 5 | "exit": true, 6 | "files": ["src/**/*.e2e.ts", "src/**/**/*.spec.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /apps/worker/src/app/workflow/usecases/webhook-filter-backoff-strategy/index.ts: -------------------------------------------------------------------------------- 1 | export * from './webhook-filter-backoff-strategy.command'; 2 | export * from './webhook-filter-backoff-strategy.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/calculate-limit-novu-integration/index.ts: -------------------------------------------------------------------------------- 1 | export * from './calculate-limit-novu-integration.command'; 2 | export * from './calculate-limit-novu-integration.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/compile-template/index.ts: -------------------------------------------------------------------------------- 1 | export * from './compile-template.base'; 2 | export * from './compile-template.command'; 3 | export * from './compile-template.usecase'; 4 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/channel-connection/index.ts: -------------------------------------------------------------------------------- 1 | export * from './channel-connection.entity'; 2 | export * from './channel-connection.repository'; 3 | export * from './channel-connection.schema'; 4 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/localization-group/index.ts: -------------------------------------------------------------------------------- 1 | export * from './localization-group.entity'; 2 | export * from './localization-group.repository'; 3 | export * from './localization-group.schema'; 4 | -------------------------------------------------------------------------------- /libs/dal/src/repositories/notification-group/index.ts: -------------------------------------------------------------------------------- 1 | export * from './notification-group.entity'; 2 | export * from './notification-group.repository'; 3 | export * from './notification-group.schema'; 4 | -------------------------------------------------------------------------------- /libs/design-system/src/color-scheme/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ColorScheme'; 2 | export * from './mapThemeStatusToColorScheme'; 3 | export * from './useColorScheme'; 4 | export * from './getColorScheme'; 5 | -------------------------------------------------------------------------------- /libs/novui/src/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './CoreProps'; 2 | export type { ExtractGeneric } from './ExtractGeneric'; 3 | export * from './LocalizedMessage'; 4 | export * from './WithLoadingSkeleton'; 5 | -------------------------------------------------------------------------------- /packages/framework/src/constants/http-query.constants.ts: -------------------------------------------------------------------------------- 1 | export enum HttpQueryKeysEnum { 2 | WORKFLOW_ID = 'workflowId', 3 | STEP_ID = 'stepId', 4 | ACTION = 'action', 5 | SOURCE = 'source', 6 | } 7 | -------------------------------------------------------------------------------- /packages/js/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {}, 4 | tailwindcss: {}, 5 | cssnano: { 6 | preset: 'default', 7 | }, 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /packages/novu/src/commands/init/templates/app-react-email/ts/app/novu/workflows/welcome-onboarding-email/index.ts: -------------------------------------------------------------------------------- 1 | export * from './schemas'; 2 | export * from './types'; 3 | export * from './workflow'; 4 | -------------------------------------------------------------------------------- /packages/novu/src/commands/init/templates/app-react-email/ts/public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/api/src/app/change/dtos/bulk-apply-change.dto.ts: -------------------------------------------------------------------------------- 1 | import { IsString } from 'class-validator'; 2 | 3 | export class BulkApplyChangeDto { 4 | @IsString({ each: true }) 5 | changeIds: string[]; 6 | } 7 | -------------------------------------------------------------------------------- /apps/api/src/app/events/usecases/trigger-event-to-all/index.ts: -------------------------------------------------------------------------------- 1 | export { TriggerEventToAllCommand } from './trigger-event-to-all.command'; 2 | export { TriggerEventToAll } from './trigger-event-to-all.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/message-template/usecases/find-message-templates-by-layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './find-message-templates-by-layout.command'; 2 | export * from './find-message-templates-by-layout.use-case'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/notifications/usecases/get-activity-stats/index.ts: -------------------------------------------------------------------------------- 1 | export { GetActivityStatsCommand } from './get-activity-stats.command'; 2 | export { GetActivityStats } from './get-activity-stats.usecase'; 3 | -------------------------------------------------------------------------------- /apps/api/src/app/shared/dtos/api-key.ts: -------------------------------------------------------------------------------- 1 | import { ApiProperty } from '@nestjs/swagger'; 2 | 3 | export class ApiKey { 4 | @ApiProperty() 5 | key: string; 6 | @ApiProperty() 7 | _userId: string; 8 | } 9 | -------------------------------------------------------------------------------- /apps/api/src/app/shared/dtos/widget-settings.ts: -------------------------------------------------------------------------------- 1 | import { ApiProperty } from '@nestjs/swagger'; 2 | 3 | export class WidgetSettings { 4 | @ApiProperty() 5 | notificationCenterEncryption: boolean; 6 | } 7 | -------------------------------------------------------------------------------- /apps/api/src/app/shared/types.ts: -------------------------------------------------------------------------------- 1 | export type Constructor = new (...args: any[]) => I; 2 | 3 | export type CursorPaginationParams = { 4 | limit: number; 5 | after?: string; 6 | offset: number; 7 | }; 8 | -------------------------------------------------------------------------------- /apps/api/src/app/subscribers/usecases/search-by-external-subscriber-ids/index.ts: -------------------------------------------------------------------------------- 1 | export * from './search-by-external-subscriber-ids.command'; 2 | export * from './search-by-external-subscriber-ids.use-case'; 3 | -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/footer-logo-with-simple-text-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/footer-logo-with-simple-text-preview.png -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/horizontal-card-with-image-preview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/horizontal-card-with-image-preview.webp -------------------------------------------------------------------------------- /apps/dashboard/public/images/email-editor/information-card-with-logo-preview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-novu/next/apps/dashboard/public/images/email-editor/information-card-with-logo-preview.webp -------------------------------------------------------------------------------- /apps/dashboard/src/context/auth/hooks.ts: -------------------------------------------------------------------------------- 1 | import { createContextHook } from '@/utils/context'; 2 | import { AuthContext } from './auth-context'; 3 | 4 | export const useAuth = createContextHook(AuthContext); 5 | -------------------------------------------------------------------------------- /apps/inbound-mail/src/python/dkim/__main__.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | import doctest 3 | import dkim 4 | from tests import test_suite 5 | 6 | doctest.testmod(dkim) 7 | unittest.TextTestRunner().run(test_suite()) 8 | -------------------------------------------------------------------------------- /apps/web/src/ee/billing/utils/capitalize.ts: -------------------------------------------------------------------------------- 1 | export const capitalize = (text: string) => { 2 | if (typeof text !== 'string') return ''; 3 | 4 | return text.charAt(0).toUpperCase() + text.slice(1); 5 | }; 6 | -------------------------------------------------------------------------------- /apps/web/src/emotion.d.ts: -------------------------------------------------------------------------------- 1 | import '@emotion/react'; 2 | import type { MantineTheme } from '@mantine/core'; 3 | 4 | declare module '@emotion/react' { 5 | export interface Theme extends MantineTheme {} 6 | } 7 | -------------------------------------------------------------------------------- /apps/web/src/hooks/useDataRef.ts: -------------------------------------------------------------------------------- 1 | import { useRef } from 'react'; 2 | 3 | export const useDataRef = (data: T) => { 4 | const ref = useRef(data); 5 | ref.current = data; 6 | 7 | return ref; 8 | }; 9 | -------------------------------------------------------------------------------- /apps/worker/src/app/workflow/usecases/execute-bridge-job/index.ts: -------------------------------------------------------------------------------- 1 | export { ExecuteBridgeJobCommand } from './execute-bridge-job.command'; 2 | export { ExecuteBridgeJob } from './execute-bridge-job.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/commands/index.ts: -------------------------------------------------------------------------------- 1 | export * from './authenticated.command'; 2 | export * from './base.command'; 3 | export * from './organization.command'; 4 | export * from './project.command'; 5 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/get-novu-layout/get-novu-layout.command.ts: -------------------------------------------------------------------------------- 1 | import { BaseCommand } from '../../commands/base.command'; 2 | 3 | export class GetNovuLayoutCommand extends BaseCommand {} 4 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/get-subscriber-template-preference/index.ts: -------------------------------------------------------------------------------- 1 | export * from './get-subscriber-template-preference.command'; 2 | export * from './get-subscriber-template-preference.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/usecases/select-integration/index.ts: -------------------------------------------------------------------------------- 1 | export { SelectIntegrationCommand } from './select-integration.command'; 2 | export { SelectIntegration } from './select-integration.usecase'; 3 | -------------------------------------------------------------------------------- /libs/application-generic/src/utils/subscription.ts: -------------------------------------------------------------------------------- 1 | export function buildDefaultSubscriptionIdentifier(topicKey: string, subscriberId: string): string { 2 | return `tk_${topicKey}:si_${subscriberId}`; 3 | } 4 | -------------------------------------------------------------------------------- /libs/internal-sdk/core.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"core.js","sourceRoot":"","sources":["src/core.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,2CAA0C;AAE1C;;;;;GAKG;AACH,MAAa,QAAS,SAAQ,mBAAS;CAAG;AAA1C,4BAA0C"} -------------------------------------------------------------------------------- /libs/maily-core/src/editor/bubble-suggestions/providers/index.ts: -------------------------------------------------------------------------------- 1 | export { createInlineDecoratorProvider } from './inline-decorator-provider'; 2 | export { createVariableProvider } from './variable-provider'; 3 | -------------------------------------------------------------------------------- /libs/maily-core/src/editor/extensions/inline-decorator/index.ts: -------------------------------------------------------------------------------- 1 | export { InlineDecoratorExtension } from './inline-decorator'; 2 | export { getInlineDecoratorSuggestionsReact } from './inline-decorator-list'; 3 | --------------------------------------------------------------------------------