├── .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 |
4 |
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 |
--------------------------------------------------------------------------------