Commit Graph

19818 Commits

Author SHA1 Message Date
renovate[bot]
d89dace67f Update dependency i18next to v23.7.15 2024-01-03 13:29:42 +00:00
renovate[bot]
ebcf0ad508 Update dependency i18next to v23.7.14 2024-01-02 22:48:14 +00:00
renovate[bot]
56fd992a1f Update dependency image-size to v1.1.1 2024-01-02 17:41:16 +00:00
renovate[bot]
9e2558931f
🐛 Fixed signup card background color and editor crash when typing :, or :| (#19421)
refs https://github.com/TryGhost/Ghost/issues/19282
refs https://github.com/TryGhost/Koenig/pull/1136

- fixes signup card background color
- fixes crash when typing `:,` or `:|` or similar
2024-01-02 17:26:55 +00:00
renovate[bot]
04e4e807c2 Update dependency i18next to v23.7.13 2024-01-02 12:14:25 +00:00
Simon Backx
54e3abfbc2
Added generator referrer attribution for paid subscriptions (#19419)
ref PROD-244
2024-01-02 11:29:24 +00:00
renovate[bot]
17e03a6eca Update dependency @babel/plugin-proposal-decorators to v7.23.7 2024-01-02 09:48:42 +01:00
renovate[bot]
a2c28f2036 Update dependency ember-auto-import to v2.7.2 2024-01-02 09:47:01 +01:00
renovate[bot]
43dbc4ca89 Update dependency cssnano to v6.0.2 2024-01-02 09:46:50 +01:00
renovate[bot]
e90e403aca Update dependency ws to v8.16.0 2024-01-02 08:39:49 +00:00
renovate[bot]
fb0e87014e Update dependency html-validate to v8.8.0 2024-01-02 09:39:12 +01:00
renovate[bot]
8a3ec6a447 Update dependency cookies to v0.9.1 2024-01-02 09:38:11 +01:00
Daniel Lockyer
a86bf46347 Updated snapshots for the new year
- these shouldn't be hardcoded but it changes so infrequently that we
  can just update the snapshots for now and then fix it at a later point
2024-01-02 09:07:55 +01:00
Daniel Lockyer
d21ab1aa4e Lazyloaded @sentry/profiling-node dependency
- we don't need to load this if we haven't configured Node profiling to occur
- this might help fix random segfaults we've been seeing in CI, which
  only started occurring after this dependency was added
2024-01-02 09:07:55 +01:00
renovate[bot]
9f2365209d Update dependency image-size to v1.1.0 2023-12-28 15:32:30 +00:00
renovate[bot]
efb2b07c60 Update dependency fastq to v1.16.0 2023-12-18 19:47:14 +00:00
renovate[bot]
858b853085 Update metascraper to v5.42.0 2023-12-18 09:41:00 +00:00
renovate[bot]
bce90d5337 Update dependency newrelic to v11.7.0 2023-12-14 22:01:01 +00:00
Simon Backx
4c9d08bf03 Fixed data generator in SQLite 2023-12-14 18:30:45 +01:00
Simon Backx
70b991cc1c Improved subscriptions in data generator
ref PROD-244

- Added support for canceled subscriptions and different subscription statusses
- Removed generation of susbcriptions table (not used)
- Added old canceled subscriptions for free members
- Added both positive and negative MRR events
2023-12-14 18:30:45 +01:00
Simon Backx
5351b88b59 Added random expiry date for complimentary subscriptions in data generator
ref PROD-244
2023-12-14 18:30:45 +01:00
Simon Backx
e1ef7c44d8 Fixed creating stripe subscriptions for complimentary members in data generator
ref PROD-244
2023-12-14 18:30:45 +01:00
Simon Backx
58d1412d9b Added referrer attribution and fixed data generator for scheduled posts
ref PROD-244

Scheduled posts should have a published_at set to the future
2023-12-14 18:30:45 +01:00
Simon Backx
58f23726fe Added recommendation click and subscribe events to data generator
ref PROD-244
2023-12-14 18:30:45 +01:00
Simon Backx
50788a78df Added recommendations data generator
ref PROD-244
2023-12-14 18:30:45 +01:00
Simon Backx
6f3a22d0a7 Added email_recipient_failures to data generator
ref PROD-244
2023-12-14 18:30:45 +01:00
Simon Backx
54eb3e5b08 Added generated amount to debug logs 2023-12-14 18:30:45 +01:00
Simon Backx
8a01e7a076 Improved batch and recipient data generation
ref PROD-244

Instead of generating one batch with all recipients, we now will generate
one batch per 1000 members and distribute the recipients across them.
2023-12-14 18:30:45 +01:00
Simon Backx
52566dc1e0 Wrapped data generator data creation in transaction function
ref PROD-233

Errors were not handled properly because of a missing rollback and try/catch.

Using a function is easier generally.

Also added ignored contraint checks to increase performance a tiny bit.
They ended up not mattering much, so we can consider to remove them again.
2023-12-14 18:30:45 +01:00
Simon Backx
a3bbd579dd Improved data generator clear data performance
ref PROD-233
2023-12-14 18:30:45 +01:00
EchoBilisim
6b50585a0e
Update portal.json (#19372)
Incorrect translations and missing translations completed.
2023-12-14 09:25:12 -05:00
Daniel Lockyer
47f50e2d35
Merged v5.75.2 into main
v5.75.2
2023-12-14 13:51:23 +01:00
Ghost CI
c2ad349b78 v5.75.2 2023-12-14 12:34:56 +00:00
Kevin Ansfield
7276b975f8
🐛 Fixed editor crash when typing :,, :|, or similar
closes https://github.com/TryGhost/Ghost/issues/19375

- bumps `@tryghost/koenig-lexical` to patched version including fix for the emoji picker bug (https://github.com/TryGhost/Koenig/pull/1136)
2023-12-14 12:20:15 +00:00
Sanne de Vries
255d1b1740
Added site url link to newsletter header image (#19380)
No ref
2023-12-14 12:08:10 +00:00
renovate[bot]
a2ff5a8412 Update dependency @embroider/macros to v1.13.4 2023-12-14 12:40:22 +01:00
renovate[bot]
df2e15aa58 Update dependency ember-auto-import to v2.7.1 2023-12-14 12:40:02 +01:00
Chris Raible
a33ce7c20c
Added Sentry Profiling to Ghost server (#19319)
refs ARCH-29

- Added Sentry Profiling to collect more detailed performance data on
the backend.
- This feature is opt-in behind a config. To enable profiling, first
enable tracing with `sentry.tracing.enabled: true`, then set
`sentry.profiling.enabled: true` and `sentry.profiling.sampleRate` to a
decimal number between 0 and 1.
2023-12-13 21:53:19 -08:00
Joel DeSante
dc7e2b9261
🐛Fixed XSS vulnerability involving post excerpts (#17190)
closes https://github.com/TryGhost/Ghost/issues/17058

- Uses the lodash `escape` function.
- Avoids XSS vulnerabilities in post excerpts.
2023-12-13 15:23:48 -06:00
Shaun Roselt
b2a429437e
Added Missing German Translations (#19346)
I added missing translations for German

- [x] There's a clear use-case for this code change, explained below
- [x] Commit message has a short title & references relevant issues
- [x] The build will pass (run `yarn test:all` and `yarn lint`)

We appreciate your contribution!
2023-12-13 13:38:12 -05:00
Kevin Ansfield
4ceb5dc16b
Fixed error when deleting post (#19369)
closes https://github.com/TryGhost/Product/issues/4230

- deleting a post could cause React components to trigger save tasks during teardown which then threw errors because they attempt to set properties on a deleted model instance
- added checks to the `beforeSaveTask()` to abort if the post object has been deleted
2023-12-13 17:45:23 +00:00
Kevin Ansfield
b74a611fbd
🐛 Fixed hang in editor when back button is pressed whilst feature image caption is focused (#19367)
closes https://github.com/TryGhost/Product/issues/4228

- when leaving the editor via back button the feature image caption editor's blur handler was called by the React editor component after Ember had torn down the route resulting in an attempt to use `post.set()` when `post` doesn't exist
- the error also caused Lexical to re-render to try and recover which then triggered the blur handler again resulting in an infinite loop
- adding a check to ensure `this.post` exists was enough to fix the problem
2023-12-13 17:25:00 +00:00
Daniel Lockyer
bba95ce034 Enabled persistent filesystem caching for Ember builds
fixes https://github.com/TryGhost/DevOps/issues/123

- ember-auto-import supports webpack v5 and v5 supports persistent file
  caching
- this stores a cache of built files across warm boots, so Admin built
  via `yarn dev` should be faster next time
- also ensures that recursive `node_modules` folders are emptied upon
  `yarn fix`, as the webpack cache is stored in `node_modules` under
  `ghost/admin`
- locally, this speeds up a warm build by 2x (!)
2023-12-13 16:40:18 +01:00
Peter Zimon
58d9b8e382
Update migration in settings (#19278)
refs.
7b40393d77

We're improving the usability and possibilities for publishers to
migrate from other platforms such as Substack, Medium or Mailchimp. This
PR applies changes to Ghost Settings to support the new flows, more
specifically:

- moves import and export functions out of Labs to its own setting,
directly available from search and the menu
- adds direct access to various platform migrations
- moves "Delete all content" to a dedicated setting group at the bottom
of all setting

---------

Co-authored-by: Jono Mingard <reason.koan@gmail.com>
2023-12-13 16:25:29 +01:00
renovate[bot]
820c5a4175 Update dependency mailgun.js to v9.4.0 2023-12-13 11:53:07 +00:00
Daniel Lockyer
20b0890a02 Cleaned up duplicate await
- noticed whilst bouncing around the codebase
- shouldn't change anything but it gets rid of some tsserver warnings
2023-12-13 11:54:31 +01:00
Chris Raible
c90e033fcf
Added an email rendering test for all Koenig cards (#19059)
refs TryGhost/Product#4125

This PR adds two new integration tests to ensure all our Koenig cards
are rendered properly after going through the EmailRenderer. Although we
have thorough tests for the cards themselves in the Koenig repo, the
EmailRenderer does post-processing on the rendered HTML, such as
inlining CSS, which can adversely impact the rendered output of our
cards in email clients (usually Outlook).

Since email newsletters are a core feature of Ghost, these bugs are
typically fairly urgent, and since it is email, they are also quite
difficult to troubleshoot and fix. These two tests are intended to
prevent bugs of this sort, which in the past have been created by
seemingly harmless changes like bumping dependencies that are used in
the EmailRenderer.

The idea is to create a 'Golden Post' which has at least 1 of every card
from Koenig, run that post through the EmailRenderer, and take a
snapshot of the rendered HTML. In the future, if we make any changes to
the EmailRenderer or the Koenig cards themselves, this will trigger us
to carefully consider the changes, and it provides an 'expected' output
to compare our changes against.

Additionally, the second test simply checks that all cards from
`kg-default-nodes` are included in the 'Golden Post'. This protects
against any new cards that we will add in the future — as soon as we add
them to Koenig and bump `kg-default-nodes` in Ghost, this test will
fail, prompting us to add the new card to the Golden Post and update the
snapshots.

We should also run the 'Golden Post' through a test in Litmus, which
allows us to visually inspect the rendered email across many different
email clients. Ideally we would create a process to review the output of
the 'Golden Post' in Litmus whenever we update the snapshot as well.
2023-12-12 16:05:04 -08:00
renovate[bot]
3346606d77
Update dependency @tryghost/koenig-lexical to v1.0.8 (#19301)
refs https://github.com/TryGhost/Ghost/pull/19343

- bump was missed in earlier commit
2023-12-12 22:26:12 +00:00
-Nut-
876a0d6b2d
Added Thai translations (#19305)
I've just pushed a commit with the Thai translation. This should be a
sufficient translation but there is always room for improvements and a
second pair of eyes.

---------

Co-authored-by: Ryan Feigenbaum <48868107+royalfig@users.noreply.github.com>
2023-12-12 16:39:24 -05:00
Shaun Roselt
0ffbc198be
Updated Missing Afrikaans Translations (#19325)
I added missing Afrikaans Translations

- [x] There's a clear use-case for this code change, explained below
- [x] Commit message has a short title & references relevant issues
- [x] The build will pass (run `yarn test:all` and `yarn lint`)

We appreciate your contribution!
2023-12-12 16:36:12 -05:00
renovate[bot]
45891f83b1 Update dependency ws to v8.15.1 2023-12-12 21:10:38 +00:00
renovate[bot]
d1b41f8f0b Update dependency i18next to v23.7.9 2023-12-12 19:42:27 +00:00
Chris Raible
24910a6ef2
Added Sentry logging in BatchSendingService (#19321)
refs ARCH-25

- Added a log message if the email_count on an email differs from the
totalCount calculated while creating batches by more than 1%, so we can
investigate further.
2023-12-12 11:28:43 -08:00
Kevin Ansfield
565b9b245e
🐛 Fixed callout card not rendering all inline formats (#19343)
refs https://github.com/TryGhost/Ghost/issues/19129

- bumps Koenig packages containing fix for callout card rendering
2023-12-12 19:00:32 +00:00
Kevin Ansfield
b586b63ac9
🐛 Fixed inability to drag-select text in caption alt inputs (#19342)
refs https://github.com/TryGhost/Koenig/pull/1134

- bumps Koenig to version including fix for dragging to select text in caption alt inputs
2023-12-12 18:26:10 +00:00
Kevin Ansfield
9706754d6a
🐛 Fixed quote and aside formatting being lost in single-block snippets (#19341)
refs https://github.com/TryGhost/Product/issues/4197

- bumped Koenig packages containing fix for snippets capturing plain text when only the text of an aside or quote block is selected
2023-12-12 17:56:21 +00:00
Simon Backx
60fb2e3139
Added quantities and seed option to the data generator (#19330)
ref PROD-243
2023-12-12 12:50:55 +01:00
Jono M
2b85980302
Fixed theme template picker state syncing with AdminX (#19328)
refs PROD-235

Special case where we need to set the old theme to inactive after
activating a new theme.
2023-12-12 11:27:59 +00:00
Michael Barrett
95eaaad459
Added custom Sentry integration for Knex.js (#19315)
no refs

Added custom Sentry integration for Knex.js to trace database queries in
Sentry
2023-12-12 11:09:49 +00:00
Sanne de Vries
98ff45647c
🎨 Updated editor layout to be more mobile friendly (#19327)
Refs https://github.com/TryGhost/Ghost/issues/18690
2023-12-12 11:51:59 +01:00
Djordje Vlaisavljevic
5c19249473
Added yearly discount indicator to monthly/yearly toggle PROD-60 PROD-222 PROD 223 (#19276)
refs PROD-60, PROD-222, PROD-223, PROD-89, PROD-94

- Indicator shows up in the monthly/yearly toggle if there are any paid
tiers with yearly discount, and shows the highest discount in order to
nudge visitors towards checking out yearly plan
- A couple of smaller portal improvements: typos, spacing, alignment

---------

Co-authored-by: Simon Backx <simon@ghost.org>
2023-12-12 09:32:56 +00:00
renovate[bot]
8bc3aae20b Update dependency @babel/plugin-proposal-decorators to v7.23.6 2023-12-12 10:31:38 +01:00
Djordje Vlaisavljevic
090c8b59da
Updated Serbian translations (#17841)
refs https://github.com/TryGhost/Product/issues/2795
---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 2a6b633</samp>

This pull request improves the localization of the portal feature for
Serbian users by adding or updating translations in the `portal.json`
file.
2023-12-11 13:22:05 -05:00
Steve Larson
ccc9c9bdd8
Removed emoji picker feature flag (#19314)
closes TryGhost/Product#4109
- requires new editor packages which are bumped in this commit
2023-12-11 09:51:37 -06:00
Jono M
9ff482f985
Updated AdminX routing to work with and without a leading slash (#19312)
no issue
2023-12-11 14:43:06 +00:00
Sanne de Vries
61a91f7dbd
Flipped thumbs-down icon horizontally in email and Portal (#19306)
Refs https://github.com/TryGhost/static/pull/3
- This way the thumbs-down is facing the opposite direction as the
thumbs-up
2023-12-11 13:05:11 +00:00
Kevin Ansfield
1479c55068
🐛 Fixed video uploads hanging in editor when using iOS (#19302)
refs https://github.com/TryGhost/Koenig/issues/1121

- bumps `@tryghost/koenig-lexical` to version including fix (https://github.com/TryGhost/Koenig/pull/1122)
2023-12-11 11:27:59 +00:00
Ronald Langeveld
c969dd18a8
Revert "Fixed private mode cookie for local development (#17938)" (#19298)
This reverts commit f303eee8a4.

refs https://ghost.slack.com/archives/C0568LN2CGJ/p1702277420152709
https://linear.app/tryghost/issue/PROD-46/rss-url-for-private-mode-site-is-hardcoded
2023-12-11 09:18:03 +00:00
renovate[bot]
9fae565673 Update sentry-javascript monorepo to v7.86.0 2023-12-11 09:48:49 +01:00
renovate[bot]
1375a72fbf Update dependency html-validate to v8.7.4 2023-12-11 09:48:39 +01:00
renovate[bot]
2caf1ec93a Update dependency ws to v8.15.0 2023-12-11 03:41:38 +00:00
renovate[bot]
996ca6ac87 Update dependency ts-node to v10.9.2 2023-12-09 10:51:51 +01:00
renovate[bot]
8cbf133614 Update dependency newrelic to v11.6.1 2023-12-07 19:41:46 +00:00
renovate[bot]
b84cb87d90 Update dependency terser to v5.26.0 2023-12-07 15:59:56 +00:00
Kevin Ansfield
309aaf98aa
Added TK support to feature image caption editor (#19285)
closes https://github.com/TryGhost/Product/issues/4227

- added `@onTKCountChange` to `<KoenigLexicalEditorInput>`
  - when present the `isTKEnabled` flag will be turned on and the `<TKCountPlugin>` registered
- added `@registerAPI` support to `<KoenigLexicalEditorInput>` so we can focus the caption editor when its TK indicator is clicked
- added manual display of TK indicator for the caption input
  - default editor indicator positioning doesn't work for this input because its container is not full editor width
  - hid it by adding `overflow: hidden` to the inner caption container
  - added custom indicator button shown when we have a non-zero count
2023-12-07 15:46:23 +00:00
Kevin Ansfield
4b5718f6e3
Added error reporting when editor instances fail to load (#19284)
no issue

- recently we introduced code that broke the editor in older versions of
Safari but we weren't alerted to it until we started getting customer
reports
- we have an `ErrorBoundary` around the React editor components but this
wasn't reporting the error anywhere and simply showed an error message
- updated the boundary to report to Sentry when configured so we can
notice and fix any editor-breaking issues faster
2023-12-07 14:11:07 +00:00
Daniel Lockyer
845d3cf759 Fixed generating multiple members_newsletters records
refs https://github.com/TryGhost/DevOps/issues/119

- members_newsletters needs members_subscribe_events, but it was also
  then generating `subscriptions` records and the whole thing was really
  slow
- for now, subscriptions is not a used table so we can remove use of it
- also adds support for generating more than one subscription record
  with an 80% chance of being subscribed
2023-12-07 14:44:00 +01:00
Daniel Lockyer
db16e565bc Added --print-dependencies to data generator
refs https://github.com/TryGhost/DevOps/issues/119

- this allows you to debug the dependency chain to understand why a
  particular table is being generated
2023-12-07 14:44:00 +01:00
Daniel Lockyer
ff34a98b94 Deduplicated batch insertion code
refs https://github.com/TryGhost/DevOps/issues/119

- this function can simply call the `import` function, which performs
  the same code as we had here
- this makes the code cleaner to read and understand
2023-12-07 14:44:00 +01:00
Daniel Lockyer
76455cb64a Decreased likelihood of duplicate member emails
refs https://github.com/TryGhost/DevOps/issues/119

- we can just expand the range here so it becomes extremely unlikely to
  ever hit duplicate emails
2023-12-07 14:44:00 +01:00
Daniel Lockyer
bb99a4c394 Removed unnecessary await
refs https://github.com/TryGhost/DevOps/issues/119

- this is not needed and tsserver was flagging it up
2023-12-07 14:44:00 +01:00
Daniel Lockyer
739c690a29 Fixed generating duplicate newsletter names
refs https://github.com/TryGhost/DevOps/issues/119

- this switches away from using a static list of names in favor of ones
  generated by faker, so we don't run into duplicate names
- also minor code re-arranging
2023-12-07 14:44:00 +01:00
renovate[bot]
8197a740b1 Update dependency metascraper to v5.41.0 2023-12-07 12:36:19 +00:00
Chris Raible
1b43b5c60a
Added Sentry performance monitoring to Ghost Server (#19243)
refs ARCH-21

- We currently have NewRelic setup for a few of our largest customers
for monitoring performance, but it is too expensive to enable across all
sites
- Sentry has similar (but simpler) performance monitoring tools to keep
track of response times that are available to us for free, but we just
haven't configured them
- This PR sets up Sentry Performance monitoring for API requests so we
can have one place for monitoring errors + performance so we can stay on
top of response times more easily.
- Tracing is disabled by default, so there is no additional overhead
unless `sentry.tracing.enabled` is set to `true` in the site's config.
Additionally, `sentry.tracing.sampleRate` should be set to a decimal
value between 0 and 1. This value defaults to 0 to avoid accidentally
blowing through quota, and requires a value to explicitly be set in
order to send the traces to Sentry.
2023-12-06 15:04:35 -08:00
renovate[bot]
a87804be57 Update dependency i18next to v23.7.8 2023-12-06 20:43:02 +00:00
renovate[bot]
1c04bdbdb2 Update dependency typescript to v5.3.3 2023-12-06 21:29:30 +01:00
renovate[bot]
24f73321ce Update metascraper to v5.40.0 2023-12-06 20:10:16 +00:00
Kevin Ansfield
1071317780
Fixed TK indicators not being correct when opening post with TKs (#19263)
no issue

- bumps `@tryghost/koenig-lexical` which includes fix and performance improvement for TKs
2023-12-06 17:38:33 +00:00
Steve Larson
549aaa4c5a
Added tests for TK indicators within editor (#19262)
closes TryGhost/Product#4225
- added basic tests for TK detection in title
- added coverage for TK reminder modal popping up
2023-12-06 11:29:27 -06:00
Kevin Ansfield
8f43cc9ad2
Fixed horizontal positioning of TK indicators on wider cards (#19257)
no issue

- bumped `@tryghost/koenig-lexical` for improved positioning behaviour
2023-12-06 12:12:37 +00:00
Steve Larson
d696e8b2e2
Added support for TK tracking inside cards (#19247)
refs https://github.com/TryGhost/Product/issues/4209

- bumped Koenig packages
  - `koenig-lexical` added nested editor TK support
  - all packages dropped Node 16 support
- switched to using `isTKEnabled` prop and `<TKCountPlugin>`

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2023-12-06 11:32:36 +00:00
Simon Backx
3f6ea04c43
Added portal default plan setting (#19238)
fixes PROD-61

This adds a new default plan setting. It defaults to yearly, which is
the current default selected interval in Portal.

Behind the new portal improvements feature flag, the default plan can be
changed. It will also change automatically if the available intervals
are changed.

This PR also wires up passing the new setting to the Portal preview.
2023-12-06 11:39:58 +01:00
Simon Backx
7c8a141264 Bumped Portal to 2.37.x
no issue
2023-12-06 11:30:47 +01:00
Aileen Booker
96841a5060 Added clipboard write permission to billing iframe
no issue

- The billing app needs to be able to write to the clipboard to copy DNS values
2023-12-05 12:33:22 -04:00
Daniel Lockyer
077652e3f3 Added metrics for measuring members importer
fixes https://linear.app/tryghost/issue/PROD-199/add-metrics-for-members-importer

- we know the members importer is slow but we need metrics to prove it
- this should collect import count, error count + runtime for the
  members importer, so we can analyze the data
2023-12-05 17:07:39 +01:00
Steve Larson
96320d378a
Added TK indicator support to post title (#19231)
closes TryGhost/Product#4208
- added TK indicator to post title
- added to TK count in confirmation flow
2023-12-05 09:41:54 -06:00
Sanne de Vries
7ce5abb155
Added static modal for TK reminders (#19203)
Refs https://github.com/TryGhost/Product/issues/4218
- Moving the TK confirmation step into a small modal as a more
lightweight solution

---------

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2023-12-05 12:09:21 +01:00
renovate[bot]
351e93ebca Update dependency lib0 to v0.2.88 2023-12-04 22:09:17 +01:00
renovate[bot]
5811dcaa41 Update Types packages 2023-12-04 22:05:57 +01:00
renovate[bot]
e2a6a83fb6 Update sentry-javascript monorepo to v7.85.0 2023-12-04 22:05:42 +01:00
renovate[bot]
9cae89d361
Update dependency @tryghost/koenig-lexical to v0.5.27 (#19173) 2023-12-04 18:55:33 +00:00
Djordje Vlaisavljevic
36294c6482 Added feature flag for portal improvements
refs GRO-154
2023-12-04 18:16:23 +00:00
renovate[bot]
6d0dfbafb1 Update dependency terser to v5.25.0 2023-12-04 15:20:48 +00:00
Ahmad
4e857c4fd1
Added Arabic translation. (#16830)
I did my best in translation to Arabic. I believe it could be improved.

Co-authored-by: Ryan Feigenbaum <48868107+royalfig@users.noreply.github.com>
2023-12-04 10:07:35 -05:00
Ghost CI
feb15d2273 Merged v5.75.1 into main 2023-12-04 14:56:08 +00:00
Ghost CI
9ac050dfe9 v5.75.1 2023-12-04 14:56:05 +00:00
renovate[bot]
50d40f298f Update dependency knex-migrator to v5.1.6 2023-12-04 15:21:00 +01:00
Simon Backx
e65ae2041c
🐛 Fixed deleting members with email disabled (#19222)
refs https://ghost.slack.com/archives/CTH5NDJMS/p1701688836406919

Deleting members with email disabled, results in deleting all members
due to a broken NQL filter.

The filter `(email_disabled:1)` results in selecting all members because
of the surrounding brackets, which cause a `yg` filter to be generated
by NQL which is not supported by code that handles the Mongo filters.

This is a quick fix to reduce damage, this will need a proper fix in NQL
/ lower level.
2023-12-04 15:07:30 +01:00
renovate[bot]
72ed1cdec2 Update Types packages 2023-12-04 11:06:28 +01:00
renovate[bot]
6f3d16f75b Update dependency postcss to v8.4.32 2023-12-04 08:37:46 +01:00
Ghost CI
90656aa047 v5.75.0 2023-12-01 16:04:16 +00:00
Ghost CI
643ec589a9 🎨 Updated Source to v1.1.2 2023-12-01 16:04:16 +00:00
Bastien Perez
296f906e6f
Add missing french translations (#18947)
Add missing french translations.

Co-authored-by: Ryan Feigenbaum <48868107+royalfig@users.noreply.github.com>
2023-12-01 09:19:13 -05:00
renovate[bot]
de2482736e Update sentry-javascript monorepo to v7.84.0 2023-12-01 08:58:32 +01:00
michaelkueng
04b697da57
Added formal de_CH (#17843)
Added files for swiss german (de_CH). Went for the formal "Sie" (as
opposed to the informal "du" currently used in the locale de).

Suggestion: Allow variants like de_CH@informal and de_CH@formal to make
it possible to be able to offer both, formal and informal addresses for
languages like f.e. german or french and their respective variants.

---------

Co-authored-by: Ryan Feigenbaum <48868107+royalfig@users.noreply.github.com>
2023-11-30 17:27:22 -05:00
Sag
4ab9c24f12
Fixed sender email in the post preview for email (#19211)
Fixes GRO-74
2023-11-30 18:22:38 +00:00
Jono M
642c7f39cd
Fixed bugs with newsletter creation in admin (#19201)
refs ADM-4
2023-11-30 15:07:02 +00:00
Daniel Lockyer
4d029c4812 Fixed generating fallback context unnecessarily
fixes https://github.com/TryGhost/Product/issues/4216

When generating page/post metadata, we generate a "context object" from
several meta helpers. In the event there is no context from the resource
type, we generate a fallback object.

However... we generate this fallback object no matter what.

Now, the fallback object is just 3x settingsCache.get, which should be
fast, but it's not. I've opened a separate issue for that: https://github.com/TryGhost/Product/issues/4217

In the mean time, we can switch this logic around to only do these calls
when we have no other context.

From testing, this allows for 10% more throughput on a post 🤯
2023-11-30 10:39:35 +01:00
renovate[bot]
6f49f2f1a9 Update dependency html-validate to v8.7.3 2023-11-30 10:38:44 +01:00
Simon Backx
ab21b8ae1d
Allowed custom/empty replyTo for newsletters with managed sending domain (#19183)
fixes GRO-75
fixes GRO-100

And allow them to be empty
2023-11-30 09:16:03 +00:00
renovate[bot]
070c2851bd Update dependency ember-auto-import to v2.7.0 2023-11-30 07:52:25 +01:00
renovate[bot]
6c67827da1 Update metascraper to v5.39.0 2023-11-29 19:26:18 +00:00
Sag
3b7dc7555d
Fixed default sender address when email is managed (#19186)
fixes GRO-74

- uses the calculated setting "default_email_address" as first fallback, if there is no sender email for the newsletter
2023-11-29 19:24:16 +00:00
Paul Davis
9432fc0f4b
Add Lexical support to the external-media-inliner (#19149) 2023-11-29 17:56:03 +00:00
Joe Grigg
8c55aa7065 Added retryStrategy to redis cache adapter with configurable retry delay
no-issue
2023-11-29 16:06:05 +00:00
renovate[bot]
8fc6fef168 Update dependency newrelic to v11.6.0 2023-11-29 15:59:56 +00:00
Sag
f8ad5fb2ea
Updated Portal to use calculated support and default email addresses (#19163)
fixes GRO-72

- added "default_email_address" and "support_email_address" to the
public settings
- when available, use these addresses in Portal. Otherwise, fallback to
current logic
2023-11-29 09:48:05 -03:00
renovate[bot]
0b57c01dd9 Update dependency @babel/plugin-proposal-decorators to v7.23.5 2023-11-29 12:30:50 +01:00
renovate[bot]
d5f3b26e87 Update sentry-javascript monorepo to v7.83.0 2023-11-29 12:29:34 +01:00
renovate[bot]
5acd8116e2 Update dependency @breejs/later to v4.2.0 2023-11-29 00:05:22 +00:00
Jono M
3f70cc08b7
Fixed create offer API not returning created_at (#19143)
refs https://github.com/TryGhost/Product/issues/4196

The offers API basically returns the data you pass to it, rather than
the created database record. It looks like this is how it was intended
to work in the first place; the `setMilliseconds` is because the test
helper expects `.000Z`, which I assume is because MySQL will strip off
the milliseconds when it's saved.
2023-11-28 15:11:35 +00:00
renovate[bot]
a5c4f30a9f Update dependency i18next to v23.7.7 2023-11-28 14:42:59 +00:00
Steve Larson
a586ac9469
Bumped editor packages (#19161)
no refs
- contains various fixes and improvements
2023-11-28 14:42:32 +00:00
Simon Backx
3687feca07
Updated support email address verification for DMARC changes (#19147)
fixes GRO-71

- Current flow: unchanged
- New managed flow: verification required
- New managed flow with custom sending domain: only verification
required for different domains
- Self hosters (feature flag): no verification required
2023-11-28 15:06:58 +01:00
Ghost CI
be6916f066 Merged v5.74.5 into main 2023-11-28 12:58:26 +00:00
Ghost CI
df3eea908a v5.74.5 2023-11-28 12:58:24 +00:00
Fabien "egg" O'Carroll
07f9564eea 🔐 Restricted reading files from outside the theme directory
closes https://github.com/TryGhost/Product/issues/4191

Without this patch, themes can read arbitrary files from your system and
expose them to the internet via the layout feature of express-hbs.

For example `{{!< ../../../../config.production.json}}` would spit out config,
which can contain secrets.

As theme upload is restricted to users with the Admin role, this mostly effects
hosting providers which use their own secret keys for e.g. mail or database config
2023-11-28 12:46:06 +00:00
EchoBilisim
4d4b150fd8
Update comments.json (#19110) 2023-11-28 13:41:52 +01:00
Fabien 'egg' O'Carroll
616247b6d5
Indexed over members_newsletters(newsletter_id, member_id) (#19156)
refs https://github.com/TryGhost/Product/issues/4181

We were seeing slow queries when joining on this table, and the index
speeds them up. The down migration is tricky because when we add the
index MySQL can optimise away some `KEY` indexes on the `newsletter_id`
column. When we then go to remove the newly created index, there is no
index for the FK! 

We also remove the use of `force index` as 1. the index we're forcing is
optimised away and 2. we don't need it anymore!


Co-authored-by: Daniel Lockyer <hi@daniellockyer.com>
2023-11-28 12:20:14 +00:00
renovate[bot]
7d564d4173 Update dependency fs-extra to v11.2.0 2023-11-28 11:54:44 +01:00
Steve Larson
e2807475f8
Updated editor packages (#19151)
closes TryGhost/Product#4204
- updated editor packages to get improvements to TK Plugin
2023-11-27 18:02:26 -06:00
Sag
54ee8d3389
Updated newsletter email verification to render the verified address (#19148)
refs GRO-80
- added a new meta field "email_verified" to the /verification endpoint
for newsletters. This meta field contains which email has been verified,
"sender_email" or "sender_reply_to"
- updated copy in newsletter settings, based on which email has been
verified
2023-11-27 18:28:57 +00:00
Simon Backx
6c37382bc3
Fixed requiring verification email for default address (#19140)
fixes GRO-79

When changing the Reply-To to the default address, the verification
email is now skipped.
2023-11-27 10:45:34 +00:00
Ghost CI
d30a6633ab v5.74.4 2023-11-27 07:56:41 +00:00
Ghost CI
bae7ca957d 🎨 Updated Source to v1.1.1 2023-11-27 07:56:41 +00:00
Daniel Lockyer
28e59b5444
Merged tag 'v5.74.3' into main
v5.74.3
2023-11-27 08:48:04 +01:00
Kevin Ansfield
b4ee76af5e
🐛 Fixed error when loading editor in Safari versions earlier than 16.4 (#19127)
no issue

- bumped `@tryghost/koenig-lexical` to version that no longer uses negative lookbehind in a regex which wasn't supported in Safari until version 16.4
2023-11-24 15:33:18 +00:00
Ghost CI
c6b86abb12 v5.74.3 2023-11-24 14:55:14 +00:00
Kevin Ansfield
761cc65d8f
🐛 Fixed error when loading editor in Safari versions earlier than 16.4
no issue

- bumped `@tryghost/koenig-lexical` to version that no longer uses negative lookbehind in a regex which wasn't supported in Safari until version 16.4
2023-11-24 14:41:43 +00:00
Simon Backx
a037ce3dde
Added calculated email address settings (#19115)
fixes GRO-73

We need to avoid duplicating the complex logic for determining the
default email address and the support email address. So these are now
exposed as calculated settings.
2023-11-23 13:07:15 +00:00
Simon Backx
17ec1e8937
Added email address alignment protections (#19094)
ref GRO-54
fixes GRO-63
fixes GRO-62
fixes GRO-69

When the config `hostSettings:managedEmail:enabled` is enabled, or the
new flag (`newEmailAddresses`) is enabled for self-hosters, we'll start
to check the from addresses of all outgoing emails more strictly.

- Current flow: nothing changes if the managedEmail config is not set or
the `newEmailAddresses` feature flag is not set
- When managedEmail is enabled: never allow to send an email from any
chosen email. We always use `mail.from` for all outgoing emails. Custom
addresses should be set as replyTo instead. Changing the newsletter
sender_email is not allowed anymore (and ignored if it is set).
- When managedEmail is enabled with a custom sending domain: if a from
address doesn't match the sending domain, we'll default to mail.from and
use the original as a replyTo if appropriate and only when no other
replyTo was set. A newsletter sender email addresss can only be set to
an email address on this domain.
- When `newEmailAddresses` is enabled: self hosters are free to set all
email addresses to whatever they want, without verification. In addition
to that, we stop making up our own email addresses and send from
`mail.from` by default instead of generating a `noreply`+ `@` +
`sitedomain.com` address

A more in depth example of all cases can be seen in
`ghost/core/test/integration/services/email-addresses.test.js`

Includes lots of new E2E tests for most new situations. Apart from that,
all email snapshots are changed because the from and replyTo addresses
are now included in snapshots (so we can see unexpected changes in the
future).

Dropped test coverage requirement, because tests were failing coverage
locally, but not in CI

Fixed settings test that set the site title to an array - bug tracked in
GRO-68
2023-11-23 10:25:30 +01:00
Chris Raible
a97e2b823e
Added error handling to Sentry's beforeSend (#19109)
refs TryGhost/Product#4175

- Added error handling to Sentry's beforeSend function in both Admin and
Core, so if there is any error in beforeSend, we will still send the
unmodified event to Sentry
- This is in response to an incident yesterday wherein the beforeSend
function threw an error due to an unexpected missing value in the
exception. The event sent to Sentry was the error in the beforeSend
function, and the original error never reached Sentry.
- If the original event had reached Sentry, even if unmodified by the
logic in beforeSend, we could have been alerted to the issue sooner and
more easily identified all affected sites.
- Also added defensive logic to protect for certain values in the
exception passed to beforeSend not existing and added unit tests for the
beforeSend function in admin and core
2023-11-23 02:46:50 +00:00
Steve Larson
f981993ba4
Revert "🎨 Updated editor layout to be more mobile friendly (#19103)" (#19108)
no refs

This reverts commit 329488139a.

- updates for mobile result in the locator queries finding two elements
instead of one, causing tests to fail
- reverting for now until we take a look closer with mobile, as it seems
CI is running at a mobile size
2023-11-22 19:26:17 +00:00
Steve Larson
4b1f61f947
Wired up TK count to confirmation flow (#19107)
closes TryGhost/Product#4185
- display TK count in the TK reminder/confirmation modal
2023-11-22 19:12:50 +00:00
Kevin Ansfield
5c32b6ccbf
Wired up TK reminder step in publish flow (#19104)
refs https://github.com/TryGhost/Product/issues/4184

- set up property on the editor controller for tracking number of TKs, action for updating it, and reset mechanism to ensure we go back to 0 when switching post
- uses random number for now pending `<TkPlugin>` being updated to expose the TK count
- passed TK count data to the publish flow modal so it can show a reminder step before the publish options step when there are still TKs in the post content
- added `onCountChange` prop to `<TkPlugin>` ready for the count feature to be implemented
2023-11-22 17:19:19 +00:00
Sanne de Vries
329488139a
🎨 Updated editor layout to be more mobile friendly (#19103)
Refs https://github.com/TryGhost/Product/issues/3712
2023-11-22 16:55:25 +00:00
Sanne de Vries
ec332520eb
Added static TK reminder step to publishing flow (#19049)
Refs https://github.com/TryGhost/Product/issues/4165
2023-11-22 15:36:20 +00:00
Jono Mingard
efc0f68b96 Merge tag 'v5.74.2'
v5.74.2
2023-11-22 14:53:42 +00:00
renovate[bot]
5969614a58 Update dependency miragejs to v0.1.48 2023-11-22 15:50:35 +01:00
Steve Larson
98215c6fea
Updated TK Reminders plugin use (#19100)
refs TryGhost/Product#4155
- moved plugin to top level so we can pass in props
2023-11-22 14:48:05 +00:00
Ghost CI
5299d1176e v5.74.2 2023-11-22 14:37:51 +00:00
Steve Larson
0954e08cf9
🐛 Fixed creating posts with an empty root (#19098) (#19099)
refs TryGhost/Product#4156
- bumped renderer package to handle empty root node
2023-11-22 08:26:09 -06:00
Steve Larson
03fec65fd5
🐛 Fixed creating posts with an empty root (#19098)
refs TryGhost/Product#4156
- bumped renderer package to handle empty root node
2023-11-22 14:18:26 +00:00
Daniel Lockyer
8debc4eb02 Forced use of specific index on members_newsletters
refs https://github.com/TryGhost/Product/issues/4181

- we've seen MySQL change its query planner to use a different index
  than the ideal one, resulting in drastically slower query performance
  when fetching newsletters with the member count
- this forces the use of the ideal index on MySQL
- this kept many of the Ghost team up overnight, so I hope MySQL is
  happy
2023-11-22 15:12:42 +01:00
Peter Zimon
6b46c828e7
Admin X demo app content (#19079)
refs. https://github.com/TryGhost/Product/issues/4169

- Added demo content for POC AdminX demo app
2023-11-22 13:44:39 +01:00
renovate[bot]
e01c87800e Update dependency mysql2 to v3.6.5 2023-11-22 00:59:57 +00:00
Ghost CI
6941ef0148 Merged v5.74.1 into main 2023-11-21 16:49:06 +00:00
Ghost CI
34dc2f8c1e v5.74.1 2023-11-21 16:49:03 +00:00
Kevin Ansfield
d5c5f9d8f5
🐛 Fixed re-ordering within galleries sometimes getting stuck on disabled (#19080)
refs https://github.com/TryGhost/Product/issues/4170
refs https://github.com/TryGhost/Koenig/pull/1084

- bumps `@tryghost/koenig-lexical` to version containing a fix for gallery re-ordering not working in some situations
2023-11-21 16:21:21 +00:00
Kevin Ansfield
daf7b2714e
🐛 Fixed re-ordering within galleries sometimes getting stuck on disabled (#19080)
refs https://github.com/TryGhost/Product/issues/4170
refs https://github.com/TryGhost/Koenig/pull/1084

- bumps `@tryghost/koenig-lexical` to version containing a fix for gallery re-ordering not working in some situations
2023-11-21 16:12:52 +00:00
renovate[bot]
b275450bec Update Types packages 2023-11-21 15:06:56 +01:00
renovate[bot]
56d18edf0e Update sentry-javascript monorepo to v7.81.1 2023-11-21 15:05:41 +01:00
renovate[bot]
98941cef3a Update dependency yjs to v13.6.10 2023-11-21 11:53:03 +00:00
Kevin Ansfield
2f07af05cb
Wired up tkReminders flag in Admin+editor (#19074)
refs https://github.com/TryGhost/Ghost/pull/19057

- the flag and toggle UI had been added but we were missing the final part of wiring up the feature in Admin and passthrough to the editor
2023-11-21 11:10:28 +00:00
Jono M
baa62c0bed
Fixed AdminX loading failure screen layout (#19072)
no issue

This was broken when adding the AdminX demo app - it would no longer
display at full height.
2023-11-21 10:26:34 +00:00
Simon Backx
b6519e0f1f
Removed usage of unquoted ids in filter strings (#19070)
fixes GRO-34
fixes GRO-33

This is a revision of a previous commit, that broke the browser tests
because changes in the data generator (requiring bookshelf had side
effects).

This adds a new way to run all tests with enforced numeric ObjectIDs.
These numeric ids cause issues if they are used withing NQL filters. So
they surface tiny bugs in our codebase.

You can run tests using this option via:
NUMERIC_IDS=1 yarn test:e2e

Removed some defensive logic that could be explained by this discovered
issue.
2023-11-21 09:45:36 +01:00
renovate[bot]
fedda8b898 Update dependency mysql2 to v3.6.4 2023-11-21 08:14:56 +00:00
Ronald Langeveld
83a1060983
Added last redeemed property to Offers (#19066)
refs https://github.com/TryGhost/Product/issues/4153

- wired up a new last_redeemed prop to the Offers API endpoint.
2023-11-21 08:02:15 +00:00
Ronald Langeveld
bc6f69d823
Fixed created_at types in Offers (#19065)
no issue

- fixed types in offers for the created_at property
2023-11-21 09:43:12 +02:00
Steve Larson
a398067159
Added TK reminders labs feature (#19057)
refs TryGhost/Product#4156
2023-11-20 23:30:16 +00:00
renovate[bot]
17dec5a749 Update dependency typescript to v5.3.2 2023-11-20 20:11:26 +01:00
renovate[bot]
7a3ae4ab75 Update sentry-javascript monorepo to v7.81.0 2023-11-20 16:57:32 +01:00
Chris Mitchell
07e5e2c272
Added Scottish Gaelic translations (#19001)
Co-authored-by: Daniel Lockyer <daniellockyer@fastmail.com>
2023-11-20 15:56:51 +00:00
Daniel Lockyer
2ac8f39e77 Included all apps in asset-delivery output
- this should loop over all apps without us having to manually add them
  to the debug lines
2023-11-20 16:49:10 +01:00
Daniel Lockyer
641e0cbbdd Fixed building @tryghost/admin-x-demo project before Admin
refs a93c665d20

- this project needs to be built before Admin because Admin
  symlinks/copies the assets
2023-11-20 16:49:10 +01:00
Michael Barrett
55392646e1
Refined cache invalidation when updating a user (#19028)
refs https://github.com/TryGhost/Arch/issues/101

Refined the cache invalidation logic so that when updating a user, we
only invalidate the cache when an attribute of the user that is used on
the frontend changes.
2023-11-20 14:14:30 +00:00
Simon Backx
d5492bd63c
Revert "Removed usage of unquoted ids in filter strings" (#19052)
Reverts TryGhost/Ghost#19031

Browser tests are failing with an unknown cause
2023-11-20 13:50:07 +00:00
Jono M
a93c665d20
Created a skeleton AdminX demo app (#19005)
refs https://github.com/TryGhost/Product/issues/4152

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖[[deprecated]](https://githubnext.com/copilot-for-prs-sunset)
Generated by Copilot at a28462f</samp>

This pull request adds a new admin-x app called `admin-x-demo`, which
demonstrates how to use the shared packages `admin-x-framework` and
`admin-x-design-system` to create a simple app that renders a button and
a modal. It also improves the development workflow, the vite
integration, the dependency management, and the type checking for the
admin-x apps and packages. It modifies some files in the
`admin-x-framework` and `admin-x-design-system` packages to make the
modals prop optional, to introduce a new type for the props from the
Ember app, to fix the z-index of the modal backdrop, and to use
consistent file extensions and module syntax.
2023-11-20 13:30:15 +00:00
Simon Backx
320eaac4c4
Removed usage of unquoted ids in filter strings (#19031)
fixes GRO-34
fixes GRO-33

This also adds a new way to run all tests with enforced numeric ObjectIDs.
These numeric ids cause issues if they are used withing NQL filters. So they
surface tiny bugs in our codebase.

You can run tests using this option via:
NUMERIC_IDS=1 yarn test:e2e

Also removed some defensive logic that could be explained by unquoted ids.
2023-11-20 14:00:31 +01:00
Kevin Ansfield
1be490ae9e
Reduced size of social metadata images (#19048)
refs https://github.com/TryGhost/Product/issues/4140

- added `social-image` image size to our `internalImagesSizes` list with a max-width of 1200
- extracted image utils from `{{img_url}}` helper to a utils file for re-use
- updated `getImageDimensions` method that reads image dimensions and modifies the finalised `metaData` object before use to adjust dimensions and associated URLs to match max width of 1200px
2023-11-20 12:39:51 +00:00
renovate[bot]
0cf25d0afe Update dependency yjs to v13.6.9 2023-11-20 12:25:48 +00:00
Harry Suryapambagya
722847f62e
Updated Bahasa Indonesia translations (#18483) 2023-11-20 12:12:46 +00:00
Markus Härnvi
489ef84c68
Updated Swedish translations (#18749)
Co-authored-by: Daniel Lockyer <hi@daniellockyer.com>
2023-11-20 12:28:51 +01:00
remylpt
e51f39e2c9
Updated French translations (#18719)
Co-authored-by: Daniel Lockyer <daniellockyer@fastmail.com>
2023-11-20 11:12:05 +00:00
mihneabont
e84f792663
Fixed Romanian grammar (#18939)
Co-authored-by: Ryan Feigenbaum <48868107+royalfig@users.noreply.github.com>
2023-11-20 12:01:51 +01:00
Jono M
5e057dee11
Added tests to AdminX framework package (#19022)
refs https://github.com/TryGhost/Product/issues/4159

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖[[deprecated]](https://githubnext.com/copilot-for-prs-sunset)
Generated by Copilot at 9e68f4d</samp>

This pull request refactors several components in the `admin-x-settings`
app to use common hooks from the `@tryghost/admin-x-framework` package,
which reduces code duplication and improves consistency. It also updates
the `package.json` file and adds unit tests for the `admin-x-framework`
package, which improves the formatting, testing, and dependency
management. Additionally, it makes some minor changes to the `hooks.ts`,
`FrameworkProvider.tsx`, and `.eslintrc.cjs` files in the
`admin-x-framework` package, which enhance the public API and the
linting configuration.
2023-11-20 11:00:51 +00:00
renovate[bot]
b4fa565e91 Update dependency @sinonjs/fake-timers to v11.2.2 2023-11-20 11:12:57 +01:00
renovate[bot]
3c5a5b9ce4 Update dependency testem to v3.11.0 2023-11-20 09:41:49 +01:00
renovate[bot]
3d3015dfba Update dependency html-validate to v8.7.2 2023-11-20 08:48:20 +01:00
Ghost CI
a1d7aa6dba v5.74.0 2023-11-17 16:05:58 +00:00
Ghost CI
d77ef5de7c 🎨 Updated Source to v1.1.1 2023-11-17 16:05:58 +00:00
Chris Raible
22aac1abd5
Added performance metrics to redis cache purging (#19039)
no issue

Began tracking the following metrics when purging the redis cache:
1. cache_reset_scan - total time to scan the keyspace
2. cache_reset_delete - total time to delete all the matching keys
3. cache_reset - total time in ms to reset the cache
4. cache_reset_keys - total number of keys deleted

We can reduce the granularity of these alerts to reduce the load on
elastic eventually, but for now it would be nice to collect metrics at
this granularity so we can optimize the cache purging performance.
2023-11-17 00:17:16 -08:00
Chris Raible
c0e39affd0
Masked post and page IDs in Ember Data errors (#19035)
no issue

- The standard error message from Ember Data includes post/page ids in
the error message
- This causes Sentry to treat each instance as a unique issue and
results in many duplicate issues for the same error
- This change should mask the ids and allow Sentry to group the errors
correctly
2023-11-16 14:34:23 -08:00
Chris Raible
d6c5ce3d02
Fixed Sentry ajax error tags (#19034)
no issue

- Fixed an issue where the ajax_url tag was exceeding the allowed length
of tags in Sentry
- Fixed the mechanism for deleting the ajax tags when the error is not
an ajax error
- Removed the isAjaxError tag, since we can use the other ajax tags to
filter for ajax errors now
2023-11-16 12:27:07 -08:00
Simon Backx
32d0d2b293 Added filter to filter members by email disabled
fixes GRO-23

Co-authored-by: Djordje Vlaisavljevic <dzvlais@gmail.com>
Co-authored-by: Sag <guptazy@gmail.com>
2023-11-16 19:16:20 +01:00
Sag
69ee4a5ff5
Added option to unsubscribe in one-click from emails (#19032)
refs https://github.com/TryGhost/Product/issues/4051
- added a "List-Unsubscribe" header to emails, in compliance with the
RFC 8058 requirements
- Gmail, Apple Mail, Yahoo Mail, and other popular email clients offer
an option to unsubscribe in one-click, based on the "List-Unsubscribe"
header. Some require an HTTPS endpoint, some a mailto address; both
options are provided in the "List-Unsubscribe" header

Co-authored-by: Simon Backx <simon@ghost.org>
Co-authored-by: Djordje Vlaisavljevic <dzvlais@gmail.com>
2023-11-16 14:50:24 -03:00
Steve Larson
40a859023f
Updated editor package (#19030)
closes TryGhost/Product#4160
- updated shortcut handling, this brings the sidebar shortcuts in line
2023-11-16 17:24:06 +00:00
Djordje Vlaisavljevic
6a443e431a Changed filter copy
fixes GRO-46
2023-11-16 16:52:16 +00:00
Steve Larson
7c1a13b88d
Updated editor shortcuts menu (#19027)
refs TryGhost/Product#4160
- updated header to be ctrl+option/alt+1-5 for header to avoid conflict
with os behaviour
- updated strike to be ctrl+option/alt+u to avoid view source browser
behaviour
2023-11-16 15:04:23 +00:00
Daniel Lockyer
5acecf2cae ️ Improved GScan performance for themes with many partials
refs https://github.com/TryGhost/DevOps/issues/3
refs b6d8e0192a

- see referenced commit for full context but this should improve the
  theme check time for themes with a large number of files and partials
- locally, checking a particularly heavy theme goes from 5s to 1.7s with this
  commit, and the improvement is larger on slower machines
2023-11-16 13:55:57 +01:00
Sanne de Vries
e9e2b678c7
Updated Admin meta title to Ghost Admin – [site title] (#19023)
No ref
- In order to make it easier to distinguish between Admin and site in
browser tabs, we've updated the meta title to include `Ghost Admin` in
the title.
2023-11-16 13:15:48 +01:00
Simon Backx
e3cdc24d6b
Added test to test default theme against linked gscan version (#19020)
fixes GRO-32

If we ever introduce errors in the linked source theme and linked gscan
version combination, this test will catch it.
2023-11-16 12:03:00 +00:00
Djordje Vlaisavljevic
a2cd4445f3 Updated copy
fixes GRO-35
2023-11-16 11:47:56 +00:00
Simon Backx
3a78cf48c9
Fixed deleting session when requesting identity for invalid session (#19017)
ref https://ghost.slack.com/archives/C02G9E68C/p1700129928489809

- When the GET /api/session endpoint is called, the session is deleted
if it is invalid
- We don't have a body parser for this GET endoint, and the request
object was passed to the deleteSession handler. This caused a type error
(cannot read properties of undefined)
- We had dangling promise because deleteSession is async and wasn't
awaited, causing random errors in tests
- Added a test that would have caught this earlier
2023-11-16 11:01:50 +00:00
Ronald Langeveld
2bd597fe0d
Added createdAt prop to Offers API request. (#19012)
refs https://github.com/TryGhost/Product/issues/4153

- We need use the `created_at` timestamp in the new AdminX offers. The
API doesn't return that value.
- With this change the API returns the created_at property so that we
can consume it.
---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖[[deprecated]](https://githubnext.com/copilot-for-prs-sunset)
Generated by Copilot at dc282af</samp>

This pull request adds a `createdAt` property to the offer domain model,
data transfer object, and repository. This allows tracking and auditing
the creation and modification of offers and offer codes in
`ghost/offers`.
2023-11-16 17:33:01 +07:00
Simon Backx
e5f644c27f
🐛 Fixed contain/starts/endsWith filters with /, _ or % in them (#19015)
fixes GRO-25

Updated @tryghost/nql to 0.12.0 and other packages that depend on it

1. SQLite: when a filter string contains /.

When we use a NQL contain/starts/endsWith filter that contains a slash,
underlyingly the whole filter will get converted to a MongoDB query, in
which we just use a regexp to represent the filter. In here we will
escape the slash: \/ as expected in a regexp. Later when we convert this
MongoDB query back to knex/SQL, we use a SQL LIKE query. Currently we
don't remove the escaping here for a normal slash. MySQL seems to ignore
this (kinda incorrect). SQLite doesn't like it, and this breaks queries
on SQLite that use slashes. The solution here is simple: remove the
backslash escaping when converting the regexp to LIKE, just like we do
with other special regexp characters.

2. We don't escape % and _, which have a special meaning in LIKE queries

Usage of % and _ is now as expected and doesn't have the special SQL
meaning anymore.
2023-11-16 09:35:20 +00:00
Chris Raible
2d8abb70ec
Removed RewriteFrames Sentry integration from admin (#19007)
refs
5f7c7a82dc

- The goal of the RewriteFrames plugin was to remove version identifiers
from the stack traces sent to Sentry, to improve the stack trace
grouping. That sort of worked, but it ended up breaking the sourcemaps
so the stack traces were ugly and hard to read within Sentry.
- This change removes the RewriteFrames plugin to fix the stack traces
again. Instead, planning to use Sentry's stack trace rules built into
the UI to fix the grouping.
2023-11-15 18:37:13 -08:00
Steve Larson
d0fa385848
Added jpeg compression (#19006)
refs TryGhost/Product#4140
- bumped image-transform to add jpeg compression
2023-11-15 23:30:48 +00:00
Steve Larson
40a8e969b8
Revert "Bumped image transform package (#19003)" (#19004)
This reverts commit 557c01f48c.
2023-11-15 20:25:29 +00:00
Steve Larson
557c01f48c
Bumped image transform package (#19003)
refs TryGhost/Product#4140
- adds compression for jpeg > jpeg or any > jpeg asset generation
2023-11-15 19:14:23 +00:00
Simon Backx
75bb53f065
🔒 Added support for logging out members on all devices (#18935)
fixes https://github.com/TryGhost/Product/issues/3738
https://www.notion.so/ghost/Member-Session-Invalidation-13254316f2244c34bcbc65c101eb5cc4

- Adds the transient_id column to the members table. This defaults to
email, to keep it backwards compatible (not logging out all existing
sessions)
- Instead of using the email in the cookies, we now use the transient_id
- Updating the transient_id means invalidating all sessions of a member
- Adds an endpoint to the admin api to log out a member from all devices
- Added the `all` body property to the DELETE session endpoint in the
members API. Setting it to true will sign a member out from all devices.
- Adds a UI button in Admin to sign a member out from all devices
- Portal 'sign out of all devices' will not be added for now

Related changes (added because these areas were affected by the code
changes):
- Adds a serializer to member events / activity feed endpoints - all
member fields were returned here, so the transient_id would also be
returned - which is not needed and bloats the API response size
(`transient_id` is not a secret because the cookies are signed)
- Removed `loadMemberSession` from public settings browse (not used
anymore + bad pattern)

Performance tests on site with 50.000 members (on Macbook M1 Pro):
- Migrate: 6s (adding column 4s, setting to email is 1s, dropping
nullable: 1s)
- Rollback: 2s
2023-11-15 17:10:28 +01:00
Kevin Ansfield
3358ba305b
🐛 Fixed highlight formatting not showing in rendered posts (#18997)
closes https://github.com/TryGhost/Product/issues/4144

- bumped `@tryghost/kg-lexical-html-renderer` which adds highlight (`<mark>`) support
2023-11-15 14:08:14 +00:00
Simon Backx
41e7978897
Fixed mailto unsubscribe header to only unsubscribe current tags (#18995)
ref GRO-20

The currently set mailto variable would subscribe for all mailgun tags
instead of only the tags of the specific email.
2023-11-15 12:57:24 +00:00
Kevin Ansfield
26554bc206
Improved lexical render performance (#18967)
closes https://github.com/TryGhost/Product/issues/4133

- we were creating a new JSDOM instance every time we rendered a card which lowered performance because JSDOM instantiation is heavy
- updated Koenig packages to remove the need for passing in an external `createDocument` option method as they now re-use the renderer's internal single instance of JSDOM
2023-11-15 12:33:22 +00:00
Daniel Lockyer
05977d5c26 Added boot time performance test to CI
refs https://github.com/TryGhost/DevOps/issues/105

- this will run a small benchmark on the boot time for Ghost, and push
  the stats to another repository which has GitHub Pages enabled, so we
  can visualise the change over time
- will only run on pushes to `main` so we don't pollute the stats with
  commits from PRs
- just a test for now to see if we get stable numbers
2023-11-15 13:24:56 +01:00
renovate[bot]
4651ef3d9b Update sentry-javascript monorepo to v7.80.1 2023-11-15 12:31:56 +01:00
renovate[bot]
14741b1521 Update dependency @embroider/macros to v1.13.3 2023-11-15 10:28:28 +01:00
renovate[bot]
ab4a21db49 Update babel monorepo to v7.23.3 2023-11-15 09:23:45 +01:00
Chris Raible
5f7c7a82dc
Added RewriteFrames integration to Admin Sentry (#18969)
no issue

- Currently our stack traces in Production include the admin build
version in the paths, e.g. `/admin/1633/assets` instead of
`admin/assets`
- This confuses the error grouping logic in Sentry, resulting in many
duplicate issues being created every time we release a new version of
admin
- Ultimately, this makes it really difficult to determine if a 'New'
issue in Sentry is actually new, or if it's just the first time we've
seen it in this release.
- This commit adds the `RewriteFrames` integration to the Admin Sentry
client, which will strip the build version from the paths in the stack
traces, and allow Sentry to group issues correctly.
- With this, hopefully we will have far fewer 'New' issues created, so
we can again start alerting on the 'New' condition in Sentry.
2023-11-14 18:16:29 -08:00
Ghost CI
d8aba91f51 Merged v5.73.2 into main 2023-11-14 22:14:15 +00:00
Ghost CI
499b894f8d v5.73.2 2023-11-14 22:14:14 +00:00
Kevin Ansfield
4394580c1a
🐛 Fixed and improved various editor issues
closes https://github.com/TryGhost/Product/issues/4146
closes https://github.com/TryGhost/Ghost/issues/17753
closes https://github.com/TryGhost/Product/issues/4127
closes https://github.com/TryGhost/Ghost/issues/18903

- 🐛 Fixed blank render output in some cases when using line breaks
- 🐛 Fixed backspace at end of link sometimes deleting whole link in Firefox
- 🐛 Fixed plain black generated video thumbnails in Safari
- 🎨 Added `srcset` and `loading="lazy"` to header card images
- 🎨 Improved accessibility of buttons in render output by adding `aria-role` attributes
- 🎨 Removed Ctrl/Cmd+H shortcut as it clashed with expected OS shortcut
2023-11-14 21:59:45 +00:00
Steve Larson
0fe573b1d0
🐛 Redirected email previews to /email/ route (#18976)
closes TryGhost/Product#4136
- the `/p/` route is only intended for drafts, not published content
(e.g. sent newsletters)
- email-only posts (newsletters) do not get assigned a slug, and could
still be viewed at `/p/:uuid`, which didn't hide paid/member content
2023-11-14 13:31:41 -06:00
Zabriskije
c33bad17ba
Updated Italian translations (#18957)
Updated translations for `comment.json` and `portal.json`
2023-11-14 13:11:16 -05:00
EchoBilisim
560ebecef2
Update comments.json (#18717)
Necessary missing translations completed
2023-11-14 13:09:11 -05:00
Kacper Duras
8081818f26
🎨 Better Polish translation, fixed grammar and typos (#18865)
If you would like to verify the correctness of the translation in Polish
in the future, let me know ;) **See for comments before merge**.
2023-11-14 13:07:35 -05:00
FungY911
09150d2dd3
Update comments.json (#18822)
Got some code for us? Awesome 🎊!

Please include a description of your change & check your PR against this
list, thanks!

- [ ] There's a clear use-case for this code change, explained below
- [ ] Commit message has a short title & references relevant issues
- [ ] The build will pass (run `yarn test:all` and `yarn lint`)

We appreciate your contribution!

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 3389126</samp>

Improved the Slovak translation of the Ghost blog demo by adding a
fictional author name and correcting a grammar error in `comments.json`.
2023-11-14 13:05:13 -05:00
kazanec18
0f07ae1661
russian translation comments.json (#18876)
translation correction
2023-11-14 13:04:39 -05:00
Raka Afp
a8c11c1f16
Updated Bahasa Indonesia translations (#18946)
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 79cfdef</samp>

This change adds a new translation for the comments feature in Ghost in
the Indonesian language. It is part of a larger effort to update and
improve the localization of the comments feature in different languages.
2023-11-14 12:43:41 -05:00
Simon Backx
370c6b465b
Filter members by email disabled (#18884)
fixes https://github.com/TryGhost/Product/issues/4108

- Updates filters behind a new alpha feature flag so you can also filter
on members who have email disabled (because the email had a permanent
bounce, they reported spam or the email address is invalid)
- When returning members, we now also use the email_disabled flag to set
email_suppression.suppressed correctly (in case they are out of sync,
which should normally never happen).
2023-11-14 14:37:01 +01:00
renovate[bot]
7799e0f47b Update dependency json-stable-stringify to v1.1.0 2023-11-13 23:16:24 +00:00
Sag
6db7cc8156
Removed email from Mailgun's suppression list on unsubscribe (#18922)
closes https://github.com/TryGhost/Product/issues/4075

- when a member clicks on "Unsubscribe from that list" from Apple Mail,
the member's email is put into Mailgun's Unsubscribe suppression list.
Ghost listens for "Unsubscribe" events from Mailgun, and unsubscribes
the member from all the newsletters
- now, the member is only unsubscribed from the newsletter they
unsubscribe to (not all of them)
- now, the email is also deleted from Mailgun's suppression list, so
that it doesn't affect any other membership
2023-11-13 16:56:37 -03:00
Daniel Lockyer
3513ef3032 Fixed extra quote in logging line
- spotted in logs
2023-11-13 16:23:26 +01:00
renovate[bot]
2b591d9b6f Update dependency i18next to v23.7.6 2023-11-13 15:22:35 +00:00
Sanne de Vries
6f3ebae4c0
Fixed cursor on toggle button to display as pointer (#18964)
No ref
2023-11-13 15:07:35 +00:00
Daniel Lockyer
337b550b7e Moved monobundle into monorepo
fixes https://github.com/TryGhost/DevOps/issues/99

- this inlines the `monobundle` script into the monorepo from an
  external repo in order to avoid some caching issues we've seen
- it also makes it easier to maintain because you can change the script
  alongside changes in the monorepo
2023-11-13 13:30:38 +01:00
renovate[bot]
fa05fc06c6 Update dependency i18next to v23.7.5 2023-11-13 11:36:19 +00:00
renovate[bot]
92b5e41acd Update dependency i18next to v23.7.4 2023-11-13 11:15:10 +00:00
Sanne de Vries
5b73dd9f22
Fixed broken toggle card icon on iOS (#18959)
Closes https://github.com/TryGhost/Ghost/issues/18902
2023-11-13 11:01:25 +00:00
Simon Backx
14927ee24b
Added quotes to NQL filters with ids (#18958)
refs https://github.com/TryGhost/Product/issues/4120

Updated some places where we don't add quotes around ids in NQL filters,
which can be an issue when the id is a number
2023-11-13 12:00:20 +01:00
t8m8
e7ade50546
🐛 Fixed Enter key not working correctly when using IME in post title (#18950)
closes https://github.com/TryGhost/Ghost/issues/18949

- added check for `isComposing` in Enter key handler to avoid the move-to-post-body behaviour when the Enter keypress is used to end IME composition

---------

Co-authored-by: t8m8 <tomomasa.matsunaga@gmail.com>
2023-11-13 10:08:16 +00:00
renovate[bot]
79cbf34b1b Update dependency html-validate to v8.7.1 2023-11-13 09:50:52 +01:00
renovate[bot]
93fc6106dd Update dependency luxon to v3.4.4 2023-11-13 09:50:36 +01:00
Ghost CI
590505ca17 v5.73.1 2023-11-13 08:19:25 +00:00
renovate[bot]
7278f6d17e Update dependency i18next to v23.7.3 2023-11-13 02:24:33 +00:00
Ghost CI
f46ba34c54 v5.73.0 2023-11-10 16:04:09 +00:00
renovate[bot]
5d4e37fea3 Update dependency i18next to v23.7.1 2023-11-10 14:29:56 +00:00
Ghost CI
44791446a2 Merged v5.72.2 into main 2023-11-10 01:45:16 +00:00
Ghost CI
a333820324 v5.72.2 2023-11-10 01:45:14 +00:00
Steve Larson
888acfb0c5 🐛 Fix edge case resulting in duplicate emails for some recipients (#18941)
refs https://ghost.slack.com/archives/CTH5NDJMS/p1699359241142969

It's possible for `ObjectIDs` to have only numeric characters. We were
previously letting the type be inferred, which created a very rare but
possible edge case where the last recipient of an email batch had a
numeric ObjectID, resulting in a numeric comparison against alphanumeric
`ObjectIDs` in the database.
- updated the filter to add `'`'s around the `lastId` parameter
- updated tests to check for the type of the id filter parameter value
- can't fully test for numeric object IDs using what we have because
javascript cannot handle numerics of that size; may be able to look at
using fixture data loaded directly into the db
2023-11-09 19:32:52 -06:00
Steve Larson
342b5512fc
🐛 Fix edge case resulting in duplicate emails for some recipients (#18941)
refs https://ghost.slack.com/archives/CTH5NDJMS/p1699359241142969

It's possible for `ObjectIDs` to have only numeric characters. We were
previously letting the type be inferred, which created a very rare but
possible edge case where the last recipient of an email batch had a
numeric ObjectID, resulting in a numeric comparison against alphanumeric
`ObjectIDs` in the database.
- updated the filter to add `'`'s around the `lastId` parameter
- updated tests to check for the type of the id filter parameter value
- can't fully test for numeric object IDs using what we have because
javascript cannot handle numerics of that size; may be able to look at
using fixture data loaded directly into the db
2023-11-10 01:24:56 +00:00
Sanne de Vries
532dc2165f
Removed padding on feature image alt field (#18937)
Refs https://github.com/TryGhost/Product/issues/4130
2023-11-09 16:41:29 +00:00
Kevin Ansfield
30a66da4e3
🐛 Fixed various editor issues (#18934)
refs https://github.com/tryghost/ghost/issues/18752, https://github.com/TryGhost/Product/issues/3897, https://github.com/TryGhost/Product/issues/4112,https://github.com/TryGhost/Product/issues/3802, https://github.com/TryGhost/Product/issues/4104, https://github.com/TryGhost/Ghost/issues/18866, https://github.com/TryGhost/Ghost/issues/18753, https://github.com/TryGhost/Product/issues/4116, https://github.com/TryGhost/Ghost/issues/18888, https://github.com/TryGhost/Ghost/issues/18844

- 🐛 Fixed browser focus on editor when clicking card ([Koenig/#1051](https://github.com/TryGhost/Koenig/pull/1051))
- 🐛 Fixed signup card styles with image background ([Koenig/#1052](https://github.com/TryGhost/Koenig/pull/1052))
- 🐛 Fixed slash menu having fixed position when scrolling ([Koenig/#1054](https://github.com/TryGhost/Koenig/pull/1054))
- 🐛 Fixed signup card text color with transparent background ([Koenig/#1053](https://github.com/TryGhost/Koenig/pull/1053))
- 🐛 Fixed text formats being lost when copy/pasting from Google Docs ([Koenig/#1055](https://github.com/TryGhost/Koenig/pull/1055))
- 🐛 Fixed pasting link behaviour in single line nested editors ([Koenig/#1056](https://github.com/TryGhost/Koenig/pull/1056))
- 🐛 Fixed backspace behaviour at start of aside/quote ([Koenig/#1057](https://github.com/TryGhost/Koenig/pull/1057))
- 🐛 Fixed text having unexpected formats when rendering ([Koenig/#1058](https://github.com/TryGhost/Koenig/pull/1058))
- 🐛 Fixed placeholder descenders being cut off in nested editor ([Koenig/#1059](https://github.com/TryGhost/Koenig/pull/1059))
- 🐛 Fixed HTML->Lexical conversion not handling paragraphs inside blockquotes ([Koenig/#1061](https://github.com/TryGhost/Koenig/pull/1061))
2023-11-09 16:26:22 +00:00
renovate[bot]
04045bf56c Update metascraper to v5.38.0 2023-11-09 14:24:54 +00:00
Michael Barrett
bcfb8e1291
Misc Sentry tweaks (#18900)
no refs

- Removed redundant duplicated `save_revision` tag when capturing slow
saves
- Standardised Sentry tags casing (`snake_case`)
- Renamed tag `adminX settings component-` to
`adminx_settings_component`
2023-11-09 14:10:53 +00:00
Princi Vershwal
1e8176f596
Wired up Offer update Page 2023-11-09 05:54:29 +00:00
Chris Raible
78b1d130a9
Fixed admin sourcemap fingerprinting for chunk files (#18920)
no issue

- The fingerprinting on chunk files was happening twice (once by ember
and once by webpack), resulting in the .js file and the .map file not
matching
- This change prevents ember from fingerprinting the chunk.*.map files,
so the resulting .map and .js files will have the same basename
- No real functional difference here, just a bit easier to find the
corresponding .map file for a given .js file
2023-11-08 23:15:11 +00:00
Chris Raible
b90d3632df
Reverted ember-cli-terser to 4.0.1 (#18917)
no issue

- ember-cli-terser 4.0.2 apparently has a regression that breaks the
sourcemap generation for the admin ember app
- this reverts the package to 4.0.1, which fixes the sourcemaps and
should generate much more readable stack traces in Sentry
- Validating the sourcemaps locally succeeded, but will need to test
this on staging to confirm everything is working properly in CI and with
the CDN.
2023-11-08 20:35:45 +00:00
Djordje Vlaisavljevic
057d952e27
Made new recommendation email more flexible (#18915)
refs https://github.com/TryGhost/Product/issues/4095

- Removes `min-height` of the card in order to make the template more
flexible half-empty states look better (missing description, short
description, featured image...)
- Fixes wrong variables used in Outlook-specific template
2023-11-08 16:44:48 +00:00
Simon Backx
986296cac9 🐛 Fixed unsubscribe button requiring manual action + wrong confirmation
fixes https://github.com/TryGhost/Product/issues/4118

The newsletter uuids were not passed when fetching all the members current newsletters. Therefore, Portals logic broke to remove all newsletters that matched the uuid that was passed to the unsubscribe link. No newsletters were removed, still the notification toast said that the member was unsubscribed from the newsletter.
2023-11-08 15:05:47 +01:00
renovate[bot]
85979df33d Update sentry-javascript monorepo to v7.78.0 2023-11-08 14:06:32 +01:00
Kevin Ansfield
3a975fee18
Added debug timing logs for HTML conversion library import+convert (#18912)
refs https://github.com/TryGhost/Product/issues/4086

- we're seeing random test timeouts on CI but not locally, these logs should help pinpoint if it's the require that's taking a long time, the conversion itself, or something else entirely
2023-11-08 12:26:03 +00:00
renovate[bot]
cc43a311c2 Update Types packages 2023-11-08 12:29:48 +01:00
renovate[bot]
2ca1083de7 Update Types packages 2023-11-08 12:13:12 +01:00
Sag
e16102f4f1
Fixed metadata for recommendations from private sites (#18901)
refs https://github.com/TryGhost/Product/issues/4098
- added basic metadata (title, description, image, url) on the password
wall for private sites
- when a private site recommends me, I can now see the usual metadata
2023-11-07 17:41:53 -03:00
Daniel Lockyer
5739fbe3d2 Fixed bundling apps/ packages into tarball
refs 811679e94b
refs https://ghost.slack.com/archives/C0568LN2CGJ/p1699352735496789

- this bumps monobundle so it doesn't include `apps/` packages in the
  tarball
- soon we'll inline the script into this repo anyway
2023-11-07 12:10:47 +01:00
Sanne de Vries
dbe00929d3
Changed "latest posts" layout in email template on mobile (#18894)
Refs https://ghost.slack.com/archives/C019B1K4FAM/p1699127038805739

- Removed mobile styles so that latest posts are always in the same
layout, instead of in a single column on mobile
- Fixed img caption font size rendering too large on mobile
2023-11-07 11:23:03 +01:00
Nick Moreton
b9b1502772
🐛Changed "free_signups" to "signups" in Post Exporter (#18883)
ref https://github.com/TryGhost/Product/issues/4110

Made this change to increase clarity in data export

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 6c0508d</samp>

Renamed a column in posts export data and updated the corresponding test
case. This change makes the export data more consistent and clear for
users who have different member features enabled.
2023-11-07 09:52:28 +00:00
Daniel Lockyer
9c6dc044b3 Skipped random flaky HTML -> Lexical test
refs https://github.com/TryGhost/Product/issues/4086

- this test is randomly timing out so we're disabling it until we figure out
  the cause
2023-11-07 09:50:53 +01:00
Ghost CI
82af2a12f9 Merged v5.72.1 into main 2023-11-07 02:07:18 +00:00
Ghost CI
63e603f2f6 v5.72.1 2023-11-07 02:07:16 +00:00
Chris Raible
8b58eabadc 🐛 Fixed email rendering bug in Gmail for Android (#18886)
refs https://github.com/TryGhost/Ghost/pull/18587/files and
https://github.com/TryGhost/Ghost/pull/17475/files

- In October 2022, `juice`, a library Ghost uses to inline CSS for email
rendering, introduced a small change that began inlining `width: auto`
and `height: auto` from CSS on image tags, resulting in `width="auto"`
and `height="auto"` attributes being added to image tags in rendered emails
(cb62062794)
- This change in `juice` broke our email rendering in Outlook, which
doesn't play well with `width="auto"` attributes. The first two attempts
to workaround this new behavior in `juice` ended up fixing the issue in
Outlook, but breaking the rendering in other clients
- This commit stores the `height` and `width` attributes of all images
_before_ inlining the CSS with `juice`, and resets them to their
original values, only if they were set to `auto`
2023-11-06 17:27:45 -08:00
Chris Raible
3a4417ebd6
🐛 Fixed email rendering bug in Gmail for Android (#18886)
refs https://github.com/TryGhost/Ghost/pull/18587/files and
https://github.com/TryGhost/Ghost/pull/17475/files

- In October 2022, `juice`, a library Ghost uses to inline CSS for email
rendering, introduced a small change that began inlining `width: auto`
and `height: auto` from CSS on image tags, resulting in `width="auto"`
and `height="auto"` attributes being added to image tags in rendered emails
(cb62062794)
- This change in `juice` broke our email rendering in Outlook, which
doesn't play well with `width="auto"` attributes. The first two attempts
to workaround this new behavior in `juice` ended up fixing the issue in
Outlook, but breaking the rendering in other clients
- This commit stores the `height` and `width` attributes of all images
_before_ inlining the CSS with `juice`, and resets them to their
original values, only if they were set to `auto`
2023-11-06 16:40:08 -08:00
Kevin Ansfield
c93bc708bd
Removed block styling for <i> elements in Admin (#18882)
no issue

- we don't use `<i>` elements anywhere in our own code and this styling was causing odd in-editor previews of HTML cards when their content contained `<i>`
2023-11-06 16:18:59 +00:00
Steve Larson
ae53464cac
Enabled emoji picker in editor (#18880)
closes TryGhost/Product#4107
- emoji picker is now available for inline emoji insertion
- open the menu with typing a : (colon), e.g. 
2023-11-06 16:07:55 +00:00
Sanne de Vries
7f6a252721
Removed feature image indicator and improved visibility of feature im… (#18877)
…age button

No ref
2023-11-06 14:56:24 +01:00
Andrei Vintila
ff8b617615
Updated Romanian translations (#18860) 2023-11-06 09:11:14 +01:00
Jono M
fa3898113b
Updated publishing spec to use a more consistent timezone (#18873)
no issue

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 474a274</samp>

This pull request fixes a timezone display bug in the admin and post
settings. It also updates the `publishing.spec.js` file to test the
timezone functionality with a consistent option.
2023-11-06 07:49:43 +00:00
Jono M
e8e0d84d50
Deleted old Ember settings pages (#18740)
refs https://github.com/TryGhost/Product/issues/4055

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 3b24693</samp>

Removed unused components related to announcement settings, custom theme
settings, and file upload. These components were part of a deprecated
feature or a legacy UI.
2023-11-06 06:46:31 +00:00
Ghost CI
ad7efbe92e v5.72.0 2023-11-03 16:04:27 +00:00
Simon Backx
bf859c38ee
🐛 Fixed showing recommendations on custom welcome pages (#18864)
no issue

When a custom welcome page is set for a tier, the recommendations modal
didn't show. If recommendations were disabled, there was also no toast
to confirm the sign up.

To fix this, we'll need to set the success and action query parameters
on the welcome page, but only if it is not an external site.
2023-11-03 15:02:46 +00:00
Simon Backx
fee402a340
🐛 Fixed adding recommendation with URL redirect breaking one-click-subscribe (#18863)
fixes https://github.com/TryGhost/Product/issues/4102

E.g. you recommend myghostsite.com, while that site redirects all
traffic to [www.myghostsite.com](#):

The redirect causes CORS issues, which means we cannot detect
one-click-subscribe support.
- This is fixed by moving the whole detection to the backend, which has
the additional benefit that we can update it in the background without
the frontend, and update it on every recommendation change.
- This change also fixes existing recommendations by doing a check on
boot (we can move this to a background job in the future).
2023-11-03 15:02:45 +01:00
renovate[bot]
25d27f2589 Update dependency mysql2 to v3.6.3 2023-11-03 03:45:00 +00:00
Chris Raible
cbba26dccd
Disabled babel sourcemaps in admin build (#18858)
no issue

- Reverting
a96224a152
because it didn't help but made admin builds slower
2023-11-03 03:32:34 +00:00
Chris Raible
a96224a152
Enabled babel sourcemaps in admin build (#18857)
no issue

- Somewhere along the process of building the admin app, the sourcemaps
are getting corrupted
- This commit is to test the theory that babel is the source of the
corruption, because it isn't generating sourcemaps, so we are missing a
step in the process
2023-11-02 17:28:42 -07:00
Chris Raible
f987ce3523
Added sourcesContent key to admin sourcemaps (#18855)
no issue

- The sourcemaps currently generated by the admin build do not include
the `sourcesContent` key
- This commit is to experiment with this change, in particular to see if
it improves the stacktraces available in Sentry from errors in the admin
app
- Currently the stacktraces in admin show the minified code — hopefully
this change will make the stacktraces show the original source code to
make it easier to debug issues from within Sentry
- Might thoroughly break the sourcemaps, in which case I will revert this
2023-11-02 15:18:30 -07:00
Chris Raible
2db24c9282
Removed path tags from Sentry (#18853)
no issues

- The `path` tags added to Sentry events from admin aren't super useful, since they often include e.g. a
post id in the path, which isn't super useful for filtering/grouping
- We already have a `route` tag which can be used to filter to a
particular route, which renders the `path` tags unnecessary
2023-11-02 14:13:38 -07:00
Chris Raible
8a0a9c07fb
Removed assets/ from sources in admin sourcemaps (#18852)
no issue

- Follow up to
85fca5891f
- With the `sourceRoot` key added in the commit above, the sourcemaps
were still failing validation
(https://sourcemaps.io/report/1698954693695_https%3A%2F%2Fassets.ghostfoundation.org%2Fadmin%2F1603%2Fassets%2Fchunk.143.ab029856ba6d72733dfa.js)
- With the `sourceRoot` key, the maps were pointing to
'<CDN_URL>/assets/../assets/...' which is invalid
- This change simply strips the leading `assets/` from any sources in
the sourcemaps
2023-11-02 13:12:45 -07:00
Chris Raible
85fca5891f
Added sourceRoot key to sourcemaps before asset-delivery runs (#18849)
no issue

- Follow up to
a382cd8a91
and
fb34e285fc
- The `sourcemap-postprocess` addon was ineffective because the assets
were being copied to `/ghost/core/core/built` before the addon was run,
so the changes weren't being applied in staging/production
- This change makes the required modifications to the sourcemaps before
copying them
2023-11-02 18:46:56 +00:00
Kevin Ansfield
dffc547219
Fixed errors when leaving editor screen (#18847)
refs https://github.com/TryGhost/Ghost/pull/18816

When opening a new post in the editor and immediately leaving we would hang because we attempted to save a revision rather than just throwing the blank post away.

- added additional `hadDirtyAttributes` check to the forced-revision save when leaving
- added additional destroyed post checks to the save task to avoid saving a deleted post when leaving the editor
- removed unnecessary waits for save tasks that prevented leaving the editor when the title on a new post had been filled in but not saved (matches previous editor behaviour)
2023-11-02 17:55:53 +00:00
Sag
b3c8055efe
Fixed email_disabled field after member update in Admin (#18827)
closes https://github.com/TryGhost/Product/issues/4046
- when editing the member's email in Admin, the email_disabled field was
not recalculated, making it inconsistent with the suppression list
- now, if the new email is part of the suppression list, we set
email_disabled to true. Otherwise set it to false
2023-11-02 17:15:03 +00:00
FungY911
764b4692f7
Updated Slovak translations (#18823) 2023-11-02 18:02:25 +01:00
Steve Larson
41af35d402
Bumped editor packages (#18845)
no refs
2023-11-02 16:05:31 +00:00
Sag
6952966e46
Fixed title for incoming recommendations from private sites (#18846)
closes https://github.com/TryGhost/Product/issues/4098
- when a site is private, the metadata title is "My Site — Private Site
Access". When fetching the metadata via oembed, we get "Private Site
Access" as publisher, and "My Site — Private Site Access" as title
- this fix removes "- Private Site Access" from the metadata title when
a Ghost site is private
2023-11-02 16:02:04 +00:00
Kevin Ansfield
5b89cee450
Fixed emoji picker positioning and keyboard nav in captions (#18843)
refs https://github.com/TryGhost/Product/issues/4092
refs https://github.com/TryGhost/Product/issues/4094
refs https://github.com/TryGhost/Product/issues/4091

- fixes up/down arrows not working when selecting emojis inside of captions and other nested editors
- fixes picker positioning when used in different sized text
- fixes picker re-positioning when menu would be cut off screen
2023-11-02 11:55:21 +00:00
Andrei Vintila
c12a40989d
Updated Romanian translations (#18821) 2023-11-02 11:07:58 +01:00
Ghost CI
59817c3c9b Merged v5.71.2 into main 2023-11-02 08:27:00 +00:00
Ghost CI
3fd2571cb2 v5.71.2 2023-11-02 08:26:58 +00:00
Michael Barrett
213e54aa71
Fixed error caused by uploading empty redirects YAML file (#18820)
no refs

Fixed error caused by uploading empty redirects YAML file:

```
Cannot read properties of undefined (reading '302')
```

This error was occurring due to `yaml.load` returning `undefined` when
the provided yaml file was empty. I've made the check on the return
value of `yaml.load` stricter (i.e we only want an `object`) to prevent
this error from occurring.
2023-11-02 08:17:52 +00:00
Daniel Lockyer
388d1a8f2d
🐛 Fixed detection of {{recommendations}} and {{readable_url}} helpers
fixes https://github.com/TryGhost/Ghost/issues/18836
fixes https://github.com/TryGhost/Ghost/issues/18834

- this bumps GScan to a version which detects the helpers
2023-11-02 08:45:29 +01:00
renovate[bot]
c370f0c843 Update dependency ember-cli-deprecation-workflow to v2.2.0 2023-11-02 07:36:51 +01:00
Steve Larson
3f368d05d9
🐛 Fixed post feature image caption updates saving with every keystroke (#18833)
closes TryGhost/Product#4093
- added proper on blur handling to trigger autosave instead of each update to the caption text
2023-11-01 22:44:55 +00:00
Chris Raible
0c972d8276
Fixed EmailRenderer stripping inline width tags from images (#18587)
no issue

- product card outputs the original width/height of the image in emails
which results in overflown images in Outlook
- Combined with https://github.com/TryGhost/Koenig/pull/983/files, this
change fixes rendering for product card images in Outlook

---------

Co-authored-by: Sodbileg Gansukh <sodbileg.gansukh@gmail.com>
2023-11-01 15:05:39 -07:00
Chris Raible
fb34e285fc
Removed assets/ from sources in admin sourcemaps (#18832)
no issue

- Follow up to https://github.com/TryGhost/Ghost/pull/18825
- Adding the sourceRoot key didn't seem to work, so I'm just removing
the `assets/` prefix from all the sources to hopefully correct the issue
2023-11-01 22:02:56 +00:00
Chris Raible
4ae8fc91fa
Updated AJAX error context sent to Sentry from admin (#18831)
no issues

- Added isAjaxError tag to all errors sent from admin with a true/false
value
- Removed all Ajax context and tags if the error is not an Ajax error
- Updated names of Ajax tags to use camelcase instead of dot notation
2023-11-01 14:48:23 -07:00
Kevin Ansfield
75672a902b
Enabled emoji picker in feature image caption (#18824)
closes https://github.com/TryGhost/Koenig/pull/1038

- updated `<KoenigLexicalEditorInput>` to load `<EmojiPickerPlugin>` and compose it into the editor unless used with `<KoenigLexicalEditorInput @emojiPicker={{false}} />`
- bumped Koenig packages so `EmojiPickerPlugin` is available to import from `koenig-lexical`
2023-11-01 21:22:56 +00:00
Steve Larson
8b57bf7efc
Bumped lexical editor packages (#18828)
no refs
2023-11-01 21:05:44 +00:00
Chris Raible
c91527efc8
Improved Sentry logging for AJAX errors in admin (#18829)
no issue

- Currently AJAX errors that surface in Admin get logged to Sentry with
super generic messages like "Error"
- This commit adds more context to the information that's sent to sentry
and should make it easier to identify the error at a glance
2023-11-01 14:03:32 -07:00
Chris Raible
9a8c703e34
Improved error handling for SQL errors (#18797)
refs TryGhost/Product#4083

- In the vast majority of cases, we shouldn't have SQL errors in our
code. Due to some limitations with validating e.g. nql filters passed to
the API, sometimes we don't catch these errors and they bubble up to the
user.
- In these rare cases, Ghost was returning the raw SQL error from mysql
which is not very user friendly and also exposes information about the
database, which generally is not a good practice.
- To make things worse, Sentry was treating every instance of these
errors as a unique issue, even when it was exactly the same query
failing over and over.
- This change improves the error message returned from the API, and also
makes sure that Sentry will group all these errors together, so we can
easily see how many times they are happening and where.
- It also adds more specific context to the event that is sent to
Sentry, including the mysql error number, code, and the SQL query
itself.
2023-11-01 13:47:41 -07:00
Chris Raible
a382cd8a91
Added sourceRoot key to admin sourcemaps (#18825)
no issue

- The sourcemaps generated for the admin app use relative links to the
source code files e.g. `assets/ghost.js`
- Since the sourcemaps themselves are hosted at `/assets` already, this
was leading to issues with sourcemaps in Sentry and in the browser
looking for the sources at `/assets/assets/ghost.js`
- This commit adds a `sourceRoot` key to the sourcemaps, which should
allow Sentry and the Browser to find the source code files at
`../assets/ghost.js` instead of `assets/ghost.js`
- We may need to iterate on this — not 100% sure if this is the best way
to do this without trying it in staging. If the `../` doesn't work in
all environments, we can try including the CDN url directly
2023-11-01 18:42:09 +00:00
Ghost CI
2c9d42f599 Merged v5.71.1 into main 2023-11-01 16:53:42 +00:00
Ghost CI
a56c39fbd1 v5.71.1 2023-11-01 16:53:39 +00:00
Kevin Ansfield
281fbc973e
🐛 Fixed mobiledoc and lexical content being available via Content API
refs https://github.com/TryGhost/Product/issues/4088

The Content API should not expose the lexical/mobiledoc source content because it's not membership-gated and although not used at the present time may in future contain additional internal metadata. We were handling this for the more-typical `?formats` param but it was still possible to access this data using the `?fields` param.

- updated post mapper used in our API output serializers to strip the `mobiledoc` and `lexical` fields ready for API output
- credits to Prathap Puthran for reporting
2023-11-01 16:10:41 +01:00
Sanne de Vries
a38461a00d
Fixed email paywall styling bug on mobile (#18818)
Closes https://github.com/TryGhost/Product/issues/4089
2023-11-01 14:13:51 +00:00
Kevin Ansfield
541a1fae5e
Fixed potential unexpected unpublish and infinite loop when leaving editor (#18816)
closes https://github.com/TryGhost/Product/issues/4059

- modified `saveTask` so when it has the `leavingEditor` option it doesn't attempt to set a new post status
- save when leaving the editor is never a publish/unpublish-related event, rather it's a convenience autosave and a forced revision creation so modifying the post status should never happen for those saves
- updated the `willTransition` handling to avoid repeated saves
- sets a property on the controller whenever we attempt a save+transition retry on leaving the editor then skips any further attempted saves on transitions
- although it would be preferable we can't use `try/catch` on these saves because our save task always catches and doesn't re-throw, adjusting that would be a much larger change than we want to make for this fix
2023-11-01 11:59:29 +00:00
Kevin Ansfield
b9c2989325
Cleaned up unused Post.statusScratch property (#18817)
no issue

- remnant from earlier code that is no longer needed/used
2023-11-01 11:53:29 +00:00
renovate[bot]
62ecb1ebd8 Update sentry-javascript monorepo to v7.77.0 2023-11-01 09:14:38 +01:00
renovate[bot]
2675f36f5e Update dependency broccoli-terser-sourcemap to v4.1.1 2023-11-01 07:59:05 +01:00
renovate[bot]
057d9599f5 Update TryGhost packages 2023-10-31 20:54:17 +01:00
kazanec18
47358b2357
Updated Russian translations (#18768) 2023-10-31 20:41:16 +01:00
Alexey Pargachev
e9bd383797
Updated Russian translations (#18447) 2023-10-31 16:46:03 +01:00
Simon Backx
d1b8551715
Swapped List-Unsubscribe order to prioritise https over mailto (#18808)
refs https://github.com/TryGhost/Product/issues/4053
2023-10-31 15:39:35 +00:00
Runske
4d727c9667
Updated Norwegian translations (#18744)
Co-authored-by: Daniel Lockyer <daniellockyer@fastmail.com>
2023-10-31 15:35:52 +00:00
Susheel Thapa
2e5fdffe32
Fixed typos (#18648)
Co-authored-by: Daniel Lockyer <daniellockyer@fastmail.com>
2023-10-31 15:21:44 +00:00
Simon Backx
97d0cddb50
Added indexes to members_created_events and members_subscription_created_events (#18805)
fixes https://github.com/TryGhost/Product/issues/4085

Increases the performance for the post analytics export by adding new
indexes. These indexes are used when counting the amount of (paid)
subscribers that were attributed to a given post. With the indexes, the
time required to export 700 posts with 300k members decreases from 40s
to 0.6s.

Tests show that adding these indexes should be very fast (< 1 s) if the
tables contain up to 300k rows.
2023-10-31 15:11:24 +00:00
Hannah Wolfe
0049b74a2d Added well-known assetlinks.json to allowed files
refs: https://github.com/google/digitalassetlinks/blob/master/well-known/specification.md
refs: https://github.com/google/digitalassetlinks/blob/master/well-known/details.md

- allow themes to include assetlinks.json files to comply with the Google digital asset links spec
2023-10-31 15:10:58 +00:00
EchoBilisim
b8069c60e9
Updated Turkish translation (#18732) 2023-10-31 15:10:39 +01:00
renovate[bot]
e8fec41822 Update dependency terser to v5.24.0 2023-10-31 14:02:31 +00:00
Daiki K
3f97fbc58a
Updated Japanese translation (#18716) 2023-10-31 14:59:14 +01:00
Joe Grigg
520d8df7a1 Added extra redis cache adapter configuration options
no refs

- This enables supplying a username to connect to redis with when connection to an individual node rather than a cluster.
- It also allows for extra options to be given to the ioredis store used in the background.
2023-10-31 13:58:22 +00:00
Michael Barrett
bb17ef2b02
Handled unhandled ember ajax errors (#18803)
no refs

Handled unhandled ember ajax errors (i.e `406`) so that a friendly error
message can be displayed to the user.
2023-10-31 13:56:34 +00:00
renovate[bot]
df8eeb2249 Update Types packages 2023-10-31 14:40:32 +01:00
Gary Lai
43c27d514c
Updated Traditional Chinese translations (#18798)
Co-authored-by: Gary Lai <garylai@amazon.com>
2023-10-31 14:29:08 +01:00
Peter Gonda
a2eb8e960a
Added Slovak translations (#18401) 2023-10-31 14:23:18 +01:00
Simon Backx
398b98b5f6
Cleaned up some email helpers (#18806)
no issue
2023-10-31 12:25:05 +00:00
Michael Barrett
6074b1d04f
Fixed admin-x not reporting to Sentry (#18774)
no refs
2023-10-31 09:12:54 +00:00
Jono M
3711260f9d
Added feature flag for AdminX Offers (#18801)
closes https://github.com/TryGhost/Product/issues/4084

---

### <samp>🤖 Generated by Copilot at 9380e1f</samp>

This pull request adds a new UI for creating and managing offers for
members in the admin settings, which is controlled by an alpha feature
flag. It introduces new modal components for the offers UI, a new
sidebar item, new routes, and a new setting group. It also updates the
`labs.js` file to include the `adminXOffers` flag.
2023-10-31 08:41:35 +00:00
renovate[bot]
ab57071901 Update dependency newrelic to v11.5.0 2023-10-31 07:59:49 +00:00
Michael Barrett
766374a44a
Prevented handled errors from being sent to Sentry (#18790)
no refs

As part of the reduce Sentry noise work we decided to temporarily
prevent the submission of "handled" errors to Sentry. This is a
temporary measure to reduce noise while we work on improving the quality
of the error reporting / alerting
2023-10-30 16:42:06 +00:00
renovate[bot]
0916d2c4bc Update dependency terser to v5.23.0 2023-10-30 16:26:36 +00:00
Sanne de Vries
9ea1a508df
Hid emojipicker shortcut behind feature flag (#18793)
Refs https://github.com/TryGhost/Product/issues/4081
2023-10-30 12:13:32 +00:00
Sanne de Vries
224ec5146b
Added emoji shortcut to post settings menu (#18791)
Closes https://github.com/TryGhost/Product/issues/4081
2023-10-30 11:49:55 +00:00
Ɗʊƴ
2c72c93331
Updated Vietnamese translations (#18186)
Co-authored-by: Daniel Lockyer <hi@daniellockyer.com>
2023-10-30 09:19:53 +01:00
Ɗʊƴ
5dc5be3aed
Updated Vietnamese translations (#18786)
- Add "{{amount}} more"
2023-10-30 08:13:08 +01:00
Ghost CI
7cda0b2250 v5.71.0 2023-10-27 15:03:15 +00:00
Ghost CI
90660d0516 🎨 Updated Source to v1.1.0 2023-10-27 15:03:15 +00:00
Chris Raible
32d1cd525d
Added route and path tags to Sentry admin events (#18781)
no issue

- All events sent from Admin should now be tagged with the current route
(e.g. `lexical-editor.edit`) and the path (e.g.
`editor/post/65388d98734d6ecc7bbafb87?test`)
- This will allow us to filter events by route and path in Sentry and
improve our alerting logic
2023-10-26 23:38:11 -07:00
Chris Raible
d2ca5daf9d
Enabled Sentry Debug integration for Admin when in development mode (#18780)
no issue

- This change enables the Debug integration in Sentry when the app is
running in development mode (and Sentry is configured with a valid DSN).
- Whenever an event is sent to Sentry, the event & hint are passed to
the beforeSend() function will be logged to the browser console so you
can quickly see a) when events are sent to Sentry and b) exactly what
data & tags are sent with integration
2023-10-26 20:44:39 -07:00
Chris Raible
3a88027611
Removed RewriteFrames integration from Sentry (#18779)
no issue

- Unfortunately the RewriteFrames plugin was not successful in fixing
the duplicated `/assets/assets` in the Sentry stacktraces for admin
- This commit removes the RewriteFrames plugin and reverts the changes
so there will at least be some kind of source code reaching Sentry
2023-10-26 22:04:48 +00:00
Chris Raible
42ac31a270
Fixed duplicate /assets in Sentry stacktrace filenames (#18777)
no issue

- For whatever reason, our Sentry stack traces are adding an extra
`/assets` to the filenames in stacktraces from admin
- Attempted to fix this
[here](3e9ee16ffb)
but it didn't work because at this point the duplication hasn't occurred
yet
- This change strips the `/assets` segment from the filenames, so when
Sentry adds it back in, it doesn't duplicate anything. Would be good to
get to the bottom of why this is happening, but this should hopefully
improve our stacktraces in Sentry in the meantime.
2023-10-26 13:45:11 -07:00
Chris Raible
f82a3e0245
Added console logs to debug Sentry stack traces in Admin (#18776)
no issue

- Our stack traces in Sentry are pointing to the wrong location for source code files. We attempted to fix this [here](https://github.com/TryGhost/Ghost/pull/18773) but this didn't work as expected in staging for some reason
- This commit just adds a few console logs to help with debugging in staging so we can figure out what's going wrong
2023-10-26 12:11:45 -07:00
Daniel Lockyer
3e9ee16ffb Fixed duplicate assets/ in Sentry stacktrace filenames
fixes https://github.com/TryGhost/DevOps/issues/94

- we've seen in production that some filepaths contain a duplicate
  assets folder, but we're not sure why
- instead of spending too much time trying to figure that out, we can
  just fix that in preprocessing by using the RewriteFrames integration
  in Sentry
- this should remove the duplicate folder from the stacktrace frame, if it exists
2023-10-26 11:55:22 +02:00
Alexandre "Lekler" Rodrigues
7dc2744837
Updated Brazilian Portuguese translations (#18764) 2023-10-26 11:53:48 +02:00
renovate[bot]
7af870c022 Update dependency newrelic to v11.4.0 2023-10-25 22:32:28 +00:00
Sag
6db0deb58e
Fixed missing favicon layout in the Recommendations template (#18766)
refs https://github.com/TryGhost/Product/issues/3940
- when a favicon url is null, don't render the img element at all
- when a favicon fails to load, hide the img element from the DOM
2023-10-25 19:13:37 +00:00
Kevin Ansfield
75302ee184
Fixed emoji picker labs flag not being passed through to editor (#18763)
no issue

- fixed `editor`/`lexical` typo in the feature flag name inside Admin
2023-10-25 16:07:24 +00:00
Daniel Lockyer
96b7ba4755 Fixed minor Node deprecation warning
- resolves `DeprecationWarning: In future versions of Node.js, fs.rmdir(path, { recursive: true }) will be removed. Use fs.rm(path, { recursive: true }) instead` in tests
2023-10-25 18:06:44 +02:00
Daniel Lockyer
32bdbf7efd 🔥 Dropped support for Node 16
refs https://github.com/TryGhost/DevOps/issues/75

- this drops support for Node 16 as it has gone past the EOL date
2023-10-25 17:50:56 +02:00
Marcelo Velasquez
a01b50ce12
Updated Spanish translations (#18189)
Co-authored-by: Daniel Lockyer <hi@daniellockyer.com>
2023-10-25 16:37:00 +02:00
Simon Backx
6cc19e1851
Added List-Unsubscribe https endpoint (#18758)
refs TryGhost/Product#4052
2023-10-25 16:16:31 +02:00
Simon Backx
9cad62d826
Fixed loading Portal when Stripe is enabled, members disabled and don… (#18757)
…ations flag disabled

refs https://ghost.slack.com/archives/C02G9E68C/p1698230240376929
2023-10-25 13:18:50 +02:00
Sanne de Vries
8aaa853f2c
Fixed feature image caption color in dark mode (#18756)
No ref
2023-10-25 10:19:16 +00:00
Daniel Lockyer
8726076875 Updated translations
- syncs translations with keys in other packages
2023-10-25 12:06:00 +02:00
Daniel Lockyer
389ced9c4f Reverted i18next-parser to v8.8.0
refs https://github.com/i18next/i18next-parser/issues/939

- a bug in the parser means that files outside of the package are not
  being parsed
2023-10-25 12:06:00 +02:00
Daniel Lockyer
c5c6f84c7d Added CI check to ensure i18n translations are in sync
fixes https://github.com/TryGhost/DevOps/issues/91

- this adds a CI job that will run i18n tests if any of the packages
  that use it have changed
- this helps prevent translations from going out of sync
2023-10-25 12:06:00 +02:00
Simon Backx
a20e269a0b
Added chicagomag.com to ref blocklist (#18750) 2023-10-25 08:16:27 +00:00
Chris Raible
97bcaf1183
Fixed reporting a user's role to Sentry from Admin (#18747)
refs TryGhost/Product#4064

- In Sentry we were seeing the error "Discarded unknown attribute 'user.role'" for most events sent from admin
- This small change removes this error in Sentry and restores the user.role tag for error events in admin
2023-10-24 20:32:05 -07:00
Sag
1b82efe5d2
Added Recommendations feature (#18743)
refs https://github.com/TryGhost/Product/issues/3744


Co-authored-by: Simon Backx <simon@ghost.org>
Co-authored-by: Djordje Vlaisavljevic <dzvlais@gmail.com>
2023-10-24 11:00:11 -03:00
Simon Backx
d0d0453833
Added mailto to list-unsubscribe test header (#18742)
refs https://github.com/TryGhost/Product/issues/4053

Testing changes
2023-10-24 13:34:52 +00:00
Kevin Ansfield
125b09324c
Added editorEmojiPicker labs flag (#18739)
closes https://github.com/TryGhost/Product/issues/4056

- adds new flag with UI and passes it through to the editor so it can conditionally enable the relevant plugins
2023-10-24 12:44:29 +00:00
Simon Backx
c8f71e8504
Added list-unsubscribe feature flag and header (#18736)
refs https://github.com/TryGhost/Product/issues/4053

This adds the feature flag. If enabled, the list-unsubscribe header
should be set. The value currently is only for testing purposes and
probably won't work yet.
2023-10-24 10:35:47 +00:00
Bobvaneck
88d42f204c
Updated ghost.json i18n NL lang (#18735)
Quick typo fix line 4, "aanmedling" -> "aanmelding"

Got some code for us? Awesome 🎊!

Please include a description of your change & check your PR against this
list, thanks!

- [ ] There's a clear use-case for this code change, explained below
- [ ] Commit message has a short title & references relevant issues
- [ ] The build will pass (run `yarn test:all` and `yarn lint`)

We appreciate your contribution!

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 280cadb</samp>

Fixed a typo in the Dutch translation of a sign up message in
`ghost/i18n/locales/nl/ghost.json`.
2023-10-24 11:08:57 +01:00
Ghost CI
d20ad046db Merged v5.70.2 into main 2023-10-24 08:04:00 +00:00
Ghost CI
27f3f86d23 v5.70.2 2023-10-24 08:03:58 +00:00
renovate[bot]
c543193d86 Update dependency ember-svg-jar to v2.4.7 2023-10-24 07:57:01 +02:00
renovate[bot]
effafd4ab1 Update dependency human-number to v2.0.4 2023-10-23 19:23:55 +00:00
renovate[bot]
09f866227d Update dependency terser to v5.22.0 2023-10-23 18:32:43 +00:00
renovate[bot]
da7271d261 Update dependency newrelic to v11.3.0 2023-10-23 18:29:32 +00:00
Kevin Ansfield
9b1f79f601
Cleaned up lexicalEditor labs flag, switched Post model to lexical-by-default (#18607)
no issue

- flag is no longer used in Admin so we can clean it up in Core too
- updated Post model to set blank document to `lexical` field rather than `mobiledoc` as a default value
- switched over to returning `mobiledoc,lexical` as default formats in Admin API
2023-10-23 17:51:34 +01:00
renovate[bot]
aabeb64a38 Update dependency html-validate to v8.7.0 2023-10-23 11:14:51 +02:00
renovate[bot]
30f168b86b Update dependency nconf to v0.12.1 2023-10-23 11:14:45 +02:00
renovate[bot]
24849d8787
🐛 Fixed indent behaviour for paragraphs (#18724)
no issue

- updates `@tryghost/koenig-lexical` with indent improvements
  - prevents indents on paragraphs/headings etc which are not supported when rendering for front-end display
  - improves indent behaviour for lists so <kbd>Tab</kbd> can be pressed anywhere in a list item to indent rather than only at the beginning of the list
2023-10-23 08:43:25 +00:00
Ghost CI
ed885bd6b3 v5.70.1 2023-10-20 17:48:28 +00:00
renovate[bot]
975b122886
🐛 Fixed errors from using <br> in some situations when creating posts with ?source=html (#18714)
closes https://github.com/TryGhost/Product/issues/4037

- bumps `@tryghost/kg-html-to-lexical` that includes better node normalization to handle `<br>` in top-level text nodes and after a nested block-level element
  - also includes fix for button hrefs having `about:blank` prefixed to hash URLs
2023-10-20 17:09:55 +00:00
Ghost CI
ea42122a1f v5.70.0 2023-10-20 15:03:26 +00:00
Ghost CI
6611f76723 🎨 Updated Source to v1.0.2 2023-10-20 15:03:26 +00:00
Ghost CI
16c5e6e2f9 Merged v5.69.4 into main 2023-10-20 11:41:03 +00:00
Ghost CI
9e24ade17d v5.69.4 2023-10-20 11:41:01 +00:00
Michael Barrett
b4d2dd0282
Handled ServerError to show a custom error message in the admin (#18709)
refs https://github.com/TryGhost/Product/issues/4040

Handled `ServerError` to show a custom error message in the admin when
an unhandled server error occurs (i.e 504). Supersedes
https://github.com/TryGhost/Ghost/pull/18703
2023-10-20 12:02:51 +01:00
Princi Vershwal
3324009381
Added fix for browser test (#18710) 2023-10-20 16:06:50 +05:30
Jono M
caae0edf19
Fixed and restored new AdminX E2E tests (#18606)
refs https://github.com/TryGhost/Product/issues/3831

---

### <samp>🤖 Generated by Copilot at 539c2d3</samp>

This pull request updates and adds some test cases for the date picker
and newsletter features in the Ghost admin panel. It introduces a test
helper function for the date picker in `editor-test.js`, and removes a
redundant test case from `publish-flow-test.js`. It also adds two new
test cases in `publishing.spec.js` using the Playwright framework to
verify the timezone and recipient settings for publishing posts.
2023-10-20 10:00:35 +01:00
Michael Barrett
88e49b4f0e
Added 504 error handling in the admin (#18703)
refs https://github.com/TryGhost/Product/issues/4040

Added error handling for 504 errors to improve the message shown to the
user when a 504 occurs
2023-10-20 08:53:54 +01:00
Michael Barrett
094ea1d2b0
🐛 Fixed plan upgrade not cancelling trial (#18699)
closes https://github.com/TryGhost/Product/issues/4036

Fixed a bug where a member on a trial plan would not have their trial
cancelled when they upgraded to a paid plan
2023-10-20 08:52:08 +01:00
renovate[bot]
93382df314
🐛 Fixed various editor issues (#18645)
closes https://github.com/TryGhost/Ghost/issues/18448

- improved slash menu positioning when opening at the bottom of a post
- fixed backspace sometimes deleting a preceding card (e.g. backspace at end of link inside a paragraph preceded by a card)
- fixed `?source=html` issues
  - images not rendering in front-end output after import
  - images wrapped in links losing their link after import
- fixed inline styles in HTML card content not displaying in the editor
- fixed broken help link in the email card
2023-10-19 19:17:23 +01:00
Paul Davis
489fae98eb
Improve external media inliner URL handling (#18428) 2023-10-19 11:58:41 +01:00
Chris Raible
5a5a756415
Updated theme fixtures for casper and source (#18677)
no issue

- Casper and Source theme files were out of date — this commit updates the theme fixtures, and fixes up a few tests to pass with the updated themes
2023-10-18 14:51:35 -07:00
Siniša Perović
5b8743dd07
Added missing and updated some strings for HR lang (#18024)
Now complete (comments.json, ghost.json, portal.json, and
signup-form.json) Croatian language translation.

Co-authored-by: Daniel Lockyer <hi@daniellockyer.com>
Co-authored-by: Ryan Feigenbaum <48868107+royalfig@users.noreply.github.com>
2023-10-18 13:56:16 -04:00
Sag
5c43945b94
Revert "Added Recommendations feature (#18664)" (#18694)
refs https://github.com/TryGhost/Product/issues/3744

- this reverts GA commit 4e338114de, as
launch has been postponed by a week
2023-10-18 17:03:35 +00:00
renovate[bot]
2d4959d972 Update dependency i18next to v23.6.0 2023-10-18 16:45:25 +00:00
Ghost CI
099db95278 Merged v5.69.3 into main 2023-10-18 09:42:15 +00:00
Ghost CI
cf06037b81 v5.69.3 2023-10-18 09:42:13 +00:00
Steve Larson
a521c23cd3
🐛 Prevented subsequent lexical conversion wiping out content (#18672)
closes TryGhost/Product#4032
- the api flag ?convert_to_lexical converts a mobiledoc string to
lexical
- if run on a post/page with lexical content, would null it out
2023-10-17 20:38:51 +00:00
Sag
9ba1d47b04
Updated copy in the Recommendation email notification (#18671)
closes https://github.com/TryGhost/Product/issues/4031
2023-10-17 17:03:24 +00:00
Sag
22618aad65
Fixed broken link in Recommendations email notification (#18666)
no issue

- paths in the new settings are not using /settings-x/... anymore
2023-10-17 10:44:28 -03:00
Daniel Lockyer
6c2d70f26a Optimized fetching settings from cache adapter
- this optimizes the number of `get` calls we need to do to the adapter
  for settings cache
- for example, this prevents ~187 calls to the adapter during boot
- right now we use the in-memory adapter for settings, so there's probably
  not much benefit, but if we ever switch to the Redis adapter, this will
  help prevent a lot of extra Redis calls
2023-10-17 15:10:02 +02:00
Sag
4e338114de
Added Recommendations feature (#18664)
refs https://github.com/TryGhost/Product/issues/3744

Co-authored-by: Simon Backx <simon@ghost.org>
Co-authored-by: Djordje Vlaisavljevic <dzvlais@gmail.com>
2023-10-17 13:04:35 +00:00
Sodbileg Gansukh
73aa6bc22e Added back the global box-sizing rule 2023-10-17 17:36:44 +08:00
Sam Lord
7f67e98e28 Memoized the getStripeAccountId function
no issue

Some flaky tests found, and it seems as though they're being caused by an invalid Stripe account id.

It's possible that by re-using the worker after a test which calls `setupStripe` could cause some Stripe functionality to not work.
2023-10-16 22:14:10 +01:00
Djordje Vlaisavljevic
08f81dbf90
Updated recommendations design (#18614)
refs https://github.com/TryGhost/Product/issues/4024, https://github.com/TryGhost/Product/issues/3938

- Improved email notification template
- Added `for you` next to the click/subscribe stats

---------

Co-authored-by: Sag <guptazy@gmail.com>
2023-10-16 18:04:15 +01:00
Ghost CI
af29aef5c5 Merged v5.69.2 into main 2023-10-16 16:16:28 +00:00
Ghost CI
75aadb1a92 v5.69.2 2023-10-16 16:16:26 +00:00
Daniel Lockyer
3a564237a5 Temporarily increased timeout for saving Offer in tests
- if Stripe is slow, this might take longer than we expect to finish
- this helps prevent flaky tests in CI
2023-10-16 17:37:42 +02:00
Kevin Ansfield
fac4d774a0
🐛 Fixed styles in HTML card content interfering with editor display (#18647)
closes https://github.com/TryGhost/Product/issues/4027

- bumps `@tryghost/koenig-lexical` to version that includes removal of `<style>` elements and `style` attributes when rendering HTML cards inside the editor
2023-10-16 16:35:55 +01:00
Kevin Ansfield
fc1728c695
🐛 Fixed potential invalid nesting of elements within heading nodes in editor (#18646)
refs https://github.com/TryGhost/Product/issues/3538

- bumps `@tryghost/koenig-lexical` with version that extends our de-nesting transforms to include non-Paragraph element nodes
2023-10-16 16:35:44 +01:00
Kevin Ansfield
f1236a07b4
🐛 Fixed card following paragraph being deleted when pressing Delete at beginning of some formatted text
closes https://github.com/TryGhost/Ghost/issues/18632

- bumps `@tryghost/koenig-lexical` to version containing the delete behaviour fix
2023-10-16 16:34:29 +01:00
Sam Lord
ccbcba0969
Switched to a shared page for each playwright worker
refs: https://github.com/TryGhost/DevOps/issues/78

This speeds up the tests by another 30 seconds on my local machine, and
hopefully takes some time off in CI too
2023-10-16 15:32:13 +00:00
Jae Li
0dbfafede0
Updated simplified Chinese translations (#18552) 2023-10-16 15:14:18 +00:00
Kevin Ansfield
70c2d98fba
🐛 Fixed styles in HTML card content interfering with editor display (#18647)
closes https://github.com/TryGhost/Product/issues/4027

- bumps `@tryghost/koenig-lexical` to version that includes removal of `<style>` elements and `style` attributes when rendering HTML cards inside the editor
2023-10-16 13:52:58 +00:00
Kevin Ansfield
4da6912d4b
🐛 Fixed potential invalid nesting of elements within heading nodes in editor (#18646)
refs https://github.com/TryGhost/Product/issues/3538

- bumps `@tryghost/koenig-lexical` with version that extends our de-nesting transforms to include non-Paragraph element nodes
2023-10-16 13:27:16 +00:00
Kevin Ansfield
8e422163b0
🐛 Fixed card following paragraph being deleted when pressing Delete at beginning of some formatted text (#18644)
closes https://github.com/TryGhost/Ghost/issues/18632

- bumps `@tryghost/koenig-lexical` to version containing the delete behaviour fix
2023-10-16 12:18:23 +00:00
Emilien Bidet
57fe5e7ca6
Added DOCTYPE HTML tag to admin-auth iframe (#18634) 2023-10-16 13:51:10 +02:00
joe-blocher
f303eee8a4
Fixed private mode cookie for local development (#17938)
fixes #17514

- good explanation in https://github.com/TryGhost/Ghost/pull/17938#discussion_r1328157348
- fixes setting the private mode cookie in stricter browsers for local development
2023-10-16 11:09:08 +02:00
syb343
42973397a4
Updated Korean translations (#18625)
no issue

- Updated Korean translations for the comments app.

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 8eefb72</samp>

This change adds Korean translations for the comments feature of Ghost
in the file `ghost/i18n/locales/ko/comments.json`. This enables Korean
users and readers to interact with Ghost-powered sites using their
native language.
2023-10-16 16:01:07 +07:00
renovate[bot]
a26accd123 Update dependency i18next-parser to v8.9.0 2023-10-16 08:02:41 +02:00
renovate[bot]
6af69a8bcd Update dependency html-validate to v8.6.0 2023-10-16 08:02:03 +02:00
renovate[bot]
29ca414d33 Update dependency mysql2 to v3.6.2 2023-10-16 01:09:26 +00:00
renovate[bot]
68378e84c1 Update dependency webpack to v5.89.0 2023-10-16 01:06:09 +00:00
renovate[bot]
da25e86f41 Update dependency jose to v4.15.4 2023-10-16 01:05:29 +00:00
Ghost CI
d1e03f42fe v5.69.1 2023-10-13 15:03:10 +00:00
renovate[bot]
39c3337113 Update dependency lib0 to v0.2.87 2023-10-13 15:51:32 +02:00
Kevin Ansfield
b6216586c4
Fixed "Cannot read properties of null (reading 'off')" noise in tests (#18610)
no issue

- the lexical multiplayer experiment was causing noise in e2e tests because it tried to use `ghostServer.httpServer` which doesn't exist
2023-10-13 11:46:24 +00:00
Sam Lord
4815aa6e7f
Parallelise browser tests
refs: https://github.com/TryGhost/DevOps/issues/78

Re-introduce parallel browser tests

These were adding in a previous PR, but the difference between local
running tests and using CI introduced failures.

Added additional fixes to ensure the Stripe API key is used in the CLI when running in CI.
2023-10-13 11:42:39 +00:00
Jono M
b75a6d0e7f
Revert "Updated old admin acceptance tests to E2E with AdminX" (#18604)
Reverts TryGhost/Ghost#18599

There seems to be a timezone issue with one of the tests
2023-10-13 10:16:28 +01:00
Kevin Ansfield
b00388eb34
Cleaned up old re-auth code in editor route/template (#18605)
no issue

- brings the lexical editor in line with the previous editor
2023-10-13 09:13:52 +00:00
Bastien Perez
c0a9c435df
Added French translations for comments (#18501) 2023-10-13 07:53:37 +00:00
Daniel Lockyer
85d41d0562 Aligned dependencies with resolution values
- this commit brings all dependencies up-to-date with the version set as
  a resolution
2023-10-13 08:37:36 +02:00
renovate[bot]
64fd510711 Update babel monorepo 2023-10-13 08:12:20 +02:00
Uvindu Rajapakshe
8fe1867b1c
Updated Sinhalese translations (#18398) 2023-10-13 07:51:16 +02:00
Uvindu Rajapakshe
5a70447b5f Updated sinhala translations 2023-10-13 07:49:44 +02:00
Ɗʊƴ
8ef98a693a
Updated Vietnamese translations (#18182)
For smoother translation.
2023-10-13 07:47:53 +02:00