diff --git a/.github/workflows/test-and-release.yml b/.github/workflows/test-and-release.yml index 3054242346..4f7a8a9eaf 100644 --- a/.github/workflows/test-and-release.yml +++ b/.github/workflows/test-and-release.yml @@ -14,15 +14,13 @@ jobs: uses: dhis2/workflows-platform/.github/workflows/lint.yml@v1 test: uses: dhis2/workflows-platform/.github/workflows/test.yml@v1 - e2e: - uses: dhis2/workflows-platform/.github/workflows/legacy-e2e.yml@v1 - # Disabling tests for now - if: false - # Skips forks and dependabot PRs - # if: '!github.event.push.repository.fork' - secrets: inherit - with: - api_version: 41 + # e2e: + # uses: dhis2/workflows-platform/.github/workflows/legacy-e2e.yml@v1 + # # Skips forks and dependabot PRs + # if: '!github.event.push.repository.fork' + # secrets: inherit + # with: + # api_version: 41 release: needs: [lint-commits, lint, test] uses: dhis2/workflows-platform/.github/workflows/release.yml@v1 diff --git a/package.json b/package.json index d3156b0e9e..07381b40b1 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ }, "dependencies": { "@dhis2/app-runtime": "^3.14.5", - "@dhis2/multi-calendar-dates": "^1.3.2", + "@dhis2/multi-calendar-dates": "^2.1.3-alpha.3", "@dhis2/ui": "^10.1.11", "@dhis2/ui-forms": "7.16.3", "@tanstack/react-query": "4.24.10", @@ -79,6 +79,9 @@ "use-query-params": "1.2.3", "zustand": "4.1.5" }, + "resolutions": { + "@dhis2/multi-calendar-dates": "^2.1.3-alpha.3" + }, "engines": { "node": ">=14.0.0" }, diff --git a/src/context-selection/period-selector-bar-item/use-date-limit.test.js b/src/context-selection/period-selector-bar-item/use-date-limit.test.js index f0212b1ecc..6fc5511e04 100644 --- a/src/context-selection/period-selector-bar-item/use-date-limit.test.js +++ b/src/context-selection/period-selector-bar-item/use-date-limit.test.js @@ -386,55 +386,55 @@ describe('useDateLimit (time zones)', () => { }) }) -// describe.each([ -// ['2017-13-03', reversedPeriodTypesMapping.DAILY, 0, '2017-13-03'], -// ['2017-02-30', reversedPeriodTypesMapping.DAILY, 0, '2017-02-30'], -// ['2017-02-30', reversedPeriodTypesMapping.WEEKLY, 0, '2017-02-26'], -// ['2017-13-02', reversedPeriodTypesMapping.WEEKLY, 0, '2017-12-27'], -// ['2017-01-01', reversedPeriodTypesMapping.MONTHLY, 0, '2017-01-01'], -// ['2017-02-30', reversedPeriodTypesMapping.MONTHLY, 0, '2017-02-01'], -// ['2017-13-03', reversedPeriodTypesMapping.DAILY, 4, '2018-01-02'], -// ['2017-02-30', reversedPeriodTypesMapping.DAILY, 10, '2017-03-10'], -// ['2017-02-30', reversedPeriodTypesMapping.WEEKLY, 3, '2017-03-17'], -// ['2017-13-02', reversedPeriodTypesMapping.WEEKLY, 13, '2018-03-23'], -// ['2017-01-01', reversedPeriodTypesMapping.MONTHLY, 5, '2017-06-01'], -// ['2017-02-30', reversedPeriodTypesMapping.MONTHLY, 15, '2018-05-01'], -// ])( -// 'useDateLimit (ethiopian calendar)', -// // eslint-disable-next-line max-params -// (currentDate, periodType, openFuturePeriods, expectedDate) => { -// beforeEach(() => { -// useConfig.mockImplementation(() => ({ -// systemInfo: { calendar: 'ethiopian', timeZone: 'Etc/UTC' }, -// })) -// }) - -// afterEach(() => { -// jest.clearAllMocks() -// }) - -// it(`should be ${expectedDate} if current date: ${currentDate}, periodType: ${periodType}, openFuturePeriods: ${openFuturePeriods}`, () => { -// jest.spyOn( -// getNowInCalendarFunctions, -// 'getNowInCalendarString' -// ).mockImplementation(() => currentDate) -// useMetadata.mockImplementationOnce(() => ({ -// data: { -// dataSets: { -// dataSetId: { -// id: 'dataSetId', -// periodType, -// openFuturePeriods, -// }, -// }, -// }, -// })) - -// const { result } = renderHook(() => useDateLimit()) -// expect(result.current).toEqual(expectedDate) -// }) -// } -// ) +describe.each([ + ['2017-13-03', reversedPeriodTypesMapping.DAILY, 0, '2017-13-03'], + ['2017-02-30', reversedPeriodTypesMapping.DAILY, 0, '2017-02-30'], + ['2017-02-30', reversedPeriodTypesMapping.WEEKLY, 0, '2017-02-26'], + ['2017-13-02', reversedPeriodTypesMapping.WEEKLY, 0, '2017-12-27'], + ['2017-01-01', reversedPeriodTypesMapping.MONTHLY, 0, '2017-01-01'], + ['2017-02-30', reversedPeriodTypesMapping.MONTHLY, 0, '2017-02-01'], + ['2017-13-03', reversedPeriodTypesMapping.DAILY, 4, '2018-01-02'], + ['2017-02-30', reversedPeriodTypesMapping.DAILY, 10, '2017-03-10'], + ['2017-02-30', reversedPeriodTypesMapping.WEEKLY, 3, '2017-03-17'], + ['2017-13-02', reversedPeriodTypesMapping.WEEKLY, 13, '2018-03-23'], + ['2017-01-01', reversedPeriodTypesMapping.MONTHLY, 5, '2017-06-01'], + ['2017-02-30', reversedPeriodTypesMapping.MONTHLY, 15, '2018-05-01'], +])( + 'useDateLimit (ethiopian calendar)', + // eslint-disable-next-line max-params + (currentDate, periodType, openFuturePeriods, expectedDate) => { + beforeEach(() => { + useConfig.mockImplementation(() => ({ + systemInfo: { calendar: 'ethiopian', timeZone: 'Etc/UTC' }, + })) + }) + + afterEach(() => { + jest.clearAllMocks() + }) + + it(`should be ${expectedDate} if current date: ${currentDate}, periodType: ${periodType}, openFuturePeriods: ${openFuturePeriods}`, () => { + jest.spyOn( + getNowInCalendarFunctions, + 'getNowInCalendarString' + ).mockImplementation(() => currentDate) + useMetadata.mockImplementationOnce(() => ({ + data: { + dataSets: { + dataSetId: { + id: 'dataSetId', + periodType, + openFuturePeriods, + }, + }, + }, + })) + + const { result } = renderHook(() => useDateLimit()) + expect(result.current).toEqual(expectedDate) + }) + } +) describe.each([ ['2076-04-32', reversedPeriodTypesMapping.DAILY, 0, '2076-04-32'], diff --git a/src/context-selection/period-selector-bar-item/use-periods.test.js b/src/context-selection/period-selector-bar-item/use-periods.test.js index 6d6acc2c87..ca5d896fa9 100644 --- a/src/context-selection/period-selector-bar-item/use-periods.test.js +++ b/src/context-selection/period-selector-bar-item/use-periods.test.js @@ -288,7 +288,7 @@ describe('usePeriods', () => { }) }) -describe.skip('usePeriods (ethiopian)', () => { +describe('usePeriods (ethiopian)', () => { beforeEach(() => { jest.useFakeTimers('modern') jest.setSystemTime(new Date('2024-07-15T12:00:00').getTime()) diff --git a/src/data-workspace/data-details-sidebar/audit-log.test.jsx b/src/data-workspace/data-details-sidebar/audit-log.test.jsx index 7b8def7e30..af16d98559 100644 --- a/src/data-workspace/data-details-sidebar/audit-log.test.jsx +++ b/src/data-workspace/data-details-sidebar/audit-log.test.jsx @@ -164,7 +164,7 @@ describe('', () => { ).toBeInTheDocument() }) - it.skip('renders the date/datetime values in system calendar (ethiopian)', async () => { + it('renders the date/datetime values in system calendar (ethiopian)', async () => { useConfig.mockImplementation(() => ({ systemInfo: { calendar: 'ethiopian', diff --git a/src/data-workspace/inputs/date-input.test.jsx b/src/data-workspace/inputs/date-input.test.jsx index d17c6e8a6d..5075e7d259 100644 --- a/src/data-workspace/inputs/date-input.test.jsx +++ b/src/data-workspace/inputs/date-input.test.jsx @@ -202,7 +202,7 @@ describe('date input field', () => { expect(calendarInput.value).toBe('2078-01-09') }) - it.skip('renders system set calendar, i.e. ethiopian', async () => { + it('renders system set calendar, i.e. ethiopian', async () => { useConfig.mockReturnValue({ systemInfo: { calendar: 'ethiopian' }, }) @@ -223,7 +223,7 @@ describe('date input field', () => { expect(mutate.mock.calls[0][0]).toHaveProperty('value', '2024-07-25') }) - it.skip('populates the ethiopian equivalent of the persisted ISO date', async () => { + it('populates the ethiopian equivalent of the persisted ISO date', async () => { jest.setSystemTime(new Date('2024-07-25T09:05:00.000Z')) useConfig.mockReturnValue({ diff --git a/src/data-workspace/inputs/datetime-input.test.jsx b/src/data-workspace/inputs/datetime-input.test.jsx index 27a9f7f0ec..9b5fcb750e 100644 --- a/src/data-workspace/inputs/datetime-input.test.jsx +++ b/src/data-workspace/inputs/datetime-input.test.jsx @@ -205,7 +205,7 @@ describe('date input field', () => { expect(mutate.mock.calls[0][0]).toHaveProperty('value', '') }) - it.skip('posts ISO date to backend with ethiopian calendar', async () => { + it('posts ISO date to backend with ethiopian calendar', async () => { // this is 2016-02-30 Ethopian jest.setSystemTime(new Date('2023-11-10T09:05:00.000Z')) const user = userEvent.setup({ delay: null }) @@ -259,7 +259,7 @@ describe('date input field', () => { ) }) - it.skip('populates the ethiopian equivalent of the persisted ISO date', async () => { + it('populates the ethiopian equivalent of the persisted ISO date', async () => { jest.setSystemTime(new Date('2024-07-25T09:05:00.000Z')) useConfig.mockReturnValue({ @@ -335,7 +335,7 @@ describe('date input field', () => { systemInfo: { calendar: 'nepali' }, }) - // 2021-04-22 ISO = 2078-01-09 nepali + // 2021-04-22 ISO = 2078-01-09 ethiopian const { getByRole, getByTestId } = render( ) diff --git a/src/shared/date/date-text.test.jsx b/src/shared/date/date-text.test.jsx index e28b415ace..b7d0ee8957 100644 --- a/src/shared/date/date-text.test.jsx +++ b/src/shared/date/date-text.test.jsx @@ -76,30 +76,30 @@ describe('DateText', () => { null, '2024-10-14 19:10', ], - // [ - // '2024-10-14T19:10:57.836', - // 'yyyy-mm-dd', - // 'ethiopian', - // 'Etc/UTC', - // false, - // '2017-02-04 19:10', - // ], - // [ - // '2024-10-14T19:10:57.836', - // 'yyyy-mm-dd', - // 'ethiopian', - // 'Africa/Addis_Ababa', - // false, - // '2017-02-04 16:10', - // ], - // [ - // '2024-10-14T19:10:57.836', - // 'yyyy-mm-dd', - // 'ethiopian', - // 'Africa/Addis_Ababa', - // true, - // '2017-02-04 16:10 (UTC)', - // ], + [ + '2024-10-14T19:10:57.836', + 'yyyy-mm-dd', + 'ethiopian', + 'Etc/UTC', + false, + '2017-02-04 19:10', + ], + [ + '2024-10-14T19:10:57.836', + 'yyyy-mm-dd', + 'ethiopian', + 'Africa/Addis_Ababa', + false, + '2017-02-04 16:10', + ], + [ + '2024-10-14T19:10:57.836', + 'yyyy-mm-dd', + 'ethiopian', + 'Africa/Addis_Ababa', + true, + '2017-02-04 16:10 (UTC)', + ], [ '2024-10-14T19:10:57.836', 'yyyy-mm-dd', diff --git a/src/shared/date/date-utils.test.js b/src/shared/date/date-utils.test.js index 4c8d53ee7d..7b37bd3a5a 100644 --- a/src/shared/date/date-utils.test.js +++ b/src/shared/date/date-utils.test.js @@ -100,7 +100,7 @@ describe('isDateALessThanDateB (nepali)', () => { }) }) -describe.skip('isDateALessThanDateB (ethiopian)', () => { +describe('isDateALessThanDateB (ethiopian)', () => { beforeEach(() => { jest.spyOn(console, 'error').mockImplementation(jest.fn()) }) @@ -142,7 +142,7 @@ describe.skip('isDateALessThanDateB (ethiopian)', () => { }) }) -describe.skip('isDateALessThanDateB (mixed calendars)', () => { +describe('isDateALessThanDateB (mixed calendars)', () => { beforeEach(() => { jest.spyOn(console, 'error').mockImplementation(jest.fn()) }) @@ -280,7 +280,7 @@ describe('addDaysToDateString', () => { expect(result).toBe('2023-03-20T12:00:00') }) - it.skip('works with ethiopian calendar', () => { + it('works with ethiopian calendar', () => { const startDateString = '2016-02-30' const days = 5 const calendar = 'ethiopian' @@ -315,7 +315,7 @@ describe('getRelativeTime', () => { jest.useRealTimers() }) - it.skip('works with ethiopian calendar', () => { + it('works with ethiopian calendar', () => { // 2024-06-15 Ethiopian = 2032-02-23 (i.e. in 8 years) const startDate = '2024-06-15T13:00:00' const calendar = 'ethiopian' diff --git a/src/shared/date/get-now-in-calendar.test.js b/src/shared/date/get-now-in-calendar.test.js index 011e336b80..a005a94054 100644 --- a/src/shared/date/get-now-in-calendar.test.js +++ b/src/shared/date/get-now-in-calendar.test.js @@ -43,7 +43,7 @@ describe('getNowInCalendarString', () => { expect(result).toBe('2081-03-01T12:00:00') }) - it.skip('handles ethiopian calendar', () => { + it('handles ethiopian calendar', () => { const long = true const calendar = 'ethiopian' const result = getNowInCalendarString({ long, calendar }) diff --git a/src/shared/locked-status/use-check-lock-status.test.js b/src/shared/locked-status/use-check-lock-status.test.js index 53e7e1111b..15d8ab27fd 100644 --- a/src/shared/locked-status/use-check-lock-status.test.js +++ b/src/shared/locked-status/use-check-lock-status.test.js @@ -134,7 +134,7 @@ describe('useCheckLockStatus', () => { }) }) - it.skip('locks if org unit closes before period ends (ethiopian calendar)', () => { + it('locks if org unit closes before period ends (ethiopian calendar)', () => { const setLockedStatusMocked = jest.fn() jest.spyOn( useLockedContextModule, @@ -481,7 +481,7 @@ describe('useCheckLockStatus', () => { // this test confirms that we do not have functionality to add days to non-gregory days // i.e., we'd like this test to fail eventually when we add ability to add days to non-gregory dates - it.skip('does not set lockDate based on expiry days if calendar is non-gregory ', () => { + it('does not set lockDate based on expiry days if calendar is non-gregory ', () => { jest.useFakeTimers('modern') jest.setSystemTime(new Date('2024-02-04')) useConfig.mockImplementationOnce(() => ({ diff --git a/yarn.lock b/yarn.lock index f2b0f11803..2646074461 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3292,23 +3292,16 @@ i18next "^10.3" moment "^2.24.0" -"@dhis2/multi-calendar-dates@2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@dhis2/multi-calendar-dates/-/multi-calendar-dates-2.1.2.tgz#c3dd01e358c3dda4354c6722bb72e077b3ddd9b8" - integrity sha512-7/EuYZFi266QwyRpK+s79iEiwdOUVBwM+QjKwNUHN3zdYMDmQcWLTo5TujJFg1XnnQ8UhdiRqESq5rgoJkM2fQ== - dependencies: - "@dhis2/d2-i18n" "^1.1.3" - "@js-temporal/polyfill" "0.4.3" - classnames "^2.3.2" - -"@dhis2/multi-calendar-dates@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@dhis2/multi-calendar-dates/-/multi-calendar-dates-1.3.2.tgz#34e5896f7fdfb761a2ee6035d848cba00446cde5" - integrity sha512-H37EptumkqZeHUpbR4wl3y2NZjeipxUNUI2VaHX28z2fbVD7O9H+k1InSskeP5nNWzTLMdPAM4lt/zQP8oRbrg== +"@dhis2/multi-calendar-dates@2.1.2", "@dhis2/multi-calendar-dates@^2.1.3-alpha.3": + version "2.1.3-alpha.3" + resolved "https://registry.yarnpkg.com/@dhis2/multi-calendar-dates/-/multi-calendar-dates-2.1.3-alpha.3.tgz#c082c383d05ee2f053ce6fe6ebaf281015f99b1a" + integrity sha512-cdG9F1MkcQgBG8udnfpUeZ+gat/SSb1b6jDkXNPjmcqNGn4hqjAI7yuKqLmnk1li5ntrWHZ2ylLDSFrRwDRALA== dependencies: "@dhis2/d2-i18n" "^1.1.3" "@js-temporal/polyfill" "0.4.3" classnames "^2.3.2" + patch-package "^8.0.1" + postinstall-postinstall "^2.1.0" "@dhis2/prop-types@^3.0.0-beta.1", "@dhis2/prop-types@^3.1.2": version "3.1.2" @@ -6050,7 +6043,7 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.2.0: +ci-info@^3.2.0, ci-info@^3.7.0: version "3.9.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== @@ -8103,6 +8096,13 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +find-yarn-workspace-root@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" + integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== + dependencies: + micromatch "^4.0.2" + flat-cache@^3.0.4: version "3.2.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" @@ -9250,6 +9250,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-accessor-descriptor "^1.0.1" is-data-descriptor "^1.0.1" +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -9555,6 +9560,13 @@ is-windows@^1.0.1, is-windows@^1.0.2: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== +is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + is-yarn-global@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" @@ -10227,6 +10239,17 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +json-stable-stringify@^1.0.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.3.0.tgz#8903cfac42ea1a0f97f35d63a4ce0518f0cc6a70" + integrity sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.4" + isarray "^2.0.5" + jsonify "^0.0.1" + object-keys "^1.1.1" + json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -10260,6 +10283,11 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonify@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== + jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" @@ -10340,6 +10368,13 @@ kind-of@^6.0.2, kind-of@^6.0.3: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +klaw-sync@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" + integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== + dependencies: + graceful-fs "^4.1.11" + known-css-properties@^0.35.0: version "0.35.0" resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.35.0.tgz#f6f8e40ab4e5700fa32f5b2ef5218a56bc853bd6" @@ -10727,7 +10762,7 @@ micromatch@^3.1.10: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.4, micromatch@^4.0.8: +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== @@ -11204,6 +11239,14 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +open@^7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + optionator@^0.9.3: version "0.9.4" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" @@ -11376,6 +11419,26 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== +patch-package@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-8.0.1.tgz#79d02f953f711e06d1f8949c8a13e5d3d7ba1a60" + integrity sha512-VsKRIA8f5uqHQ7NGhwIna6Bx6D9s/1iXlA1hthBVBEbkq+t4kXD0HHt+rJhf/Z+Ci0F/HCB2hvn0qLdLG+Qxlw== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + chalk "^4.1.2" + ci-info "^3.7.0" + cross-spawn "^7.0.3" + find-yarn-workspace-root "^2.0.0" + fs-extra "^10.0.0" + json-stable-stringify "^1.0.2" + klaw-sync "^6.0.0" + minimist "^1.2.6" + open "^7.4.2" + semver "^7.5.3" + slash "^2.0.0" + tmp "^0.2.4" + yaml "^2.2.2" + path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -11598,6 +11661,11 @@ postcss@^8.4.33, postcss@^8.4.38, postcss@^8.4.43, postcss@^8.5.3: picocolors "^1.1.1" source-map-js "^1.2.1" +postinstall-postinstall@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3" + integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -12674,6 +12742,11 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -13503,6 +13576,11 @@ tmp@^0.2.1, tmp@~0.2.1: resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== +tmp@^0.2.4: + version "0.2.5" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8" + integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow== + tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -14646,6 +14724,11 @@ yaml@1.10.2, yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.2.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.3.tgz#a0d6bd2efb3dd03c59370223701834e60409bd7d" + integrity sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg== + yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"