From a62d596e718ea0987c336c8d145311a7e18e0721 Mon Sep 17 00:00:00 2001 From: Michael Wittwer Date: Tue, 8 Jan 2019 11:39:37 +0100 Subject: [PATCH 1/4] refactor(lodash): replace with es6 and lodash-es - use es6 module version of lodash - replace lodash functionality with native where possible --- package-lock.json | 15 ++++++++++ package.json | 7 +++-- src/decorator/impl/model/model.decorator.ts | 2 +- .../condition-expression-builder.ts | 16 ++++++---- .../unique-attribute-value-name.function.ts | 2 +- .../merge-conditions.function.ts | 28 ++++++++++++++---- src/dynamo/expression/param-util.ts | 2 +- ...are-and-add-update-expressions.function.ts | 29 +++++++++---------- .../expression/request-expression-builder.ts | 2 +- src/dynamo/request/get/get.request.ts | 3 +- src/dynamo/request/update/update.request.ts | 5 +--- src/mapper/for-type/number.mapper.ts | 2 +- src/mapper/util.ts | 2 +- tools/tslint/test/test.ts.lint | 2 +- 14 files changed, 74 insertions(+), 43 deletions(-) diff --git a/package-lock.json b/package-lock.json index c92dc5eed..a9eb08656 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1317,6 +1317,15 @@ "integrity": "sha512-Z3TNyBL8Vd/M9D9Ms2S3LmFq2sSMzahodD6rCS9V2N44HUMINb75jNkSuwAx7eo2ufqTdfOdtGQpNbieUjPQmw==", "dev": true }, + "@types/lodash-es": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.1.tgz", + "integrity": "sha512-3EDZjphPfdjnsWvY11ufYImFMPyQJwIH1eFYRgWQsjOctce06fmNgVf5sfvXBRiaS1o0X50bAln1lfWs8ZO3BA==", + "dev": true, + "requires": { + "@types/lodash": "*" + } + }, "@types/marked": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.4.2.tgz", @@ -7390,6 +7399,12 @@ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true }, + "lodash-es": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.11.tgz", + "integrity": "sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q==", + "dev": true + }, "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", diff --git a/package.json b/package.json index a4c02af66..fe83e7d69 100644 --- a/package.json +++ b/package.json @@ -42,12 +42,13 @@ "tslint:custom-rule:test": "tslint --test ./tools/tslint/test", "prettier": "prettier --write --config ./.prettierrc.yml '{src,test}/**/*.ts'" }, + "dependencies": {}, "devDependencies": { "@commitlint/cli": "^7.2.1", "@commitlint/config-conventional": "^7.1.2", "@commitlint/prompt-cli": "^7.2.1", "@types/jest": "^23.3.11", - "@types/lodash": "^4.14.119", + "@types/lodash-es": "^4.14.119", "@types/node": "^8.10.39", "@types/uuid": "^3.4.4", "aws-sdk": "^2.382.0", @@ -57,7 +58,7 @@ "husky": "^1.3.1", "jest": "^23.6.0", "lint-staged": "^8.1.0", - "lodash": "^4.17.11", + "lodash-es": "^4.17.11", "lodash.camelcase": "^4.3.0", "prettier": "^1.15.3", "reflect-metadata": "^0.1.12", @@ -78,7 +79,7 @@ }, "peerDependencies": { "aws-sdk": "^2.382.0", - "lodash": "^4.17.10", + "lodash-es": "^4.17.11", "reflect-metadata": "^0.1.12", "rxjs": "^6.3.3", "uuid": "^3.3.2" diff --git a/src/decorator/impl/model/model.decorator.ts b/src/decorator/impl/model/model.decorator.ts index 41dc26834..d926330dd 100644 --- a/src/decorator/impl/model/model.decorator.ts +++ b/src/decorator/impl/model/model.decorator.ts @@ -1,5 +1,5 @@ import * as DynamoDB from 'aws-sdk/clients/dynamodb' -import { kebabCase } from 'lodash' +import { kebabCase } from 'lodash-es' import { ModelMetadata } from '../../metadata' import { PropertyMetadata } from '../../metadata/property-metadata.model' import { SecondaryIndex } from '../index/secondary-index' diff --git a/src/dynamo/expression/condition-expression-builder.ts b/src/dynamo/expression/condition-expression-builder.ts index 9d52f37b9..63e5bf88c 100644 --- a/src/dynamo/expression/condition-expression-builder.ts +++ b/src/dynamo/expression/condition-expression-builder.ts @@ -1,4 +1,4 @@ -import { curry, forEach, isPlainObject } from 'lodash' +import { curry, isPlainObject } from 'lodash-es' import { Metadata } from '../../decorator/metadata/metadata' import { PropertyMetadata } from '../../decorator/metadata/property-metadata.model' import { toDbOne, typeOf } from '../../mapper' @@ -58,12 +58,15 @@ export function deepFilter(obj: any, filterFn: (value: any) => boolean): any { } else if (isPlainObject(obj)) { const returnObj: Record = {} - forEach(obj, (value: any, key: string) => { - const item = deepFilter(value, filterFn) - if (item !== null) { - returnObj[key] = item + for (const key in obj) { + if (obj.hasOwnProperty(key)) { + const value = obj[key] + const item = deepFilter(value, filterFn) + if (item !== null) { + returnObj[key] = item + } } - }) + } return Object.keys(returnObj).length ? returnObj : null } else { @@ -331,6 +334,7 @@ function validateArity(operator: ConditionOperator, values?: any[]) { export const ERR_VALUES_BETWEEN_TYPE = 'both values for operator BETWEEN must have the same type, got ${value1} and ${value2}' export const ERR_VALUES_IN = 'the provided value for IN operator must be an array' + // tslint:enable:no-invalid-template-strings /** diff --git a/src/dynamo/expression/functions/unique-attribute-value-name.function.ts b/src/dynamo/expression/functions/unique-attribute-value-name.function.ts index 3773930ef..144f14afa 100644 --- a/src/dynamo/expression/functions/unique-attribute-value-name.function.ts +++ b/src/dynamo/expression/functions/unique-attribute-value-name.function.ts @@ -5,7 +5,7 @@ export const BRACED_INDEX_REGEX = /\[(\d+)]/g /** * Creates a unique attribute value placeholder name to use in the expression * - * @returns {string} The unique attribute value placeholder name in respect to the given existing value names (no duplicates) + * @returns {string} The unique attribute value placeholder name in respect to the given existing value names (no duplicates allowed) */ export function uniqueAttributeValueName(key: string, existingValueNames?: string[]): string { key = key.replace(/\./g, '__').replace(BRACED_INDEX_REGEX, attributeNameReplacer) diff --git a/src/dynamo/expression/logical-operator/merge-conditions.function.ts b/src/dynamo/expression/logical-operator/merge-conditions.function.ts index 61352484e..d05000191 100644 --- a/src/dynamo/expression/logical-operator/merge-conditions.function.ts +++ b/src/dynamo/expression/logical-operator/merge-conditions.function.ts @@ -1,5 +1,5 @@ -import { mapKeys } from 'lodash' import { Metadata } from '../../../decorator/metadata/metadata' +import { Attribute } from '../../../mapper' import { uniqueAttributeValueName } from '../functions/unique-attribute-value-name.function' import { ConditionExpressionDefinitionFunction } from '../type/condition-expression-definition-function' import { Expression } from '../type/expression.type' @@ -19,19 +19,35 @@ export function mergeConditions( conditionDefinitionFns.forEach(conditionDefinitionFn => { // we can reuse the same for multiple conditions const condition = conditionDefinitionFn(expressionAttributeValues, metadata) - Object.assign(mergedCondition.attributeNames, condition.attributeNames) + mergedCondition.attributeNames = {...mergedCondition.attributeNames, ...condition.attributeNames} - // we need to make sure the value variable name is unique - const attributeValues = mapKeys(condition.attributeValues, (value, key) => { + /* + * we need to make sure the value variable name is unique, this wont' work so the second :name must be renamed + * { + * ":name" : { S: "the name" }, + * ":name" : { S: "other name" } + * } + * | + * | + * ▽ + * { + * ":name" : { S: "the name" }, + * ":name_2" : { S: "other name" } + * } + * + */ + const attributeValues: Record = {} + Object.keys(condition.attributeValues).forEach(key => { const unique = uniqueAttributeValueName(key.replace(':', ''), Object.keys(mergedCondition.attributeValues)) if (key !== unique) { + // rename of the attributeName is required in condition condition.statement = condition.statement.replace(key, unique) } - return unique + attributeValues[unique] = condition.attributeValues[key] }) - Object.assign(mergedCondition.attributeValues, attributeValues) + mergedCondition.attributeValues = {...mergedCondition.attributeValues, ...attributeValues } statements.push(condition.statement) }) diff --git a/src/dynamo/expression/param-util.ts b/src/dynamo/expression/param-util.ts index dfc423a08..144295786 100644 --- a/src/dynamo/expression/param-util.ts +++ b/src/dynamo/expression/param-util.ts @@ -1,5 +1,5 @@ import * as DynamoDB from 'aws-sdk/clients/dynamodb' -import { isEmpty, isString } from 'lodash' +import { isEmpty, isString } from 'lodash-es' import { ConditionalParams } from '../operation-params.type' import { resolveAttributeValueNameConflicts } from './functions/resolve-attribute-value-name-conflicts.function' import { Expression } from './type' diff --git a/src/dynamo/expression/prepare-and-add-update-expressions.function.ts b/src/dynamo/expression/prepare-and-add-update-expressions.function.ts index 70701c800..5be6ec4c2 100644 --- a/src/dynamo/expression/prepare-and-add-update-expressions.function.ts +++ b/src/dynamo/expression/prepare-and-add-update-expressions.function.ts @@ -1,10 +1,9 @@ import * as DynamoDB from 'aws-sdk/clients/dynamodb' -import { forEach } from 'lodash' import { Metadata } from '../../decorator/metadata/index' import { Attributes } from '../../mapper/index' -import { SortedUpdateExpressions } from '../request/update/update.request' import { addUpdateExpression } from './param-util' -import { Expression, UpdateExpressionDefinitionFunction } from './type/index' +import { Expression, UpdateExpression, UpdateExpressionDefinitionFunction } from './type/index' +import { UpdateActionKeyword } from './type/update-action-keyword.type' export function prepareAndAddUpdateExpressions( metadata: Metadata, @@ -12,37 +11,37 @@ export function prepareAndAddUpdateExpressions( updateDefFns: UpdateExpressionDefinitionFunction[], ) { if (updateDefFns && updateDefFns.length) { - const sortedByActionKeyWord: SortedUpdateExpressions = updateDefFns + const sortedByActionKeyWord: Map = updateDefFns .map(updateDefFn => { return updateDefFn(params.ExpressionAttributeNames, metadata) }) - .reduce( - (result, expr) => { - if (!result[expr.type]) { - result[expr.type] = [] + .reduce((result, expr) => { + const actionKeyword = expr.type + if (!result.has(actionKeyword)) { + result.set(actionKeyword, []) } - result[expr.type].push(expr) + result.get(actionKeyword).push(expr) return result }, - {}, + new Map(), ) const actionStatements: string[] = [] let attributeValues: Attributes = {} let attributeNames: Record = {} - forEach(sortedByActionKeyWord, (value, key) => { + for (const [actionKeyword, updateExpressions] of sortedByActionKeyWord) { const statements: string[] = [] - if (value && value.length) { - value.forEach(updateExpression => { + if (updateExpressions && updateExpressions.length) { + updateExpressions.forEach(updateExpression => { statements.push(updateExpression.statement) attributeValues = { ...attributeValues, ...updateExpression.attributeValues } attributeNames = { ...attributeNames, ...updateExpression.attributeNames } }) - actionStatements.push(`${key} ${statements.join(', ')}`) + actionStatements.push(`${actionKeyword} ${statements.join(', ')}`) } - }) + } const expression: Expression = { statement: actionStatements.join(' '), diff --git a/src/dynamo/expression/request-expression-builder.ts b/src/dynamo/expression/request-expression-builder.ts index a7cd82d00..5ef3fa55c 100644 --- a/src/dynamo/expression/request-expression-builder.ts +++ b/src/dynamo/expression/request-expression-builder.ts @@ -1,4 +1,4 @@ -import { curry } from 'lodash' +import { curry } from 'lodash-es' import { Metadata } from '../../decorator/metadata' import { ConditionalParamsHost, UpdateParamsHost } from '../operation-params.type' import { StandardRequest } from '../request/standard.request' diff --git a/src/dynamo/request/get/get.request.ts b/src/dynamo/request/get/get.request.ts index d036e8f25..a22b8383c 100644 --- a/src/dynamo/request/get/get.request.ts +++ b/src/dynamo/request/get/get.request.ts @@ -1,5 +1,4 @@ import * as DynamoDB from 'aws-sdk/clients/dynamodb' -import { values as objValues } from 'lodash' import { Observable } from 'rxjs' import { map, tap } from 'rxjs/operators' import { createLogger, Logger } from '../../../logger/logger' @@ -28,7 +27,7 @@ export class GetRequest extends StandardRequest resolveAttributeNames(a)) this.params.ProjectionExpression = resolved.map(attr => attr.placeholder).join(', ') - objValues(resolved).forEach(r => { + Object.values(resolved).forEach(r => { this.params.ExpressionAttributeNames = { ...this.params.ExpressionAttributeNames, ...r.attributeNames } }) return this diff --git a/src/dynamo/request/update/update.request.ts b/src/dynamo/request/update/update.request.ts index dced3d8bf..ef0aaeb17 100644 --- a/src/dynamo/request/update/update.request.ts +++ b/src/dynamo/request/update/update.request.ts @@ -7,12 +7,9 @@ import { ModelConstructor } from '../../../model' import { DynamoRx } from '../../dynamo-rx' import { prepareAndAddUpdateExpressions } from '../../expression/prepare-and-add-update-expressions.function' import { addUpdate } from '../../expression/request-expression-builder' -import { RequestUpdateFunction, UpdateExpression, UpdateExpressionDefinitionFunction } from '../../expression/type' -import { UpdateActionKeyword } from '../../expression/type/update-action-keyword.type' +import { RequestUpdateFunction, UpdateExpressionDefinitionFunction } from '../../expression/type' import { WriteRequest } from '../write.request' -export type SortedUpdateExpressions = Record - export class UpdateRequest extends WriteRequest> { private readonly logger: Logger diff --git a/src/mapper/for-type/number.mapper.ts b/src/mapper/for-type/number.mapper.ts index 30ac67b5c..dca4de3c9 100644 --- a/src/mapper/for-type/number.mapper.ts +++ b/src/mapper/for-type/number.mapper.ts @@ -1,5 +1,5 @@ -import { isNumber } from 'lodash' import { NumberAttribute } from '../type/attribute.type' +import { isNumber } from 'lodash-es' import { MapperForType } from './base.mapper' function numberFromDb(attributeValue: NumberAttribute): number { diff --git a/src/mapper/util.ts b/src/mapper/util.ts index fa4da5e0d..d6e4b4d06 100644 --- a/src/mapper/util.ts +++ b/src/mapper/util.ts @@ -1,4 +1,4 @@ -import { isNumber, isString } from 'lodash' +import { isNumber, isString } from 'lodash-es' import { AttributeCollectionType, AttributeType } from './type/attribute-type.type' import { AttributeValueType } from './type/attribute-value-type.type' import { Attribute } from './type/attribute.type' diff --git a/tools/tslint/test/test.ts.lint b/tools/tslint/test/test.ts.lint index 143e1a6fa..421dd30d2 100644 --- a/tools/tslint/test/test.ts.lint +++ b/tools/tslint/test/test.ts.lint @@ -1,4 +1,4 @@ -import * as _ from 'lodash' +import * as moment from 'moment' import * as DynamoDB from 'aws-sdk' import { Config } from 'aws-sdk' import { Key } from 'aws-sdk/clients/dynamodb' From 404ac18b001c5793cffd7ca24ba580550781313e Mon Sep 17 00:00:00 2001 From: Michael Wittwer Date: Tue, 8 Jan 2019 11:58:54 +0100 Subject: [PATCH 2/4] fix(lodash-es): lodash-es does not work with jest wait for https://github.com/facebook/jest/issues/4842 to be resolved --- package-lock.json | 6 ------ package.json | 1 - src/decorator/impl/model/model.decorator.ts | 2 +- src/dynamo/expression/condition-expression-builder.ts | 2 +- src/dynamo/expression/param-util.ts | 2 +- src/dynamo/expression/request-expression-builder.ts | 2 +- src/mapper/for-type/number.mapper.ts | 2 +- src/mapper/util.ts | 2 +- 8 files changed, 6 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index a9eb08656..dba6b7e5e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7399,12 +7399,6 @@ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true }, - "lodash-es": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.11.tgz", - "integrity": "sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q==", - "dev": true - }, "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", diff --git a/package.json b/package.json index fe83e7d69..22adaae35 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,6 @@ "husky": "^1.3.1", "jest": "^23.6.0", "lint-staged": "^8.1.0", - "lodash-es": "^4.17.11", "lodash.camelcase": "^4.3.0", "prettier": "^1.15.3", "reflect-metadata": "^0.1.12", diff --git a/src/decorator/impl/model/model.decorator.ts b/src/decorator/impl/model/model.decorator.ts index d926330dd..41dc26834 100644 --- a/src/decorator/impl/model/model.decorator.ts +++ b/src/decorator/impl/model/model.decorator.ts @@ -1,5 +1,5 @@ import * as DynamoDB from 'aws-sdk/clients/dynamodb' -import { kebabCase } from 'lodash-es' +import { kebabCase } from 'lodash' import { ModelMetadata } from '../../metadata' import { PropertyMetadata } from '../../metadata/property-metadata.model' import { SecondaryIndex } from '../index/secondary-index' diff --git a/src/dynamo/expression/condition-expression-builder.ts b/src/dynamo/expression/condition-expression-builder.ts index 63e5bf88c..1f4f8fc24 100644 --- a/src/dynamo/expression/condition-expression-builder.ts +++ b/src/dynamo/expression/condition-expression-builder.ts @@ -1,4 +1,4 @@ -import { curry, isPlainObject } from 'lodash-es' +import { curry, isPlainObject } from 'lodash' import { Metadata } from '../../decorator/metadata/metadata' import { PropertyMetadata } from '../../decorator/metadata/property-metadata.model' import { toDbOne, typeOf } from '../../mapper' diff --git a/src/dynamo/expression/param-util.ts b/src/dynamo/expression/param-util.ts index 144295786..dfc423a08 100644 --- a/src/dynamo/expression/param-util.ts +++ b/src/dynamo/expression/param-util.ts @@ -1,5 +1,5 @@ import * as DynamoDB from 'aws-sdk/clients/dynamodb' -import { isEmpty, isString } from 'lodash-es' +import { isEmpty, isString } from 'lodash' import { ConditionalParams } from '../operation-params.type' import { resolveAttributeValueNameConflicts } from './functions/resolve-attribute-value-name-conflicts.function' import { Expression } from './type' diff --git a/src/dynamo/expression/request-expression-builder.ts b/src/dynamo/expression/request-expression-builder.ts index 5ef3fa55c..a7cd82d00 100644 --- a/src/dynamo/expression/request-expression-builder.ts +++ b/src/dynamo/expression/request-expression-builder.ts @@ -1,4 +1,4 @@ -import { curry } from 'lodash-es' +import { curry } from 'lodash' import { Metadata } from '../../decorator/metadata' import { ConditionalParamsHost, UpdateParamsHost } from '../operation-params.type' import { StandardRequest } from '../request/standard.request' diff --git a/src/mapper/for-type/number.mapper.ts b/src/mapper/for-type/number.mapper.ts index dca4de3c9..8cf84de24 100644 --- a/src/mapper/for-type/number.mapper.ts +++ b/src/mapper/for-type/number.mapper.ts @@ -1,5 +1,5 @@ import { NumberAttribute } from '../type/attribute.type' -import { isNumber } from 'lodash-es' +import { isNumber } from 'lodash' import { MapperForType } from './base.mapper' function numberFromDb(attributeValue: NumberAttribute): number { diff --git a/src/mapper/util.ts b/src/mapper/util.ts index d6e4b4d06..fa4da5e0d 100644 --- a/src/mapper/util.ts +++ b/src/mapper/util.ts @@ -1,4 +1,4 @@ -import { isNumber, isString } from 'lodash-es' +import { isNumber, isString } from 'lodash' import { AttributeCollectionType, AttributeType } from './type/attribute-type.type' import { AttributeValueType } from './type/attribute-value-type.type' import { Attribute } from './type/attribute.type' From 890544d81b59ecd9f62a624519a6ac54848afa88 Mon Sep 17 00:00:00 2001 From: Michael Wittwer Date: Tue, 8 Jan 2019 12:03:08 +0100 Subject: [PATCH 3/4] fix(deps): bring back correct dependencies --- package-lock.json | 39 +++++++++++++++------------------------ package.json | 7 ++++--- 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index dba6b7e5e..039c3733d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -775,9 +775,9 @@ } }, "@octokit/rest": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.3.2.tgz", - "integrity": "sha512-g1Shr7Bp5K3+o1VdUvQn//8ZIAFFODBi9GFdx4eqV2qZQtWwy28jmCGuS+CphnCj8PlQbFmZtXvmUh5xIRGFcA==", + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.6.1.tgz", + "integrity": "sha512-3F9c6ldPT6N123iGcuEZMfrE6BvL/Z4F+V80zbA3KS6vGWRm3RS4OblF6age+dCtlMsa99t13AeTmWD7Bsea0Q==", "dev": true, "requires": { "@octokit/request": "2.2.1", @@ -1317,15 +1317,6 @@ "integrity": "sha512-Z3TNyBL8Vd/M9D9Ms2S3LmFq2sSMzahodD6rCS9V2N44HUMINb75jNkSuwAx7eo2ufqTdfOdtGQpNbieUjPQmw==", "dev": true }, - "@types/lodash-es": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.1.tgz", - "integrity": "sha512-3EDZjphPfdjnsWvY11ufYImFMPyQJwIH1eFYRgWQsjOctce06fmNgVf5sfvXBRiaS1o0X50bAln1lfWs8ZO3BA==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, "@types/marked": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.4.2.tgz", @@ -3500,9 +3491,9 @@ "dev": true }, "fast-glob": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.4.tgz", - "integrity": "sha512-FjK2nCGI/McyzgNtTESqaWP3trPvHyRyoyY70hxjc3oKPNmDe8taohLZpoVKoUjW85tbU5txaYUZCNtVzygl1g==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", + "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==", "dev": true, "requires": { "@mrmlnc/readdir-enhanced": "^2.2.1", @@ -7805,9 +7796,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -12843,9 +12834,9 @@ "dev": true }, "semantic-release": { - "version": "16.0.0-beta.15", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-16.0.0-beta.15.tgz", - "integrity": "sha512-FNPDyhIhpPRxUG2aDcj9kH7vSGyUKC/g82OOVNGwkkvdRbtsVM3+wy9QJxSGRwe+a7KITgYuGZY4bL8pDlPmcA==", + "version": "16.0.0-beta.16", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-16.0.0-beta.16.tgz", + "integrity": "sha512-Nxbom+BNIqmwTOtxhfT1WawOr6GmTJThZFISnBHCwse6uRQOob6D2EOiePMjiVp6oCRQFMPnU2VYlCP6TCjaDQ==", "dev": true, "requires": { "@semantic-release/commit-analyzer": "^7.0.0-beta.1", @@ -13445,9 +13436,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", diff --git a/package.json b/package.json index 22adaae35..1f65bc263 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@commitlint/config-conventional": "^7.1.2", "@commitlint/prompt-cli": "^7.2.1", "@types/jest": "^23.3.11", - "@types/lodash-es": "^4.14.119", + "@types/lodash": "^4.14.119", "@types/node": "^8.10.39", "@types/uuid": "^3.4.4", "aws-sdk": "^2.382.0", @@ -58,12 +58,13 @@ "husky": "^1.3.1", "jest": "^23.6.0", "lint-staged": "^8.1.0", + "lodash": "^4.17.11", "lodash.camelcase": "^4.3.0", "prettier": "^1.15.3", "reflect-metadata": "^0.1.12", "rimraf": "^2.6.3", "rxjs": "^6.3.3", - "semantic-release": "^16.0.0-beta.9", + "semantic-release": "^16.0.0-beta.16", "sort-package-json": "^1.16.0", "ts-jest": "^23.10.4", "ts-loader": "^5.3.2", @@ -78,7 +79,7 @@ }, "peerDependencies": { "aws-sdk": "^2.382.0", - "lodash-es": "^4.17.11", + "lodash": "^4.17.11", "reflect-metadata": "^0.1.12", "rxjs": "^6.3.3", "uuid": "^3.3.2" From ce3ef43420c3628e08e1d70873006105f9db9013 Mon Sep 17 00:00:00 2001 From: Michael Wittwer Date: Tue, 8 Jan 2019 12:05:10 +0100 Subject: [PATCH 4/4] fix(deps): remove unused dependencies entry --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 1f65bc263..d615f7d8d 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,6 @@ "tslint:custom-rule:test": "tslint --test ./tools/tslint/test", "prettier": "prettier --write --config ./.prettierrc.yml '{src,test}/**/*.ts'" }, - "dependencies": {}, "devDependencies": { "@commitlint/cli": "^7.2.1", "@commitlint/config-conventional": "^7.1.2",