From 3748ff0a21e1c1fee98c5aa59810f37bed9b0d23 Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Wed, 4 Dec 2019 15:27:36 -0500 Subject: [PATCH 01/11] (refactor): move tests to test/, test-utils/ to test/config/ - have been putting tests separately from source nowadays in other of my libraries, so standardize around that - put fixtures just in test/ (later could be in test/fixtures/), leave config/ solely for test config type things --- jest.config.js | 8 ++++---- package.json | 2 +- {test-utils => test/config}/configure-enzyme.js | 0 {test-utils => test/config}/jest-export.js | 0 {test-utils => test/config}/window-resizeTo.js | 0 {test-utils => test}/fixtures.js | 0 {src => test}/index.spec.js | 4 ++-- 7 files changed, 7 insertions(+), 7 deletions(-) rename {test-utils => test/config}/configure-enzyme.js (100%) rename {test-utils => test/config}/jest-export.js (100%) rename {test-utils => test/config}/window-resizeTo.js (100%) rename {test-utils => test}/fixtures.js (100%) rename {src => test}/index.spec.js (98%) diff --git a/jest.config.js b/jest.config.js index 5b40fc7..9f2c6b0 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,13 +1,13 @@ module.exports = { moduleNameMapper: { // allow importing of Jest as an ES Module (https://github.com/facebook/jest/pull/7571#issuecomment-498634094) - '^jest$': '/test-utils/jest-export.js' + '^jest$': '/test/config/jest-export.js' }, setupFilesAfterEnv: [ // configure enzyme w/ react adapter - '/test-utils/configure-enzyme.js', + '/test/config/configure-enzyme.js', // polyfill window.resizeTo - '/test-utils/window-resizeTo.js' + '/test/config/window-resizeTo.js' ], transform: { // use babel-jest@23 for babel@6 support (https://github.com/facebook/jest/issues/8230#issuecomment-479470547) @@ -15,6 +15,6 @@ module.exports = { }, coveragePathIgnorePatterns: [ '/node_modules/', // default - '/test-utils/' // ignore test-utils + '/test/' // ignore any test helper files ] } diff --git a/package.json b/package.json index deac684..8126d76 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "A React wrapper component around signature_pad. Unopinionated and heavily updated fork of react-signature-pad", "main": "build/index.js", "files": [ - "src/index.js", + "src/", "build/" ], "author": "Anton Gilgur", diff --git a/test-utils/configure-enzyme.js b/test/config/configure-enzyme.js similarity index 100% rename from test-utils/configure-enzyme.js rename to test/config/configure-enzyme.js diff --git a/test-utils/jest-export.js b/test/config/jest-export.js similarity index 100% rename from test-utils/jest-export.js rename to test/config/jest-export.js diff --git a/test-utils/window-resizeTo.js b/test/config/window-resizeTo.js similarity index 100% rename from test-utils/window-resizeTo.js rename to test/config/window-resizeTo.js diff --git a/test-utils/fixtures.js b/test/fixtures.js similarity index 100% rename from test-utils/fixtures.js rename to test/fixtures.js diff --git a/src/index.spec.js b/test/index.spec.js similarity index 98% rename from src/index.spec.js rename to test/index.spec.js index 2bb58c1..7fe7fd4 100644 --- a/src/index.spec.js +++ b/test/index.spec.js @@ -2,8 +2,8 @@ import jest, { describe, it, test, expect } from 'jest' import { mount } from 'enzyme' import React from 'react' -import SignatureCanvas from './index.js' -import { propsF, dotF } from '../test-utils/fixtures.js' +import SignatureCanvas from '../src/index.js' +import { propsF, dotF } from './fixtures.js' test('mounts canvas and instance properly', () => { const wrapper = mount() From fed1e6afc0b16e04a0261fcd244d6c8622c74c5c Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Wed, 4 Dec 2019 15:40:07 -0500 Subject: [PATCH 02/11] (env/refactor): standardize .gitignore - basically the same one I use in all my other libraries - I believe it's an old version of Node output from gitignore.io iirc - it has comments unlike the old one, so that's much nicer for those who aren't totally sure what each entry is for --- .gitignore | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index ec63435..22f3621 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,28 @@ +### custom ### + +# build output build/ +# test coverage output coverage/ +### Node ### + +# Logs +logs +*.log npm-debug.log* + +# Dependency directories node_modules/ +# Optional npm cache directory +.npm + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' *.tgz -.DS_Store -*~ +# dotenv environment variables file +.env From c4a9ec8c961fd8cb0ab9124b48261c782cd7397b Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Thu, 12 Dec 2019 00:06:11 -0500 Subject: [PATCH 03/11] (deps): use jest-without-globals to import jest globals - no more globals used in tests! --- jest.config.js | 4 ---- package-lock.json | 6 ++++++ package.json | 1 + test/config/jest-export.js | 4 ---- test/index.spec.js | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-) delete mode 100644 test/config/jest-export.js diff --git a/jest.config.js b/jest.config.js index 9f2c6b0..8171d99 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,8 +1,4 @@ module.exports = { - moduleNameMapper: { - // allow importing of Jest as an ES Module (https://github.com/facebook/jest/pull/7571#issuecomment-498634094) - '^jest$': '/test/config/jest-export.js' - }, setupFilesAfterEnv: [ // configure enzyme w/ react adapter '/test/config/configure-enzyme.js', diff --git a/package-lock.json b/package-lock.json index dc76d5a..c6dedf6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10200,6 +10200,12 @@ } } }, + "jest-without-globals": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/jest-without-globals/-/jest-without-globals-0.0.2.tgz", + "integrity": "sha512-bj0gn7yJVqz8C3bvZdW6anc6K7YE1kQgFs7YuwnA6e3g+VzQc3zErIc4W2Mrx/06h1wdgBSswidVThp09of2/w==", + "dev": true + }, "jest-worker": { "version": "24.6.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.6.0.tgz", diff --git a/package.json b/package.json index 8126d76..29c1ccb 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,7 @@ "css-loader": "^0.24.0", "enzyme": "^3.10.0", "jest": "^24.8.0", + "jest-without-globals": "^0.0.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-hot-loader": "^1.2.7", diff --git a/test/config/jest-export.js b/test/config/jest-export.js deleted file mode 100644 index 37d01f5..0000000 --- a/test/config/jest-export.js +++ /dev/null @@ -1,4 +0,0 @@ -// export Jest as an ES Module (https://github.com/facebook/jest/pull/7571#issuecomment-498634094) -/* global jest */ -export default jest -export const { expect, test, describe, it } = global diff --git a/test/index.spec.js b/test/index.spec.js index 7fe7fd4..f21f65c 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -1,4 +1,4 @@ -import jest, { describe, it, test, expect } from 'jest' +import { jest, describe, it, test, expect } from 'jest-without-globals' import { mount } from 'enzyme' import React from 'react' From 651c5c59ab100813afa05e778d39a367f13ad13b Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Sat, 15 Feb 2020 18:53:49 -0500 Subject: [PATCH 04/11] (ci): upgrade to use Node v10 - Node 8 was EOL in December, I upgraded locally a while ago too - The default NPM version for Node v10 also supports `npm ci`, which should be a CI speed boost as well --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ba455b9..f8934a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: node_js # default is the very old 0.10.48; match local version instead -node_js: '8.9' +node_js: '10.16.0' before_script: npm run lint script: npm test -- --coverage From 754e0b6227624e8bb7de5a3d03ba89a23dd6ea1a Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Tue, 3 Mar 2020 23:57:58 -0500 Subject: [PATCH 05/11] (deps): upgrade to canvas@2, jsdom@15 - because canvas@1 is deprecated and is having install issues - see hhttps://travis-ci.org/agilgur5/react-signature-canvas/builds/650962136, https://travis-ci.org/agilgur5/react-signature-canvas/builds/658062587, etc --- jest.config.js | 2 + package-lock.json | 245 +++++++++++++++++++++++++++++++++++++++++----- package.json | 3 +- 3 files changed, 226 insertions(+), 24 deletions(-) diff --git a/jest.config.js b/jest.config.js index 8171d99..326d7f5 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,4 +1,6 @@ module.exports = { + // Jest 24 defaults to JSDOM 11, upgrade to 15 to support canvas@2 + testEnvironment: 'jest-environment-jsdom-fifteen', setupFilesAfterEnv: [ // configure enzyme w/ react adapter '/test/config/configure-enzyme.js', diff --git a/package-lock.json b/package-lock.json index c6dedf6..b76d98f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3354,13 +3354,41 @@ "integrity": "sha1-zcUu/o+C3RORZhW3job3BOzmGAI=", "dev": true }, - "canvas-prebuilt": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/canvas-prebuilt/-/canvas-prebuilt-1.6.11.tgz", - "integrity": "sha512-ayBAayYLgFbGBX+cwtOzM4iEQP4XB5DuBbtjgvAwQ66/FMzSR7DhlCqtDZIq9UBbpFCb1QpyDgUNVclHDdBixg==", + "canvas": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz", + "integrity": "sha512-S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA==", "dev": true, "requires": { - "node-pre-gyp": "^0.10.0" + "nan": "^2.14.0", + "node-pre-gyp": "^0.11.0", + "simple-get": "^3.0.3" + }, + "dependencies": { + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true + }, + "node-pre-gyp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", + "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", + "dev": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + } } }, "capture-exit": { @@ -4003,6 +4031,15 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dev": true, + "requires": { + "mimic-response": "^2.0.0" + } + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -7165,6 +7202,12 @@ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, "ipaddr.js": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz", @@ -8251,6 +8294,131 @@ "jsdom": "^11.5.1" } }, + "jest-environment-jsdom-fifteen": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom-fifteen/-/jest-environment-jsdom-fifteen-1.0.2.tgz", + "integrity": "sha512-nfrnAfwklE1872LIB31HcjM65cWTh1wzvMSp10IYtPJjLDUbTTvDpajZgIxUnhRmzGvogdHDayCIlerLK0OBBg==", + "dev": true, + "requires": { + "@jest/environment": "^24.3.0", + "@jest/fake-timers": "^24.3.0", + "@jest/types": "^24.3.0", + "jest-mock": "^24.0.0", + "jest-util": "^24.0.0", + "jsdom": "^15.2.1" + }, + "dependencies": { + "acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "dev": true + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "cssstyle": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.2.0.tgz", + "integrity": "sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "jsdom": { + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz", + "integrity": "sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^7.1.0", + "acorn-globals": "^4.3.2", + "array-equal": "^1.0.0", + "cssom": "^0.4.1", + "cssstyle": "^2.0.0", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.1", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.2.0", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.7", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^7.0.0", + "xml-name-validator": "^3.0.0" + } + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "ws": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz", + "integrity": "sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==", + "dev": true + } + } + }, "jest-environment-node": { "version": "24.8.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.8.0.tgz", @@ -10862,6 +11030,12 @@ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -11127,24 +11301,6 @@ "which": "^1.3.0" } }, - "node-pre-gyp": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz", - "integrity": "sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A==", - "dev": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, "nopt": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", @@ -13636,6 +13792,15 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, + "saxes": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", + "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", + "dev": true, + "requires": { + "xmlchars": "^2.1.1" + } + }, "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", @@ -13797,6 +13962,23 @@ "resolved": "https://registry.npmjs.org/signature_pad/-/signature_pad-2.3.2.tgz", "integrity": "sha512-peYXLxOsIY6MES2TrRLDiNg2T++8gGbpP2yaC+6Ohtxr+a2dzoaqWosWDY9sWqTAAk6E/TyQO+LJw9zQwyu5kA==" }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "dev": true + }, + "simple-get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", + "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "dev": true, + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "sisteransi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.2.tgz", @@ -15083,6 +15265,17 @@ "browser-process-hrtime": "^0.1.2" } }, + "w3c-xmlserializer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", + "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", + "dev": true, + "requires": { + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" + } + }, "walker": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", @@ -15396,6 +15589,12 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", diff --git a/package.json b/package.json index 29c1ccb..72df904 100644 --- a/package.json +++ b/package.json @@ -63,10 +63,11 @@ "babel-preset-es2015": "^6.14.0", "babel-preset-react": "^6.11.1", "babel-preset-stage-2": "^6.13.0", - "canvas-prebuilt": "^1.6.11", + "canvas": "^2.6.1", "css-loader": "^0.24.0", "enzyme": "^3.10.0", "jest": "^24.8.0", + "jest-environment-jsdom-fifteen": "^1.0.2", "jest-without-globals": "^0.0.2", "react": "^17.0.2", "react-dom": "^17.0.2", From 39626138cd18c009bc1041643a83adfaaa829374 Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Thu, 13 Feb 2020 16:21:23 -0500 Subject: [PATCH 06/11] (pkg): add funding --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 72df904..a9cb6f2 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,9 @@ "bugs": { "url": "https://github.com/agilgur5/react-signature-canvas/issues" }, + "funding": { + "url": "https://github.com/sponsors/agilgur5" + }, "keywords": [ "react", "react-component", From 0e423d4edccf0ba45e6963aafa24354b05470718 Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Thu, 13 Feb 2020 16:22:49 -0500 Subject: [PATCH 07/11] (feat): add a named export (same as default) - because many folks prefer not to use default exports and because named exports are more explicit, etc, etc --- src/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index e80ab0c..ce553ed 100644 --- a/src/index.js +++ b/src/index.js @@ -3,7 +3,7 @@ import React, { Component } from 'react' import SignaturePad from 'signature_pad' import trimCanvas from 'trim-canvas' -export default class SignatureCanvas extends Component { +export class SignatureCanvas extends Component { static propTypes = { // signature_pad's props velocityFilterWeight: PropTypes.number, @@ -139,3 +139,5 @@ export default class SignatureCanvas extends Component { return this._sigPad.toData() } } + +export default SignatureCanvas From 02141b7d0f0d587082852f2e2c62bd82b0943534 Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Tue, 3 Mar 2020 22:46:24 -0500 Subject: [PATCH 08/11] (env): rename 'dist' script to 'build' - 'build' is a lot more intuitive and matches other usage --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index a9cb6f2..dae76c0 100644 --- a/package.json +++ b/package.json @@ -41,10 +41,10 @@ "lint": "standard --parser babel-eslint", "lint:fix": "standard --parser babel-eslint --fix", "start": "webpack-dev-server -d --inline --hot", - "dist": "webpack -p --config webpack.production.config.js", + "build": "webpack -p --config webpack.production.config.js", "test": "jest", - "test:pub": "npm run dist && npm pack", - "pub": "npm run dist && npm publish", + "test:pub": "npm run build && npm pack", + "pub": "npm run build && npm publish", "changelog": "changelog-maker" }, "peerDependencies": { From e8b0554c2b51bb76ff9438a5b3b62e77da644806 Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Fri, 6 Mar 2020 07:43:36 -0500 Subject: [PATCH 09/11] (deps): move the window.resizeTo polyfill to its own package - and import & use it here! --- jest.config.js | 2 +- package-lock.json | 6 ++++++ package.json | 3 ++- test/config/window-resizeTo.js | 10 ---------- 4 files changed, 9 insertions(+), 12 deletions(-) delete mode 100644 test/config/window-resizeTo.js diff --git a/jest.config.js b/jest.config.js index 326d7f5..5dfac61 100644 --- a/jest.config.js +++ b/jest.config.js @@ -5,7 +5,7 @@ module.exports = { // configure enzyme w/ react adapter '/test/config/configure-enzyme.js', // polyfill window.resizeTo - '/test/config/window-resizeTo.js' + 'window-resizeto/polyfill' ], transform: { // use babel-jest@23 for babel@6 support (https://github.com/facebook/jest/issues/8230#issuecomment-479470547) diff --git a/package-lock.json b/package-lock.json index b76d98f..e78534e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15504,6 +15504,12 @@ "string-width": "^1.0.2 || 2" } }, + "window-resizeto": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/window-resizeto/-/window-resizeto-0.0.2.tgz", + "integrity": "sha512-681jdLyc6p+Whk7lFxWISm+V49ymURtBN+Oz5j5c6UnYoBpqc2Q8e3pjZ5VtedC01TjJqr2Xt9XdJMid4KxZmQ==", + "dev": true + }, "window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", diff --git a/package.json b/package.json index dae76c0..0049a5a 100644 --- a/package.json +++ b/package.json @@ -78,6 +78,7 @@ "standard": "^13.0.2", "style-loader": "^0.13.1", "webpack": "^1.12.2", - "webpack-dev-server": "^1.10.1" + "webpack-dev-server": "^1.10.1", + "window-resizeto": "0.0.2" } } diff --git a/test/config/window-resizeTo.js b/test/config/window-resizeTo.js deleted file mode 100644 index 3366650..0000000 --- a/test/config/window-resizeTo.js +++ /dev/null @@ -1,10 +0,0 @@ -// polyfill window.resizeTo in jsdom environment -// https://spectrum.chat/testing-library/help-react/how-to-set-window-innerwidth-to-test-mobile~70aa9572-b7cc-4397-92f5-a09d75ed24b8?m=MTU1OTU5MTI2MTI0MQ== -window.resizeTo = function resizeTo (width, height) { - Object.assign(window, { - innerWidth: width, - innerHeight: height, - outerWidth: width, - outerHeight: height - }).dispatchEvent(new window.Event('resize')) -} From 0c55ee1630a770f0c8b6b904175c6aac033b2a99 Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Thu, 10 Feb 2022 12:09:34 -0500 Subject: [PATCH 10/11] env: switch to `main` branch as default - now that GH officially supports branch renames, moving all my repos to use `main` - GH also creates redirects now, which seem to be working well for the badges right now, but better to move all of them anyway - also had to switch Codecov default branch etc --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4480a15..2f42f6a 100644 --- a/README.md +++ b/README.md @@ -8,15 +8,15 @@ [![package-json](https://img.shields.io/github/package-json/v/agilgur5/react-signature-canvas.svg)](https://npmjs.org/package/react-signature-canvas) [![releases](https://img.shields.io/github/tag-pre/agilgur5/react-signature-canvas.svg)](https://github.com/agilgur5/react-signature-canvas/releases) -[![commits](https://img.shields.io/github/commits-since/agilgur5/react-signature-canvas/v1.0.5.svg)](https://github.com/agilgur5/react-signature-canvas/commits/master) +[![commits](https://img.shields.io/github/commits-since/agilgur5/react-signature-canvas/v1.0.5.svg)](https://github.com/agilgur5/react-signature-canvas/commits/main)
[![dt](https://img.shields.io/npm/dt/react-signature-canvas.svg)](https://npmjs.org/package/react-signature-canvas) [![dy](https://img.shields.io/npm/dy/react-signature-canvas.svg)](https://npmjs.org/package/react-signature-canvas) [![dm](https://img.shields.io/npm/dm/react-signature-canvas.svg)](https://npmjs.org/package/react-signature-canvas) [![dw](https://img.shields.io/npm/dw/react-signature-canvas.svg)](https://npmjs.org/package/react-signature-canvas)
-[![build status](https://img.shields.io/travis/agilgur5/react-signature-canvas/master.svg)](https://travis-ci.org/agilgur5/react-signature-canvas) -[![code coverage](https://img.shields.io/codecov/c/gh/agilgur5/react-signature-canvas/master.svg)](https://codecov.io/gh/agilgur5/react-signature-canvas) +[![build status](https://img.shields.io/travis/agilgur5/react-signature-canvas/main.svg)](https://travis-ci.org/agilgur5/react-signature-canvas) +[![code coverage](https://img.shields.io/codecov/c/gh/agilgur5/react-signature-canvas/main.svg)](https://codecov.io/gh/agilgur5/react-signature-canvas)
[![NPM](https://nodei.co/npm/react-signature-canvas.png?downloads=true&downloadRank=true&stars=true)](https://npmjs.org/package/react-signature-canvas)
From fceda7622b11fb1c7fd1169c5b7f951b522fbb0c Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Thu, 10 Feb 2022 12:18:24 -0500 Subject: [PATCH 11/11] ci: use travis-ci.com as .org is decomm'd - https://blog.travis-ci.com/2021-05-07-orgshutdown - made the switch over with my last PR, but needed to change the docs too - update badge to use `.com` - update link to use `.com`, `app.` subdomain, and `github/` URL that travis-ci.com currently uses - also use `/branches` URL as the default URL shows current builds, which includes WIP PR/branch builds too - `/branches` shows the "default branch" first instead and various checkmarks etc, so it's a good summary page that can be drilled down from --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2f42f6a..e3e055c 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ [![dm](https://img.shields.io/npm/dm/react-signature-canvas.svg)](https://npmjs.org/package/react-signature-canvas) [![dw](https://img.shields.io/npm/dw/react-signature-canvas.svg)](https://npmjs.org/package/react-signature-canvas)
-[![build status](https://img.shields.io/travis/agilgur5/react-signature-canvas/main.svg)](https://travis-ci.org/agilgur5/react-signature-canvas) +[![build status](https://img.shields.io/travis/com/agilgur5/react-signature-canvas/main.svg)](https://app.travis-ci.com/github/agilgur5/react-signature-canvas/branches) [![code coverage](https://img.shields.io/codecov/c/gh/agilgur5/react-signature-canvas/main.svg)](https://codecov.io/gh/agilgur5/react-signature-canvas)
[![NPM](https://nodei.co/npm/react-signature-canvas.png?downloads=true&downloadRank=true&stars=true)](https://npmjs.org/package/react-signature-canvas)