diff --git a/gulpfile.js b/gulpfile.js index 66dafad6..e6ba3518 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -54,8 +54,8 @@ gulp.task('clean', () => { gulp.task('build', ['clean', 'lint'], () => { return gulp.src(path.join(SRC, '*.js')) - .pipe(babel()) - .pipe(gulp.dest(DIST)); + .pipe(babel()) + .pipe(gulp.dest(DIST)); }); gulp.task('lint', () => { @@ -66,31 +66,31 @@ gulp.task('lint', () => { ]; return gulp.src(src) - .pipe(eslint()) - .pipe(eslint.format()) - .pipe(eslint.failAfterError()); + .pipe(eslint()) + .pipe(eslint.format()) + .pipe(eslint.failAfterError()); }); gulp.task('changelog', () => { const changelog = path.join(ROOT, 'CHANGELOG.md'); return gulp.src(changelog, {buffer: false}) - .pipe(conventionalChangelog({ - releaseCount: 0, - })) - .pipe(gulp.dest(ROOT)); + .pipe(conventionalChangelog({ + releaseCount: 0, + })) + .pipe(gulp.dest(ROOT)); }); gulp.task('commit:pre', () => { const packageJson = path.join(ROOT, 'package.json'); return gulp.src([packageJson, DIST]) - .pipe(git.add({args: '-f'})) - .pipe(git.commit('release: release version')); + .pipe(git.add({args: '-f'})) + .pipe(git.commit('release: release version')); }); gulp.task('commit:post', () => { return gulp.src(DIST) - .pipe(git.rm({args: '-r'})) - .pipe(git.commit('release: prepare next release')); + .pipe(git.rm({args: '-r'})) + .pipe(git.commit('release: prepare next release')); }); gulp.task('tag', (done) => { @@ -102,9 +102,9 @@ gulp.task('tag', (done) => { ['major', 'minor', 'patch'].forEach((level) => { gulp.task(`bump:${level}`, () => { return gulp.src(path.join(ROOT, 'package.json')) - .pipe(bump({type: level})) - .on('error', (e) => log.error(e)) - .pipe(gulp.dest(ROOT)); + .pipe(bump({type: level})) + .on('error', (e) => log.error(e)) + .pipe(gulp.dest(ROOT)); }); gulp.task('release:' + level, ['build'], () => { diff --git a/package.json b/package.json index 468f2a6b..92974004 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@babel/preset-env": "7.0.0", "del": "3.0.0", "eslint": "5.5.0", - "eslint-config-google": "0.9.1", + "eslint-config-google": "0.10.0", "fancy-log": "1.3.2", "gulp": "3.9.1", "gulp-babel": "8.0.0", diff --git a/src/dependency.js b/src/dependency.js index 9e07805a..c38ce466 100644 --- a/src/dependency.js +++ b/src/dependency.js @@ -77,9 +77,9 @@ class Dependency { // Map it to a valid license field. // See: https://docs.npmjs.com/files/package.json#license dependency.license = `(${_.chain(dependency.licenses) - .map((license) => license.type || license) - .join(' OR ') - .value()})`; + .map((license) => license.type || license) + .join(' OR ') + .value()})`; // Remove it. delete dependency.licenses; @@ -124,9 +124,9 @@ class Dependency { lines.push(`${prefix}Contributors:${suffix}`); const allContributors = _.chain(this.contributors) - .map((contributor) => contributor.text()) - .map((line) => `${prefix} ${line}${suffix}`) - .value(); + .map((contributor) => contributor.text()) + .map((line) => `${prefix} ${line}${suffix}`) + .value(); lines.push(...allContributors); } diff --git a/src/license-plugin.js b/src/license-plugin.js index 3651a69b..86649a33 100644 --- a/src/license-plugin.js +++ b/src/license-plugin.js @@ -235,12 +235,12 @@ class LicensePlugin { const includePrivate = thirdParty.includePrivate; const text = _.chain(this._dependencies) - .values() - .filter((dependency) => includePrivate || !dependency.private) - .map((dependency) => dependency.text()) - .join(`${EOL}${EOL}---${EOL}${EOL}`) - .trim() - .value(); + .values() + .filter((dependency) => includePrivate || !dependency.private) + .map((dependency) => dependency.text()) + .join(`${EOL}${EOL}---${EOL}${EOL}`) + .trim() + .value(); const encoding = thirdParty.encoding || 'utf-8'; this.debug(`use encoding: ${encoding}`); diff --git a/test/base.spec.js b/test/base.spec.js index dd66296f..a9b45e46 100644 --- a/test/base.spec.js +++ b/test/base.spec.js @@ -27,34 +27,34 @@ const Dependency = require('../dist/dependency.js'); const Person = require('../dist/person.js'); beforeEach(() => { - jasmine.addCustomEqualityTester((first, second) => { - if ((first instanceof Person) || (second instanceof Person)) { - const o1 = _.toPlainObject(first); - const o2 = _.toPlainObject(second); - return _.isEqual(o1, o2); - } - }); - - jasmine.addCustomEqualityTester((first, second) => { - if ((first instanceof Dependency) || (second instanceof Dependency)) { - const o1 = _.toPlainObject(first); - const o2 = _.toPlainObject(second); + jasmine.addCustomEqualityTester((first, second) => { + if ((first instanceof Person) || (second instanceof Person)) { + const o1 = _.toPlainObject(first); + const o2 = _.toPlainObject(second); + return _.isEqual(o1, o2); + } + }); - if (o1.author) { - o1.author = _.toPlainObject(o1.author); - } - if (o1.contributors) { - o1.contributors = _.map(o1.contributors, _.toPlainObject); - } + jasmine.addCustomEqualityTester((first, second) => { + if ((first instanceof Dependency) || (second instanceof Dependency)) { + const o1 = _.toPlainObject(first); + const o2 = _.toPlainObject(second); - if (o2.author) { - o2.author = _.toPlainObject(o2.author); - } - if (o2.contributors) { - o2.contributors = _.map(o2.contributors, _.toPlainObject); - } + if (o1.author) { + o1.author = _.toPlainObject(o1.author); + } + if (o1.contributors) { + o1.contributors = _.map(o1.contributors, _.toPlainObject); + } - return _.isEqual(o1, o2); + if (o2.author) { + o2.author = _.toPlainObject(o2.author); + } + if (o2.contributors) { + o2.contributors = _.map(o2.contributors, _.toPlainObject); } - }); + + return _.isEqual(o1, o2); + } + }); }); diff --git a/test/dependency.spec.js b/test/dependency.spec.js index 07ccb5f2..429bf446 100644 --- a/test/dependency.spec.js +++ b/test/dependency.spec.js @@ -126,10 +126,10 @@ describe('Dependency', () => { const dependency = new Dependency(pkg); expect(dependency.text()).toEqual( - `Name: ${pkg.name}\n` + - `Version: ${pkg.version}\n` + - `License: ${pkg.license}\n` + - `Private: false` + `Name: ${pkg.name}\n` + + `Version: ${pkg.version}\n` + + `License: ${pkg.license}\n` + + `Private: false` ); }); @@ -144,11 +144,11 @@ describe('Dependency', () => { const dependency = new Dependency(pkg); expect(dependency.text()).toEqual( - `Name: ${pkg.name}\n` + - `Version: ${pkg.version}\n` + - `License: ${pkg.license}\n` + - `Private: false\n` + - `Description: ${pkg.description}` + `Name: ${pkg.name}\n` + + `Version: ${pkg.version}\n` + + `License: ${pkg.license}\n` + + `Private: false\n` + + `Description: ${pkg.description}` ); }); @@ -166,11 +166,11 @@ describe('Dependency', () => { const dependency = new Dependency(pkg); expect(dependency.text()).toEqual( - `Name: ${pkg.name}\n` + - `Version: ${pkg.version}\n` + - `License: ${pkg.license}\n` + - `Private: false\n` + - `Author: ${pkg.author.name} <${pkg.author.email}>` + `Name: ${pkg.name}\n` + + `Version: ${pkg.version}\n` + + `License: ${pkg.license}\n` + + `Private: false\n` + + `Author: ${pkg.author.name} <${pkg.author.email}>` ); }); @@ -188,11 +188,11 @@ describe('Dependency', () => { const dependency = new Dependency(pkg); expect(dependency.text()).toEqual( - `Name: ${pkg.name}\n` + - `Version: ${pkg.version}\n` + - `License: ${pkg.license}\n` + - `Private: false\n` + - `Repository: ${pkg.repository.url}` + `Name: ${pkg.name}\n` + + `Version: ${pkg.version}\n` + + `License: ${pkg.license}\n` + + `Private: false\n` + + `Repository: ${pkg.repository.url}` ); }); @@ -207,11 +207,11 @@ describe('Dependency', () => { const dependency = new Dependency(pkg); expect(dependency.text()).toEqual( - `Name: ${pkg.name}\n` + - `Version: ${pkg.version}\n` + - `License: ${pkg.license}\n` + - `Private: false\n` + - `Homepage: ${pkg.homepage}` + `Name: ${pkg.name}\n` + + `Version: ${pkg.version}\n` + + `License: ${pkg.license}\n` + + `Private: false\n` + + `Homepage: ${pkg.homepage}` ); }); @@ -229,13 +229,13 @@ describe('Dependency', () => { const dependency = new Dependency(pkg); expect(dependency.text()).toEqual( - `Name: ${pkg.name}\n` + - `Version: ${pkg.version}\n` + - `License: ${pkg.license}\n` + - `Private: false\n` + - `Contributors:\n` + - ` ${pkg.contributors[0].name} <${pkg.contributors[0].email}>\n` + - ` ${pkg.contributors[1].name}` + `Name: ${pkg.name}\n` + + `Version: ${pkg.version}\n` + + `License: ${pkg.license}\n` + + `Private: false\n` + + `Contributors:\n` + + ` ${pkg.contributors[0].name} <${pkg.contributors[0].email}>\n` + + ` ${pkg.contributors[1].name}` ); }); @@ -257,17 +257,17 @@ describe('Dependency', () => { const dependency = new Dependency(pkg); expect(dependency.text()).toEqual( - `Name: ${pkg.name}\n` + - `Version: ${pkg.version}\n` + - `License: ${pkg.license}\n` + - `Private: false\n` + - `Description: ${pkg.description}\n` + - `Repository: ${pkg.repository.url}\n` + - `Homepage: ${pkg.homepage}\n` + - `Author: ${pkg.author.name} <${pkg.author.email}>\n` + - `Contributors:\n` + - ` ${pkg.contributors[0].name} <${pkg.contributors[0].email}>\n` + - ` ${pkg.contributors[1].name}` + `Name: ${pkg.name}\n` + + `Version: ${pkg.version}\n` + + `License: ${pkg.license}\n` + + `Private: false\n` + + `Description: ${pkg.description}\n` + + `Repository: ${pkg.repository.url}\n` + + `Homepage: ${pkg.homepage}\n` + + `Author: ${pkg.author.name} <${pkg.author.email}>\n` + + `Contributors:\n` + + ` ${pkg.contributors[0].name} <${pkg.contributors[0].email}>\n` + + ` ${pkg.contributors[1].name}` ); }); @@ -289,17 +289,17 @@ describe('Dependency', () => { const dependency = new Dependency(pkg); expect(dependency.text(' * ', ' --')).toEqual( - ` * Name: ${pkg.name} --\n` + - ` * Version: ${pkg.version} --\n` + - ` * License: ${pkg.license} --\n` + - ` * Private: false --\n` + - ` * Description: ${pkg.description} --\n` + - ` * Repository: ${pkg.repository.url} --\n` + - ` * Homepage: ${pkg.homepage} --\n` + - ` * Author: ${pkg.author.name} <${pkg.author.email}> --\n` + - ` * Contributors: --\n` + - ` * ${pkg.contributors[0].name} <${pkg.contributors[0].email}> --\n` + - ` * ${pkg.contributors[1].name} --` + ` * Name: ${pkg.name} --\n` + + ` * Version: ${pkg.version} --\n` + + ` * License: ${pkg.license} --\n` + + ` * Private: false --\n` + + ` * Description: ${pkg.description} --\n` + + ` * Repository: ${pkg.repository.url} --\n` + + ` * Homepage: ${pkg.homepage} --\n` + + ` * Author: ${pkg.author.name} <${pkg.author.email}> --\n` + + ` * Contributors: --\n` + + ` * ${pkg.contributors[0].name} <${pkg.contributors[0].email}> --\n` + + ` * ${pkg.contributors[1].name} --` ); }); }); diff --git a/test/generate-block-comment.spec.js b/test/generate-block-comment.spec.js index 8a7ce3a0..245ec41d 100644 --- a/test/generate-block-comment.spec.js +++ b/test/generate-block-comment.spec.js @@ -34,11 +34,11 @@ describe('generateBlockComment', () => { const comment = generateBlockComment(text); expect(comment).toEqual( - `/**\n` + - ` * First Line\n` + - ` *\n` + - ` * Second Line\n` + - ` */\n` + `/**\n` + + ` * First Line\n` + + ` *\n` + + ` * Second Line\n` + + ` */\n` ); }); }); diff --git a/test/integration/it.spec.js b/test/integration/it.spec.js index 51e5e567..79b4dd29 100644 --- a/test/integration/it.spec.js +++ b/test/integration/it.spec.js @@ -70,18 +70,18 @@ describe('Dependency', () => { }; rollup.rollup(rollupConfig) - .then((bundle) => bundle.write(rollupConfig.output)) - .then(() => { - fs.readFile(thirdPartyOutput, 'utf8', (err, data) => { - if (err) { - done.fail(err); - } - - const content = data.toString(); - expect(content).toContain('lodash'); - done(); + .then((bundle) => bundle.write(rollupConfig.output)) + .then(() => { + fs.readFile(thirdPartyOutput, 'utf8', (err, data) => { + if (err) { + done.fail(err); + } + + const content = data.toString(); + expect(content).toContain('lodash'); + done(); + }); }); - }); }); it('should generate bundle with license header', (done) => { @@ -105,22 +105,22 @@ describe('Dependency', () => { }; rollup.rollup(rollupConfig) - .then((bundle) => bundle.write(rollupConfig.output)) - .then(() => { - fs.readFile(bundleOutput, 'utf8', (err, data) => { - if (err) { - done.fail(err); - } - - const content = data.toString(); - const expectedBanner = - `/**${EOL}` + - ` * ${banner}${EOL}` + - ` */${EOL}`; - - expect(content).toContain(expectedBanner); - done(); + .then((bundle) => bundle.write(rollupConfig.output)) + .then(() => { + fs.readFile(bundleOutput, 'utf8', (err, data) => { + if (err) { + done.fail(err); + } + + const content = data.toString(); + const expectedBanner = + `/**${EOL}` + + ` * ${banner}${EOL}` + + ` */${EOL}`; + + expect(content).toContain(expectedBanner); + done(); + }); }); - }); }); }); diff --git a/test/license-plugin.spec.js b/test/license-plugin.spec.js index f52c04c9..64e8959a 100644 --- a/test/license-plugin.spec.js +++ b/test/license-plugin.spec.js @@ -375,13 +375,13 @@ describe('LicensePlugin', () => { expect(result).toBeDefined(); expect(result.map).toBeDefined(); expect(result.code).toEqual( - `/**\n` + - ` * Test banner.\n` + - ` *\n` + - ` * With a second line.\n` + - ` */\n` + - `\n` + - `${code}` + `/**\n` + + ` * Test banner.\n` + + ` *\n` + + ` * With a second line.\n` + + ` */\n` + + `\n` + + `${code}` ); }); @@ -399,13 +399,13 @@ describe('LicensePlugin', () => { expect(result).toBeDefined(); expect(result.map).toBeDefined(); expect(result.code).toEqual( - `/**\n` + - ` * Test banner.\n` + - ` *\n` + - ` * With a second line.\n` + - ` */\n` + - `\n` + - `${code}` + `/**\n` + + ` * Test banner.\n` + + ` *\n` + + ` * With a second line.\n` + + ` */\n` + + `\n` + + `${code}` ); }); @@ -428,13 +428,13 @@ describe('LicensePlugin', () => { expect(result).toBeDefined(); expect(result.map).toBeDefined(); expect(result.code).toEqual( - `/**\n` + - ` * Test banner.\n` + - ` *\n` + - ` * With a second line.\n` + - ` */\n` + - `\n` + - `${code}` + `/**\n` + + ` * Test banner.\n` + + ` *\n` + + ` * With a second line.\n` + + ` */\n` + + `\n` + + `${code}` ); }); @@ -453,13 +453,13 @@ describe('LicensePlugin', () => { expect(result).toBeDefined(); expect(result.map).not.toBeDefined(); expect(result.code).toEqual( - `/**\n` + - ` * Test banner.\n` + - ` *\n` + - ` * With a second line.\n` + - ` */\n` + - `\n` + - `${code}` + `/**\n` + + ` * Test banner.\n` + + ` *\n` + + ` * With a second line.\n` + + ` */\n` + + `\n` + + `${code}` ); }); @@ -504,13 +504,13 @@ describe('LicensePlugin', () => { expect(result).toBeDefined(); expect(result.code).toEqual( - `/**\n` + - ` * Test banner.\n` + - ` *\n` + - ` * With a second line.\n` + - ` */\n` + - `\n` + - `${code}` + `/**\n` + + ` * Test banner.\n` + + ` *\n` + + ` * With a second line.\n` + + ` */\n` + + `\n` + + `${code}` ); }); @@ -542,11 +542,11 @@ describe('LicensePlugin', () => { expect(result).toBeDefined(); expect(result.code).toEqual( - `/**\n` + - ` * Date: ${moment().format('YYYY-MM-DD')}\n` + - ` */\n` + - `\n` + - `var foo = 0;` + `/**\n` + + ` * Date: ${moment().format('YYYY-MM-DD')}\n` + + ` */\n` + + `\n` + + `var foo = 0;` ); }); @@ -567,12 +567,12 @@ describe('LicensePlugin', () => { expect(result).toBeDefined(); expect(result.code).toEqual( - `/**\n` + - ` * Foo: bar\n` + - ` * Bar: baz\n` + - ` */\n` + - `\n` + - `var foo = 0;` + `/**\n` + + ` * Foo: bar\n` + + ` * Bar: baz\n` + + ` */\n` + + `\n` + + `var foo = 0;` ); }); @@ -595,12 +595,12 @@ describe('LicensePlugin', () => { expect(result).toBeDefined(); expect(result.code).toEqual( - `/**\n` + - ` * Foo: bar\n` + - ` * Bar: baz\n` + - ` */\n` + - `\n` + - `var foo = 0;` + `/**\n` + + ` * Foo: bar\n` + + ` * Bar: baz\n` + + ` */\n` + + `\n` + + `var foo = 0;` ); }); @@ -617,11 +617,11 @@ describe('LicensePlugin', () => { expect(result).toBeDefined(); expect(result.code).toEqual( - `/**\n` + - ` * Name: rollup-plugin-license\n` + - ` */\n` + - `\n` + - `var foo = 0;` + `/**\n` + + ` * Name: rollup-plugin-license\n` + + ` */\n` + + `\n` + + `var foo = 0;` ); }); @@ -640,16 +640,16 @@ describe('LicensePlugin', () => { expect(result).toBeDefined(); expect(result.code).toEqual( - `/**\n` + - ` * Name: rollup-plugin-license\n` + - ` *\n` + - ` * Dependencies:\n` + - ` * \n` + - ` * fake-package -- MIT\n` + - ` * \n` + - ` */\n` + - `\n` + - `var foo = 0;` + `/**\n` + + ` * Name: rollup-plugin-license\n` + + ` *\n` + + ` * Dependencies:\n` + + ` * \n` + + ` * fake-package -- MIT\n` + + ` * \n` + + ` */\n` + + `\n` + + `var foo = 0;` ); }); @@ -686,12 +686,12 @@ describe('LicensePlugin', () => { const txt = content.toString(); expect(txt).toBeDefined(); expect(txt).toEqual( - `Name: foo\n` + - `Version: 1.0.0\n` + - `License: MIT\n` + - `Private: false\n` + - `Description: Foo Package\n` + - `Author: Mickael Jeanroy ` + `Name: foo\n` + + `Version: 1.0.0\n` + + `License: MIT\n` + + `Private: false\n` + + `Description: Foo Package\n` + + `Author: Mickael Jeanroy ` ); done(); @@ -731,12 +731,12 @@ describe('LicensePlugin', () => { const txt = content.toString(); expect(txt).toBeDefined(); expect(txt).toEqual( - `Name: foo\n` + - `Version: 1.0.0\n` + - `License: MIT\n` + - `Private: false\n` + - `Description: Foo Package\n` + - `Author: Mickael Jeanroy ` + `Name: foo\n` + + `Version: 1.0.0\n` + + `License: MIT\n` + + `Private: false\n` + + `Description: Foo Package\n` + + `Author: Mickael Jeanroy ` ); done(); @@ -784,20 +784,20 @@ describe('LicensePlugin', () => { const txt = content.toString(); expect(txt).toBeDefined(); expect(txt).toEqual( - `Name: foo\n` + - `Version: 1.0.0\n` + - `License: MIT\n` + - `Private: false\n` + - `Description: Foo Package\n` + - `Author: Mickael Jeanroy \n` + - `\n` + - `---\n` + - `\n` + - `Name: bar\n` + - `Version: 2.0.0\n` + - `License: Apache 2.0\n` + - `Private: false\n` + - `Description: Bar Package` + `Name: foo\n` + + `Version: 1.0.0\n` + + `License: MIT\n` + + `Private: false\n` + + `Description: Foo Package\n` + + `Author: Mickael Jeanroy \n` + + `\n` + + `---\n` + + `\n` + + `Name: bar\n` + + `Version: 2.0.0\n` + + `License: Apache 2.0\n` + + `Private: false\n` + + `Description: Bar Package` ); done(); @@ -852,20 +852,20 @@ describe('LicensePlugin', () => { const txt = content.toString(); expect(txt).toBeDefined(); expect(txt).toEqual( - `Name: foo\n` + - `Version: 1.0.0\n` + - `License: MIT\n` + - `Private: false\n` + - `Description: Foo Package\n` + - `Author: Mickael Jeanroy \n` + - `\n` + - `---\n` + - `\n` + - `Name: bar\n` + - `Version: 2.0.0\n` + - `License: Apache 2.0\n` + - `Private: false\n` + - `Description: Bar Package` + `Name: foo\n` + + `Version: 1.0.0\n` + + `License: MIT\n` + + `Private: false\n` + + `Description: Foo Package\n` + + `Author: Mickael Jeanroy \n` + + `\n` + + `---\n` + + `\n` + + `Name: bar\n` + + `Version: 2.0.0\n` + + `License: Apache 2.0\n` + + `Private: false\n` + + `Description: Bar Package` ); done(); @@ -940,12 +940,12 @@ describe('LicensePlugin', () => { const txt = content.toString(); expect(txt).toBeDefined(); expect(txt).toEqual( - `Name: foo\n` + - `Version: 1.0.0\n` + - `License: MIT\n` + - `Private: false\n` + - `Description: Foo Package\n` + - `Author: Mickael Jeanroy ` + `Name: foo\n` + + `Version: 1.0.0\n` + + `License: MIT\n` + + `Private: false\n` + + `Description: Foo Package\n` + + `Author: Mickael Jeanroy ` ); done(); @@ -994,20 +994,20 @@ describe('LicensePlugin', () => { const txt = content.toString(); expect(txt).toBeDefined(); expect(txt).toEqual( - `Name: foo\n` + - `Version: 1.0.0\n` + - `License: MIT\n` + - `Private: false\n` + - `Description: Foo Package\n` + - `Author: Mickael Jeanroy \n` + - `\n` + - `---\n` + - `\n` + - `Name: bar\n` + - `Version: 2.0.0\n` + - `License: Apache 2.0\n` + - `Private: true\n` + - `Description: Bar Package` + `Name: foo\n` + + `Version: 1.0.0\n` + + `License: MIT\n` + + `Private: false\n` + + `Description: Foo Package\n` + + `Author: Mickael Jeanroy \n` + + `\n` + + `---\n` + + `\n` + + `Name: bar\n` + + `Version: 2.0.0\n` + + `License: Apache 2.0\n` + + `Private: true\n` + + `Description: Bar Package` ); done(); diff --git a/test/person.spec.js b/test/person.spec.js index e1e54c13..278846dc 100644 --- a/test/person.spec.js +++ b/test/person.spec.js @@ -107,7 +107,7 @@ describe('Person', () => { }); expect(person.text()).toBe( - 'Mickael Jeanroy (https://mjeanroy.com)' + 'Mickael Jeanroy (https://mjeanroy.com)' ); }); @@ -119,7 +119,7 @@ describe('Person', () => { }); expect(person.text('-- ', ' --')).toBe( - '-- Mickael Jeanroy (https://mjeanroy.com) --' + '-- Mickael Jeanroy (https://mjeanroy.com) --' ); }); });