gitextract_pz3pib5l/ ├── .devcontainer/ │ └── devcontainer.json ├── .dockerignore ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── confirmed-bug.md │ │ ├── feature-or-change-request.md │ │ ├── general-question.md │ │ └── possible-bug--needs-investigation-.md │ └── workflows/ │ ├── build-sanity.yml │ ├── github-pages.yml │ ├── hodor-review.yml │ ├── issues.yml │ ├── nightly.yml │ └── release.yml ├── .gitignore ├── .go-version ├── .goreleaser-nightly.yml ├── .goreleaser.yml ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── SECURITY.md ├── VERSION ├── cmd/ │ ├── admin.go │ ├── archive.go │ ├── auth.go │ ├── bounce.go │ ├── campaigns.go │ ├── events.go │ ├── handlers.go │ ├── i18n.go │ ├── import.go │ ├── init.go │ ├── install.go │ ├── lists.go │ ├── main.go │ ├── maintenance.go │ ├── manager_store.go │ ├── media.go │ ├── public.go │ ├── roles.go │ ├── settings.go │ ├── subscribers.go │ ├── templates.go │ ├── tx.go │ ├── updates.go │ ├── upgrade.go │ ├── users.go │ └── utils.go ├── config.toml.sample ├── dev/ │ ├── .gitignore │ ├── README.md │ ├── app.Dockerfile │ ├── config.toml │ └── docker-compose.yml ├── docker-compose.yml ├── docker-entrypoint.sh ├── docs/ │ ├── README.md │ ├── docs/ │ │ ├── content/ │ │ │ ├── apis/ │ │ │ │ ├── apis.md │ │ │ │ ├── bounces.md │ │ │ │ ├── campaigns.md │ │ │ │ ├── import.md │ │ │ │ ├── lists.md │ │ │ │ ├── media.md │ │ │ │ ├── sdks.md │ │ │ │ ├── subscribers.md │ │ │ │ ├── templates.md │ │ │ │ └── transactional.md │ │ │ ├── archives.md │ │ │ ├── bounces.md │ │ │ ├── concepts.md │ │ │ ├── configuration.md │ │ │ ├── developer-setup.md │ │ │ ├── external-integration.md │ │ │ ├── i18n.md │ │ │ ├── index.md │ │ │ ├── installation.md │ │ │ ├── maintenance/ │ │ │ │ └── performance.md │ │ │ ├── messengers.md │ │ │ ├── oidc.md │ │ │ ├── querying-and-segmentation.md │ │ │ ├── roles-and-permissions.md │ │ │ ├── security-reports.md │ │ │ ├── static/ │ │ │ │ └── style.css │ │ │ ├── templating.md │ │ │ └── upgrade.md │ │ ├── mkdocs.yml │ │ └── requirements.txt │ ├── i18n/ │ │ ├── index.html │ │ ├── main.js │ │ └── style.css │ ├── site/ │ │ ├── content/ │ │ │ └── .gitignore │ │ ├── data/ │ │ │ └── github.json │ │ ├── layouts/ │ │ │ ├── index.html │ │ │ ├── page/ │ │ │ │ └── single.html │ │ │ ├── partials/ │ │ │ │ ├── footer.html │ │ │ │ └── header.html │ │ │ └── shortcodes/ │ │ │ ├── centered.html │ │ │ ├── github.html │ │ │ ├── half.html │ │ │ └── section.html │ │ └── static/ │ │ └── static/ │ │ ├── base.css │ │ └── style.css │ └── swagger/ │ └── collections.yaml ├── frontend/ │ ├── .browserslistrc │ ├── .editorconfig │ ├── .eslintrc.js │ ├── .gitignore │ ├── README.md │ ├── babel.config.js │ ├── cypress/ │ │ ├── e2e/ │ │ │ ├── archive.cy.js │ │ │ ├── bounces.cy.js │ │ │ ├── campaigns.cy.js │ │ │ ├── dashboard.cy.js │ │ │ ├── forms.cy.js │ │ │ ├── import.cy.js │ │ │ ├── lists.cy.js │ │ │ ├── settings.cy.js │ │ │ ├── subscribers.cy.js │ │ │ ├── templates.cy.js │ │ │ └── users.cy.js │ │ ├── fixtures/ │ │ │ ├── subs-domain-blocklist.csv │ │ │ └── subs.csv │ │ ├── plugins/ │ │ │ └── index.js │ │ └── support/ │ │ ├── commands.js │ │ ├── e2e.js │ │ └── reset.sh │ ├── cypress.config.js │ ├── email-builder/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── App/ │ │ │ │ ├── InspectorDrawer/ │ │ │ │ │ ├── ConfigurationPanel/ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── input-panels/ │ │ │ │ │ │ ├── AvatarSidebarPanel.tsx │ │ │ │ │ │ ├── ButtonSidebarPanel.tsx │ │ │ │ │ │ ├── ColumnsContainerSidebarPanel.tsx │ │ │ │ │ │ ├── ContainerSidebarPanel.tsx │ │ │ │ │ │ ├── DividerSidebarPanel.tsx │ │ │ │ │ │ ├── EmailLayoutSidebarPanel.tsx │ │ │ │ │ │ ├── HeadingSidebarPanel.tsx │ │ │ │ │ │ ├── HtmlSidebarPanel.tsx │ │ │ │ │ │ ├── ImageSidebarPanel.tsx │ │ │ │ │ │ ├── SpacerSidebarPanel.tsx │ │ │ │ │ │ ├── TextSidebarPanel.tsx │ │ │ │ │ │ └── helpers/ │ │ │ │ │ │ ├── BaseSidebarPanel.tsx │ │ │ │ │ │ ├── inputs/ │ │ │ │ │ │ │ ├── BooleanInput.tsx │ │ │ │ │ │ │ ├── ColorInput/ │ │ │ │ │ │ │ │ ├── BaseColorInput.tsx │ │ │ │ │ │ │ │ ├── Picker.tsx │ │ │ │ │ │ │ │ ├── Swatch.tsx │ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ │ ├── ColumnWidthsInput.tsx │ │ │ │ │ │ │ ├── FontFamily.tsx │ │ │ │ │ │ │ ├── FontSizeInput.tsx │ │ │ │ │ │ │ ├── FontWeightInput.tsx │ │ │ │ │ │ │ ├── PaddingInput.tsx │ │ │ │ │ │ │ ├── RadioGroupInput.tsx │ │ │ │ │ │ │ ├── SliderInput.tsx │ │ │ │ │ │ │ ├── TextAlignInput.tsx │ │ │ │ │ │ │ ├── TextDimensionInput.tsx │ │ │ │ │ │ │ ├── TextInput.tsx │ │ │ │ │ │ │ └── raw/ │ │ │ │ │ │ │ └── RawSliderInput.tsx │ │ │ │ │ │ └── style-inputs/ │ │ │ │ │ │ ├── MultiStylePropertyPanel.tsx │ │ │ │ │ │ └── SingleStylePropertyPanel.tsx │ │ │ │ │ ├── StylesPanel.tsx │ │ │ │ │ ├── ToggleInspectorPanelButton.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── TemplatePanel/ │ │ │ │ │ ├── DownloadJson/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── HtmlPanel.tsx │ │ │ │ │ ├── ImportJson/ │ │ │ │ │ │ ├── ImportJsonDialog.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── validateJsonStringValue.ts │ │ │ │ │ ├── JsonPanel.tsx │ │ │ │ │ ├── MainTabsGroup.tsx │ │ │ │ │ ├── ShareButton.tsx │ │ │ │ │ ├── helper/ │ │ │ │ │ │ ├── HighlightedCodePanel.tsx │ │ │ │ │ │ └── highlighters.tsx │ │ │ │ │ └── index.tsx │ │ │ │ └── index.tsx │ │ │ ├── documents/ │ │ │ │ ├── blocks/ │ │ │ │ │ ├── ColumnsContainer/ │ │ │ │ │ │ ├── ColumnsContainerEditor.tsx │ │ │ │ │ │ └── ColumnsContainerPropsSchema.ts │ │ │ │ │ ├── Container/ │ │ │ │ │ │ ├── ContainerEditor.tsx │ │ │ │ │ │ └── ContainerPropsSchema.tsx │ │ │ │ │ ├── EmailLayout/ │ │ │ │ │ │ ├── EmailLayoutEditor.tsx │ │ │ │ │ │ └── EmailLayoutPropsSchema.tsx │ │ │ │ │ └── helpers/ │ │ │ │ │ ├── EditorChildrenIds/ │ │ │ │ │ │ ├── AddBlockMenu/ │ │ │ │ │ │ │ ├── BlockButton.tsx │ │ │ │ │ │ │ ├── BlocksMenu.tsx │ │ │ │ │ │ │ ├── DividerButton.tsx │ │ │ │ │ │ │ ├── PlaceholderButton.tsx │ │ │ │ │ │ │ ├── buttons.tsx │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── TStyle.ts │ │ │ │ │ ├── block-wrappers/ │ │ │ │ │ │ ├── EditorBlockWrapper.tsx │ │ │ │ │ │ ├── ReaderBlockWrapper.tsx │ │ │ │ │ │ └── TuneMenu.tsx │ │ │ │ │ ├── fontFamily.ts │ │ │ │ │ └── zod.ts │ │ │ │ └── editor/ │ │ │ │ ├── EditorBlock.tsx │ │ │ │ ├── EditorContext.tsx │ │ │ │ └── core.tsx │ │ │ ├── getConfiguration/ │ │ │ │ ├── index.tsx │ │ │ │ └── sample/ │ │ │ │ └── empty-email-message.ts │ │ │ ├── main.tsx │ │ │ ├── theme.ts │ │ │ ├── utils.tsx │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── fontello/ │ │ └── config.json │ ├── index.html │ ├── jsconfig.json │ ├── package.json │ ├── public/ │ │ └── static/ │ │ └── tinymce/ │ │ └── lang/ │ │ ├── cs.js │ │ ├── de.js │ │ ├── es_419.js │ │ ├── fr_FR.js │ │ ├── it_IT.js │ │ ├── pl.js │ │ ├── pt_BR.js │ │ ├── pt_PT.js │ │ ├── ro.js │ │ └── tr.js │ ├── src/ │ │ ├── App.vue │ │ ├── api/ │ │ │ └── index.js │ │ ├── assets/ │ │ │ ├── icons/ │ │ │ │ └── fontello.css │ │ │ └── style.scss │ │ ├── components/ │ │ │ ├── BarChart.vue │ │ │ ├── CampaignPreview.vue │ │ │ ├── Chart.vue │ │ │ ├── CodeEditor.vue │ │ │ ├── CopyText.vue │ │ │ ├── Editor.vue │ │ │ ├── EmptyPlaceholder.vue │ │ │ ├── ListSelector.vue │ │ │ ├── LogView.vue │ │ │ ├── Navigation.vue │ │ │ ├── RichtextEditor.vue │ │ │ ├── SubscriberActivity.vue │ │ │ ├── VisualEditor.vue │ │ │ ├── editor-theme.js │ │ │ └── editor.js │ │ ├── constants.js │ │ ├── main.js │ │ ├── router/ │ │ │ └── index.js │ │ ├── store/ │ │ │ └── index.js │ │ ├── utils.js │ │ └── views/ │ │ ├── 404.vue │ │ ├── About.vue │ │ ├── Bounces.vue │ │ ├── Campaign.vue │ │ ├── CampaignAnalytics.vue │ │ ├── Campaigns.vue │ │ ├── Dashboard.vue │ │ ├── Forms.vue │ │ ├── Import.vue │ │ ├── ListForm.vue │ │ ├── Lists.vue │ │ ├── Logs.vue │ │ ├── Maintenance.vue │ │ ├── Media.vue │ │ ├── RoleForm.vue │ │ ├── Roles.vue │ │ ├── Settings.vue │ │ ├── SubscriberBulkList.vue │ │ ├── SubscriberForm.vue │ │ ├── Subscribers.vue │ │ ├── TemplateForm.vue │ │ ├── Templates.vue │ │ ├── UserForm.vue │ │ ├── UserProfile.vue │ │ ├── Users.vue │ │ └── settings/ │ │ ├── appearance.vue │ │ ├── bounces.vue │ │ ├── general.vue │ │ ├── media.vue │ │ ├── messengers.vue │ │ ├── performance.vue │ │ ├── privacy.vue │ │ ├── security.vue │ │ └── smtp.vue │ └── vite.config.js ├── go.mod ├── go.sum ├── i18n/ │ ├── bg.json │ ├── ca.json │ ├── cs-cz.json │ ├── cy.json │ ├── da.json │ ├── de.json │ ├── el.json │ ├── en.json │ ├── eo.json │ ├── es.json │ ├── fi.json │ ├── fr-CA.json │ ├── fr.json │ ├── he.json │ ├── hu.json │ ├── it.json │ ├── jp.json │ ├── ko.json │ ├── ml.json │ ├── nl.json │ ├── no.json │ ├── pl.json │ ├── pt-BR.json │ ├── pt.json │ ├── ro.json │ ├── ru.json │ ├── se.json │ ├── sk.json │ ├── sl.json │ ├── tr.json │ ├── uk.json │ ├── vi.json │ ├── zh-CN.json │ └── zh-TW.json ├── internal/ │ ├── auth/ │ │ ├── auth.go │ │ └── models.go │ ├── bounce/ │ │ ├── bounce.go │ │ ├── mailbox/ │ │ │ ├── opt.go │ │ │ └── pop.go │ │ └── webhooks/ │ │ ├── forwardemail.go │ │ ├── postmark.go │ │ ├── sendgrid.go │ │ └── ses.go │ ├── buflog/ │ │ └── buflog.go │ ├── captcha/ │ │ └── captcha.go │ ├── core/ │ │ ├── bounces.go │ │ ├── campaigns.go │ │ ├── core.go │ │ ├── dashboard.go │ │ ├── lists.go │ │ ├── media.go │ │ ├── roles.go │ │ ├── settings.go │ │ ├── subscribers.go │ │ ├── subscriptions.go │ │ ├── templates.go │ │ └── users.go │ ├── events/ │ │ └── events.go │ ├── i18n/ │ │ └── i18n.go │ ├── manager/ │ │ ├── manager.go │ │ ├── message.go │ │ └── pipe.go │ ├── media/ │ │ ├── media.go │ │ └── providers/ │ │ ├── filesystem/ │ │ │ └── filesystem.go │ │ └── s3/ │ │ └── s3.go │ ├── messenger/ │ │ ├── email/ │ │ │ └── email.go │ │ └── postback/ │ │ ├── postback.go │ │ └── postback_easyjson.go │ ├── migrations/ │ │ ├── v0.4.0.go │ │ ├── v0.7.0.go │ │ ├── v0.8.0.go │ │ ├── v0.9.0.go │ │ ├── v1.0.0.go │ │ ├── v2.0.0.go │ │ ├── v2.1.0.go │ │ ├── v2.2.0.go │ │ ├── v2.3.0.go │ │ ├── v2.4.0.go │ │ ├── v2.5.0.go │ │ ├── v3.0.0.go │ │ ├── v4.0.0.go │ │ ├── v4.1.0.go │ │ ├── v5.0.0.go │ │ ├── v5.1.0.go │ │ ├── v6.0.0.go │ │ └── v6.1.0.go │ ├── notifs/ │ │ └── notifs.go │ ├── subimporter/ │ │ └── importer.go │ ├── tmptokens/ │ │ └── tmptokens.go │ └── utils/ │ └── utils.go ├── listmonk-simple.service ├── listmonk@.service ├── models/ │ ├── bounces.go │ ├── campaigns.go │ ├── common.go │ ├── lists.go │ ├── messages.go │ ├── queries.go │ ├── settings.go │ ├── subscribers.go │ └── templates.go ├── permissions.json ├── project.inlang.json ├── queries/ │ ├── bounces.sql │ ├── campaigns.sql │ ├── links.sql │ ├── lists.sql │ ├── media.sql │ ├── misc.sql │ ├── roles.sql │ ├── subscribers.sql │ ├── templates.sql │ └── users.sql ├── schema.sql ├── scripts/ │ ├── refresh-i18n.sh │ └── translate-i18n.py └── static/ ├── email-templates/ │ ├── base.html │ ├── campaign-status.html │ ├── default-archive.tpl │ ├── default-visual.json │ ├── default-visual.tpl │ ├── default.tpl │ ├── forgot-password.html │ ├── import-status.html │ ├── sample-tx.tpl │ ├── smtp-test.html │ ├── subscriber-data.html │ ├── subscriber-optin-campaign.html │ └── subscriber-optin.html └── public/ ├── static/ │ ├── script.js │ └── style.css └── templates/ ├── archive.html ├── forgot-password.html ├── home.html ├── index.html ├── login-setup.html ├── login.html ├── message.html ├── optin.html ├── reset-password.html ├── subscription-form.html ├── subscription.html └── twofa.html