Commit Graph

519 Commits

Author SHA1 Message Date
Daniel Lockyer
2ef0b76371 Pinned all dependencies
no issue
2020-04-22 12:21:42 +01:00
Renovate Bot
5be8b5714c Pin dependencies 2020-04-22 12:15:08 +01:00
Fabien O'Carroll
36a201697f Published new versions
- @tryghost/moleculer-service-from-class@0.1.2
2020-04-17 18:10:05 +02:00
Fabien O'Carroll
74bd32a572 Added debug logging to createServiceProxy
no-issue
2020-04-17 18:07:30 +02:00
Fabien O'Carroll
c8417f8ee8 Published new versions
- @tryghost/moleculer-service-from-class@0.1.1
2020-04-16 15:58:47 +02:00
Fabien O'Carroll
299be9cc2e Updated logs to use debug rather than info
no-issue

This reduces noise in moleculer logs
2020-04-16 15:57:55 +02:00
Fabien O'Carroll
2802e1eb03 Published new versions
- @tryghost/adapter-manager@0.1.3
 - @tryghost/errors@0.1.2
 - @tryghost/image-transform@0.2.1
 - @tryghost/moleculer-service-from-class@0.1.0
 - @tryghost/mw-session-from-token@0.1.1
 - @tryghost/pretty-cli@1.2.5
 - @tryghost/release-utils@0.6.1
 - @tryghost/session-service@0.1.1
 - @tryghost/vhost-middleware@1.0.3
 - @tryghost/zip@1.0.1
2020-04-16 15:15:35 +02:00
Fabien O'Carroll
e05a5b4164 Added @tryghost/moleculer-service-from-class
no-issue

This is a wrapper used by CREAM to create moleculer service config from
class definitions
2020-04-16 15:14:03 +02:00
Renovate Bot
bcec46d0cf Update dependency sinon to v9.0.2 2020-04-08 12:16:19 +00:00
Hannah Wolfe
4626407970 Published new versions
- @tryghost/zip@1.0.0
2020-04-08 12:55:01 +01:00
Hannah Wolfe
adfb3fe499 Consistent interface and response
- Creating a better, more long-term API here
- compress and extract are opposite, neat terms
- Use new Promise to get rid of callback argument when using archiver to compress a folder
- Add options argument, and make a couple of key details configurable
- Make the response intelligable
- Ensure both functions are consistent
- Updated tests to match
2020-04-08 12:48:20 +01:00
Hannah Wolfe
62c2fce6cc Switch to OG extract-zip w/ promise based interface
- switch back from @tryghost/extract-zip to extract-zip now that it has been fixed (and is much better maintained)
- switch the internal interface to be fully promise-based and test promise-based too
2020-04-08 12:48:20 +01:00
Daniel Lockyer
fec30521ad Published new versions
- @tryghost/adapter-manager@0.1.2
2020-04-07 15:42:49 +01:00
Fabien O'Carroll
f618bc5fcd Improved error messages for loading adapters
no-issue

Adds back functionality from
3988029472
2020-04-07 16:33:39 +02:00
Fabien O'Carroll
645ca9a547 Published new versions
- @tryghost/adapter-manager@0.1.1
2020-04-07 15:30:03 +02:00
Fabien O'Carroll
db96ccbfe5 Added check for Adapter prototype name
no-issue

This fixes issues when the adapter is using a different "instance" of
the base class, so we check the names are the same.
2020-04-07 15:29:15 +02:00
Daniel Lockyer
9ffee44ab7 Published new versions
- @tryghost/release-utils@0.6.0
2020-04-07 12:53:52 +01:00
Daniel Lockyer
62dbc9097b Added extraText to release
no issue
2020-04-07 12:50:54 +01:00
Fabien O'Carroll
583d357675 Published new versions
- @tryghost/adapter-manager@0.1.0
 - @tryghost/mw-session-from-token@0.1.0
