diff --git a/core/boot.js b/core/boot.js index aea945f6b7..4111428c0b 100644 --- a/core/boot.js +++ b/core/boot.js @@ -50,16 +50,14 @@ function notifyServerReady(error) { /** * Get the Database into a ready state * - DatabaseStateManager handles doing all this for us - * - Passing logging makes it output state messages * * @param {object} options * @param {object} options.config - * @param {object} options.logging */ -async function initDatabase({config, logging}) { +async function initDatabase({config}) { const DatabaseStateManager = require('./server/data/db/state-manager'); const dbStateManager = new DatabaseStateManager({knexMigratorFilePath: config.get('paths:appRoot')}); - await dbStateManager.makeReady({logging}); + await dbStateManager.makeReady(); } /** @@ -383,7 +381,7 @@ async function bootGhost({backend = true, frontend = true, server = true} = {}) // Step 3 - Get the DB ready debug('Begin: Get DB ready'); - await initDatabase({config, logging}); + await initDatabase({config}); bootLogger.log('database ready'); debug('End: Get DB ready'); diff --git a/core/frontend/services/theme-engine/i18n/i18n.js b/core/frontend/services/theme-engine/i18n/i18n.js index e3bd144e9b..01a0695df9 100644 --- a/core/frontend/services/theme-engine/i18n/i18n.js +++ b/core/frontend/services/theme-engine/i18n/i18n.js @@ -1,4 +1,5 @@ const errors = require('@tryghost/errors'); +const logging = require('@tryghost/logging'); const fs = require('fs-extra'); const path = require('path'); const MessageFormat = require('intl-messageformat'); @@ -12,17 +13,15 @@ const get = require('lodash/get'); class I18n { /** - * @param {objec} [options] + * @param {object} [options] * @param {string} basePath - the base path to the translations directory * @param {string} [locale] - a locale string * @param {{dot|fulltext}} [stringMode] - which mode our translation keys use - * @param {{object}} [logging] - logging method */ constructor(options = {}) { this._basePath = options.basePath || __dirname; this._locale = options.locale || this.defaultLocale(); this._stringMode = options.stringMode || 'dot'; - this._logging = options.logging || console; this._strings = null; } @@ -35,8 +34,8 @@ class I18n { } /** - * Need to call init after this - */ + * Need to call init after this + */ get basePath() { return this._basePath; } @@ -262,34 +261,34 @@ class I18n { } _handleUninitialisedError(key) { - this._logging.warn(`i18n was used before it was initialised with key ${key}`); + logging.warn(`i18n was used before it was initialised with key ${key}`); this.init(); } _handleFormatError(err) { - this._logging.error(err.message); + logging.error(err.message); } _handleFallbackToDefault() { - this._logging.warn(`i18n is falling back to ${this.defaultLocale()}.json.`); + logging.warn(`i18n is falling back to ${this.defaultLocale()}.json.`); } _handleMissingFileError(locale) { - this._logging.warn(`i18n was unable to find ${locale}.json.`); + logging.warn(`i18n was unable to find ${locale}.json.`); } _handleInvalidFileError(locale, err) { - this._logging.error(new errors.IncorrectUsageError({ + logging.error(new errors.IncorrectUsageError({ err, message: `i18n was unable to parse ${locale}.json. Please check that it is valid JSON.` })); } _handleEmptyKeyError() { - this._logging.warn('i18n.t() was called without a key'); + logging.warn('i18n.t() was called without a key'); } _handleMissingKeyError(key) { - this._logging.error(new errors.IncorrectUsageError({ + logging.error(new errors.IncorrectUsageError({ message: `i18n.t() was called with a key that could not be found: ${key}` })); } diff --git a/core/frontend/services/theme-engine/i18n/index.js b/core/frontend/services/theme-engine/i18n/index.js index d3efd7330c..9ce72b324b 100644 --- a/core/frontend/services/theme-engine/i18n/index.js +++ b/core/frontend/services/theme-engine/i18n/index.js @@ -1,7 +1,6 @@ const config = require('../../../../shared/config'); -const logging = require('@tryghost/logging'); const ThemeI18n = require('./theme-i18n'); -module.exports = new ThemeI18n({logging, basePath: config.getContentPath('themes')}); +module.exports = new ThemeI18n({basePath: config.getContentPath('themes')}); module.exports.ThemeI18n = ThemeI18n; diff --git a/core/frontend/services/theme-engine/i18n/theme-i18n.js b/core/frontend/services/theme-engine/i18n/theme-i18n.js index 8bff052e5c..6def464b5b 100644 --- a/core/frontend/services/theme-engine/i18n/theme-i18n.js +++ b/core/frontend/services/theme-engine/i18n/theme-i18n.js @@ -1,4 +1,5 @@ const errors = require('@tryghost/errors'); +const logging = require('@tryghost/logging'); const I18n = require('./i18n'); class ThemeI18n extends I18n { @@ -39,23 +40,23 @@ class ThemeI18n extends I18n { } _handleFallbackToDefault() { - this._logging.warn(`Theme translations falling back to locales/${this.defaultLocale()}.json.`); + logging.warn(`Theme translations falling back to locales/${this.defaultLocale()}.json.`); } _handleMissingFileError(locale) { if (locale !== this.defaultLocale()) { - this._logging.warn(`Theme translations file locales/${locale}.json not found.`); + logging.warn(`Theme translations file locales/${locale}.json not found.`); } } _handleInvalidFileError(locale, err) { - this._logging.error(new errors.IncorrectUsageError({ + logging.error(new errors.IncorrectUsageError({ err, message: `Theme translations unable to parse locales/${locale}.json. Please check that it is valid JSON.` })); } _handleEmptyKeyError() { - this._logging.warn('Theme translations {{t}} helper called without a translation key.'); + logging.warn('Theme translations {{t}} helper called without a translation key.'); } _handleMissingKeyError() { diff --git a/core/server/api/canary/oembed.js b/core/server/api/canary/oembed.js index 6f14fdcf29..f04ee161d2 100644 --- a/core/server/api/canary/oembed.js +++ b/core/server/api/canary/oembed.js @@ -15,8 +15,7 @@ const Twitter = require('../../services/twitter-embed'); const twitter = new Twitter({ config: { bearerToken: config.get('twitter').privateReadOnlyToken - }, - logging: require('@tryghost/logging') + } }); oembed.registerProvider(nft); diff --git a/core/server/data/db/state-manager.js b/core/server/data/db/state-manager.js index cb7bd8ae27..46d5ad3db6 100644 --- a/core/server/data/db/state-manager.js +++ b/core/server/data/db/state-manager.js @@ -1,5 +1,6 @@ const KnexMigrator = require('knex-migrator'); const errors = require('@tryghost/errors'); +const logging = require('@tryghost/logging'); const states = { READY: 0, @@ -8,7 +9,7 @@ const states = { ERROR: 3 }; -const printState = ({state, logging}) => { +const printState = ({state}) => { if (state === states.READY) { logging.info('Database is in a ready state.'); } @@ -67,13 +68,11 @@ class DatabaseStateManager { } } - async makeReady({logging}) { + async makeReady() { try { let state = await this.getState(); - if (logging) { - printState({state, logging}); - } + printState({state}); if (state === states.READY) { return; @@ -89,9 +88,7 @@ class DatabaseStateManager { state = await this.getState(); - if (logging) { - printState({state, logging}); - } + printState({state}); } catch (error) { let errorToThrow = error; if (!errors.utils.isGhostError(error)) { diff --git a/core/server/lib/image/cached-image-size-from-url.js b/core/server/lib/image/cached-image-size-from-url.js index 8fd550e76b..61be09ae59 100644 --- a/core/server/lib/image/cached-image-size-from-url.js +++ b/core/server/lib/image/cached-image-size-from-url.js @@ -1,9 +1,8 @@ const debug = require('@tryghost/debug')('utils:image-size-cache'); const errors = require('@tryghost/errors'); - +const logging = require('@tryghost/logging'); class CachedImageSizeFromUrl { - constructor({logging, imageSize}) { - this.logging = logging; + constructor({imageSize}) { this.imageSize = imageSize; this.cache = new Map(); } @@ -37,7 +36,7 @@ class CachedImageSizeFromUrl { return this.cache.get(url); }).catch((err) => { debug('Cached image (error):', url); - this.logging.error(err); + logging.error(err); // in case of error we just attach the url this.cache.set(url, url); diff --git a/core/server/lib/image/image-utils.js b/core/server/lib/image/image-utils.js index bf7328929b..23b725d3cc 100644 --- a/core/server/lib/image/image-utils.js +++ b/core/server/lib/image/image-utils.js @@ -4,10 +4,10 @@ const Gravatar = require('./gravatar'); const ImageSize = require('./image-size'); class ImageUtils { - constructor({config, logging, urlUtils, settingsCache, storageUtils, storage, validator, request}) { + constructor({config, urlUtils, settingsCache, storageUtils, storage, validator, request}) { this.blogIcon = new BlogIcon({config, urlUtils, settingsCache, storageUtils}); this.imageSize = new ImageSize({config, storage, storageUtils, validator, urlUtils, request}); - this.cachedImageSizeFromUrl = new CachedImageSizeFromUrl({logging, imageSize: this.imageSize}); + this.cachedImageSizeFromUrl = new CachedImageSizeFromUrl({imageSize: this.imageSize}); this.gravatar = new Gravatar({config, request}); } } diff --git a/core/server/lib/image/index.js b/core/server/lib/image/index.js index c7c58c40a7..d6ca0ae427 100644 --- a/core/server/lib/image/index.js +++ b/core/server/lib/image/index.js @@ -4,8 +4,7 @@ const storage = require('../../adapters/storage'); const storageUtils = require('../../adapters/storage/utils'); const validator = require('@tryghost/validator'); const config = require('../../../shared/config'); -const logging = require('@tryghost/logging'); const settingsCache = require('../../../shared/settings-cache'); const ImageUtils = require('./image-utils'); -module.exports = new ImageUtils({config, logging, urlUtils, settingsCache, storageUtils, storage, validator, request}); +module.exports = new ImageUtils({config, urlUtils, settingsCache, storageUtils, storage, validator, request}); diff --git a/core/server/run-update-check.js b/core/server/run-update-check.js index 838e39681e..c7bece4583 100644 --- a/core/server/run-update-check.js +++ b/core/server/run-update-check.js @@ -31,18 +31,6 @@ if (parentPort) { (async () => { const updateCheck = require('./update-check'); - const logging = { - info(message) { - postParentPortMessage(message); - }, - warn(message) { - postParentPortMessage(message); - }, - error(message) { - postParentPortMessage(message); - } - }; - // INIT required services const models = require('./models'); models.init(); @@ -54,7 +42,7 @@ if (parentPort) { await settings.init(); // Finished INIT - await updateCheck({logging}); + await updateCheck(); postParentPortMessage(`Ran update check`); diff --git a/core/server/services/email-analytics/index.js b/core/server/services/email-analytics/index.js index 1b642233e1..90c6cd247f 100644 --- a/core/server/services/email-analytics/index.js +++ b/core/server/services/email-analytics/index.js @@ -1,5 +1,4 @@ const config = require('../../../shared/config'); -const logging = require('@tryghost/logging'); const db = require('../../data/db'); const settings = require('../../../shared/settings-cache'); const {EmailAnalyticsService} = require('@tryghost/email-analytics-service'); @@ -9,11 +8,10 @@ const queries = require('./lib/queries'); module.exports = new EmailAnalyticsService({ config, - logging, settings, - eventProcessor: new EventProcessor({db, logging}), + eventProcessor: new EventProcessor({db}), providers: [ - new MailgunProvider({config, settings, logging}) + new MailgunProvider({config, settings}) ], queries }); diff --git a/core/server/services/email-analytics/jobs/fetch-latest.js b/core/server/services/email-analytics/jobs/fetch-latest.js index 132c0016d1..6e44b2b86e 100644 --- a/core/server/services/email-analytics/jobs/fetch-latest.js +++ b/core/server/services/email-analytics/jobs/fetch-latest.js @@ -28,24 +28,6 @@ if (parentPort) { const config = require('../../../../shared/config'); const db = require('../../../data/db'); - const logging = { - info(message) { - if (parentPort) { - parentPort.postMessage(message); - } - }, - warn(message) { - if (parentPort) { - parentPort.postMessage(message); - } - }, - error(message) { - if (parentPort) { - parentPort.postMessage(message); - } - } - }; - const settingsRows = await db.knex('settings') .whereIn('key', ['mailgun_api_key', 'mailgun_domain', 'mailgun_base_url']); @@ -69,10 +51,9 @@ if (parentPort) { const emailAnalyticsService = new EmailAnalyticsService({ config, settings, - logging, - eventProcessor: new EventProcessor({db, logging}), + eventProcessor: new EventProcessor({db}), providers: [ - new MailgunProvider({config, settings, logging}) + new MailgunProvider({config, settings}) ], queries }); diff --git a/core/server/services/invites/index.js b/core/server/services/invites/index.js index 86fd62574c..84692c42cd 100644 --- a/core/server/services/invites/index.js +++ b/core/server/services/invites/index.js @@ -1,12 +1,10 @@ const settingsCache = require('../../../shared/settings-cache'); const mailService = require('../../services/mail'); -const logging = require('@tryghost/logging'); const urlUtils = require('../../../shared/url-utils'); const Invites = require('./invites'); module.exports = new Invites({ settingsCache, - logging, mailService, urlUtils }); diff --git a/core/server/services/invites/invites.js b/core/server/services/invites/invites.js index 5d04aee51b..f8aed3ed10 100644 --- a/core/server/services/invites/invites.js +++ b/core/server/services/invites/invites.js @@ -1,5 +1,6 @@ const security = require('@tryghost/security'); const tpl = require('@tryghost/tpl'); +const logging = require('@tryghost/logging'); const messages = { invitedByName: '{invitedByName} has invited you to join {blogName}', @@ -10,9 +11,8 @@ const messages = { }; class Invites { - constructor({settingsCache, logging, mailService, urlUtils}) { + constructor({settingsCache, mailService, urlUtils}) { this.settingsCache = settingsCache; - this.logging = logging; this.mailService = mailService; this.urlUtils = urlUtils; } @@ -80,7 +80,7 @@ class Invites { }); const helpText = tpl(messages.errorSendingEmail.help); err.message = `${errorMessage} ${helpText}`; - this.logging.warn(err.message); + logging.warn(err.message); } return Promise.reject(err); diff --git a/core/server/services/jobs/job-service.js b/core/server/services/jobs/job-service.js index 7f8e916033..d8aa8add94 100644 --- a/core/server/services/jobs/job-service.js +++ b/core/server/services/jobs/job-service.js @@ -17,6 +17,6 @@ const workerMessageHandler = ({name, message}) => { logging.info(`Worker for job ${name} sent a message: ${message}`); }; -const jobManager = new JobManager({logging, errorHandler, workerMessageHandler}); +const jobManager = new JobManager({errorHandler, workerMessageHandler}); module.exports = jobManager; diff --git a/core/server/services/members/api.js b/core/server/services/members/api.js index 792f0e5e1b..88f6d9c649 100644 --- a/core/server/services/members/api.js +++ b/core/server/services/members/api.js @@ -207,7 +207,6 @@ function createApiInstance(config) { Settings: models.Settings }, stripeAPIService: stripeService.api, - logger: logging, offersAPI: offersService.api, labsService: labsService }); diff --git a/core/server/services/members/config.js b/core/server/services/members/config.js index 1f1da0aab7..94b210fc3e 100644 --- a/core/server/services/members/config.js +++ b/core/server/services/members/config.js @@ -1,4 +1,5 @@ const errors = require('@tryghost/errors'); +const logging = require('@tryghost/logging'); const tpl = require('@tryghost/tpl'); const {URL} = require('url'); const crypto = require('crypto'); @@ -22,7 +23,6 @@ class MembersConfigProvider { this._settingsCache = options.settingsCache; this._config = options.config; this._urlUtils = options.urlUtils; - this._logging = options.logging; this._ghostVersion = options.ghostVersion; } @@ -193,12 +193,12 @@ class MembersConfigProvider { getAuthSecret() { const hexSecret = this._settingsCache.get('members_email_auth_secret'); if (!hexSecret) { - this._logging.warn('Could not find members_email_auth_secret, using dynamically generated secret'); + logging.warn('Could not find members_email_auth_secret, using dynamically generated secret'); return crypto.randomBytes(64); } const secret = Buffer.from(hexSecret, 'hex'); if (secret.length < 64) { - this._logging.warn('members_email_auth_secret not large enough (64 bytes), using dynamically generated secret'); + logging.warn('members_email_auth_secret not large enough (64 bytes), using dynamically generated secret'); return crypto.randomBytes(64); } return secret; @@ -236,7 +236,7 @@ class MembersConfigProvider { let publicKey = this._settingsCache.get('members_public_key'); if (!privateKey || !publicKey) { - this._logging.warn('Could not find members_private_key, using dynamically generated keypair'); + logging.warn('Could not find members_private_key, using dynamically generated keypair'); const keypair = createKeypair({bits: 1024}); privateKey = keypair.private; publicKey = keypair.public; diff --git a/core/server/services/members/service.js b/core/server/services/members/service.js index 78c096dc03..3503c62fd9 100644 --- a/core/server/services/members/service.js +++ b/core/server/services/members/service.js @@ -36,7 +36,6 @@ const membersConfig = new MembersConfigProvider({ config, settingsCache, urlUtils, - logging, ghostVersion }); diff --git a/core/server/services/stripe/index.js b/core/server/services/stripe/index.js index 198d1c5c96..c27db86bd1 100644 --- a/core/server/services/stripe/index.js +++ b/core/server/services/stripe/index.js @@ -1,5 +1,4 @@ const _ = require('lodash'); -const logging = require('@tryghost/logging'); const StripeAPIService = require('@tryghost/members-stripe-service'); const config = require('../../../shared/config'); @@ -9,7 +8,6 @@ const events = require('../../lib/common/events'); const {getConfig} = require('./config'); const api = new StripeAPIService({ - logger: logging, config: {} }); diff --git a/core/server/services/twitter-embed.js b/core/server/services/twitter-embed.js index c86a30daab..ec40c3a0af 100644 --- a/core/server/services/twitter-embed.js +++ b/core/server/services/twitter-embed.js @@ -1,4 +1,5 @@ const {extract} = require('oembed-parser'); +const logging = require('@tryghost/logging'); const labs = require('../../shared/labs'); /** @@ -69,7 +70,7 @@ class TwitterOEmbedProvider { oembedData.tweet_data = body.data; oembedData.tweet_data.includes = body.includes; } catch (err) { - this.dependencies.logging.error(err); + logging.error(err); } } diff --git a/package.json b/package.json index d27070942d..356921e779 100644 --- a/package.json +++ b/package.json @@ -58,26 +58,26 @@ "@tryghost/adapter-manager": "0.2.24", "@tryghost/admin-api-schema": "2.6.1", "@tryghost/bookshelf-plugins": "0.3.5", - "@tryghost/bootstrap-socket": "0.2.14", + "@tryghost/bootstrap-socket": "0.2.15", "@tryghost/color-utils": "0.1.5", "@tryghost/config-url-helpers": "0.1.3", "@tryghost/constants": "1.0.0", "@tryghost/custom-theme-settings-service": "0.3.1", "@tryghost/debug": "0.1.9", - "@tryghost/email-analytics-provider-mailgun": "1.0.6", + "@tryghost/email-analytics-provider-mailgun": "1.0.7", "@tryghost/email-analytics-service": "1.0.5", - "@tryghost/errors": "1.0.4", + "@tryghost/errors": "1.1.1", "@tryghost/express-dynamic-redirects": "0.2.2", "@tryghost/helpers": "1.1.54", "@tryghost/image-transform": "1.0.24", - "@tryghost/job-manager": "0.8.16", + "@tryghost/job-manager": "0.8.17", "@tryghost/kg-card-factory": "3.1.0", "@tryghost/kg-default-atoms": "3.1.0", "@tryghost/kg-default-cards": "5.14.2", "@tryghost/kg-markdown-html-renderer": "5.1.0", "@tryghost/kg-mobiledoc-html-renderer": "5.3.1", "@tryghost/limit-service": "1.0.6", - "@tryghost/logging": "1.0.2", + "@tryghost/logging": "2.0.0", "@tryghost/magic-link": "1.0.14", "@tryghost/members-api": "2.8.6", "@tryghost/members-csv": "1.2.0", @@ -98,7 +98,7 @@ "@tryghost/social-urls": "0.1.27", "@tryghost/string": "0.1.21", "@tryghost/tpl": "0.1.8", - "@tryghost/update-check-service": "0.2.5", + "@tryghost/update-check-service": "0.3.0", "@tryghost/url-utils": "2.0.4", "@tryghost/validator": "0.1.9", "@tryghost/version": "0.1.7", diff --git a/yarn.lock b/yarn.lock index 4d5292c39f..5a8223ea12 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1317,12 +1317,12 @@ resolved "https://registry.npmjs.org/@tryghost/bookshelf-transaction-events/-/bookshelf-transaction-events-0.1.7.tgz" integrity sha512-j1hbi+NPaUFhHYAVCWJoUmmIrnD5iSR3UP4nvYnYwCAHQ0Xu4Rc3+kIpdcrnSvwIEJNtVxNCaSarJTK/D/a0JQ== -"@tryghost/bootstrap-socket@0.2.14": - version "0.2.14" - resolved "https://registry.yarnpkg.com/@tryghost/bootstrap-socket/-/bootstrap-socket-0.2.14.tgz#d03caf3f51cd2acf37f0c3ee5cd511a953993197" - integrity sha512-95dYoV8EfQg7g2iF750xLJv/Yli1HhcZb3Zl6Nty8rX1GhZ8vFn57Agmh180MyFhO87oXRzihYRn18LAcEH6Ng== +"@tryghost/bootstrap-socket@0.2.15": + version "0.2.15" + resolved "https://registry.yarnpkg.com/@tryghost/bootstrap-socket/-/bootstrap-socket-0.2.15.tgz#02b6a3f1408acfd8df88f6a72e197c7e5ffc3bc2" + integrity sha512-OSWF9JVjfoufUyDi5MTNJb/Zd10yferDSR3cdfxK6Nu/zc8cjzmlKgxtHtsUn7E/mLmERDt4iNk9hC4r1utcIg== dependencies: - "@tryghost/logging" "^1.0.2" + "@tryghost/logging" "^2.0.0" "@tryghost/bunyan-rotating-filestream@0.0.7", "@tryghost/bunyan-rotating-filestream@^0.0.7": version "0.0.7" @@ -1394,13 +1394,13 @@ "@elastic/elasticsearch" "^7.15.0" "@tryghost/debug" "^0.1.9" -"@tryghost/email-analytics-provider-mailgun@1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@tryghost/email-analytics-provider-mailgun/-/email-analytics-provider-mailgun-1.0.6.tgz#7897699cb9054c8c35844bd38c5994103cbf1569" - integrity sha512-41owQfyrDke937FUk68osbi4n+6TZI4EfcH8+Kf6MkGfLy8xt42idk7QCQE+l++YKcENOkknSce+biAkGtmnkw== +"@tryghost/email-analytics-provider-mailgun@1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@tryghost/email-analytics-provider-mailgun/-/email-analytics-provider-mailgun-1.0.7.tgz#e8b0da0f9f137ad90b7eb8ee031be88a66811e06" + integrity sha512-OD4spZ0FmRPcIL5+DXE5N+HV26eyIC39yZwXKoQTZFPfU7LvTbbF/hJOFXC/CK4+DT8gd5flXZ32v0o6FUIinA== dependencies: "@tryghost/email-analytics-service" "^1.0.5" - "@tryghost/logging" "^1.0.2" + "@tryghost/logging" "^2.0.0" mailgun-js "^0.22.0" moment "^2.29.1" @@ -1412,10 +1412,10 @@ "@tryghost/debug" "^0.1.9" lodash "^4.17.20" -"@tryghost/errors@1.0.4", "@tryghost/errors@^1.0.0": - version "1.0.4" - resolved "https://registry.npmjs.org/@tryghost/errors/-/errors-1.0.4.tgz" - integrity sha512-ImfwkOc54Ur9zjYgPaG3Y9wFeH00eJnqClYBZSB5/K0T6nqTXnIOyFIq33vZkmXuxQLX1xRb82OeWYxHxgFWDA== +"@tryghost/errors@1.1.1", "@tryghost/errors@^1.0.0", "@tryghost/errors@^1.1.0", "@tryghost/errors@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@tryghost/errors/-/errors-1.1.1.tgz" + integrity sha512-na0qB5sdy1BWgquzn+m530ohJ3fTeF451xUTR7I8b76TBEL9snnIkXCv5Qdjmnevmgod7aAGsHi2syyKFlvEvQ== dependencies: lodash "^4.17.21" uuid "^8.3.2" @@ -1428,14 +1428,6 @@ "@tryghost/ignition-errors" "^0.1.0" lodash "^4.17.21" -"@tryghost/errors@^1.1.0", "@tryghost/errors@^1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@tryghost/errors/-/errors-1.1.1.tgz" - integrity sha512-na0qB5sdy1BWgquzn+m530ohJ3fTeF451xUTR7I8b76TBEL9snnIkXCv5Qdjmnevmgod7aAGsHi2syyKFlvEvQ== - dependencies: - lodash "^4.17.21" - uuid "^8.3.2" - "@tryghost/express-dynamic-redirects@0.2.2": version "0.2.2" resolved "https://registry.npmjs.org/@tryghost/express-dynamic-redirects/-/express-dynamic-redirects-0.2.2.tgz" @@ -1476,13 +1468,13 @@ optionalDependencies: sharp "^0.29.0" -"@tryghost/job-manager@0.8.16": - version "0.8.16" - resolved "https://registry.yarnpkg.com/@tryghost/job-manager/-/job-manager-0.8.16.tgz#bd97b86fa72d564f08d7f00b5783e18685aab84c" - integrity sha512-4xfrkMdn2UHI/BFERAckoIsTgPepekvCDXykU/OLrkwbkqrChj+G6gL3EIGjjilSB6wzmJQ0BNinOn2o6M+NJQ== +"@tryghost/job-manager@0.8.17": + version "0.8.17" + resolved "https://registry.yarnpkg.com/@tryghost/job-manager/-/job-manager-0.8.17.tgz#356d91de13a48122e7bd178d038a9f759a499e22" + integrity sha512-srtey6RC89K5e2ai5zdTldpoKUvTdKilrUyuAc40tvpzBOct8K8o+mTIN2Ak+Yw8pre00WO/qcnuUTkTca4I5w== dependencies: "@breejs/later" "^4.0.2" - "@tryghost/logging" "^1.0.2" + "@tryghost/logging" "^2.0.0" bree "^6.2.0" cron-validate "^1.4.3" fastq "^1.11.0" @@ -1552,7 +1544,7 @@ lodash "^4.17.21" luxon "^1.26.0" -"@tryghost/logging@1.0.2", "@tryghost/logging@2.0.0", "@tryghost/logging@^1.0.0", "@tryghost/logging@^1.0.2", "@tryghost/logging@^2.0.0": +"@tryghost/logging@1.0.2", "@tryghost/logging@2.0.0", "@tryghost/logging@^1.0.0", "@tryghost/logging@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@tryghost/logging/-/logging-2.0.0.tgz#587c579d703ef15fe468b8bb8efdd9cdfefb90ef" integrity sha512-eWKtiHWDtVVf+xn+ecKb8mUepFDK1RXOhl1tFMF1b7eFASn5WIDLFSMH9Xl9gyCi6dnsXp5fAm2G3baZ77bPZg== @@ -1851,14 +1843,14 @@ dependencies: lodash.template "^4.5.0" -"@tryghost/update-check-service@0.2.5": - version "0.2.5" - resolved "https://registry.npmjs.org/@tryghost/update-check-service/-/update-check-service-0.2.5.tgz" - integrity sha512-LdvSpwtnsOX/il5v5VAoFFQc8V1mUsVqKptW/mvsvfMAEVnVtNHXAL0hZry/TDeq+4IU0h2UX+/Ziul8Wf4amA== +"@tryghost/update-check-service@0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@tryghost/update-check-service/-/update-check-service-0.3.0.tgz#0483160e0c6df5361d5fbffc522a44a6f14895ef" + integrity sha512-Io0e5S0eF9foTlZ7pH5hemDQiDKrl52TSGm+a6XG1a237LwunS8y0KPcz5FUzuPU5FhExQ1AXMnPjjTA3E06Qw== dependencies: "@tryghost/debug" "^0.1.5" "@tryghost/errors" "^0.2.11" - "@tryghost/logging" "^1.0.0" + "@tryghost/logging" "^2.0.0" "@tryghost/tpl" "^0.1.3" bluebird "^3.7.2" lodash "^4.17.21"