Commit Graph

16563 Commits

Author SHA1 Message Date
Simon Backx
80cec29144
Added Stripe Mocker to make testing easier (#16396)
no issue

The Stripe Mocker mocks the Stripe API in memory, to make it much easier
to test subscription flows. Currently it is more a POC to see if it
works well. It probably needs a bit more work to support more scenarios.
- Added new tests for the subscription stats endpoint for 3D secure +
free trial flows using the new Stripe Mocker
- Updated members admin api tests to use Stripe Mocker (+ added new test
for deleting members with Stripe cancellation)
- Some tests called mockStripe at the beginning, but that method did
nothing apart from disabling network (which is the default now), then
they mocked Stripe inside the tests file... so I've removed those
because those conflict with the new mocker that is enabled when calling
mockStripe. We'll need to port those over later.
2023-03-10 18:43:35 +01:00
Ghost CI
c5b116e2b0 v5.38.0 2023-03-10 16:00:46 +00:00
Simon Backx
db717f446f 🐛 Fixed free trials not visible in paid subscriptions graph
fixes https://github.com/TryGhost/Team/issues/2607

When a free trial converts to a paid subscription, and increases the MRR, it just creates a 'updated' paid subscription event.

To fix this, we need to count updated events that didn't change plan but do have a positive MRR. As an extension we could also check if the MRR change matches the expected MRR for the corresponsing Stripe plan, but that requires a more complex condition check (because for yearly subscriptions we need to convert to monthly), I don't think that is required here.
2023-03-10 16:16:17 +01:00
Simon Backx
400e1b4ab6 🐛 Fixed 3D secure payment not counted as paid subscription in graph
fixes https://github.com/TryGhost/Team/issues/2644

A 3D secure payment first has a status of incomplete, then active.

With the current logic, this creates 2 MemberPaidSubscriptionEvents:

- `created` with mrr_delta of 0
- `active` with mrr_delta of 5

We need to also count 'active' events. And to complement that, also 'inactive' events to make sure we balance out in rare cases.
2023-03-10 16:16:17 +01:00
Rishabh Garg
c71582877c
Added page attribution to member email alerts (#16381)
refs https://github.com/TryGhost/Team/issues/2489

- adds attribution title and url for new free members and paid subscriptions to email alert

---------

Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
2023-03-10 20:14:53 +05:30
Daniel Lockyer
89493893d1 Removed all unused variables from test files
- this cleans up all imports or variables that aren't currently being used
- this really helps keep the tests clean by only allowing what is needed
- I've left `should` as an exemption for now because we need to clean up
  how it is used
2023-03-10 14:29:55 +01:00
Daniel Lockyer
42333a3349 Removed custom assertions
- these are no longer used in favor of snapshots in tests
2023-03-10 14:29:55 +01:00
Daniel Lockyer
08f84475e7 Removed sleep lib from test utils
- this is generally an anti-pattern in tests and leads to flaky
  behaviour when tests are ran on different machines/loads
- this is currently unused so it is an easy removal
2023-03-10 14:29:55 +01:00
Elena Baidakova
6f9f83bee8 Revert "Removed explicit timeout for offer creation helper"
This reverts commit ac427e4253.
2023-03-10 13:44:45 +04:00
Elena Baidakova
ac427e4253 Removed explicit timeout for offer creation helper
refs TryGhost/Team#2667
- Removed timeout to make it the same as a global one
2023-03-10 13:24:38 +04:00
Daniel Lockyer
8df5b1a974 Refactored events wrapper into class
- we have our own class in order to add the `hasRegisteredListener`
  function
- this commit refactors the implementation to use the class syntactic
  sugar, which means we get better editor autocomplete
- this shouldn't change the functionality
2023-03-10 10:19:05 +01:00
renovate[bot]
b93b38a8e8 Update @tryghost 2023-03-10 09:52:02 +01:00
Peter Zimon
d6317708af Refined spacing and position of mentions dropdown
no refs.

- The empty state of mentions dropdown was a little tight on the top
- The dropdown was too close to the trigger button
2023-03-10 09:32:58 +01:00
Ronald Langeveld
ab01e4fcbf Added new Tier e2e test
refs https://github.com/TryGhost/Team/issues/1446

- Added a test for successfully creating a new tier.
2023-03-10 13:29:25 +08:00
renovate[bot]
97830ac79a
Update dependency terser to v5.16.6 2023-03-09 23:47:55 +00:00
Steve Larson
6b29e51c67
🐛 enabled mentions for pages (#16388)
no refs
-mentions were not being sent for pages
-added listeners for page events (published, unpublished, edited)
2023-03-09 17:31:29 -06:00
Djordje Vlaisavljevic
9fd75191ff Updated empty state design
refs https://github.com/TryGhost/Team/issues/2608
2023-03-09 19:41:28 +00:00
renovate[bot]
8a6d87353f
Update dependency metascraper to v5.33.9 2023-03-09 15:22:00 +00:00
Steve Larson
c5dd576d52 updated mentions labs text
no refs
-mentions labs description was incorrect
-mentions always send and receive, flag controls UI only
2023-03-09 09:10:47 -06:00
Simon Backx
832610fd2a
🐛 Fixed retrying failed emails when rescheduling them (#16383)
fixes https://github.com/TryGhost/Team/issues/2560

When an email fails, and you reschedule the post, the error dialog was
shown (from the previous try). The retry button on that page allowed you
to retry sending the email immediately, which could be very confusing.

- The email error dialog is no longer shown for scheduled emails
- The email status is no longer polled for scheduled emails
- Retrying an email is not possible via the API if the post status is
not published or sent
- Added some extra snapshot tests
- When retrying an email, we immediately update the email status to
'pending' to have a better API response (instead of still returning
failed).
- Disabled email sending retrying in development (otherwise very hard to
test failed emails if it takes 10 mins before it gives up automatic
retrying)
2023-03-09 12:32:22 +01:00
Elena Baidakova
8b191a8d01 Removed all tiers archive from portal tests to reduce relation between tests
refs TryGhost/Team#2667
2023-03-09 12:55:27 +04:00
Ronald Langeveld
7539a681fe
Excludes sites with canonical_url meta from sitemap. (#16376)
closes https://github.com/TryGhost/Team/issues/2531

This commit fixes the issue where non-canonical URLs are included in the
XML sitemap, leading to poor SEO for our user's sites. The solution
implemented is to exclude any page or post that specifies a canonical
URL in its metadata from the sitemap.

To achieve this, a condition has been added to the 'addUrl' method,
which checks for the existence of a canonical URL in the metadata of the
resource being added to the sitemap. If a canonical URL is present, the
resource is excluded from the sitemap.

With this fix, our user's sites will have better SEO and improved search
engine visibility.
2023-03-09 16:38:43 +08:00
renovate[bot]
0b13d542f8
Update dependency webpack to v5.76.0 2023-03-09 00:27:33 +00:00
Steve Larson
6402d89e08 removed require should 2023-03-08 16:50:03 -06:00
Steve Larson
cb05fae5a3
🐛 Fixed maintaining archived newsletter subscriptions for members (#16375)
refs #16355
-archived newsletters will no longer be unsubscribed when saving member
-fixed bug with initialMember load
-fixed errors in unit tests
2023-03-08 16:39:28 -06:00
Simon Backx
4184b279d2
🐛 Fixed HTML escaping when using outbound link tagging (#16380)
fixes https://github.com/TryGhost/Team/issues/2666

- Somehow occurrences of `&map_` got replaced with `&#x21A6;`
- Disables escaping &, ', " and other HTML characters when not needed
(escaping is already handled by mobiledoc/lexical)
- Bumps unit test coverage of link replacer to 100%
2023-03-08 16:30:54 +01:00
Elena Baidakova
00cda68125
Disabled fraud detection for e2e browser tests (#16379)
refs TryGhost/Team#2667
2023-03-08 16:01:08 +04:00
Simon Backx
3d89dbb775 Fixed whistelisted domains in Playwright tests and network connectivity
no issue

- Nock doesn't support multiple calls to enableNetConnect -> only the last one counts. This fixes that issue.
- Some tests interacted directly with nock instead of using the mockManager to restore everything.
2023-03-08 12:40:21 +01:00
Simon Backx
df9df4be80 Allowed Stripe network access in Playwright tests
no issue

Previous test change that blocks network access broke the Playwright tests, that need to access the Stripe checkout page.
2023-03-08 11:49:36 +01:00
Kevin Ansfield
6f8dc6b29e
Added admin/jsconfig.json to fix vscode decorator warnings
no issue

- vscode started adding warnings to all uses of decorators in Admin which was rather annoying
- added `jsconfig.json` with the necessary compiler options and an exclude list to keep performance happy
2023-03-08 10:37:49 +00:00
Naz
46508b7299
Fixed external media inliner logs
refs https://github.com/TryGhost/Toolbox/issues/524

- The "tableName" property is not present on the bookshelf model instance - it was a mistake assumption using it for logs. In case the logs are too ambiguous we could figure pass around model names separately into the "inlineSimpleFields" method
2023-03-08 15:24:21 +08:00
Naz
6fa00faaa2
Added naive domain matching when inlining media
refs https://github.com/TryGhost/Toolbox/issues/524

- Mobiledoc from a migrated content could contain html/markdown cards that could have a variety of different resource <> url pairs. To avoid complex logic and parsing html/md going with a simplest approach - matching external content URLs purely based on provided domains. This gives useful enough of a tool to migrate external content for a specific service (e.g Revue)
- In cases where the content is not supported the fetching will fail with a message and move on to the next match - which is a reasonable behavior for a migration tool
2023-03-08 15:22:51 +08:00
Naz
93ea9a2976
Added a not on media inlining perf improvement
refs https://github.com/TryGhost/Toolbox/issues/524

- Fetching media from a remote server is an expensive network operation. Given there's probability for the content to reuse the same image in different posts or in multiple places, we could save on extra fetches by adding caching to the remote media fetch method
2023-03-08 14:16:28 +08:00
Naz
831a76505c
Fixed root zip image/media/files copying during import
https://github.com/TryGhost/Toolbox/issues/523

- During import process of content files the files from the root directory were also copied over. This is causing chaos in the root of content folder with files that only needed for data import. For example, the csv files needed for Revue import were also copied over by "file importer" even though those do not belong to any content.
- Any content import files - images, media, files, should be in according folders in the imported zip file. The root files in the base zip directory are for data-related imports
2023-03-08 11:03:47 +08:00
renovate[bot]
ec869cfa0d
Update dependency mysql2 to v3.2.0 2023-03-07 23:33:30 +00:00
renovate[bot]
a613e5f9b0
Update dependency mailgun.js to v8.2.1 2023-03-07 21:13:12 +00:00
Steve Larson
c111f8bef4 🐛 Fixed referrals to web archive
no refs
-removed ref param for archive.org domain
-ref links to archive.org were broken
2023-03-07 13:35:34 -06:00
renovate[bot]
f6280d835d
Update dependency i18next to v22.4.11 2023-03-07 15:12:44 +00:00
Simon Backx
38de815d98
Removed old email flow (#16349)
fixes https://github.com/TryGhost/Team/issues/2611

The old email flow is no longer used since we introduced the email stability flow. This commit removes the related code and tests. The general test coverage decreased a bit as a result, because the old email flow probably had a high test coverage. The new flow is in separate packages, so it couldn't contribute to a higher test coverage (but it does have 100% unit test coverage).
2023-03-07 16:08:40 +01:00
Simon Backx
3db434736b
🐛 Fixed replacements with fallback in plaintext newsletters (#16372)
fixes https://github.com/TryGhost/Team/issues/2683

When sending a newsletter with a replacement that has a fallback, the
replacement only happens in the HTML version of the newsletter. The
plaintext version isn't replaced.

This commit fixes the issue and adds some tests to make sure it doesn't
happen again.

The cause of the issue was that we used the original matched Regex text
to replace. But that was calculated on the HTML version, so double
quotes were encoded. This change updates the generated 'token' regex to
also match on both a double quote as the escaped double quote.
2023-03-07 15:34:43 +01:00
Peter Zimon
d58f01bac7 Refined new signup email templates
refs. https://github.com/TryGhost/Team/issues/2489

- Alignment of avatar in free and paid signup email template was off
- Paragraphs was mixed in free signup email template which resulted in an unwanted space
2023-03-07 14:19:30 +01:00
Simon Backx
f50224f445
Improved network access and mocking in tests (#16371)
refs https://github.com/TryGhost/Team/issues/2667

Some tests still accessed the internet. Now network access is disabled
by default. This change also introduces two helper methods related to
networking (mocking Slack and Mailgun).

This fixes two unreliable tests:
- Staff service was accessing a Slack test API -> timeout possible
- MentionSendingService was trying to send webmentions for every post
publish/change -> possible timeouts and job issues
2023-03-07 13:20:28 +01:00
Daniel Lockyer
b3d36709ab
Downgraded expect and @playwright/test packages
refs 6460522352

- these were both bumped around the time that Playwright browser tests
  started going awry, so they may be the cause of some random failures
2023-03-07 12:11:05 +01:00
Simon Backx
a58396b2de Removed email sending retrying in test mode
no issue

Disables email sending retrying in test mode by default. This is to prevent test timeouts and to make testing more reliable in case where we manually let a batch fail.
2023-03-07 11:52:10 +01:00
Naz
bd9b76c5ec
Fixed inlined media storage path
refs https://github.com/TryGhost/Toolbox/issues/523

- When storing a Buffer through saveRaw the target path *has to* be relative path instead of a full path.
2023-03-07 18:42:58 +08:00
Simon Backx
b2e00221e1 Fixed MentionSendingService listening to events multiple times in tests
no issue
2023-03-07 11:24:02 +01:00
Simon Backx
4147663cde 🐛 Fixed ability to cancel Stripe subscriptio when deleting member
fixes https://github.com/TryGhost/Team/issues/2670

"Also cancel subscription in Stripe" checkbox was not showing up when deleting a member with active subscriptions.
2023-03-07 10:38:04 +01:00
Naz
6d4dcdf45d
Extended external media inlining
refs https://github.com/TryGhost/Toolbox/issues/524

- We need to be able to inline external media in all internal resources: tags, users, post's meta fields.
- This change adds media inlining logic to all these resources
2023-03-07 15:22:56 +08:00
renovate[bot]
47b6c0b61d Update sentry-javascript monorepo to v7.41.0 2023-03-07 06:51:35 +01:00
renovate[bot]
d140e656c5 Update dependency expect to v29.5.0 2023-03-07 06:49:58 +01:00
Daniel Lockyer
5a6b9e6d84
Added debug logging to measure model require time
- these models should be as lightweight as possible to require, so we
  need to measure how long they take
- this has already found a couple of models which need optimizing
2023-03-06 13:11:59 +01:00
Tim Gates
5394fa81fc
Fixed typos (#16359) 2023-03-06 13:11:45 +01:00
Naz
33316a6440
Added e2e test covering media inliner job start
refs https://github.com/TryGhost/Toolbox/issues/523

- The test is useful for future iterations of the response format and as a quick reference on which parameters the media inlining endpoint accepts.
2023-03-06 17:43:33 +08:00
Rishabh
38b356a748 🎨 Added newsletter preference page link in portal settings
- adds data attribute and link to member's newsletter preference page in portal to portal links table in settings
2023-03-06 15:09:24 +05:30
Rishabh Garg
d6a1d98aca
🎨 Added source attribution info to email alerts (#16360)
refs https://github.com/TryGhost/Team/issues/2489

- adds attribution info for new free and paid members in email alerts
2023-03-06 15:06:47 +05:30
Naz
74067f23bd
Moved the media inliner into a job
refs https://github.com/TryGhost/Toolbox/issues/523

- Media inlining is a long running piece of logic that suits perfectly for a job. It is not as critical to be offloaded into a separate thread at this point, so leaving it as "inline" while the feature is in experimental stage.
2023-03-06 17:10:02 +08:00
Naz
2ce992ed00
Added media inliner for mobiledoc content
refs https://github.com/TryGhost/Toolbox/issues/523

- This is a first pass media inliner going through all posts and checking to inline media from specified domains
- As a working copy the inliner looks for image content from  Revue and Substack
2023-03-06 15:44:22 +08:00
Sam Lord
472e52a536 Made URL class warn on duplicate URLs in the test suite
refs: https://github.com/TryGhost/Toolbox/issues/389

Instead of logging errors, this will warn when adding a duplicate URL in the test environment.

At the moment, this is happening a lot in the test suite. While we also need to fix the root cause of this so we're not erroring in the product, it's a massive amount of spam in the logs when running the test suite which could prevent us from finding other errors which are causing issues.
2023-03-03 18:25:53 +00:00
Sam Lord
13b0f51b13 Prevent simple error logs by stubbing log library
refs: https://github.com/TryGhost/Toolbox/issues/389

This removes many error logs when the end-to-end test suite is run with the log-level set to error. Many errors are intentional, so the resolution is typically to stub the error log function and assert that it would have been called.
2023-03-03 18:25:53 +00:00
Sam Lord
cd5aca7227 Prevented .well-known file tests from attempting to send mail
refs: https://github.com/TryGhost/Toolbox/issues/389

These tests would log errors while attempting to send email.
2023-03-03 18:25:53 +00:00
Sam Lord
5b2adbe4c5 Prevents errors from being logged during the offers tests
refs: https://github.com/TryGhost/Toolbox/issues/389

Intentional errors now call a logging library stub
2023-03-03 18:25:53 +00:00
Sam Lord
8a11ac936d Prevent app services from starting when Ghost is booted without frontend
refs: https://github.com/TryGhost/Toolbox/issues/389

Prevents errors caused when attempting to setup the appService, which relies on the frontend.
2023-03-03 18:25:53 +00:00
Sam Lord
64d94c8c8c Prevent posts-legacy tests from logging errors
refs: https://github.com/TryGhost/Toolbox/issues/389

The newsletter fixtures no longer errors when accessing the test image, and tests which intentionally error now stub the logging call
2023-03-03 18:25:53 +00:00
Sam Lord
a0acccc088 Prevent errors in E2E tests where front-end is disabled and Ghost Admin accesses themes
refs: https://github.com/TryGhost/Toolbox/issues/389
2023-03-03 18:25:53 +00:00
Steve Larson
3e18715caa added twitter embed tests
refs TryGhost/Team#2663
-added basic coverage for twitter embeds
2023-03-03 10:54:03 -06:00
Ghost CI
349e46c454 v5.37.0 2023-03-03 16:00:38 +00:00
Ghost CI
dfde0acf12 🎨 Updated Casper to v5.4.7 2023-03-03 16:00:37 +00:00
Naz
1f95fd50df
Fixed Revue import
refs https://github.com/TryGhost/Toolbox/issues/523

- When importing a zip with Revue data and no "files" or "media" the importer blew up. This is due to a bug where the files from the root directory are still being copied over (the should not be!)
- Added protective extra ".data" check to make sure code doest not blow up when there's no data property to be processed
2023-03-03 17:46:02 +08:00
Naz
29b3da26c3
Added ExternalMediaInliner package scaffolding
refs https://github.com/TryGhost/Toolbox/issues/524

- This is groundwork to contain logic related to external media scraping/inlining for posts.
2023-03-03 17:07:50 +08:00
renovate[bot]
ddd43b7daf Update dependency @playwright/test to v1.31.2 2023-03-03 09:18:21 +01:00
Naz
901485c47b
Added media inlining button in settings>labs
refs https://github.com/TryGhost/Toolbox/issues/524

- Having a button in Admin UI allows to manually trigger media inlining job once import has been processed.
- Added a "start" button hidden behind labs calling Admin API endpoint that starts external media inlining job.
2023-03-03 14:41:24 +08:00
Naz
de87479fb9
Bootstrapped media inlining trigger endpoint
refs https://github.com/TryGhost/Toolbox/issues/524

- Added an endpoint to Admin API under `POST /db/media/inline` that accepts `domains` as JSON payload triggering media inlining job
2023-03-03 14:26:52 +08:00
Naz
da78e235dd
Added media inliner service scaffolding
refs https://github.com/TryGhost/Toolbox/issues/524

- This is groundwork to build up on when adding media inlining functionality. This service will be used by the API to trigger post's content processing and media inlining.
2023-03-03 14:10:30 +08:00
Naz
a479b719ea
Added media inliner feature alpha flag
refs https://github.com/TryGhost/Toolbox/issues/524

- This flag will be used to test the trigger to external media inliner job
- The Admin UI is still unclear so sticking it behind the flag for some experimentation before shipping the feature
2023-03-03 10:54:01 +08:00
Djordje Vlaisavljevic
7bc7881088 Added a temporary fix for wrapping multiple mentions dropdown
refs https://github.com/TryGhost/Team/issues/2606
2023-03-02 20:06:53 +00:00
Djordje Vlaisavljevic
c6185017be Added mentions widget empty state
refs https://github.com/TryGhost/Team/issues/2608
2023-03-02 20:06:53 +00:00
Djordje Vlaisavljevic
683a0726df Added dark mode hover state
refs https://github.com/TryGhost/Team/issues/2608
2023-03-02 20:06:53 +00:00
Kevin Ansfield
7c84ef8c2d
Wired up click-to-refresh upgrade banner
closes https://github.com/TryGhost/Team/issues/2400

- used semver comparison to detect when the app version is less than the content-version header in any API response to toggle `upgradeStatus.requiresRefresh` that is used to conditionally show the upgrade banner
- only works on minors as we don't store the full Ghost patch version in `config.APP.version`
2023-03-02 18:39:38 +00:00
Djordje Vlaisavljevic
72f41bcc1c Fixed text wrapping issues
refs https://github.com/TryGhost/Team/issues/2606
2023-03-02 14:58:57 +00:00
Djordje Vlaisavljevic
bb1ea96cdb Updated recent mentions dashboard widget design
refs https://github.com/TryGhost/Team/issues/2608
2023-03-02 14:58:57 +00:00
Djordje Vlaisavljevic
d3f93066d8 Added dark mode design for mentions
refs https://github.com/TryGhost/Team/issues/2606
2023-03-02 14:58:57 +00:00
Djordje Vlaisavljevic
5e9fe95443 Updated recent mentions dashboard widget design
refs https://github.com/TryGhost/Team/issues/2608
2023-03-02 14:58:57 +00:00
Djordje Vlaisavljevic
a911366dae Updated multiple mentions dropdown design
refs https://github.com/TryGhost/Team/issues/2606
2023-03-02 14:58:57 +00:00
Ghost CI
65f02b7342 Merged v5.36.1 into main 2023-03-02 12:17:31 +00:00
Ghost CI
b0b8d15338 v5.36.1 2023-03-02 12:17:28 +00:00
Steve Larson
4fc131c49d
updated external request format
refs TryGhost/Team#2663
-got version upgrade broke this request
-moved to new format
2023-03-02 12:00:35 +00:00
Daniel Lockyer
6b1966ad9b Updated sinon dependency
- this is being done manually instead of merging the Renovate PR because
  the PR bundles another bump which doesn't pass yet
2023-03-02 12:43:42 +01:00
Naz
a701724903
Renamed content file importer test
refs https://github.com/TryGhost/Toolbox/issues/523

- Test was not renamed after the "image" module changed it's name to "ContentFileImporter"
2023-03-02 17:59:36 +08:00
Naz
ab3959f3f2
Added document file support to the zip importer
refs https://github.com/TryGhost/Toolbox/issues/523

- When migrating or importing ZIP files into Ghost there's often a need to include document files.
- When document files are present in the imported zip file they are now copied across and processed along with the rest of import files: json, images, csvs, etc.
- The importer also searches for use of the document files in the imported "posts" substituting the links with local ones
- The document files importer recognizes media files inside of "files" or "content/files" folders present in the zip.
- The supported media file extensions are same as for file upload widget:
".pdf",".json",".jsonld",".odp",".ods",".odt",".ppt",".pptx",".rtf",".txt",".xls",".xlsx",".xml"

with following content-types:
"application/pdf", "application/json", "application/ld+json", "application/vnd.oasis.opendocument.presentation", "application/vnd.oasis.opendocument.spreadsheet", "application/vnd.oasis.opendocument.text", "application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.presentationml.presentation", "application/rtf", "text/plain", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/xml", "application/atom+xml"
2023-03-02 17:54:19 +08:00
Naz
116e69afcd
Refactored importer's content file handler
refs https://github.com/TryGhost/Toolbox/issues/523

- Renamed variables that were too media-specific
2023-03-02 17:54:19 +08:00
Naz
cd49992cd9
Added generic file import handler
refs https://github.com/TryGhost/Toolbox/issues/523
refs c2534e3c86/packages/mg-assetscraper/lib/AssetScraper.js (L14-L16)
refs https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types

- Importer needs to process and recognize document files like pdfs, presentations etc to be able to import them into sites file storage.
- The handler allows a new root directory "files" to place imported documents
- The handler adds validation and processing for following file extensions:
".pdf",
".json",
".jsonld",
".odp",
".ods",
".odt",
".ppt",
".pptx",
".rtf",
".txt",
".xls",
".xlsx",
".xml"
- With following content types:
"application/pdf",
"application/json",
"application/ld+json",
"application/vnd.oasis.opendocument.presentation",
"application/vnd.oasis.opendocument.spreadsheet",
"application/vnd.oasis.opendocument.text",
"application/vnd.ms-powerpoint",
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
"application/rtf",
"text/plain",
"application/vnd.ms-excel",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"application/xml",
"application/atom+xml"
2023-03-02 17:54:18 +08:00
Naz
b0b80d672d
Refactored content file handler constructor
refs https://github.com/TryGhost/Toolbox/issues/523

- To support generic "file" import handling the content file handler needs more configuration options for properties like type, extensions, content path etc. This refactor makes the handler configurable and reusable for any type of file import
2023-03-02 17:54:18 +08:00
Naz
bf215be0f8
Renamed media import handler to file handler
refs https://github.com/TryGhost/Toolbox/issues/523

- We need to process generic files like .pdf, .md, etc. on the importer "handler" stage.
- The media handler can process more than just media files after few refactorings. Renaming it to a generic content file handler indicates it can process any type of content file.
- In future we can substitute the built-in "images" import handler with this generic content file handler.
2023-03-02 17:54:18 +08:00
renovate[bot]
caac055bdc Update mock-knex digest to d8b93b1 2023-03-02 10:17:13 +01:00
Daniel Lockyer
6460522352
Pinned dependencies
- these should be pinned because Ghost is an application and we like to
  know what versions of dependencies we're running
2023-03-02 09:47:16 +01:00
renovate[bot]
9f08732039 Update @tryghost 2023-03-02 09:47:02 +01:00
Ronald Langeveld
7c805b7176 Revert "Added new created tier e2e test"
This reverts commit dc98868961.
2023-03-02 16:39:17 +08:00
Barno
389362f463
Replaced Promise.props() function with .all() in Members stats
refs https://github.com/TryGhost/Ghost/issues/14882

- this helps remove uses of Bluebird within Ghost

Co-authored-by: Carol-Barno <cbarno@innovexsolutions.co.ke>
2023-03-02 09:28:36 +01:00
Ronald Langeveld
dc98868961 Added new created tier e2e test
ref https://github.com/TryGhost/Team/issues/1446

- Added e2e test to check if a new tier can be added successfully.
2023-03-02 16:11:12 +08:00
renovate[bot]
e01d8a6f1d Update sentry-javascript monorepo to v7.40.0 2023-03-02 09:07:07 +01:00
Naz
59d0a1dd71
Added a comment about strict content/media imports
refs https://github.com/TryGhost/Toolbox/issues/523

- Making "content/media" a strict requirement for the import folder structure breaks the importer (glob library does not expand a subdirectory pattern). Unless it become a strict requirement we can use general content directory matching in combination with file extensions.
2023-03-02 14:35:37 +08:00
Naz
0c111cfe6b
Refactored media file import path calculation
refs https://github.com/TryGhost/Toolbox/issues/523

- The naming was referring to "image", which is a leftover from a copy-paste.
- It's much nicer to read a skimmable, columnar urlJoin method parameters instead of one long line
2023-03-02 14:35:37 +08:00
Naz
2361669bb6
Added media file support to the zip importer
refs https://github.com/TryGhost/Toolbox/issues/523

- When migrating or importing ZIP files into Ghost there's often a need to include more than just post content and images.
- When media files are present in the imported zip file they are now copied across and processed along with the rest of import files: json, images, csvs, etc.
- The importer also searches for use of the media files in the imported "posts" substituting the links with local ones
- The media importer recognizes media files inside of "media" or "content/media" folders present in the zip. The supported media file extensions are same as for media upload widget:
".mp4", ".webm", ".ogv", ".mp3", ".wav", ".ogg", ".m4a"

with following content-types:
 "video/mp4", "video/webm", "video/ogg", "audio/mpeg", "audio/vnd.wav", "audio/wave", "audio/wav", "audio/x-wav", "audio/ogg", "audio/mp4", "audio/x-m4a"
2023-03-02 14:35:37 +08:00
Naz
49553e5942
Renamed "image" importer to generic ContentFileImporter
refs https://github.com/TryGhost/Toolbox/issues/523

- This is ground work before introducing a "media" content type importer
- Previous "image" file name was not describing well what the importer was capable of doing
2023-03-02 14:35:37 +08:00
Ronald Langeveld
6361f27ec1
🐛 Fixed broken link filter params (#16351)
closes https://github.com/TryGhost/Team/issues/2403

- Fixes the links in `list-item.hbs` rendereing the url filter params with brackets
eg `['postid']` where the filter UI requires the filter params not to
have brackets to allow it to render with the filter pre-selected.
- The API handles both with and without brackets.
2023-03-02 13:45:44 +08:00
Steve Larson
3a9adcbc01 updated external request format
refs TryGhost/Team#2663
-got version upgrade broke this request
-moved to new format
2023-03-01 14:51:42 -06:00
Daniel Lockyer
a9c0a64fd2
Merged package .gitignore files into top-level file
fixes https://github.com/TryGhost/Toolbox/issues/480

- this is a bit tricky because the files are a mess but I think this
  covers everything and deduplicates having multiple .gitignore files
  across the repo so we can focus on keeping the definitions in one
2023-03-01 18:31:05 +01:00
Sam Lord
90ef8f008e Prevent error logs from occuring in Ghost unit test suite
refs: https://github.com/TryGhost/Toolbox/issues/389
2023-03-01 16:37:46 +00:00
renovate[bot]
dd0a3be7e9
Update dependency @babel/plugin-proposal-decorators to v7.21.0 (#16161)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@babel/plugin-proposal-decorators](https://babel.dev/docs/en/next/babel-plugin-proposal-decorators)
([source](https://togithub.com/babel/babel)) | [`7.20.7` ->
`7.21.0`](https://renovatebot.com/diffs/npm/@babel%2fplugin-proposal-decorators/7.20.7/7.21.0)
|
[![age](https://badges.renovateapi.com/packages/npm/@babel%2fplugin-proposal-decorators/7.21.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@babel%2fplugin-proposal-decorators/7.21.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@babel%2fplugin-proposal-decorators/7.21.0/compatibility-slim/7.20.7)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@babel%2fplugin-proposal-decorators/7.21.0/confidence-slim/7.20.7)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>babel/babel</summary>

###
[`v7.21.0`](https://togithub.com/babel/babel/blob/HEAD/CHANGELOG.md#v7210-2023-02-20)

[Compare
Source](https://togithub.com/babel/babel/compare/v7.20.13...v7.21.0)

##### 🚀 New Feature

- `babel-core`, `babel-helper-create-class-features-plugin`,
`babel-plugin-proposal-class-properties`,
`babel-plugin-proposal-private-methods`,
`babel-plugin-proposal-private-property-in-object`
- [#&#8203;15435](https://togithub.com/babel/babel/pull/15435) feat:
Implement `privateFieldsAsSymbols` assumption for classes
([@&#8203;fwienber](https://togithub.com/fwienber))
- `babel-helper-create-regexp-features-plugin`,
`babel-plugin-proposal-regexp-modifiers`, `babel-standalone`
- [#&#8203;15226](https://togithub.com/babel/babel/pull/15226) feat:
Support regexp modifiers proposal
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
- `babel-cli`, `babel-core`, `babel-generator`,
`babel-plugin-transform-destructuring`,
`babel-plugin-transform-modules-commonjs`,
`babel-plugin-transform-react-jsx`, `babel-traverse`
- [#&#8203;15022](https://togithub.com/babel/babel/pull/15022) feat:
Generate sourcemaps of friendly call frames
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
-   `babel-parser`, `babel-types`
- [#&#8203;15384](https://togithub.com/babel/babel/pull/15384) \[ts]
Support `const` modifier in type parameters
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))
- `babel-generator`, `babel-helpers`, `babel-parser`,
`babel-plugin-proposal-decorators`, `babel-plugin-syntax-decorators`,
`babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`
- [#&#8203;15405](https://togithub.com/babel/babel/pull/15405) Implement
decorators as presented at `2023-01` TC39 meeting
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))
-   `babel-parser`
- [#&#8203;15114](https://togithub.com/babel/babel/pull/15114) Parser
option to allow `new.target` outside functions
([@&#8203;overlookmotel](https://togithub.com/overlookmotel))
- [#&#8203;15320](https://togithub.com/babel/babel/pull/15320) Add
`annexb: false` parser option to disable Annex B
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))
-   `babel-core`
- [#&#8203;15283](https://togithub.com/babel/babel/pull/15283) feat:
Support `.cts` as configuration file
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
- `babel-generator`, `babel-parser`, `babel-plugin-transform-typescript`
- [#&#8203;15381](https://togithub.com/babel/babel/pull/15381) \[ts]
Support `export type * from`
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))

##### 🐛 Bug Fix

-   `babel-plugin-transform-typescript`
- [#&#8203;15379](https://togithub.com/babel/babel/pull/15379) \[ts5.0]
Better inlining of constants in enums
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
-   `babel-core`
- [#&#8203;15366](https://togithub.com/babel/babel/pull/15366) handling
circular/shared structures in deep-clone
([@&#8203;azizghuloum](https://togithub.com/azizghuloum))
- `babel-helper-create-class-features-plugin`,
`babel-plugin-proposal-class-properties`,
`babel-plugin-proposal-class-static-block`,
`babel-plugin-proposal-private-methods`,
`babel-plugin-transform-classes`, `babel-plugin-transform-new-target`
- [#&#8203;15406](https://togithub.com/babel/babel/pull/15406) Preserve
class elements comments in class transform
([@&#8203;JLHwung](https://togithub.com/JLHwung))
- `babel-parser`, `babel-plugin-transform-flow-comments`,
`babel-plugin-transform-flow-strip-types`, `babel-types`
- [#&#8203;15414](https://togithub.com/babel/babel/pull/15414) \[ts] Fix
restrictions for optional parameters
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))

##### 💅 Polish

-   `babel-parser`
- [#&#8203;15400](https://togithub.com/babel/babel/pull/15400) polish:
improve "`await` as identifier" error in modules
([@&#8203;JLHwung](https://togithub.com/JLHwung))

##### 🏠 Internal

-   `babel-core`
- [#&#8203;15137](https://togithub.com/babel/babel/pull/15137) Improve
CJS compat with ESM-based `@babel/core`
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))

##### 🔬 Output optimization

-   `babel-plugin-transform-typescript`
- [#&#8203;15418](https://togithub.com/babel/babel/pull/15418) \[ts]
Handle exponentiation operator in constant folding
([@&#8203;ehoogeveen-medweb](https://togithub.com/ehoogeveen-medweb))

###
[`v7.20.13`](https://togithub.com/babel/babel/blob/HEAD/CHANGELOG.md#v72013-2023-01-21)

[Compare
Source](https://togithub.com/babel/babel/compare/v7.20.7...v7.20.13)

##### 🐛 Bug Fix

- `babel-helpers`, `babel-plugin-proposal-decorators`,
`babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`
- [#&#8203;15332](https://togithub.com/babel/babel/pull/15332) Ensure
class decorators can access decorated non-static members
([@&#8203;JLHwung](https://togithub.com/JLHwung))
-   `babel-plugin-transform-typescript`
- [#&#8203;15349](https://togithub.com/babel/babel/pull/15349) fix:
Preserve `import {type T} from 'x'` when `onlyRemoveTypeImports:true`
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
- [#&#8203;15344](https://togithub.com/babel/babel/pull/15344) fix:
Properties that are `abstract` should not be initialized.
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
-   `babel-parser`
- [#&#8203;15338](https://togithub.com/babel/babel/pull/15338) Allow
negative number in ambient const initializer
([@&#8203;JLHwung](https://togithub.com/JLHwung))

##### ↩️ Revert

- `babel-plugin-transform-react-inline-elements`,
`babel-plugin-transform-react-jsx-development`,
`babel-plugin-transform-react-jsx`
- [#&#8203;15355](https://togithub.com/babel/babel/pull/15355) Reverts
"Re-use common JSX element transform for <>...\</>"
([@&#8203;JLHwung](https://togithub.com/JLHwung))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMDguNCIsInVwZGF0ZWRJblZlciI6IjM0LjE0Ni4xIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-01 15:44:09 +00:00
Sanne de Vries
2c34d0841c Updated copy for "Click to update" banner
Refs https://github.com/TryGhost/Team/issues/2400
2023-03-01 15:41:13 +01:00
Simon Backx
81c4b46977
Grouped mentions from the same source (#16348)
fixes https://github.com/TryGhost/Team/issues/2625

- Adds an unique option to the mentions API. Enabling this will only
return the latest mention from each source.
- The frontend can fetch the related sources for each page by doing an
extra request to the mentions API.
2023-03-01 12:15:29 +01:00
Daniel Lockyer
22a2f194aa
Removed deprecated webpack config
- we no longer use this because we configure webpack via
  `scripts/build-combined.js`
2023-03-01 11:51:51 +01:00
Naz
eb8d9df923
Made image importer type dynamic
refs https://github.com/TryGhost/Toolbox/issues/523

- Having a dynamic importer type allows to reuse the image importer implementation for other file types e.g.: 'media'
2023-03-01 18:28:17 +08:00
Naz
edebe1571c
Extracted image store to constructor parameter
refs https://github.com/TryGhost/Toolbox/issues/523

- We need to be able to use different storage mechanisms when importing different types of content
- Having the storage passed in using constructor DI allows to have more flexible storage mechanism in the Images importer (soon to become a generic file importer)
2023-03-01 18:21:46 +08:00
Naz
4573d8b4b8
Refactored image importer to use class
refs https://github.com/TryGhost/Toolbox/issues/523

- The class syntax would allow swapping out the storage mechanism in the importer making it universal to use with other file types like media or generic files.
2023-03-01 18:10:39 +08:00
Naz
2bf98e288f
Removed unused module from test suite
refs https://github.com/TryGhost/Toolbox/issues/523
2023-03-01 18:10:39 +08:00
Daniel Lockyer
f717c093e7
Fixed linting 2023-03-01 10:30:18 +01:00
Daniel Lockyer
6d8ca23625
Added support for namespaces to i18n package
refs https://github.com/TryGhost/Ghost/issues/15502

- this adds support for namespaces to the i18n package so we can
  separate translations for different packages
2023-03-01 10:24:08 +01:00
Sanne de Vries
150a3a9c68 Added "Click to update" banner to admin
Refs https://github.com/TryGhost/Team/issues/2400
- Adds a banner to the admin to indicate that a new version is available
- This is just the UI that hasn't been wired up to the actual version check yet
2023-03-01 10:05:23 +01:00
Ronald Langeveld
4407e8e49e
🐛 Added undefined error handling to failed uploads (#15982)
fixes https://github.com/TryGhost/Team/issues/2320

- Adds error handling when undefined objects are passed to certain upload
functions such as `videoUploadCompleted`.
2023-03-01 16:50:56 +08:00
Naz
e14520115a
Extracted Image Importer test suite
refs https://github.com/TryGhost/Toolbox/issues/523
refs 3119a5cc4c

- The "index.test.js" is doing too much, has to be broken down to allow things to move into new packages
2023-03-01 16:48:38 +08:00
Daniel Lockyer
4c2ff0539d
Fixed tests for ImportManager audio types
refs c5a4ee89c9

- as of the referenced commit, the supported list of mime types has been
  updated
2023-03-01 09:14:09 +01:00
Naz
6c9e046b4b
Reduced urlUtils dependency in ImageHandler
refs https://github.com/TryGhost/Toolbox/issues/523

- url-utils module is actively being stripped down from usages across codebase. The "urlUtils.STATIC_IMAGE_URL_PREFIX" and "store.staticFileURLPrefix" are the same values - the main difference is with the value coming from store we can make this module more generic for any store type (images, media, files, etc)
2023-03-01 16:10:54 +08:00
Naz
3119a5cc4c
Extracted ImageHandler test suite
refs https://github.com/TryGhost/Toolbox/issues/523

- The "importer/index.test.js" test suite is testing more than it should. ImageHandler test suite section is one of the examples of test cases that should live in a separate file.
- Having these tests in different files makes it easier to reason about coverage and extract to it's own packages.
2023-03-01 15:55:10 +08:00
Naz
ce5eea5707
Added media file handling to Ghost importer
refs https://github.com/TryGhost/Toolbox/issues/523

- When a zip file is imported into Ghost we need to recognize and process media files with following extensions:
".mp4",".webm", ".ogv", ".mp3", ".wav", ".ogg", ".m4a"
- The media files can come from a "media" or "content/media" folder inside of zip file
2023-03-01 15:55:10 +08:00
Naz
9347e996f8
Created Media Importer Handler package
refs https://github.com/TryGhost/Toolbox/issues/523

- We need media file imports. Media handler is one of the pre-processing parts that need to be done during the import process
- Media import handler is handling import files with following extensions: ".mp4",".webm", ".ogv", ".mp3", ".wav", ".ogg", ".m4a"
- The implementation is largely a copy-paste with class syntax adjustments from the "/core/server/data/importer/handles/image.js" module
- There are a lot of code similarities between media and image import handlers. The new "ImporterMedia" class could serve as a generic base class for file-storage-related imports
2023-03-01 15:55:10 +08:00
Naz
b768e710f1
Bootstrapped media importer package
refs https://github.com/TryGhost/Toolbox/issues/523

- This is a base for the media importer package
2023-03-01 15:55:10 +08:00
Naz
23e2fdde95
Added image importer test coverage
refs https://github.com/TryGhost/Toolbox/issues/523

- The test cases for "content" and "content/images" zip import file structure were missing.
2023-03-01 15:55:10 +08:00
renovate[bot]
a431c16968 Update dependency cli-progress to v3.12.0 2023-03-01 08:45:10 +01:00
monkey sees
838516efb0 🐛 Fixed Handlebars’ asset helper for SafeString input
closes https://github.com/TryGhost/Ghost/issues/16332

Passing `SafeString` input to `asset` helper was resulting in the
exception being thrown. This meant that we couldn’t combine `asset`
helper with other helpers which produce `SafeString` e.g. `concat`
helper for string concatenation.
2023-03-01 08:39:14 +01:00
Reupen Shah
c5a4ee89c9 🐛 Fixed uploads of m4a files with audio/mp4 content type
fixes https://github.com/TryGhost/Ghost/issues/16301

Previously, audio/x-m4a was allowed but not audio/mp4. This meant
uploads of m4a files failed in some cases e.g. Firefox on Windows.
2023-03-01 08:32:21 +01:00
Djordje Vlaisavljevic
d1657b90ea Added mentions dashboard icons
refs https://github.com/TryGhost/Team/issues/2608
2023-02-28 22:23:06 +00:00
Djordje Vlaisavljevic
2b7c5ca66a Updated recent mentions dashboard widget design
refs https://github.com/TryGhost/Team/issues/2608
2023-02-28 22:23:06 +00:00
Steve Larson
9e58181398
combined fetch for metadata and verification (#16330)
refs TryGhost/Team#2582
-removed duplicative fetch request
-added mention as type in oembed service
2023-02-28 08:39:28 -06:00
Djordje Vlaisavljevic
cd0115deec Added static design for grouped mentions with popover
refs https://github.com/TryGhost/Team/issues/2606
2023-02-28 13:37:34 +00:00
Kevin Ansfield
26d05aecd8
Fixed Theme.errors clash with Ember Data Model's errors property (#16106)
no issue

- the Ember Data `Model` class has an `errors` property by default that
is set to a `DS.Errors` instance but the Theme model was overriding that
with an `errors` attr
- it hasn't been an issue so far but causes problems in Ember/Ember Data
3.28.x because that tries to use the `DS.Errors` interface on the
overridden attr property which then throws errors because the `errors`
attr doesn't have the right methods
2023-02-28 13:28:32 +00:00
renovate[bot]
d04a1bd4d0
Update dependency ember-modifier to v4.1.0 (#16345)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ember-modifier](https://togithub.com/ember-modifier/ember-modifier) |
[`4.0.0` ->
`4.1.0`](https://renovatebot.com/diffs/npm/ember-modifier/4.0.0/4.1.0) |
[![age](https://badges.renovateapi.com/packages/npm/ember-modifier/4.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/ember-modifier/4.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/ember-modifier/4.1.0/compatibility-slim/4.0.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/ember-modifier/4.1.0/confidence-slim/4.0.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>ember-modifier/ember-modifier</summary>

###
[`v4.1.0`](https://togithub.com/ember-modifier/ember-modifier/blob/HEAD/CHANGELOG.md#v410-2023-02-28)

[Compare
Source](https://togithub.com/ember-modifier/ember-modifier/compare/v4.0.0...v4.1.0)

##### 🚀 Enhancement

-
[#&#8203;687](https://togithub.com/ember-modifier/ember-modifier/pull/687)
Remove engines field from addon package.json
([@&#8203;SergeAstapov](https://togithub.com/SergeAstapov))
-
[#&#8203;665](https://togithub.com/ember-modifier/ember-modifier/pull/665)
Use the types published from Ember itself
([@&#8203;gitKrystan](https://togithub.com/gitKrystan))
-
[#&#8203;683](https://togithub.com/ember-modifier/ember-modifier/pull/683)
Support Ember v5
([@&#8203;SergeAstapov](https://togithub.com/SergeAstapov))

##### 📝 Documentation

-
[#&#8203;601](https://togithub.com/ember-modifier/ember-modifier/pull/601)
Update compatibility section in README
([@&#8203;bertdeblock](https://togithub.com/bertdeblock))
-
[#&#8203;599](https://togithub.com/ember-modifier/ember-modifier/pull/599)
Remove mention of v4 beta from readme
([@&#8203;sandstrom](https://togithub.com/sandstrom))

##### 🏠 Internal

-
[#&#8203;686](https://togithub.com/ember-modifier/ember-modifier/pull/686)
Rename addon folder to ember-modifier
([@&#8203;SergeAstapov](https://togithub.com/SergeAstapov))
-
[#&#8203;600](https://togithub.com/ember-modifier/ember-modifier/pull/600)
Skip publish-unstable for dependabot PRs
([@&#8203;SergeAstapov](https://togithub.com/SergeAstapov))

##### Committers: 4

- Bert De Block
([@&#8203;bertdeblock](https://togithub.com/bertdeblock))
- Krystan HuffMenne
([@&#8203;gitKrystan](https://togithub.com/gitKrystan))
- Sergey Astapov
([@&#8203;SergeAstapov](https://togithub.com/SergeAstapov))
-   [@&#8203;sandstrom](https://togithub.com/sandstrom)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xNTIuNSIsInVwZGF0ZWRJblZlciI6IjM0LjE1Mi41In0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-28 13:21:38 +00:00
renovate[bot]
e2928a98d4
Update dependency tracked-built-ins to v3.1.1 (#16204)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[tracked-built-ins](https://togithub.com/tracked-tools/tracked-built-ins)
| [`3.1.0` ->
`3.1.1`](https://renovatebot.com/diffs/npm/tracked-built-ins/3.1.0/3.1.1)
|
[![age](https://badges.renovateapi.com/packages/npm/tracked-built-ins/3.1.1/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/tracked-built-ins/3.1.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/tracked-built-ins/3.1.1/compatibility-slim/3.1.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/tracked-built-ins/3.1.1/confidence-slim/3.1.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>tracked-tools/tracked-built-ins</summary>

###
[`v3.1.1`](https://togithub.com/tracked-tools/tracked-built-ins/blob/HEAD/CHANGELOG.md#v311-2023-01-31)

[Compare
Source](https://togithub.com/tracked-tools/tracked-built-ins/compare/v3.1.0...v3.1.1)

##### 🐛 Bug Fix

-
[#&#8203;402](https://togithub.com/tracked-tools/tracked-built-ins/pull/402)
Backport: Introduce flag for length access after push/unshift
([@&#8203;chriskrycho](https://togithub.com/chriskrycho))

##### Committers: 1

- Chris Krycho ([@&#8203;chriskrycho](https://togithub.com/chriskrycho))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTYuMSIsInVwZGF0ZWRJblZlciI6IjM0LjExNi4xIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-28 13:19:02 +00:00
renovate[bot]
72e7d432fd
Update dependency ember-auto-import to v2.6.1 (#16179)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ember-auto-import](https://togithub.com/ef4/ember-auto-import) |
[`2.5.0` ->
`2.6.1`](https://renovatebot.com/diffs/npm/ember-auto-import/2.5.0/2.6.1)
|
[![age](https://badges.renovateapi.com/packages/npm/ember-auto-import/2.6.1/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/ember-auto-import/2.6.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/ember-auto-import/2.6.1/compatibility-slim/2.5.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/ember-auto-import/2.6.1/confidence-slim/2.5.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>ef4/ember-auto-import</summary>

###
[`v2.6.1`](https://togithub.com/ef4/ember-auto-import/blob/HEAD/packages/ember-auto-import/CHANGELOG.md#&#8203;261)

[Compare
Source](https://togithub.com/ef4/ember-auto-import/compare/v2.6.0...v2.6.1)

- BUGFIX: `earlyBootSet` now defaults to empty, because it was causing
problems for some apps. If you need it you need to turn it on
explicitly. [@&#8203;NullVoxPopuli](https://togithub.com/NullVoxPopuli)
[568](https://togithub.com/ef4/ember-auto-import/pull/568)

###
[`v2.6.0`](https://togithub.com/ef4/ember-auto-import/blob/HEAD/packages/ember-auto-import/CHANGELOG.md#&#8203;260)

[Compare
Source](https://togithub.com/ef4/ember-auto-import/compare/v2.5.0...v2.6.0)

- ENHANCEMENT: new option `earlyBootSet` allows you to work around
compatibility problems between classic addons and v2 addons by
[@&#8203;NullVoxPopuli](https://togithub.com/NullVoxPopuli)
[553](https://togithub.com/ef4/ember-auto-import/pull/553)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTEuMSIsInVwZGF0ZWRJblZlciI6IjM0LjE0OC4wIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-28 13:17:53 +00:00
renovate[bot]
59f8c88fe7
Update dependency ember-cli-htmlbars to v6.2.0 (#16141)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[ember-cli-htmlbars](https://togithub.com/ember-cli/ember-cli-htmlbars)
| [`6.1.1` ->
`6.2.0`](https://renovatebot.com/diffs/npm/ember-cli-htmlbars/6.1.1/6.2.0)
|
[![age](https://badges.renovateapi.com/packages/npm/ember-cli-htmlbars/6.2.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/ember-cli-htmlbars/6.2.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/ember-cli-htmlbars/6.2.0/compatibility-slim/6.1.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/ember-cli-htmlbars/6.2.0/confidence-slim/6.1.1)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>ember-cli/ember-cli-htmlbars</summary>

###
[`v6.2.0`](https://togithub.com/ember-cli/ember-cli-htmlbars/blob/HEAD/CHANGELOG.md#v620-2023-01-17)

[Compare
Source](https://togithub.com/ember-cli/ember-cli-htmlbars/compare/v6.1.1...v6.2.0)

##### 🚀 Enhancement

-
[#&#8203;762](https://togithub.com/ember-cli/ember-cli-htmlbars/pull/762)
Upgrade to `babel-plugin-ember-template-compilation` v2
([@&#8203;dfreeman](https://togithub.com/dfreeman))

##### Committers: 1

-   Dan Freeman ([@&#8203;dfreeman](https://togithub.com/dfreeman))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMDUuMSIsInVwZGF0ZWRJblZlciI6IjM0LjEwNS4xIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-28 13:17:31 +00:00
renovate[bot]
a539e15d82
Update dependency ember-cli-code-coverage to v2 (#16099)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[ember-cli-code-coverage](https://togithub.com/kategengler/ember-cli-code-coverage)
| [`1.0.3` ->
`2.0.0`](https://renovatebot.com/diffs/npm/ember-cli-code-coverage/1.0.3/2.0.0)
|
[![age](https://badges.renovateapi.com/packages/npm/ember-cli-code-coverage/2.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/ember-cli-code-coverage/2.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/ember-cli-code-coverage/2.0.0/compatibility-slim/1.0.3)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/ember-cli-code-coverage/2.0.0/confidence-slim/1.0.3)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>kategengler/ember-cli-code-coverage</summary>

###
[`v2.0.0`](https://togithub.com/kategengler/ember-cli-code-coverage/blob/HEAD/packages/ember-cli-code-coverage/CHANGELOG.md#v200-beta2-2021-10-28)

[Compare
Source](https://togithub.com/kategengler/ember-cli-code-coverage/compare/v1.0.3...v2.0.0)

##### 💥 Breaking Change

-   `ember-cli-code-coverage`
-
[#&#8203;332](https://togithub.com/kategengler/ember-cli-code-coverage/pull/332)
Move `sendCoverage` to be added by the host in `QUnit.done`
([@&#8203;thoov](https://togithub.com/thoov))

##### 🚀 Enhancement

-   `ember-cli-code-coverage`
-
[#&#8203;333](https://togithub.com/kategengler/ember-cli-code-coverage/pull/333)
Migrate to using native `fetch` instead of XMLHttpRequest
([@&#8203;rwjblue](https://togithub.com/rwjblue))

##### Committers: 2

-   Robert Jackson ([@&#8203;rwjblue](https://togithub.com/rwjblue))
-   Travis Hoover ([@&#8203;thoov](https://togithub.com/thoov))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC45Ny4xIiwidXBkYXRlZEluVmVyIjoiMzQuOTcuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-28 13:17:17 +00:00
renovate[bot]
af304dbd16
Update dependency miragejs to v0.1.47 (#15786)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [miragejs](https://togithub.com/miragejs/miragejs) | [`0.1.45` ->
`0.1.47`](https://renovatebot.com/diffs/npm/miragejs/0.1.45/0.1.47) |
[![age](https://badges.renovateapi.com/packages/npm/miragejs/0.1.47/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/miragejs/0.1.47/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/miragejs/0.1.47/compatibility-slim/0.1.45)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/miragejs/0.1.47/confidence-slim/0.1.45)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>miragejs/miragejs</summary>

###
[`v0.1.47`](https://togithub.com/miragejs/miragejs/releases/tag/v0.1.47)

[Compare
Source](https://togithub.com/miragejs/miragejs/compare/v0.1.46...v0.1.47)

🚀 Enhancements

- Typescript: Allow arbitrary model updates, not only Collections by
[@&#8203;lanhhv84](https://togithub.com/lanhhv84) in
[https://github.com/miragejs/miragejs/pull/1066](https://togithub.com/miragejs/miragejs/pull/1066)

🐛 Bugfixes

- Establish precedence for embed over serializeIds by
[@&#8203;NoneOfMaster](https://togithub.com/NoneOfMaster) in
[https://github.com/miragejs/miragejs/pull/1074](https://togithub.com/miragejs/miragejs/pull/1074)

#### New Contributors

- [@&#8203;lanhhv84](https://togithub.com/lanhhv84) made their first
contribution in
[https://github.com/miragejs/miragejs/pull/1066](https://togithub.com/miragejs/miragejs/pull/1066)

**Full Changelog**:
https://github.com/miragejs/miragejs/compare/v0.1.46...v0.1.47

###
[`v0.1.46`](https://togithub.com/miragejs/miragejs/releases/tag/v0.1.46)

[Compare
Source](https://togithub.com/miragejs/miragejs/compare/v0.1.45...v0.1.46)

#### What's Changed

🚀 **Enhancements**

- Support selected embedded relationships by
[@&#8203;NoneOfMaster](https://togithub.com/NoneOfMaster) in
[https://github.com/miragejs/miragejs/pull/850](https://togithub.com/miragejs/miragejs/pull/850)
- Add resource function type definition by
[@&#8203;morganmspencer](https://togithub.com/morganmspencer) in
[https://github.com/miragejs/miragejs/pull/1059](https://togithub.com/miragejs/miragejs/pull/1059)

🐛 **Bugfixes**

- Fixed timing being incorrectly passed to pretender by
[@&#8203;cah-brian-gantzler](https://togithub.com/cah-brian-gantzler) in
[https://github.com/miragejs/miragejs/pull/1051](https://togithub.com/miragejs/miragejs/pull/1051)
- Fix includes query params by
[@&#8203;mansona](https://togithub.com/mansona) in
[https://github.com/miragejs/miragejs/pull/1064](https://togithub.com/miragejs/miragejs/pull/1064)

🗂 **Types**

- Align passthrough type declaration with implementation by
[@&#8203;brzosthub](https://togithub.com/brzosthub) in
[https://github.com/miragejs/miragejs/pull/1061](https://togithub.com/miragejs/miragejs/pull/1061)

#### New Contributors

- [@&#8203;brzosthub](https://togithub.com/brzosthub) made their first
contribution in
[https://github.com/miragejs/miragejs/pull/1061](https://togithub.com/miragejs/miragejs/pull/1061)
- [@&#8203;NoneOfMaster](https://togithub.com/NoneOfMaster) made their
first contribution in
[https://github.com/miragejs/miragejs/pull/850](https://togithub.com/miragejs/miragejs/pull/850)
- [@&#8203;morganmspencer](https://togithub.com/morganmspencer) made
their first contribution in
[https://github.com/miragejs/miragejs/pull/1059](https://togithub.com/miragejs/miragejs/pull/1059)
- [@&#8203;mansona](https://togithub.com/mansona) made their first
contribution in
[https://github.com/miragejs/miragejs/pull/1064](https://togithub.com/miragejs/miragejs/pull/1064)

**Full Changelog**:
https://github.com/miragejs/miragejs/compare/v0.1.45...v0.1.46

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzQuMTE2LjEifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-28 13:16:34 +00:00
Sam Lord
579ecd5b0b Prevent error logging in Urls tests from being output
refs: https://github.com/TryGhost/Toolbox/issues/389
2023-02-28 11:14:11 +00:00
Sam Lord
6512fc770d Prevent xmlprc tests from outputting errors for failure cases
refs: https://github.com/TryGhost/Toolbox/issues/389
2023-02-28 11:14:11 +00:00
Sam Lord
007adb6a33 Prevent tests from erroring when calling validate.init()
refs: https://github.com/TryGhost/Toolbox/issues/389

Calling validate always uses the cache system, so this commit makes sure that the cache system is always initialised correctly by the tests.
2023-02-28 11:14:11 +00:00
Sam Lord
98f0b6c7ce Added ghost_subscription_id to members_stripe_customers_subscriptions table in data generator
no issue
2023-02-28 11:14:11 +00:00
Djordje Vlaisavljevic
0f925dde8c Fixed logic for displaying recent mentions dashboard widget
refs https://github.com/TryGhost/Team/issues/2481
2023-02-28 10:15:22 +00:00
Daniel Lockyer
acf2ab2d22 Added translation wrapper to public-facing strings in Portal
refs https://github.com/TryGhost/Ghost/issues/15502

- in order to use the translations, strings must be wrapped in the `t`
  function, which is passed through AppContext
- whilst I haven't instrumented all public strings, the vast majority
  are done here and the strings have been brought into the JSON locale files using `yarn translate:generate`
2023-02-28 10:03:04 +01:00
renovate[bot]
f007094d4b Update sentry-javascript monorepo to v7.39.0 2023-02-28 09:57:57 +01:00
Fabien "egg" O'Carroll
6fcc7364e0 Wired up enableAutomaticTax feature flag to Stripe API
The automatic_tax option is required to enable tax collection for
Stripe Checkout sessions. We've used getters here rather than an
explicit function, might wanna change that in future.
2023-02-28 14:09:52 +07:00
Fabien "egg" O'Carroll
6a093f4549 Added stripeAutomaticTax feature flag as private beta
This will be used to test the use of the Stripe Tax feature during
development. We want it behind a private beta flag so that we can
stick it in production without causing problems with payment systems
for existing sites.
2023-02-28 14:07:32 +07:00
Steve Larson
35c78fd718
fixed member import email setting import (#16269)
refs TryGhost/Team#2605
-updated unparse to look at both subscribed and subscribed_to_emails
-subscribed is for backwards compatibility
-may want to retire subscribed since we can't set from front-end
2023-02-27 15:25:20 -06:00
Steve Larson
a86737875c
enabled member filtering and export at all times (#16344)
refs TryGhost/Team#2392
-made filtering always available
-made export always available
-made searching always available
2023-02-27 15:23:29 -06:00
Steve Larson
fe7253da1e
removed before after card (#16341)
refs TryGhost/Team#2405
-removed koenig before after card
-removed labs setting
-will rebuild in lexical if we want it in the future
2023-02-27 14:18:48 -06:00
Daniel Lockyer
93e0898c12
Extracted version-match middleware to separate package
- this middlware is standalone and has 100% test coverage, therefore we
  can move it out to a separate package and remap the requires
  accordingly
2023-02-27 18:34:03 +01:00
Daniel Lockyer
025ebb7890
Cleaned up duplicate middleware
refs 621cfd9866

- this file was meant to be moved to a folder in the referenced commit,
  but that never happened
- this commit fixes that
2023-02-27 18:02:40 +01:00
Daniel Lockyer
1a04e75e8b
Set backup file encoding as utf8
- we write files in the default encoding (which is `utf8`) and this
  files a types issue with `JSON.parse` operating on a Buffer
2023-02-27 17:48:41 +01:00
Daniel Lockyer
268e72309f
Reduced code coverage limits temporarily
- I'm shifting some code around but the code coverage keeps flagging
- in order to not get sidetracked, I'm reducing the threshold by 1% and I'll
  increase it again once we're in a better state
2023-02-27 17:37:48 +01:00
Daniel Lockyer
51a25769eb
Moved Segment analytics file into service
- this file is already in our "init"-style, so this commit simply moves
  the file into a service and fixes the import paths
2023-02-27 17:27:28 +01:00
Daniel Lockyer
1ecf77db48 Inlined client database helpers
- these have been lingering around for a while but don't really get a
  lot of love
- I'm planning on moving the migration utils/schema commands into a
  separate package at some point, and these files are just cluttering
  things up
- to make life easier, I'm going to inline them for now
2023-02-27 17:27:22 +01:00
Daniel Lockyer
b1ff826a61 Removed Bluebird from DB backup file
refs https://github.com/TryGhost/Ghost/issues/14882

- we're slowly moving away from Bluebird and don't need it here to
  achieve what we need
2023-02-27 16:37:54 +01:00
Daniel Lockyer
42768937fd Disabled autoRefresh when adding an email recipient failure
- we don't need the updated model once we've saved it in the DB, so we
  can disable the auto refresh in Bookshelf to save a query
2023-02-27 15:45:25 +01:00
Daniel Lockyer
31bc57fbe1
Removed log line from AMP parsing
refs https://github.com/TryGhost/Ghost/pull/9097

- this was originally added to measure the AMP parsing time but AMP is
  becoming less and less important (it's disabled by default in Ghost
  now)
- this also causes a lot of noise when viewing logs, and I've never
  experienced an issue with AMP parsing time that we've needed to review
  these logs
- therefore, this commit deletes it
2023-02-27 15:03:51 +01:00
Daniel Lockyer
2e051fb271
Fixed typo 2023-02-27 15:00:18 +01:00
renovate[bot]
90f64bf212 Update dependency @playwright/test to v1.31.1 2023-02-27 14:45:10 +01:00
Daniel Lockyer
e630acdb88
Added i18n translate function to test context
refs https://github.com/TryGhost/Ghost/issues/15502

- this allows use of the `t` function whilst running tests
2023-02-27 13:35:11 +01:00
Daniel Lockyer
2804445d41
Fixed returning key when value is empty string
refs https://github.com/TryGhost/Ghost/issues/15502

- in the event the value is an empty string, we want to return the key
- this config option enables that
2023-02-27 13:18:55 +01:00
Naz
96a64b4982
Added error rethrow to update check run as a job
closes https://github.com/TryGhost/Toolbox/issues/525

- When the update check is run as an offloaded job (in a worker thread) the errors that are handled over "logger.error" do not get bubbled up to the job manager to be handled fully. With an optional "rethrowErrors" flag it's not possible to throw errors when the update check is run as a "job" and handle as usual when run in the main thread (through the admin route trigger)
2023-02-27 19:48:42 +08:00
Daniel Lockyer
17a48c76cd
Added jsdoc annotations for i18next-parser config type
- this helps with using the correct key/values when working on the
  config
2023-02-27 11:29:56 +01:00
Daniel Lockyer
9e5efff187
Added @tryghost/i18n to Portal
refs https://github.com/TryGhost/Ghost/issues/15502

- this adds the package to Portal and integrates it into the state we
  pass around
- note: I've currently left the detection of the language
  (`site.locale`) commented for now until we flesh more of the
  implementation out
2023-02-27 10:50:37 +01:00
Elena Baidakova
e45e98bfc4
Added error handling for image upload in lexical (#16335)
refs TryGhost/Team#2593
2023-02-27 12:49:49 +04:00
Naz
81f8abdbd6
🐛 Fixed failing update-check job
refs https://github.com/TryGhost/Toolbox/issues/525
refs https://github.com/TryGhost/Ghost/pull/16224

- The update check job has been failing due to uninitialized Members Service. Loading Tiers in the context of update check is not important because all we are looking for is the posts count.
- The products repository list service is also about to be replace by Tiers repository, so getting correctly initialized members service is not crucial.
2023-02-27 15:58:00 +08:00
Elena Baidakova
6afcf8eec8 Fixed copying text from editor after adding video card
refs TryGhost/Team#2600
- Copying text from editor after adding video card broke it due to error in video node renderer.
2023-02-27 10:28:39 +04:00
renovate[bot]
a260d5396b
Update Test & linting packages 2023-02-27 03:18:16 +00:00
renovate[bot]
9f3d8ec67d Update dependency mailgun.js to v8.1.0 2023-02-25 00:50:01 +00:00
renovate[bot]
bdea9c3205 Update dependency terser to v5.16.5 2023-02-24 20:38:59 +00:00
Ghost CI
9fa44f4d3f v5.36.0 2023-02-24 16:00:48 +00:00
Djordje Vlaisavljevic
5172d07238 Updated post analytics mentions empty state
refs https://github.com/TryGhost/Team/issues/2575
2023-02-23 15:44:35 +00:00
Djordje Vlaisavljevic
c33f30a3e0 Removed show all mentions link in empty state
refs https://github.com/TryGhost/Team/issues/2481
2023-02-23 15:44:35 +00:00
Djordje Vlaisavljevic
3a3f8c9532 Updated mentions feed design
refs https://github.com/TryGhost/Team/issues/2583
2023-02-23 15:44:35 +00:00
Aileen Nowak
d441fe2e2a Fixed tests 2023-02-23 17:21:20 +02:00
Aileen Nowak
61e7cd644b Added test to slack-notifications to check for correct reason when value too far from milestone 2023-02-23 17:21:20 +02:00
Aileen Nowak
086da740a2 Changed maxPercentageFromMilestone to 10% 2023-02-23 17:21:20 +02:00
Aileen Nowak
74a65f3b1c Simplyfied milestone event meta data
no issue

- Reduced the amount of diffeerent properties by not populating a `currentARR` and `currentMembers` fields, but use a `currentValue` instead.
- The type of milestone can still be determined by its `type` property, so we actually don't need two different props here
2023-02-23 17:21:20 +02:00
Aileen Nowak
d820b961b0 Avoid sending milestone email when actual value is too far from milestone
no issue

- Switches to used newly added config values throughout the services
- Updated the `shouldSendEmail` fn to check if actual value is too far from achieved milestone as determined by the percentage setting (e. g. 998 members should not accidentally receive an email for achieving 100 members)
2023-02-23 17:21:20 +02:00
Aileen Nowak
be84d227cd Added more configurable parameters to shared milstone config
no issue

- Instead of having those values hard coded, make them quickly configurable
- Those values are deciding if we send an email or not, the milestones will be created either way:
    - minDaysSinceImported: the amount of that days should've passed since the last member was imported
    - minDaysSinceLastEmail: minimum amount of days that need to pass
    - maxPercentageFromMilestone: the max percentage that the current value can be away from the achieved milestone (e. g. 999 members should not send and email for 100 members)
2023-02-23 17:21:20 +02:00
Simon Backx
89ababb71f
Updated email event fetching to stop when begin and end are the same (#16326)
no issue

Optimization that makes sure we stop fetching when it is no longer
needed.
2023-02-23 15:44:01 +01:00
Simon Backx
3ded0bbee8
Added outbound link tagging setting (#16324)
no issue

Enable or disable outbound link tagging in both web posts and
newsletters.
2023-02-23 14:37:23 +01:00
Aileen Nowak
ff3568293c Updated milestones e2e test to better check for last email sent safeguard
refs https://www.notion.so/ghost/Marketing-Milestone-email-campaigns-1d2c9dee3cfa4029863edb16092ad5c4?pvs=4

- Didn't check for the specific case before and fixed a bug that was allowiing the test to pass even though it should fail
2023-02-23 14:10:12 +02:00
Aileen Nowak
314b88cfb5 Fixed milestone query for imported members not using correct date
refs https://www.notion.so/ghost/Marketing-Milestone-email-campaigns-1d2c9dee3cfa4029863edb16092ad5c4?pvs=4

- I was passing in the days threshold of 7 to compare with the `created_at` value instead of creating an actual new data to compare
2023-02-23 14:10:12 +02:00
Sam Lord
9852c21ec5 Prevented random labels from being generated when base-data is present
no issue

Before, when base data included labels for members, the random generated labels would also be generated. This prevents that, and ensures that the base-data labels are applied correctly to members.
2023-02-23 11:04:58 +00:00
Simon Backx
f6bc3479f9
Added webmentions emails flag (#16321)
fixes https://github.com/TryGhost/Team/issues/2599

Disables sending webmentions notification emails, and hides it behind a new flag instead.
2023-02-23 11:42:14 +01:00
Simon Backx
c9fa1068a0
Updated outbound_link_tagging to match members_track_sources (#16322)
fixes https://github.com/TryGhost/Team/issues/2601

Sets the value of outbound_link_tagging to the same value of
members_track_sources, so that is disabled by default for privacy
sensitive sites.

Also makes sure the `outbound_link_tagging` setting is available in
admin (currently excluded because it is in the analytics group)
2023-02-23 11:33:23 +01:00
Aileen Booker
e0331bbfcf
Added MilestoneCreatedEvent to staff service notifications (#16307)
refs
https://www.notion.so/ghost/Marketing-Milestone-email-campaigns-1d2c9dee3cfa4029863edb16092ad5c4?pvs=4

- Added MilestoneCreatedEvent subscription to staff-service incl. first
handling
- Logs information for now instead of actually sending an email
2023-02-23 11:20:13 +02:00
Daniel Lockyer
fed2cb2675
Added missing dev dependency to event-aware-cache-wrapper package
- this is used in tests so it needs to be defined in the package.json
2023-02-23 08:48:01 +01:00
Naz
6b72b2f51f
Removed public-resource-repository
refs https://github.com/TryGhost/Toolbox/issues/522

- Using a generic resource repository for caching purposes didn't prove to be effective as code was moved to api-level caching. There's no need to introduce extra abstraction level for simple calls like findPage when there's no extra logic to it.
2023-02-23 13:07:04 +08:00
Naz
b8bdd3e742
Moved Tags Content API to api-level caching
refs https://github.com/TryGhost/Toolbox/issues/522

- Caching on a repository level was pretty hard to achieve with more complex models like "posts", so that approach was abandoned in favor of API-response level caching.
- Also removed use of "public-resource-repository" as it was not serving any specific purpose anymore.
2023-02-23 13:07:04 +08:00
Naz
33f176a9de
Cleaned up use of public-resource-repository
no issue

- The caching has been moved down the layer  - the the api-framework's "pipeline", so there's no need to add complexity to post fetching logic with repository pattern.
2023-02-23 13:07:04 +08:00
Naz
f049e89a20
Hooked up event aware cache wrapper to posts cache
refs https://github.com/TryGhost/Toolbox/issues/522

- When caching responses the posts cache can create a situation where it becomes stale within the TTL period and would give stale responses to shared caches.
- Having full cache reset on 'site.changed' event makes cached content evergreen reducing the risk of caching stale content in shared caches
2023-02-23 13:07:04 +08:00
Naz
f74b19ab61
Added implementation for event-aware cache
refs https://github.com/TryGhost/Toolbox/issues/522

- The main feature of this cache wrapper is being able to "reset" the the cache without calling the "reset" on the wrapped cache. Being able to invalidate caches without accessing the data is a feature needed to run on caches with shared environment.
- Cache invalidation happens through a special "reset time" key being added to each key when setting or getting a value, when the cache is reset the reset time is set to a new value - essentially invalidating all previously accessible values.
2023-02-23 13:07:04 +08:00
Naz
0301f5983e
Bootstrapped module for EventAwareCacheWrapper
refs https://github.com/TryGhost/Toolbox/issues/522

- This is generated code for a new module. Nothing special here
2023-02-23 13:07:04 +08:00
Naz
0ddf0dd003
Added simple non-expiring caching to Posts API
refs https://github.com/TryGhost/Toolbox/issues/522

- The public posts "browse" endpoint is causing the most strain on the instance performance. Caching responses with small TTL would allow to reduce the amount of request processing.
2023-02-23 13:07:04 +08:00
Naz
3cfe6d2cbb
Added cache support to api-framework
refs https://github.com/TryGhost/Toolbox/issues/522

- API-level response caching allows to cache responses bypassing the "pipeline" processing
- The main usecase for these caches is caching GET requests for expensive Content API requests
- To enable response caching add a "cache" key with a cache instance as a value, for example for posts public cache configuration can look like:
```
module.exports = {
    docName: 'posts',

    browse: {
        cache: postsPublicService.api.cache,
        options: [ ...
```
2023-02-23 13:07:04 +08:00
Aileen Nowak
80ebd1c5be Fixed random timeouts in milestone service e2e test
no issue

- Passed specific config to `useFakeTimers` so the test only fakes the `setTimeout` call
2023-02-22 20:26:53 +02:00
Simon Backx
94f5ad60c3 Added temporary fix for email suppression list error logs in tests
refs https://github.com/TryGhost/Team/issues/2598

In tests the model is undefined because the service is imported too early.
2023-02-22 19:13:52 +01:00
Simon Backx
7220be92e2 Webmentions sending tests stability improvements
no issue
2023-02-22 18:25:06 +01:00
Daniel Lockyer
ccc443bf28
Commented out flaky adapter-cache-memory-ttl tests
- at least until we can fix them in a reliable way
2023-02-22 17:24:26 +01:00
Steve Larson
18eeb9e523 moved spam prevention test
no refs
-spam prevention test was causing subsequent tests to fail randomly
-moving to the end ensures (for now) we don't interrupt other tests
-seems to be an issue with awaiting the jobservice which do concurrent
2023-02-22 09:52:26 -06:00
Simon Backx
a7090dddcd Email snapshot updates 2023-02-22 16:49:28 +01:00
Simon Backx
603e0909c9 Fixed webmentions unit test coverage
no issue

Try catch was not covered
2023-02-22 16:36:11 +01:00
Kevin Ansfield
dda1293ec0
Wired up lexical editor focus when clicking below editor canvas
no issue

- we added support for and a demo of clicking below the editor moving focus to it in the Koenig repo but the implementation in Admin was missing
- replaced the commented-out mobiledoc handling in `<GhKoenigEditorLexical>` with the new Koenig-lexical equivalent
2023-02-22 15:26:31 +00:00
Simon Backx
f45d1810a6 Improved webmention receiving E2E test reliability
refs https://github.com/TryGhost/Team/issues/2596
2023-02-22 16:19:56 +01:00
Djordje Vlaisavljevic
1b3d19ba81 Updated new mention email template design
refs https://github.com/TryGhost/Team/issues/2491
2023-02-22 15:11:29 +00:00
Djordje Vlaisavljevic
5a7138bb4b Removed repetitive post titles
refs https://github.com/TryGhost/Team/issues/2575
2023-02-22 15:11:29 +00:00
Sanne de Vries
4095fbc745 Removed unused Spirit styles
No issue
- These specific styles were clashing with the Tailwind classes used in the Lexical editor. As they are not used anywhere in Admin, the simplest solution is to remove them.
2023-02-22 15:44:07 +01:00
Aileen Booker
3aa75ee5dc
Improved milestone e2e test (#16314)
refs
https://www.notion.so/ghost/Marketing-Milestone-email-campaigns-1d2c9dee3cfa4029863edb16092ad5c4?pvs=4

- Check with more realistic dates and validate changes on milestone
model
2023-02-22 16:15:21 +02:00
Aileen Booker
cf7d34d862
Added BookshelfMilestoneRepository implementation (#16305)
refs
https://www.notion.so/ghost/Marketing-Milestone-email-campaigns-1d2c9dee3cfa4029863edb16092ad5c4?pvs=4

This stores the received milestones in the database.
2023-02-22 15:53:29 +02:00
Djordje Vlaisavljevic
7b778eabe4 Updated post analytics mentions widget design
refs https://github.com/TryGhost/Team/issues/2575
2023-02-22 13:11:39 +00:00
Djordje Vlaisavljevic
fb3347bc64 Updated mentions dashboard widget design
refs https://github.com/TryGhost/Team/issues/2481
2023-02-22 13:11:39 +00:00
Ronald Langeveld
76640d9b7e
Added page resources to emails (#16315)
refs https://github.com/TryGhost/Team/issues/2572

- Passes post resource data to emails.
- Updated email templates accordingly.
- Added snapshot e2e tests.
2023-02-22 21:02:15 +08:00
Aileen Booker
4556e9be88
Added milestone_notifications column (#16306)
refs
https://www.notion.so/ghost/Marketing-Milestone-email-campaigns-1d2c9dee3cfa4029863edb16092ad5c4?pvs=4

- created a migration for a new boolean column in users that would
determine if the staff user gets an email when a new milestone is
achieved.
2023-02-22 14:13:50 +02:00
Daniel Lockyer
db36da6b5d
Increased global Playwright expect timeout to 10s
- this sometimes helps when CI is slow, and is the best way to set it
  globally
2023-02-22 12:54:26 +01:00
Simon Backx
228de811bb Cleaned up comment
refs aed10d38f0
2023-02-22 12:23:46 +01:00
Simon Backx
aed10d38f0 Hid Bridgy Webmentions
fixes https://github.com/TryGhost/Team/issues/2591
2023-02-22 12:21:43 +01:00
Daniel Lockyer
2d1f9fff0c
Updated @tryghost/errors dependency
- there's a weird situation when we have mixed versions of the
  dependency because different libraries try to compare instances
- this brings the usage up to 1.2.21 so we can fix the build for now
2023-02-22 11:32:11 +01:00
Simon Backx
85ac38cc48 Added mentions page for a post
fixes https://github.com/TryGhost/Team/issues/2590

Added a new route that only shows mentions for a given post. Reuses the same controller and template.
2023-02-22 10:48:15 +01:00
renovate[bot]
0181f2f61d Update dependency body-parser to v1.20.2 2023-02-22 09:59:25 +01:00
Daniel Lockyer
e9eb94dd81
Fixed missing timeout on nodemailer Mailgun requests
refs 8ce2321cb1

- without this, we have no timeout on the requests and it's good to
  control how long our connections are active for
2023-02-22 09:51:57 +01:00
Aileen Booker
32630c27cc
Added milestones database table (#16300)
refs
https://www.notion.so/ghost/Marketing-Milestone-email-campaigns-1d2c9dee3cfa4029863edb16092ad5c4?pvs=4

- added new `milestones` database table to be able to store created
milestones.
- updated schema and tests to match.
2023-02-22 10:46:43 +02:00
Naz
ad6097b695
Refactored post's extra-attributes to use options
refs https://github.com/TryGhost/Toolbox/issues/522

- Having simpler method signature makes it easier to use it in different context - needed for changes in public resource repository
- TLDR of the changes - reduced parameter 'frame.options' -> 'options'
2023-02-22 15:46:56 +08:00
renovate[bot]
61bacb6681 Update dependency socket.io to v4.6.1 2023-02-22 05:41:56 +00:00
Sam Lord
c72dcd629f Fixed balance of email recipient data in data generator
no issue

Previously the number of opened emails was being generated incorrectly as the number of delivered emails was being reported too high.

Also, the faker date function occasionally fails for dates which are
too close together so this switches to manually generating a date
between the two.
2023-02-21 23:50:02 +00:00
Sam Lord
6cdf37c0ee Added open rates to members in data generator
no issue
2023-02-21 23:50:02 +00:00
Djordje Vlaisavljevic
34c694529d Added logic for displaying resource type
refs https://github.com/TryGhost/Team/issues/2491
2023-02-21 22:20:12 +00:00
Djordje Vlaisavljevic
88fa56ee37 Updated new mention email template design
refs https://github.com/TryGhost/Team/issues/2491
2023-02-21 22:13:39 +00:00
Djordje Vlaisavljevic
d03cf20aa6 Updated spacing
refs https://github.com/TryGhost/Team/issues/2481
2023-02-21 20:27:36 +00:00
Djordje Vlaisavljevic
b16a926a24 Updated spacing
refs https://github.com/TryGhost/Team/issues/2575
2023-02-21 20:27:21 +00:00
Djordje Vlaisavljevic
11b201b431 Added static HTML for post analytics mentions feed
refs https://github.com/TryGhost/Team/issues/2575
2023-02-21 20:11:41 +00:00
Djordje Vlaisavljevic
ba93f95905 Added mentions widget to post analytics
refs https://github.com/TryGhost/Team/issues/2575
2023-02-21 20:10:49 +00:00
Djordje Vlaisavljevic
179fe96c5a Updated mentions dashboard widget design
refs https://github.com/TryGhost/Team/issues/2481
2023-02-21 20:10:40 +00:00
Djordje Vlaisavljevic
a439631d3c Updated mentions dashboard widget design
refs https://github.com/TryGhost/Team/issues/2481
2023-02-21 19:59:02 +00:00
Djordje Vlaisavljevic
1545d4fb5b Added mentions widget to post analytics
refs https://github.com/TryGhost/Team/issues/2575
2023-02-21 19:59:02 +00:00
Ghost CI
d3563d9c06 Merged v5.35.1 into main 2023-02-21 15:36:02 +00:00
Ghost CI
aaf13b4f6b v5.35.1 2023-02-21 15:35:59 +00:00
Simon Backx
fb210ba6a0 Added extra Mailgun retry
no issue
2023-02-21 16:22:26 +01:00
Simon Backx
461634c57c Fixed snapshot tests 2023-02-21 16:15:00 +01:00
Simon Backx
7781c2da07 Implemented retrying for sending email via Mailgun API
no issue

Retry sending an email up to 5 times if it failed.
2023-02-21 16:06:23 +01:00
Simon Backx
b665b1a3cc Implemented email analytics retrying (#16273)
fixes https://github.com/TryGhost/Team/issues/2562

New event fetching loops:
- Reworked the analytics fetching algorithm. Instead of starting again
where we stopped during the last fetching minus 30 minutes, we now just
continue where we stopped. But with ms precision (because no longer
database dependent after first fetch), and we stop at NOW - 1 minute to
reduce chance of missing events.
- Apart from that, a missing fetching loop is introduced. This fetches
events that are older than 30 minutes, and just processes all events a
second time to make sure we didn't skip any because of storage delays in
the Mailgun API.
- A new scheduled fetching loop, that allows us to schedule between a
given start/end date (currently only persisted in memory, so stops after
a reboot)

UI and endpoint changes:
- New UI to show the state of the analytics 'loops'
- New endpoint to request the analytics loop status
- New endpoint to schedule analytics
- New endpoint to cancel scheduled analytics
- Some number formatting improvements, and introduction of 'opened'
count in debug screen
- Live reload of data in the debug screen

Other changes:
- This also improves the support for maxEvents. We can now stop a
fetching loop after x events without worrying about lost events. This is
used to reduce the fetched events in the missing and scheduled event
loop (e.g. when the main one is fetching lots of events, we skip the
other loops).
- Prevents fetching the same events over and over again if no new events
come in (because we always started at the same begin timestamp). The
code increases the begin timestamp with 1 second if it is safe to do so,
to prevent the API from returning the same events over and over again.
- Some optimisations in handing the processing results (less merges to
reduce CPU usage in cases we have lots of events).

Testing:
- You can test with lots of events using the new mailgun mocking server
(Toolbox repo `scripts/mailgun-mock-server`). This can also simulate
events that are only returned after x minutes because of storage delays.
2023-02-21 16:00:32 +01:00
Simon Backx
51cbf13be4 Reenabled email errors again
refs https://ghost.slack.com/archives/C04MSE4MKJT/p1676990553465999
2023-02-21 15:58:10 +01:00
Peter Zimon
42f2f4087f Forced style for the new signup email
no refs.

- Spark email client injected styles for the new email signup email which broke the layout. This commit forces those styles for the email to be consistent in all clients.
2023-02-21 15:50:05 +01:00