Commit Graph

36452 Commits

Author SHA1 Message Date
Fabien "egg" O'Carroll
5e3470a3a1 Fixed invalid Offers from throwing when reading
closes https://github.com/TryGhost/Product/issues/3675
refs c98bf80248

As part of our architecture guidelines Repository implementations should protect
against invalid or malformed data in persistence. We do not want read operations
of Entities to throw because of such data. For some fields that bad data can be
fixed or handled in the constructor or static create factory method and replaced
with valid data, others will cause the factory to throw.

This means that Repositories should catch these errors and exclude those
entities from their results. We log the errors in Sentry so that we have
visibility on the state of bad data in DBs
2023-09-02 16:58:48 +07:00
Fabien "egg" O'Carroll
84e6026408 Fixed Offer entity types in OfferBookshelfRepository
JSDoc has a problem with using values as types across repositories, rather than
getting `Offer` as the type we end up with `typeof Offer` as the type - which is
incorrect. Instead we use `import` syntax inside of JSDoc which resolves correctly
2023-09-02 16:58:48 +07:00
Fabien "egg" O'Carroll
127c61d4c6 Moved OfferRepository to core
As per our architecture guidelines we want to keep bookshelf implementations of
Repositories in Ghost core, so that all the bookshelf code is kept together, and
the packages implementing business logic with entities and services require less
dependencies to test. This separation should also help us inadvertently add
business logic to repository implementations by having a more "physical"
boundary between them.
2023-09-02 16:58:48 +07:00
Fabien "egg" O'Carroll
b64be18e74 Export Offer from @tryghost/members-offers
This will allow us to implement the Repository outside of the package, as it
needs access to the Entity factory to create instances.
2023-09-02 16:58:48 +07:00
Fabien "egg" O'Carroll
00072a204f Simplified use of ValueObject in OfferRepository
I don't think we need to instantiate and use the `equals` method here. It adds
an extra dependency to the Repository implementation, but it is slightly more
"correct" as it means that we leak internals by comparing strings exactly?

