diff --git a/CHANGELOG.md b/CHANGELOG.md index 96183fef..ae9637aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,983 +1,691 @@ ## [4.2.20](https://github.com/forcedotcom/source-tracking/compare/4.2.19...4.2.20) (2023-10-31) - ### Bug Fixes -* bump sdr to 9.8.1 ([b73a6bf](https://github.com/forcedotcom/source-tracking/commit/b73a6bffbb0430be1fef743c1442d338ef1e15e2)) - - +- bump sdr to 9.8.1 ([b73a6bf](https://github.com/forcedotcom/source-tracking/commit/b73a6bffbb0430be1fef743c1442d338ef1e15e2)) ## [4.2.19](https://github.com/forcedotcom/source-tracking/compare/4.2.18...4.2.19) (2023-10-21) - ### Bug Fixes -* **deps:** bump @salesforce/kit from 3.0.13 to 3.0.14 ([7be2683](https://github.com/forcedotcom/source-tracking/commit/7be2683c5c9f613b23d4f796e67c7b46d8c66ba6)) - - +- **deps:** bump @salesforce/kit from 3.0.13 to 3.0.14 ([7be2683](https://github.com/forcedotcom/source-tracking/commit/7be2683c5c9f613b23d4f796e67c7b46d8c66ba6)) ## [4.2.18](https://github.com/forcedotcom/source-tracking/compare/4.2.17...4.2.18) (2023-10-18) - ### Bug Fixes -* undefined handling in remote tracking ([#489](https://github.com/forcedotcom/source-tracking/issues/489)) ([eacfeac](https://github.com/forcedotcom/source-tracking/commit/eacfeac976e32afd720b8aa1dfc945d63d8a5a7a)) - - +- undefined handling in remote tracking ([#489](https://github.com/forcedotcom/source-tracking/issues/489)) ([eacfeac](https://github.com/forcedotcom/source-tracking/commit/eacfeac976e32afd720b8aa1dfc945d63d8a5a7a)) ## [4.2.17](https://github.com/forcedotcom/source-tracking/compare/4.2.16...4.2.17) (2023-10-16) - ### Bug Fixes -* bump to SDR 9.7.25 ([1dc60cc](https://github.com/forcedotcom/source-tracking/commit/1dc60ccb4715989ec81d3ba50a5a42758561cd1b)) - - +- bump to SDR 9.7.25 ([1dc60cc](https://github.com/forcedotcom/source-tracking/commit/1dc60ccb4715989ec81d3ba50a5a42758561cd1b)) ## [4.2.16](https://github.com/forcedotcom/source-tracking/compare/4.2.15...4.2.16) (2023-10-03) - ### Bug Fixes -* stl uses project api version ([268df38](https://github.com/forcedotcom/source-tracking/commit/268df38e30f1638cb213c27d386b03d279796ea9)) - - +- stl uses project api version ([268df38](https://github.com/forcedotcom/source-tracking/commit/268df38e30f1638cb213c27d386b03d279796ea9)) ## [4.2.15](https://github.com/forcedotcom/source-tracking/compare/4.2.14...4.2.15) (2023-09-29) - ### Bug Fixes -* avoid duplicate STL listeners when multiple instances exist ([23044f1](https://github.com/forcedotcom/source-tracking/commit/23044f1101451abbdfc938637d1aea04c21458bf)) - - +- avoid duplicate STL listeners when multiple instances exist ([23044f1](https://github.com/forcedotcom/source-tracking/commit/23044f1101451abbdfc938637d1aea04c21458bf)) ## [4.2.14](https://github.com/forcedotcom/source-tracking/compare/4.2.13...4.2.14) (2023-09-23) - ### Bug Fixes -* **deps:** bump @salesforce/source-deploy-retrieve from 9.7.13 to 9.7.15 ([4dbabe7](https://github.com/forcedotcom/source-tracking/commit/4dbabe79756b3cc63a53746ad4773a1d4a7d341f)) - - +- **deps:** bump @salesforce/source-deploy-retrieve from 9.7.13 to 9.7.15 ([4dbabe7](https://github.com/forcedotcom/source-tracking/commit/4dbabe79756b3cc63a53746ad4773a1d4a7d341f)) ## [4.2.13](https://github.com/forcedotcom/source-tracking/compare/4.2.12...4.2.13) (2023-09-16) - ### Bug Fixes -* **deps:** bump @salesforce/source-deploy-retrieve from 9.7.8 to 9.7.13 ([0f8f68d](https://github.com/forcedotcom/source-tracking/commit/0f8f68dfc1e93f755e630077ba02783ebd03308a)) - - +- **deps:** bump @salesforce/source-deploy-retrieve from 9.7.8 to 9.7.13 ([0f8f68d](https://github.com/forcedotcom/source-tracking/commit/0f8f68dfc1e93f755e630077ba02783ebd03308a)) ## [4.2.12](https://github.com/forcedotcom/source-tracking/compare/4.2.11...4.2.12) (2023-08-29) - ### Bug Fixes -* catch isogit internal error ([032103f](https://github.com/forcedotcom/source-tracking/commit/032103f85c6286b5659082caf0f82185115e26b1)) - - +- catch isogit internal error ([032103f](https://github.com/forcedotcom/source-tracking/commit/032103f85c6286b5659082caf0f82185115e26b1)) ## [4.2.11](https://github.com/forcedotcom/source-tracking/compare/4.2.10...4.2.11) (2023-08-21) - ### Bug Fixes -* bump to lastest SDR and merge main ([3d62d11](https://github.com/forcedotcom/source-tracking/commit/3d62d11ac29ded0b5b915b6fb9487a3dd4f79fb6)) -* prefer const ([c233e2c](https://github.com/forcedotcom/source-tracking/commit/c233e2c88c947fe9b95320211e0af35e7b7b7243)) -* use decodeURIComponent() rather than decodeURI() ([2d42c6f](https://github.com/forcedotcom/source-tracking/commit/2d42c6fd895fda140014696c794f855b1921f7dc)) -* use latest SDR lib and bump cli-plugins-testkit ([5ce7285](https://github.com/forcedotcom/source-tracking/commit/5ce7285b981a5797aa82af131c9c034518a660cd)) - - +- bump to lastest SDR and merge main ([3d62d11](https://github.com/forcedotcom/source-tracking/commit/3d62d11ac29ded0b5b915b6fb9487a3dd4f79fb6)) +- prefer const ([c233e2c](https://github.com/forcedotcom/source-tracking/commit/c233e2c88c947fe9b95320211e0af35e7b7b7243)) +- use decodeURIComponent() rather than decodeURI() ([2d42c6f](https://github.com/forcedotcom/source-tracking/commit/2d42c6fd895fda140014696c794f855b1921f7dc)) +- use latest SDR lib and bump cli-plugins-testkit ([5ce7285](https://github.com/forcedotcom/source-tracking/commit/5ce7285b981a5797aa82af131c9c034518a660cd)) ## [4.2.10](https://github.com/forcedotcom/source-tracking/compare/4.2.9...4.2.10) (2023-08-07) - ### Bug Fixes -* **deps:** core5 ([#456](https://github.com/forcedotcom/source-tracking/issues/456)) ([13420ca](https://github.com/forcedotcom/source-tracking/commit/13420ca5397c1d9262457233efc4f131c7321c3a)) - - +- **deps:** core5 ([#456](https://github.com/forcedotcom/source-tracking/issues/456)) ([13420ca](https://github.com/forcedotcom/source-tracking/commit/13420ca5397c1d9262457233efc4f131c7321c3a)) ## [4.2.9](https://github.com/forcedotcom/source-tracking/compare/4.2.8...4.2.9) (2023-07-25) - ### Bug Fixes -* always ask at least once for sourceMembers ([3dc275c](https://github.com/forcedotcom/source-tracking/commit/3dc275cac57a184fecff7b9ac0971025f7fa725f)) - - +- always ask at least once for sourceMembers ([3dc275c](https://github.com/forcedotcom/source-tracking/commit/3dc275cac57a184fecff7b9ac0971025f7fa725f)) ## [4.2.8](https://github.com/forcedotcom/source-tracking/compare/4.2.7...4.2.8) (2023-07-23) - ### Bug Fixes -* **deps:** bump semver from 5.7.1 to 5.7.2 ([270d617](https://github.com/forcedotcom/source-tracking/commit/270d6174650e2ba180865a9aff4124a2fd09cd33)) - - +- **deps:** bump semver from 5.7.1 to 5.7.2 ([270d617](https://github.com/forcedotcom/source-tracking/commit/270d6174650e2ba180865a9aff4124a2fd09cd33)) ## [4.2.7](https://github.com/forcedotcom/source-tracking/compare/4.2.6...4.2.7) (2023-07-22) - ### Bug Fixes -* **deps:** bump word-wrap from 1.2.3 to 1.2.4 ([1c8fb4a](https://github.com/forcedotcom/source-tracking/commit/1c8fb4a18e0308acd321cb2f2178666a1d9c5d96)) - - +- **deps:** bump word-wrap from 1.2.3 to 1.2.4 ([1c8fb4a](https://github.com/forcedotcom/source-tracking/commit/1c8fb4a18e0308acd321cb2f2178666a1d9c5d96)) ## [4.2.6](https://github.com/forcedotcom/source-tracking/compare/4.2.5...4.2.6) (2023-07-20) - ### Bug Fixes -* reduce sourceMember polling timeouts ([8e03967](https://github.com/forcedotcom/source-tracking/commit/8e03967fa3f09c1e07bccbfe2039f04536bfcc64)) - - +- reduce sourceMember polling timeouts ([8e03967](https://github.com/forcedotcom/source-tracking/commit/8e03967fa3f09c1e07bccbfe2039f04536bfcc64)) ## [4.2.5](https://github.com/forcedotcom/source-tracking/compare/4.2.4...4.2.5) (2023-07-06) - ### Bug Fixes -* bump SDR to 9.3.2 for latest registry ([6f7585d](https://github.com/forcedotcom/source-tracking/commit/6f7585ddd8a76df5583e7ba5c2e0fb7e71c7c1d3)) - - +- bump SDR to 9.3.2 for latest registry ([6f7585d](https://github.com/forcedotcom/source-tracking/commit/6f7585ddd8a76df5583e7ba5c2e0fb7e71c7c1d3)) ## [4.2.4](https://github.com/forcedotcom/source-tracking/compare/4.2.3...4.2.4) (2023-07-01) - ### Bug Fixes -* **deps:** bump @salesforce/core from 4.3.2 to 4.3.5 ([ccf5490](https://github.com/forcedotcom/source-tracking/commit/ccf54907219ac50cbe13ab68234c1b1fe5d952ad)) - - +- **deps:** bump @salesforce/core from 4.3.2 to 4.3.5 ([ccf5490](https://github.com/forcedotcom/source-tracking/commit/ccf54907219ac50cbe13ab68234c1b1fe5d952ad)) ## [4.2.3](https://github.com/forcedotcom/source-tracking/compare/4.2.2...4.2.3) (2023-07-01) - ### Bug Fixes -* **deps:** bump @salesforce/source-deploy-retrieve from 9.2.6 to 9.3.0 ([1d46710](https://github.com/forcedotcom/source-tracking/commit/1d46710dd0698b9f731c420d658f95883bb489e5)) - - +- **deps:** bump @salesforce/source-deploy-retrieve from 9.2.6 to 9.3.0 ([1d46710](https://github.com/forcedotcom/source-tracking/commit/1d46710dd0698b9f731c420d658f95883bb489e5)) ## [4.2.2](https://github.com/forcedotcom/source-tracking/compare/4.2.1...4.2.2) (2023-06-26) - ### Bug Fixes -* decode filepaths when comparing to the RSST for accurate results ([#421](https://github.com/forcedotcom/source-tracking/issues/421)) ([59c2d56](https://github.com/forcedotcom/source-tracking/commit/59c2d56574a7eb6141108478ed626bfa7547cbe8)) - - +- decode filepaths when comparing to the RSST for accurate results ([#421](https://github.com/forcedotcom/source-tracking/issues/421)) ([59c2d56](https://github.com/forcedotcom/source-tracking/commit/59c2d56574a7eb6141108478ed626bfa7547cbe8)) ## [4.2.1](https://github.com/forcedotcom/source-tracking/compare/4.2.0...4.2.1) (2023-06-16) - ### Bug Fixes -* use previous iso-git version ([e5462be](https://github.com/forcedotcom/source-tracking/commit/e5462be1f9080775b18af24467bc533f3fefe931)) - - +- use previous iso-git version ([e5462be](https://github.com/forcedotcom/source-tracking/commit/e5462be1f9080775b18af24467bc533f3fefe931)) # [4.2.0](https://github.com/forcedotcom/source-tracking/compare/4.1.3...4.2.0) (2023-06-14) - ### Features -* compile inlines messages ([4b3dcf7](https://github.com/forcedotcom/source-tracking/commit/4b3dcf724266d98628b47bb3e72fcb614d8aa873)) - - +- compile inlines messages ([4b3dcf7](https://github.com/forcedotcom/source-tracking/commit/4b3dcf724266d98628b47bb3e72fcb614d8aa873)) ## [4.1.3](https://github.com/forcedotcom/source-tracking/compare/4.1.2...4.1.3) (2023-06-08) - ### Bug Fixes -* ignore remote changes using hypothetical paths ([1c61e6e](https://github.com/forcedotcom/source-tracking/commit/1c61e6ec1053bd9dd43db0c886be7bb6064809ae)) - - +- ignore remote changes using hypothetical paths ([1c61e6e](https://github.com/forcedotcom/source-tracking/commit/1c61e6ec1053bd9dd43db0c886be7bb6064809ae)) ## [4.1.2](https://github.com/forcedotcom/source-tracking/compare/4.1.1...4.1.2) (2023-06-07) - ### Bug Fixes -* **deps:** bump isomorphic-git from 1.23.0 to 1.24.0 ([e6e459d](https://github.com/forcedotcom/source-tracking/commit/e6e459d79b230728dba34e99caca5f705f4033bf)) - - +- **deps:** bump isomorphic-git from 1.23.0 to 1.24.0 ([e6e459d](https://github.com/forcedotcom/source-tracking/commit/e6e459d79b230728dba34e99caca5f705f4033bf)) ## [4.1.1](https://github.com/forcedotcom/source-tracking/compare/4.1.0...4.1.1) (2023-06-05) - ### Bug Fixes -* use SF prefixed env vars, add UTs, SDR 9, core 4 ([3e4aba6](https://github.com/forcedotcom/source-tracking/commit/3e4aba615887ab633372177639e43d59fcb90048)) - - +- use SF prefixed env vars, add UTs, SDR 9, core 4 ([3e4aba6](https://github.com/forcedotcom/source-tracking/commit/3e4aba615887ab633372177639e43d59fcb90048)) # [4.1.0](https://github.com/forcedotcom/source-tracking/compare/3.1.5...4.1.0) (2023-05-31) - ### Features -* drop node 14/15 support, core 4, sdr9 ([8a5895f](https://github.com/forcedotcom/source-tracking/commit/8a5895f68a3ff54ef2e5d5bf76cb2bf71df5dd43)) - - +- drop node 14/15 support, core 4, sdr9 ([8a5895f](https://github.com/forcedotcom/source-tracking/commit/8a5895f68a3ff54ef2e5d5bf76cb2bf71df5dd43)) ## [3.1.5](https://github.com/forcedotcom/source-tracking/compare/3.1.4...3.1.5) (2023-05-18) - ### Bug Fixes -* pull all deleted CLs will delete file ([#391](https://github.com/forcedotcom/source-tracking/issues/391)) ([f084fb0](https://github.com/forcedotcom/source-tracking/commit/f084fb0cc9700a03d4caf5bae808f58ffc75736e)), closes [#392](https://github.com/forcedotcom/source-tracking/issues/392) - - +- pull all deleted CLs will delete file ([#391](https://github.com/forcedotcom/source-tracking/issues/391)) ([f084fb0](https://github.com/forcedotcom/source-tracking/commit/f084fb0cc9700a03d4caf5bae808f58ffc75736e)), closes [#392](https://github.com/forcedotcom/source-tracking/issues/392) ## [3.1.4](https://github.com/forcedotcom/source-tracking/compare/3.1.3...3.1.4) (2023-05-17) - ### Bug Fixes -* deletes singular CL when from CLs when specified ([#381](https://github.com/forcedotcom/source-tracking/issues/381)) ([26fbdb0](https://github.com/forcedotcom/source-tracking/commit/26fbdb0cede99b7e327630482eb3588bc0aeecec)), closes [#388](https://github.com/forcedotcom/source-tracking/issues/388) - - +- deletes singular CL when from CLs when specified ([#381](https://github.com/forcedotcom/source-tracking/issues/381)) ([26fbdb0](https://github.com/forcedotcom/source-tracking/commit/26fbdb0cede99b7e327630482eb3588bc0aeecec)), closes [#388](https://github.com/forcedotcom/source-tracking/issues/388) ## [3.1.3](https://github.com/forcedotcom/source-tracking/compare/3.1.2...3.1.3) (2023-05-17) - ### Bug Fixes -* **deps:** bump vm2 from 3.9.16 to 3.9.19 ([0b114b9](https://github.com/forcedotcom/source-tracking/commit/0b114b93cfa156bd2dbcda7285d0575749b03f76)) - - +- **deps:** bump vm2 from 3.9.16 to 3.9.19 ([0b114b9](https://github.com/forcedotcom/source-tracking/commit/0b114b93cfa156bd2dbcda7285d0575749b03f76)) ## [3.1.2](https://github.com/forcedotcom/source-tracking/compare/3.1.1...3.1.2) (2023-05-12) - ### Bug Fixes -* enable tsconfig strict null checks in tests ([#372](https://github.com/forcedotcom/source-tracking/issues/372)) ([e4c7b60](https://github.com/forcedotcom/source-tracking/commit/e4c7b60278d86ef54c095031f1502f0fa34ea7f7)) - - +- enable tsconfig strict null checks in tests ([#372](https://github.com/forcedotcom/source-tracking/issues/372)) ([e4c7b60](https://github.com/forcedotcom/source-tracking/commit/e4c7b60278d86ef54c095031f1502f0fa34ea7f7)) ## [3.1.1](https://github.com/forcedotcom/source-tracking/compare/3.1.0...3.1.1) (2023-04-15) - ### Bug Fixes -* **deps:** bump isomorphic-git from 1.17.0 to 1.23.0 ([5617b6a](https://github.com/forcedotcom/source-tracking/commit/5617b6a6e758410dc28608227e9ff82f3d8860fb)) - - +- **deps:** bump isomorphic-git from 1.17.0 to 1.23.0 ([5617b6a](https://github.com/forcedotcom/source-tracking/commit/5617b6a6e758410dc28608227e9ff82f3d8860fb)) # [3.1.0](https://github.com/forcedotcom/source-tracking/compare/2.2.28...3.1.0) (2023-04-13) - ### Bug Fixes -* no tracking on failed deploys ([380d7f8](https://github.com/forcedotcom/source-tracking/commit/380d7f8ae7ef672a4b4f7bdc19dd9e03c29f7698)) - +- no tracking on failed deploys ([380d7f8](https://github.com/forcedotcom/source-tracking/commit/380d7f8ae7ef672a4b4f7bdc19dd9e03c29f7698)) ### Features -* remove compatibility code ([0a4c773](https://github.com/forcedotcom/source-tracking/commit/0a4c773ecd30bf13ddc01741e9fa7c4319c1a2d4)) - - +- remove compatibility code ([0a4c773](https://github.com/forcedotcom/source-tracking/commit/0a4c773ecd30bf13ddc01741e9fa7c4319c1a2d4)) ## [2.2.28](https://github.com/forcedotcom/source-tracking/compare/2.2.27...2.2.28) (2023-04-12) - ### Bug Fixes -* prevent warnings for picklistValue ([a75425d](https://github.com/forcedotcom/source-tracking/commit/a75425ddfc9d26d0f4858edb51b4f76fc7097897)) - - +- prevent warnings for picklistValue ([a75425d](https://github.com/forcedotcom/source-tracking/commit/a75425ddfc9d26d0f4858edb51b4f76fc7097897)) ## [2.2.27](https://github.com/forcedotcom/source-tracking/compare/2.2.26...2.2.27) (2023-04-11) - ### Bug Fixes -* bump SDR and core libs ([32ba81e](https://github.com/forcedotcom/source-tracking/commit/32ba81e5cd768b35a977299879b24f60d42b9578)) - - +- bump SDR and core libs ([32ba81e](https://github.com/forcedotcom/source-tracking/commit/32ba81e5cd768b35a977299879b24f60d42b9578)) ## [2.2.26](https://github.com/forcedotcom/source-tracking/compare/2.2.25...2.2.26) (2023-03-19) - ### Bug Fixes -* **deps:** bump graceful-fs from 4.2.10 to 4.2.11 ([09eef39](https://github.com/forcedotcom/source-tracking/commit/09eef392e331ebc7e5b8b25aa788686e51fc2c51)) - - +- **deps:** bump graceful-fs from 4.2.10 to 4.2.11 ([09eef39](https://github.com/forcedotcom/source-tracking/commit/09eef392e331ebc7e5b8b25aa788686e51fc2c51)) ## [2.2.25](https://github.com/forcedotcom/source-tracking/compare/2.2.24...2.2.25) (2023-03-18) - ### Bug Fixes -* **deps:** bump @salesforce/source-deploy-retrieve from 7.11.3 to 7.12.0 ([bfc19df](https://github.com/forcedotcom/source-tracking/commit/bfc19df87f2dfc53be523612fce9c3e2c0739679)) - - +- **deps:** bump @salesforce/source-deploy-retrieve from 7.11.3 to 7.12.0 ([bfc19df](https://github.com/forcedotcom/source-tracking/commit/bfc19df87f2dfc53be523612fce9c3e2c0739679)) ## [2.2.24](https://github.com/forcedotcom/source-tracking/compare/2.2.23...2.2.24) (2023-03-11) - ### Bug Fixes -* **deps:** bump @salesforce/source-deploy-retrieve from 7.10.1 to 7.11.3 ([80983da](https://github.com/forcedotcom/source-tracking/commit/80983da7151f06a967035ab2b33625666de8004a)) - - +- **deps:** bump @salesforce/source-deploy-retrieve from 7.10.1 to 7.11.3 ([80983da](https://github.com/forcedotcom/source-tracking/commit/80983da7151f06a967035ab2b33625666de8004a)) ## [2.2.23](https://github.com/forcedotcom/source-tracking/compare/2.2.22...2.2.23) (2023-03-04) - ### Bug Fixes -* **deps:** bump @salesforce/core from 3.33.5 to 3.33.6 ([cca0242](https://github.com/forcedotcom/source-tracking/commit/cca0242f81fc5a4c5bd08dad8eabfeb7edb0c691)) - - +- **deps:** bump @salesforce/core from 3.33.5 to 3.33.6 ([cca0242](https://github.com/forcedotcom/source-tracking/commit/cca0242f81fc5a4c5bd08dad8eabfeb7edb0c691)) ## [2.2.22](https://github.com/forcedotcom/source-tracking/compare/2.2.21...2.2.22) (2023-02-17) - ### Bug Fixes -* empty project path when pulling remote deletes ([cee0498](https://github.com/forcedotcom/source-tracking/commit/cee049898ecee4353253d0b29d76e7fd7876d18b)) - - +- empty project path when pulling remote deletes ([cee0498](https://github.com/forcedotcom/source-tracking/commit/cee049898ecee4353253d0b29d76e7fd7876d18b)) ## [2.2.21](https://github.com/forcedotcom/source-tracking/compare/2.2.20...2.2.21) (2023-02-02) - ### Bug Fixes -* bump sdr ([9014c97](https://github.com/forcedotcom/source-tracking/commit/9014c97bf4c4f69cf92082f37edf4d1c1ea6761d)) - - +- bump sdr ([9014c97](https://github.com/forcedotcom/source-tracking/commit/9014c97bf4c4f69cf92082f37edf4d1c1ea6761d)) ## [2.2.20](https://github.com/forcedotcom/source-tracking/compare/2.2.19...2.2.20) (2023-01-28) - ### Bug Fixes -* **deps:** bump @salesforce/core from 3.32.13 to 3.33.1 ([a3690db](https://github.com/forcedotcom/source-tracking/commit/a3690dbc1c1f50795447c1ac72c4b06f544cd1a5)) - - +- **deps:** bump @salesforce/core from 3.32.13 to 3.33.1 ([a3690db](https://github.com/forcedotcom/source-tracking/commit/a3690dbc1c1f50795447c1ac72c4b06f544cd1a5)) ## [2.2.19](https://github.com/forcedotcom/source-tracking/compare/2.2.18...2.2.19) (2023-01-21) - ### Bug Fixes -* **deps:** bump @salesforce/source-deploy-retrieve from 7.7.3 to 7.7.5 ([0745319](https://github.com/forcedotcom/source-tracking/commit/074531952949363e32f1a2e742697bcf9537e378)) - - +- **deps:** bump @salesforce/source-deploy-retrieve from 7.7.3 to 7.7.5 ([0745319](https://github.com/forcedotcom/source-tracking/commit/074531952949363e32f1a2e742697bcf9537e378)) ## [2.2.18](https://github.com/forcedotcom/source-tracking/compare/2.2.17...2.2.18) (2023-01-18) - ### Bug Fixes -* auth to devhub for nut ([3103759](https://github.com/forcedotcom/source-tracking/commit/31037595004be27bc361ad8233e153443e3e81eb)) -* filter for null/undefined ([7a66508](https://github.com/forcedotcom/source-tracking/commit/7a6650892aa28ffab507a97697af1ba48f11f236)) -* include deleted files in FileResponses for retrieves ([f9fcee1](https://github.com/forcedotcom/source-tracking/commit/f9fcee123c772f01a14d9f7545fe0a8649eee695)) -* update tests for strictNullChecks ([685b466](https://github.com/forcedotcom/source-tracking/commit/685b466d35134188a7623dedddb0af113ea7591a)) - - +- auth to devhub for nut ([3103759](https://github.com/forcedotcom/source-tracking/commit/31037595004be27bc361ad8233e153443e3e81eb)) +- filter for null/undefined ([7a66508](https://github.com/forcedotcom/source-tracking/commit/7a6650892aa28ffab507a97697af1ba48f11f236)) +- include deleted files in FileResponses for retrieves ([f9fcee1](https://github.com/forcedotcom/source-tracking/commit/f9fcee123c772f01a14d9f7545fe0a8649eee695)) +- update tests for strictNullChecks ([685b466](https://github.com/forcedotcom/source-tracking/commit/685b466d35134188a7623dedddb0af113ea7591a)) ## [2.2.17](https://github.com/forcedotcom/source-tracking/compare/2.2.16...2.2.17) (2023-01-04) - ### Bug Fixes -* **deps:** bump json5 from 1.0.1 to 1.0.2 ([6030467](https://github.com/forcedotcom/source-tracking/commit/60304674980e351f6c279394d626af916688ea5d)) - - +- **deps:** bump json5 from 1.0.1 to 1.0.2 ([6030467](https://github.com/forcedotcom/source-tracking/commit/60304674980e351f6c279394d626af916688ea5d)) ## [2.2.16](https://github.com/forcedotcom/source-tracking/compare/2.2.16-dev.3...2.2.16) (2023-01-03) - - ## [2.2.16-dev.3](https://github.com/forcedotcom/source-tracking/compare/2.2.16-dev.2...2.2.16-dev.3) (2022-12-28) - ### Bug Fixes -* better error message ([8e3d011](https://github.com/forcedotcom/source-tracking/commit/8e3d0110c1994fd9389c6896d1a1eef415d87462)) - - +- better error message ([8e3d011](https://github.com/forcedotcom/source-tracking/commit/8e3d0110c1994fd9389c6896d1a1eef415d87462)) ## [2.2.16-dev.2](https://github.com/forcedotcom/source-tracking/compare/2.2.16-dev.1...2.2.16-dev.2) (2022-12-28) - ### Bug Fixes -* maxFileAdd env var ([060b821](https://github.com/forcedotcom/source-tracking/commit/060b821587ebc10a41919426617e70045ba6db65)) - - +- maxFileAdd env var ([060b821](https://github.com/forcedotcom/source-tracking/commit/060b821587ebc10a41919426617e70045ba6db65)) ## [2.2.16-dev.1](https://github.com/forcedotcom/source-tracking/compare/2.2.15...2.2.16-dev.1) (2022-12-26) - ### Bug Fixes -* testing lowering maxFileAdd ([3032066](https://github.com/forcedotcom/source-tracking/commit/303206643bfa3ef5b6c48f18d4250f3462130da3)) - - +- testing lowering maxFileAdd ([3032066](https://github.com/forcedotcom/source-tracking/commit/303206643bfa3ef5b6c48f18d4250f3462130da3)) ## [2.2.15](https://github.com/forcedotcom/source-tracking/compare/2.2.14...2.2.15) (2022-12-14) - ### Bug Fixes -* bump sdr and core ([#288](https://github.com/forcedotcom/source-tracking/issues/288)) ([621d927](https://github.com/forcedotcom/source-tracking/commit/621d9278d40f67f29bafd0c490f380cbd5cf1ec6)) - - +- bump sdr and core ([#288](https://github.com/forcedotcom/source-tracking/issues/288)) ([621d927](https://github.com/forcedotcom/source-tracking/commit/621d9278d40f67f29bafd0c490f380cbd5cf1ec6)) ## [2.2.14](https://github.com/forcedotcom/source-tracking/compare/2.2.13...2.2.14) (2022-11-22) - ### Bug Fixes -* bump SDR ([039fcf6](https://github.com/forcedotcom/source-tracking/commit/039fcf67995d4b618ba49df4e72f7088f2affec8)) -* dedupe ([be02155](https://github.com/forcedotcom/source-tracking/commit/be02155c29950b902fe4eb6ea517b93a3c8279ae)) -* treat ExperienceBundles and StaticResources like bundles for partial delete ([cdac022](https://github.com/forcedotcom/source-tracking/commit/cdac0228fea5ec50d9261607bc829f375dc831bb)) -* use new SDR registry property supportsPartialDelete ([aaa6c38](https://github.com/forcedotcom/source-tracking/commit/aaa6c38d54f99ee1b1ccb740d757468deb445366)) - - +- bump SDR ([039fcf6](https://github.com/forcedotcom/source-tracking/commit/039fcf67995d4b618ba49df4e72f7088f2affec8)) +- dedupe ([be02155](https://github.com/forcedotcom/source-tracking/commit/be02155c29950b902fe4eb6ea517b93a3c8279ae)) +- treat ExperienceBundles and StaticResources like bundles for partial delete ([cdac022](https://github.com/forcedotcom/source-tracking/commit/cdac0228fea5ec50d9261607bc829f375dc831bb)) +- use new SDR registry property supportsPartialDelete ([aaa6c38](https://github.com/forcedotcom/source-tracking/commit/aaa6c38d54f99ee1b1ccb740d757468deb445366)) ## [2.2.13](https://github.com/forcedotcom/source-tracking/compare/2.2.12...2.2.13) (2022-11-19) - ### Bug Fixes -* **deps:** bump @salesforce/source-deploy-retrieve from 7.5.8 to 7.5.9 ([80c5d3b](https://github.com/forcedotcom/source-tracking/commit/80c5d3b1919ae4e9c5268365b28a461bfbc3a679)) - - +- **deps:** bump @salesforce/source-deploy-retrieve from 7.5.8 to 7.5.9 ([80c5d3b](https://github.com/forcedotcom/source-tracking/commit/80c5d3b1919ae4e9c5268365b28a461bfbc3a679)) ## [2.2.12](https://github.com/forcedotcom/source-tracking/compare/2.2.11...2.2.12) (2022-11-15) - ### Bug Fixes -* digitalExperience to isBundle check ([e6add91](https://github.com/forcedotcom/source-tracking/commit/e6add917370751aee4fd1b7bc4edb959882b8f43)) - - +- digitalExperience to isBundle check ([e6add91](https://github.com/forcedotcom/source-tracking/commit/e6add917370751aee4fd1b7bc4edb959882b8f43)) ## [2.2.11](https://github.com/forcedotcom/source-tracking/compare/2.2.10...2.2.11) (2022-10-23) - ### Bug Fixes -* **deps:** bump @salesforce/core from 3.31.10 to 3.31.16 ([5a27a00](https://github.com/forcedotcom/source-tracking/commit/5a27a004adde124784d944fed3c5178dd3d305bf)) - - +- **deps:** bump @salesforce/core from 3.31.10 to 3.31.16 ([5a27a00](https://github.com/forcedotcom/source-tracking/commit/5a27a004adde124784d944fed3c5178dd3d305bf)) ## [2.2.10](https://github.com/forcedotcom/source-tracking/compare/2.2.9...2.2.10) (2022-10-18) - ### Bug Fixes -* **deps:** major bump sdr ([#253](https://github.com/forcedotcom/source-tracking/issues/253)) ([8f7bff3](https://github.com/forcedotcom/source-tracking/commit/8f7bff31f49b678ba57c7759bc7b74f211ba8716)) - - +- **deps:** major bump sdr ([#253](https://github.com/forcedotcom/source-tracking/issues/253)) ([8f7bff3](https://github.com/forcedotcom/source-tracking/commit/8f7bff31f49b678ba57c7759bc7b74f211ba8716)) ## [2.2.9](https://github.com/forcedotcom/source-tracking/compare/2.2.8...2.2.9) (2022-10-08) - ### Bug Fixes -* **deps:** bump @salesforce/source-deploy-retrieve from 6.8.2 to 6.9.0 ([97ae35e](https://github.com/forcedotcom/source-tracking/commit/97ae35eeb82cf3301eefb0536d578b4e62f6d498)) - - +- **deps:** bump @salesforce/source-deploy-retrieve from 6.8.2 to 6.9.0 ([97ae35e](https://github.com/forcedotcom/source-tracking/commit/97ae35eeb82cf3301eefb0536d578b4e62f6d498)) ## [2.2.8](https://github.com/forcedotcom/source-tracking/compare/2.2.7...2.2.8) (2022-10-05) - ### Bug Fixes -* poll for CustomObjectTranslation, but still not CustomObjects ([ce7c79d](https://github.com/forcedotcom/source-tracking/commit/ce7c79df930e5c4c12fda2f93e7f17db67183f43)) - - +- poll for CustomObjectTranslation, but still not CustomObjects ([ce7c79d](https://github.com/forcedotcom/source-tracking/commit/ce7c79df930e5c4c12fda2f93e7f17db67183f43)) ## [2.2.7](https://github.com/forcedotcom/source-tracking/compare/2.2.6...2.2.7) (2022-09-30) - ### Bug Fixes -* **deps:** bump @salesforce/source-deploy-retrieve from 6.8.1 to 6.8.2 ([8a3efc3](https://github.com/forcedotcom/source-tracking/commit/8a3efc30b33d6ca076e2273c13726a21dd7225e3)) - - +- **deps:** bump @salesforce/source-deploy-retrieve from 6.8.1 to 6.8.2 ([8a3efc3](https://github.com/forcedotcom/source-tracking/commit/8a3efc30b33d6ca076e2273c13726a21dd7225e3)) ## [2.2.6](https://github.com/forcedotcom/source-tracking/compare/2.2.5...2.2.6) (2022-09-30) - ### Bug Fixes -* **deps:** bump @salesforce/core from 3.30.8 to 3.30.9 ([5619491](https://github.com/forcedotcom/source-tracking/commit/561949136d4bf8a9dd38f3bba7a64c32ffff40d5)) - - +- **deps:** bump @salesforce/core from 3.30.8 to 3.30.9 ([5619491](https://github.com/forcedotcom/source-tracking/commit/561949136d4bf8a9dd38f3bba7a64c32ffff40d5)) ## [2.2.5](https://github.com/forcedotcom/source-tracking/compare/2.2.4...2.2.5) (2022-09-29) - ### Bug Fixes -* **deps:** bump vm2 from 3.9.10 to 3.9.11 ([ff9ddcd](https://github.com/forcedotcom/source-tracking/commit/ff9ddcdfa3ae7c20b2523a2d0f2ef419d953e736)) - - +- **deps:** bump vm2 from 3.9.10 to 3.9.11 ([ff9ddcd](https://github.com/forcedotcom/source-tracking/commit/ff9ddcdfa3ae7c20b2523a2d0f2ef419d953e736)) ## [2.2.4](https://github.com/forcedotcom/source-tracking/compare/v2.2.3...2.2.4) (2022-09-25) - ### Bug Fixes -* **deps:** bump @salesforce/source-deploy-retrieve from 6.8.0 to 6.8.1 ([8c28a5e](https://github.com/forcedotcom/source-tracking/commit/8c28a5e1194321668ca22a439cf4547b9f63a414)) - - +- **deps:** bump @salesforce/source-deploy-retrieve from 6.8.0 to 6.8.1 ([8c28a5e](https://github.com/forcedotcom/source-tracking/commit/8c28a5e1194321668ca22a439cf4547b9f63a414)) ## [2.2.3](https://github.com/forcedotcom/source-tracking/compare/v2.2.2...v2.2.3) (2022-09-13) - ### Bug Fixes -* ignore DEB, DigitalExperience and DEC from source tracking tracking ([#206](https://github.com/forcedotcom/source-tracking/issues/206)) ([3e4b985](https://github.com/forcedotcom/source-tracking/commit/3e4b985f2c805d969a88a60171aab49f1d0032fb)) - - +- ignore DEB, DigitalExperience and DEC from source tracking tracking ([#206](https://github.com/forcedotcom/source-tracking/issues/206)) ([3e4b985](https://github.com/forcedotcom/source-tracking/commit/3e4b985f2c805d969a88a60171aab49f1d0032fb)) ## [2.2.2](https://github.com/forcedotcom/source-tracking/compare/v2.2.1...v2.2.2) (2022-08-10) - ### Bug Fixes -* bump eslint/jsdoc to get automerges flowing again ([afd85ff](https://github.com/forcedotcom/source-tracking/commit/afd85ff420877b7fb969085cf5f59d9c3f80555f)) -* ensure remote changes have a value for ignored (plugin expects it) ([bc1379f](https://github.com/forcedotcom/source-tracking/commit/bc1379f8f020fed5bfca721330f4404662d1b300)) -* force version change ([5483cd3](https://github.com/forcedotcom/source-tracking/commit/5483cd317614aea6aeb50c5544cede92fa9c2cb2)) -* remote changes display ignoredness ([d3533f9](https://github.com/forcedotcom/source-tracking/commit/d3533f9275d2a290b3c34019e204718e16ceaa75)) - +- bump eslint/jsdoc to get automerges flowing again ([afd85ff](https://github.com/forcedotcom/source-tracking/commit/afd85ff420877b7fb969085cf5f59d9c3f80555f)) +- ensure remote changes have a value for ignored (plugin expects it) ([bc1379f](https://github.com/forcedotcom/source-tracking/commit/bc1379f8f020fed5bfca721330f4404662d1b300)) +- force version change ([5483cd3](https://github.com/forcedotcom/source-tracking/commit/5483cd317614aea6aeb50c5544cede92fa9c2cb2)) +- remote changes display ignoredness ([d3533f9](https://github.com/forcedotcom/source-tracking/commit/d3533f9275d2a290b3c34019e204718e16ceaa75)) ### Features -* local CmpSet from changes tracks ignored files like normal CmpSet ([aaa707f](https://github.com/forcedotcom/source-tracking/commit/aaa707fb2e68f5b7199d79d8ea8213068bea09b1)) -* overload to preserve backwards compatibility ([cfc53e3](https://github.com/forcedotcom/source-tracking/commit/cfc53e3ecf0b037cbe7c7ada2588c2e4ead2ab88)) - - +- local CmpSet from changes tracks ignored files like normal CmpSet ([aaa707f](https://github.com/forcedotcom/source-tracking/commit/aaa707fb2e68f5b7199d79d8ea8213068bea09b1)) +- overload to preserve backwards compatibility ([cfc53e3](https://github.com/forcedotcom/source-tracking/commit/cfc53e3ecf0b037cbe7c7ada2588c2e4ead2ab88)) ## [2.2.1](https://github.com/forcedotcom/source-tracking/compare/v2.2.0...v2.2.1) (2022-07-05) - ### Bug Fixes -* bump core ([#180](https://github.com/forcedotcom/source-tracking/issues/180)) ([bf0c1f7](https://github.com/forcedotcom/source-tracking/commit/bf0c1f71f91701dacd2516914ab2abca33b1d00a)) - - +- bump core ([#180](https://github.com/forcedotcom/source-tracking/issues/180)) ([bf0c1f7](https://github.com/forcedotcom/source-tracking/commit/bf0c1f71f91701dacd2516914ab2abca33b1d00a)) # [2.2.0](https://github.com/forcedotcom/source-tracking/compare/v2.1.2...v2.2.0) (2022-06-29) - ### Bug Fixes -* async lifecycle subscribe ([75031f3](https://github.com/forcedotcom/source-tracking/commit/75031f3bbe753001a42f7abcfec1415bfb62547e)) -* custom field was not polling correctly (logic error on del__c) ([1ff2341](https://github.com/forcedotcom/source-tracking/commit/1ff23419d737cb2a22bcf070f5b2790b9ef0536d)) -* logic on local ignored ([9667a6e](https://github.com/forcedotcom/source-tracking/commit/9667a6e8b442a6df0a42fd42dde4dfc289928f90)) -* use fixed jsforce autoFetch, restore ut ([0b32d21](https://github.com/forcedotcom/source-tracking/commit/0b32d217013a346ef8826d3820566b7d70dba3c1)) - +- async lifecycle subscribe ([75031f3](https://github.com/forcedotcom/source-tracking/commit/75031f3bbe753001a42f7abcfec1415bfb62547e)) +- custom field was not polling correctly (logic error on del\_\_c) ([1ff2341](https://github.com/forcedotcom/source-tracking/commit/1ff23419d737cb2a22bcf070f5b2790b9ef0536d)) +- logic on local ignored ([9667a6e](https://github.com/forcedotcom/source-tracking/commit/9667a6e8b442a6df0a42fd42dde4dfc289928f90)) +- use fixed jsforce autoFetch, restore ut ([0b32d21](https://github.com/forcedotcom/source-tracking/commit/0b32d217013a346ef8826d3820566b7d70dba3c1)) ### Features -* event subscription and convenience method for push ([0c2135b](https://github.com/forcedotcom/source-tracking/commit/0c2135ba3076d3d7a3efd1e4d3c41a468e349728)) -* local repo cache breaking for get status, and a generic method ([6645b72](https://github.com/forcedotcom/source-tracking/commit/6645b72c4695a15caca8aa6d3dc158a600fd15de)) -* never track utam ([6e71f03](https://github.com/forcedotcom/source-tracking/commit/6e71f031c27c4e690d8538253b751da13da0b6e3)) -* option to use SDR events ([d86f698](https://github.com/forcedotcom/source-tracking/commit/d86f69896185b68af7e489f6026589957e06f29d)) -* top-level cache config of local cache behavior ([236ac28](https://github.com/forcedotcom/source-tracking/commit/236ac28314b45c42eff83b9ab8003d0c39efbbb0)) -* track based on sdr events ([1238a68](https://github.com/forcedotcom/source-tracking/commit/1238a686f1d2c6091154ac6370c3d3d019c3a7a7)) - +- event subscription and convenience method for push ([0c2135b](https://github.com/forcedotcom/source-tracking/commit/0c2135ba3076d3d7a3efd1e4d3c41a468e349728)) +- local repo cache breaking for get status, and a generic method ([6645b72](https://github.com/forcedotcom/source-tracking/commit/6645b72c4695a15caca8aa6d3dc158a600fd15de)) +- never track utam ([6e71f03](https://github.com/forcedotcom/source-tracking/commit/6e71f031c27c4e690d8538253b751da13da0b6e3)) +- option to use SDR events ([d86f698](https://github.com/forcedotcom/source-tracking/commit/d86f69896185b68af7e489f6026589957e06f29d)) +- top-level cache config of local cache behavior ([236ac28](https://github.com/forcedotcom/source-tracking/commit/236ac28314b45c42eff83b9ab8003d0c39efbbb0)) +- track based on sdr events ([1238a68](https://github.com/forcedotcom/source-tracking/commit/1238a686f1d2c6091154ac6370c3d3d019c3a7a7)) ### Performance Improvements -* some more things not to poll for based on telemetry ([10f6fa3](https://github.com/forcedotcom/source-tracking/commit/10f6fa3e0324ffae0e03101b5bcf452793730d35)) - - +- some more things not to poll for based on telemetry ([10f6fa3](https://github.com/forcedotcom/source-tracking/commit/10f6fa3e0324ffae0e03101b5bcf452793730d35)) ## [2.1.2](https://github.com/forcedotcom/source-tracking/compare/v2.1.1...v2.1.2) (2022-06-23) - ### Bug Fixes -* bump core for autofetch ([3567c69](https://github.com/forcedotcom/source-tracking/commit/3567c69dd49444ef757b9699bb676a0a1a25561c)) - - +- bump core for autofetch ([3567c69](https://github.com/forcedotcom/source-tracking/commit/3567c69dd49444ef757b9699bb676a0a1a25561c)) ## [2.1.1](https://github.com/forcedotcom/source-tracking/compare/v2.1.0...v2.1.1) (2022-06-22) - ### Bug Fixes -* core for jsforce autofetch ([406c519](https://github.com/forcedotcom/source-tracking/commit/406c519827571fc8f9be2e8008b1cdd8b7827634)) - - +- core for jsforce autofetch ([406c519](https://github.com/forcedotcom/source-tracking/commit/406c519827571fc8f9be2e8008b1cdd8b7827634)) # [2.1.0](https://github.com/forcedotcom/source-tracking/compare/v2.0.0...v2.1.0) (2022-06-22) - ### Bug Fixes -* use await ([ce650bd](https://github.com/forcedotcom/source-tracking/commit/ce650bdc9d18a96adb1b0959c44c4e42eb972e2b)) -* use fixed jsforce autoFetch, restore ut ([f52afd0](https://github.com/forcedotcom/source-tracking/commit/f52afd055d05c6c577e864b1d78edf2acebaab46)) -* wait for query to finish ([4e4ac4b](https://github.com/forcedotcom/source-tracking/commit/4e4ac4b9e3a6a480e8ddb9419cecde7304db76c3)) - +- use await ([ce650bd](https://github.com/forcedotcom/source-tracking/commit/ce650bdc9d18a96adb1b0959c44c4e42eb972e2b)) +- use fixed jsforce autoFetch, restore ut ([f52afd0](https://github.com/forcedotcom/source-tracking/commit/f52afd055d05c6c577e864b1d78edf2acebaab46)) +- wait for query to finish ([4e4ac4b](https://github.com/forcedotcom/source-tracking/commit/4e4ac4b9e3a6a480e8ddb9419cecde7304db76c3)) ### Features -* use StateAggregator ([8a29ac6](https://github.com/forcedotcom/source-tracking/commit/8a29ac6cc7d4009cac32bd86ce55e82104991d95)) - - +- use StateAggregator ([8a29ac6](https://github.com/forcedotcom/source-tracking/commit/8a29ac6cc7d4009cac32bd86ce55e82104991d95)) # [2.0.0](https://github.com/forcedotcom/source-tracking/compare/v1.5.0...v2.0.0) (2022-05-23) - ### Features -* corev3, jsforce2 ([0c0b1cf](https://github.com/forcedotcom/source-tracking/commit/0c0b1cf377245e61d83397fcf39baf7de6c06e76)) -* support both .sfdx/.sf ([3d52e66](https://github.com/forcedotcom/source-tracking/commit/3d52e66b2228c7c6721e97d780d8b56a30cb0496)) -* use new org feature to determine tracking ([0299bfb](https://github.com/forcedotcom/source-tracking/commit/0299bfb9b49122c5e2ff9748038e10a129b26829)) -* use v3 error/messages ([41676ff](https://github.com/forcedotcom/source-tracking/commit/41676ff2d23c6bba91e807d8be152558ad849e30)) -* use v3 error/messages ([488fbfa](https://github.com/forcedotcom/source-tracking/commit/488fbfabbeedb113566b9c67201da4245338b2b6)) - - +- corev3, jsforce2 ([0c0b1cf](https://github.com/forcedotcom/source-tracking/commit/0c0b1cf377245e61d83397fcf39baf7de6c06e76)) +- support both .sfdx/.sf ([3d52e66](https://github.com/forcedotcom/source-tracking/commit/3d52e66b2228c7c6721e97d780d8b56a30cb0496)) +- use new org feature to determine tracking ([0299bfb](https://github.com/forcedotcom/source-tracking/commit/0299bfb9b49122c5e2ff9748038e10a129b26829)) +- use v3 error/messages ([41676ff](https://github.com/forcedotcom/source-tracking/commit/41676ff2d23c6bba91e807d8be152558ad849e30)) +- use v3 error/messages ([488fbfa](https://github.com/forcedotcom/source-tracking/commit/488fbfabbeedb113566b9c67201da4245338b2b6)) # [1.5.0](https://github.com/forcedotcom/source-tracking/compare/v1.4.2...v1.5.0) (2022-05-04) - ### Bug Fixes -* 2 more types ([c5554f1](https://github.com/forcedotcom/source-tracking/commit/c5554f18c21283c85589ab0ea1c9e632be1bbeaf)) - +- 2 more types ([c5554f1](https://github.com/forcedotcom/source-tracking/commit/c5554f18c21283c85589ab0ea1c9e632be1bbeaf)) ### Features -* polling optimizations ([e39afd4](https://github.com/forcedotcom/source-tracking/commit/e39afd409ffa321ac7cf91aab3f850dea5dcb45e)) - - +- polling optimizations ([e39afd4](https://github.com/forcedotcom/source-tracking/commit/e39afd409ffa321ac7cf91aab3f850dea5dcb45e)) ## [1.4.2](https://github.com/forcedotcom/source-tracking/compare/v1.4.1...v1.4.2) (2022-04-29) - ### Bug Fixes -* use absolute paths in ComponentSet for matching local source ([#153](https://github.com/forcedotcom/source-tracking/issues/153)) ([b5690a5](https://github.com/forcedotcom/source-tracking/commit/b5690a5c4f3a3fe02f733fa1578467e2278e62bf)) - - +- use absolute paths in ComponentSet for matching local source ([#153](https://github.com/forcedotcom/source-tracking/issues/153)) ([b5690a5](https://github.com/forcedotcom/source-tracking/commit/b5690a5c4f3a3fe02f733fa1578467e2278e62bf)) ## [1.4.1](https://github.com/forcedotcom/source-tracking/compare/v1.4.0...v1.4.1) (2022-04-28) - - # [1.4.0](https://github.com/forcedotcom/source-tracking/compare/v1.3.1...v1.4.0) (2022-04-27) - ### Features -* comp set for pulls ([4b361a4](https://github.com/forcedotcom/source-tracking/commit/4b361a4f31ac4f810762ee8d6f8447f7eef1be31)) - - +- comp set for pulls ([4b361a4](https://github.com/forcedotcom/source-tracking/commit/4b361a4f31ac4f810762ee8d6f8447f7eef1be31)) ## [1.3.1](https://github.com/forcedotcom/source-tracking/compare/v1.3.0...v1.3.1) (2022-03-25) - ### Bug Fixes -* tracking really large repos in chunks, lower limit for windows ([0cb2ce5](https://github.com/forcedotcom/source-tracking/commit/0cb2ce5f3b65b8be9f4e4210aba010e919f692a3)) - - +- tracking really large repos in chunks, lower limit for windows ([0cb2ce5](https://github.com/forcedotcom/source-tracking/commit/0cb2ce5f3b65b8be9f4e4210aba010e919f692a3)) # [1.3.0](https://github.com/forcedotcom/source-tracking/compare/v1.2.0...v1.3.0) (2022-03-25) - ### Features -* gracful-fs for EMFILE: too many open files ([1573828](https://github.com/forcedotcom/source-tracking/commit/1573828f5b3cf5f4f8b2023ff31b5764214d4b06)) - - +- gracful-fs for EMFILE: too many open files ([1573828](https://github.com/forcedotcom/source-tracking/commit/1573828f5b3cf5f4f8b2023ff31b5764214d4b06)) # [1.2.0](https://github.com/forcedotcom/source-tracking/compare/v1.1.7...v1.2.0) (2022-03-23) - ### Bug Fixes -* ga tracking commands compatibility ([3a31a0d](https://github.com/forcedotcom/source-tracking/commit/3a31a0de448993c643ea4661a7a37772e46e8f51)) -* support pkgDir with ./foo ([3b46454](https://github.com/forcedotcom/source-tracking/commit/3b46454b3e57f653cbe80c66fbfee1cac121c2a8)) - +- ga tracking commands compatibility ([3a31a0d](https://github.com/forcedotcom/source-tracking/commit/3a31a0de448993c643ea4661a7a37772e46e8f51)) +- support pkgDir with ./foo ([3b46454](https://github.com/forcedotcom/source-tracking/commit/3b46454b3e57f653cbe80c66fbfee1cac121c2a8)) ### Features -* let isogit deal with ignore files ([#135](https://github.com/forcedotcom/source-tracking/issues/135)) ([1ddb2cd](https://github.com/forcedotcom/source-tracking/commit/1ddb2cdb8f23688f7bb4876a893097a85581f4c1)) - - +- let isogit deal with ignore files ([#135](https://github.com/forcedotcom/source-tracking/issues/135)) ([1ddb2cd](https://github.com/forcedotcom/source-tracking/commit/1ddb2cdb8f23688f7bb4876a893097a85581f4c1)) ## [1.1.7](https://github.com/forcedotcom/source-tracking/compare/v1.1.6...v1.1.7) (2022-03-16) - ### Bug Fixes -* use isogit multiple add ([0845df8](https://github.com/forcedotcom/source-tracking/commit/0845df81845f07bd2bece444118497b2ef72e7aa)) - +- use isogit multiple add ([0845df8](https://github.com/forcedotcom/source-tracking/commit/0845df81845f07bd2bece444118497b2ef72e7aa)) ### Performance Improvements -* use improved iso-git multiple-add API ([65bd3d4](https://github.com/forcedotcom/source-tracking/commit/65bd3d4770a16cecc528e5d205cdba7e83032741)) - - +- use improved iso-git multiple-add API ([65bd3d4](https://github.com/forcedotcom/source-tracking/commit/65bd3d4770a16cecc528e5d205cdba7e83032741)) ## [1.1.6](https://github.com/forcedotcom/source-tracking/compare/v1.1.5...v1.1.6) (2022-03-14) - ### Performance Improvements -* deduplicate files as they are commited to shadow repo ([#133](https://github.com/forcedotcom/source-tracking/issues/133)) ([fbc6d33](https://github.com/forcedotcom/source-tracking/commit/fbc6d33fb363b514ddeee21bea539df465a5a3fc)) - - +- deduplicate files as they are commited to shadow repo ([#133](https://github.com/forcedotcom/source-tracking/issues/133)) ([fbc6d33](https://github.com/forcedotcom/source-tracking/commit/fbc6d33fb363b514ddeee21bea539df465a5a3fc)) ## [1.1.5](https://github.com/forcedotcom/source-tracking/compare/v1.1.4...v1.1.5) (2022-03-11) - - ## [1.1.4](https://github.com/forcedotcom/source-tracking/compare/v1.1.3...v1.1.4) (2022-03-07) - ### Bug Fixes -* clearer messaging and legacy accommodation ([9f14e0f](https://github.com/forcedotcom/source-tracking/commit/9f14e0f02c9df69018b396148b8b4c49c161bf4d)) - - +- clearer messaging and legacy accommodation ([9f14e0f](https://github.com/forcedotcom/source-tracking/commit/9f14e0f02c9df69018b396148b8b4c49c161bf4d)) ## [1.1.3](https://github.com/forcedotcom/source-tracking/compare/v1.1.2...v1.1.3) (2022-03-07) - ### Bug Fixes -* revert beta/legacy mapping ([4d3380c](https://github.com/forcedotcom/source-tracking/commit/4d3380c74a72572a8c1e464c739c4d5b8af69442)) - - +- revert beta/legacy mapping ([4d3380c](https://github.com/forcedotcom/source-tracking/commit/4d3380c74a72572a8c1e464c739c4d5b8af69442)) ## [1.1.2](https://github.com/forcedotcom/source-tracking/compare/v1.1.1...v1.1.2) (2022-03-02) - ### Bug Fixes -* more metadata polling exclusions based on telemetry ([ae5adf3](https://github.com/forcedotcom/source-tracking/commit/ae5adf34600676f54c0e5efa2f5e7c96e2fd10f6)) - - +- more metadata polling exclusions based on telemetry ([ae5adf3](https://github.com/forcedotcom/source-tracking/commit/ae5adf34600676f54c0e5efa2f5e7c96e2fd10f6)) ## [1.1.1](https://github.com/forcedotcom/source-tracking/compare/v1.1.0...v1.1.1) (2022-02-23) - ### Bug Fixes -* message formatting for GA ([194ba4b](https://github.com/forcedotcom/source-tracking/commit/194ba4b4bd08a26e7f7c5c6ef28dc1fb20acc1de)) - - +- message formatting for GA ([194ba4b](https://github.com/forcedotcom/source-tracking/commit/194ba4b4bd08a26e7f7c5c6ef28dc1fb20acc1de)) # [1.1.0](https://github.com/forcedotcom/source-tracking/compare/v1.0.2...v1.1.0) (2022-02-16) - ### Bug Fixes -* handle lwc in a pkgDir of the same name ([621d8cf](https://github.com/forcedotcom/source-tracking/commit/621d8cfc00f2eb4ded160802b2076e140d0a2d06)) -* increase max-fetch default ([9854ed8](https://github.com/forcedotcom/source-tracking/commit/9854ed8677c13d0b2d818355660ab71c144e6a3e)) -* lastIndexOf handles foo/lwc/foo ([8632ee6](https://github.com/forcedotcom/source-tracking/commit/8632ee61f88faf32024e99f1c5590f6b134a3b08)) -* smarter polling and excluded files ([6df02a7](https://github.com/forcedotcom/source-tracking/commit/6df02a716e238e38b699b98f638ef42ed8cedeca)) - +- handle lwc in a pkgDir of the same name ([621d8cf](https://github.com/forcedotcom/source-tracking/commit/621d8cfc00f2eb4ded160802b2076e140d0a2d06)) +- increase max-fetch default ([9854ed8](https://github.com/forcedotcom/source-tracking/commit/9854ed8677c13d0b2d818355660ab71c144e6a3e)) +- lastIndexOf handles foo/lwc/foo ([8632ee6](https://github.com/forcedotcom/source-tracking/commit/8632ee61f88faf32024e99f1c5590f6b134a3b08)) +- smarter polling and excluded files ([6df02a7](https://github.com/forcedotcom/source-tracking/commit/6df02a716e238e38b699b98f638ef42ed8cedeca)) ### Features -* smarter polling ([3d5bb05](https://github.com/forcedotcom/source-tracking/commit/3d5bb05ccf05127304037ec6085660be5da8fe24)) - - +- smarter polling ([3d5bb05](https://github.com/forcedotcom/source-tracking/commit/3d5bb05ccf05127304037ec6085660be5da8fe24)) ## [1.0.2](https://github.com/forcedotcom/source-tracking/compare/v1.0.1...v1.0.2) (2022-01-25) - ### Bug Fixes -* handle gitignore outside pkgDirs ([23a65c8](https://github.com/forcedotcom/source-tracking/commit/23a65c89c8b55525b5d8efe88195d734d337d82a)) - - +- handle gitignore outside pkgDirs ([23a65c8](https://github.com/forcedotcom/source-tracking/commit/23a65c89c8b55525b5d8efe88195d734d337d82a)) ## [1.0.1](https://github.com/forcedotcom/source-tracking/compare/v1.0.0...v1.0.1) (2022-01-25) - ### Bug Fixes -* emailTempalteFolder via aliased types ([f4c88f9](https://github.com/forcedotcom/source-tracking/commit/f4c88f9b59ad6d061933bfd3f6827e44a59b0e80)) - - +- emailTempalteFolder via aliased types ([f4c88f9](https://github.com/forcedotcom/source-tracking/commit/f4c88f9b59ad6d061933bfd3f6827e44a59b0e80)) # [1.0.0](https://github.com/forcedotcom/source-tracking/compare/v0.5.2...v1.0.0) (2022-01-20) - ### Bug Fixes -* handle element count errors ([8817329](https://github.com/forcedotcom/source-tracking/commit/8817329f8198ce701aba22c7a4476ef31a4d73a4)) -* lightning EmailTemplateFolder ([554c766](https://github.com/forcedotcom/source-tracking/commit/554c76676a85c7a4b673879116912cde51dd1498)) -* remove emailtf attempt ([262839d](https://github.com/forcedotcom/source-tracking/commit/262839dc025c7094d8868d3ae9d769dd39ad5324)) -* sourceMember excepton for nondecomposed children ([05db59e](https://github.com/forcedotcom/source-tracking/commit/05db59e7a6e070224a45f5fbf08013565c9f2131)) - - +- handle element count errors ([8817329](https://github.com/forcedotcom/source-tracking/commit/8817329f8198ce701aba22c7a4476ef31a4d73a4)) +- lightning EmailTemplateFolder ([554c766](https://github.com/forcedotcom/source-tracking/commit/554c76676a85c7a4b673879116912cde51dd1498)) +- remove emailtf attempt ([262839d](https://github.com/forcedotcom/source-tracking/commit/262839dc025c7094d8868d3ae9d769dd39ad5324)) +- sourceMember excepton for nondecomposed children ([05db59e](https://github.com/forcedotcom/source-tracking/commit/05db59e7a6e070224a45f5fbf08013565c9f2131)) ## [0.5.2](https://github.com/forcedotcom/source-tracking/compare/v0.5.1...v0.5.2) (2022-01-05) - ### Bug Fixes -* distributed .gitignore and loose pkgDir matching ([a148a36](https://github.com/forcedotcom/source-tracking/commit/a148a366739b6941f3f479b375147897103316bb)) -* remove singleton behavior for localShadowRepo ([887bb68](https://github.com/forcedotcom/source-tracking/commit/887bb684528df8df07fe9b4edf1bd2f4165fe3e2)) - +- distributed .gitignore and loose pkgDir matching ([a148a36](https://github.com/forcedotcom/source-tracking/commit/a148a366739b6941f3f479b375147897103316bb)) +- remove singleton behavior for localShadowRepo ([887bb68](https://github.com/forcedotcom/source-tracking/commit/887bb684528df8df07fe9b4edf1bd2f4165fe3e2)) ### Features -* path-scoped singleton ([de46db4](https://github.com/forcedotcom/source-tracking/commit/de46db4b08a3fe087a2931936655c75b3b7cc32c)) - - +- path-scoped singleton ([de46db4](https://github.com/forcedotcom/source-tracking/commit/de46db4b08a3fe087a2931936655c75b3b7cc32c)) ## [0.5.1](https://github.com/forcedotcom/source-tracking/compare/v0.5.0...v0.5.1) (2021-12-03) - ### Bug Fixes -* support addressable child types ([8251095](https://github.com/forcedotcom/source-tracking/commit/82510955ba8ffe4a2e7e5411973795da3671d01e)) - - +- support addressable child types ([8251095](https://github.com/forcedotcom/source-tracking/commit/82510955ba8ffe4a2e7e5411973795da3671d01e)) # [0.5.0](https://github.com/forcedotcom/source-tracking/compare/v0.4.4...v0.5.0) (2021-12-02) - ### Bug Fixes -* deploy by pkgDir groupings, not all ([7f1262e](https://github.com/forcedotcom/source-tracking/commit/7f1262e1d05a57d3094849d052376b13dd7a5ec7)) -* windows paths when pkgDir path has separators in it ([b0ab346](https://github.com/forcedotcom/source-tracking/commit/b0ab3468d9c54722f832fb7d27a84525d593d4f7)) - +- deploy by pkgDir groupings, not all ([7f1262e](https://github.com/forcedotcom/source-tracking/commit/7f1262e1d05a57d3094849d052376b13dd7a5ec7)) +- windows paths when pkgDir path has separators in it ([b0ab346](https://github.com/forcedotcom/source-tracking/commit/b0ab3468d9c54722f832fb7d27a84525d593d4f7)) ### Features -* delete bundle member but not the bundle ([fbb81f2](https://github.com/forcedotcom/source-tracking/commit/fbb81f25af4cb9e81e3bbee93a08b072318eca10)) -* delete bundle members instead of bundle ([0aedbd5](https://github.com/forcedotcom/source-tracking/commit/0aedbd56b3bf34ce9e344ec03bb258c9db2098aa)) -* trackingFiles handle deleted bundle members ([137cd39](https://github.com/forcedotcom/source-tracking/commit/137cd391f0ea8ae60b3351d7b3361ae97b890d45)) - +- delete bundle member but not the bundle ([fbb81f2](https://github.com/forcedotcom/source-tracking/commit/fbb81f25af4cb9e81e3bbee93a08b072318eca10)) +- delete bundle members instead of bundle ([0aedbd5](https://github.com/forcedotcom/source-tracking/commit/0aedbd56b3bf34ce9e344ec03bb258c9db2098aa)) +- trackingFiles handle deleted bundle members ([137cd39](https://github.com/forcedotcom/source-tracking/commit/137cd391f0ea8ae60b3351d7b3361ae97b890d45)) ### Performance Improvements -* use os.type once ([1a17be6](https://github.com/forcedotcom/source-tracking/commit/1a17be6d8289659f0b925b3ea2db2293c61a3d47)) - - +- use os.type once ([1a17be6](https://github.com/forcedotcom/source-tracking/commit/1a17be6d8289659f0b925b3ea2db2293c61a3d47)) ## [0.4.4](https://github.com/forcedotcom/source-tracking/compare/v0.4.3...v0.4.4) (2021-12-01) - ### Features -* update version of core and sdr ([977ab56](https://github.com/forcedotcom/source-tracking/commit/977ab56deb9fa610cb21b26bfef6d30a1f9f8f58)) - - +- update version of core and sdr ([977ab56](https://github.com/forcedotcom/source-tracking/commit/977ab56deb9fa610cb21b26bfef6d30a1f9f8f58)) ## [0.4.3](https://github.com/forcedotcom/source-tracking/compare/v0.4.2...v0.4.3) (2021-11-11) - ### Bug Fixes -* don't pull remote changes where type isn't in SDR registry ([46250ee](https://github.com/forcedotcom/source-tracking/commit/46250eef09e29dfa0d06af984bbfcc3e88765968)) -* don't pull things not in the registry ([38136bb](https://github.com/forcedotcom/source-tracking/commit/38136bbbf1e44c8e58bc06621957819913273b4e)) - +- don't pull remote changes where type isn't in SDR registry ([46250ee](https://github.com/forcedotcom/source-tracking/commit/46250eef09e29dfa0d06af984bbfcc3e88765968)) +- don't pull things not in the registry ([38136bb](https://github.com/forcedotcom/source-tracking/commit/38136bbbf1e44c8e58bc06621957819913273b4e)) ### Features -* emit warnings for types not pulled ([fdeabbf](https://github.com/forcedotcom/source-tracking/commit/fdeabbfb11bb4ba1fd17931adedc49f9cb5ae658)) - - +- emit warnings for types not pulled ([fdeabbf](https://github.com/forcedotcom/source-tracking/commit/fdeabbfb11bb4ba1fd17931adedc49f9cb5ae658)) ## [0.4.2](https://github.com/forcedotcom/source-tracking/compare/v0.4.1...v0.4.2) (2021-10-28) - - ## [0.4.1](https://github.com/forcedotcom/source-tracking/compare/v0.4.0...v0.4.1) (2021-10-28) - ### Bug Fixes -* better conflict handling (can match filenames or type/name) ([4441a0a](https://github.com/forcedotcom/source-tracking/commit/4441a0abd70c7f8f315e1c638b4cef7fcf3e2e68)) -* gitignore stashing location ([5145545](https://github.com/forcedotcom/source-tracking/commit/5145545eeee6c800986014327479d20e943143e5)) -* polling exclusion logic for aura meta.xml was wrong ([2d40b2e](https://github.com/forcedotcom/source-tracking/commit/2d40b2ef65ef9a3145d0c75cd4943e4325d5745c)) - - +- better conflict handling (can match filenames or type/name) ([4441a0a](https://github.com/forcedotcom/source-tracking/commit/4441a0abd70c7f8f315e1c638b4cef7fcf3e2e68)) +- gitignore stashing location ([5145545](https://github.com/forcedotcom/source-tracking/commit/5145545eeee6c800986014327479d20e943143e5)) +- polling exclusion logic for aura meta.xml was wrong ([2d40b2e](https://github.com/forcedotcom/source-tracking/commit/2d40b2ef65ef9a3145d0c75cd4943e4325d5745c)) # [0.4.0](https://github.com/forcedotcom/source-tracking/compare/43e7fa4a44dbcb9da37d21618678687f4edda644...v0.4.0) (2021-10-22) - ### Bug Fixes -* again with the promises ([ad9dec5](https://github.com/forcedotcom/source-tracking/commit/ad9dec50336c61996456d48ee489426393c62329)) -* another attempt at node12 support ([c8736d0](https://github.com/forcedotcom/source-tracking/commit/c8736d0bbe53756d1b5572e00402e55af94003c1)) -* case of empty orgId dir ([1cb6333](https://github.com/forcedotcom/source-tracking/commit/1cb6333d14cfcee02b27711b6db273d5db31fc8e)) -* case on formatter filename ([02adf22](https://github.com/forcedotcom/source-tracking/commit/02adf22419d2bf81fb070d7d7d90f7d996bd1ada)) -* casing on imports ([d4425d9](https://github.com/forcedotcom/source-tracking/commit/d4425d9ee2ad77c4e28d32333025e59a3c7e3af9)) -* correct statusCommand description ([b834a2f](https://github.com/forcedotcom/source-tracking/commit/b834a2fa0213fbc72dbc6dc3a563cd92f413d222)) -* don't commit empty changelists ([67b9772](https://github.com/forcedotcom/source-tracking/commit/67b9772eccd6d2d4850322eb80f5a6113aac18e6)) -* export compatibility ([c6e5f7c](https://github.com/forcedotcom/source-tracking/commit/c6e5f7cba68ed6a7739b237adb027fda2442e8c4)) -* fix vscode image in readme ([441c15f](https://github.com/forcedotcom/source-tracking/commit/441c15f79dbaf4a97c84d9d6ddc923eae59bca34)) -* handle org:create's single tracking file ([008793d](https://github.com/forcedotcom/source-tracking/commit/008793d0fa15210ffb263cc5d179a0be8dcb05ff)) -* handle stash failures ([09dacc9](https://github.com/forcedotcom/source-tracking/commit/09dacc9484e48f3cba4813f3d733c66d2a30cd6b)) -* leif .yml merge [skip-validate-pr] ([ff10f84](https://github.com/forcedotcom/source-tracking/commit/ff10f84ec15757df55657ba73cc6976c5892595c)) -* local ST uses graceful via core2 ([3ba883f](https://github.com/forcedotcom/source-tracking/commit/3ba883ff2b02e27b0eb01a709f6c1e03ef91bb73)) -* match server subfiles with forward slash ([c2489a6](https://github.com/forcedotcom/source-tracking/commit/c2489a62c244a64fe0938e0eecdc087f4529b5ad)) -* normalize windows paths on commit, too ([4339e46](https://github.com/forcedotcom/source-tracking/commit/4339e46a1cb9cbeb4cc652572e340b60e3b5bc68)) -* one more fs/promises fixed for node12 ([71bafcf](https://github.com/forcedotcom/source-tracking/commit/71bafcf7738e60d8b86150199ef8d0687167a010)) -* path normalizing for metadata keys ([6190590](https://github.com/forcedotcom/source-tracking/commit/6190590df2c2e7cc9a25eab0fa8891e3b8df9057)) -* path normalizing from iso-git ([b8cddaf](https://github.com/forcedotcom/source-tracking/commit/b8cddaf40930bedd18f3edec578a030220454627)) -* status output on windows uses backslash ([78ac398](https://github.com/forcedotcom/source-tracking/commit/78ac3988d3d04e956f17f35c67de4d1144062fcb)) -* support windows path on commits with \\ ([5712af4](https://github.com/forcedotcom/source-tracking/commit/5712af4447ee03e30d7a5a769fc5ba58f6913552)) -* there could be nested LWC templates ([d833981](https://github.com/forcedotcom/source-tracking/commit/d8339810bf76c0ab75824faee7aef59ff9a2d89e)) -* turns bundle parts of SourceMembers into real MDtypes ([5646042](https://github.com/forcedotcom/source-tracking/commit/564604269be7d56499963699b51920b81227297f)) -* use correct var name ([0708312](https://github.com/forcedotcom/source-tracking/commit/0708312c5b4f11cb94539416d0a10b5432850310)) - +- again with the promises ([ad9dec5](https://github.com/forcedotcom/source-tracking/commit/ad9dec50336c61996456d48ee489426393c62329)) +- another attempt at node12 support ([c8736d0](https://github.com/forcedotcom/source-tracking/commit/c8736d0bbe53756d1b5572e00402e55af94003c1)) +- case of empty orgId dir ([1cb6333](https://github.com/forcedotcom/source-tracking/commit/1cb6333d14cfcee02b27711b6db273d5db31fc8e)) +- case on formatter filename ([02adf22](https://github.com/forcedotcom/source-tracking/commit/02adf22419d2bf81fb070d7d7d90f7d996bd1ada)) +- casing on imports ([d4425d9](https://github.com/forcedotcom/source-tracking/commit/d4425d9ee2ad77c4e28d32333025e59a3c7e3af9)) +- correct statusCommand description ([b834a2f](https://github.com/forcedotcom/source-tracking/commit/b834a2fa0213fbc72dbc6dc3a563cd92f413d222)) +- don't commit empty changelists ([67b9772](https://github.com/forcedotcom/source-tracking/commit/67b9772eccd6d2d4850322eb80f5a6113aac18e6)) +- export compatibility ([c6e5f7c](https://github.com/forcedotcom/source-tracking/commit/c6e5f7cba68ed6a7739b237adb027fda2442e8c4)) +- fix vscode image in readme ([441c15f](https://github.com/forcedotcom/source-tracking/commit/441c15f79dbaf4a97c84d9d6ddc923eae59bca34)) +- handle org:create's single tracking file ([008793d](https://github.com/forcedotcom/source-tracking/commit/008793d0fa15210ffb263cc5d179a0be8dcb05ff)) +- handle stash failures ([09dacc9](https://github.com/forcedotcom/source-tracking/commit/09dacc9484e48f3cba4813f3d733c66d2a30cd6b)) +- leif .yml merge [skip-validate-pr] ([ff10f84](https://github.com/forcedotcom/source-tracking/commit/ff10f84ec15757df55657ba73cc6976c5892595c)) +- local ST uses graceful via core2 ([3ba883f](https://github.com/forcedotcom/source-tracking/commit/3ba883ff2b02e27b0eb01a709f6c1e03ef91bb73)) +- match server subfiles with forward slash ([c2489a6](https://github.com/forcedotcom/source-tracking/commit/c2489a62c244a64fe0938e0eecdc087f4529b5ad)) +- normalize windows paths on commit, too ([4339e46](https://github.com/forcedotcom/source-tracking/commit/4339e46a1cb9cbeb4cc652572e340b60e3b5bc68)) +- one more fs/promises fixed for node12 ([71bafcf](https://github.com/forcedotcom/source-tracking/commit/71bafcf7738e60d8b86150199ef8d0687167a010)) +- path normalizing for metadata keys ([6190590](https://github.com/forcedotcom/source-tracking/commit/6190590df2c2e7cc9a25eab0fa8891e3b8df9057)) +- path normalizing from iso-git ([b8cddaf](https://github.com/forcedotcom/source-tracking/commit/b8cddaf40930bedd18f3edec578a030220454627)) +- status output on windows uses backslash ([78ac398](https://github.com/forcedotcom/source-tracking/commit/78ac3988d3d04e956f17f35c67de4d1144062fcb)) +- support windows path on commits with \\ ([5712af4](https://github.com/forcedotcom/source-tracking/commit/5712af4447ee03e30d7a5a769fc5ba58f6913552)) +- there could be nested LWC templates ([d833981](https://github.com/forcedotcom/source-tracking/commit/d8339810bf76c0ab75824faee7aef59ff9a2d89e)) +- turns bundle parts of SourceMembers into real MDtypes ([5646042](https://github.com/forcedotcom/source-tracking/commit/564604269be7d56499963699b51920b81227297f)) +- use correct var name ([0708312](https://github.com/forcedotcom/source-tracking/commit/0708312c5b4f11cb94539416d0a10b5432850310)) ### Features -* add commitlint and sample circleci config ([43e7fa4](https://github.com/forcedotcom/source-tracking/commit/43e7fa4a44dbcb9da37d21618678687f4edda644)) -* add new tests and upadte readme ([6a7ad54](https://github.com/forcedotcom/source-tracking/commit/6a7ad542f42ce75275ebacc78d50ee4dc0ab6f32)) -* add option to get remoteChanges with filePaths, use for Conflicts ([350a0d6](https://github.com/forcedotcom/source-tracking/commit/350a0d60599cfce2c432c223f4523c25a4f53c81)) -* basic using isogit ([f39e6c5](https://github.com/forcedotcom/source-tracking/commit/f39e6c5e305fcb2fdb6a27b343d9dc20800202c9)) -* conflict detection ([3e22774](https://github.com/forcedotcom/source-tracking/commit/3e22774d8949a1aa4302e62d8580b69c4b35aab5)) -* consolidate conflict handling, return data in error ([45178c7](https://github.com/forcedotcom/source-tracking/commit/45178c7b13ed61e657f9a07ea5b40f49f73f651a)) -* delete handling public for pull ([eb87eb7](https://github.com/forcedotcom/source-tracking/commit/eb87eb7dfa81ba5256735af7f2b8bc29dfb1e16b)) -* finish status, add clear/reset ([c71e66f](https://github.com/forcedotcom/source-tracking/commit/c71e66f7f7a3dc20d2c965349b5e01e15edabf36)) -* handle status ignore marking from STL ([2ec6fad](https://github.com/forcedotcom/source-tracking/commit/2ec6fad4b4f4f2e124da7e4f53cf8e534354d342)) -* ignorewarnings flag for push ([b13fd05](https://github.com/forcedotcom/source-tracking/commit/b13fd0534930fb063075c39e6f75ea46ab9d3be8)) -* migrate messages/descriptions ([8fea6e5](https://github.com/forcedotcom/source-tracking/commit/8fea6e5242c50865dd635412d7592164ab57fec4)) -* most of sourceStatus logic, code cleanup ([f100cb8](https://github.com/forcedotcom/source-tracking/commit/f100cb83f220b3724284ae69301712a08b14376d)) -* non-delete push works ([487a20e](https://github.com/forcedotcom/source-tracking/commit/487a20e48c428a02ef315b58db24b714d2de0416)) -* push supporting bundle types ([639d459](https://github.com/forcedotcom/source-tracking/commit/639d459101cd4990fa217f657b99d64517611383)) -* remote and conflicts ([f98ecf1](https://github.com/forcedotcom/source-tracking/commit/f98ecf17fc6cbe386d8edae6994500388b7e0ed6)) -* remote tracknig with UT ([cb805e5](https://github.com/forcedotcom/source-tracking/commit/cb805e5745020be9a266a261f584979713e4b351)) -* source tracking from toolbelt ([6c2ebb4](https://github.com/forcedotcom/source-tracking/commit/6c2ebb444ce5518eaa81402b685fe00f1090e437)) -* sourcemember polling like toolbelt ([abdd7b3](https://github.com/forcedotcom/source-tracking/commit/abdd7b3ad275ea4739673a6e1b1a99853f1de2da)) -* spinners while waiting on pull ([dfe5aea](https://github.com/forcedotcom/source-tracking/commit/dfe5aeae0a5f9a30eddfe96852e0dab025972e1e)) -* status result sorting ([b7b109c](https://github.com/forcedotcom/source-tracking/commit/b7b109cf3e7bcad60507618099873c717ff31f61)) -* sync customObj when their fields sync ([3ded96d](https://github.com/forcedotcom/source-tracking/commit/3ded96dbd7a7ea45cb8f97719b98bae294905c05)) -* throws if "old" source files are present ([4b868d8](https://github.com/forcedotcom/source-tracking/commit/4b868d8232769eec5e227052bf823a35baedd288)) -* typed push ([6e76812](https://github.com/forcedotcom/source-tracking/commit/6e7681263b81d3b692d002a3ce5deb8ef00bbd13)) -* virtualTree for deletes ([b425d77](https://github.com/forcedotcom/source-tracking/commit/b425d77b4fca5c6fbab2faab7490e3516bf3f547)) - +- add commitlint and sample circleci config ([43e7fa4](https://github.com/forcedotcom/source-tracking/commit/43e7fa4a44dbcb9da37d21618678687f4edda644)) +- add new tests and upadte readme ([6a7ad54](https://github.com/forcedotcom/source-tracking/commit/6a7ad542f42ce75275ebacc78d50ee4dc0ab6f32)) +- add option to get remoteChanges with filePaths, use for Conflicts ([350a0d6](https://github.com/forcedotcom/source-tracking/commit/350a0d60599cfce2c432c223f4523c25a4f53c81)) +- basic using isogit ([f39e6c5](https://github.com/forcedotcom/source-tracking/commit/f39e6c5e305fcb2fdb6a27b343d9dc20800202c9)) +- conflict detection ([3e22774](https://github.com/forcedotcom/source-tracking/commit/3e22774d8949a1aa4302e62d8580b69c4b35aab5)) +- consolidate conflict handling, return data in error ([45178c7](https://github.com/forcedotcom/source-tracking/commit/45178c7b13ed61e657f9a07ea5b40f49f73f651a)) +- delete handling public for pull ([eb87eb7](https://github.com/forcedotcom/source-tracking/commit/eb87eb7dfa81ba5256735af7f2b8bc29dfb1e16b)) +- finish status, add clear/reset ([c71e66f](https://github.com/forcedotcom/source-tracking/commit/c71e66f7f7a3dc20d2c965349b5e01e15edabf36)) +- handle status ignore marking from STL ([2ec6fad](https://github.com/forcedotcom/source-tracking/commit/2ec6fad4b4f4f2e124da7e4f53cf8e534354d342)) +- ignorewarnings flag for push ([b13fd05](https://github.com/forcedotcom/source-tracking/commit/b13fd0534930fb063075c39e6f75ea46ab9d3be8)) +- migrate messages/descriptions ([8fea6e5](https://github.com/forcedotcom/source-tracking/commit/8fea6e5242c50865dd635412d7592164ab57fec4)) +- most of sourceStatus logic, code cleanup ([f100cb8](https://github.com/forcedotcom/source-tracking/commit/f100cb83f220b3724284ae69301712a08b14376d)) +- non-delete push works ([487a20e](https://github.com/forcedotcom/source-tracking/commit/487a20e48c428a02ef315b58db24b714d2de0416)) +- push supporting bundle types ([639d459](https://github.com/forcedotcom/source-tracking/commit/639d459101cd4990fa217f657b99d64517611383)) +- remote and conflicts ([f98ecf1](https://github.com/forcedotcom/source-tracking/commit/f98ecf17fc6cbe386d8edae6994500388b7e0ed6)) +- remote tracknig with UT ([cb805e5](https://github.com/forcedotcom/source-tracking/commit/cb805e5745020be9a266a261f584979713e4b351)) +- source tracking from toolbelt ([6c2ebb4](https://github.com/forcedotcom/source-tracking/commit/6c2ebb444ce5518eaa81402b685fe00f1090e437)) +- sourcemember polling like toolbelt ([abdd7b3](https://github.com/forcedotcom/source-tracking/commit/abdd7b3ad275ea4739673a6e1b1a99853f1de2da)) +- spinners while waiting on pull ([dfe5aea](https://github.com/forcedotcom/source-tracking/commit/dfe5aeae0a5f9a30eddfe96852e0dab025972e1e)) +- status result sorting ([b7b109c](https://github.com/forcedotcom/source-tracking/commit/b7b109cf3e7bcad60507618099873c717ff31f61)) +- sync customObj when their fields sync ([3ded96d](https://github.com/forcedotcom/source-tracking/commit/3ded96dbd7a7ea45cb8f97719b98bae294905c05)) +- throws if "old" source files are present ([4b868d8](https://github.com/forcedotcom/source-tracking/commit/4b868d8232769eec5e227052bf823a35baedd288)) +- typed push ([6e76812](https://github.com/forcedotcom/source-tracking/commit/6e7681263b81d3b692d002a3ce5deb8ef00bbd13)) +- virtualTree for deletes ([b425d77](https://github.com/forcedotcom/source-tracking/commit/b425d77b4fca5c6fbab2faab7490e3516bf3f547)) ### Performance Improvements -* use flatmap ([8ef5883](https://github.com/forcedotcom/source-tracking/commit/8ef5883ea94e811d4ef2ab37a4999b80df813aa4)) - +- use flatmap ([8ef5883](https://github.com/forcedotcom/source-tracking/commit/8ef5883ea94e811d4ef2ab37a4999b80df813aa4)) ### Reverts -* Revert "refactor: move Org from class/init to the only method that needs it (JIT)" ([367bb56](https://github.com/forcedotcom/source-tracking/commit/367bb5617fb00b85bcf9bdcba6cb4a86e95b7395)) - - - +- Revert "refactor: move Org from class/init to the only method that needs it (JIT)" ([367bb56](https://github.com/forcedotcom/source-tracking/commit/367bb5617fb00b85bcf9bdcba6cb4a86e95b7395)) diff --git a/package.json b/package.json index 1943bbe0..cd8e32bc 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,6 @@ "postpack": "shx rm -f oclif.manifest.json", "prepack": "sf-prepack", "prepare": "sf-install", - "prune:dead": "ts-prune | grep -v 'source-deploy-retrieve' | grep -v 'index.ts'", "test": "wireit", "test:nuts": "nyc mocha \"**/*.nut.ts\" --slow 4500 --timeout 600000 --parallel", "test:nuts:local": "mocha \"**/local/*.nut.ts\" --slow 4500 --timeout 600000 --parallel", @@ -46,9 +45,9 @@ "node": ">=16.0.0" }, "dependencies": { - "@salesforce/core": "^5.3.16", + "@salesforce/core": "^5.3.18", "@salesforce/kit": "^3.0.15", - "@salesforce/source-deploy-retrieve": "^9.8.1", + "@salesforce/source-deploy-retrieve": "^9.8.4", "@salesforce/ts-types": "^2.0.9", "fast-xml-parser": "^4.2.5", "graceful-fs": "^4.2.11", @@ -56,38 +55,14 @@ "ts-retry-promise": "^0.7.0" }, "devDependencies": { - "@salesforce/cli-plugins-testkit": "^4.4.11", - "@salesforce/dev-config": "^4.0.1", - "@salesforce/dev-scripts": "^5.12.2", - "@salesforce/prettier-config": "^0.0.3", - "@salesforce/ts-sinon": "^1.4.18", + "@salesforce/cli-plugins-testkit": "^5.0.2", + "@salesforce/dev-scripts": "^6.0.3", "@types/graceful-fs": "^4.1.6", - "@types/shelljs": "^0.8.11", - "@typescript-eslint/eslint-plugin": "^5.60.0", - "@typescript-eslint/parser": "^5.62.0", - "chai": "^4.3.10", - "eslint": "^8.52.0", - "eslint-config-prettier": "^8.8.0", - "eslint-config-salesforce": "^2.0.1", - "eslint-config-salesforce-license": "^0.2.0", - "eslint-config-salesforce-typescript": "^2.0.0", - "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-jsdoc": "^46.8.2", - "eslint-plugin-sf-plugin": "^1.16.11", - "husky": "^7.0.4", - "mocha": "^9.2.2", - "nyc": "^15.1.0", - "prettier": "^2.8.8", - "pretty-quick": "^3.1.3", - "shelljs": "^0.8.5", + "eslint-plugin-sf-plugin": "^1.16.14", "shx": "^0.3.4", - "sinon": "^10.0.0", "ts-node": "^10.9.1", "ts-patch": "^3.0.2", - "ts-prune": "^0.10.3", - "typescript": "^5.2.2", - "wireit": "^0.14.1" + "typescript": "^5.2.2" }, "config": {}, "publishConfig": { diff --git a/src/shared/remoteSourceTrackingService.ts b/src/shared/remoteSourceTrackingService.ts index 15fb520f..27fb99d5 100644 --- a/src/shared/remoteSourceTrackingService.ts +++ b/src/shared/remoteSourceTrackingService.ts @@ -8,21 +8,19 @@ import * as path from 'node:path'; import * as fs from 'node:fs'; import { retryDecorator, NotRetryableError } from 'ts-retry-promise'; -import { ConfigFile, Logger, Org, Messages, Lifecycle, SfError } from '@salesforce/core'; -import { Dictionary, Optional, definiteEntriesOf } from '@salesforce/ts-types'; -import { env, Duration } from '@salesforce/kit'; +import { Logger, Org, Messages, Lifecycle, SfError, Connection } from '@salesforce/core'; +import { env, Duration, parseJsonMap } from '@salesforce/kit'; import { ChangeResult, RemoteChangeElement, MemberRevision, SourceMember, RemoteSyncInput } from './types'; import { getMetadataKeyFromFileResponse, mappingsForSourceMemberTypesToMetadataType } from './metadataKeys'; import { getMetadataKey } from './functions'; import { calculateExpectedSourceMembers } from './expectedSourceMembers'; -// represents the contents of the config file stored in 'maxRevision.json' -Messages.importMessagesDirectory(__dirname); -const messages = Messages.loadMessages('@salesforce/source-tracking', 'source'); -type Contents = { +/** represents the contents of the config file stored in 'maxRevision.json' */ +export type Contents = { serverMaxRevisionCounter: number; - sourceMembers: Dictionary; + sourceMembers: Record; }; +const FILENAME = 'maxRevision.json'; /* * after some results have returned, how many times should we poll for missing sourcemembers @@ -31,12 +29,11 @@ type Contents = { const POLLING_DELAY_MS = 1000; const CONSECUTIVE_EMPTY_POLLING_RESULT_LIMIT = (env.getNumber('SFDX_SOURCE_MEMBER_POLLING_TIMEOUT') ?? 120) / Duration.milliseconds(POLLING_DELAY_MS).seconds; -export namespace RemoteSourceTrackingService { - // Constructor Options for RemoteSourceTrackingService. - export interface Options extends ConfigFile.Options { - org: Org; - projectPath: string; - } + +/** Options for RemoteSourceTrackingService.getInstance */ +export interface RemoteSourceTrackingServiceOptions { + org: Org; + projectPath: string; } /** @@ -75,39 +72,44 @@ export namespace RemoteSourceTrackingService { * from the `lastRetrievedFromServer`. When a pull is performed, all of the pulled members will have their counters set * to the corresponding `RevisionCounter` from the `SourceMember` of the org. */ -export class RemoteSourceTrackingService extends ConfigFile { - private static remoteSourceTrackingServiceDictionary: Dictionary = {}; - protected logger!: Logger; - private org!: Org; +export class RemoteSourceTrackingService { + /** map of constructed, init'ed instances; key is orgId. It's like a singleton at the org level */ + private static instanceMap = new Map(); + public readonly filePath: string; + + private logger!: Logger; + private serverMaxRevisionCounter = 0; + private sourceMembers = new Map(); + + private org: Org; // A short term cache (within the same process) of query results based on a revision. // Useful for source:pull, which makes 3 of the same queries; during status, building manifests, after pull success. private queryCache = new Map(); - // - // * * * * * P U B L I C M E T H O D S * * * * * - // + /** + * Initializes the service with existing remote source tracking data, or sets + * the state to begin source tracking of metadata changes in the org. + */ + private constructor(options: RemoteSourceTrackingServiceOptions) { + this.org = options.org; + this.filePath = path.join(options.projectPath, '.sf', 'orgs', this.org.getOrgId(), FILENAME); + } /** * Get the singleton instance for a given user. * - * @param {RemoteSourceTrackingService.Options} options that contain the org's username + * @param {RemoteSourceTrackingService.Options} options that contain the org * @returns {Promise} the remoteSourceTrackingService object for the given username */ - public static async getInstance(options: RemoteSourceTrackingService.Options): Promise { + public static async getInstance(options: RemoteSourceTrackingServiceOptions): Promise { const orgId = options.org.getOrgId(); - if (!this.remoteSourceTrackingServiceDictionary[orgId]) { - this.remoteSourceTrackingServiceDictionary[orgId] = await RemoteSourceTrackingService.create(options); + let service = this.instanceMap.get(orgId); + if (!service) { + service = await new RemoteSourceTrackingService(options).init(); + this.instanceMap.set(orgId, service); } - return this.remoteSourceTrackingServiceDictionary[orgId] as RemoteSourceTrackingService; - } - - public static getFileName(): string { - return 'maxRevision.json'; - } - - public static getFilePath(orgId: string): string { - return path.join('.sf', 'orgs', orgId, RemoteSourceTrackingService.getFileName()); + return service; } /** @@ -117,7 +119,7 @@ export class RemoteSourceTrackingService extends ConfigFile { - const fileToDelete = RemoteSourceTrackingService.getFilePath(orgId); + const fileToDelete = getFilePath(orgId); // the file might not exist, in which case we don't need to delete it if (fs.existsSync(fileToDelete)) { await fs.promises.unlink(fileToDelete); @@ -125,53 +127,6 @@ export class RemoteSourceTrackingService extends ConfigFile { - this.org = this.options.org; - this.logger = await Logger.child(this.constructor.name); - this.options = { - ...this.options, - stateFolder: '.sf', - filename: RemoteSourceTrackingService.getFileName(), - filePath: path.join('orgs', this.org.getOrgId()), - }; - - try { - await super.init(); - } catch (err) { - throw SfError.wrap(err as Error); - } - - // Initialize a new maxRevision.json if the file doesn't yet exist. - if (!this.has('serverMaxRevisionCounter') && !this.has('sourceMembers')) { - try { - // To find out if the associated org has source tracking enabled, we need to make a query - // for SourceMembers. If a certain error is thrown during the query we won't try to do - // source tracking for this org. Calling querySourceMembersFrom() has the extra benefit - // of caching the query so we don't have to make an identical request in the same process. - await this.querySourceMembersFrom({ fromRevision: 0 }); - this.initSourceMembers(); - this.setServerMaxRevision(0); - - await this.write(); - } catch (e) { - if ( - e instanceof SfError && - e.name === 'INVALID_TYPE' && - e.message.includes("sObject type 'SourceMember' is not supported") - ) { - // non-source-tracked org E.G. DevHub or trailhead playground - await this.org.setTracksSource(false); - } else { - throw e; - } - } - } - } - /** * pass in a set of metadata keys (type__name like 'ApexClass__MyClass').\ * it sets their last retrieved revision to the current revision counter from the server. @@ -185,51 +140,26 @@ export class RemoteSourceTrackingService extends ConfigFile getMetadataKeyFromFileResponse(element)))).map((metadataKey) => { - const revision = revisions[metadataKey] ?? revisions[decodeURI(metadataKey)]; - if (revision && revision.lastRetrievedFromServer !== revision.serverRevisionCounter) { + const revision = this.sourceMembers.get(metadataKey) ?? this.sourceMembers.get(decodeURI(metadataKey)); + if (!revision) { + this.logger.warn(`found no matching revision for ${metadataKey}`); + } else if (revision.lastRetrievedFromServer !== revision.serverRevisionCounter) { if (!quiet) { this.logger.debug( `Syncing ${metadataKey} revision from ${revision.lastRetrievedFromServer} to ${revision.serverRevisionCounter}` ); } - revision.lastRetrievedFromServer = revision.serverRevisionCounter; - this.setMemberRevision(metadataKey, revision); - } else { - this.logger.warn(`found no matching revision for ${metadataKey}`); + this.setMemberRevision(metadataKey, { ...revision, lastRetrievedFromServer: revision.serverRevisionCounter }); } }); await this.write(); } - /** - * Returns the `ChangeElement` currently being tracked given a metadata key, - * or `undefined` if not found. - * - * @param key string of the form, `__` e.g.,`ApexClass__MyClass` - */ - public getTrackedElement(key: string): RemoteChangeElement | undefined { - const memberRevision = this.getSourceMembers()[key]; - if (memberRevision) { - return convertRevisionToChange(key, memberRevision); - } - } - - /** - * Returns an array of `ChangeElements` currently being tracked. - */ - public getTrackedElements(): RemoteChangeElement[] { - return Object.keys(this.getSourceMembers()) - .map((key) => this.getTrackedElement(key)) - .filter(Boolean) as RemoteChangeElement[]; - } - /** * Resets source tracking state by first clearing all tracked data, then * queries and synchronizes SourceMembers from the associated org. @@ -243,73 +173,18 @@ export class RemoteSourceTrackingService extends ConfigFile { // Called during a source:tracking:reset - this.setServerMaxRevision(0); - this.initSourceMembers(); + this.serverMaxRevisionCounter = 0; + this.sourceMembers = new Map(); const members = toRevision !== undefined && toRevision !== null - ? await this.querySourceMembersTo(toRevision) + ? await querySourceMembersTo(this.org.getConnection(), toRevision) : await this.querySourceMembersFrom({ fromRevision: 0 }); await this.trackSourceMembers(members, true); return members.map((member) => getMetadataKey(member.MemberType, member.MemberName)); } - // Adds the given SourceMembers to the list of tracked MemberRevisions, optionally updating - // the lastRetrievedFromServer field (sync), and persists the changes to maxRevision.json. - public async trackSourceMembers(sourceMembers: SourceMember[], sync = false): Promise { - if (sourceMembers.length === 0) { - return; - } - const quiet = sourceMembers.length > 100; - if (quiet) { - this.logger.debug(`Upserting ${sourceMembers.length} SourceMembers to maxRevision.json`); - } - - let serverMaxRevisionCounter = this.getServerMaxRevision(); - sourceMembers.forEach((change) => { - // try accessing the sourceMembers object at the index of the change's name - // if it exists, we'll update the fields - if it doesn't, we'll create and insert it - const key = getMetadataKey(change.MemberType, change.MemberName); - const sourceMember = this.getSourceMember(key) ?? { - serverRevisionCounter: change.RevisionCounter, - lastRetrievedFromServer: null, - memberType: change.MemberType, - isNameObsolete: change.IsNameObsolete, - }; - if (sourceMember.lastRetrievedFromServer) { - // We are already tracking this element so we'll update it - if (!quiet) { - this.logger.debug( - `Updating ${key} to RevisionCounter: ${change.RevisionCounter}${sync ? ' and syncing' : ''}` - ); - } - sourceMember.serverRevisionCounter = change.RevisionCounter; - sourceMember.isNameObsolete = change.IsNameObsolete; - } else if (!quiet) { - // We are not yet tracking it so we'll insert a new record - this.logger.debug( - `Inserting ${key} with RevisionCounter: ${change.RevisionCounter}${sync ? ' and syncing' : ''}` - ); - } - - // If we are syncing changes then we need to update the lastRetrievedFromServer field to - // match the RevisionCounter from the SourceMember. - if (sync) { - sourceMember.lastRetrievedFromServer = change.RevisionCounter; - } - // Keep track of the highest RevisionCounter for setting the serverMaxRevisionCounter - if (change.RevisionCounter > serverMaxRevisionCounter) { - serverMaxRevisionCounter = change.RevisionCounter; - } - // Update the state with the latest SourceMember data - this.setMemberRevision(key, sourceMember); - }); - // Update the serverMaxRevisionCounter to the highest RevisionCounter - this.setServerMaxRevision(serverMaxRevisionCounter); - this.logger.debug(`Updating serverMaxRevisionCounter to ${serverMaxRevisionCounter}`); - await this.write(); - } /** * Queries the org for any new, updated, or deleted metadata and updates * source tracking state. All `ChangeElements` not in sync with the org @@ -329,7 +204,7 @@ export class RemoteSourceTrackingService extends ConfigFile member.serverRevisionCounter !== member.lastRetrievedFromServer) .map(([key, member]) => convertRevisionToChange(key, member)); @@ -364,8 +239,8 @@ export class RemoteSourceTrackingService extends ConfigFile { + if (sourceMembers.length === 0) { + return; + } + const quiet = sourceMembers.length > 100; + if (quiet) { + this.logger.debug(`Upserting ${sourceMembers.length} SourceMembers to maxRevision.json`); + } - private setServerMaxRevision(revision = 0): void { - this.set('serverMaxRevisionCounter', revision); - } + let serverMaxRevisionCounter = this.serverMaxRevisionCounter; + sourceMembers.forEach((change) => { + // try accessing the sourceMembers object at the index of the change's name + // if it exists, we'll update the fields - if it doesn't, we'll create and insert it + const key = getMetadataKey(change.MemberType, change.MemberName); + const sourceMember = this.getSourceMember(key) ?? { + serverRevisionCounter: change.RevisionCounter, + lastRetrievedFromServer: null, + memberType: change.MemberType, + isNameObsolete: change.IsNameObsolete, + }; + if (sourceMember.lastRetrievedFromServer) { + // We are already tracking this element so we'll update it + if (!quiet) { + this.logger.debug( + `Updating ${key} to RevisionCounter: ${change.RevisionCounter}${sync ? ' and syncing' : ''}` + ); + } + sourceMember.serverRevisionCounter = change.RevisionCounter; + sourceMember.isNameObsolete = change.IsNameObsolete; + } else if (!quiet) { + // We are not yet tracking it so we'll insert a new record + this.logger.debug( + `Inserting ${key} with RevisionCounter: ${change.RevisionCounter}${sync ? ' and syncing' : ''}` + ); + } + + // If we are syncing changes then we need to update the lastRetrievedFromServer field to + // match the RevisionCounter from the SourceMember. + if (sync) { + sourceMember.lastRetrievedFromServer = change.RevisionCounter; + } + // Keep track of the highest RevisionCounter for setting the serverMaxRevisionCounter + if (change.RevisionCounter > serverMaxRevisionCounter) { + serverMaxRevisionCounter = change.RevisionCounter; + } + // Update the state with the latest SourceMember data + this.setMemberRevision(key, sourceMember); + }); + // Update the serverMaxRevisionCounter to the highest RevisionCounter + this.serverMaxRevisionCounter = serverMaxRevisionCounter; + this.logger.debug(`Updating serverMaxRevisionCounter to ${serverMaxRevisionCounter}`); - private getSourceMembers(): Dictionary { - return this.get('sourceMembers'); + await this.write(); } - private initSourceMembers(): void { - this.set('sourceMembers', {}); + /** reads the tracking file and inits the logger and contents */ + private async init(): Promise { + if (!(await this.org.supportsSourceTracking())) { + Messages.importMessagesDirectory(__dirname); + const messages = Messages.loadMessages('@salesforce/source-tracking', 'source'); + throw new SfError(messages.getMessage('NonSourceTrackedOrgError'), 'NonSourceTrackedOrgError'); + } + this.logger = await Logger.child(this.constructor.name); + if (fs.existsSync(this.filePath)) { + // read the file contents and turn it into the map + const rawContents = await readFileContents(this.filePath); + if (rawContents.serverMaxRevisionCounter && rawContents.sourceMembers) { + this.serverMaxRevisionCounter = rawContents.serverMaxRevisionCounter; + this.sourceMembers = new Map(Object.entries(rawContents.sourceMembers ?? {})); + } + } else { + // we need to init the file + await this.write(); + } + return this; } - // Return a tracked element as MemberRevision data. - private getSourceMember(key: string): Optional { - const sourceMembers = this.getSourceMembers(); + /** Return a tracked element as MemberRevision data.*/ + private getSourceMember(key: string): MemberRevision | undefined { return ( - sourceMembers[key] ?? sourceMembers[getDecodedKeyIfSourceMembersHas({ sourceMembers, key, logger: this.logger })] + this.sourceMembers.get(key) ?? + this.sourceMembers.get( + getDecodedKeyIfSourceMembersHas({ sourceMembers: this.sourceMembers, key, logger: this.logger }) + ) ); } private setMemberRevision(key: string, sourceMember: MemberRevision): void { - const sourceMembers = this.getSourceMembers(); - const matchingKey = sourceMembers[key] + const sourceMembers = this.sourceMembers; + const matchingKey = sourceMembers.get(key) ? key : getDecodedKeyIfSourceMembersHas({ sourceMembers, key, logger: this.logger }); - this.set('sourceMembers', { ...sourceMembers, [matchingKey]: sourceMember }); - } - - private calculateTimeout(memberCount: number): Duration { - const overriddenTimeout = env.getNumber('SFDX_SOURCE_MEMBER_POLLING_TIMEOUT', 0); - if (overriddenTimeout > 0) { - this.logger.debug(`Overriding SourceMember polling timeout to ${overriddenTimeout}`); - return Duration.seconds(overriddenTimeout); - } - - // Calculate a polling timeout for SourceMembers based on the number of - // member names being polled plus a buffer of 5 seconds. This will - // wait 50s for each 1000 components, plus 5s. - const pollingTimeout = Math.ceil(memberCount * 0.05) + 5; - this.logger.debug(`Computed SourceMember polling timeout of ${pollingTimeout}s`); - return Duration.seconds(pollingTimeout); + this.sourceMembers.set(matchingKey, sourceMember); } private async querySourceMembersFrom({ @@ -532,7 +456,7 @@ export class RemoteSourceTrackingService extends ConfigFile { - const rev = fromRevision ?? this.getServerMaxRevision(); + const rev = fromRevision ?? this.serverMaxRevisionCounter; if (useCache) { // Check cache first and return if found. @@ -545,31 +469,28 @@ export class RemoteSourceTrackingService extends ConfigFile to catch the most recent change const query = `SELECT MemberType, MemberName, IsNameObsolete, RevisionCounter FROM SourceMember WHERE RevisionCounter > ${rev}`; - const queryResult = await this.query(query, quiet); + if (!quiet) { + this.logger.debug(`Query: ${query}`); + } + const queryResult = await queryFn(this.org.getConnection(), query); this.queryCache.set(rev, queryResult); return queryResult; } - private async querySourceMembersTo(toRevision: number, quiet = false): Promise { - const query = `SELECT MemberType, MemberName, IsNameObsolete, RevisionCounter FROM SourceMember WHERE RevisionCounter <= ${toRevision}`; - return this.query(query, quiet); - } - - private async query(query: string, quiet = false): Promise { - if (!(await this.org.tracksSource())) { - throw new SfError(messages.getMessage('NonSourceTrackedOrgError'), 'NonSourceTrackedOrgError'); - } - if (!quiet) { - this.logger.debug(query); - } - - try { - return (await this.org.getConnection().tooling.query(query, { autoFetch: true, maxFetch: 50000 })) - .records; - } catch (error) { - throw SfError.wrap(error as Error); - } + private async write(): Promise { + await fs.promises.mkdir(path.dirname(this.filePath), { recursive: true }); + return fs.promises.writeFile( + this.filePath, + JSON.stringify( + { + serverMaxRevisionCounter: this.serverMaxRevisionCounter, + sourceMembers: Object.fromEntries(this.sourceMembers), + }, + null, + 4 + ) + ); } } @@ -604,15 +525,63 @@ function getDecodedKeyIfSourceMembersHas({ sourceMembers, logger, }: { - sourceMembers: Dictionary; + sourceMembers: Map; key: string; logger: Logger; }): string { const originalKeyDecoded = decodeURIComponent(key); - const match = Object.keys(sourceMembers).find((memberKey) => decodeURIComponent(memberKey) === originalKeyDecoded); + const match = Array.from(sourceMembers.keys()).find( + (memberKey) => decodeURIComponent(memberKey) === originalKeyDecoded + ); if (match) { logger.debug(`${match} matches already tracked member: ${key}`); return match; } return key; } + +const getFilePath = (orgId: string): string => path.join('.sf', 'orgs', orgId, FILENAME); + +const readFileContents = async (filePath: string): Promise> => { + try { + const contents = await fs.promises.readFile(filePath, 'utf8'); + return parseJsonMap(contents, filePath); + } catch (e) { + Logger.childFromRoot('remoteSourceTrackingService:readFileContents').debug( + `Error reading or parsing file file at ${filePath}. Will treat as an empty file.`, + e + ); + + return {}; + } +}; + +export const calculateTimeout = (memberCount: number): Duration => { + const logger = Logger.childFromRoot('remoteSourceTrackingService:calculateTimeout'); + const overriddenTimeout = env.getNumber('SFDX_SOURCE_MEMBER_POLLING_TIMEOUT', 0); + if (overriddenTimeout > 0) { + logger.debug(`Overriding SourceMember polling timeout to ${overriddenTimeout}`); + return Duration.seconds(overriddenTimeout); + } + + // Calculate a polling timeout for SourceMembers based on the number of + // member names being polled plus a buffer of 5 seconds. This will + // wait 50s for each 1000 components, plus 5s. + const pollingTimeout = Math.ceil(memberCount * 0.05) + 5; + logger.debug(`Computed SourceMember polling timeout of ${pollingTimeout}s`); + return Duration.seconds(pollingTimeout); +}; + +/** exported only for spy/mock */ +export const querySourceMembersTo = async (conn: Connection, toRevision: number): Promise => { + const query = `SELECT MemberType, MemberName, IsNameObsolete, RevisionCounter FROM SourceMember WHERE RevisionCounter <= ${toRevision}`; + return queryFn(conn, query); +}; + +const queryFn = async (conn: Connection, query: string): Promise => { + try { + return (await conn.tooling.query(query, { autoFetch: true, maxFetch: 50000 })).records; + } catch (error) { + throw SfError.wrap(error as Error); + } +}; diff --git a/test/unit/remoteSourceTracking.test.ts b/test/unit/remoteSourceTracking.test.ts index 9bc4b551..538b436b 100644 --- a/test/unit/remoteSourceTracking.test.ts +++ b/test/unit/remoteSourceTracking.test.ts @@ -4,19 +4,21 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -/* eslint-disable @typescript-eslint/await-thenable */ /* eslint-disable @typescript-eslint/ban-ts-comment */ /* eslint-disable camelcase */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -import { sep } from 'node:path'; +import { writeFile, mkdir, readFile } from 'node:fs/promises'; +import { existsSync } from 'node:fs'; +import { sep, dirname } from 'node:path'; import { MockTestOrgData, instantiateContext, stubContext, restoreContext } from '@salesforce/core/lib/testSetup'; import { Messages, Org } from '@salesforce/core'; import * as kit from '@salesforce/kit'; import { expect } from 'chai'; import { ComponentStatus } from '@salesforce/source-deploy-retrieve'; -import { RemoteSourceTrackingService } from '../../src/shared/remoteSourceTrackingService'; +import { RemoteSourceTrackingService, calculateTimeout, Contents } from '../../src/shared/remoteSourceTrackingService'; import { RemoteSyncInput, SourceMember, MemberRevision } from '../../src/shared/types'; +import * as mocks from '../../src/shared/remoteSourceTrackingService'; + Messages.importMessagesDirectory(__dirname); const getSourceMember = (revision: number, deleted = false): SourceMember => ({ @@ -41,24 +43,47 @@ const getMemberRevisionEntries = (revision: number, synced = false): { [key: str describe('remoteSourceTrackingService', () => { const username = 'foo@bar.com'; - const orgId = '00D456789012345'; + let orgId: string; const $$ = instantiateContext(); let remoteSourceTrackingService: RemoteSourceTrackingService; - afterEach(() => { + /** a shared "cheater" method to do illegal operations for test setup purposes */ + const setContents = (contents: { + serverMaxRevisionCounter: number; + sourceMembers: { [key: string]: MemberRevision }; + }): void => { + // @ts-expect-error it's private + remoteSourceTrackingService.serverMaxRevisionCounter = contents.serverMaxRevisionCounter; + // @ts-expect-error it's private + remoteSourceTrackingService.sourceMembers = new Map(Object.entries(contents.sourceMembers)); + }; + + /** a shared "cheater" method to do illegal operations for test assertion purposes */ + const getContents = (): { + serverMaxRevisionCounter: number; + sourceMembers: { [key: string]: MemberRevision }; + } => ({ + // @ts-expect-error it's private + serverMaxRevisionCounter: remoteSourceTrackingService.serverMaxRevisionCounter, + // @ts-expect-error it's private + sourceMembers: Object.fromEntries(remoteSourceTrackingService.sourceMembers), + }); + + afterEach(async () => { + await RemoteSourceTrackingService.delete(orgId); restoreContext($$); }); beforeEach(async () => { stubContext($$); const orgData = new MockTestOrgData(); + orgId = orgData.orgId; orgData.username = username; - orgData.orgId = orgId; orgData.tracksSource = true; await $$.stubAuths(orgData); const org = await Org.create({ aliasOrUsername: username }); $$.SANDBOX.stub(org.getConnection().tooling, 'query').resolves({ records: [], done: true, totalSize: 0 }); - remoteSourceTrackingService = await RemoteSourceTrackingService.create({ + remoteSourceTrackingService = await RemoteSourceTrackingService.getInstance({ org, projectPath: await $$.localPathRetriever($$.id), }); @@ -67,7 +92,7 @@ describe('remoteSourceTrackingService', () => { describe('getServerMaxRevision', () => { it('should return 0 if file does not exist', () => { // @ts-expect-error it's private - const max = remoteSourceTrackingService.getServerMaxRevision(); + const max = remoteSourceTrackingService.serverMaxRevisionCounter; expect(max).to.equal(0); }); }); @@ -76,13 +101,59 @@ describe('remoteSourceTrackingService', () => { it('should set initial state of contents', async () => { // @ts-expect-error it's private const queryMembersFromSpy = $$.SANDBOX.spy(remoteSourceTrackingService, 'querySourceMembersFrom'); + // @ts-expect-error it's private await remoteSourceTrackingService.init(); // @ts-expect-error it's private - expect(remoteSourceTrackingService.getServerMaxRevision()).to.equal(0); + expect(remoteSourceTrackingService.serverMaxRevisionCounter).to.equal(0); // @ts-expect-error it's private - expect(remoteSourceTrackingService.getSourceMembers()).to.deep.equal({}); + expect(remoteSourceTrackingService.sourceMembers).to.deep.equal(new Map()); // this is run during the beforeEach, but doesn't run again because init already happened expect(queryMembersFromSpy.called).to.equal(false); + // the file should exist after init, with its initial state + expect(existsSync(remoteSourceTrackingService.filePath)).to.equal(true); + const fileContents = JSON.parse(await readFile(remoteSourceTrackingService.filePath, 'utf8')) as Contents; + expect(fileContents.serverMaxRevisionCounter).to.equal(0); + expect(fileContents.sourceMembers).to.deep.equal({}); + }); + + it('should set initial state of contents when a file exists', async () => { + const maxJson = { + serverMaxRevisionCounter: 2, + sourceMembers: { + 'Layout__Broker__c-Broker Layout': { + serverRevisionCounter: 1, + lastRetrievedFromServer: 1, + memberType: 'Layout', + isNameObsolete: false, + }, + 'Layout__Broker__c-v1.1 Broker Layout': { + serverRevisionCounter: 2, + lastRetrievedFromServer: 2, + memberType: 'Layout', + isNameObsolete: false, + }, + }, + }; + await mkdir(dirname(remoteSourceTrackingService.filePath), { recursive: true }); + await writeFile(remoteSourceTrackingService.filePath, JSON.stringify(maxJson)); + // @ts-expect-error it's private + await remoteSourceTrackingService.init(); + // @ts-expect-error it's private + expect(remoteSourceTrackingService.serverMaxRevisionCounter).to.equal(2); + // @ts-expect-error it's private + expect(remoteSourceTrackingService.sourceMembers.size).to.deep.equal(2); + }); + + it('should set initial state of contents when a file exists but has nothing in it', async () => { + const maxJson = {}; + await mkdir(dirname(remoteSourceTrackingService.filePath), { recursive: true }); + await writeFile(remoteSourceTrackingService.filePath, JSON.stringify(maxJson)); + // @ts-expect-error it's private + await remoteSourceTrackingService.init(); + // @ts-expect-error it's private + expect(remoteSourceTrackingService.serverMaxRevisionCounter).to.equal(0); + // @ts-expect-error it's private + expect(remoteSourceTrackingService.sourceMembers.size).to.deep.equal(0); }); }); @@ -105,8 +176,7 @@ describe('remoteSourceTrackingService', () => { }, }, }; - await remoteSourceTrackingService.setContentsFromObject(maxJson); - + setContents(maxJson); const changes = await remoteSourceTrackingService.retrieveUpdates(); expect(changes.length).to.equal(1); expect(changes[0].name).to.equal('test__c'); @@ -144,11 +214,6 @@ describe('remoteSourceTrackingService', () => { memberType: 'ApexClass', isNameObsolete: false, }); - expect(remoteSourceTrackingService.getTrackedElement('ApexClass__test1__c')).to.deep.equal({ - name: 'test1__c', - type: 'ApexClass', - deleted: false, - }); // @ts-ignore getSourceMember is private expect(remoteSourceTrackingService.getSourceMember('ApexClass__test2__c')).to.deep.equal({ @@ -157,14 +222,9 @@ describe('remoteSourceTrackingService', () => { memberType: 'ApexClass', isNameObsolete: true, }); - expect(remoteSourceTrackingService.getTrackedElement('ApexClass__test2__c')).to.deep.equal({ - name: 'test2__c', - type: 'ApexClass', - deleted: true, - }); }); - it('will match decoded SourceMember keys on get', async () => { + it('will match decoded SourceMember keys on get', () => { const maxJson = { serverMaxRevisionCounter: 2, sourceMembers: { @@ -182,7 +242,7 @@ describe('remoteSourceTrackingService', () => { }, }, }; - await remoteSourceTrackingService.setContentsFromObject(maxJson); + setContents(maxJson); // @ts-ignore getSourceMember is private expect(remoteSourceTrackingService.getSourceMember('Layout__Broker__c-v1%2E1 Broker Layout')).to.deep.equal({ @@ -193,7 +253,7 @@ describe('remoteSourceTrackingService', () => { }); }); - it('will match encoded SourceMember keys on get', async () => { + it('will match encoded SourceMember keys on get', () => { const maxJson = { serverMaxRevisionCounter: 2, sourceMembers: { @@ -211,7 +271,7 @@ describe('remoteSourceTrackingService', () => { }, }, }; - await remoteSourceTrackingService.setContentsFromObject(maxJson); + setContents(maxJson); // @ts-ignore getSourceMember is private expect(remoteSourceTrackingService.getSourceMember('Layout__Broker__c-v1.1 Broker Layout')).to.deep.equal({ @@ -222,7 +282,7 @@ describe('remoteSourceTrackingService', () => { }); }); - it('will match/update decoded SourceMember keys on set', async () => { + it('will match/update decoded SourceMember keys on set', () => { const maxJson = { serverMaxRevisionCounter: 2, sourceMembers: { @@ -240,7 +300,7 @@ describe('remoteSourceTrackingService', () => { }, }, }; - await remoteSourceTrackingService.setContentsFromObject(maxJson); + setContents(maxJson); // @ts-ignore setMemberRevision is private remoteSourceTrackingService.setMemberRevision('Layout__Broker__c-v1%2E1 Broker Layout', { @@ -250,24 +310,28 @@ describe('remoteSourceTrackingService', () => { isNameObsolete: false, }); - // @ts-ignore getSourceMembers is private - expect(remoteSourceTrackingService.getSourceMembers()).to.deep.equal({ - 'Layout__Broker__c-Broker Layout': { - serverRevisionCounter: 1, - lastRetrievedFromServer: 1, - memberType: 'Layout', - isNameObsolete: false, - }, - 'Layout__Broker__c-v1.1 Broker Layout': { - serverRevisionCounter: 3, - lastRetrievedFromServer: 3, - memberType: 'Layout', - isNameObsolete: false, - }, - }); + // @ts-expect-error getSourceMembers is private + expect(remoteSourceTrackingService.sourceMembers).to.deep.equal( + new Map( + Object.entries({ + 'Layout__Broker__c-Broker Layout': { + serverRevisionCounter: 1, + lastRetrievedFromServer: 1, + memberType: 'Layout', + isNameObsolete: false, + }, + 'Layout__Broker__c-v1.1 Broker Layout': { + serverRevisionCounter: 3, + lastRetrievedFromServer: 3, + memberType: 'Layout', + isNameObsolete: false, + }, + }) + ) + ); }); - it('will match/update encoded SourceMember keys on set', async () => { + it('will match/update encoded SourceMember keys on set', () => { const maxJson = { serverMaxRevisionCounter: 2, sourceMembers: { @@ -285,7 +349,7 @@ describe('remoteSourceTrackingService', () => { }, }, }; - await remoteSourceTrackingService.setContentsFromObject(maxJson); + setContents(maxJson); // @ts-ignore setMemberRevision is private remoteSourceTrackingService.setMemberRevision('Layout__Broker__c-v1.1 Broker Layout', { @@ -295,30 +359,34 @@ describe('remoteSourceTrackingService', () => { isNameObsolete: false, }); - // @ts-ignore getSourceMembers is private - expect(remoteSourceTrackingService.getSourceMembers()).to.deep.equal({ - 'Layout__Broker__c-Broker Layout': { - serverRevisionCounter: 1, - lastRetrievedFromServer: 1, - memberType: 'Layout', - isNameObsolete: false, - }, - 'Layout__Broker__c-v1%2E1 Broker Layout': { - serverRevisionCounter: 3, - lastRetrievedFromServer: 3, - memberType: 'Layout', - isNameObsolete: false, - }, - }); + // @ts-expect-error getSourceMembers is private + expect(remoteSourceTrackingService.sourceMembers).to.deep.equal( + new Map( + Object.entries({ + 'Layout__Broker__c-Broker Layout': { + serverRevisionCounter: 1, + lastRetrievedFromServer: 1, + memberType: 'Layout', + isNameObsolete: false, + }, + 'Layout__Broker__c-v1%2E1 Broker Layout': { + serverRevisionCounter: 3, + lastRetrievedFromServer: 3, + memberType: 'Layout', + isNameObsolete: false, + }, + }) + ) + ); }); }); describe('setServerMaxRevision', () => { - it('should set the initial serverMaxRevisionCounter to zero during file creation', async () => { - await remoteSourceTrackingService.init(); - const contents = remoteSourceTrackingService.getContents(); - expect(contents.serverMaxRevisionCounter).to.equal(0); - expect(contents.sourceMembers).to.eql({}); + it('should set the initial serverMaxRevisionCounter to zero during file creation', () => { + // @ts-expect-error it's private + expect(remoteSourceTrackingService.serverMaxRevisionCounter).to.equal(0); + // @ts-expect-error it's private + expect(remoteSourceTrackingService.sourceMembers).to.eql(new Map()); }); }); @@ -333,14 +401,12 @@ describe('remoteSourceTrackingService', () => { it('should sync SourceMembers when query results match', async () => { // @ts-ignore const queryStub = $$.SANDBOX.stub(remoteSourceTrackingService, 'querySourceMembersFrom'); - // @ts-ignore - const getServerMaxRevisionStub = $$.SANDBOX.stub(remoteSourceTrackingService, 'getServerMaxRevision'); - const maxRev = 9; - getServerMaxRevisionStub.returns(maxRev); + // @ts-expect-error it's private + remoteSourceTrackingService.serverMaxRevisionCounter = 9; - // @ts-ignore queryStub.onFirstCall().resolves([]); const queryResult = [1, 2, 3].map((rev) => getSourceMember(rev)); + // @ts-ignore queryStub.onSecondCall().resolves(queryResult); // @ts-ignore @@ -354,18 +420,13 @@ describe('remoteSourceTrackingService', () => { `trackSourceMembers was not called twice. it was called ${trackSpy.callCount} times` ).to.equal(true); expect(queryStub.called).to.equal(true); - expect( - getServerMaxRevisionStub.calledOnce, - `getServerMaxRevisionStub was not called once. it was called ${queryStub.callCount} times` - ).to.equal(true); }); it('should sync specific elements', async () => { - const contents = remoteSourceTrackingService.getContents(); - expect(contents).to.deep.equal({ + expect(getContents()).to.deep.equal({ serverMaxRevisionCounter: 0, sourceMembers: {}, }); - remoteSourceTrackingService.setContents({ + setContents({ serverMaxRevisionCounter: 1, sourceMembers: { 'Profile__my(awesome)profile': { @@ -385,7 +446,7 @@ describe('remoteSourceTrackingService', () => { }, ]); // lastRetrievedFromServer should be set to the serverRevisionCounter - expect(await remoteSourceTrackingService.getContents()).to.deep.equal({ + expect(getContents()).to.deep.equal({ serverMaxRevisionCounter: 1, sourceMembers: { 'Profile__my(awesome)profile': { @@ -399,8 +460,6 @@ describe('remoteSourceTrackingService', () => { }); it('should not poll when SFDX_DISABLE_SOURCE_MEMBER_POLLING=true', async () => { const getBooleanStub = $$.SANDBOX.stub(kit.env, 'getBoolean').callsFake(() => true); - // @ts-ignore - const getServerMaxRevisionStub = $$.SANDBOX.stub(remoteSourceTrackingService, 'getServerMaxRevision'); // @ts-ignore const trackSpy = $$.SANDBOX.stub(remoteSourceTrackingService, 'trackSourceMembers'); @@ -409,7 +468,6 @@ describe('remoteSourceTrackingService', () => { await remoteSourceTrackingService.pollForSourceTracking(memberNames, 2); expect(trackSpy.called).to.equal(false); expect(getBooleanStub.calledOnce).to.equal(true); - expect(getServerMaxRevisionStub.notCalled).to.equal(true); }); describe('timeout handling', () => { @@ -417,10 +475,6 @@ describe('remoteSourceTrackingService', () => { // @ts-ignore const queryStub = $$.SANDBOX.stub(remoteSourceTrackingService, 'querySourceMembersFrom').resolves([]); const warnSpy = $$.SANDBOX.spy($$.TEST_LOGGER, 'warn'); - // @ts-ignore - const getServerMaxRevisionStub = $$.SANDBOX.stub(remoteSourceTrackingService, 'getServerMaxRevision'); - const maxRev = 9; - getServerMaxRevisionStub.returns(maxRev); // @ts-ignore const trackSpy = $$.SANDBOX.stub(remoteSourceTrackingService, 'trackSourceMembers'); @@ -433,7 +487,6 @@ describe('remoteSourceTrackingService', () => { const expectedMsg = 'Polling for SourceMembers timed out after 6 attempts'; expect(warnSpy.calledWithMatch(expectedMsg)).to.equal(true); expect(queryStub.called).to.equal(true); - expect(getServerMaxRevisionStub.calledOnce).to.equal(true); }).timeout(10000); it('should stop if SFDX_SOURCE_MEMBER_POLLING_TIMEOUT is exceeded', async () => { @@ -442,10 +495,6 @@ describe('remoteSourceTrackingService', () => { // @ts-ignore const queryStub = $$.SANDBOX.stub(remoteSourceTrackingService, 'querySourceMembersFrom').resolves([]); const warnSpy = $$.SANDBOX.spy($$.TEST_LOGGER, 'warn'); - // @ts-ignore - const getServerMaxRevisionStub = $$.SANDBOX.stub(remoteSourceTrackingService, 'getServerMaxRevision'); - const maxRev = 9; - getServerMaxRevisionStub.returns(maxRev); // @ts-ignore const trackSpy = $$.SANDBOX.stub(remoteSourceTrackingService, 'trackSourceMembers'); @@ -459,7 +508,6 @@ describe('remoteSourceTrackingService', () => { expect(warnSpy.calledWithMatch(expectedMsg)).to.equal(true); expect(warnSpy.calledOnce).to.equal(true); expect(queryStub.called).to.equal(true); - expect(getServerMaxRevisionStub.calledOnce).to.equal(true); }); }); }); @@ -467,55 +515,42 @@ describe('remoteSourceTrackingService', () => { describe('reset', () => { it('should reset source tracking state to be synced with the max RevisionCounter on the org', async () => { // Set initial test state of 5 apex classes not yet synced. - remoteSourceTrackingService.set('serverMaxRevisionCounter', 5); - remoteSourceTrackingService.set('sourceMembers', getMemberRevisionEntries(5)); - - // @ts-ignore - const setMaxSpy = $$.SANDBOX.spy(remoteSourceTrackingService, 'setServerMaxRevision'); - // @ts-ignore - const initMembersSpy = $$.SANDBOX.spy(remoteSourceTrackingService, 'initSourceMembers'); + setContents({ + serverMaxRevisionCounter: 5, + sourceMembers: getMemberRevisionEntries(5), + }); // @ts-ignore - const queryToSpy = $$.SANDBOX.spy(remoteSourceTrackingService, 'querySourceMembersTo'); + const queryToSpy = $$.SANDBOX.spy(mocks, 'querySourceMembersTo'); const sourceMembers = [1, 2, 3, 4, 5, 6, 7].map((rev) => getSourceMember(rev)); // @ts-ignore $$.SANDBOX.stub(remoteSourceTrackingService, 'querySourceMembersFrom').resolves(sourceMembers); await remoteSourceTrackingService.reset(); - expect(setMaxSpy.calledTwice).to.equal(true); - expect(setMaxSpy.firstCall.args[0]).to.equal(0); - expect(setMaxSpy.secondCall.args[0]).to.equal(7); - expect(initMembersSpy.called).to.equal(true); expect(queryToSpy.called).to.equal(false); - const contents = remoteSourceTrackingService.getContents(); - expect(contents.serverMaxRevisionCounter).to.equal(7); + const contents = getContents(); + // @ts-expect-error it's private + expect(remoteSourceTrackingService.serverMaxRevisionCounter).to.equal(7); const expectedMemberRevisions = getMemberRevisionEntries(7, true); expect(contents.sourceMembers).to.deep.equal(expectedMemberRevisions); }); it('should reset source tracking state to be synced with the specified revision', async () => { // Set initial test state of 5 apex classes not yet synced. - remoteSourceTrackingService.set('serverMaxRevisionCounter', 5); - remoteSourceTrackingService.set('sourceMembers', getMemberRevisionEntries(5)); - - // @ts-ignore - const setMaxSpy = $$.SANDBOX.spy(remoteSourceTrackingService, 'setServerMaxRevision'); - // @ts-ignore - const initMembersSpy = $$.SANDBOX.spy(remoteSourceTrackingService, 'initSourceMembers'); + setContents({ + serverMaxRevisionCounter: 5, + sourceMembers: getMemberRevisionEntries(5), + }); // @ts-ignore const queryFromSpy = $$.SANDBOX.spy(remoteSourceTrackingService, 'querySourceMembersFrom'); const sourceMembers = [1, 2, 3].map((rev) => getSourceMember(rev)); // @ts-ignore - $$.SANDBOX.stub(remoteSourceTrackingService, 'querySourceMembersTo').resolves(sourceMembers); + $$.SANDBOX.stub(mocks, 'querySourceMembersTo').resolves(sourceMembers); await remoteSourceTrackingService.reset(3); - expect(setMaxSpy.calledTwice).to.equal(true); - expect(setMaxSpy.firstCall.args[0]).to.equal(0); - expect(setMaxSpy.secondCall.args[0]).to.equal(3); - expect(initMembersSpy.called).to.equal(true); expect(queryFromSpy.called).to.equal(false); - const contents = remoteSourceTrackingService.getContents(); + const contents = getContents(); expect(contents.serverMaxRevisionCounter).to.equal(3); const expectedMemberRevisions = getMemberRevisionEntries(3, true); expect(contents.sourceMembers).to.deep.equal(expectedMemberRevisions); @@ -524,8 +559,27 @@ describe('remoteSourceTrackingService', () => { describe('file location support', () => { it('should return the correct file location (base case)', () => { - const fileLocation = remoteSourceTrackingService.getPath(); - expect(fileLocation).to.include(`.sf${sep}`); + expect(remoteSourceTrackingService.filePath).to.include(`.sf${sep}`); }); }); }); + +describe('calculateTimeout', () => { + afterEach(() => { + delete process.env.SFDX_SOURCE_MEMBER_POLLING_TIMEOUT; + }); + it('0 members => 5 sec', () => { + expect(calculateTimeout(0).seconds).to.equal(5); + }); + it('10000 members => 505 sec', () => { + expect(calculateTimeout(10000).seconds).to.equal(505); + }); + it('override 60 in env', () => { + process.env.SFDX_SOURCE_MEMBER_POLLING_TIMEOUT = '60'; + expect(calculateTimeout(10000).seconds).to.equal(60); + }); + it('override 0 in env has no effect', () => { + process.env.SFDX_SOURCE_MEMBER_POLLING_TIMEOUT = '0'; + expect(calculateTimeout(10000).seconds).to.equal(505); + }); +}); diff --git a/yarn.lock b/yarn.lock index b11f098d..70c025a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -388,15 +388,6 @@ esquery "^1.5.0" jsdoc-type-pratt-parser "~4.0.0" -"@es-joy/jsdoccomment@~0.40.1": - version "0.40.1" - resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz#13acd77fb372ed1c83b7355edd865a3b370c9ec4" - integrity sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg== - dependencies: - comment-parser "1.4.0" - esquery "^1.5.0" - jsdoc-type-pratt-parser "~4.0.0" - "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -535,12 +526,12 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@salesforce/cli-plugins-testkit@^4.4.11": - version "4.4.11" - resolved "https://registry.yarnpkg.com/@salesforce/cli-plugins-testkit/-/cli-plugins-testkit-4.4.11.tgz#eca52e8dc348222fe3c306a21d80d6f12899da74" - integrity sha512-OANYcjzsBK10BTst9ap+GLeJxsb31vB2aK2hFrF+naAzW3QmPXmQ0trK5ReipalKruGN35c5t/YXZdgKtLElmA== +"@salesforce/cli-plugins-testkit@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@salesforce/cli-plugins-testkit/-/cli-plugins-testkit-5.0.2.tgz#be35c0b449223ee50e395aba7e1b4ccb1a5e49d7" + integrity sha512-piHWPnbkwytudtc3VntfyECa3NzxngecM7/hka2rooLWs7NZCLcJoAEvYDWNRGgNa0Yw6gefBJVNivoVpfNSKQ== dependencies: - "@salesforce/core" "^5.3.10" + "@salesforce/core" "^5.3.17" "@salesforce/kit" "^3.0.15" "@salesforce/ts-types" "^2.0.6" "@types/shelljs" "^0.8.14" @@ -550,15 +541,15 @@ strip-ansi "6.0.1" ts-retry-promise "^0.7.1" -"@salesforce/core@^5.3.10", "@salesforce/core@^5.3.16": - version "5.3.16" - resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-5.3.16.tgz#93987b0bbe37b73146929ceab658b653215adbe6" - integrity sha512-Q5BOFPwACXe/ebwROzpacwPA/WSRfOM7W63exX4b0Gv2rQoMB2NZLxHBQP3FZ4eH4PMHvBB16IzmtNq8vSJktw== +"@salesforce/core@^5.3.17", "@salesforce/core@^5.3.18": + version "5.3.18" + resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-5.3.18.tgz#c0b7b59fbef7f0689e88968c614dd1ae2c420f02" + integrity sha512-/Ag7elFngTT13PRblSPJPB2Q+xk3jR2SX8bYa83fcQljVF7ApGB5qtFpauXmUv8lgRnN+F01HNqM16iszAMP9w== dependencies: "@salesforce/kit" "^3.0.15" "@salesforce/schemas" "^1.6.1" "@salesforce/ts-types" "^2.0.9" - "@types/semver" "^7.5.3" + "@types/semver" "^7.5.4" ajv "^8.12.0" change-case "^4.1.2" faye "^1.4.0" @@ -574,82 +565,42 @@ semver "^7.5.4" ts-retry-promise "^0.7.1" -"@salesforce/core@^5.3.9": - version "5.3.9" - resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-5.3.9.tgz#1c8f793ce1a0798c5c7767a5a370a5926d3298de" - integrity sha512-/HX0PiXq3Sjc5eVJ0EaYetcDGsKU9O9Nj8jFGw5qYlITx8zogfxc0j07liH67tQXS1KbTysYoj/MQ2zbHSNkPA== - dependencies: - "@salesforce/kit" "^3.0.13" - "@salesforce/schemas" "^1.6.0" - "@salesforce/ts-types" "^2.0.8" - "@types/semver" "^7.5.3" - ajv "^8.12.0" - change-case "^4.1.2" - faye "^1.4.0" - form-data "^4.0.0" - js2xmlparser "^4.0.1" - jsforce "^2.0.0-beta.27" - jsonwebtoken "9.0.2" - jszip "3.10.1" - pino "^8.15.6" - pino-abstract-transport "^1.0.0" - pino-pretty "^10.2.3" - proper-lockfile "^4.1.2" - semver "^7.5.4" - ts-retry-promise "^0.7.1" - "@salesforce/dev-config@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@salesforce/dev-config/-/dev-config-4.0.1.tgz#662ffaa4409713553aaf68eed93e7d2429c3ff0e" integrity sha512-0zMjXG4Vjlu/mB7zbuKSXfXiP7CEZBwsPtYqNgburk/wZIU9KcMspLwVBDUxmUj9ltRksD9o1ubRUblN5M3Z0g== -"@salesforce/dev-scripts@^5.12.2": - version "5.12.2" - resolved "https://registry.yarnpkg.com/@salesforce/dev-scripts/-/dev-scripts-5.12.2.tgz#2008349169912c2569538f75484f45948de461fe" - integrity sha512-VZkk5bsTzsjHZjxlPrCiBMne/ep4IG3gBuID3LxlXzFTRS8Ulxi28jRrOzQ+ig8l8trgFfnqw64zuE6NOxe3lA== +"@salesforce/dev-scripts@^6.0.3": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@salesforce/dev-scripts/-/dev-scripts-6.0.3.tgz#6cf4504fd0ec8b4685e729b26685eed60f9c8b26" + integrity sha512-WLl1N07oNeRywdypwUrebX/kCkSm3IzmAQpUt4q4Sk8r4vTWv5b6F0pHLv0pGS8/QWNJT7xWGZDF1lgJBHOsmA== dependencies: "@commitlint/cli" "^17.1.2" "@commitlint/config-conventional" "^17.1.0" "@salesforce/dev-config" "^4.0.1" "@salesforce/prettier-config" "^0.0.3" "@types/chai" "^4.2.11" - "@types/mocha" "^9.0.0" - "@types/node" "^15.6.1" - "@types/sinon" "10.0.11" + "@types/mocha" "^10.0.3" + "@types/node" "^18" + "@types/sinon" "^10.0.20" chai "^4.3.10" chalk "^4.0.0" cosmiconfig "^7.0.0" - eslint "^8.52.0" - eslint-config-prettier "^8.8.0" - eslint-config-salesforce "^2.0.1" - eslint-config-salesforce-license "^0.2.0" - eslint-config-salesforce-typescript "^2.0.0" - eslint-plugin-header "^3.1.1" - eslint-plugin-import "^2.27.5" - eslint-plugin-jsdoc "^46.8.2" - eslint-plugin-prefer-arrow "^1.2.1" + eslint-config-salesforce-typescript "^3.0.1" husky "^7.0.4" - mocha "^9.1.3" + mocha "^10.2.0" nyc "^15.1.0" - prettier "^2.7.1" + prettier "^2.8.8" pretty-quick "^3.1.0" shelljs "~0.8.4" sinon "10.0.0" source-map-support "~0.5.19" - ts-node "^10.0.0" + ts-node "^10.9.1" typedoc "0.23.16" typedoc-plugin-missing-exports "0.23.0" typescript "^4.9.5" wireit "^0.14.1" -"@salesforce/kit@^3.0.13": - version "3.0.14" - resolved "https://registry.yarnpkg.com/@salesforce/kit/-/kit-3.0.14.tgz#b2231c856531eca86fa2d9779c7852c820d7c3ed" - integrity sha512-NkUlztz+ArRrUKexIxVOlBJxIovjCuyk3SbW7mQv2klwp/OH/HoR6PDZU0gxLBglum/Dd4BgB+HN2FNqg8jmoQ== - dependencies: - "@salesforce/ts-types" "^2.0.8" - tslib "^2.6.2" - "@salesforce/kit@^3.0.15": version "3.0.15" resolved "https://registry.yarnpkg.com/@salesforce/kit/-/kit-3.0.15.tgz#713df3f5767f874c70a2e731c7cb5ba677989559" @@ -663,22 +614,17 @@ resolved "https://registry.yarnpkg.com/@salesforce/prettier-config/-/prettier-config-0.0.3.tgz#ba648d4886bb38adabe073dbea0b3a91b3753bb0" integrity sha512-hYOhoPTCSYMDYn+U1rlEk16PoBeAJPkrdg4/UtAzupM1mRRJOwEPMG1d7U8DxJFKuXW3DMEYWr2MwAIBDaHmFg== -"@salesforce/schemas@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@salesforce/schemas/-/schemas-1.6.0.tgz#14505ebad2fb2d4f7b14837545d662766d293561" - integrity sha512-SwhDTLucj/GRbPpxlEoDZeqlX22o+G6fiebTXTu1cZKmd1oE0W2L7SlTTgJnWck8bhTeBIgQi9cpD8c2t5ISKA== - "@salesforce/schemas@^1.6.1": version "1.6.1" resolved "https://registry.yarnpkg.com/@salesforce/schemas/-/schemas-1.6.1.tgz#7d1c071e1e509ca9d2d8a6e48ac7447dd67a534d" integrity sha512-eVy947ZMxCJReKJdgfddUIsBIbPTa/i8RwQGwxq4/ss38H5sLOAeSTaun9V7HpJ1hkpDznWKfgzYvjsst9K6ig== -"@salesforce/source-deploy-retrieve@^9.8.1": - version "9.8.1" - resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-9.8.1.tgz#be19edd97097cdbb535762a5c63c7919042f3e96" - integrity sha512-DMscuGAv/Ls/Vp0wqZmjjxxoaRm/2K7Np3KHvjml8hTop1EvnhmwbwsdLDABb+I1uYE8VtWV9RZV82GVTne3+w== +"@salesforce/source-deploy-retrieve@^9.8.4": + version "9.8.4" + resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-9.8.4.tgz#e6d21d8f2e0b44fae242e31ef8b4f31991a07deb" + integrity sha512-/g/WkUFCogCANnKkeHmQyXpAbIy+A2htEYliVaoxg3UccDqHCZd5Gmlk6Gwsd03YsLAt249bay5mAokD7y39sQ== dependencies: - "@salesforce/core" "^5.3.16" + "@salesforce/core" "^5.3.17" "@salesforce/kit" "^3.0.15" "@salesforce/ts-types" "^2.0.9" fast-levenshtein "^3.0.0" @@ -691,16 +637,7 @@ minimatch "^5.1.6" proxy-agent "^6.3.1" -"@salesforce/ts-sinon@^1.4.18": - version "1.4.18" - resolved "https://registry.yarnpkg.com/@salesforce/ts-sinon/-/ts-sinon-1.4.18.tgz#a9ff91370bc3f682fbf964afcbc0fcf5f04d2912" - integrity sha512-YR+L5JEZRfZmPGYvamPs+urd753PfS/K6foygYdR9F6MM+e0VMbAQ8Zq2lmJKoZy4aDEencspmp+72wtZKJJpg== - dependencies: - "@salesforce/ts-types" "^2.0.8" - sinon "^5.1.1" - tslib "^2.6.1" - -"@salesforce/ts-types@^2.0.6", "@salesforce/ts-types@^2.0.8", "@salesforce/ts-types@^2.0.9": +"@salesforce/ts-types@^2.0.6", "@salesforce/ts-types@^2.0.9": version "2.0.9" resolved "https://registry.yarnpkg.com/@salesforce/ts-types/-/ts-types-2.0.9.tgz#66bff7b41720065d6b01631b6f6a3ccca02857c5" integrity sha512-boUD9jw5vQpTCPCCmK/NFTWjSuuW+lsaxOynkyNXLW+zxOc4GDjhtKc4j0vWZJQvolpafbyS8ZLFHZJvs12gYA== @@ -712,27 +649,13 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== -"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": +"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": version "1.8.6" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== dependencies: type-detect "4.0.8" -"@sinonjs/commons@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" - integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" - integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== - dependencies: - "@sinonjs/commons" "^2.0.0" - "@sinonjs/fake-timers@^6.0.0", "@sinonjs/fake-timers@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" @@ -740,37 +663,6 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/fake-timers@^7.0.4": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" - integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@sinonjs/formatio@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" - integrity sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg== - dependencies: - samsam "1.3.0" - -"@sinonjs/formatio@^3.2.1": - version "3.2.2" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c" - integrity sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ== - dependencies: - "@sinonjs/commons" "^1" - "@sinonjs/samsam" "^3.1.0" - -"@sinonjs/samsam@^3.1.0": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" - integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ== - dependencies: - "@sinonjs/commons" "^1.3.0" - array-from "^2.1.1" - lodash "^4.17.15" - "@sinonjs/samsam@^5.3.1": version "5.3.1" resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.1.tgz#375a45fe6ed4e92fca2fb920e007c48232a6507f" @@ -780,15 +672,6 @@ lodash.get "^4.4.2" type-detect "^4.0.8" -"@sinonjs/samsam@^6.0.1": - version "6.1.3" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-6.1.3.tgz#4e30bcd4700336363302a7d72cbec9b9ab87b104" - integrity sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ== - dependencies: - "@sinonjs/commons" "^1.6.0" - lodash.get "^4.4.2" - type-detect "^4.0.8" - "@sinonjs/text-encoding@^0.7.1": version "0.7.2" resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" @@ -806,16 +689,6 @@ resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c" integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA== -"@ts-morph/common@~0.12.3": - version "0.12.3" - resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.12.3.tgz#a96e250217cd30e480ab22ec6a0ebbe65fd784ff" - integrity sha512-4tUmeLyXJnJWvTFOKtcNJ1yh0a3SsTLi2MUoyj8iUNznFRN1ZquaNe7Oukqrnki2FzZkm0J9adCNLDZxUzvj+w== - dependencies: - fast-glob "^3.2.7" - minimatch "^3.0.4" - mkdirp "^1.0.4" - path-browserify "^1.0.1" - "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -872,9 +745,9 @@ integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== "@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + version "7.0.14" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.14.tgz#74a97a5573980802f32c8e47b663530ab3b6b7d1" + integrity sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw== "@types/json5@^0.0.29": version "0.0.29" @@ -903,26 +776,23 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/mocha@^9.0.0": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" - integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== +"@types/mocha@^10.0.3": + version "10.0.3" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.3.tgz#4804fe9cd39da26eb62fa65c15ea77615a187812" + integrity sha512-RsOPImTriV/OE4A9qKjMtk2MnXiuLLbcO3nCXK+kvq4nr0iMfFgpjaX3MPLb6f7+EL1FGSelYvuJMV6REH+ZPQ== -"@types/node@*": - version "18.15.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" - integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== +"@types/node@*", "@types/node@^18": + version "18.18.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.8.tgz#2b285361f2357c8c8578ec86b5d097c7f464cfd6" + integrity sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ== + dependencies: + undici-types "~5.26.4" "@types/node@^12.19.9": version "12.20.55" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== -"@types/node@^15.6.1": - version "15.14.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" - integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== - "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" @@ -940,18 +810,10 @@ dependencies: "@types/node" "*" -"@types/semver@^7.3.12", "@types/semver@^7.5.3": - version "7.5.3" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.3.tgz#9a726e116beb26c24f1ccd6850201e1246122e04" - integrity sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw== - -"@types/shelljs@^0.8.11": - version "0.8.13" - resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.8.13.tgz#a94bf7f2b82b7cd9f4496bbe063c3adb0868a650" - integrity sha512-++uMLOQSLlse1kCfEOwhgmHuaABZwinkylmUKCpvcEGZUov3TtM+gJZloSkW/W+9pEAEg/VBOwiSR05oqJsa5A== - dependencies: - "@types/glob" "~7.2.0" - "@types/node" "*" +"@types/semver@^7.3.12", "@types/semver@^7.5.4": + version "7.5.4" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.4.tgz#0a41252ad431c473158b22f9bfb9a63df7541cff" + integrity sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ== "@types/shelljs@^0.8.14": version "0.8.14" @@ -961,10 +823,10 @@ "@types/glob" "~7.2.0" "@types/node" "*" -"@types/sinon@10.0.11": - version "10.0.11" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.11.tgz#8245827b05d3fc57a6601bd35aee1f7ad330fc42" - integrity sha512-dmZsHlBsKUtBpHriNjlK0ndlvEh8dcb9uV9Afsbt89QIyydpC7NcR+nWlAhASfy3GHnxTl4FX/aKE7XZUt/B4g== +"@types/sinon@^10.0.20": + version "10.0.20" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.20.tgz#f1585debf4c0d99f9938f4111e5479fb74865146" + integrity sha512-2APKKruFNCAZgx3daAyACGzWuJ028VVCUDk6o2rw/Z4PXT0ogwdV4KUegW0MwVs0Zu59auPXbbuBJHF12Sx1Eg== dependencies: "@types/sinonjs__fake-timers" "*" @@ -973,7 +835,7 @@ resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz#bf2e02a3dbd4aecaf95942ecd99b7402e03fad5e" integrity sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA== -"@typescript-eslint/eslint-plugin@^5.60.0", "@typescript-eslint/eslint-plugin@^5.62.0": +"@typescript-eslint/eslint-plugin@^5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== @@ -1057,11 +919,6 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== - "@ungap/structured-clone@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" @@ -1225,11 +1082,6 @@ array-differ@^3.0.0: resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== -array-from@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" - integrity sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg== - array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" @@ -1454,13 +1306,14 @@ caching-transform@^4.0.0: package-hash "^4.0.0" write-file-atomic "^3.0.0" -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" callsites@^3.0.0: version "3.1.0" @@ -1659,11 +1512,6 @@ clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" -code-block-writer@^11.0.0: - version "11.0.3" - resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-11.0.3.tgz#9eec2993edfb79bfae845fbc093758c0a0b73b76" - integrity sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw== - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -1705,21 +1553,11 @@ commander@^4.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - comment-parser@1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.3.1.tgz#3d7ea3adaf9345594aedee6563f422348f165c1b" integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== -comment-parser@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.4.0.tgz#0f8c560f59698193854f12884c20c0e39a26d32c" - integrity sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw== - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1801,7 +1639,7 @@ cosmiconfig-typescript-loader@^4.0.0: resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz#c4259ce474c9df0f32274ed162c0447c951ef073" integrity sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q== -cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: +cosmiconfig@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== @@ -1873,20 +1711,13 @@ dateformat@^4.6.3: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -1943,6 +1774,15 @@ defer-to-connect@^2.0.0: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== +define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" @@ -1975,11 +1815,6 @@ diff@5.0.0: resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== -diff@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - diff@^4.0.1, diff@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -2153,7 +1988,7 @@ escodegen@^2.1.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^8.10.0, eslint-config-prettier@^8.8.0: +eslint-config-prettier@^8.10.0: version "8.10.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== @@ -2163,21 +1998,23 @@ eslint-config-salesforce-license@^0.2.0: resolved "https://registry.yarnpkg.com/eslint-config-salesforce-license/-/eslint-config-salesforce-license-0.2.0.tgz#323193f1aa15dd33fbf108d25fc1210afc11065e" integrity sha512-DJdBvgj82Erum82YMe+YvG/o6ukna3UA++lRl0HSTldj0VlBl3Q8hzCp97nRXZHra6JH1I912yievZzklXDw6w== -eslint-config-salesforce-typescript@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/eslint-config-salesforce-typescript/-/eslint-config-salesforce-typescript-2.0.1.tgz#31e89fb58994071901c343ad29cdd7fca3cb3d65" - integrity sha512-3gmTUi3AU3P/84UM7twqR+dkZkSVm+u/yqMKbx/iaBSuFI8lAoALv7xTaOaoJO+4DCvJo+CmsJX7h71H9eUSRw== +eslint-config-salesforce-typescript@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-config-salesforce-typescript/-/eslint-config-salesforce-typescript-3.0.1.tgz#dd278345e344c03c5c7c4c5121c2b5b6f8de01b8" + integrity sha512-8ivDGo6yBHEVk3+J1cLIiHfT3BP3JAbBnx3BlDQ3z5IYftAJ6LGemPANp3vWD6Wx3YKkYiVaIRmmB9uScneKhQ== dependencies: "@typescript-eslint/eslint-plugin" "^5.62.0" "@typescript-eslint/parser" "^5.62.0" + eslint "^8.52.0" eslint-config-prettier "^8.10.0" eslint-config-salesforce "^2.0.2" eslint-config-salesforce-license "^0.2.0" + eslint-plugin-header "^3.1.1" eslint-plugin-import "^2.29.0" eslint-plugin-jsdoc "^43.0.5" eslint-plugin-unicorn "^48.0.1" -eslint-config-salesforce@^2.0.1, eslint-config-salesforce@^2.0.2: +eslint-config-salesforce@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/eslint-config-salesforce/-/eslint-config-salesforce-2.0.2.tgz#38eb2d8eb2824c66967ed9b45bc92082eba2f225" integrity sha512-3jbrI+QFu/KaQbPYIBxItB3okqUtA4EBCGiR6s2kcUMIZBLBBGAURW0k62f9WAv1EagR3eUoO0m9ru7LTj2F5Q== @@ -2203,7 +2040,7 @@ eslint-plugin-header@^3.1.1: resolved "https://registry.yarnpkg.com/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz#6ce512432d57675265fac47292b50d1eff11acd6" integrity sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg== -eslint-plugin-import@^2.27.5, eslint-plugin-import@^2.28.1, eslint-plugin-import@^2.29.0: +eslint-plugin-import@^2.29.0: version "2.29.0" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== @@ -2240,32 +2077,12 @@ eslint-plugin-jsdoc@^43.0.5: semver "^7.5.0" spdx-expression-parse "^3.0.1" -eslint-plugin-jsdoc@^46.8.2: - version "46.8.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.8.2.tgz#3e6b1c93e91e38fe01874d45da121b56393c54a5" - integrity sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ== - dependencies: - "@es-joy/jsdoccomment" "~0.40.1" - are-docs-informative "^0.0.2" - comment-parser "1.4.0" - debug "^4.3.4" - escape-string-regexp "^4.0.0" - esquery "^1.5.0" - is-builtin-module "^3.2.1" - semver "^7.5.4" - spdx-expression-parse "^3.0.1" - -eslint-plugin-prefer-arrow@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz#e7fbb3fa4cd84ff1015b9c51ad86550e55041041" - integrity sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ== - -eslint-plugin-sf-plugin@^1.16.11: - version "1.16.11" - resolved "https://registry.yarnpkg.com/eslint-plugin-sf-plugin/-/eslint-plugin-sf-plugin-1.16.11.tgz#cc30f8b3ac42d1ca3b33bec9b9d0d0eba1913e37" - integrity sha512-BjqiSahGVuYTVpbk4snbniIDQZeZIZzbnDpiwkfliTQKK/FOqzoDPPOEMHNGT9cVXQBC1xKkCedWYHNpTPAbaQ== +eslint-plugin-sf-plugin@^1.16.14: + version "1.16.14" + resolved "https://registry.yarnpkg.com/eslint-plugin-sf-plugin/-/eslint-plugin-sf-plugin-1.16.14.tgz#64138f6c597ad7b750d9d7615894e2fe504852ec" + integrity sha512-numvHHhJjExz4ojxK3O25G8Vh8pXtMgZzwEaKGGsKaOJFm4rmSS2NabmfkRPYX2NCO/xn4eNHm1iGTnnQywGvg== dependencies: - "@salesforce/core" "^5.3.9" + "@salesforce/core" "^5.3.17" "@typescript-eslint/utils" "^5.59.11" eslint-plugin-unicorn@^48.0.1: @@ -2456,7 +2273,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.11, fast-glob@^3.2.7, fast-glob@^3.2.9: +fast-glob@^3.2.11, fast-glob@^3.2.9: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -2874,11 +2691,6 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - hard-rejection@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" @@ -3304,15 +3116,11 @@ is-text-path@^1.0.1: text-extensions "^1.0.0" is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" + which-typed-array "^1.1.11" is-typedarray@^1.0.0: version "1.0.0" @@ -3492,32 +3300,6 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== -jsforce@^2.0.0-beta.27: - version "2.0.0-beta.27" - resolved "https://registry.yarnpkg.com/jsforce/-/jsforce-2.0.0-beta.27.tgz#ba822b18b77bea4529491060a9b07bc1009735ac" - integrity sha512-d9dDWWeHwayRKPo8FJBAIUyk8sNXGSHwdUjR6al3yK0YKci27Jc1XfNaQTxEAuymHQJVaCb1gxTKqmA4uznFdQ== - dependencies: - "@babel/runtime" "^7.12.5" - "@babel/runtime-corejs3" "^7.12.5" - "@types/node" "^12.19.9" - abort-controller "^3.0.0" - base64url "^3.0.1" - commander "^4.0.1" - core-js "^3.6.4" - csv-parse "^4.8.2" - csv-stringify "^5.3.4" - faye "^1.4.0" - form-data "^4.0.0" - fs-extra "^8.1.0" - https-proxy-agent "^5.0.0" - inquirer "^7.0.0" - multistream "^3.1.0" - node-fetch "^2.6.1" - open "^7.0.0" - regenerator-runtime "^0.13.3" - strip-ansi "^6.0.0" - xml2js "^0.5.0" - jsforce@^2.0.0-beta.28: version "2.0.0-beta.28" resolved "https://registry.yarnpkg.com/jsforce/-/jsforce-2.0.0-beta.28.tgz#5fd8d9b8e5efc798698793b147e00371f3d74e8f" @@ -3576,7 +3358,7 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.1.3, json5@^2.2.2: +json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -3804,18 +3586,6 @@ log-symbols@4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -lolex@^2.4.2: - version "2.7.5" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" - integrity sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q== - -lolex@^5.0.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" - integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== - dependencies: - "@sinonjs/commons" "^1.7.0" - loupe@^2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" @@ -3958,12 +3728,12 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" - integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== dependencies: - brace-expansion "^1.1.7" + brace-expansion "^2.0.1" minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" @@ -4000,37 +3770,29 @@ minimisted@^2.0.0: dependencies: minimist "^1.2.5" -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mocha@^9.1.3, mocha@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9" - integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== +mocha@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== dependencies: - "@ungap/promise-all-settled" "1.1.2" ansi-colors "4.1.1" browser-stdout "1.3.1" chokidar "3.5.3" - debug "4.3.3" + debug "4.3.4" diff "5.0.0" escape-string-regexp "4.0.0" find-up "5.0.0" glob "7.2.0" - growl "1.10.5" he "1.2.0" js-yaml "4.1.0" log-symbols "4.1.0" - minimatch "4.2.1" + minimatch "5.0.1" ms "2.1.3" - nanoid "3.3.1" + nanoid "3.3.3" serialize-javascript "6.0.0" strip-json-comments "3.1.1" supports-color "8.1.1" - which "2.0.2" - workerpool "6.2.0" + workerpool "6.2.1" yargs "16.2.0" yargs-parser "20.2.4" yargs-unparser "2.0.0" @@ -4074,10 +3836,10 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nanoid@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" - integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== natural-compare-lite@^1.4.0: version "1.4.0" @@ -4094,17 +3856,6 @@ netmask@^2.0.2: resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -nise@^1.3.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7" - integrity sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ== - dependencies: - "@sinonjs/formatio" "^3.2.1" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - lolex "^5.0.1" - path-to-regexp "^1.7.0" - nise@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/nise/-/nise-4.1.0.tgz#8fb75a26e90b99202fa1e63f448f58efbcdedaf6" @@ -4116,17 +3867,6 @@ nise@^4.1.0: just-extend "^4.0.2" path-to-regexp "^1.7.0" -nise@^5.0.1: - version "5.1.4" - resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.4.tgz#491ce7e7307d4ec546f5a659b2efe94a18b4bbc0" - integrity sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg== - dependencies: - "@sinonjs/commons" "^2.0.0" - "@sinonjs/fake-timers" "^10.0.2" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - path-to-regexp "^1.7.0" - no-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" @@ -4136,9 +3876,9 @@ no-case@^3.0.4: tslib "^2.0.3" node-fetch@^2.6.1: - version "2.6.9" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" - integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" @@ -4432,11 +4172,6 @@ pascal-case@^3.1.2: no-case "^3.0.4" tslib "^2.0.3" -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - path-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" @@ -4530,23 +4265,6 @@ pino-std-serializers@^6.0.0: resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz#d9a9b5f2b9a402486a5fc4db0a737570a860aab3" integrity sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA== -pino@^8.15.6: - version "8.16.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-8.16.0.tgz#2465012a1d11fa2e7a0545032f636e203990ae26" - integrity sha512-UUmvQ/7KTZt/vHjhRrnyS7h+J7qPBQnpG80V56xmIC+o9IqYmQOw/UIny9S9zYDfRBR0ClouCr464EkBMIT7Fw== - dependencies: - atomic-sleep "^1.0.0" - fast-redact "^3.1.1" - on-exit-leak-free "^2.1.0" - pino-abstract-transport v1.1.0 - pino-std-serializers "^6.0.0" - process-warning "^2.0.0" - quick-format-unescaped "^4.0.3" - real-require "^0.2.0" - safe-stable-stringify "^2.3.1" - sonic-boom "^3.7.0" - thread-stream "^2.0.0" - pino@^8.16.0: version "8.16.1" resolved "https://registry.yarnpkg.com/pino/-/pino-8.16.1.tgz#dcaf82764b1a27f24101317cdd6453e96290f1d9" @@ -4581,12 +4299,12 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^2.7.1, prettier@^2.8.8: +prettier@^2.8.8: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== -pretty-quick@^3.1.0, pretty-quick@^3.1.3: +pretty-quick@^3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.1.3.tgz#15281108c0ddf446675157ca40240099157b638e" integrity sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA== @@ -4956,11 +4674,6 @@ safe-stable-stringify@^2.3.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -samsam@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" - integrity sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg== - sax@>=0.6.0: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -5021,6 +4734,16 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -5112,31 +4835,6 @@ sinon@10.0.0: nise "^4.1.0" supports-color "^7.1.0" -sinon@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-10.0.1.tgz#0d1a13ecb86f658d15984f84273e57745b1f4c57" - integrity sha512-1rf86mvW4Mt7JitEIgmNaLXaWnrWd/UrVKZZlL+kbeOujXVf9fmC4kQEQ/YeHoiIA23PLNngYWK+dngIx/AumA== - dependencies: - "@sinonjs/commons" "^1.8.1" - "@sinonjs/fake-timers" "^7.0.4" - "@sinonjs/samsam" "^6.0.1" - diff "^4.0.2" - nise "^5.0.1" - supports-color "^7.1.0" - -sinon@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-5.1.1.tgz#19c59810ffb733ea6e76a28b94a71fc4c2f523b8" - integrity sha512-h/3uHscbt5pQNxkf7Y/Lb9/OM44YNCicHakcq73ncbrIS8lXg+ZGOZbtuU+/km4YnyiCYfQQEwANaReJz7KDfw== - dependencies: - "@sinonjs/formatio" "^2.0.0" - diff "^3.5.0" - lodash.get "^4.4.2" - lolex "^2.4.2" - nise "^1.3.3" - supports-color "^5.4.0" - type-detect "^4.0.8" - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -5343,7 +5041,7 @@ supports-color@8.1.1: dependencies: has-flag "^4.0.0" -supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -5439,20 +5137,7 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -"true-myth@^4.1.0": - version "4.1.1" - resolved "https://registry.yarnpkg.com/true-myth/-/true-myth-4.1.1.tgz#ff4ac9d5130276e34aa338757e2416ec19248ba2" - integrity sha512-rqy30BSpxPznbbTcAcci90oZ1YR4DqvKcNXNerG5gQBU2v4jk0cygheiul5J6ExIMrgDVuanv/MkGfqZbKrNNg== - -ts-morph@^13.0.1: - version "13.0.3" - resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-13.0.3.tgz#c0c51d1273ae2edb46d76f65161eb9d763444c1d" - integrity sha512-pSOfUMx8Ld/WUreoSzvMFQG5i9uEiWIsBYjpU9+TTASOeUa89j5HykomeqVULm1oqWtBdleI3KEFRLrlA3zGIw== - dependencies: - "@ts-morph/common" "~0.12.3" - code-block-writer "^11.0.0" - -ts-node@^10.0.0, ts-node@^10.8.1, ts-node@^10.9.1: +ts-node@^10.8.1, ts-node@^10.9.1: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== @@ -5483,18 +5168,6 @@ ts-patch@^3.0.2: semver "^7.3.8" strip-ansi "^6.0.1" -ts-prune@^0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/ts-prune/-/ts-prune-0.10.3.tgz#b6c71a525543b38dcf947a7d3adfb7f9e8b91f38" - integrity sha512-iS47YTbdIcvN8Nh/1BFyziyUqmjXz7GVzWu02RaZXqb+e/3Qe1B7IQ4860krOeCGUeJmterAlaM2FRH0Ue0hjw== - dependencies: - commander "^6.2.1" - cosmiconfig "^7.0.1" - json5 "^2.1.3" - lodash "^4.17.21" - "true-myth" "^4.1.0" - ts-morph "^13.0.1" - ts-retry-promise@^0.7.0, ts-retry-promise@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ts-retry-promise/-/ts-retry-promise-0.7.1.tgz#176d6eee6415f07b6c7c286d3657355e284a6906" @@ -5515,7 +5188,7 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.0.3, tslib@^2.6.1, tslib@^2.6.2: +tslib@^2.0.1, tslib@^2.0.3, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -5652,6 +5325,11 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -5780,24 +5458,17 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== -which-typed-array@^1.1.10: - version "1.1.11" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" - integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== +which-typed-array@^1.1.10, which-typed-array@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== dependencies: available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.4" for-each "^0.3.3" gopd "^1.0.1" has-tostringtag "^1.0.0" -which@2.0.2, which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -5805,6 +5476,13 @@ which@^1.3.1: dependencies: isexe "^2.0.0" +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + wireit@^0.14.1: version "0.14.1" resolved "https://registry.yarnpkg.com/wireit/-/wireit-0.14.1.tgz#83b63598503573db6722ad49b1fe15b57ee71890" @@ -5816,10 +5494,10 @@ wireit@^0.14.1: jsonc-parser "^3.0.0" proper-lockfile "^4.1.2" -workerpool@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" - integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== wrap-ansi@^6.2.0: version "6.2.0"