Commit Graph

632 Commits

Author SHA1 Message Date
Fabien O'Carroll
010d787046 🐛 Fixed responsive images for gifs & svgs (#10315)
closes #10301

* Redirected to original image for gifs & svgs

* Created canTransformFileExtension method

* Updated image middlewares to use canTransformFileExtension
2020-03-25 14:48:41 +00:00
Fabien O'Carroll
b4654b19d5 Cleaned up image manipulator (#10282)
no-issue

* Added InternalServerError to resizeImage

* Added a redirect to original image if sharp is missing

* Improved naming - safeMethod -> method

* Updated process method to follow same sharp check pattern

* Refactor safety wrapper into makeSafe function

* Moved generic manipulation error to makeSafe function

* Refactored unsafeProcess to use unsafeResizeImage

* Removed CRAZY catch
2020-03-25 14:48:41 +00:00
Fabien O'Carroll
4078dd7959 Supported dynamic image resizing for LocalFileStorage(#10184)
refs #10181 

* Added initial handleImageSizes middleware

* Implemented saveRaw method on local file storage

* Wired up handleImageSizes middleware

* Implemented delete for LocalFileStorage

* Removed delete method from theme Storage class

* Deleted sizes directory when theme is activated

* Ensured that smaller images are not enlarged

* Renamed sizes -> size

* Exited middleware as early as possible

* Called getStorage as late as possible

* Updated image sizes middleware to handle dimension paths

* Revert "Deleted sizes directory when theme is activated"

This reverts commit 9204dfcc73a6a79d597dbf23651817bcbfc59991.

* Revert "Removed delete method from theme Storage class"

This reverts commit b45fdb405a05faeaf4bd87e977c4ac64ff96b057.

* Revert "Implemented delete for LocalFileStorage"

This reverts commit a587cd6bae45b68a293b2d5cfd9b7705a29e7bfa.

* Fixed typo

Co-Authored-By: allouis <fabien@allou.is>

* Redirected to original image if no image_sizes config

* Refactored redirection because rule of three

* Updated comments

* Added rubbish tests

* Added @TODO comment for handleImageSizes tests

* Added safeResizeImage method to image manipulator

* Used image manipulator lib in image_size middleware
2020-03-25 14:48:41 +00:00
Nazar Gargol
29991c6718 🐛 Fixed image optimisation for input image being smaller than optimized one
closes #10144

- When the input image is well optimized and has smaller byte size than the processed one it's still being used
- Bumped sharp version to have access to `size` property
2020-03-25 14:48:41 +00:00
Nazar Gargol
eb203de714 Added ability to resize and compress images on upload (#9837)
refs #4453

* On by default

* Added config to disable resizing

* Added basic image optimization processing

* Added dep: sharp (optional dep)

* Added resize middleware

* Take care of rotation based on EXIF information

* Removed all meta data from optimised image

* Added handling if sharp could not get installed

* Do not read ext twice - optimisation

* Do not call sharp if config is disabled

* Do not remove the original image which was uploaded (store 2 images)

* Support of `req.files` for internal logic

* Disabled cache to enable file removal on Windows
2020-03-25 14:48:41 +00:00
Hannah Wolfe
de9e5cecd4 Prepared new image-transform package
- Ready to accept code and history from TryGhost/Ghost
- This will be what's known as image.manipulator in Ghost
2020-03-25 12:12:17 +00:00
Hannah Wolfe
52e5db44bf Added missing lodash dependency
- this is required by the errors module
- it still works because it's in other packages, but should be declared
2020-03-25 10:34:56 +00:00
Hannah Wolfe
c9921a35cd Published new versions
- @tryghost/errors@0.1.0
2020-03-25 10:24:53 +00:00
Hannah Wolfe
dc879d127c Updated paths & tests to work in new pkg structure
- added export to index.js
 - fixed all paths to match the new structure
 - replaced should with testUtils
2020-03-25 10:24:33 +00:00
Rishabh Garg
9827594670 🏗Added host config limits for member emails (#11439)
no issue

Introduces host limits config for allowing email limits with members.
2020-03-25 10:24:33 +00:00
Kevin Ansfield
9fe54bb34e Added logging of slow {{#get}} helper uses (#10779)
no issue

- `{{#get}}` can slow down requests a lot if not used carefully, typically by using `limit="all"` or similar which can force a lot of data to be fetched and processed
- adds a warning log if we detect any `{{#get}}` helper call which takes longer than a certain threshold (default 200ms)
- allow log level and threshold to be configured via config to allow for different environments behaviours and requirements

New config options:
```
{
    "logging": {
        "slowHelper": {
            "level": "warn",
            "threshold": 200
        }
    }
}
```

Example output for `{{#get "tags" limit="all" order="name asc"}}` with a lot of tags:

```
[2019-06-07 10:35:52] WARN {{#get}} helper took 453ms to complete

{{#get}} helper took 453ms to complete

Error ID:
    062daed0-8910-11e9-8185-3b615ad8677d

Error Code:
    SLOW_GET_HELPER

Details:
    api:          v2.tagsPublic.browse
    apiOptions:
      order: name asc
      limit: all
    returnedRows: 1698
```
2020-03-25 10:24:33 +00:00
Nazar Gargol
1fcf3d0996 Removed unused GhostErrors
refs #10438
2020-03-25 10:24:33 +00:00
Anonymous
e3ba60ca05 ES6 migration: server/lib/common (#9779)
refs #9589
2020-03-25 10:24:33 +00:00
kirrg001
27ae1b5163 Removed old jshint/jscs rules
refs bcf5a1bc34

- leftovers
2020-03-25 10:24:33 +00:00
Katharina Irrgang
b4f398ec6a Tidy up unit test files (#9340)
refs #9178

- first iteration of tidying up the unit tests
- this is useful in the current stage, because if i move files in the server folder, i need a clean folder/file structure to detect which tests needs to move
- this is a simple cleanup to reflect the current server folder structure
2020-03-25 10:24:33 +00:00
kirrg001
46d392bc84 Moved errors,logging,i18n and events to lib/common
refs #9178
2020-03-25 10:24:33 +00:00
Hannah Wolfe
4ff036b1c3 Prepared new errors package
- Ready to accept code and history from TryGhost/Ghost
2020-03-25 10:24:33 +00:00
Hannah Wolfe
1c57c8d34a Published new versions
- @tryghost/pretty-cli@1.2.4
 - @tryghost/release-utils@0.4.2
 - @tryghost/vhost-middleware@1.0.2
 - @tryghost/zip@0.1.0
2020-03-20 20:20:56 +00:00
Hannah Wolfe
3b6021a34e Swap extract-zip for @tryghost/extract-zip
- our version has some bug fixes
2020-03-20 20:03:40 +00:00
Hannah Wolfe
35ff6d1462 Expose extract, promisify + test cleanup
- Expose extract-zip as a utility
- Wrap extract and zipFolder in promisify
- Cleanup tests slightly
2020-03-20 19:59:15 +00:00
Hannah Wolfe
099a93d4a4 Updated paths & tests to work in new pkg structure
- added export to index.js
- fixed all paths to match the new structure
- replaced should with testUtils
- moved code from describe block into before
2020-03-20 17:02:36 +00:00
Hannah Wolfe
43d0629346 Merged zip-folder files & history from TryGhost/Ghost 2020-03-20 16:29:37 +00:00
Hannah Wolfe
9fdeb7d654 Prepared new zip package
- Ready to accept code and history from TryGhost/Ghost
2020-03-20 16:21:52 +00:00
Hannah Wolfe
134e069c1b Remove External Apps
- Apps are marked as removed in 3.0, never officially launched and have been deprecated for at least 2 years.
- We've slowly removed bits that got in our way or were insecure over time meaning they mostly didn't work
- This cleans up the remainder of the logic
- The tables should be cleaned up in a future major
2020-03-20 10:40:22 +00:00
Hannah Wolfe
8ccf7fd172 Revert "Remove Apps"
This reverts commit 20507b5dd5.
2020-03-20 08:58:26 +00:00
Hannah Wolfe
20507b5dd5 Remove Apps
- Apps are marked as removed in 3.0, never officially launched and have been deprecated for at least 2 years.
- We've slowly removed bits that got in our way or were insecure over time meaning they mostly didn't work
- This cleans up the remainder of the logic
- The tables should be cleaned up in a future major
2020-03-19 19:06:17 +00:00
Renovate Bot
eaba1def62 Update dependency mocha to v7.1.1 2020-03-18 10:16:25 +00:00
Renovate Bot
2924a12c4d Update Test & linting packages 2020-03-10 17:10:43 +00:00
Daniel Lockyer
698261e294 Fixed lint issues
no issue
2020-03-10 17:07:36 +00:00
Daniel Lockyer
f80b5289b6 Added lock emoji to order list
no issue
2020-03-09 20:03:18 +00:00
Renovate Bot
968cc7f671 Update dependency chalk to v3 2020-03-09 13:38:32 +00:00
Renovate Bot
5ce0ff64a9 Update dependency ghost-ignition to v4 2020-03-09 13:37:55 +00:00
Daniel Lockyer
8c2d85825e Published new versions
- @tryghost/release-utils@0.4.1
2020-02-11 10:03:31 +00:00
Daniel Lockyer
f88cebc12c Fixed wrong usage of helper function
no issue
2020-02-11 10:01:39 +00:00
Daniel Lockyer
5fef535658 Published new versions
- @tryghost/pretty-cli@1.2.3
 - @tryghost/release-utils@0.4.0
 - @tryghost/vhost-middleware@1.0.1
2020-02-10 13:58:45 +00:00
Daniel Lockyer
620047169b Set a message if there are no emoji-prepended commits
no issue
2020-02-10 13:55:00 +00:00
Daniel Lockyer
45bd9ec37f Sorted the release changelog by emoji
no issue
2020-02-10 13:54:51 +00:00
John O'Nolan
3bd4d736d8 2020 2020-01-07 19:06:08 +00:00
Zlatan Vasović
0cb9685520 2020
refs 5e10faee8b
2020-01-06 10:51:18 +01:00
Renovate Bot
9b01975a7f Update Test & linting packages 2019-10-28 03:31:27 +00:00
Renovate Bot
a1c1a9e407 Pin dependency supertest to 4.0.2 2019-10-28 00:33:40 +00:00
Kevin Ansfield
495de734ab Published new versions
- @tryghost/pretty-cli@1.2.2
 - @tryghost/release-utils@0.3.3
 - @tryghost/vhost-middleware@1.0.0
2019-10-24 15:11:50 +01:00
Kevin Ansfield
a0b74b289a Added express 'trust proxy' support
no issue

- extracted from https://github.com/expressjs/vhost/pull/21
- uses `req.hostname` if it's available. `req.hostname` is set to the `x-forwarded-host` value when `'trust proxy'` setting is enabled in express
2019-10-24 15:11:08 +01:00
Kevin Ansfield
3e6a713658 Forked expressjs/vhost to vhost-middleware
no issue

Direct copy of current master from https://github.com/expressjs/vhost/ with automatic eslint fixes to match our styleguide.

Forked because we need a reverse proxy fix and the original module appears abandoned.
2019-10-24 14:53:06 +01:00
Fabien O'Carroll
01c0e4969b Merged v3 to master (#11256)
no-issue
2019-10-21 12:52:32 +07:00
Kevin Ansfield
523278b295 🐛 Fixed subdirectory handling and deduplication
no issue

Ghost's relative->absolute handling is a little strange when the rootUrl includes a subdirectory. Root-relative paths such as /content/image.jpg are actually treated as subdirectory-relative. This means that it's possible to migrate from a root config to a subdirectory config without migrating data in the database, _however_ that means that the database will now have a mix of path styles (/content/image.png and /subdir/content/image.png). To handle this when all root-relative paths are treated as subdir-relative we have to rely on subdirectory deduplication.

- updates tests to reflect correct subdirectory handling according to the above rules
- fixes missing subdirectories when root urls contain subdirectories but relative paths do not
- fixes subdirectory deduplication when the supplied url/path does not have a trailing slash but matches the root url's subdirectory
2019-10-02 12:33:34 +01:00
Naz Gargol
e1ec5aa405 🔥 Removed V1 code/references in frontend resources/routing layer (#11087)
no issue

- Removed v1 'author' leftover in include statement for preview controller
- Removed v1 'author' leftover in include statement for preview controller
- Removed v1 'author' leftover in include statement in entry lookup routing helper
- Migrated related test to use v2 API controller
- Removed v0.1 routing confif
- Removed v0.1 url config
- Fixed tests that had to do with url's in resources after removing v0.1 resources from URL cache
- Removed v1 'author' leftover in include statement in static routing helper
- Modified the test to use v2 API
- Removed v1 specific condition with 'page' in context helper
- Fixed dynamic routing spec after theme switch to v2. All tested users have to have at least one published post to be shown as an author
- Fixed URL Service spec to use theme engine v2
2019-09-10 11:41:42 +02:00
Kevin Ansfield
86343f028b Refactored url-utils (#141)
no issue

- extracted most standalone util functions into separate files+tests
- switched the main `UrlUtils` function into a class (we had mixed uses of the returned object previously as both `urlUtils()` and `new UrlUtils()` - the class makes it obvious that the `new` keyword is required)
- removed some unnecessary use of lodash and switched to using `URL` in place of `url` so that the package can have parity across node+browser without needing an additional package bundled in
2019-08-12 08:57:13 +01:00
Sumedh Nimkarde
3e7a15b9ee 🐛 Ignored node_modules dir when archiving (#10969)
fixes #10929
2019-08-06 16:17:41 +08:00
Aileen Nowak
14e5ae93b3 Updated docs api links to be version-less 2019-07-25 15:17:23 +08:00