diff --git a/.eslintrc.yml b/.eslintrc.yml index 77804ed95..e431a4d36 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -92,11 +92,14 @@ rules: import/prefer-default-export: 0 import/named: 0 # doesn't seem to work with Flow import/no-extraneous-dependencies: 0 - import/no-cycle: 0 # FIXME: broken with flow https://github.com/benmosher/eslint-plugin-import/issues/1343 + import/no-cycle: 0 jest/no-large-snapshots: 1 jest/no-disabled-tests: 0 global-require: 0 no-plusplus: 0 + max-classes-per-file: 0 + prefer-object-spread: 0 + react/jsx-props-no-spreading: 0 overrides: - files: diff --git a/package.json b/package.json index 68ca19558..0d6eafea9 100644 --- a/package.json +++ b/package.json @@ -107,10 +107,10 @@ "chokidar": "^3.0.0", "concurrently": "^6.0.0", "eslint": "^6.5.1", - "eslint-config-airbnb": "^18.0.1", + "eslint-config-airbnb": "18.0.1", "eslint-config-prettier": "^6.4.0", "eslint-plugin-flowtype": "^4.3.0", - "eslint-plugin-import": "^2.18.0", + "eslint-plugin-import": "^2.22.0", "eslint-plugin-jest": "^22.17.0", "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-react": "^7.16.0", diff --git a/src/adapters/lokijs/index.js b/src/adapters/lokijs/index.js index 5433f3974..9ffe9543a 100644 --- a/src/adapters/lokijs/index.js +++ b/src/adapters/lokijs/index.js @@ -78,7 +78,7 @@ export type LokiAdapterOptions = $Exact<{ // This happens if there's another open tab of the same app that's making changes. // You might use it as an opportunity to alert user to the potential loss of data onDidOverwrite?: () => void, - ..., + ... }, // -- internal -- _testLokiAdapter?: LokiMemoryAdapter, @@ -109,17 +109,23 @@ export default class LokiJSAdapter implements DatabaseAdapter { this._dbName = dbName if (process.env.NODE_ENV !== 'production') { - invariant('useWebWorker' in options, - 'LokiJSAdapter `useWebWorker` option is required. Pass `{ useWebWorker: false }` to adopt the new behavior, or `{ useWebWorker: true }` to supress this warning with no changes', - ) + invariant( + 'useWebWorker' in options, + 'LokiJSAdapter `useWebWorker` option is required. Pass `{ useWebWorker: false }` to adopt the new behavior, or `{ useWebWorker: true }` to supress this warning with no changes', + ) if (options.useWebWorker === true) { - logger.warn('LokiJSAdapter {useWebWorker: true} option is now deprecated. If you rely on this feature, please file an issue') - } - invariant('useIncrementalIndexedDB' in options, - 'LokiJSAdapter `useIncrementalIndexedDB` option is required. Pass `{ useIncrementalIndexedDB: true }` to adopt the new behavior, or `{ useIncrementalIndexedDB: false }` to supress this warning with no changes', + logger.warn( + 'LokiJSAdapter {useWebWorker: true} option is now deprecated. If you rely on this feature, please file an issue', ) + } + invariant( + 'useIncrementalIndexedDB' in options, + 'LokiJSAdapter `useIncrementalIndexedDB` option is required. Pass `{ useIncrementalIndexedDB: true }` to adopt the new behavior, or `{ useIncrementalIndexedDB: false }` to supress this warning with no changes', + ) if (options.useIncrementalIndexedDB === false) { - logger.warn('LokiJSAdapter {useIncrementalIndexedDB: false} option is now deprecated. If you rely on this feature, please file an issue') + logger.warn( + 'LokiJSAdapter {useIncrementalIndexedDB: false} option is now deprecated. If you rely on this feature, please file an issue', + ) } // TODO(2021-05): Remove this invariant( @@ -242,7 +248,9 @@ export default class LokiJSAdapter implements DatabaseAdapter { // if we can't, but can filter to it, it means that Loki indices are corrupted const didFindByFilter = !!lokiCollection.data.filter(doc => doc.id === id) - logger.log(`Did find ${table}#${id} in Loki collection by filtering the collection? ${didFindByFilter}`) + logger.log( + `Did find ${table}#${id} in Loki collection by filtering the collection? ${didFindByFilter}`, + ) } } } diff --git a/src/sync/impl/applyRemote.js b/src/sync/impl/applyRemote.js index 79f056fff..df249a771 100644 --- a/src/sync/impl/applyRemote.js +++ b/src/sync/impl/applyRemote.js @@ -1,11 +1,6 @@ // @flow -import { - mapObj, - filterObj, - pipe, - toPairs, -} from '../../utils/fp' +import { mapObj, filterObj, pipe, toPairs } from '../../utils/fp' import splitEvery from '../../utils/fp/splitEvery' import allPromisesObj from '../../utils/fp/allPromisesObj' import { logError, invariant, logger } from '../../utils/common' @@ -168,27 +163,28 @@ const getAllRecordsToApply = ( ): AllRecordsToApply => allPromisesObj( pipe( - filterObj((_changes, tableName: TableName) => { - const collection = db.get((tableName: any)) + filterObj((_changes, tableName: TableName) => { + const collection = db.get((tableName: any)) - if (!collection) { - logger.warn( - `You are trying to sync a collection named ${tableName}, but it does not exist. Will skip it (for forward-compatibility). If this is unexpected, perhaps you forgot to add it to your Database constructor's modelClasses property?`, - ) - } + if (!collection) { + logger.warn( + `You are trying to sync a collection named ${tableName}, but it does not exist. Will skip it (for forward-compatibility). If this is unexpected, perhaps you forgot to add it to your Database constructor's modelClasses property?`, + ) + } - return !!collection - }), - mapObj((changes, tableName: TableName) => { - return recordsToApplyRemoteChangesTo(db.get((tableName: any)), changes) - }))(remoteChanges) + return !!collection + }), + mapObj((changes, tableName: TableName) => { + return recordsToApplyRemoteChangesTo(db.get((tableName: any)), changes) + }), + )(remoteChanges), ) const destroyAllDeletedRecords = (db: Database, recordsToApply: AllRecordsToApply): Promise<*> => { const promises = toPairs(recordsToApply).map(([tableName, { deletedRecordsToDestroy }]) => { - return deletedRecordsToDestroy.length ? - db.adapter.destroyDeletedRecords((tableName: any), deletedRecordsToDestroy) : - null + return deletedRecordsToDestroy.length + ? db.adapter.destroyDeletedRecords((tableName: any), deletedRecordsToDestroy) + : null }) return Promise.all(promises) } @@ -202,13 +198,15 @@ const applyAllRemoteChanges = ( ): Promise => { const allRecords = [] toPairs(recordsToApply).forEach(([tableName, records]) => { - allRecords.push(...prepareApplyRemoteChangesToCollection( - db.get((tableName: any)), - records, - sendCreatedAsUpdated, - log, - conflictResolver, - )) + allRecords.push( + ...prepareApplyRemoteChangesToCollection( + db.get((tableName: any)), + records, + sendCreatedAsUpdated, + log, + conflictResolver, + ), + ) }) return db.batch(allRecords) } @@ -252,21 +250,15 @@ export default function applyRemoteChanges( // Perform steps concurrently await Promise.all([ destroyAllDeletedRecords(db, recordsToApply), - _unsafeBatchPerCollection ? - unsafeApplyAllRemoteChangesByBatches( - db, - recordsToApply, - sendCreatedAsUpdated, - log, - conflictResolver, - ) : - applyAllRemoteChanges( - db, - recordsToApply, - sendCreatedAsUpdated, - log, - conflictResolver, - ), + _unsafeBatchPerCollection + ? unsafeApplyAllRemoteChangesByBatches( + db, + recordsToApply, + sendCreatedAsUpdated, + log, + conflictResolver, + ) + : applyAllRemoteChanges(db, recordsToApply, sendCreatedAsUpdated, log, conflictResolver), ]) }, 'sync-applyRemoteChanges') } diff --git a/src/sync/impl/markAsSynced.js b/src/sync/impl/markAsSynced.js index d633c4c79..edb2bb2ed 100644 --- a/src/sync/impl/markAsSynced.js +++ b/src/sync/impl/markAsSynced.js @@ -1,10 +1,6 @@ // @flow -import { - mapObj, - values, - unnest, -} from '../../utils/fp' +import { mapObj, values, unnest } from '../../utils/fp' import areRecordsEqual from '../../utils/fp/areRecordsEqual' import allPromisesObj from '../../utils/fp/allPromisesObj' import { logError } from '../../utils/common' @@ -14,21 +10,18 @@ import { prepareMarkAsSynced, ensureActionsEnabled } from './helpers' import type { SyncLocalChanges } from '../index' const unchangedRecordsForRaws = (raws, recordCache) => - raws.reduce( - (records, raw) => { - const record = recordCache.find(model => model.id === raw.id) - if (!record) { - logError( - `[Sync] Looking for record ${raw.id} to mark it as synced, but I can't find it. Will ignore it (it should get synced next time). This is probably a Watermelon bug — please file an issue!`, - ) - return records - } + raws.reduce((records, raw) => { + const record = recordCache.find(model => model.id === raw.id) + if (!record) { + logError( + `[Sync] Looking for record ${raw.id} to mark it as synced, but I can't find it. Will ignore it (it should get synced next time). This is probably a Watermelon bug — please file an issue!`, + ) + return records + } - // only include if it didn't change since fetch - return areRecordsEqual(record._raw, raw) ? records.concat(record) : records - }, - [], - ) + // only include if it didn't change since fetch + return areRecordsEqual(record._raw, raw) ? records.concat(record) : records + }, []) const recordsToMarkAsSynced = ({ changes, affectedRecords }: SyncLocalChanges): Model[] => { // $FlowFixMe @@ -37,14 +30,17 @@ const recordsToMarkAsSynced = ({ changes, affectedRecords }: SyncLocalChanges): // $FlowFixMe changesTables.map(({ created, updated }) => unchangedRecordsForRaws(created.concat(updated), affectedRecords), - ) + ), ) } const destroyDeletedRecords = (db: Database, { changes }: SyncLocalChanges): Promise<*> => allPromisesObj( // $FlowFixMe - mapObj(({ deleted }, tableName) => db.adapter.destroyDeletedRecords(tableName, deleted), changes), + mapObj( + ({ deleted }, tableName) => db.adapter.destroyDeletedRecords(tableName, deleted), + changes, + ), ) export default function markLocalChangesAsSynced( diff --git a/yarn.lock b/yarn.lock index b90ad5a32..6cf7709ea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1823,6 +1823,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636" integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A== +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + "@types/node@*": version "14.14.35" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.35.tgz#42c953a4e2b18ab931f72477e7012172f4ffa313" @@ -2234,7 +2239,7 @@ array-includes@^3.0.3: define-properties "^1.1.2" es-abstract "^1.7.0" -array-includes@^3.1.2, array-includes@^3.1.3: +array-includes@^3.1.1, array-includes@^3.1.2, array-includes@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== @@ -2265,6 +2270,15 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +array.prototype.flat@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + array.prototype.flatmap@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" @@ -3401,7 +3415,7 @@ dayjs@^1.8.15: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2" integrity sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -3670,18 +3684,6 @@ errorhandler@^1.5.0: accepts "~1.3.3" escape-html "~1.0.3" -es-abstract@^1.12.0, es-abstract@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" - es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: version "1.18.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" @@ -3704,6 +3706,18 @@ es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.0" +es-abstract@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-keys "^1.0.12" + es-to-primitive@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" @@ -3754,7 +3768,7 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-airbnb-base@^14.2.1: +eslint-config-airbnb-base@^14.0.0: version "14.2.1" resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== @@ -3763,14 +3777,14 @@ eslint-config-airbnb-base@^14.2.1: object.assign "^4.1.2" object.entries "^1.1.2" -eslint-config-airbnb@^18.0.1: - version "18.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz#b7fe2b42f9f8173e825b73c8014b592e449c98d9" - integrity sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg== +eslint-config-airbnb@18.0.1: + version "18.0.1" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.0.1.tgz#a3a74cc29b46413b6096965025381df8fb908559" + integrity sha512-hLb/ccvW4grVhvd6CT83bECacc+s4Z3/AEyWQdIT2KeTsG9dR7nx1gs7Iw4tDmGKozCNHFn4yZmRm3Tgy+XxyQ== dependencies: - eslint-config-airbnb-base "^14.2.1" - object.assign "^4.1.2" - object.entries "^1.1.2" + eslint-config-airbnb-base "^14.0.0" + object.assign "^4.1.0" + object.entries "^1.1.0" eslint-config-prettier@^6.4.0: version "6.15.0" @@ -3779,20 +3793,20 @@ eslint-config-prettier@^6.4.0: dependencies: get-stdin "^6.0.0" -eslint-import-resolver-node@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" - integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== +eslint-import-resolver-node@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== dependencies: debug "^2.6.9" - resolve "^1.5.0" + resolve "^1.13.1" -eslint-module-utils@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c" - integrity sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw== +eslint-module-utils@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== dependencies: - debug "^2.6.8" + debug "^2.6.9" pkg-dir "^2.0.0" eslint-plugin-flowtype@^4.3.0: @@ -3802,22 +3816,24 @@ eslint-plugin-flowtype@^4.3.0: dependencies: lodash "^4.17.15" -eslint-plugin-import@^2.18.0: - version "2.18.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" - integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ== +eslint-plugin-import@^2.22.0: + version "2.22.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" + integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== dependencies: - array-includes "^3.0.3" + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" contains-path "^0.1.0" debug "^2.6.9" doctrine "1.5.0" - eslint-import-resolver-node "^0.3.2" - eslint-module-utils "^2.4.0" + eslint-import-resolver-node "^0.3.4" + eslint-module-utils "^2.6.0" has "^1.0.3" minimatch "^3.0.4" - object.values "^1.1.0" + object.values "^1.1.1" read-pkg-up "^2.0.0" - resolve "^1.11.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" eslint-plugin-jest@^22.17.0: version "22.21.0" @@ -6012,6 +6028,13 @@ json5@^0.5.1: resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + json5@^2.1.0, json5@^2.1.2: version "2.2.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" @@ -7064,7 +7087,7 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -object.entries@^1.1.2, object.entries@^1.1.3: +object.entries@^1.1.0, object.entries@^1.1.2, object.entries@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== @@ -7091,17 +7114,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.12.0" - function-bind "^1.1.1" - has "^1.0.3" - -object.values@^1.1.3: +object.values@^1.1.1, object.values@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== @@ -8108,14 +8121,14 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.5.0: +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.5.0: version "1.12.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== dependencies: path-parse "^1.0.6" -resolve@^1.14.2, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.8.1: +resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.8.1: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -9093,6 +9106,16 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"