From f3aee396a8a21d1b6fb11a4ca977adcbad2e73d6 Mon Sep 17 00:00:00 2001 From: Tre Moore Date: Thu, 23 May 2024 15:26:35 -0700 Subject: [PATCH 1/9] Swapped CAPTCHA on each reload --- src/connection/database/actions.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/connection/database/actions.js b/src/connection/database/actions.js index 0e428bd03..3031f36ba 100644 --- a/src/connection/database/actions.js +++ b/src/connection/database/actions.js @@ -305,15 +305,21 @@ function resetPasswordError(id, error) { } export function showLoginActivity(id, fields = ['password']) { - swap(updateEntity, 'lock', id, setScreen, 'login', fields); + swapCaptcha(id, Flow.PASSWORD_RESET, false, () => { + swap(updateEntity, 'lock', id, setScreen, 'login', fields); + }); } export function showSignUpActivity(id, fields = ['password']) { - swap(updateEntity, 'lock', id, setScreen, 'signUp', fields); + swapCaptcha(id, Flow.PASSWORD_RESET, false, () => { + swap(updateEntity, 'lock', id, setScreen, 'signUp', fields); + }); } export function showResetPasswordActivity(id, fields = ['password']) { - swap(updateEntity, 'lock', id, setScreen, 'forgotPassword', fields); + swapCaptcha(id, Flow.PASSWORD_RESET, false, () => { + swap(updateEntity, 'lock', id, setScreen, 'forgotPassword', fields); + }); } export function cancelResetPassword(id) { From 42e455e483789d7e7b203400b658baa9b502cd37 Mon Sep 17 00:00:00 2001 From: Tre Moore Date: Thu, 23 May 2024 15:47:39 -0700 Subject: [PATCH 2/9] Swap CAPTCHA on submission --- src/connection/database/actions.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/connection/database/actions.js b/src/connection/database/actions.js index 3031f36ba..fc0010ce0 100644 --- a/src/connection/database/actions.js +++ b/src/connection/database/actions.js @@ -262,12 +262,14 @@ export function resetPassword(id) { function resetPasswordSuccess(id) { const m = read(getEntity, 'lock', id); if (hasScreen(m, 'login')) { - swap( - updateEntity, - 'lock', - id, - m => setScreen(l.setSubmitting(m, false), 'login', ['']) // array with one empty string tells the function to not clear any field - ); + swapCaptcha(id, Flow.PASSWORD_RESET, false, () => { + swap( + updateEntity, + 'lock', + id, + m => setScreen(l.setSubmitting(m, false), 'login', ['']) // array with one empty string tells the function to not clear any field + ); + }); // TODO: should be handled by box setTimeout(() => { @@ -278,7 +280,9 @@ function resetPasswordSuccess(id) { if (l.ui.autoclose(m)) { closeLock(id); } else { - swap(updateEntity, 'lock', id, m => l.setSubmitting(m, false).set('passwordResetted', true)); + swapCaptcha(id, Flow.PASSWORD_RESET, false, () => { + swap(updateEntity, 'lock', id, m => l.setSubmitting(m, false).set('passwordResetted', true)); + }); } } } From 1c81522833a47090f234e4b952e56d4087d7b519 Mon Sep 17 00:00:00 2001 From: Tre Moore Date: Tue, 28 May 2024 11:46:32 -0700 Subject: [PATCH 3/9] Added tests for swapCaptcha --- .../connection/database/actions.test.js | 209 +++++++++++++++++- src/connection/database/actions.js | 2 +- 2 files changed, 209 insertions(+), 2 deletions(-) diff --git a/src/__tests__/connection/database/actions.test.js b/src/__tests__/connection/database/actions.test.js index 03d6513f1..c64f92e7e 100644 --- a/src/__tests__/connection/database/actions.test.js +++ b/src/__tests__/connection/database/actions.test.js @@ -1,13 +1,32 @@ import Immutable, { List, Map } from 'immutable'; -import { signUp } from '../../../connection/database/actions'; +import { + signUp, + resetPasswordSuccess, + showResetPasswordActivity, + showLoginActivity, showSignUpActivity +} from '../../../connection/database/actions'; import { swap, setEntity } from '../../../store'; +import { swapCaptcha } from "../../../connection/captcha"; +import { hasScreen } from "../../../connection/database"; const webApiMock = () => require('core/web_api'); const coreActionsMock = () => require('core/actions'); + jest.mock('core/actions', () => ({ validateAndSubmit: jest.fn() })); +jest.mock('../../../connection/captcha', () => { + const originalCaptcha = jest.requireActual('../../../connection/captcha'); + return { + __esModule: true, + ...originalCaptcha, + swapCaptcha: jest.fn((id, flow, wasInvalid, next) => { + next(); + }), + } +}); + jest.mock('core/web_api', () => ({ signUp: jest.fn() })); @@ -208,4 +227,192 @@ describe('database/actions.js', () => { } }); }); + + describe('resetPasswordSuccess', () => { + it('runs swap CAPTCHA', () => { + const id = 2; + const m = Immutable.fromJS({ + field: { + email: { + value: 'test@email.com' + }, + password: { + value: 'testpass' + }, + family_name: { + value: 'test-family-name' + }, + given_name: { + value: 'test-given-name' + }, + name: { + value: 'test-name' + }, + nickname: { + value: 'test-nickname' + }, + picture: { + value: 'test-pic' + }, + other_prop: { + value: 'test-other' + } + }, + database: { + additionalSignUpFields: [ + { name: 'family_name', storage: 'root' }, + { name: 'given_name', storage: 'root' }, + { name: 'name', storage: 'root' }, + { name: 'nickname', storage: 'root' }, + { name: 'picture', storage: 'root' }, + { name: 'other_prop' } + ] + }, + }); + swap(setEntity, 'lock', id, m); + resetPasswordSuccess(id); + expect(swapCaptcha.mock.calls.length).toEqual(1); + }); + }); + + describe('showResetPasswordActivity', () => { + it('runs swap CAPTCHA', () => { + const id = 2; + const m = Immutable.fromJS({ + field: { + email: { + value: 'test@email.com' + }, + password: { + value: 'testpass' + }, + family_name: { + value: 'test-family-name' + }, + given_name: { + value: 'test-given-name' + }, + name: { + value: 'test-name' + }, + nickname: { + value: 'test-nickname' + }, + picture: { + value: 'test-pic' + }, + other_prop: { + value: 'test-other' + } + }, + database: { + additionalSignUpFields: [ + { name: 'family_name', storage: 'root' }, + { name: 'given_name', storage: 'root' }, + { name: 'name', storage: 'root' }, + { name: 'nickname', storage: 'root' }, + { name: 'picture', storage: 'root' }, + { name: 'other_prop' } + ] + }, + }); + swap(setEntity, 'lock', id, m); + showResetPasswordActivity(id); + expect(swapCaptcha.mock.calls.length).toEqual(1); + }); + }); + + describe('showLoginActivity', () => { + it('runs swap CAPTCHA', () => { + const id = 2; + const m = Immutable.fromJS({ + field: { + email: { + value: 'test@email.com' + }, + password: { + value: 'testpass' + }, + family_name: { + value: 'test-family-name' + }, + given_name: { + value: 'test-given-name' + }, + name: { + value: 'test-name' + }, + nickname: { + value: 'test-nickname' + }, + picture: { + value: 'test-pic' + }, + other_prop: { + value: 'test-other' + } + }, + database: { + additionalSignUpFields: [ + { name: 'family_name', storage: 'root' }, + { name: 'given_name', storage: 'root' }, + { name: 'name', storage: 'root' }, + { name: 'nickname', storage: 'root' }, + { name: 'picture', storage: 'root' }, + { name: 'other_prop' } + ] + }, + }); + swap(setEntity, 'lock', id, m); + showLoginActivity(id); + expect(swapCaptcha.mock.calls.length).toEqual(1); + }); + }); + + describe('showSignupActivity', () => { + it('runs swap CAPTCHA', () => { + const id = 2; + const m = Immutable.fromJS({ + field: { + email: { + value: 'test@email.com' + }, + password: { + value: 'testpass' + }, + family_name: { + value: 'test-family-name' + }, + given_name: { + value: 'test-given-name' + }, + name: { + value: 'test-name' + }, + nickname: { + value: 'test-nickname' + }, + picture: { + value: 'test-pic' + }, + other_prop: { + value: 'test-other' + } + }, + database: { + additionalSignUpFields: [ + { name: 'family_name', storage: 'root' }, + { name: 'given_name', storage: 'root' }, + { name: 'name', storage: 'root' }, + { name: 'nickname', storage: 'root' }, + { name: 'picture', storage: 'root' }, + { name: 'other_prop' } + ] + }, + }); + swap(setEntity, 'lock', id, m); + showSignUpActivity(id); + expect(swapCaptcha.mock.calls.length).toEqual(1); + }); + }); }); diff --git a/src/connection/database/actions.js b/src/connection/database/actions.js index fc0010ce0..90155e9cf 100644 --- a/src/connection/database/actions.js +++ b/src/connection/database/actions.js @@ -259,7 +259,7 @@ export function resetPassword(id) { }); } -function resetPasswordSuccess(id) { +export function resetPasswordSuccess(id) { const m = read(getEntity, 'lock', id); if (hasScreen(m, 'login')) { swapCaptcha(id, Flow.PASSWORD_RESET, false, () => { From 4ec1a01520577a2a42c634aff3ae410006a872c4 Mon Sep 17 00:00:00 2001 From: Tre Moore Date: Tue, 28 May 2024 11:51:51 -0700 Subject: [PATCH 4/9] Simplified CAPTCHA tests --- .../connection/database/actions.test.js | 236 +++++------------- 1 file changed, 61 insertions(+), 175 deletions(-) diff --git a/src/__tests__/connection/database/actions.test.js b/src/__tests__/connection/database/actions.test.js index c64f92e7e..4c6f36546 100644 --- a/src/__tests__/connection/database/actions.test.js +++ b/src/__tests__/connection/database/actions.test.js @@ -7,7 +7,6 @@ import { } from '../../../connection/database/actions'; import { swap, setEntity } from '../../../store'; import { swapCaptcha } from "../../../connection/captcha"; -import { hasScreen } from "../../../connection/database"; const webApiMock = () => require('core/web_api'); const coreActionsMock = () => require('core/actions'); @@ -228,191 +227,78 @@ describe('database/actions.js', () => { }); }); - describe('resetPasswordSuccess', () => { - it('runs swap CAPTCHA', () => { - const id = 2; - const m = Immutable.fromJS({ - field: { - email: { - value: 'test@email.com' - }, - password: { - value: 'testpass' - }, - family_name: { - value: 'test-family-name' - }, - given_name: { - value: 'test-given-name' - }, - name: { - value: 'test-name' - }, - nickname: { - value: 'test-nickname' - }, - picture: { - value: 'test-pic' - }, - other_prop: { - value: 'test-other' - } + describe('exported functions', () => { + const id = 2; + const m = Immutable.fromJS({ + field: { + email: { + value: 'test@email.com' + }, + password: { + value: 'testpass' + }, + family_name: { + value: 'test-family-name' + }, + given_name: { + value: 'test-given-name' + }, + name: { + value: 'test-name' + }, + nickname: { + value: 'test-nickname' }, - database: { - additionalSignUpFields: [ - { name: 'family_name', storage: 'root' }, - { name: 'given_name', storage: 'root' }, - { name: 'name', storage: 'root' }, - { name: 'nickname', storage: 'root' }, - { name: 'picture', storage: 'root' }, - { name: 'other_prop' } - ] + picture: { + value: 'test-pic' }, + other_prop: { + value: 'test-other' + } + }, + database: { + additionalSignUpFields: [ + { name: 'family_name', storage: 'root' }, + { name: 'given_name', storage: 'root' }, + { name: 'name', storage: 'root' }, + { name: 'nickname', storage: 'root' }, + { name: 'picture', storage: 'root' }, + { name: 'other_prop' } + ] + }, + }); + + describe('resetPasswordSuccess', () => { + it('runs swap CAPTCHA', () => { + swap(setEntity, 'lock', id, m); + resetPasswordSuccess(id); + expect(swapCaptcha.mock.calls.length).toEqual(1); }); - swap(setEntity, 'lock', id, m); - resetPasswordSuccess(id); - expect(swapCaptcha.mock.calls.length).toEqual(1); }); - }); - describe('showResetPasswordActivity', () => { - it('runs swap CAPTCHA', () => { - const id = 2; - const m = Immutable.fromJS({ - field: { - email: { - value: 'test@email.com' - }, - password: { - value: 'testpass' - }, - family_name: { - value: 'test-family-name' - }, - given_name: { - value: 'test-given-name' - }, - name: { - value: 'test-name' - }, - nickname: { - value: 'test-nickname' - }, - picture: { - value: 'test-pic' - }, - other_prop: { - value: 'test-other' - } - }, - database: { - additionalSignUpFields: [ - { name: 'family_name', storage: 'root' }, - { name: 'given_name', storage: 'root' }, - { name: 'name', storage: 'root' }, - { name: 'nickname', storage: 'root' }, - { name: 'picture', storage: 'root' }, - { name: 'other_prop' } - ] - }, + describe('showResetPasswordActivity', () => { + it('runs swap CAPTCHA', () => { + swap(setEntity, 'lock', id, m); + showResetPasswordActivity(id); + expect(swapCaptcha.mock.calls.length).toEqual(1); }); - swap(setEntity, 'lock', id, m); - showResetPasswordActivity(id); - expect(swapCaptcha.mock.calls.length).toEqual(1); }); - }); - describe('showLoginActivity', () => { - it('runs swap CAPTCHA', () => { - const id = 2; - const m = Immutable.fromJS({ - field: { - email: { - value: 'test@email.com' - }, - password: { - value: 'testpass' - }, - family_name: { - value: 'test-family-name' - }, - given_name: { - value: 'test-given-name' - }, - name: { - value: 'test-name' - }, - nickname: { - value: 'test-nickname' - }, - picture: { - value: 'test-pic' - }, - other_prop: { - value: 'test-other' - } - }, - database: { - additionalSignUpFields: [ - { name: 'family_name', storage: 'root' }, - { name: 'given_name', storage: 'root' }, - { name: 'name', storage: 'root' }, - { name: 'nickname', storage: 'root' }, - { name: 'picture', storage: 'root' }, - { name: 'other_prop' } - ] - }, + describe('showLoginActivity', () => { + it('runs swap CAPTCHA', () => { + swap(setEntity, 'lock', id, m); + showLoginActivity(id); + expect(swapCaptcha.mock.calls.length).toEqual(1); }); - swap(setEntity, 'lock', id, m); - showLoginActivity(id); - expect(swapCaptcha.mock.calls.length).toEqual(1); }); - }); - describe('showSignupActivity', () => { - it('runs swap CAPTCHA', () => { - const id = 2; - const m = Immutable.fromJS({ - field: { - email: { - value: 'test@email.com' - }, - password: { - value: 'testpass' - }, - family_name: { - value: 'test-family-name' - }, - given_name: { - value: 'test-given-name' - }, - name: { - value: 'test-name' - }, - nickname: { - value: 'test-nickname' - }, - picture: { - value: 'test-pic' - }, - other_prop: { - value: 'test-other' - } - }, - database: { - additionalSignUpFields: [ - { name: 'family_name', storage: 'root' }, - { name: 'given_name', storage: 'root' }, - { name: 'name', storage: 'root' }, - { name: 'nickname', storage: 'root' }, - { name: 'picture', storage: 'root' }, - { name: 'other_prop' } - ] - }, + describe('showSignupActivity', () => { + it('runs swap CAPTCHA', () => { + swap(setEntity, 'lock', id, m); + showSignUpActivity(id); + expect(swapCaptcha.mock.calls.length).toEqual(1); }); - swap(setEntity, 'lock', id, m); - showSignUpActivity(id); - expect(swapCaptcha.mock.calls.length).toEqual(1); }); }); -}); + }) + From 8d1d28d7c6589134cfac099c66fb6f4893b3f661 Mon Sep 17 00:00:00 2001 From: Tre Moore Date: Wed, 29 May 2024 17:50:11 -0700 Subject: [PATCH 5/9] Fix arkose CAPTCHA bugs --- src/connection/database/actions.js | 33 ++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/src/connection/database/actions.js b/src/connection/database/actions.js index 90155e9cf..6cf04b03f 100644 --- a/src/connection/database/actions.js +++ b/src/connection/database/actions.js @@ -309,21 +309,42 @@ function resetPasswordError(id, error) { } export function showLoginActivity(id, fields = ['password']) { - swapCaptcha(id, Flow.PASSWORD_RESET, false, () => { + const m = read(getEntity, 'lock', id); + const captchaConfig = l.captcha(m); + const captchaProvider = captchaConfig.get('provider'); + if (captchaProvider === 'arkose') { swap(updateEntity, 'lock', id, setScreen, 'login', fields); - }); + } else { + swapCaptcha(id, 'login', false, () => { + swap(updateEntity, 'lock', id, setScreen, 'login', fields); + }); + } } export function showSignUpActivity(id, fields = ['password']) { - swapCaptcha(id, Flow.PASSWORD_RESET, false, () => { + const m = read(getEntity, 'lock', id); + const captchaConfig = l.captcha(m); + const captchaProvider = captchaConfig.get('provider'); + if (captchaProvider === 'arkose') { swap(updateEntity, 'lock', id, setScreen, 'signUp', fields); - }); + } else { + swapCaptcha(id, 'login', false, () => { + swap(updateEntity, 'lock', id, setScreen, 'signUp', fields); + }); + } } export function showResetPasswordActivity(id, fields = ['password']) { - swapCaptcha(id, Flow.PASSWORD_RESET, false, () => { + const m = read(getEntity, 'lock', id); + const captchaConfig = l.passwordResetCaptcha(m); + const captchaProvider = captchaConfig.get('provider'); + if (captchaProvider === 'arkose') { swap(updateEntity, 'lock', id, setScreen, 'forgotPassword', fields); - }); + } else { + swapCaptcha(id, 'login', false, () => { + swap(updateEntity, 'lock', id, setScreen, 'forgotPassword', fields); + }); + } } export function cancelResetPassword(id) { From cf17dca565f70d27a840f7fb69a53a8eb0781e70 Mon Sep 17 00:00:00 2001 From: Tre Moore Date: Wed, 29 May 2024 19:12:28 -0700 Subject: [PATCH 6/9] Fix tests --- .../connection/database/actions.test.js | 17 ++++++++++++----- src/connection/database/actions.js | 9 +++------ 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/__tests__/connection/database/actions.test.js b/src/__tests__/connection/database/actions.test.js index 4c6f36546..bc9b46d2f 100644 --- a/src/__tests__/connection/database/actions.test.js +++ b/src/__tests__/connection/database/actions.test.js @@ -229,7 +229,8 @@ describe('database/actions.js', () => { describe('exported functions', () => { const id = 2; - const m = Immutable.fromJS({ + const hookRunner = jest.fn((str, m, context, fn) => fn()); + const mCaptcha = Immutable.fromJS({ field: { email: { value: 'test@email.com' @@ -266,11 +267,17 @@ describe('database/actions.js', () => { { name: 'other_prop' } ] }, + captcha: { + provider: 'auth0' + }, + passwordResetCaptcha: { + provider: 'auth0' + }, }); describe('resetPasswordSuccess', () => { it('runs swap CAPTCHA', () => { - swap(setEntity, 'lock', id, m); + swap(setEntity, 'lock', id, mCaptcha); resetPasswordSuccess(id); expect(swapCaptcha.mock.calls.length).toEqual(1); }); @@ -278,7 +285,7 @@ describe('database/actions.js', () => { describe('showResetPasswordActivity', () => { it('runs swap CAPTCHA', () => { - swap(setEntity, 'lock', id, m); + swap(setEntity, 'lock', id, mCaptcha); showResetPasswordActivity(id); expect(swapCaptcha.mock.calls.length).toEqual(1); }); @@ -286,7 +293,7 @@ describe('database/actions.js', () => { describe('showLoginActivity', () => { it('runs swap CAPTCHA', () => { - swap(setEntity, 'lock', id, m); + swap(setEntity, 'lock', id, mCaptcha); showLoginActivity(id); expect(swapCaptcha.mock.calls.length).toEqual(1); }); @@ -294,7 +301,7 @@ describe('database/actions.js', () => { describe('showSignupActivity', () => { it('runs swap CAPTCHA', () => { - swap(setEntity, 'lock', id, m); + swap(setEntity, 'lock', id, mCaptcha); showSignUpActivity(id); expect(swapCaptcha.mock.calls.length).toEqual(1); }); diff --git a/src/connection/database/actions.js b/src/connection/database/actions.js index 6cf04b03f..e42948e35 100644 --- a/src/connection/database/actions.js +++ b/src/connection/database/actions.js @@ -311,8 +311,7 @@ function resetPasswordError(id, error) { export function showLoginActivity(id, fields = ['password']) { const m = read(getEntity, 'lock', id); const captchaConfig = l.captcha(m); - const captchaProvider = captchaConfig.get('provider'); - if (captchaProvider === 'arkose') { + if (captchaConfig && captchaConfig.get('provider') === 'arkose') { swap(updateEntity, 'lock', id, setScreen, 'login', fields); } else { swapCaptcha(id, 'login', false, () => { @@ -324,8 +323,7 @@ export function showLoginActivity(id, fields = ['password']) { export function showSignUpActivity(id, fields = ['password']) { const m = read(getEntity, 'lock', id); const captchaConfig = l.captcha(m); - const captchaProvider = captchaConfig.get('provider'); - if (captchaProvider === 'arkose') { + if (captchaConfig && captchaConfig.get('provider') === 'arkose') { swap(updateEntity, 'lock', id, setScreen, 'signUp', fields); } else { swapCaptcha(id, 'login', false, () => { @@ -337,8 +335,7 @@ export function showSignUpActivity(id, fields = ['password']) { export function showResetPasswordActivity(id, fields = ['password']) { const m = read(getEntity, 'lock', id); const captchaConfig = l.passwordResetCaptcha(m); - const captchaProvider = captchaConfig.get('provider'); - if (captchaProvider === 'arkose') { + if (captchaConfig && captchaConfig.get('provider') === 'arkose') { swap(updateEntity, 'lock', id, setScreen, 'forgotPassword', fields); } else { swapCaptcha(id, 'login', false, () => { From 8706a544fc49dabc58acc17874ed9ff1085ee965 Mon Sep 17 00:00:00 2001 From: Tre Moore Date: Wed, 29 May 2024 19:15:08 -0700 Subject: [PATCH 7/9] Remove hookRunner --- src/__tests__/connection/database/actions.test.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/__tests__/connection/database/actions.test.js b/src/__tests__/connection/database/actions.test.js index bc9b46d2f..3f83b5221 100644 --- a/src/__tests__/connection/database/actions.test.js +++ b/src/__tests__/connection/database/actions.test.js @@ -229,7 +229,6 @@ describe('database/actions.js', () => { describe('exported functions', () => { const id = 2; - const hookRunner = jest.fn((str, m, context, fn) => fn()); const mCaptcha = Immutable.fromJS({ field: { email: { From 326dc519aa0f650ba6ed07211563c11dcb7fa1ae Mon Sep 17 00:00:00 2001 From: Tre Moore Date: Wed, 29 May 2024 19:23:47 -0700 Subject: [PATCH 8/9] Bump version number --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 84f80fff4..94e5c45e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "auth0-lock", - "version": "12.5.0", + "version": "12.5.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "auth0-lock", - "version": "12.5.0", + "version": "12.5.1", "license": "MIT", "dependencies": { "auth0-js": "^9.26.0", diff --git a/package.json b/package.json index 4a1aa1811..3832d32e6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "auth0-lock", - "version": "12.5.0", + "version": "12.5.1", "description": "Auth0 Lock", "author": "Auth0 (http://auth0.com)", "license": "MIT", From 404e27edceecfb07bed6dcba1b6316c4b9679705 Mon Sep 17 00:00:00 2001 From: Josh Cain Date: Thu, 30 May 2024 07:22:51 -0500 Subject: [PATCH 9/9] feedback: do not bump package.json --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 94e5c45e0..84f80fff4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "auth0-lock", - "version": "12.5.1", + "version": "12.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "auth0-lock", - "version": "12.5.1", + "version": "12.5.0", "license": "MIT", "dependencies": { "auth0-js": "^9.26.0", diff --git a/package.json b/package.json index 3832d32e6..4a1aa1811 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "auth0-lock", - "version": "12.5.1", + "version": "12.5.0", "description": "Auth0 Lock", "author": "Auth0 (http://auth0.com)", "license": "MIT",