diff --git a/.env.example b/.env.example index 222f213..ec569a4 100644 --- a/.env.example +++ b/.env.example @@ -16,3 +16,4 @@ REDIS_URL= SENTRY_DSN= SEGMENT_WRITE_KEY= +WINDSOR_KEY= diff --git a/package.json b/package.json index 5df06ac..6bc2f76 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,6 @@ }, "dependencies": { "@sentry/node": "^5.6.2", - "analytics-node": "^3.4.0-beta.1", "async-sema": "^3.0.1", "bad-words": "^3.0.3", "bee-queue": "^1.2.2", @@ -26,7 +25,8 @@ "ms": "^2.1.1", "probot": "^9.2.19", "rexrex": "^1.3.0", - "smee-client": "^1.0.1" + "smee-client": "^1.0.1", + "windsor-node": "^0.0.3" }, "devDependencies": { "eslint": "^6.3.0", diff --git a/src/analytics.js b/src/analytics.js index 4cbd7cd..af621ea 100644 --- a/src/analytics.js +++ b/src/analytics.js @@ -1,12 +1,12 @@ -const Analytics = require('analytics-node') +const Windsor = require('windsor-node') if (process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'production') { - let analytics = new Analytics(process.env.SEGMENT_WRITE_KEY) + let analytics = new Windsor(process.env.WINDSOR_KEY) module.exports = { - identify: analytics.identify.bind(analytics), + identify: analytics.user.bind(analytics), track: x => { try { - return analytics.track.call(analytics, typeof x === 'function' ? x() : x) + return analytics.event.call(analytics, typeof x === 'function' ? x() : x) } catch (error) { console.error(error) } diff --git a/test/index.test.js b/test/index.test.js index 663949c..cb6a06f 100644 --- a/test/index.test.js +++ b/test/index.test.js @@ -90,12 +90,14 @@ jest.mock( ) jest.mock( - 'analytics-node', + 'windsor-node', () => class { constructor() { - this.track = jest.fn() - this.identify = jest.fn() + // this.track = jest.fn() + // this.identify = jest.fn() + this.user = jest.fn() + this.event = jest.fn() } } ) diff --git a/yarn.lock b/yarn.lock index 651dd34..cd5a4ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -439,14 +439,6 @@ dependencies: any-observable "^0.3.0" -"@segment/loosely-validate-event@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz#87dfc979e5b4e7b82c5f1d8b722dfd5d77644681" - integrity sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw== - dependencies: - component-type "^1.2.1" - join-component "^1.1.0" - "@sentry/core@5.6.2": version "5.6.2" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.6.2.tgz#8c5477654a83ebe41a72e86a79215deb5025e418" @@ -682,20 +674,6 @@ ajv@^6.10.0, ajv@^6.5.5, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -analytics-node@^3.4.0-beta.1: - version "3.4.0-beta.1" - resolved "https://registry.yarnpkg.com/analytics-node/-/analytics-node-3.4.0-beta.1.tgz#f348d60fb25f15d481ad2c2bdef53c29384b4a5e" - integrity sha512-+0F/y4Asc5S2qhWcYss+iCob6TTXQktwbqlIk02gcZaRxpekCbnTbJu/rcaRooVHxqp9WSzUXiWCesJYPJETZQ== - dependencies: - "@segment/loosely-validate-event" "^2.0.0" - axios "^0.18.1" - axios-retry "^3.0.2" - lodash.isstring "^4.0.1" - md5 "^2.2.1" - ms "^2.0.0" - remove-trailing-slash "^0.1.0" - uuid "^3.2.1" - ansi-align@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" @@ -911,17 +889,17 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== -axios-retry@^3.0.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.1.2.tgz#4f4dcbefb0b434e22b72bd5e28a027d77b8a3458" - integrity sha512-+X0mtJ3S0mmia1kTVi1eA3DAC+oWnT2A29g3CpkzcBPMT6vJm+hn/WiV9wPt/KXLHVmg5zev9mWqkPx7bHMovg== +axios-retry@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.0.2.tgz#d644db74184858e4a5cf10f5ea88dd657bb4ba61" + integrity sha512-cX5sYst14esQAWIkyK5jrwHuS/XKLfgY7s2G9QktCPoAWEi00smMFtByIidfJVAgp0gFD41e7nxiAxIqW8ZO8A== dependencies: is-retry-allowed "^1.1.0" -axios@^0.18.1: - version "0.18.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" - integrity sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g== +axios@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8" + integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ== dependencies: follow-redirects "1.5.10" is-buffer "^2.0.2" @@ -1422,11 +1400,6 @@ component-emitter@^1.2.0, component-emitter@^1.2.1: resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -component-type@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-type/-/component-type-1.2.1.tgz#8a47901700238e4fc32269771230226f24b415a9" - integrity sha1-ikeQFwAjjk/DIml3EjAibyS0Fak= - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -3695,11 +3668,6 @@ jest@^24.9.0: import-local "^2.0.0" jest-cli "^24.9.0" -join-component@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/join-component/-/join-component-1.1.0.tgz#b8417b750661a392bee2c2537c68b2a9d4977cd5" - integrity sha1-uEF7dQZho5K+4sJTfGiyqdSXfNU= - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -4065,7 +4033,7 @@ lodash.isplainobject@^4.0.6: resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= -lodash.isstring@^4.0.1: +lodash.isstring@4.0.1, lodash.isstring@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= @@ -4217,7 +4185,7 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -md5@^2.2.1: +md5@2.2.1, md5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk= @@ -4407,7 +4375,7 @@ ms@2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@^2.0.0, ms@^2.1.1: +ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== @@ -5420,7 +5388,7 @@ remove-trailing-separator@^1.0.1: resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= -remove-trailing-slash@^0.1.0: +remove-trailing-slash@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-slash/-/remove-trailing-slash-0.1.0.tgz#1498e5df0984c27e49b76ebf06887ca2d01150d2" integrity sha1-FJjl3wmEwn5Jt26/Boh8otARUNI= @@ -6493,6 +6461,11 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= +uuid@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" + integrity sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA== + uuid@3.3.2, uuid@^3.0.0, uuid@^3.2.1, uuid@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" @@ -6632,6 +6605,19 @@ windows-release@^3.1.0: dependencies: execa "^1.0.0" +windsor-node@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/windsor-node/-/windsor-node-0.0.3.tgz#abded3cc8343df0eb0891cd5502a62f544a0799e" + integrity sha512-DCyGU3PxWFTqulAwBZp3fLTKvoV/AAVUASku02cgnHdsCF30Tkin8K7kR+MAUrjmdP/JLhskzkNzJgmJPrrqbA== + dependencies: + axios "0.19.0" + axios-retry "3.0.2" + lodash.isstring "4.0.1" + md5 "2.2.1" + ms "2.0.0" + remove-trailing-slash "0.1.0" + uuid "3.2.1" + wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"