The ValueObject pattern here was very much a trial and isn't something we're
necessarily sticking with, so I don't see a problem with this string comparison.
2023-09-02 16:58:48 +07:00
Fabien "egg" O'Carroll
a97383f2de Moved Offer event logic into the Offer Entity
We do not want our Repositories to implement business logic like deciding which
events should be created. As that creates too tight of a coupling, and makes it
harder to swap out repositories in future. Instead they should only be concerned
with the storage, retrieval and hydration of Entities from the persistence engine.
2023-09-02 16:58:48 +07:00
Fabien "egg" O'Carroll
af9be12a08 Fixed @tryghost/domain-events relying on NODE_ENV
When using this package without setting a NODE_ENV environment variable it would
completely crash.
2023-09-02 16:58:48 +07:00
renovate[bot]
355a033250 Update dependency @uiw/react-codemirror to v4.21.13 2023-09-01 18:28:42 +00:00
Simon Backx
b49d5a6964
Wired up saving title when editing recommendations (#17930)
no issue

- Also fixes a backend issue with nullable fields
- Fixes blurring the url input and setting the value to '/'
automatically while we expect absolute urls
- Added autoFocus to inputs
2023-09-01 15:19:25 +00:00
Ghost CI
31d9165296 v5.61.0 2023-09-01 15:04:56 +00:00
Kevin Ansfield
127cbfa62d
Improved save-waiting when leaving beta editor (#17929)
no issue

- adds explicit waits for the two save tasks when leaving the editor before any other checks or saves are triggered
- cleans up some errors around task cancellation that could be triggered when leaving the editor with an existing save running
2023-09-01 14:51:18 +00:00
Djordje Vlaisavljevic
2f5a4d801b
Improved Add/Edit Recommendations flow design (#17923)
refs https://github.com/TryGhost/Product/issues/3773

- Improved recommendation preview in the modal
- Added separate Back button
- Fixed Table spacing issue
2023-09-01 14:17:34 +00:00
Daniel Lockyer
c6cb35074a Updated linting and testing packages 2023-09-01 15:51:17 +02:00
Kevin Ansfield
d67a7bdc58
Fixed console error when leaving new post screen with beta editor (#17928)
no issue

- when a post is new it has no revisions but in the `willTransition` hook we were using `lastRevision.get` even though `lastRevision` was null
- adjusted the `hasChangedSinceLastRevision` conditional to always be `false` for new posts
2023-09-01 13:35:59 +00:00
Kevin Ansfield
a4f6a33fee
Fixed "new post" button showing 500 error when editor beta is enabled (#17926)
refs https://github.com/TryGhost/Ghost/pull/17876

- the redirect added for the beta editor was always redirecting to `lexical-editor.edit` even when accessing `editor.new` which resulted in an incorrect route params error and a 500 screen
- switched to redirecting to the correct new/edit route based on the route we're trying to access
2023-09-01 13:31:40 +00:00
Daniel Lockyer
d790e25cd9
Updated lockfile (#17927) 2023-09-01 13:30:43 +00:00
Simon Backx
8600ccf387 Added BookshelfRepository and BookshelfRecommendationRepository
refs https://github.com/TryGhost/Product/issues/3800
2023-09-01 15:10:34 +02:00
Simon Backx
d5c8804e23 Updated InMemoryRecommendationRepository to follow newer pattern
refs https://github.com/TryGhost/Product/issues/3800
2023-09-01 15:10:34 +02:00
Raka Afp
b447bda89d
Updated Bahasa Indonesia translations for Portal (#17921)
refs https://github.com/TryGhost/Product/issues/2795
2023-09-01 14:27:00 +02:00
Sanne de Vries
5ca082cd7c
Added CSS variable to adjust card width when sidebar is open (#17919)
Refs https://github.com/TryGhost/Product/issues/3713
2023-09-01 09:18:31 +00:00
Sag
96d9099195
Revert "Added support for importing Stripe Coupons as Offers (#17415)" (#17915)
refs https://github.com/TryGhost/Product/issues/3674
refs https://github.com/TryGhost/Product/issues/3675

- this reverts commits 8a32941ae8 and
b587429008
- the reverted commits added some logic to create offers based on a
Stripe coupon. However, the logic bypassed the Offer entity, and
therefore skipped any validations/constraints — causing invalid data in
the database and some sites to crash.
2023-09-01 09:49:29 +02:00
Sanne de Vries
a19883ac75
Fixed signup and header card split layout bug on frontend (#17916)
No ref
2023-09-01 07:20:17 +00:00
Naz
608d4dfa10 Optimized the amount of logs produced by collections module
refs https://github.com/TryGhost/Arch/issues/82

- Collections logs are too verbose causing noise.
- Moved some of the logs to use "debug" for now and made summarized logs for the information that we still need while collections code is actively monitored. The event info logs can be removed once we are passed the active phase of rolling out the collections feature
2023-09-01 12:40:54 +08:00
Jono M
9e89c88489
Added workaround for flaky codemirror test (#17884)
refs https://github.com/TryGhost/Product/issues/3349

---

This pull request improves the end-to-end tests for the code injection
settings in the admin-x-settings app. It fixes some typing and saving
issues with the `CodeMirror` editor.
2023-08-31 19:54:39 +01:00
Kevin Ansfield
ea60b40a4c
Bumped @tryghost/bookshelf-plugins (#17913)
no issue

- adds additional debug data to `UpdateCollisionError`
2023-08-31 16:19:22 +00:00
renovate[bot]
a2d16ab7de Update dependency ember-cli-babel to v8 2023-08-31 17:46:50 +02:00
renovate[bot]
bde3465af5 Update dependency @types/luxon to v3.3.2 2023-08-31 17:40:59 +02:00
Kevin Ansfield
ca6e7dfb88
Added drop of intermediate post saves between current running and latest triggered (#17912)
no issue

- every triggered save was being added to a queue resulting in an unnecessary number of requests in some circumstances because it means every triggered save would be run sequentially even though the intermediate saves could be safely thrown away if we're still waiting on a response to a previous one
- switched from a standard queue to ember-concurrency's `keepLatest` behaviour
  - drops intermediate saves if multiple saves are triggered whilst still waiting on a previous save
  - http://ember-concurrency.com/docs/task-concurrency#keepLatest
2023-08-31 15:18:02 +00:00
renovate[bot]
de13a7ff65 Update dependency socket.io to v4.7.2 2023-08-31 15:17:43 +00:00
renovate[bot]
d5e273a3ac Update dependency @headlessui/react to v1.7.17 2023-08-31 15:03:57 +00:00
renovate[bot]
6cd4a3b3fa Update dependency @uiw/react-codemirror to v4.21.12 2023-08-31 15:03:17 +00:00
Simon Backx
96fefaea69
Added well known recommendations service (#17895)
fixes https://github.com/TryGhost/Product/issues/3797 
fixes https://github.com/TryGhost/Product/issues/3776 
fixes https://github.com/TryGhost/Product/issues/3798

- Added support for storing json webmentions
- Improved handling deleted webmentions (set deleted to true instead of verified to false)
2023-08-31 14:57:18 +00:00
renovate[bot]
e97b71dc52 Update dependency i18next to v23.4.6 2023-08-31 14:57:02 +00:00
renovate[bot]
311674b629 Update dependency entities to v4.5.0 2023-08-31 14:54:46 +00:00
renovate[bot]
62df82d1a3 Update dependency @tanstack/react-query to v4.33.0 2023-08-31 14:50:31 +00:00
renovate[bot]
e2bc680160 Update dependency terser to v5.19.3 2023-08-31 14:44:25 +00:00
renovate[bot]
b32825cb46 Update metascraper 2023-08-31 14:43:35 +00:00
renovate[bot]
4268c148dc Update dependency @codemirror/lang-html to v6.4.6 2023-08-31 14:40:46 +00:00
Daniel Lockyer
baf980e2f2 Updated Renovate presets
refs https://github.com/TryGhost/DevOps/issues/69

- deleted the preset extensions as these are all part of the base preset
  now
2023-08-31 16:36:17 +02:00
renovate[bot]
d58f5dcc9f Update tiptap monorepo to v2.1.7 2023-08-31 14:33:11 +00:00
renovate[bot]
b891b8be6b Update dependency mysql2 to v3.6.0 2023-08-31 14:32:07 +00:00
Daniel Lockyer
7596742ae8 Configured new Renovate presets
refs https://github.com/TryGhost/DevOps/issues/69

- we're doing some work to update our Renovate rules
- part of that is the fact that they're deprecating package-based
  presets, so I've moved the rules into a repo
- this commit switches the Ghost repo over to that
2023-08-31 16:06:11 +02:00
renovate[bot]
13837b166d Update dependency handlebars to v4.7.8 2023-08-31 13:26:36 +00:00
Gab
3dca1f09f0
Updated Spanish translations (#17816)
refs https://github.com/TryGhost/Product/issues/2795
2023-08-31 15:12:12 +02:00
renovate[bot]
8192b4bc7c Update dependency mailgun.js to v9.2.1 2023-08-31 11:50:35 +00:00
Kevin Ansfield
b15d4b0c2b
Bumped Koenig packages (#17891)
no issue

- includes fix for posts showing as edited and requiring save after automatic mobiledoc->lexical conversion (https://github.com/TryGhost/Koenig/pull/898)
2023-08-31 11:38:13 +00:00
Simon Backx
3a946de06d
Added edit recommendations modal (#17889)
refs https://github.com/TryGhost/Product/issues/3794
2023-08-31 12:28:27 +02:00
Sag
f56c36ca24
Wired up recommendations in Portal (#17888)
closes https://github.com/TryGhost/Product/issues/3796
refs https://github.com/TryGhost/Product/issues/3770

- also added a public endpoint for Recommendations in the Content API
2023-08-31 10:07:49 +00:00
Djordje Vlaisavljevic
69a6388009 Updated Recommendations list design in Portal
refs https://github.com/TryGhost/Product/issues/3770
2023-08-31 10:47:32 +01:00
Djordje Vlaisavljevic
d04c077be5 Moved Recommendations settings under Membership section
refs https://github.com/TryGhost/Product/issues/3787
2023-08-31 10:47:32 +01:00