2020-04-05 15:59:56 +02:00
Fabien O'Carroll
814c513b53 Added @tryghost/mw-session-from-token module (#32)
no-issue
2020-04-05 15:58:33 +02:00
Fabien O'Carroll
44db45b7c3 Added @tryghost/adapter-manager module (#38)
no-issue
2020-04-05 15:54:47 +02:00
Fabien O'Carroll
4990c05448 Published new versions
- @tryghost/session-service@0.1.0
2020-04-02 15:46:07 +02:00
Fabien O'Carroll
e95dffb1db Added @tryghost/session-service module (#35)
no-issue

This was refactored out of https://github.com/TryGhost/Ghost/pull/11701/
2020-04-02 15:26:05 +02:00
Daniel Lockyer
348185e3a4 Published new versions
- @tryghost/release-utils@0.5.0
2020-04-01 12:01:05 +01:00
Daniel Lockyer
ff4d8ef903 Switched to using token authentication for GitHub
no issue
2020-04-01 12:00:19 +01:00
Hannah Wolfe
7e20949956 Move tests from core to root (#11700)
- move all test files from core/test to test/
- updated all imports and other references
- all code inside of core/ is then application code
- tests are correctly at the root level
- consistent with other repos/projects

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2020-03-30 16:26:47 +01:00
Hannah Wolfe
b57ecbcc4a Move tests from core to root (#11700)
- move all test files from core/test to test/
- updated all imports and other references
- all code inside of core/ is then application code
- tests are correctly at the root level
- consistent with other repos/projects

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2020-03-30 16:26:47 +01:00
Hannah Wolfe
d47df7ad46 Move tests from core to root (#11700)
- move all test files from core/test to test/
- updated all imports and other references
- all code inside of core/ is then application code
- tests are correctly at the root level
- consistent with other repos/projects

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2020-03-30 16:26:47 +01:00
Hannah Wolfe
eb7e7a8f31 Published new versions
- @tryghost/image-transform@0.2.0
2020-03-25 20:54:28 +00:00
Hannah Wolfe
46d95ed306 Added tool for generating original filename
- this allows us to have a shared tool for generating _o filenames
2020-03-25 20:53:57 +00:00
Hannah Wolfe
6d6785ae99 Published new versions
- @tryghost/errors@0.1.1
 - @tryghost/image-transform@0.1.0
2020-03-25 14:57:48 +00:00
Hannah Wolfe
264ffeceef Cleaner, clearer more consistent API
- we have 2 methods, one to resize a buffer and one to resize a file path
- make these two things super clear!
2020-03-25 14:50:25 +00:00
Hannah Wolfe
54d3527b14 Added sharp as an optional dependency
- This is optional, we throw errors if it doesn't load
2020-03-25 14:49:02 +00:00
Hannah Wolfe
2d2e41ac76 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
- changed name from manipulator to transform
2020-03-25 14:48:41 +00:00
Hannah Wolfe
80e320fd83 Cleanup repeated module mocking utils
- mock non existant module util was defined twice
- split it out properly from the rest of the utils, update all references
- this allows us to move this util out of the codebase along with other code, e.g. the image manipulation code
2020-03-25 14:48:41 +00:00
Hannah Wolfe
b8ab3414ff Update errors across lib/image and lib/request
- swap common.errors for @tryghost/errors
- doing this in batches across small parts of the codebase to reduce disruption
2020-03-25 14:48:41 +00:00
renovate[bot]
64129a5cfd Update Test & linting packages (major) (#10858)
no issue 

- Updated Test & linting packages
- Updated use of hasOwnProperty
- Using Object.prototype.hasOwnProperty instead (ref. eslint.org/docs/rules/no-prototype-builtins)
- Removed already defined built-in global variable Intl
- Applied `--fix` with lint command on `core/test` folder
- The rules were broken because some of them were made stricter for `eslint: recommended` ruleset (ref. https://eslint.org/docs/user-guide/migrating-to-6.0.0#eslint-recommended-changes)
- Removed redundant global variable declarations to pass linting
2020-03-25 14:48:41 +00:00
Katharina Irrgang
549cc7e47f Bumped sinon from 4.4.6 to 7.3.2 (#10400)
refs #9389

- https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md

Breaking changes for Ghost:

- no need to create a sandbox anymore, each file get's it's own sandbox
- just require sinon and use this sandbox
- you can still create separate sandboxes with .createSandbox
- reset single stubs: use .resetHistory instead of .reset

This is a global replace for any sandbox creation.

---

From https://sinonjs.org/releases/v7.2.3/sandbox/

> Default sandbox
> Since sinon@5.0.0, the sinon object is a default sandbox. Unless you have a very advanced setup or need a special configuration, you probably want to just use that one.
2020-03-25 14:48:41 +00:00
Hannah Wolfe
eb9b1ddc1f 🐛 Fixed responsive images for .icos
closes #10301

- we allow .ico files for icons, but we cannot resize these specialist files at present
2020-03-25 14:48:41 +00:00
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