Skip to content

Commit 9cdb298

Browse files
authored
fix: updates deps (#384)
1 parent 7561891 commit 9cdb298

17 files changed

Lines changed: 182 additions & 135 deletions

File tree

package.json

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
},
2929
"homepage": "https://github.com/makeomatic/ms-users#readme",
3030
"dependencies": {
31-
"@microfleet/core": "^12.0.0",
31+
"@microfleet/core": "^13.2.1",
3232
"@microfleet/transport-amqp": "^13.1.2",
33-
"@microfleet/validation": "^8.0.0",
33+
"@microfleet/validation": "^8.1.0",
3434
"bell": "^9.3.1",
3535
"bluebird": "^3.5.2",
3636
"bunyan": "^1.8.12",
@@ -41,15 +41,16 @@
4141
"dlock": "^8.1.0",
4242
"flake-idgen": "^1.1.0",
4343
"get-stdin": "^6.0.0",
44+
"get-value": "^3.0.1",
4445
"handlebars": "^4.0.12",
4546
"hapi": "^17.6.0",
46-
"ioredis": "^4.1.0",
47+
"ioredis": "^4.2.0",
4748
"is": "^3.2.1",
4849
"jsonwebtoken": "^8.3.0",
4950
"jwa": "^1.1.6",
5051
"lodash": "^4.17.11",
5152
"moment": "^2.22.2",
52-
"ms-conf": "^3.3.0",
53+
"ms-conf": "^3.3.1",
5354
"ms-flakeless": "^4.1.0",
5455
"ms-mailer-client": "^8.0.1",
5556
"ms-mailer-templates": "^1.10.0",
@@ -75,10 +76,10 @@
7576
"@babel/plugin-proposal-object-rest-spread": "^7.0.0",
7677
"@babel/plugin-transform-strict-mode": "^7.0.0",
7778
"@babel/register": "^7.0.0",
78-
"@makeomatic/deploy": "^8.0.1",
79-
"@semantic-release/changelog": "^3.0.0",
80-
"@semantic-release/exec": "^3.1.3",
81-
"@semantic-release/git": "^7.0.4",
79+
"@makeomatic/deploy": "^8.2.3",
80+
"@semantic-release/changelog": "^3.0.1",
81+
"@semantic-release/exec": "^3.3.0",
82+
"@semantic-release/git": "^7.0.5",
8283
"apidoc": "^0.17.6",
8384
"apidoc-plugin-schema": "^0.1.8",
8485
"babel-eslint": "^10.0.1",
@@ -87,7 +88,7 @@
8788
"cheerio": "^1.0.0-rc.2",
8889
"codecov": "^3.1.0",
8990
"cross-env": "^5.2.0",
90-
"eslint": "^5.7.0",
91+
"eslint": "^5.8.0",
9192
"eslint-config-makeomatic": "^3.0.0",
9293
"eslint-plugin-import": "^2.14.0",
9394
"eslint-plugin-mocha": "^5.2.0",
@@ -100,7 +101,7 @@
100101
"nyc": "^13.1.0",
101102
"puppeteer": "1.4.0",
102103
"rimraf": "^2.6.1",
103-
"sinon": "^7.0.0"
104+
"sinon": "^7.1.0"
104105
},
105106
"engines": {
106107
"node": ">= 8.9.0",

src/accounts/init-admin.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ module.exports = function initAccounts() {
1111
return Promise
1212
.delay(config.initAdminAccountsDelay)
1313
.return(accounts)
14-
// @todo use router dispatch, because a schema can contains default params
1514
.map((account) => {
1615
const userData = {
1716
audience,

src/actions/_/me.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ async function Me({ auth }) {
2929
Me.auth = {
3030
name: 'bearer',
3131
strategy: 'required',
32-
passError: true,
32+
passAuthError: true,
3333
};
3434
Me.schema = 'me';
3535
Me.transports = [ActionTransport.http, ActionTransport.amqp];

src/actions/remove.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
const { ActionTransport } = require('@microfleet/core');
22
const Promise = require('bluebird');
33
const Errors = require('common-errors');
4-
const get = require('lodash/get');
54
const intersection = require('lodash/intersection');
5+
const get = require('../utils/get-value');
66
const key = require('../utils/key');
77
const { getInternalData } = require('../utils/userData');
88
const getMetadata = require('../utils/getMetadata');
@@ -81,7 +81,7 @@ async function removeUser({ params }) {
8181

8282
// remove refs to SSO account
8383
for (const provider of SSO_PROVIDERS) {
84-
const uid = get(internal, `${provider}.uid`, false);
84+
const uid = get(internal, `${provider}.uid`, { default: false });
8585

8686
if (uid) {
8787
transaction.hdel(USERS_SSO_TO_ID, uid);

src/auth/oauth/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
const Promise = require('bluebird');
22
const Errors = require('common-errors');
3-
const get = require('lodash/get');
43
const partial = require('lodash/partial');
54

5+
const get = require('../../utils/get-value');
66
const getUid = require('./utils/uid');
77
const refresh = require('./utils/refresh');
88
const extractJWT = require('./utils/extractJWT');

src/auth/oauth/strategies/facebook.js

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
const Promise = require('bluebird');
22
const Crypto = require('crypto');
33
const differenceWith = require('lodash/differenceWith');
4-
const get = require('lodash/get');
54
const defaults = require('lodash/defaults');
65
const Urls = require('../utils/fb-urls');
6+
const get = require('../../../utils/get-value');
77

88
const FIELDS = [
99
'id',
@@ -46,7 +46,7 @@ function defaultProfileHandler(profile) {
4646
credentials.raw = profile;
4747

4848
// if we have actual picture
49-
if (get(profile, 'picture.data.is_silhouette', true) === false) {
49+
if (get(profile, 'picture.data.is_silhouette', { default: true }) === false) {
5050
credentials.profile.picture = profile.picture.data.url;
5151
}
5252

@@ -93,23 +93,22 @@ function verifyPermissions(permissions) {
9393

9494
function profileFactory(fields, profileHandler = defaultProfileHandler) {
9595
return async function obtainProfile(credentials, params, getter) {
96-
// eslint-disable-next-line camelcase
97-
const appsecret_proof = Crypto.createHmac('sha256', this.clientSecret)
96+
const ap = Crypto.createHmac('sha256', this.clientSecret)
9897
.update(credentials.token)
9998
.digest('hex');
10099

101-
const requiredPermissions = get(this, 'provider.scope', []);
100+
const requiredPermissions = get(this, 'provider.scope', { default: [] });
102101
const ctx = {
103102
fields,
104103
credentials,
105104
requiredPermissions,
106105
};
107106

108107
return Promise
109-
.bind(ctx, [getter, { appsecret_proof }])
108+
.bind(ctx, [getter, { appsecret_proof: ap }])
110109
.spread(fetchPermissions)
111110
.tap(verifyPermissions)
112-
.return([getter, { appsecret_proof, fields }])
111+
.return([getter, { appsecret_proof: ap, fields }])
113112
.spread(fetchProfile)
114113
.then(profileHandler);
115114
};
@@ -132,8 +131,8 @@ exports.options = (options) => {
132131
Urls.setVersion(apiVersion);
133132
}
134133

135-
const fields = get(options, 'fields', FIELDS);
136-
const profileHandler = get(options, 'profileHandler', defaultProfileHandler);
134+
const fields = get(options, 'fields', { default: FIELDS });
135+
const profileHandler = get(options, 'profileHandler', { default: defaultProfileHandler });
137136

138137
const configuredOptions = {
139138
scope,

src/auth/oauth/utils/detach.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
const get = require('lodash/get');
21
const Errors = require('common-errors');
32

3+
const get = require('../../../utils/get-value');
44
const redisKey = require('../../../utils/key');
55
const updateMetadata = require('../../../utils/updateMetadata');
66
const handlePipeline = require('../../../utils/pipelineError');
@@ -17,7 +17,7 @@ module.exports = function detach(provider, userData) {
1717
const userDataKey = redisKey(userId, USERS_DATA);
1818
const pipeline = redis.pipeline();
1919

20-
const uid = get(userData, [provider, 'uid'], false);
20+
const uid = get(userData, [provider, 'uid'], { default: false });
2121
if (!uid) {
2222
throw Errors.HttpStatusError(412, `${provider} account not found`);
2323
}

src/users.js

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
const Mservice = require('@microfleet/core');
1+
const { Microfleet, ConnectorsTypes } = require('@microfleet/core');
22
const Mailer = require('ms-mailer-client');
33
const merge = require('lodash/merge');
44
const assert = require('assert');
55
const fsort = require('redis-filtered-sort');
66
const TokenManager = require('ms-token');
77
const LockManager = require('dlock');
8-
const get = require('lodash/get');
98
const RedisCluster = require('ioredis').Cluster;
109
const Flakeless = require('ms-flakeless');
1110
const conf = require('./config');
11+
const get = require('./utils/get-value');
1212

1313
/**
1414
* @namespace Users
1515
*/
16-
module.exports = class Users extends Mservice {
16+
module.exports = class Users extends Microfleet {
1717
/**
1818
* Configuration options for the service
1919
* @type {Object}
@@ -63,11 +63,11 @@ module.exports = class Users extends Mservice {
6363
this.flake = new Flakeless(config.flake);
6464

6565
this.on('plugin:connect:amqp', (amqp) => {
66-
this._mailer = new Mailer(amqp, config.mailer);
66+
this.mailer = new Mailer(amqp, config.mailer);
6767
});
6868

6969
this.on('plugin:close:amqp', () => {
70-
this._mailer = null;
70+
this.mailer = null;
7171
});
7272

7373
this.on(`plugin:connect:${this.redisType}`, (redis) => {
@@ -80,16 +80,16 @@ module.exports = class Users extends Mservice {
8080

8181
this.on('plugin:start:http', (server) => {
8282
// if oAuth is enabled - initiate the strategy
83-
if (get(config, 'oauth.enabled', false) === true) {
83+
if (get(config, 'oauth.enabled', { default: false }) === true) {
8484
assert.equal(config.http.server.handler, 'hapi', 'oAuth must be used with hapi.js webserver');
8585

8686
const OAuthStrategyHandler = require('./auth/oauth/hapi');
87-
this._oauth = new OAuthStrategyHandler(server, config);
87+
this.oauth = new OAuthStrategyHandler(server, config);
8888
}
8989
});
9090

9191
this.on('plugin:stop:http', () => {
92-
this._oauth = null;
92+
this.oauth = null;
9393
});
9494

9595
// cleanup connections
@@ -100,42 +100,39 @@ module.exports = class Users extends Mservice {
100100

101101
// add migration connector
102102
if (config.migrations.enabled === true) {
103-
this.addConnector(Mservice.ConnectorsTypes.migration, () => (
103+
this.addConnector(ConnectorsTypes.migration, () => (
104104
this.migrate('redis', `${__dirname}/migrations`)
105105
));
106106
}
107107

108-
// adds mailer connector
109-
this._defineGetter('mailer');
110-
111108
// ensure we close connection when needed
112-
this.addDestructor(Mservice.ConnectorsTypes.database, () => (
113-
this._pubsub.quit().reflect()
109+
this.addDestructor(ConnectorsTypes.database, () => (
110+
this.pubsub.quit().reflect()
114111
));
115112

116113
// add lock manager
117-
this.addConnector(Mservice.ConnectorsTypes.migration, async () => {
118-
this._pubsub = redisDuplicate(this.redis);
119-
await this._pubsub.connect();
114+
this.addConnector(ConnectorsTypes.migration, async () => {
115+
this.pubsub = redisDuplicate(this.redis);
116+
await this.pubsub.connect();
120117

121118
this.dlock = new LockManager({
122119
...config.lockManager,
123-
client: this._redis,
124-
pubsub: this._pubsub,
120+
client: this.redis,
121+
pubsub: this.pubsub,
125122
log: this.log,
126123
});
127124

128125
return this.dlock;
129126
});
130127

131128
// init account seed
132-
this.addConnector(Mservice.ConnectorsTypes.application, () => (
129+
this.addConnector(ConnectorsTypes.application, () => (
133130
this.initAdminAccounts()
134131
));
135132

136133
// fake accounts for development
137134
if (process.env.NODE_ENV === 'development') {
138-
this.addConnector(Mservice.ConnectorsTypes.application, () => (
135+
this.addConnector(ConnectorsTypes.application, () => (
139136
this.initFakeAccounts()
140137
));
141138
}

src/utils/get-value.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const get = require('get-value');
2+
3+
const { hasOwnProperty } = Object.prototype;
4+
const isValid = (key, obj) => hasOwnProperty.call(obj, key) && obj[key] !== undefined;
5+
6+
module.exports = (target, path, options = {}) => {
7+
return get(target, path, { ...options, isValid });
8+
};

test/docker-compose.sentinel.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ services:
8282
- rabbitmq
8383
working_dir: /src
8484
volumes:
85-
- ${PWD}:/src
86-
- ./configs:/configs
85+
- ${PWD}:/src:cached
86+
- ./configs:/configs:cached
8787
extra_hosts:
8888
- "ms-users.local:172.16.238.12"
8989
environment:

0 commit comments

Comments
 (0)