diff --git a/package-lock.json b/package-lock.json index bcf6a8c4a..035e8a8ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,6 +44,17 @@ "extraneous": true, "license": "ISC" }, + "extensions/sentrylog": { + "name": "@evershop/sentrylog", + "version": "1.0.1", + "license": "GNU GENERAL PUBLIC LICENSE 3.0", + "dependencies": { + "winston-transport-sentry-node": "^2.7.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, "extensions/shippingBanner": { "name": "shippingbanner", "version": "1.0.0", @@ -3294,6 +3305,10 @@ "resolved": "packages/sendgrid", "link": true }, + "node_modules/@evershop/sentrylog": { + "resolved": "extensions/sentrylog", + "link": true + }, "node_modules/@gar/promisify": { "version": "1.1.3", "license": "MIT", @@ -4642,6 +4657,64 @@ "node": "6.* || 8.* || >=10.*" } }, + "node_modules/@sentry-internal/tracing": { + "version": "7.109.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.109.0.tgz", + "integrity": "sha512-PzK/joC5tCuh2R/PRh+7dp+uuZl7pTsBIjPhVZHMTtb9+ls65WkdZJ1/uKXPouyz8NOo9Xok7aEvEo9seongyw==", + "dependencies": { + "@sentry/core": "7.109.0", + "@sentry/types": "7.109.0", + "@sentry/utils": "7.109.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/core": { + "version": "7.109.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.109.0.tgz", + "integrity": "sha512-xwD4U0IlvvlE/x/g/W1I8b4Cfb16SsCMmiEuBf6XxvAa3OfWBxKoqLifb3GyrbxMC4LbIIZCN/SvLlnGJPgszA==", + "dependencies": { + "@sentry/types": "7.109.0", + "@sentry/utils": "7.109.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/node": { + "version": "7.109.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.109.0.tgz", + "integrity": "sha512-tqMNAES4X/iBl1eZRCmc29p//0id01FBLEiesNo5nk6ECl6/SaGMFAEwu1gsn90h/Bjgr04slwFOS4cR45V2PQ==", + "dependencies": { + "@sentry-internal/tracing": "7.109.0", + "@sentry/core": "7.109.0", + "@sentry/types": "7.109.0", + "@sentry/utils": "7.109.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/types": { + "version": "7.109.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.109.0.tgz", + "integrity": "sha512-egCBnDv3YpVFoNzRLdP0soVrxVLCQ+rovREKJ1sw3rA2/MFH9WJ+DZZexsX89yeAFzy1IFsCp7/dEqudusml6g==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/utils": { + "version": "7.109.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.109.0.tgz", + "integrity": "sha512-3RjxMOLMBwZ5VSiH84+o/3NY2An4Zldjz0EbfEQNRY9yffRiCPJSQiCJID8EoylCFOh/PAhPimBhqbtWJxX6iw==", + "dependencies": { + "@sentry/types": "7.109.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@shopify/draggable": { "version": "1.0.0-beta.8", "license": "MIT" @@ -21774,6 +21847,21 @@ "node": ">= 6.4.0" } }, + "node_modules/winston-transport-sentry-node": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/winston-transport-sentry-node/-/winston-transport-sentry-node-2.7.0.tgz", + "integrity": "sha512-WoqEM6nNP2U10JyPEI5tglVEu5WBa0LA9692xTmLZeVADlwTB1rZPJh0/J5oEeMPTIDVeD6sfKbssby+sCmmxg==", + "dependencies": { + "@sentry/node": "^7.1.1", + "triple-beam": "^1.3.0", + "tslib": "^2.3.1", + "winston": "^3.3.3", + "winston-transport": "^4.4.0" + }, + "engines": { + "node": ">= 8.10.0" + } + }, "node_modules/winston-transport/node_modules/readable-stream": { "version": "3.6.0", "license": "MIT", @@ -22387,7 +22475,7 @@ }, "packages/sendgrid": { "name": "@evershop/sendgrid", - "version": "1.0.0", + "version": "1.0.1", "license": "GNU GENERAL PUBLIC LICENSE 3.0", "dependencies": { "@sendgrid/mail": "^7.7.0" @@ -24773,7 +24861,7 @@ "@evershop/resend": { "version": "file:packages/resend", "requires": { - "handlebars": "*", + "handlebars": "^4.7.8", "resend": "^3.2.0" } }, @@ -24789,6 +24877,12 @@ "@sendgrid/mail": "^7.7.0" } }, + "@evershop/sentrylog": { + "version": "file:extensions/sentrylog", + "requires": { + "winston-transport-sentry-node": "*" + } + }, "@gar/promisify": { "version": "1.1.3", "optional": true, @@ -25682,6 +25776,49 @@ "@sendgrid/helpers": "^7.7.0" } }, + "@sentry-internal/tracing": { + "version": "7.109.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.109.0.tgz", + "integrity": "sha512-PzK/joC5tCuh2R/PRh+7dp+uuZl7pTsBIjPhVZHMTtb9+ls65WkdZJ1/uKXPouyz8NOo9Xok7aEvEo9seongyw==", + "requires": { + "@sentry/core": "7.109.0", + "@sentry/types": "7.109.0", + "@sentry/utils": "7.109.0" + } + }, + "@sentry/core": { + "version": "7.109.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.109.0.tgz", + "integrity": "sha512-xwD4U0IlvvlE/x/g/W1I8b4Cfb16SsCMmiEuBf6XxvAa3OfWBxKoqLifb3GyrbxMC4LbIIZCN/SvLlnGJPgszA==", + "requires": { + "@sentry/types": "7.109.0", + "@sentry/utils": "7.109.0" + } + }, + "@sentry/node": { + "version": "7.109.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.109.0.tgz", + "integrity": "sha512-tqMNAES4X/iBl1eZRCmc29p//0id01FBLEiesNo5nk6ECl6/SaGMFAEwu1gsn90h/Bjgr04slwFOS4cR45V2PQ==", + "requires": { + "@sentry-internal/tracing": "7.109.0", + "@sentry/core": "7.109.0", + "@sentry/types": "7.109.0", + "@sentry/utils": "7.109.0" + } + }, + "@sentry/types": { + "version": "7.109.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.109.0.tgz", + "integrity": "sha512-egCBnDv3YpVFoNzRLdP0soVrxVLCQ+rovREKJ1sw3rA2/MFH9WJ+DZZexsX89yeAFzy1IFsCp7/dEqudusml6g==" + }, + "@sentry/utils": { + "version": "7.109.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.109.0.tgz", + "integrity": "sha512-3RjxMOLMBwZ5VSiH84+o/3NY2An4Zldjz0EbfEQNRY9yffRiCPJSQiCJID8EoylCFOh/PAhPimBhqbtWJxX6iw==", + "requires": { + "@sentry/types": "7.109.0" + } + }, "@shopify/draggable": { "version": "1.0.0-beta.8" }, @@ -37032,6 +37169,18 @@ } } }, + "winston-transport-sentry-node": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/winston-transport-sentry-node/-/winston-transport-sentry-node-2.7.0.tgz", + "integrity": "sha512-WoqEM6nNP2U10JyPEI5tglVEu5WBa0LA9692xTmLZeVADlwTB1rZPJh0/J5oEeMPTIDVeD6sfKbssby+sCmmxg==", + "requires": { + "@sentry/node": "^7.1.1", + "triple-beam": "^1.3.0", + "tslib": "^2.3.1", + "winston": "^3.3.3", + "winston-transport": "^4.4.0" + } + }, "wonka": { "version": "6.1.0" }, diff --git a/packages/azure_file_storage/subscribers/product_image_added/azureGenerateProductImageVariant.js b/packages/azure_file_storage/subscribers/product_image_added/azureGenerateProductImageVariant.js index 0a83e4ab6..b8e50891e 100644 --- a/packages/azure_file_storage/subscribers/product_image_added/azureGenerateProductImageVariant.js +++ b/packages/azure_file_storage/subscribers/product_image_added/azureGenerateProductImageVariant.js @@ -5,7 +5,7 @@ const { getEnv } = require('@evershop/evershop/src/lib/util/getEnv'); const sharp = require('sharp'); const { update } = require('@evershop/postgres-query-builder'); const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); async function resizeAndUploadImage( containerName, @@ -96,8 +96,8 @@ module.exports = async function azureGenerateProductImageVariant(data) { .where('product_image_product_id', '=', data.product_image_product_id) .and('origin_image', '=', data.origin_image) .execute(pool); - } catch (error) { - debug('critical', error); + } catch (e) { + error(e); } } }; diff --git a/packages/evershop/bin/build/client/index.js b/packages/evershop/bin/build/client/index.js index e7c52dc52..cb725c07c 100644 --- a/packages/evershop/bin/build/client/index.js +++ b/packages/evershop/bin/build/client/index.js @@ -2,7 +2,7 @@ const webpack = require('webpack'); const { createConfigClient } = require('@evershop/evershop/src/lib/webpack/prod/createConfigClient'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); module.exports.buildClient = async function buildClient(routes) { const config = createConfigClient(routes); diff --git a/packages/evershop/bin/build/complie.js b/packages/evershop/bin/build/complie.js index a6824ee40..bb864aa83 100644 --- a/packages/evershop/bin/build/complie.js +++ b/packages/evershop/bin/build/complie.js @@ -5,7 +5,7 @@ const { const { createConfigServer } = require('@evershop/evershop/src/lib/webpack/prod/createConfigServer'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); module.exports.compile = async function compile(routes) { const config = [createConfigClient(routes), createConfigServer(routes)]; diff --git a/packages/evershop/bin/build/index.js b/packages/evershop/bin/build/index.js index 6b24e8d27..97b266850 100644 --- a/packages/evershop/bin/build/index.js +++ b/packages/evershop/bin/build/index.js @@ -10,7 +10,7 @@ const { } = require('@evershop/evershop/src/lib/webpack/isBuildRequired'); const { buildEntry } = require('@evershop/evershop/bin/lib/buildEntry'); const { getCoreModules } = require('@evershop/evershop/bin/lib/loadModules'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { compile } = require('./complie'); const { getEnabledExtensions } = require('../extension'); require('dotenv').config(); diff --git a/packages/evershop/bin/build/server/index.js b/packages/evershop/bin/build/server/index.js index f40678525..96f212dd1 100644 --- a/packages/evershop/bin/build/server/index.js +++ b/packages/evershop/bin/build/server/index.js @@ -2,7 +2,7 @@ const webpack = require('webpack'); const { createConfigServer } = require('@evershop/evershop/src/lib/webpack/prod/createConfigServer'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); module.exports.buildServer = async function buildServer(routes) { const config = createConfigServer(routes); diff --git a/packages/evershop/bin/build/server/useDDL.js b/packages/evershop/bin/build/server/useDDL.js index 83905a857..5314e3577 100644 --- a/packages/evershop/bin/build/server/useDDL.js +++ b/packages/evershop/bin/build/server/useDDL.js @@ -11,7 +11,7 @@ const { getComponentsByRoute } = require('@evershop/evershop/src/lib/componee/getComponentByRoute'); const webpack = require('webpack'); -const { info } = require('@evershop/evershop/src/lib/log/debuger'); +const { info } = require('@evershop/evershop/src/lib/log/logger'); const modules = loadModules(path.resolve(__dirname, '../../../src', 'modules')); diff --git a/packages/evershop/bin/evershop b/packages/evershop/bin/evershop index 5ad9f48ad..bd9f4367b 100755 --- a/packages/evershop/bin/evershop +++ b/packages/evershop/bin/evershop @@ -2,16 +2,9 @@ /* eslint-disable global-require */ const yargs = require('yargs/yargs'); const { hideBin } = require('yargs/helpers'); -const { error } = require('../src/lib/log/debuger'); const { argv } = yargs(hideBin(process.argv)); const command = argv._[0]; -process.on('uncaughtException', function (exception) { - error(exception); -}); -process.on('unhandledRejection', (reason, p) => { - error(`Unhandled Rejection: ${reason} at: ${p}`); -}); try { if (command === 'build') { @@ -33,5 +26,13 @@ try { throw new Error('Invalid command'); } } catch (e) { + const { error } = require('../src/lib/log/logger'); error(e); } +const { error } = require('../src/lib/log/logger'); +process.on('uncaughtException', function (exception) { + error(exception); +}); +process.on('unhandledRejection', (reason, p) => { + error(`Unhandled Rejection: ${reason} at: ${p}`); +}); diff --git a/packages/evershop/bin/extension/index.js b/packages/evershop/bin/extension/index.js index 700d55099..b68687e27 100644 --- a/packages/evershop/bin/extension/index.js +++ b/packages/evershop/bin/extension/index.js @@ -3,7 +3,7 @@ const { resolve } = require('path'); const { CONSTANTS } = require('@evershop/evershop/src/lib/helpers'); const { getConfig } = require('@evershop/evershop/src/lib/util/getConfig'); const { getCoreModules } = require('@evershop/evershop/bin/lib/loadModules'); -const { warning } = require('@evershop/evershop/src/lib/log/debuger'); +const { warning } = require('@evershop/evershop/src/lib/log/logger'); let extensions = []; diff --git a/packages/evershop/bin/install/index.js b/packages/evershop/bin/install/index.js index 242f663c8..149ce9cf8 100644 --- a/packages/evershop/bin/install/index.js +++ b/packages/evershop/bin/install/index.js @@ -14,7 +14,7 @@ const { } = require('@evershop/postgres-query-builder'); const { prompt } = require('enquirer'); const { CONSTANTS } = require('@evershop/evershop/src/lib/helpers'); -const { error, success } = require('@evershop/evershop/src/lib/log/debuger'); +const { error, success } = require('@evershop/evershop/src/lib/log/logger'); const { hashPassword } = require('@evershop/evershop/src/lib/util/passwordHelper'); diff --git a/packages/evershop/bin/lib/addDefaultMiddlewareFuncs.js b/packages/evershop/bin/lib/addDefaultMiddlewareFuncs.js index 7ce7bc68b..75f8ac940 100644 --- a/packages/evershop/bin/lib/addDefaultMiddlewareFuncs.js +++ b/packages/evershop/bin/lib/addDefaultMiddlewareFuncs.js @@ -4,7 +4,7 @@ const session = require('express-session'); const sessionStorage = require('connect-pg-simple'); const pathToRegexp = require('path-to-regexp'); const webpack = require('webpack'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { debug } = require('@evershop/evershop/src/lib/log/logger'); const middleware = require('webpack-dev-middleware'); const { createConfigClient @@ -59,7 +59,7 @@ exports.addDefaultMiddlewareFuncs = function addDefaultMiddlewareFuncs( ) { return; } - debug('info', message); + debug(message); }); }); // Add public static middleware diff --git a/packages/evershop/bin/lib/app.js b/packages/evershop/bin/lib/app.js index 0ac979ec0..db524329c 100644 --- a/packages/evershop/bin/lib/app.js +++ b/packages/evershop/bin/lib/app.js @@ -10,7 +10,7 @@ const { loadModuleRoutes } = require('@evershop/evershop/src/lib/router/loadModuleRoutes'); const { Handler } = require('@evershop/evershop/src/lib/middleware/Handler'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { getCoreModules } = require('./loadModules'); const { addDefaultMiddlewareFuncs } = require('./addDefaultMiddlewareFuncs'); const { getEnabledExtensions } = require('../extension'); diff --git a/packages/evershop/bin/lib/bootstrap/migrate.js b/packages/evershop/bin/lib/bootstrap/migrate.js index 26e99b9ff..819cb24dc 100644 --- a/packages/evershop/bin/lib/bootstrap/migrate.js +++ b/packages/evershop/bin/lib/bootstrap/migrate.js @@ -12,7 +12,7 @@ const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); const { existsSync, readdirSync } = require('fs'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { createMigrationTable } = require('../../install/createMigrationTable'); async function getCurrentInstalledVersion(module) { diff --git a/packages/evershop/bin/lib/buildEntry.js b/packages/evershop/bin/lib/buildEntry.js index f183199cb..1dc845f74 100644 --- a/packages/evershop/bin/lib/buildEntry.js +++ b/packages/evershop/bin/lib/buildEntry.js @@ -13,7 +13,7 @@ const { parseGraphql } = require('@evershop/evershop/src/lib/webpack/util/parseGraphql'); const JSON5 = require('json5'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); /** * Only pass the page routes, not api routes */ diff --git a/packages/evershop/bin/lib/onError.js b/packages/evershop/bin/lib/onError.js index a09c7c3bd..87560fddc 100644 --- a/packages/evershop/bin/lib/onError.js +++ b/packages/evershop/bin/lib/onError.js @@ -1,4 +1,4 @@ -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const normalizePort = require('./normalizePort'); const port = normalizePort(); diff --git a/packages/evershop/bin/lib/onListening.js b/packages/evershop/bin/lib/onListening.js index 69005ec6d..b864d3978 100644 --- a/packages/evershop/bin/lib/onListening.js +++ b/packages/evershop/bin/lib/onListening.js @@ -1,5 +1,5 @@ const boxen = require('boxen'); -const { success } = require('@evershop/evershop/src/lib/log/debuger'); +const { success } = require('@evershop/evershop/src/lib/log/logger'); const normalizePort = require('./normalizePort'); const port = normalizePort(); diff --git a/packages/evershop/bin/lib/startUp.js b/packages/evershop/bin/lib/startUp.js index 610ab901e..2f2d0d03b 100644 --- a/packages/evershop/bin/lib/startUp.js +++ b/packages/evershop/bin/lib/startUp.js @@ -2,7 +2,7 @@ const http = require('http'); const { Handler } = require('@evershop/evershop/src/lib/middleware/Handler'); const spawn = require('cross-spawn'); const path = require('path'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const isDevelopmentMode = require('@evershop/evershop/src/lib/util/isDevelopmentMode'); const { lockHooks } = require('@evershop/evershop/src/lib/util/hookable'); const { lockRegistry } = require('@evershop/evershop/src/lib/util/registry'); @@ -22,14 +22,6 @@ const server = http.createServer(app); module.exports.start = async function start(cb) { const modules = [...getCoreModules(), ...getEnabledExtensions()]; - /** Migration */ - try { - await migrate(modules); - } catch (e) { - error(e); - process.exit(0); - } - /** Loading bootstrap script from modules */ try { // eslint-disable-next-line no-restricted-syntax @@ -43,6 +35,15 @@ module.exports.start = async function start(cb) { process.exit(0); } process.env.ALLOW_CONFIG_MUTATIONS = false; + + /** Migration */ + try { + await migrate(modules); + } catch (e) { + error(e); + process.exit(0); + } + /** * Get port from environment and store in Express. */ diff --git a/packages/evershop/bin/lib/watch/watchMF.js b/packages/evershop/bin/lib/watch/watchMF.js index e0dcda06b..27b30a13f 100644 --- a/packages/evershop/bin/lib/watch/watchMF.js +++ b/packages/evershop/bin/lib/watch/watchMF.js @@ -1,6 +1,6 @@ const { normalize, basename } = require('path'); const { Handler } = require('@evershop/evershop/src/lib/middleware/Handler'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { broadcash } = require('./broadcash'); module.exports.watchMF = function (event, path) { diff --git a/packages/evershop/bin/lib/watch/watchMR.js b/packages/evershop/bin/lib/watch/watchMR.js index e4c13e569..8773bbe0d 100644 --- a/packages/evershop/bin/lib/watch/watchMR.js +++ b/packages/evershop/bin/lib/watch/watchMR.js @@ -3,7 +3,7 @@ const { existsSync } = require('fs'); const { resolve } = require('path'); const { CONSTANTS } = require('@evershop/evershop/src/lib/helpers'); const { Handler } = require('@evershop/evershop/src/lib/middleware/Handler'); -const { info, error } = require('@evershop/evershop/src/lib/log/debuger'); +const { info, error } = require('@evershop/evershop/src/lib/log/logger'); const { updateApp } = require('../startUp'); const { broadcash } = require('./broadcash'); diff --git a/packages/evershop/bin/lib/watch/watchSchema.js b/packages/evershop/bin/lib/watch/watchSchema.js index 54e674e06..b84be6903 100644 --- a/packages/evershop/bin/lib/watch/watchSchema.js +++ b/packages/evershop/bin/lib/watch/watchSchema.js @@ -1,6 +1,6 @@ const { normalize, resolve } = require('path'); const { CONSTANTS } = require('@evershop/evershop/src/lib/helpers'); -const { info } = require('@evershop/evershop/src/lib/log/debuger'); +const { info } = require('@evershop/evershop/src/lib/log/logger'); const { broadcash } = require('./broadcash'); module.exports.watchSchema = function (event, path) { diff --git a/packages/evershop/bin/user/changePassword.js b/packages/evershop/bin/user/changePassword.js index 47a47e7a9..5496c2370 100644 --- a/packages/evershop/bin/user/changePassword.js +++ b/packages/evershop/bin/user/changePassword.js @@ -1,5 +1,5 @@ require('dotenv').config(); -const { error, success } = require('@evershop/evershop/src/lib/log/debuger'); +const { error, success } = require('@evershop/evershop/src/lib/log/logger'); const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); const { hashPassword diff --git a/packages/evershop/bin/user/create.js b/packages/evershop/bin/user/create.js index 4f6e39f9d..046925abc 100644 --- a/packages/evershop/bin/user/create.js +++ b/packages/evershop/bin/user/create.js @@ -1,5 +1,5 @@ require('dotenv').config(); -const { error, success } = require('@evershop/evershop/src/lib/log/debuger'); +const { error, success } = require('@evershop/evershop/src/lib/log/logger'); const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); const { hashPassword diff --git a/packages/evershop/src/components/admin/oms/shippingSetting/Zone.jsx b/packages/evershop/src/components/admin/oms/shippingSetting/Zone.jsx index 45bcfceb5..dcf7dedf7 100644 --- a/packages/evershop/src/components/admin/oms/shippingSetting/Zone.jsx +++ b/packages/evershop/src/components/admin/oms/shippingSetting/Zone.jsx @@ -1,5 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; +import axios from 'axios'; +import { toast } from 'react-toastify'; import { Card } from '@components/admin/cms/Card'; import MapIcon from '@heroicons/react/solid/esm/LocationMarkerIcon'; import { useModal } from '@components/common/modal/useModal'; @@ -13,7 +15,7 @@ function Zone({ zone, countries, getZones }) { title={
{zone.name}
-
+
Edit Zone + { + e.preventDefault(); + try { + const response = await axios.delete(zone.deleteApi); + if (response.status === 200) { + // Toast success + toast.success('Zone removed successfully'); + // Delay for 2 seconds + setTimeout(() => { + // Reload page + window.location.reload(); + }, 1500); + } else { + // Toast error + toast.error('Failed to remove zone'); + } + } catch (error) { + // Toast error + toast.error('Failed to remove zone'); + } + }} + > + Remove Zone +
} @@ -35,7 +64,7 @@ function Zone({ zone, countries, getZones }) {
- {zone.country.name} + {zone.country?.name || 'Worldwide'}
{zone.provinces @@ -97,6 +126,7 @@ Zone.propTypes = { }) ), addMethodApi: PropTypes.string, + deleteApi: PropTypes.string, updateApi: PropTypes.string }).isRequired, countries: PropTypes.arrayOf( diff --git a/packages/evershop/src/components/admin/oms/shippingSetting/Zones.jsx b/packages/evershop/src/components/admin/oms/shippingSetting/Zones.jsx index 57bb10c3f..9740aab22 100644 --- a/packages/evershop/src/components/admin/oms/shippingSetting/Zones.jsx +++ b/packages/evershop/src/components/admin/oms/shippingSetting/Zones.jsx @@ -5,7 +5,9 @@ import Zone from './Zone'; export function Zones({ countries, getZones, zones }) { return ( <> - {zones.map((zone) => )} + {zones.map((zone) => ( + + ))} ); } @@ -34,7 +36,8 @@ Zones.propTypes = { uuid: PropTypes.string.isRequired, name: PropTypes.string.isRequired }) - ).isRequired + ).isRequired, + deleteApi: PropTypes.string.isRequired }) ).isRequired, getZones: PropTypes.func.isRequired diff --git a/packages/evershop/src/lib/event/event-manager.js b/packages/evershop/src/lib/event/event-manager.js index 3cfbe2559..78f7eaff0 100644 --- a/packages/evershop/src/lib/event/event-manager.js +++ b/packages/evershop/src/lib/event/event-manager.js @@ -7,7 +7,7 @@ const { getCoreModules } = require('@evershop/evershop/bin/lib/loadModules'); const { getEnabledExtensions } = require('@evershop/evershop/bin/extension'); const { callSubscribers } = require('./callSubscibers'); const { loadSubscribers } = require('./loadSubscribers'); -const { error } = require('../log/debuger'); +const { error } = require('../log/logger'); const { lockHooks } = require('../util/hookable'); const { lockRegistry } = require('../util/registry'); diff --git a/packages/evershop/src/lib/event/loadSubscribers.js b/packages/evershop/src/lib/event/loadSubscribers.js index dc5399fce..49072f74c 100644 --- a/packages/evershop/src/lib/event/loadSubscribers.js +++ b/packages/evershop/src/lib/event/loadSubscribers.js @@ -1,6 +1,6 @@ const path = require('path'); const fs = require('fs'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); function loadModuleSubscribers(modulePath) { const subscribers = []; @@ -46,7 +46,7 @@ module.exports.loadSubscribers = function loadSubscribers(modules) { // Load routes subscribers.push(...loadModuleSubscribers(module.path)); } catch (e) { - debug('critical', e); + error(e); process.exit(0); } }); diff --git a/packages/evershop/src/lib/log/CustomColorize.js b/packages/evershop/src/lib/log/CustomColorize.js new file mode 100644 index 000000000..efd2266ca --- /dev/null +++ b/packages/evershop/src/lib/log/CustomColorize.js @@ -0,0 +1,22 @@ +// Extend the default winston colorize format and add color to the stack trace +const { format } = require('winston'); +const { LEVEL } = require('triple-beam'); + +const { colorize } = format; + +class CustomColorize extends colorize.Colorizer { + constructor(opts = {}) { + super(opts); + } + + transform(info, opts) { + super.transform(info, opts); + if (info.stack) { + // eslint-disable-next-line no-param-reassign + info.stack = this.colorize(info[LEVEL], info.level, info.stack); + } + return info; + } +} + +module.exports = (opts) => new CustomColorize(opts); diff --git a/packages/evershop/src/lib/log/debuger.js b/packages/evershop/src/lib/log/debuger.js deleted file mode 100644 index 17dcdb80b..000000000 --- a/packages/evershop/src/lib/log/debuger.js +++ /dev/null @@ -1,89 +0,0 @@ -const { green, red, blue, yellow, white } = require('kleur'); -const isDevelopmentMode = require('../util/isDevelopmentMode'); - -// Define logger function -function debug(level, message) { - if (isDevelopmentMode() || process.argv.includes('--debug')) { - let logMessage = ``; - let textMessage = `${message}`; - // If message is an exception object, include the stack trace - if (message instanceof Error) { - textMessage = `${message.message}\n${message.stack}`; - } - // Switch color based on level - switch (level) { - case 'critical': - logMessage += red(`[debug] ❌ ${textMessage}`); - break; - case 'warning': - logMessage += yellow(`[debug] ⚠️ ${textMessage}`); - break; - case 'info': - logMessage += blue(`[debug] ℹ️ ${textMessage}`); - break; - case 'success': - logMessage += green(`[debug] ✅ ${textMessage}`); - break; - default: - logMessage += white(`[debug] - ${textMessage}`); - break; - } - - // If message is added to a group, store it in the group - if (this.group && Array.isArray(this.group.messages)) { - this.group.messages.push(logMessage); - return; // Do not output message to console or file - } - - // eslint-disable-next-line no-console - console.log(logMessage); - } else { - // Do not output message to console or file - } -} - -function error(e) { - // Check if e is a string message - if (typeof e === 'string') { - // eslint-disable-next-line no-console - console.log(`\n❌ ${red(e)}\n`); - } else if (e instanceof Error) { - // eslint-disable-next-line no-console - console.log(`\n❌ ${red(e.stack)}`); - } else { - throw new Error('Error message must be a string or an Error object'); - } -} - -function warning(message) { - if (typeof message === 'string' || typeof message === 'number') { - // eslint-disable-next-line no-console - console.log(`\n⚠️ ${yellow(message)}\n`); - } else { - throw new Error('Warning message must be a string or number'); - } -} - -function info(message) { - if (typeof message === 'string' || typeof message === 'number') { - // eslint-disable-next-line no-console - console.log(`\nℹ️ ${blue(message)}\n`); - } else { - throw new Error('Warning message must be a string or number'); - } -} - -function success(message) { - if (typeof message === 'string' || typeof message === 'number') { - // eslint-disable-next-line no-console - console.log(`\n✅ ${green(message)}\n`); - } else { - throw new Error('Warning message must be a string or number'); - } -} - -module.exports.success = success; -module.exports.info = info; -module.exports.warning = warning; -module.exports.error = error; -module.exports.debug = debug; diff --git a/packages/evershop/src/lib/log/logger.js b/packages/evershop/src/lib/log/logger.js index 676e56be0..b5cbcbc5e 100644 --- a/packages/evershop/src/lib/log/logger.js +++ b/packages/evershop/src/lib/log/logger.js @@ -1,24 +1,151 @@ +/* eslint-disable no-param-reassign */ const winston = require('winston'); -const path = require('path'); -const { CONSTANTS } = require('../helpers'); - -const logger = winston.createLogger({ - level: 'info', - format: winston.format.json(), - defaultMeta: { service: 'user-service' }, - transports: [ - new winston.transports.File({ - filename: path.resolve(CONSTANTS.ROOTPATH, '.log/error.log'), - level: 'error' - }) - ] -}); -// Call exceptions.handle with a transport to handle exceptions -logger.exceptions.handle( - new winston.transports.File({ - filename: path.resolve(CONSTANTS.ROOTPATH, '.log/exceptions.log') + +const { errors } = winston.format; +const customColorize = require('./CustomColorize'); +const isDevelopmentMode = require('../util/isDevelopmentMode'); +const { getEnv } = require('../util/getEnv'); +const { getValueSync } = require('../util/registry'); + +const isDebugging = isDevelopmentMode() || process.argv.includes('--debug'); +const format = winston.format.combine( + errors({ stack: true }), + customColorize({ + colors: { + error: 'red', + warn: 'yellow', + info: 'green', + http: 'blue', + verbose: 'cyan', + debug: 'magenta', + silly: 'gray' + }, + level: false, + message: true + }), + winston.format.printf(({ level, message, stack }) => { + let icon; + switch (level) { + case 'error': + icon = '❌'; // Error icon + break; + case 'warn': + icon = '⚠️'; // Warning icon + break; + case 'info': + icon = 'ℹ️'; // Info icon + break; + case 'http': + icon = '🌐'; // HTTP icon + break; + case 'verbose': + icon = '🔍'; // Verbose icon + break; + case 'debug': + icon = '🐛'; // Debug icon + break; + case 'silly': + icon = '🤪'; // Silly icon + break; + default: + icon = ''; + break; + } + // Now apply color to the icon and level + switch (level) { + case 'error': + level = `\x1b[31m${level}\x1b[0m`; // Red color + icon = `\x1b[31m${icon}\x1b[0m`; // Red color + break; + case 'warn': + level = `\x1b[33m${level}\x1b[0m`; // Yellow color + icon = `\x1b[33m${icon}\x1b[0m`; // Yellow color + break; + case 'info': + level = `\x1b[32m${level}\x1b[0m`; // Green color + icon = `\x1b[32m${icon}\x1b[0m`; // Green color + break; + case 'http': + level = `\x1b[34m${level}\x1b[0m`; // Blue color + icon = `\x1b[34m${icon}\x1b[0m`; // Blue color + break; + case 'verbose': + level = `\x1b[36m${level}\x1b[0m`; // Cyan color + icon = `\x1b[36m${icon}\x1b[0m`; // Cyan color + break; + case 'debug': + level = `\x1b[35m${level}\x1b[0m`; // Magenta color + icon = `\x1b[35m${icon}\x1b[0m`; // Magenta color + break; + case 'silly': + level = `\x1b[37m${level}\x1b[0m`; // Gray color + icon = `\x1b[37m${icon}\x1b[0m`; // Gray color + break; + default: + break; + } + if (stack) { + message = `${message}\n${stack}`; + } + return `${icon} ${level}: \n${message}`; }) ); +const consoleTransport = new winston.transports.Console(); +const logFile = getEnv('LOG_FILE', undefined); +// Default transports +const DEFAULT_CONFIG = { + level: isDebugging ? 'silly' : getEnv('LOGGER_LEVEL', 'warn'), + format, + // By default, log to console + transports: + isDebugging || !logFile + ? [consoleTransport] + : [new winston.transports.File({ filename: logFile })], + exceptionHandlers: + isDebugging || !logFile + ? [consoleTransport] + : [new winston.transports.File({ filename: logFile })] +}; + +function createLogger() { + const config = getValueSync('logger_configuration', DEFAULT_CONFIG, { + isDebugging + }); + + return getValueSync('logger', winston.createLogger(config), { isDebugging }); +} + +// Define logger function +function debug(message) { + const logger = createLogger(); + logger.debug(message); +} + +function error(e) { + const logger = createLogger(); + logger.error(e); +} + +function warning(message) { + const logger = createLogger(); + logger.warn(message); +} + +function info(message) { + const logger = createLogger(); + logger.info(message); +} + +function success(message) { + const logger = createLogger(); + logger.info(message); +} // eslint-disable-next-line no-multi-assign -module.exports = exports = logger; +module.exports = exports = { + success, + info, + warning, + error, + debug +}; diff --git a/packages/evershop/src/lib/middleware/Handler.js b/packages/evershop/src/lib/middleware/Handler.js index 735d3ca4a..15b593be0 100644 --- a/packages/evershop/src/lib/middleware/Handler.js +++ b/packages/evershop/src/lib/middleware/Handler.js @@ -5,7 +5,7 @@ const { sortMiddlewares } = require('./sort'); const { parseFromFile } = require('./parseFromFile'); const { noDublicateId } = require('./noDuplicateId'); const { getRoutes } = require('../router/Router'); -const { error } = require('../log/debuger'); +const { error } = require('../log/logger'); class Handler { static middlewares = []; @@ -99,8 +99,7 @@ class Handler { static middleware() { return (request, response, next) => { request.params = { - - ...request.locals?.customParams || {}, + ...(request.locals?.customParams || {}), ...request.params }; const { currentRoute } = request; diff --git a/packages/evershop/src/lib/middleware/async.js b/packages/evershop/src/lib/middleware/async.js index e512c16cf..eb0babf33 100644 --- a/packages/evershop/src/lib/middleware/async.js +++ b/packages/evershop/src/lib/middleware/async.js @@ -1,5 +1,4 @@ const logger = require('@evershop/evershop/src/lib/log/logger'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); const { setDelegate } = require('./delegate'); // eslint-disable-next-line no-multi-assign @@ -36,11 +35,11 @@ exports.asyncMiddlewareWrapper = async function asyncMiddlewareWrapper( await delegate; } catch (e) { // Log the error - logger.log('error', `Exception in middleware ${id}`, { + logger.error(`Exception in middleware ${id}`, { message: e.message, stack: e.stack }); - debug('critical', `Exception in middleware ${id}`); + logger.error(`Exception in middleware ${id}`); // Call error handler middleware if it is not called yet next(e); } diff --git a/packages/evershop/src/lib/middleware/sync.js b/packages/evershop/src/lib/middleware/sync.js index 438ee0b61..011b3e740 100644 --- a/packages/evershop/src/lib/middleware/sync.js +++ b/packages/evershop/src/lib/middleware/sync.js @@ -1,5 +1,4 @@ const logger = require('@evershop/evershop/src/lib/log/logger'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); const { setDelegate } = require('./delegate'); // eslint-disable-next-line no-multi-assign @@ -35,11 +34,8 @@ exports.syncMiddlewareWrapper = function syncMiddlewareWrapper( setDelegate(id, delegate, request); } catch (e) { // Log the error - logger.log('error', `Exception in middleware ${id}`, { - message: e.message, - stack: e.stack - }); - debug('critical', `Exception in middleware ${id}`); + logger.error(`Exception in middleware ${id}`); + logger.error(e); // Call error handler middleware if it is not called yet next(e); diff --git a/packages/evershop/src/lib/middleware/tests/app/app.js b/packages/evershop/src/lib/middleware/tests/app/app.js index 5791c0eb2..a04e6b75a 100644 --- a/packages/evershop/src/lib/middleware/tests/app/app.js +++ b/packages/evershop/src/lib/middleware/tests/app/app.js @@ -13,7 +13,7 @@ const { once } = require('events'); const { getModuleMiddlewares } = require('../..'); const { getRoutes } = require('../../../router/Router'); const { Handler } = require('../../Handler'); -const { error } = require('../../../log/debuger'); +const { error } = require('../../../log/logger'); /** Create express app */ const app = express(); diff --git a/packages/evershop/src/lib/util/registry.js b/packages/evershop/src/lib/util/registry.js index 806685157..a253f87a0 100644 --- a/packages/evershop/src/lib/util/registry.js +++ b/packages/evershop/src/lib/util/registry.js @@ -200,6 +200,12 @@ module.exports = { }, lockRegistry() { + // Reset the values cache by removing all values from all properties in the registry values + Object.keys(registry.values).forEach((key) => { + if (Object.prototype.hasOwnProperty.call(registry.values, key)) { + delete registry.values[key].value; + } + }); locked = true; } }; diff --git a/packages/evershop/src/lib/webpack/loaders/AreaLoader.js b/packages/evershop/src/lib/webpack/loaders/AreaLoader.js index 941a6ceac..ba885ef72 100644 --- a/packages/evershop/src/lib/webpack/loaders/AreaLoader.js +++ b/packages/evershop/src/lib/webpack/loaders/AreaLoader.js @@ -2,7 +2,7 @@ const fs = require('fs'); const { inspect } = require('util'); const JSON5 = require('json5'); const { CONSTANTS } = require('../../helpers'); -const { error } = require('../../log/debuger'); +const { error } = require('../../log/logger'); /* eslint-disable no-multi-assign */ /* eslint-disable global-require */ diff --git a/packages/evershop/src/lib/webpack/loaders/loadTranslationFromCsv.js b/packages/evershop/src/lib/webpack/loaders/loadTranslationFromCsv.js index 1679235ca..314bcbd7f 100644 --- a/packages/evershop/src/lib/webpack/loaders/loadTranslationFromCsv.js +++ b/packages/evershop/src/lib/webpack/loaders/loadTranslationFromCsv.js @@ -3,7 +3,7 @@ const path = require('path'); const { getConfig } = require('../../util/getConfig'); const { CONSTANTS } = require('../../helpers'); const { readCsvFile } = require('../../util/readCsvFile'); -const { error } = require('../../log/debuger'); +const { error } = require('../../log/logger'); module.exports.loadCsvTranslationFiles = async function loadCsvTranslationFiles() { diff --git a/packages/evershop/src/lib/webpack/plugins/Tailwindcss.js b/packages/evershop/src/lib/webpack/plugins/Tailwindcss.js index ddb4c6387..4c41db1b5 100644 --- a/packages/evershop/src/lib/webpack/plugins/Tailwindcss.js +++ b/packages/evershop/src/lib/webpack/plugins/Tailwindcss.js @@ -7,7 +7,7 @@ const autoprefixer = require('autoprefixer'); const CleanCSS = require('clean-css'); const { Compilation, sources } = require('webpack'); const { getTailwindConfig } = require('../util/getTailwindConfig'); -const { error } = require('../../log/debuger'); +const { error } = require('../../log/logger'); // eslint-disable-next-line no-multi-assign module.exports = exports = {}; diff --git a/packages/evershop/src/modules/base/api/global/[apiResponse]apiErrorHandler.js b/packages/evershop/src/modules/base/api/global/[apiResponse]apiErrorHandler.js index 4e664a669..732c596b8 100644 --- a/packages/evershop/src/modules/base/api/global/[apiResponse]apiErrorHandler.js +++ b/packages/evershop/src/modules/base/api/global/[apiResponse]apiErrorHandler.js @@ -1,11 +1,11 @@ const { INTERNAL_SERVER_ERROR } = require('@evershop/evershop/src/lib/util/httpStatus'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); // eslint-disable-next-line no-unused-vars module.exports = async (err, request, response, delegate, next) => { - debug('critical', err); + error(err); // Set this flag to make sure this middleware only be executed 1 time response.locals.errorHandlerTriggered = true; const promises = []; diff --git a/packages/evershop/src/modules/base/pages/global/[response]errorHandler.js b/packages/evershop/src/modules/base/pages/global/[response]errorHandler.js index be2daa5fb..53a712f2e 100644 --- a/packages/evershop/src/modules/base/pages/global/[response]errorHandler.js +++ b/packages/evershop/src/modules/base/pages/global/[response]errorHandler.js @@ -2,11 +2,11 @@ const { encode } = require('html-entities'); const { INTERNAL_SERVER_ERROR } = require('@evershop/evershop/src/lib/util/httpStatus'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); // eslint-disable-next-line no-unused-vars module.exports = async (err, request, response, delegate, next) => { - debug('critical', err); + error(err); // Set this flag to make sure this middleware only be executed 1 time response.locals.errorHandlerTriggered = true; const promises = []; diff --git a/packages/evershop/src/modules/catalog/api/addProductToCategory/addProducts.js b/packages/evershop/src/modules/catalog/api/addProductToCategory/addProducts.js index 22c8791ee..6dfe43a8d 100644 --- a/packages/evershop/src/modules/catalog/api/addProductToCategory/addProducts.js +++ b/packages/evershop/src/modules/catalog/api/addProductToCategory/addProducts.js @@ -1,4 +1,4 @@ -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); const { INVALID_PAYLOAD, diff --git a/packages/evershop/src/modules/catalog/api/addProductToCollection/addProducts.js b/packages/evershop/src/modules/catalog/api/addProductToCollection/addProducts.js index ca188c70d..0943d5723 100644 --- a/packages/evershop/src/modules/catalog/api/addProductToCollection/addProducts.js +++ b/packages/evershop/src/modules/catalog/api/addProductToCollection/addProducts.js @@ -1,4 +1,4 @@ -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { getConnection } = require('@evershop/evershop/src/lib/postgres/connection'); diff --git a/packages/evershop/src/modules/catalog/services/product/updateProduct.js b/packages/evershop/src/modules/catalog/services/product/updateProduct.js index 8f302e7b6..de3b95c13 100644 --- a/packages/evershop/src/modules/catalog/services/product/updateProduct.js +++ b/packages/evershop/src/modules/catalog/services/product/updateProduct.js @@ -16,7 +16,7 @@ const { const { getConnection } = require('@evershop/evershop/src/lib/postgres/connection'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { getAjv } = require('../../../base/services/getAjv'); const productDataSchema = require('./productDataSchema.json'); @@ -248,7 +248,7 @@ async function updateProductImages(images, productId, connection) { ) ); } catch (e) { - debug('critical', e); + error(e); throw e; } } diff --git a/packages/evershop/src/modules/catalog/subscribers/category_created/buildUrlRewrite.js b/packages/evershop/src/modules/catalog/subscribers/category_created/buildUrlRewrite.js index bebde5dc0..ca0aa2329 100644 --- a/packages/evershop/src/modules/catalog/subscribers/category_created/buildUrlRewrite.js +++ b/packages/evershop/src/modules/catalog/subscribers/category_created/buildUrlRewrite.js @@ -1,4 +1,4 @@ -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); const { execute, diff --git a/packages/evershop/src/modules/catalog/subscribers/category_deleted/deleteUrlRewrite.js b/packages/evershop/src/modules/catalog/subscribers/category_deleted/deleteUrlRewrite.js index 07ede9d99..88bea537b 100644 --- a/packages/evershop/src/modules/catalog/subscribers/category_deleted/deleteUrlRewrite.js +++ b/packages/evershop/src/modules/catalog/subscribers/category_deleted/deleteUrlRewrite.js @@ -1,4 +1,4 @@ -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); const { execute, select } = require('@evershop/postgres-query-builder'); diff --git a/packages/evershop/src/modules/catalog/subscribers/category_updated/builUrlRewrite.js b/packages/evershop/src/modules/catalog/subscribers/category_updated/builUrlRewrite.js index 7d201ce32..6316c65e4 100644 --- a/packages/evershop/src/modules/catalog/subscribers/category_updated/builUrlRewrite.js +++ b/packages/evershop/src/modules/catalog/subscribers/category_updated/builUrlRewrite.js @@ -1,4 +1,4 @@ -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); const { execute, diff --git a/packages/evershop/src/modules/catalog/subscribers/product_created/builUrlRewrite.js b/packages/evershop/src/modules/catalog/subscribers/product_created/builUrlRewrite.js index c71bb43f0..d7f481275 100644 --- a/packages/evershop/src/modules/catalog/subscribers/product_created/builUrlRewrite.js +++ b/packages/evershop/src/modules/catalog/subscribers/product_created/builUrlRewrite.js @@ -1,4 +1,4 @@ -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); const { select, insertOnUpdate } = require('@evershop/postgres-query-builder'); diff --git a/packages/evershop/src/modules/catalog/subscribers/product_image_added/localGenerateProductImageVariant.js b/packages/evershop/src/modules/catalog/subscribers/product_image_added/localGenerateProductImageVariant.js index a5b8c3df6..cb4868eb3 100644 --- a/packages/evershop/src/modules/catalog/subscribers/product_image_added/localGenerateProductImageVariant.js +++ b/packages/evershop/src/modules/catalog/subscribers/product_image_added/localGenerateProductImageVariant.js @@ -5,7 +5,7 @@ const sharp = require('sharp'); const { update } = require('@evershop/postgres-query-builder'); const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); const { CONSTANTS } = require('@evershop/evershop/src/lib/helpers'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); module.exports = async function localGenerateProductImageVariant(data) { if (getConfig('system.file_storage') === 'local') { @@ -55,8 +55,8 @@ module.exports = async function localGenerateProductImageVariant(data) { .where('product_image_product_id', '=', data.product_image_product_id) .and('origin_image', '=', data.origin_image) .execute(pool); - } catch (error) { - debug('critical', error); + } catch (e) { + error(e); } } }; diff --git a/packages/evershop/src/modules/checkout/api/deleteShippingZone/deleteShippingZone.js b/packages/evershop/src/modules/checkout/api/deleteShippingZone/deleteShippingZone.js new file mode 100644 index 000000000..f72478e5b --- /dev/null +++ b/packages/evershop/src/modules/checkout/api/deleteShippingZone/deleteShippingZone.js @@ -0,0 +1,61 @@ +/* eslint-disable camelcase */ +const { + rollback, + commit, + startTransaction, + del, + select +} = require('@evershop/postgres-query-builder'); +const { + getConnection +} = require('@evershop/evershop/src/lib/postgres/connection'); +const { + OK, + INTERNAL_SERVER_ERROR, + INVALID_PAYLOAD +} = require('@evershop/evershop/src/lib/util/httpStatus'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); + +// eslint-disable-next-line no-unused-vars +module.exports = async (request, response, deledate, next) => { + const { id } = request.params; + const connection = await getConnection(); + await startTransaction(connection); + try { + // Load the shipping zone + const shippingZone = await select() + .from('shipping_zone') + .where('uuid', '=', id) + .load(connection); + + if (!shippingZone) { + response.status(INVALID_PAYLOAD); + response.json({ + error: { + status: INVALID_PAYLOAD, + message: 'Invalid zone id' + } + }); + return; + } + const zone = await del('shipping_zone') + .where('uuid', '=', id) + .execute(connection); + + await commit(connection); + response.status(OK); + response.json({ + data: zone + }); + } catch (e) { + error(e); + await rollback(connection); + response.status(INTERNAL_SERVER_ERROR); + response.json({ + error: { + status: INTERNAL_SERVER_ERROR, + message: e.message + } + }); + } +}; diff --git a/packages/evershop/src/modules/checkout/api/deleteShippingZone/route.json b/packages/evershop/src/modules/checkout/api/deleteShippingZone/route.json new file mode 100644 index 000000000..7d3b5f1fc --- /dev/null +++ b/packages/evershop/src/modules/checkout/api/deleteShippingZone/route.json @@ -0,0 +1,5 @@ +{ + "methods": ["DELETE"], + "path": "/shippingZones/:id", + "access": "private" +} diff --git a/packages/evershop/src/modules/checkout/bootstrap.js b/packages/evershop/src/modules/checkout/bootstrap.js index 6e5f1e716..7def465d5 100644 --- a/packages/evershop/src/modules/checkout/bootstrap.js +++ b/packages/evershop/src/modules/checkout/bootstrap.js @@ -1,4 +1,4 @@ -const { error } = require('../../lib/log/debuger'); +const { error } = require('../../lib/log/logger'); const { addProcessor, addFinalProcessor } = require('../../lib/util/registry'); const { sortFields } = require('./services/cart/sortFields'); const { diff --git a/packages/evershop/src/modules/checkout/graphql/types/ShippingZone/ShippingZone.graphql b/packages/evershop/src/modules/checkout/graphql/types/ShippingZone/ShippingZone.graphql index 573630922..dfd7b927b 100644 --- a/packages/evershop/src/modules/checkout/graphql/types/ShippingZone/ShippingZone.graphql +++ b/packages/evershop/src/modules/checkout/graphql/types/ShippingZone/ShippingZone.graphql @@ -22,10 +22,11 @@ type ShippingZone { shipping_zone_id: Int! uuid: String! name: String! - country: Country! + country: Country provinces: [Province] methods: [ShippingMethodByZone] updateApi: String! + deleteApi: String! addMethodApi: String! removeMethodApi: String! } diff --git a/packages/evershop/src/modules/checkout/graphql/types/ShippingZone/ShippingZone.resolvers.js b/packages/evershop/src/modules/checkout/graphql/types/ShippingZone/ShippingZone.resolvers.js index bb71a0777..6ce38e780 100644 --- a/packages/evershop/src/modules/checkout/graphql/types/ShippingZone/ShippingZone.resolvers.js +++ b/packages/evershop/src/modules/checkout/graphql/types/ShippingZone/ShippingZone.resolvers.js @@ -1,4 +1,5 @@ const { select } = require('@evershop/postgres-query-builder'); +const { contries } = require('@evershop/evershop/src/lib/locale/countries'); const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); const { camelCase } = require('@evershop/evershop/src/lib/util/camelCase'); const { buildUrl } = require('@evershop/evershop/src/lib/router/buildUrl'); @@ -36,6 +37,18 @@ module.exports = { const methods = await query.execute(pool); return methods.map((row) => camelCase(row)); }, + country: ({ country }) => { + if (!country) { + return null; + } else { + const c = contries.find((p) => p.code === country); + if (c) { + return c; + } else { + return null; + } + } + }, provinces: async ({ shippingZoneId }) => { const provinces = await select('province') .from('shipping_zone_province') @@ -43,10 +56,10 @@ module.exports = { .execute(pool); return provinces.map((row) => row.province); }, - updateApi: async ({ uuid }) => buildUrl('updateShippingZone', { id: uuid }), - addMethodApi: async ({ uuid }) => - buildUrl('addShippingZoneMethod', { id: uuid }), - removeMethodApi: async ({ uuid }) => + updateApi: ({ uuid }) => buildUrl('updateShippingZone', { id: uuid }), + deleteApi: ({ uuid }) => buildUrl('deleteShippingZone', { id: uuid }), + addMethodApi: ({ uuid }) => buildUrl('addShippingZoneMethod', { id: uuid }), + removeMethodApi: ({ uuid }) => buildUrl('removeShippingZoneMethod', { id: uuid }) }, ShippingMethodByZone: { diff --git a/packages/evershop/src/modules/checkout/graphql/types/Weight/Weight.resolvers.js b/packages/evershop/src/modules/checkout/graphql/types/Weight/Weight.resolvers.js index eb46be41b..e704907ef 100644 --- a/packages/evershop/src/modules/checkout/graphql/types/Weight/Weight.resolvers.js +++ b/packages/evershop/src/modules/checkout/graphql/types/Weight/Weight.resolvers.js @@ -1,20 +1,17 @@ -const { getSetting } = require('../../../../setting/services/setting'); +const { getConfig } = require('@evershop/evershop/src/lib/util/getConfig'); module.exports = { Weight: { - value: (raw) => parseFloat(raw), // TODO: Format for decimal value? - unit: async () => { - const unit = await getSetting('weightUnit', 'kg'); + value: (raw) => parseFloat(raw), + unit: () => { + const unit = getConfig('shop.weightUnit', 'kg'); return unit; }, - text: async (raw) => { - const weight = parseFloat(raw); // TODO: Format for decimal value? - const unit = await getSetting('weightUnit', 'kg'); - const language = await getSetting('storeLanguage', 'en'); + text: (raw) => { + const weight = parseFloat(raw); + const unit = getConfig('shop.weightUnit', 'kg'); // Localize the weight - return new Intl.NumberFormat(language, { style: 'unit', unit }).format( - weight - ); + return `${weight} ${unit}`; } } }; diff --git a/packages/evershop/src/modules/checkout/pages/frontStore/all/[auth]addCustomerToCart.js b/packages/evershop/src/modules/checkout/pages/frontStore/all/[auth]addCustomerToCart.js index e7431898e..8698583a5 100644 --- a/packages/evershop/src/modules/checkout/pages/frontStore/all/[auth]addCustomerToCart.js +++ b/packages/evershop/src/modules/checkout/pages/frontStore/all/[auth]addCustomerToCart.js @@ -1,6 +1,6 @@ const { select, update } = require('@evershop/postgres-query-builder'); const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); module.exports = async (request, response, delegate, next) => { try { @@ -25,8 +25,8 @@ module.exports = async (request, response, delegate, next) => { .execute(pool); } } - } catch (error) { - debug('critical', error); + } catch (e) { + error(e); } next(); }; diff --git a/packages/evershop/src/modules/checkout/services/cart/DataObject.js b/packages/evershop/src/modules/checkout/services/cart/DataObject.js index f0c991fe6..34261ce45 100644 --- a/packages/evershop/src/modules/checkout/services/cart/DataObject.js +++ b/packages/evershop/src/modules/checkout/services/cart/DataObject.js @@ -1,6 +1,6 @@ /* eslint-disable no-underscore-dangle */ const isEqualWith = require('lodash/isEqualWith'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); module.exports.DataObject = class DataObject { #fields; diff --git a/packages/evershop/src/modules/customer/api/createCustomer/[bodyParser]createCustomer.js b/packages/evershop/src/modules/customer/api/createCustomer/[bodyParser]createCustomer.js index 741b6f8ce..03ae6076a 100644 --- a/packages/evershop/src/modules/customer/api/createCustomer/[bodyParser]createCustomer.js +++ b/packages/evershop/src/modules/customer/api/createCustomer/[bodyParser]createCustomer.js @@ -3,7 +3,7 @@ const { INTERNAL_SERVER_ERROR } = require('@evershop/evershop/src/lib/util/httpStatus'); const { buildUrl } = require('@evershop/evershop/src/lib/router/buildUrl'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const createCustomer = require('../../services/customer/createCustomer'); // eslint-disable-next-line no-unused-vars @@ -36,7 +36,7 @@ module.exports = async (request, response, delegate, next) => { }; next(); } catch (e) { - debug('critical', e); + error(e); response.status(INTERNAL_SERVER_ERROR); response.json({ error: { diff --git a/packages/evershop/src/modules/customer/api/resetPassword/[bodyParser]resetPassword.js b/packages/evershop/src/modules/customer/api/resetPassword/[bodyParser]resetPassword.js index 2648ba514..df0441991 100644 --- a/packages/evershop/src/modules/customer/api/resetPassword/[bodyParser]resetPassword.js +++ b/packages/evershop/src/modules/customer/api/resetPassword/[bodyParser]resetPassword.js @@ -4,7 +4,7 @@ const { OK, INTERNAL_SERVER_ERROR } = require('@evershop/evershop/src/lib/util/httpStatus'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const crypto = require('crypto'); // eslint-disable-next-line no-unused-vars @@ -45,7 +45,7 @@ module.exports = async (request, response, delegate, next) => { // An extension can add a middleware to this route to send email next(); } catch (e) { - debug('critical', e); + error(e); response.status(INTERNAL_SERVER_ERROR); response.json({ error: { diff --git a/packages/evershop/src/modules/customer/api/updatePassword/[bodyParser]updatePassword.js b/packages/evershop/src/modules/customer/api/updatePassword/[bodyParser]updatePassword.js index cdbecb045..d759a5bbb 100644 --- a/packages/evershop/src/modules/customer/api/updatePassword/[bodyParser]updatePassword.js +++ b/packages/evershop/src/modules/customer/api/updatePassword/[bodyParser]updatePassword.js @@ -9,7 +9,7 @@ const { INTERNAL_SERVER_ERROR, INVALID_PAYLOAD } = require('@evershop/evershop/src/lib/util/httpStatus'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { getConfig } = require('@evershop/evershop/src/lib/util/getConfig'); const updatePassword = require('../../services/customer/updatePassword'); @@ -72,7 +72,7 @@ module.exports = async (request, response, delegate, next) => { response.$body = {}; next(); } catch (e) { - debug('critical', e); + error(e); response.status(INTERNAL_SERVER_ERROR); response.json({ error: { diff --git a/packages/evershop/src/modules/graphql/pages/global/[bodyParser]buildQuery[graphql].js b/packages/evershop/src/modules/graphql/pages/global/[bodyParser]buildQuery[graphql].js index 783d79257..d07407cfc 100644 --- a/packages/evershop/src/modules/graphql/pages/global/[bodyParser]buildQuery[graphql].js +++ b/packages/evershop/src/modules/graphql/pages/global/[bodyParser]buildQuery[graphql].js @@ -8,7 +8,7 @@ const { } = require('@evershop/evershop/src/lib/webpack/getRouteBuildPath'); const { CONSTANTS } = require('@evershop/evershop/src/lib/helpers'); const { getRoutes } = require('@evershop/evershop/src/lib/router/Router'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); // eslint-disable-next-line no-unused-vars const { getContextValue } = require('../../services/contextHelper'); diff --git a/packages/evershop/src/modules/graphql/pages/global/[buildQuery]graphql[notification].js b/packages/evershop/src/modules/graphql/pages/global/[buildQuery]graphql[notification].js index f9addf7cb..d9d1f90cd 100644 --- a/packages/evershop/src/modules/graphql/pages/global/[buildQuery]graphql[notification].js +++ b/packages/evershop/src/modules/graphql/pages/global/[buildQuery]graphql[notification].js @@ -1,7 +1,7 @@ const { execute } = require('graphql'); const { parse } = require('graphql'); const { validate } = require('graphql/validation'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { debug } = require('@evershop/evershop/src/lib/log/logger'); const adminSchema = require('../../services/buildSchema'); const storeFrontSchema = require('../../services/buildStoreFrontSchema'); const { getContext } = require('../../services/contextHelper'); diff --git a/packages/evershop/src/modules/oms/pages/admin/shippingSetting/ShippingSetting.jsx b/packages/evershop/src/modules/oms/pages/admin/shippingSetting/ShippingSetting.jsx index 050c15226..2d6fe1e08 100644 --- a/packages/evershop/src/modules/oms/pages/admin/shippingSetting/ShippingSetting.jsx +++ b/packages/evershop/src/modules/oms/pages/admin/shippingSetting/ShippingSetting.jsx @@ -51,6 +51,7 @@ const ZonesQuery = ` updateApi } updateApi + deleteApi addMethodApi } } diff --git a/packages/evershop/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js b/packages/evershop/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js index 59a49f855..9449d5641 100644 --- a/packages/evershop/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js +++ b/packages/evershop/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js @@ -12,7 +12,7 @@ const { } = require('@evershop/evershop/src/lib/postgres/connection'); const { getConfig } = require('@evershop/evershop/src/lib/util/getConfig'); const { emit } = require('@evershop/evershop/src/lib/event/emitter'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { debug } = require('@evershop/evershop/src/lib/log/logger'); const { display } = require('zero-decimal-currencies'); const { getSetting } = require('../../../setting/services/setting'); @@ -57,7 +57,9 @@ module.exports = async (request, response, delegate, next) => { // Create payment transaction await insert('payment_transaction') .given({ - amount: parseFloat(display(paymentIntent.amount, paymentIntent.currency)), + amount: parseFloat( + display(paymentIntent.amount, paymentIntent.currency) + ), payment_transaction_order_id: order.order_id, transaction_id: paymentIntent.id, transaction_type: 'online', diff --git a/packages/google_login/pages/frontStore/gcallback/gCallback.js b/packages/google_login/pages/frontStore/gcallback/gCallback.js index 4bbc7e313..a5c7efd07 100644 --- a/packages/google_login/pages/frontStore/gcallback/gCallback.js +++ b/packages/google_login/pages/frontStore/gcallback/gCallback.js @@ -8,11 +8,11 @@ const { getGoogleUserInfo } = require('@evershop/google_login/services/getGoogleUserInfo'); const { select, insert } = require('@evershop/postgres-query-builder'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); /* eslint-disable-next-line no-unused-vars */ module.exports = async (request, response, delegate, next) => { - const {code} = request.query; + const { code } = request.query; const client_id = getConfig('google_login.client_id'); const client_secret = getConfig('google_login.client_secret'); const homeUrl = getConfig('shop.homeUrl', 'http://localhost:3000'); @@ -66,16 +66,16 @@ module.exports = async (request, response, delegate, next) => { delete customer.password; // Save the customer in the request request.locals.customer = customer; - request.session.save((error) => { - if (error) { - debug('critical', error); + request.session.save((e) => { + if (e) { + error(e); response.redirect(failureUrl); } else { response.redirect(successUrl); } }); - } catch (error) { - debug('critical', error); + } catch (err) { + error(err); response.redirect(failureUrl); } }; diff --git a/packages/resend/api/resetPassword/[resetPassword]sendMail.js b/packages/resend/api/resetPassword/[resetPassword]sendMail.js index e7a01a6db..25d739476 100644 --- a/packages/resend/api/resetPassword/[resetPassword]sendMail.js +++ b/packages/resend/api/resetPassword/[resetPassword]sendMail.js @@ -4,7 +4,7 @@ const { INTERNAL_SERVER_ERROR } = require('@evershop/evershop/src/lib/util/httpStatus'); const { buildUrl } = require('@evershop/evershop/src/lib/router/buildUrl'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { getContextValue } = require('@evershop/evershop/src/modules/graphql/services/contextHelper'); @@ -74,7 +74,7 @@ module.exports = async (request, response, delegate, next) => { await resend.emails.send(msg); next(); } catch (e) { - debug('critical', e); + error(e); response.status(INTERNAL_SERVER_ERROR); response.json({ error: { diff --git a/packages/resend/subscribers/customer_registered/sendWelcomeEmail.js b/packages/resend/subscribers/customer_registered/sendWelcomeEmail.js index d3f8fd73c..b5111595d 100644 --- a/packages/resend/subscribers/customer_registered/sendWelcomeEmail.js +++ b/packages/resend/subscribers/customer_registered/sendWelcomeEmail.js @@ -5,7 +5,7 @@ const { getConfig } = require('@evershop/evershop/src/lib/util/getConfig'); const { Resend } = require('resend'); const Handlebars = require('handlebars'); const { select } = require('@evershop/postgres-query-builder'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { getEnv } = require('@evershop/evershop/src/lib/util/getEnv'); const { getValue } = require('@evershop/evershop/src/lib/util/registry'); diff --git a/packages/resend/subscribers/order_placed/sendOrderConfirmationEmail.js b/packages/resend/subscribers/order_placed/sendOrderConfirmationEmail.js index b461e8455..56d4b80af 100644 --- a/packages/resend/subscribers/order_placed/sendOrderConfirmationEmail.js +++ b/packages/resend/subscribers/order_placed/sendOrderConfirmationEmail.js @@ -6,7 +6,7 @@ const { Resend } = require('resend'); const { select } = require('@evershop/postgres-query-builder'); const { contries } = require('@evershop/evershop/src/lib/locale/countries'); const { provinces } = require('@evershop/evershop/src/lib/locale/provinces'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const Handlebars = require('handlebars'); const { getEnv } = require('@evershop/evershop/src/lib/util/getEnv'); const { getValue } = require('@evershop/evershop/src/lib/util/registry'); diff --git a/packages/s3_file_storage/subscribers/product_image_added/awsGenerateProductImageVariant.js b/packages/s3_file_storage/subscribers/product_image_added/awsGenerateProductImageVariant.js index bf9dc8036..3f8661420 100644 --- a/packages/s3_file_storage/subscribers/product_image_added/awsGenerateProductImageVariant.js +++ b/packages/s3_file_storage/subscribers/product_image_added/awsGenerateProductImageVariant.js @@ -9,7 +9,7 @@ const { getEnv } = require('@evershop/evershop/src/lib/util/getEnv'); const sharp = require('sharp'); const { update } = require('@evershop/postgres-query-builder'); const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); async function downloadObjectToBuffer(objectUrl) { const parsedUrl = new URL(objectUrl); @@ -113,8 +113,8 @@ module.exports = async function awsGenerateProductImageVariant(data) { .where('product_image_product_id', '=', data.product_image_product_id) .and('origin_image', '=', data.origin_image) .execute(pool); - } catch (error) { - debug('critical', error); + } catch (e) { + error(e); } } }; diff --git a/packages/sendgrid/api/resetPassword/[resetPassword]sendMail.js b/packages/sendgrid/api/resetPassword/[resetPassword]sendMail.js index 3d2b760c8..688972d4f 100644 --- a/packages/sendgrid/api/resetPassword/[resetPassword]sendMail.js +++ b/packages/sendgrid/api/resetPassword/[resetPassword]sendMail.js @@ -2,7 +2,7 @@ const { INTERNAL_SERVER_ERROR } = require('@evershop/evershop/src/lib/util/httpStatus'); const { buildUrl } = require('@evershop/evershop/src/lib/router/buildUrl'); -const { debug } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { getContextValue } = require('@evershop/evershop/src/modules/graphql/services/contextHelper'); @@ -59,7 +59,7 @@ module.exports = async (request, response, delegate, next) => { await sgMail.send(msg); next(); } catch (e) { - debug('critical', e); + error(e); response.status(INTERNAL_SERVER_ERROR); response.json({ error: { diff --git a/packages/sendgrid/subscribers/customer_registered/sendWelcomeEmail.js b/packages/sendgrid/subscribers/customer_registered/sendWelcomeEmail.js index 6d43f5a0e..4cf64c9fb 100644 --- a/packages/sendgrid/subscribers/customer_registered/sendWelcomeEmail.js +++ b/packages/sendgrid/subscribers/customer_registered/sendWelcomeEmail.js @@ -2,7 +2,7 @@ const { pool } = require('@evershop/evershop/src/lib/postgres/connection'); const { getConfig } = require('@evershop/evershop/src/lib/util/getConfig'); const sgMail = require('@sendgrid/mail'); const { select } = require('@evershop/postgres-query-builder'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { getEnv } = require('@evershop/evershop/src/lib/util/getEnv'); const { getValue } = require('@evershop/evershop/src/lib/util/registry'); diff --git a/packages/sendgrid/subscribers/order_placed/sendOrderConfirmationEmail.js b/packages/sendgrid/subscribers/order_placed/sendOrderConfirmationEmail.js index d99a40a43..b154b9daf 100644 --- a/packages/sendgrid/subscribers/order_placed/sendOrderConfirmationEmail.js +++ b/packages/sendgrid/subscribers/order_placed/sendOrderConfirmationEmail.js @@ -4,7 +4,7 @@ const sgMail = require('@sendgrid/mail'); const { select } = require('@evershop/postgres-query-builder'); const { contries } = require('@evershop/evershop/src/lib/locale/countries'); const { provinces } = require('@evershop/evershop/src/lib/locale/provinces'); -const { error } = require('@evershop/evershop/src/lib/log/debuger'); +const { error } = require('@evershop/evershop/src/lib/log/logger'); const { getEnv } = require('@evershop/evershop/src/lib/util/getEnv'); const { getValue } = require('@evershop/evershop/src/lib/util/registry');