diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e2f83577c65..4e2590d5c19 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,6 +17,7 @@ jobs: "linode-manager", "@linode/api-v4", "@linode/queries", + "@linode/shared", "@linode/ui", "@linode/utilities", "@linode/validation", @@ -233,6 +234,30 @@ jobs: - run: pnpm install --frozen-lockfile - run: pnpm run --filter @linode/queries test + test-shared: + runs-on: ubuntu-latest + needs: build-sdk + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + run_install: false + version: 10 + - uses: actions/setup-node@v4 + with: + node-version: "20.17" + cache: "pnpm" + - uses: actions/download-artifact@v4 + with: + name: packages-api-v4-lib + path: packages/api-v4/lib + - uses: actions/download-artifact@v4 + with: + name: packages-validation-lib + path: packages/validation/lib + - run: pnpm install --frozen-lockfile + - run: pnpm run --filter @linode/shared test + typecheck-ui: runs-on: ubuntu-latest needs: build-sdk @@ -289,6 +314,30 @@ jobs: - run: pnpm install --frozen-lockfile - run: pnpm run --filter @linode/queries typecheck + typecheck-shared: + runs-on: ubuntu-latest + needs: build-sdk + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + run_install: false + version: 10 + - uses: actions/setup-node@v4 + with: + node-version: "20.17" + cache: "pnpm" + - uses: actions/download-artifact@v4 + with: + name: packages-api-v4-lib + path: packages/api-v4/lib + - uses: actions/download-artifact@v4 + with: + name: packages-validation-lib + path: packages/validation/lib + - run: pnpm install --frozen-lockfile + - run: pnpm run --filter @linode/shared typecheck + typecheck-manager: runs-on: ubuntu-latest needs: build-sdk diff --git a/README.md b/README.md index cc7d036486a..991b48cfd68 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ This repository is home to the Akamai Connected **[Cloud Manager](https://cloud. - [`@linode/api-v4`](packages/api-v4/) - [`@linode/queries`](packages/queries/) - [`@linode/search`](packages/search/) +- [`@linode/shared`](packages/shared/) - [`@linode/ui`](packages/ui/) - [`@linode/utilities`](packages/utilities/) - [`@linode/validation`](packages/validation/) diff --git a/package.json b/package.json index 63c9c5dd3f5..9a15c097c27 100644 --- a/package.json +++ b/package.json @@ -19,8 +19,8 @@ "build:analyze": "pnpm run --filter linode-manager build:analyze", "bootstrap": "pnpm install:all && pnpm build:validation && pnpm build:sdk", "up:expose": "npm_config_package_import_method=clone-or-copy pnpm install:all && pnpm build:validation && pnpm build:sdk && pnpm start:all:expose", - "dev": "concurrently -n api-v4,validation,ui,utilities,queries,manager -c blue,yellow,magenta,cyan,gray,green \"pnpm run --filter @linode/api-v4 start\" \"pnpm run --filter @linode/validation start\" \"pnpm run --filter @linode/ui start\" \"pnpm run --filter @linode/utilities start\" \"pnpm run --filter @linode/queries start\" \"pnpm run --filter linode-manager start\"", - "start:all:expose": "concurrently -n api-v4,validation,ui,utilities,queries,manager -c blue,yellow,magenta,cyan,gray,green \"pnpm run --filter @linode/api-v4 start\" \"pnpm run --filter @linode/validation start\" \"pnpm run --filter @linode/ui start\" \"pnpm run --filter @linode/utilities start\" \"pnpm run --filter @linode/queries start\" \"pnpm run --filter linode-manager start:expose\"", + "dev": "concurrently -n api-v4,validation,ui,utilities,queries,shared,manager -c blue,yellow,magenta,cyan,gray,blue,green \"pnpm run --filter @linode/api-v4 start\" \"pnpm run --filter @linode/validation start\" \"pnpm run --filter @linode/ui start\" \"pnpm run --filter @linode/utilities start\" \"pnpm run --filter @linode/queries start\" \"pnpm run --filter @linode/shared start\" \"pnpm run --filter linode-manager start\"", + "start:all:expose": "concurrently -n api-v4,validation,ui,utilities,queries,shared,manager -c blue,yellow,magenta,cyan,gray,blue,green \"pnpm run --filter @linode/api-v4 start\" \"pnpm run --filter @linode/validation start\" \"pnpm run --filter @linode/ui start\" \"pnpm run --filter @linode/utilities start\" \"pnpm run --filter @linode/queries start\" \"pnpm run --filter @linode/shared start\" \"pnpm run --filter linode-manager start:expose\"", "start:manager": "pnpm --filter linode-manager start", "start:manager:ci": "pnpm run --filter linode-manager start:ci", "docs": "bunx vitepress@1.0.0-rc.44 dev docs", diff --git a/packages/manager/.changeset/pr-11844-removed-1742228203939.md b/packages/manager/.changeset/pr-11844-removed-1742228203939.md new file mode 100644 index 00000000000..6297dcc8964 --- /dev/null +++ b/packages/manager/.changeset/pr-11844-removed-1742228203939.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Removed +--- + +Move `LinodeSelect` to new `shared` package ([#11844](https://github.com/linode/manager/pull/11844)) diff --git a/packages/manager/.storybook/main.ts b/packages/manager/.storybook/main.ts index 09b512e1a99..b1270f5ba05 100644 --- a/packages/manager/.storybook/main.ts +++ b/packages/manager/.storybook/main.ts @@ -5,6 +5,7 @@ const config: StorybookConfig = { stories: [ '../src/components/**/*.@(mdx|stories.@(js|ts|jsx|tsx))', '../src/features/**/*.@(mdx|stories.@(js|ts|jsx|tsx))', + '../../shared/src/**/*.@(mdx|stories.@(js|ts|jsx|tsx))', '../../ui/src/components/**/*.@(mdx|stories.@(js|ts|jsx|tsx))', ], addons: [ diff --git a/packages/manager/cypress/e2e/core/account/account-linode-managed.spec.ts b/packages/manager/cypress/e2e/core/account/account-linode-managed.spec.ts index ba7e837cebc..118eb70095d 100644 --- a/packages/manager/cypress/e2e/core/account/account-linode-managed.spec.ts +++ b/packages/manager/cypress/e2e/core/account/account-linode-managed.spec.ts @@ -2,6 +2,7 @@ * @file Integration tests for Cloud Manager account enable Linode Managed flows. */ +import { linodeFactory } from '@linode/utilities'; import { visitUrlWithManagedDisabled, visitUrlWithManagedEnabled, @@ -21,7 +22,6 @@ import { ui } from 'support/ui'; import { chooseRegion } from 'support/util/regions'; import { accountFactory } from 'src/factories/account'; -import { linodeFactory } from 'src/factories/linodes'; import { profileFactory } from 'src/factories/profile'; import type { Linode } from '@linode/api-v4'; diff --git a/packages/manager/cypress/e2e/core/account/service-transfer.spec.ts b/packages/manager/cypress/e2e/core/account/service-transfer.spec.ts index ddb33dc2639..be0c71fc660 100644 --- a/packages/manager/cypress/e2e/core/account/service-transfer.spec.ts +++ b/packages/manager/cypress/e2e/core/account/service-transfer.spec.ts @@ -3,6 +3,7 @@ */ import { getProfile } from '@linode/api-v4/lib/profile'; +import { createLinodeRequestFactory, linodeFactory } from '@linode/utilities'; import { authenticate } from 'support/api/authentication'; import { visitUrlWithManagedEnabled } from 'support/api/managed'; import { @@ -21,13 +22,15 @@ import { pollLinodeStatus } from 'support/util/polling'; import { randomLabel, randomUuid } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { linodeFactory } from 'src/factories'; import { entityTransferFactory } from 'src/factories/entityTransfers'; -import { createLinodeRequestFactory } from 'src/factories/linodes'; import { formatDate } from 'src/utilities/formatDate'; -import type { EntityTransferStatus } from '@linode/api-v4'; -import type { EntityTransfer, Linode, Profile } from '@linode/api-v4'; +import type { + EntityTransfer, + EntityTransferStatus, + Linode, + Profile, +} from '@linode/api-v4'; // Service transfer empty state message. const serviceTransferEmptyState = 'No data to display.'; diff --git a/packages/manager/cypress/e2e/core/cloudpulse/dbaas-widgets-verification.spec.ts b/packages/manager/cypress/e2e/core/cloudpulse/dbaas-widgets-verification.spec.ts index e56c52232f3..1b877d9f04b 100644 --- a/packages/manager/cypress/e2e/core/cloudpulse/dbaas-widgets-verification.spec.ts +++ b/packages/manager/cypress/e2e/core/cloudpulse/dbaas-widgets-verification.spec.ts @@ -1,7 +1,7 @@ /** * @file Integration Tests for CloudPulse Dbass Dashboard. */ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import { widgetDetails } from 'support/constants/widgets'; import { mockGetAccount } from 'support/intercepts/account'; import { @@ -27,7 +27,6 @@ import { dashboardMetricFactory, databaseFactory, kubeLinodeFactory, - linodeFactory, widgetFactory, } from 'src/factories'; import { generateGraphData } from 'src/features/CloudPulse/Utils/CloudPulseWidgetUtils'; diff --git a/packages/manager/cypress/e2e/core/cloudpulse/linode-widget-verification.spec.ts b/packages/manager/cypress/e2e/core/cloudpulse/linode-widget-verification.spec.ts index b3323f2b5b3..1b76d04fc66 100644 --- a/packages/manager/cypress/e2e/core/cloudpulse/linode-widget-verification.spec.ts +++ b/packages/manager/cypress/e2e/core/cloudpulse/linode-widget-verification.spec.ts @@ -1,7 +1,7 @@ /** * @file Integration Tests for CloudPulse Linode Dashboard. */ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import { widgetDetails } from 'support/constants/widgets'; import { mockGetAccount } from 'support/intercepts/account'; import { @@ -25,7 +25,6 @@ import { dashboardFactory, dashboardMetricFactory, kubeLinodeFactory, - linodeFactory, widgetFactory, } from 'src/factories'; import { generateGraphData } from 'src/features/CloudPulse/Utils/CloudPulseWidgetUtils'; diff --git a/packages/manager/cypress/e2e/core/firewalls/create-firewall.spec.ts b/packages/manager/cypress/e2e/core/firewalls/create-firewall.spec.ts index 26e8b9f1bdf..6e2956c4c98 100644 --- a/packages/manager/cypress/e2e/core/firewalls/create-firewall.spec.ts +++ b/packages/manager/cypress/e2e/core/firewalls/create-firewall.spec.ts @@ -1,3 +1,4 @@ +import { createLinodeRequestFactory } from '@linode/utilities'; import { authenticate } from 'support/api/authentication'; import { interceptCreateFirewall } from 'support/intercepts/firewalls'; import { ui } from 'support/ui'; @@ -5,9 +6,6 @@ import { cleanUp } from 'support/util/cleanup'; import { createTestLinode } from 'support/util/linodes'; import { randomLabel, randomString } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; - -import { createLinodeRequestFactory } from 'src/factories/linodes'; - authenticate(); describe.skip('create firewall', () => { before(() => { diff --git a/packages/manager/cypress/e2e/core/firewalls/migrate-linode-with-firewall.spec.ts b/packages/manager/cypress/e2e/core/firewalls/migrate-linode-with-firewall.spec.ts index 6856938f28e..0070a252647 100644 --- a/packages/manager/cypress/e2e/core/firewalls/migrate-linode-with-firewall.spec.ts +++ b/packages/manager/cypress/e2e/core/firewalls/migrate-linode-with-firewall.spec.ts @@ -1,10 +1,10 @@ /* eslint-disable sonarjs/no-duplicate-string */ -import { regionFactory } from '@linode/utilities'; import { createLinodeRequestFactory, - firewallFactory, linodeFactory, -} from '@src/factories'; + regionFactory, +} from '@linode/utilities'; +import { firewallFactory } from '@src/factories'; import { authenticate } from 'support/api/authentication'; import { interceptCreateFirewall, @@ -21,8 +21,7 @@ import { ui } from 'support/ui'; import { cleanUp } from 'support/util/cleanup'; import { createTestLinode } from 'support/util/linodes'; import { randomLabel, randomNumber } from 'support/util/random'; -import { extendRegion } from 'support/util/regions'; -import { chooseRegions } from 'support/util/regions'; +import { chooseRegions, extendRegion } from 'support/util/regions'; import type { Linode, Region } from '@linode/api-v4'; diff --git a/packages/manager/cypress/e2e/core/firewalls/update-firewall.spec.ts b/packages/manager/cypress/e2e/core/firewalls/update-firewall.spec.ts index e3422517b7e..e574a469199 100644 --- a/packages/manager/cypress/e2e/core/firewalls/update-firewall.spec.ts +++ b/packages/manager/cypress/e2e/core/firewalls/update-firewall.spec.ts @@ -1,4 +1,5 @@ import { createFirewall, createLinode } from '@linode/api-v4'; +import { createLinodeRequestFactory } from '@linode/utilities'; import { authenticate } from 'support/api/authentication'; import { interceptUpdateFirewallLinodes, @@ -10,7 +11,6 @@ import { randomItem, randomLabel, randomString } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; import { - createLinodeRequestFactory, firewallFactory, firewallRuleFactory, firewallRulesFactory, diff --git a/packages/manager/cypress/e2e/core/general/gdpr-agreement.spec.ts b/packages/manager/cypress/e2e/core/general/gdpr-agreement.spec.ts index 529867889bc..18755ff73db 100644 --- a/packages/manager/cypress/e2e/core/general/gdpr-agreement.spec.ts +++ b/packages/manager/cypress/e2e/core/general/gdpr-agreement.spec.ts @@ -1,5 +1,4 @@ -import { regionFactory } from '@linode/utilities'; -import { linodeFactory } from '@src/factories'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import { mockGetAccountAgreements } from 'support/intercepts/account'; import { mockCreateLinode } from 'support/intercepts/linodes'; import { mockGetRegions } from 'support/intercepts/regions'; diff --git a/packages/manager/cypress/e2e/core/helpAndSupport/open-support-ticket.spec.ts b/packages/manager/cypress/e2e/core/helpAndSupport/open-support-ticket.spec.ts index 2efb32ab3d2..5d81c61c9d8 100644 --- a/packages/manager/cypress/e2e/core/helpAndSupport/open-support-ticket.spec.ts +++ b/packages/manager/cypress/e2e/core/helpAndSupport/open-support-ticket.spec.ts @@ -1,5 +1,6 @@ // must turn off sort-objects rule in this file bc mockTicket.description is set by formatDescription fn in which attribute order is nonalphabetical and affects test result /* eslint-disable perfectionist/sort-objects */ +import { linodeFactory } from '@linode/utilities'; /* eslint-disable sonarjs/no-duplicate-string */ import 'cypress-file-upload'; import { mockGetAccount } from 'support/intercepts/account'; @@ -33,7 +34,6 @@ import { chooseRegion } from 'support/util/regions'; import { accountFactory, domainFactory, - linodeFactory, supportTicketFactory, } from 'src/factories'; import { diff --git a/packages/manager/cypress/e2e/core/helpAndSupport/support-tickets-landing-page.spec.ts b/packages/manager/cypress/e2e/core/helpAndSupport/support-tickets-landing-page.spec.ts index d1dbab44d9b..48f2f3c4250 100644 --- a/packages/manager/cypress/e2e/core/helpAndSupport/support-tickets-landing-page.spec.ts +++ b/packages/manager/cypress/e2e/core/helpAndSupport/support-tickets-landing-page.spec.ts @@ -1,4 +1,4 @@ -import { linodeConfigInterfaceFactory } from '@linode/utilities'; +import { linodeConfigInterfaceFactory, linodeFactory } from '@linode/utilities'; import { mockGetLinodeConfigs } from 'support/intercepts/configs'; import { mockAppendFeatureFlags } from 'support/intercepts/feature-flags'; import { @@ -22,7 +22,6 @@ import { import { entityFactory, linodeConfigFactory, - linodeFactory, supportTicketFactory, volumeFactory, } from 'src/factories'; diff --git a/packages/manager/cypress/e2e/core/images/create-linode-from-image.spec.ts b/packages/manager/cypress/e2e/core/images/create-linode-from-image.spec.ts index efcf8d1224f..22e776ed49e 100644 --- a/packages/manager/cypress/e2e/core/images/create-linode-from-image.spec.ts +++ b/packages/manager/cypress/e2e/core/images/create-linode-from-image.spec.ts @@ -1,4 +1,5 @@ -import { imageFactory, linodeFactory } from '@src/factories'; +import { linodeFactory } from '@linode/utilities'; +import { imageFactory } from '@src/factories'; import { mockGetAllImages } from 'support/intercepts/images'; import { ui } from 'support/ui'; import { apiMatcher } from 'support/util/intercepts'; diff --git a/packages/manager/cypress/e2e/core/images/smoke-create-image.spec.ts b/packages/manager/cypress/e2e/core/images/smoke-create-image.spec.ts index 1c469ca07a4..00d9f4c319a 100644 --- a/packages/manager/cypress/e2e/core/images/smoke-create-image.spec.ts +++ b/packages/manager/cypress/e2e/core/images/smoke-create-image.spec.ts @@ -1,3 +1,4 @@ +import { linodeFactory } from '@linode/utilities'; import { mockGetUser } from 'support/intercepts/account'; import { mockGetEvents } from 'support/intercepts/events'; import { mockCreateImage } from 'support/intercepts/images'; @@ -13,7 +14,6 @@ import { accountUserFactory, eventFactory, grantsFactory, - linodeFactory, profileFactory, } from 'src/factories'; import { linodeDiskFactory } from 'src/factories/disk'; diff --git a/packages/manager/cypress/e2e/core/kubernetes/lke-create.spec.ts b/packages/manager/cypress/e2e/core/kubernetes/lke-create.spec.ts index 920ad23698b..d9efd24c5df 100644 --- a/packages/manager/cypress/e2e/core/kubernetes/lke-create.spec.ts +++ b/packages/manager/cypress/e2e/core/kubernetes/lke-create.spec.ts @@ -1,7 +1,12 @@ /** * @file LKE creation end-to-end tests. */ -import { pluralize, regionFactory } from '@linode/utilities'; +import { + dedicatedTypeFactory, + linodeTypeFactory, + pluralize, + regionFactory, +} from '@linode/utilities'; import { dcPricingDocsLabel, dcPricingDocsUrl, @@ -38,18 +43,16 @@ import { } from 'support/intercepts/regions'; import { ui } from 'support/ui'; import { randomItem, randomLabel, randomNumber } from 'support/util/random'; -import { getRegionById } from 'support/util/regions'; -import { chooseRegion } from 'support/util/regions'; +import { chooseRegion, getRegionById } from 'support/util/regions'; -import { accountBetaFactory, lkeEnterpriseTypeFactory } from 'src/factories'; import { + accountBetaFactory, accountFactory, - dedicatedTypeFactory, kubeLinodeFactory, kubernetesClusterFactory, kubernetesControlPlaneACLFactory, kubernetesControlPlaneACLOptionsFactory, - linodeTypeFactory, + lkeEnterpriseTypeFactory, lkeHighAvailabilityTypeFactory, nodePoolFactory, } from 'src/factories'; diff --git a/packages/manager/cypress/e2e/core/kubernetes/lke-update.spec.ts b/packages/manager/cypress/e2e/core/kubernetes/lke-update.spec.ts index 0f87c101f01..042570fcc64 100644 --- a/packages/manager/cypress/e2e/core/kubernetes/lke-update.spec.ts +++ b/packages/manager/cypress/e2e/core/kubernetes/lke-update.spec.ts @@ -1,3 +1,4 @@ +import { linodeFactory, linodeTypeFactory } from '@linode/utilities'; import { DateTime } from 'luxon'; import { dcPricingMockLinodeTypes } from 'support/constants/dc-specific-pricing'; import { latestKubernetesVersion } from 'support/constants/lke'; @@ -32,8 +33,7 @@ import { } from 'support/intercepts/lke'; import { ui } from 'support/ui'; import { buildArray } from 'support/util/arrays'; -import { randomString } from 'support/util/random'; -import { randomIp, randomLabel } from 'support/util/random'; +import { randomIp, randomLabel, randomString } from 'support/util/random'; import { getRegionById } from 'support/util/regions'; import { @@ -42,8 +42,6 @@ import { kubernetesClusterFactory, kubernetesControlPlaneACLFactory, kubernetesControlPlaneACLOptionsFactory, - linodeFactory, - linodeTypeFactory, nodePoolFactory, } from 'src/factories'; import { extendType } from 'src/utilities/extendType'; diff --git a/packages/manager/cypress/e2e/core/linodes/backup-linode.spec.ts b/packages/manager/cypress/e2e/core/linodes/backup-linode.spec.ts index ab5ea1349d0..ada334e759f 100644 --- a/packages/manager/cypress/e2e/core/linodes/backup-linode.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/backup-linode.spec.ts @@ -1,10 +1,10 @@ /* eslint-disable sonarjs/no-duplicate-string */ import { - accountSettingsFactory, createLinodeRequestFactory, linodeBackupsFactory, linodeFactory, -} from '@src/factories'; +} from '@linode/utilities'; +import { accountSettingsFactory } from '@src/factories'; import { authenticate } from 'support/api/authentication'; import { expectManagedDisabled } from 'support/api/managed'; import { dcPricingMockLinodeTypesForBackups } from 'support/constants/dc-specific-pricing'; diff --git a/packages/manager/cypress/e2e/core/linodes/clone-linode.spec.ts b/packages/manager/cypress/e2e/core/linodes/clone-linode.spec.ts index 883fc888add..5bd831eddaf 100644 --- a/packages/manager/cypress/e2e/core/linodes/clone-linode.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/clone-linode.spec.ts @@ -1,9 +1,11 @@ -import { linodeConfigInterfaceFactory } from '@linode/utilities'; import { - VLANFactory, createLinodeRequestFactory, - linodeConfigFactory, + linodeConfigInterfaceFactory, linodeFactory, +} from '@linode/utilities'; +import { + VLANFactory, + linodeConfigFactory, volumeFactory, } from '@src/factories'; import { authenticate } from 'support/api/authentication'; diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode-in-core-region.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode-in-core-region.spec.ts index 71ae9f83058..df59f00ebe3 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode-in-core-region.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode-in-core-region.spec.ts @@ -1,4 +1,4 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import { mockAppendFeatureFlags } from 'support/intercepts/feature-flags'; import { mockCreateLinode } from 'support/intercepts/linodes'; import { @@ -9,8 +9,6 @@ import { ui } from 'support/ui'; import { linodeCreatePage } from 'support/ui/pages'; import { randomLabel, randomString } from 'support/util/random'; -import { linodeFactory } from 'src/factories'; - describe('Create Linode in a Core Region', () => { /* * - Confirms Linode create flow can be completed with a core region diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode-in-distributed-region.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode-in-distributed-region.spec.ts index ac52798d3c4..8f1ccfd6833 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode-in-distributed-region.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode-in-distributed-region.spec.ts @@ -1,4 +1,8 @@ -import { regionFactory } from '@linode/utilities'; +import { + linodeFactory, + linodeTypeFactory, + regionFactory, +} from '@linode/utilities'; import { mockAppendFeatureFlags } from 'support/intercepts/feature-flags'; import { mockCreateLinode, @@ -13,8 +17,6 @@ import { linodeCreatePage } from 'support/ui/pages'; import { randomLabel, randomString } from 'support/util/random'; import { extendRegion } from 'support/util/regions'; -import { linodeFactory, linodeTypeFactory } from 'src/factories'; - import type { Region } from '@linode/api-v4'; describe('Create Linode in Distributed Region', () => { diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode-mobile.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode-mobile.spec.ts index cc1fd3f1dda..ffc2939ce95 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode-mobile.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode-mobile.spec.ts @@ -2,6 +2,7 @@ * @file Smoke tests for Linode Create flow across common mobile viewport sizes. */ +import { linodeFactory } from '@linode/utilities'; import { MOBILE_VIEWPORTS } from 'support/constants/environment'; import { mockCreateLinode } from 'support/intercepts/linodes'; import { ui } from 'support/ui'; @@ -9,8 +10,6 @@ import { linodeCreatePage } from 'support/ui/pages'; import { randomLabel, randomNumber, randomString } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { linodeFactory } from 'src/factories'; - describe('Linode create mobile smoke', () => { MOBILE_VIEWPORTS.forEach((viewport) => { /* diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode-with-add-ons.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode-with-add-ons.spec.ts index 589c9e76465..125d3673317 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode-with-add-ons.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode-with-add-ons.spec.ts @@ -1,3 +1,4 @@ +import { linodeFactory } from '@linode/utilities'; import { mockCreateLinode, mockGetLinodeDetails, @@ -7,8 +8,6 @@ import { linodeCreatePage } from 'support/ui/pages'; import { randomLabel, randomNumber, randomString } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { linodeFactory } from 'src/factories'; - describe('Create Linode with Add-ons', () => { /* * - Confirms UI flow to create a Linode with backups using mock API data. diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode-with-dc-specific-pricing.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode-with-dc-specific-pricing.spec.ts index ed5ee08e51d..8a7efe8c078 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode-with-dc-specific-pricing.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode-with-dc-specific-pricing.spec.ts @@ -1,4 +1,4 @@ -import { linodeFactory } from '@src/factories'; +import { linodeFactory } from '@linode/utilities'; import { dcPricingDocsLabel, dcPricingDocsUrl, diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode-with-disk-encryption.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode-with-disk-encryption.spec.ts index 9e5a22346b8..8f2e413fc3f 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode-with-disk-encryption.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode-with-disk-encryption.spec.ts @@ -1,9 +1,9 @@ -import { regionFactory } from '@linode/utilities'; import { - accountFactory, linodeFactory, linodeTypeFactory, -} from '@src/factories'; + regionFactory, +} from '@linode/utilities'; +import { accountFactory } from '@src/factories'; import { mockGetAccount } from 'support/intercepts/account'; import { mockAppendFeatureFlags } from 'support/intercepts/feature-flags'; import { diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode-with-firewall.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode-with-firewall.spec.ts index 504e0acbb64..35865e33a6e 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode-with-firewall.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode-with-firewall.spec.ts @@ -1,3 +1,4 @@ +import { linodeFactory } from '@linode/utilities'; import { mockAppendFeatureFlags } from 'support/intercepts/feature-flags'; import { mockCreateFirewall, @@ -14,11 +15,7 @@ import { linodeCreatePage } from 'support/ui/pages'; import { randomLabel, randomNumber, randomString } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { - firewallFactory, - firewallTemplateFactory, - linodeFactory, -} from 'src/factories'; +import { firewallFactory, firewallTemplateFactory } from 'src/factories'; describe('Create Linode with Firewall', () => { beforeEach(() => { diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode-with-ssh-key.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode-with-ssh-key.spec.ts index 1deaa3b4f09..f3812319191 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode-with-ssh-key.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode-with-ssh-key.spec.ts @@ -1,3 +1,4 @@ +import { linodeFactory } from '@linode/utilities'; import { mockGetUser, mockGetUsers } from 'support/intercepts/account'; import { mockCreateLinode } from 'support/intercepts/linodes'; import { mockCreateSSHKey } from 'support/intercepts/profile'; @@ -6,11 +7,7 @@ import { linodeCreatePage } from 'support/ui/pages'; import { randomLabel, randomNumber, randomString } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { - accountUserFactory, - linodeFactory, - sshKeyFactory, -} from 'src/factories'; +import { accountUserFactory, sshKeyFactory } from 'src/factories'; describe('Create Linode with SSH Key', () => { /* diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode-with-user-data.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode-with-user-data.spec.ts index c500e0f5a94..9fb53cba649 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode-with-user-data.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode-with-user-data.spec.ts @@ -1,4 +1,4 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import { mockGetAllImages, mockGetImage } from 'support/intercepts/images'; import { mockCreateLinode, @@ -10,7 +10,7 @@ import { linodeCreatePage } from 'support/ui/pages'; import { randomLabel, randomNumber, randomString } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { imageFactory, linodeFactory } from 'src/factories'; +import { imageFactory } from 'src/factories'; describe('Create Linode with user data', () => { /* diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode-with-vlan.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode-with-vlan.spec.ts index 8a1b4cdc67f..3a3be95d502 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode-with-vlan.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode-with-vlan.spec.ts @@ -1,4 +1,4 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import { mockAppendFeatureFlags } from 'support/intercepts/feature-flags'; import { mockCreateLinode } from 'support/intercepts/linodes'; import { mockGetRegions } from 'support/intercepts/regions'; @@ -13,7 +13,7 @@ import { } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { VLANFactory, linodeFactory } from 'src/factories'; +import { VLANFactory } from 'src/factories'; describe('Create Linode with VLANs', () => { beforeEach(() => { diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode-with-vpc.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode-with-vpc.spec.ts index 1aa3877ae42..b7ffa62f9d2 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode-with-vpc.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode-with-vpc.spec.ts @@ -1,5 +1,6 @@ import { linodeConfigInterfaceFactoryWithVPC, + linodeFactory, regionFactory, } from '@linode/utilities'; import { mockGetLinodeConfigs } from 'support/intercepts/configs'; @@ -27,12 +28,7 @@ import { } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { - linodeConfigFactory, - linodeFactory, - subnetFactory, - vpcFactory, -} from 'src/factories'; +import { linodeConfigFactory, subnetFactory, vpcFactory } from 'src/factories'; import { WARNING_ICON_UNRECOMMENDED_CONFIG } from 'src/features/VPCs/constants'; describe('Create Linode with VPCs', () => { diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode.spec.ts index 016c8e70916..357cb202f2b 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode.spec.ts @@ -2,11 +2,14 @@ * @file Linode Create end-to-end tests. */ -import { regionFactory } from '@linode/utilities'; +import { + linodeFactory, + linodeTypeFactory, + regionFactory, +} from '@linode/utilities'; import { authenticate } from 'support/api/authentication'; import { LINODE_CREATE_TIMEOUT } from 'support/constants/linodes'; -import { mockGetAccount } from 'support/intercepts/account'; -import { mockGetUser } from 'support/intercepts/account'; +import { mockGetAccount, mockGetUser } from 'support/intercepts/account'; import { mockAppendFeatureFlags } from 'support/intercepts/feature-flags'; import { interceptCreateLinode, @@ -14,8 +17,8 @@ import { mockCreateLinodeError, mockGetLinodeTypes, } from 'support/intercepts/linodes'; -import { interceptGetProfile } from 'support/intercepts/profile'; import { + interceptGetProfile, mockGetProfile, mockGetProfileGrants, } from 'support/intercepts/profile'; @@ -31,8 +34,6 @@ import { accountFactory, accountUserFactory, grantsFactory, - linodeFactory, - linodeTypeFactory, profileFactory, } from 'src/factories'; diff --git a/packages/manager/cypress/e2e/core/linodes/linode-config.spec.ts b/packages/manager/cypress/e2e/core/linodes/linode-config.spec.ts index 4668a9ed2e1..3d4ecc47a8e 100644 --- a/packages/manager/cypress/e2e/core/linodes/linode-config.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/linode-config.spec.ts @@ -1,12 +1,12 @@ import { linodeConfigInterfaceFactory, linodeConfigInterfaceFactoryWithVPC, + linodeFactory, } from '@linode/utilities'; import { VLANFactory, kernelFactory, linodeConfigFactory, - linodeFactory, subnetFactory, vpcFactory, } from '@src/factories'; @@ -35,8 +35,7 @@ import { mockGetVPC, mockGetVPCs } from 'support/intercepts/vpc'; import { ui } from 'support/ui'; import { cleanUp } from 'support/util/cleanup'; import { fetchAllKernels, findKernelById } from 'support/util/kernels'; -import { fetchLinodeConfigs } from 'support/util/linodes'; -import { createTestLinode } from 'support/util/linodes'; +import { createTestLinode, fetchLinodeConfigs } from 'support/util/linodes'; import { randomIp, randomLabel, randomNumber } from 'support/util/random'; import { chooseRegion, getRegionById } from 'support/util/regions'; diff --git a/packages/manager/cypress/e2e/core/linodes/linode-network.spec.ts b/packages/manager/cypress/e2e/core/linodes/linode-network.spec.ts index 794e3b868ce..3bd3cd70996 100644 --- a/packages/manager/cypress/e2e/core/linodes/linode-network.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/linode-network.spec.ts @@ -1,3 +1,4 @@ +import { linodeFactory } from '@linode/utilities'; import { linodeInterfaceFactoryPublic, linodeInterfaceFactoryVPC, @@ -6,7 +7,6 @@ import { firewallDeviceFactory, firewallFactory, ipAddressFactory, - linodeFactory, subnetFactory, vpcFactory, } from '@src/factories'; diff --git a/packages/manager/cypress/e2e/core/linodes/migrate-linode.spec.ts b/packages/manager/cypress/e2e/core/linodes/migrate-linode.spec.ts index 36abe9cc6b9..a9c45bc260f 100644 --- a/packages/manager/cypress/e2e/core/linodes/migrate-linode.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/migrate-linode.spec.ts @@ -1,18 +1,18 @@ +import { linodeFactory } from '@linode/utilities'; import { linodeDiskFactory } from '@src/factories'; -import { linodeFactory } from '@src/factories'; import { authenticate } from 'support/api/authentication'; import { dcPricingCurrentPriceLabel, dcPricingMockLinodeTypes, dcPricingNewPriceLabel, } from 'support/constants/dc-specific-pricing'; -import { mockGetLinodeDetails } from 'support/intercepts/linodes'; import { + mockGetLinodeDetails, mockGetLinodeDisks, + mockGetLinodeType, mockGetLinodeVolumes, mockMigrateLinode, } from 'support/intercepts/linodes'; -import { mockGetLinodeType } from 'support/intercepts/linodes'; import { ui } from 'support/ui'; import { apiMatcher } from 'support/util/intercepts'; import { getRegionById } from 'support/util/regions'; diff --git a/packages/manager/cypress/e2e/core/linodes/plan-selection.spec.ts b/packages/manager/cypress/e2e/core/linodes/plan-selection.spec.ts index bad5a19b2ce..07ef3c82d45 100644 --- a/packages/manager/cypress/e2e/core/linodes/plan-selection.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/plan-selection.spec.ts @@ -1,6 +1,10 @@ // TODO: Cypress -import { regionAvailabilityFactory, regionFactory } from '@linode/utilities'; -import { accountFactory, linodeTypeFactory } from '@src/factories'; +import { + linodeTypeFactory, + regionAvailabilityFactory, + regionFactory, +} from '@linode/utilities'; +import { accountFactory } from '@src/factories'; import { authenticate } from 'support/api/authentication'; import { mockGetAccount } from 'support/intercepts/account'; import { mockAppendFeatureFlags } from 'support/intercepts/feature-flags'; diff --git a/packages/manager/cypress/e2e/core/linodes/rebuild-linode.spec.ts b/packages/manager/cypress/e2e/core/linodes/rebuild-linode.spec.ts index 7426806d295..e3a4d5fa827 100644 --- a/packages/manager/cypress/e2e/core/linodes/rebuild-linode.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/rebuild-linode.spec.ts @@ -1,10 +1,10 @@ import { createStackScript } from '@linode/api-v4/lib'; -import { regionFactory } from '@linode/utilities'; import { createLinodeRequestFactory, - imageFactory, linodeFactory, -} from '@src/factories'; + regionFactory, +} from '@linode/utilities'; +import { imageFactory } from '@src/factories'; import { authenticate } from 'support/api/authentication'; import { LINODE_CREATE_TIMEOUT } from 'support/constants/linodes'; import { mockGetAllImages, mockGetImage } from 'support/intercepts/images'; diff --git a/packages/manager/cypress/e2e/core/linodes/rescue-linode.spec.ts b/packages/manager/cypress/e2e/core/linodes/rescue-linode.spec.ts index fed76acfa20..7d3cb5354f9 100644 --- a/packages/manager/cypress/e2e/core/linodes/rescue-linode.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/rescue-linode.spec.ts @@ -1,4 +1,4 @@ -import { createLinodeRequestFactory, linodeFactory } from '@src/factories'; +import { createLinodeRequestFactory, linodeFactory } from '@linode/utilities'; import { authenticate } from 'support/api/authentication'; import { LINODE_CREATE_TIMEOUT } from 'support/constants/linodes'; import { diff --git a/packages/manager/cypress/e2e/core/linodes/smoke-delete-linode.spec.ts b/packages/manager/cypress/e2e/core/linodes/smoke-delete-linode.spec.ts index 2286564fb84..61ecc709e97 100644 --- a/packages/manager/cypress/e2e/core/linodes/smoke-delete-linode.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/smoke-delete-linode.spec.ts @@ -1,5 +1,5 @@ +import { createLinodeRequestFactory } from '@linode/utilities'; import { accountSettingsFactory } from '@src/factories/accountSettings'; -import { createLinodeRequestFactory } from '@src/factories/linodes'; import { authenticate } from 'support/api/authentication'; import { mockGetAccountSettings } from 'support/intercepts/account'; import { interceptDeleteLinode } from 'support/intercepts/linodes'; diff --git a/packages/manager/cypress/e2e/core/linodes/smoke-linode-landing-table.spec.ts b/packages/manager/cypress/e2e/core/linodes/smoke-linode-landing-table.spec.ts index ba4affc1c48..66f6a126dab 100644 --- a/packages/manager/cypress/e2e/core/linodes/smoke-linode-landing-table.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/smoke-linode-landing-table.spec.ts @@ -1,9 +1,9 @@ /* eslint-disable sonarjs/no-duplicate-string */ +import { linodeFactory } from '@linode/utilities'; import { profileFactory, userPreferencesFactory } from '@src/factories'; import { accountSettingsFactory } from '@src/factories/accountSettings'; import { accountUserFactory } from '@src/factories/accountUsers'; import { grantsFactory } from '@src/factories/grants'; -import { linodeFactory } from '@src/factories/linodes'; import { makeResourcePage } from '@src/mocks/serverHandlers'; import { authenticate } from 'support/api/authentication'; import { mockGetUser } from 'support/intercepts/account'; diff --git a/packages/manager/cypress/e2e/core/nodebalancers/nodebalancer-settings.spec.ts b/packages/manager/cypress/e2e/core/nodebalancers/nodebalancer-settings.spec.ts index 32675f582fe..5090e7004eb 100644 --- a/packages/manager/cypress/e2e/core/nodebalancers/nodebalancer-settings.spec.ts +++ b/packages/manager/cypress/e2e/core/nodebalancers/nodebalancer-settings.spec.ts @@ -1,3 +1,4 @@ +import { nodeBalancerFactory } from '@linode/utilities'; import { mockAddFirewallDevice, mockGetFirewalls, @@ -8,11 +9,7 @@ import { } from 'support/intercepts/nodebalancers'; import { ui } from 'support/ui'; -import { - firewallDeviceFactory, - firewallFactory, - nodeBalancerFactory, -} from 'src/factories'; +import { firewallDeviceFactory, firewallFactory } from 'src/factories'; describe('Firewalls', () => { it('allows the user to assign a Firewall from the NodeBalancer settings page', () => { diff --git a/packages/manager/cypress/e2e/core/nodebalancers/nodebalancers-create-in-complex-form.spec.ts b/packages/manager/cypress/e2e/core/nodebalancers/nodebalancers-create-in-complex-form.spec.ts index 0579597a751..dd797581165 100644 --- a/packages/manager/cypress/e2e/core/nodebalancers/nodebalancers-create-in-complex-form.spec.ts +++ b/packages/manager/cypress/e2e/core/nodebalancers/nodebalancers-create-in-complex-form.spec.ts @@ -1,3 +1,4 @@ +import { nodeBalancerFactory } from '@linode/utilities'; import { authenticate } from 'support/api/authentication'; import { entityTag } from 'support/constants/cypress'; import { interceptCreateNodeBalancer } from 'support/intercepts/nodebalancers'; @@ -7,8 +8,6 @@ import { createTestLinode } from 'support/util/linodes'; import { randomLabel } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { nodeBalancerFactory } from 'src/factories'; - import type { Linode } from '@linode/api-v4'; authenticate(); diff --git a/packages/manager/cypress/e2e/core/nodebalancers/smoke-create-nodebal.spec.ts b/packages/manager/cypress/e2e/core/nodebalancers/smoke-create-nodebal.spec.ts index 690377d60cf..2cd99a49615 100644 --- a/packages/manager/cypress/e2e/core/nodebalancers/smoke-create-nodebal.spec.ts +++ b/packages/manager/cypress/e2e/core/nodebalancers/smoke-create-nodebal.spec.ts @@ -16,13 +16,15 @@ const deployNodeBalancer = () => { cy.get('[data-qa-deploy-nodebalancer]').click(); }; -import { regionFactory } from '@linode/utilities'; +import { + linodeFactory, + nodeBalancerFactory, + regionFactory, +} from '@linode/utilities'; import { mockGetLinodes } from 'support/intercepts/linodes'; import { interceptCreateNodeBalancer } from 'support/intercepts/nodebalancers'; import { mockGetRegions } from 'support/intercepts/regions'; -import { linodeFactory, nodeBalancerFactory } from 'src/factories'; - const createNodeBalancerWithUI = ( nodeBal: NodeBalancer, isDcPricingTest = false diff --git a/packages/manager/cypress/e2e/core/oneClickApps/one-click-apps.spec.ts b/packages/manager/cypress/e2e/core/oneClickApps/one-click-apps.spec.ts index 428858ef6ea..c1e069cec3f 100644 --- a/packages/manager/cypress/e2e/core/oneClickApps/one-click-apps.spec.ts +++ b/packages/manager/cypress/e2e/core/oneClickApps/one-click-apps.spec.ts @@ -1,3 +1,4 @@ +import { linodeFactory } from '@linode/utilities'; import { mockGetAllImages } from 'support/intercepts/images'; import { mockCreateLinode } from 'support/intercepts/linodes'; import { @@ -10,7 +11,7 @@ import { getRandomOCAId } from 'support/util/one-click-apps'; import { randomLabel, randomString } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { imageFactory, linodeFactory } from 'src/factories'; +import { imageFactory } from 'src/factories'; import { stackScriptFactory } from 'src/factories/stackscripts'; import { getMarketplaceAppLabel } from 'src/features/Linodes/LinodeCreate/Tabs/Marketplace/utilities'; import { oneClickApps } from 'src/features/OneClickApps/oneClickApps'; diff --git a/packages/manager/cypress/e2e/core/placementGroups/create-linode-with-placement-groups.spec.ts b/packages/manager/cypress/e2e/core/placementGroups/create-linode-with-placement-groups.spec.ts index dbc412e08d9..aaef31b0af9 100644 --- a/packages/manager/cypress/e2e/core/placementGroups/create-linode-with-placement-groups.spec.ts +++ b/packages/manager/cypress/e2e/core/placementGroups/create-linode-with-placement-groups.spec.ts @@ -1,4 +1,4 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import { mockGetAccount } from 'support/intercepts/account'; import { mockCreateLinode, @@ -14,11 +14,7 @@ import { linodeCreatePage } from 'support/ui/pages'; import { randomNumber, randomString } from 'support/util/random'; import { extendRegion } from 'support/util/regions'; -import { - accountFactory, - linodeFactory, - placementGroupFactory, -} from 'src/factories'; +import { accountFactory, placementGroupFactory } from 'src/factories'; import { CANNOT_CHANGE_PLACEMENT_GROUP_POLICY_MESSAGE } from 'src/features/PlacementGroups/constants'; const mockAccount = accountFactory.build(); diff --git a/packages/manager/cypress/e2e/core/placementGroups/delete-placement-groups.spec.ts b/packages/manager/cypress/e2e/core/placementGroups/delete-placement-groups.spec.ts index 93e8c050573..1d7911d1280 100644 --- a/packages/manager/cypress/e2e/core/placementGroups/delete-placement-groups.spec.ts +++ b/packages/manager/cypress/e2e/core/placementGroups/delete-placement-groups.spec.ts @@ -2,6 +2,7 @@ * @file Cypress integration tests for VM Placement Groups deletion flows. */ +import { linodeFactory } from '@linode/utilities'; import { mockGetAccount } from 'support/intercepts/account'; import { mockGetLinodes } from 'support/intercepts/linodes'; import { @@ -17,11 +18,7 @@ import { buildArray } from 'support/util/arrays'; import { randomLabel, randomNumber } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { - accountFactory, - linodeFactory, - placementGroupFactory, -} from 'src/factories'; +import { accountFactory, placementGroupFactory } from 'src/factories'; import { headers as emptyStatePageHeaders } from 'src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsLandingEmptyStateData'; // Mock an account with 'Placement Group' capability. diff --git a/packages/manager/cypress/e2e/core/placementGroups/placement-groups-landing-page.spec.ts b/packages/manager/cypress/e2e/core/placementGroups/placement-groups-landing-page.spec.ts index 6e910ff4cd2..efe8709cf31 100644 --- a/packages/manager/cypress/e2e/core/placementGroups/placement-groups-landing-page.spec.ts +++ b/packages/manager/cypress/e2e/core/placementGroups/placement-groups-landing-page.spec.ts @@ -1,3 +1,4 @@ +import { linodeFactory } from '@linode/utilities'; import { mockGetAccount } from 'support/intercepts/account'; import { mockGetLinodes } from 'support/intercepts/linodes'; import { mockGetPlacementGroups } from 'support/intercepts/placement-groups'; @@ -5,11 +6,7 @@ import { ui } from 'support/ui'; import { randomLabel, randomNumber } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { - accountFactory, - linodeFactory, - placementGroupFactory, -} from 'src/factories'; +import { accountFactory, placementGroupFactory } from 'src/factories'; const mockAccount = accountFactory.build(); diff --git a/packages/manager/cypress/e2e/core/placementGroups/placement-groups-linode-assignment.spec.ts b/packages/manager/cypress/e2e/core/placementGroups/placement-groups-linode-assignment.spec.ts index 6934266d06d..d328c6444bb 100644 --- a/packages/manager/cypress/e2e/core/placementGroups/placement-groups-linode-assignment.spec.ts +++ b/packages/manager/cypress/e2e/core/placementGroups/placement-groups-linode-assignment.spec.ts @@ -1,4 +1,4 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import { mockGetAccount } from 'support/intercepts/account'; import { mockGetLinodeDetails, @@ -18,11 +18,7 @@ import { buildArray } from 'support/util/arrays'; import { randomLabel, randomNumber } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { - accountFactory, - linodeFactory, - placementGroupFactory, -} from 'src/factories'; +import { accountFactory, placementGroupFactory } from 'src/factories'; import type { Linode } from '@linode/api-v4'; diff --git a/packages/manager/cypress/e2e/core/stackscripts/create-stackscripts.spec.ts b/packages/manager/cypress/e2e/core/stackscripts/create-stackscripts.spec.ts index 6cef52543ac..a0e95b46b21 100644 --- a/packages/manager/cypress/e2e/core/stackscripts/create-stackscripts.spec.ts +++ b/packages/manager/cypress/e2e/core/stackscripts/create-stackscripts.spec.ts @@ -1,4 +1,5 @@ import { createImage, getLinodeDisks, resizeLinodeDisk } from '@linode/api-v4'; +import { createLinodeRequestFactory } from '@linode/utilities'; import { authenticate } from 'support/api/authentication'; import { interceptGetAccountAvailability } from 'support/intercepts/account'; import { interceptGetAllImages } from 'support/intercepts/images'; @@ -20,7 +21,6 @@ import { randomLabel, randomPhrase, randomString } from 'support/util/random'; import { chooseRegion, getRegionByLabel } from 'support/util/regions'; import { getFilteredImagesForImageSelect } from 'src/components/ImageSelect/utilities'; -import { createLinodeRequestFactory } from 'src/factories'; import type { Image } from '@linode/api-v4'; diff --git a/packages/manager/cypress/e2e/core/volumes/attach-volume.spec.ts b/packages/manager/cypress/e2e/core/volumes/attach-volume.spec.ts index e52fe6cc512..17d552e1620 100644 --- a/packages/manager/cypress/e2e/core/volumes/attach-volume.spec.ts +++ b/packages/manager/cypress/e2e/core/volumes/attach-volume.spec.ts @@ -1,4 +1,5 @@ import { createVolume } from '@linode/api-v4/lib/volumes'; +import { createLinodeRequestFactory } from '@linode/utilities'; import { authenticate } from 'support/api/authentication'; import { interceptGetLinodeConfigs } from 'support/intercepts/configs'; import { @@ -11,7 +12,6 @@ import { createTestLinode } from 'support/util/linodes'; import { randomLabel, randomString } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { createLinodeRequestFactory } from 'src/factories/linodes'; import { volumeRequestPayloadFactory } from 'src/factories/volume'; import type { Linode, Volume } from '@linode/api-v4'; diff --git a/packages/manager/cypress/e2e/core/volumes/create-volume.smoke.spec.ts b/packages/manager/cypress/e2e/core/volumes/create-volume.smoke.spec.ts index c4aecfc2eaa..4edd06c7471 100644 --- a/packages/manager/cypress/e2e/core/volumes/create-volume.smoke.spec.ts +++ b/packages/manager/cypress/e2e/core/volumes/create-volume.smoke.spec.ts @@ -1,9 +1,6 @@ /* eslint-disable sonarjs/no-duplicate-string */ -import { - linodeFactory, - volumeFactory, - volumeTypeFactory, -} from '@src/factories'; +import { linodeFactory } from '@linode/utilities'; +import { volumeFactory, volumeTypeFactory } from '@src/factories'; import { mockGetLinodeDetails, mockGetLinodeVolumes, diff --git a/packages/manager/cypress/e2e/core/volumes/create-volume.spec.ts b/packages/manager/cypress/e2e/core/volumes/create-volume.spec.ts index 49c42bebf4d..5804c9f2d70 100644 --- a/packages/manager/cypress/e2e/core/volumes/create-volume.spec.ts +++ b/packages/manager/cypress/e2e/core/volumes/create-volume.spec.ts @@ -1,4 +1,8 @@ -import { regionFactory } from '@linode/utilities'; +import { + createLinodeRequestFactory, + linodeFactory, + regionFactory, +} from '@linode/utilities'; import { accountUserFactory, grantsFactory, @@ -6,8 +10,7 @@ import { } from '@src/factories'; import { authenticate } from 'support/api/authentication'; import { entityTag } from 'support/constants/cypress'; -import { mockGetAccount } from 'support/intercepts/account'; -import { mockGetUser } from 'support/intercepts/account'; +import { mockGetAccount, mockGetUser } from 'support/intercepts/account'; import { mockAppendFeatureFlags } from 'support/intercepts/feature-flags'; import { mockGetLinodeDetails, @@ -30,10 +33,6 @@ import { randomLabel, randomNumber, randomString } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; import { accountFactory, volumeFactory } from 'src/factories'; -import { - createLinodeRequestFactory, - linodeFactory, -} from 'src/factories/linodes'; import type { Linode, Region } from '@linode/api-v4'; diff --git a/packages/manager/cypress/e2e/core/volumes/upgrade-volume.spec.ts b/packages/manager/cypress/e2e/core/volumes/upgrade-volume.spec.ts index 14c5f8b7b0f..09b03d3f971 100644 --- a/packages/manager/cypress/e2e/core/volumes/upgrade-volume.spec.ts +++ b/packages/manager/cypress/e2e/core/volumes/upgrade-volume.spec.ts @@ -1,6 +1,6 @@ +import { linodeFactory } from '@linode/utilities'; import { eventFactory, - linodeFactory, notificationFactory, volumeFactory, } from '@src/factories'; diff --git a/packages/manager/cypress/e2e/core/vpc/vpc-create.spec.ts b/packages/manager/cypress/e2e/core/vpc/vpc-create.spec.ts index dde410c921c..a355f77a294 100644 --- a/packages/manager/cypress/e2e/core/vpc/vpc-create.spec.ts +++ b/packages/manager/cypress/e2e/core/vpc/vpc-create.spec.ts @@ -2,8 +2,8 @@ * @file Integration tests for VPC create flow. */ -import { regionFactory } from '@linode/utilities'; -import { linodeFactory, subnetFactory, vpcFactory } from '@src/factories'; +import { linodeFactory, regionFactory } from '@linode/utilities'; +import { subnetFactory, vpcFactory } from '@src/factories'; import { mockGetRegions } from 'support/intercepts/regions'; import { mockCreateVPC, diff --git a/packages/manager/cypress/e2e/core/vpc/vpc-details-page.spec.ts b/packages/manager/cypress/e2e/core/vpc/vpc-details-page.spec.ts index affd4240eae..dcc5323773a 100644 --- a/packages/manager/cypress/e2e/core/vpc/vpc-details-page.spec.ts +++ b/packages/manager/cypress/e2e/core/vpc/vpc-details-page.spec.ts @@ -1,13 +1,9 @@ import { linodeConfigInterfaceFactory, linodeConfigInterfaceFactoryWithVPC, -} from '@linode/utilities'; -import { - linodeConfigFactory, linodeFactory, - subnetFactory, - vpcFactory, -} from '@src/factories'; +} from '@linode/utilities'; +import { linodeConfigFactory, subnetFactory, vpcFactory } from '@src/factories'; import { mockGetLinodeConfigs } from 'support/intercepts/configs'; import { mockGetLinodeDetails } from 'support/intercepts/linodes'; import { @@ -22,8 +18,7 @@ import { } from 'support/intercepts/vpc'; import { ui } from 'support/ui'; import { randomLabel, randomNumber, randomPhrase } from 'support/util/random'; -import { getRegionById } from 'support/util/regions'; -import { chooseRegion } from 'support/util/regions'; +import { chooseRegion, getRegionById } from 'support/util/regions'; import { WARNING_ICON_UNRECOMMENDED_CONFIG } from 'src/features/VPCs/constants'; diff --git a/packages/manager/cypress/e2e/core/vpc/vpc-linodes-update.spec.ts b/packages/manager/cypress/e2e/core/vpc/vpc-linodes-update.spec.ts index 25a1a075727..840b1d7f09b 100644 --- a/packages/manager/cypress/e2e/core/vpc/vpc-linodes-update.spec.ts +++ b/packages/manager/cypress/e2e/core/vpc/vpc-linodes-update.spec.ts @@ -2,13 +2,11 @@ * @file Integration tests for VPC assign/unassign Linodes flows. */ -import { linodeConfigInterfaceFactoryWithVPC } from '@linode/utilities'; import { - linodeConfigFactory, + linodeConfigInterfaceFactoryWithVPC, linodeFactory, - subnetFactory, - vpcFactory, -} from '@src/factories'; +} from '@linode/utilities'; +import { linodeConfigFactory, subnetFactory, vpcFactory } from '@src/factories'; import { vpcAssignLinodeRebootNotice, vpcUnassignLinodeRebootNotice, diff --git a/packages/manager/cypress/support/api/linodes.ts b/packages/manager/cypress/support/api/linodes.ts index 9fbe30f3302..65e7a30bcc2 100644 --- a/packages/manager/cypress/support/api/linodes.ts +++ b/packages/manager/cypress/support/api/linodes.ts @@ -1,5 +1,5 @@ import { Linode, deleteLinode, getLinodes } from '@linode/api-v4'; -import { linodeFactory } from '@src/factories'; +import { linodeFactory } from '@linode/utilities'; import { makeResourcePage } from '@src/mocks/serverHandlers'; import { pageSize } from 'support/constants/api'; import { depaginate } from 'support/util/paginate'; diff --git a/packages/manager/cypress/support/api/nodebalancers.ts b/packages/manager/cypress/support/api/nodebalancers.ts index 37ff6c420d2..d8c55b8922c 100644 --- a/packages/manager/cypress/support/api/nodebalancers.ts +++ b/packages/manager/cypress/support/api/nodebalancers.ts @@ -1,4 +1,5 @@ import { deleteNodeBalancer, getNodeBalancers } from '@linode/api-v4'; +import { nodeBalancerFactory } from '@linode/utilities'; import { oauthToken, pageSize } from 'support/constants/api'; import { entityTag } from 'support/constants/cypress'; import { depaginate } from 'support/util/paginate'; @@ -6,7 +7,7 @@ import { randomLabel } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; import { isTestLabel } from './common'; -import { nodeBalancerFactory } from 'src/factories'; + import type { NodeBalancer } from '@linode/api-v4'; export const makeNodeBalCreateReq = (nodeBal: NodeBalancer) => { diff --git a/packages/manager/cypress/support/constants/dc-specific-pricing.ts b/packages/manager/cypress/support/constants/dc-specific-pricing.ts index 584fee1378f..9c8ea564874 100644 --- a/packages/manager/cypress/support/constants/dc-specific-pricing.ts +++ b/packages/manager/cypress/support/constants/dc-specific-pricing.ts @@ -2,7 +2,7 @@ * @file Constants related to DC-specific pricing. */ -import { linodeTypeFactory } from '@src/factories'; +import { linodeTypeFactory } from '@linode/utilities'; import type { LkePlanDescription } from 'support/api/lke'; diff --git a/packages/manager/cypress/support/util/linodes.ts b/packages/manager/cypress/support/util/linodes.ts index d6b07f2c131..e278818edd5 100644 --- a/packages/manager/cypress/support/util/linodes.ts +++ b/packages/manager/cypress/support/util/linodes.ts @@ -1,5 +1,5 @@ import { createLinode, getLinodeConfigs } from '@linode/api-v4'; -import { createLinodeRequestFactory } from '@src/factories'; +import { createLinodeRequestFactory } from '@linode/utilities'; import { findOrCreateDependencyFirewall } from 'support/api/firewalls'; import { findOrCreateDependencyVlan } from 'support/api/vlans'; import { pageSize } from 'support/constants/api'; diff --git a/packages/manager/package.json b/packages/manager/package.json index 082faf1ead2..5c3b8257edd 100644 --- a/packages/manager/package.json +++ b/packages/manager/package.json @@ -28,6 +28,7 @@ "@linode/validation": "workspace:*", "@linode/queries": "workspace:*", "@linode/search": "workspace:*", + "@linode/shared": "workspace:*", "@linode/ui": "workspace:*", "@linode/utilities": "workspace:*", "@lukemorales/query-key-factory": "^1.3.4", diff --git a/packages/manager/src/components/EntityDetail/EntityDetail.stories.tsx b/packages/manager/src/components/EntityDetail/EntityDetail.stories.tsx index 478b59d667d..37b71485bba 100644 --- a/packages/manager/src/components/EntityDetail/EntityDetail.stories.tsx +++ b/packages/manager/src/components/EntityDetail/EntityDetail.stories.tsx @@ -1,7 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import { action } from '@storybook/addon-actions'; import * as React from 'react'; -import { linodeFactory } from 'src/factories/linodes'; import { LinodeEntityDetail } from 'src/features/Linodes/LinodeEntityDetail'; import { EntityDetail } from './EntityDetail'; diff --git a/packages/manager/src/components/StackScript/StackScript.tsx b/packages/manager/src/components/StackScript/StackScript.tsx index 6b95ef255ff..786897165a7 100644 --- a/packages/manager/src/components/StackScript/StackScript.tsx +++ b/packages/manager/src/components/StackScript/StackScript.tsx @@ -1,3 +1,4 @@ +import { listToItemsByID } from '@linode/queries'; import { Box, Button, @@ -16,7 +17,6 @@ import { CopyTooltip } from 'src/components/CopyTooltip/CopyTooltip'; import { DateTimeDisplay } from 'src/components/DateTimeDisplay'; import { Link } from 'src/components/Link'; import { useAccountManagement } from 'src/hooks/useAccountManagement'; -import { listToItemsByID } from '@linode/queries'; import { useAllImagesQuery } from 'src/queries/images'; import { CodeBlock } from '../CodeBlock/CodeBlock'; diff --git a/packages/manager/src/factories/disk.ts b/packages/manager/src/factories/disk.ts index 165b5163baa..70330a97e4b 100644 --- a/packages/manager/src/factories/disk.ts +++ b/packages/manager/src/factories/disk.ts @@ -1,6 +1,7 @@ -import { Disk } from '@linode/api-v4/lib/linodes/types'; import { Factory } from '@linode/utilities'; +import type { Disk } from '@linode/api-v4/lib/linodes/types'; + export const linodeDiskFactory = Factory.Sync.makeFactory({ created: '2018-01-01', disk_encryption: 'enabled', diff --git a/packages/manager/src/factories/index.ts b/packages/manager/src/factories/index.ts index 5698c3f11fe..1532384e897 100644 --- a/packages/manager/src/factories/index.ts +++ b/packages/manager/src/factories/index.ts @@ -20,7 +20,6 @@ export * from './images'; export * from './kernels'; export * from './kubernetesCluster'; export * from './linodeConfigs'; -export * from './linodes'; export * from './longviewClient'; export * from './longviewDisks'; export * from './longviewProcess'; @@ -30,7 +29,6 @@ export * from './longviewSubscription'; export * from './longviewTopProcesses'; export * from './managed'; export * from './networking'; -export * from './nodebalancer'; export * from './notification'; export * from './oauth'; export * from './objectStorage'; diff --git a/packages/manager/src/features/Backups/BackupDrawer.test.tsx b/packages/manager/src/features/Backups/BackupDrawer.test.tsx index be8bdcde0f7..eb58026abc9 100644 --- a/packages/manager/src/features/Backups/BackupDrawer.test.tsx +++ b/packages/manager/src/features/Backups/BackupDrawer.test.tsx @@ -1,14 +1,15 @@ +import { linodeFactory } from '@linode/utilities'; import * as React from 'react'; -import { - accountSettingsFactory, - linodeFactory, - typeFactory, -} from 'src/factories'; + +import { accountSettingsFactory, typeFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { BackupDrawer } from './BackupDrawer'; const queryMocks = vi.hoisted(() => ({ + useAccountSettings: vi.fn().mockReturnValue({ + data: undefined, + }), useAllLinodesQuery: vi.fn().mockReturnValue({ data: undefined, }), @@ -18,9 +19,6 @@ const queryMocks = vi.hoisted(() => ({ useTypeQuery: vi.fn().mockReturnValue({ data: undefined, }), - useAccountSettings: vi.fn().mockReturnValue({ - data: undefined, - }), })); vi.mock('@linode/queries', async () => { @@ -51,8 +49,6 @@ vi.mock('src/queries/accountSettings', async () => { describe('BackupDrawer', () => { beforeEach(() => { const mockType = typeFactory.build({ - id: 'mock-linode-type', - label: 'Mock Linode Type', addons: { backups: { price: { @@ -68,6 +64,8 @@ describe('BackupDrawer', () => { ], }, }, + id: 'mock-linode-type', + label: 'Mock Linode Type', }); queryMocks.useAccountSettings.mockReturnValue({ data: accountSettingsFactory.build({ @@ -87,20 +85,20 @@ describe('BackupDrawer', () => { queryMocks.useAllLinodesQuery.mockReturnValue({ data: [ linodeFactory.build({ + backups: { enabled: false }, region: 'es-mad', type: 'mock-linode-type', - backups: { enabled: false }, }), ...linodeFactory.buildList(5, { + backups: { enabled: false }, region: 'us-east', type: 'mock-linode-type', - backups: { enabled: false }, }), ], }); const { findByText } = renderWithTheme( - + ); expect(await findByText('Total for 6 Linodes:')).toBeVisible(); expect(await findByText('$12.50')).toBeVisible(); @@ -110,15 +108,15 @@ describe('BackupDrawer', () => { queryMocks.useAllLinodesQuery.mockReturnValue({ data: [ linodeFactory.build({ + backups: { enabled: false }, region: 'es-mad', type: 'mock-linode-type', - backups: { enabled: false }, }), ], }); const { findByText } = renderWithTheme( - + ); expect(await findByText('Total for 1 Linode:')).toBeVisible(); expect(await findByText('$0.00')).toBeVisible(); @@ -134,7 +132,7 @@ describe('BackupDrawer', () => { }); const { findByText } = renderWithTheme( - + ); expect(await findByText('Total for 1 Linode:')).toBeVisible(); expect(await findByText('$--.--')).toBeVisible(); @@ -156,7 +154,7 @@ describe('BackupDrawer', () => { }); const { findByText, queryByText } = renderWithTheme( - + ); // Confirm that Linodes without backups are listed in table. /* eslint-disable no-await-in-loop */ diff --git a/packages/manager/src/features/Backups/BackupLinodeRow.test.tsx b/packages/manager/src/features/Backups/BackupLinodeRow.test.tsx index 4a648a419a5..6c891619547 100644 --- a/packages/manager/src/features/Backups/BackupLinodeRow.test.tsx +++ b/packages/manager/src/features/Backups/BackupLinodeRow.test.tsx @@ -1,6 +1,6 @@ +import { linodeFactory, linodeTypeFactory } from '@linode/utilities'; import * as React from 'react'; -import { linodeFactory, linodeTypeFactory } from 'src/factories/linodes'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme, wrapWithTableBody } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Backups/BackupsCTA.test.tsx b/packages/manager/src/features/Backups/BackupsCTA.test.tsx index cddd228d6ed..a09eff4c069 100644 --- a/packages/manager/src/features/Backups/BackupsCTA.test.tsx +++ b/packages/manager/src/features/Backups/BackupsCTA.test.tsx @@ -1,10 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import * as React from 'react'; -import { - accountSettingsFactory, - linodeFactory, - profileFactory, -} from 'src/factories'; +import { accountSettingsFactory, profileFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/CloudPulse/Alerts/AlertsDetail/AlertDetail.test.tsx b/packages/manager/src/features/CloudPulse/Alerts/AlertsDetail/AlertDetail.test.tsx index 02762f651e2..77624192104 100644 --- a/packages/manager/src/features/CloudPulse/Alerts/AlertsDetail/AlertDetail.test.tsx +++ b/packages/manager/src/features/CloudPulse/Alerts/AlertsDetail/AlertDetail.test.tsx @@ -1,9 +1,8 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import React from 'react'; import { alertFactory, - linodeFactory, notificationChannelFactory, serviceTypesFactory, } from 'src/factories/'; diff --git a/packages/manager/src/features/CloudPulse/Alerts/AlertsResources/AlertsResources.test.tsx b/packages/manager/src/features/CloudPulse/Alerts/AlertsResources/AlertsResources.test.tsx index 418605f6657..1616c915642 100644 --- a/packages/manager/src/features/CloudPulse/Alerts/AlertsResources/AlertsResources.test.tsx +++ b/packages/manager/src/features/CloudPulse/Alerts/AlertsResources/AlertsResources.test.tsx @@ -1,9 +1,8 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; -import { linodeFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { AlertResources } from './AlertsResources'; diff --git a/packages/manager/src/features/CloudPulse/Alerts/CreateAlert/Criteria/DimensionFilter.tsx b/packages/manager/src/features/CloudPulse/Alerts/CreateAlert/Criteria/DimensionFilter.tsx index 75a0343caf6..7a1135e129b 100644 --- a/packages/manager/src/features/CloudPulse/Alerts/CreateAlert/Criteria/DimensionFilter.tsx +++ b/packages/manager/src/features/CloudPulse/Alerts/CreateAlert/Criteria/DimensionFilter.tsx @@ -1,5 +1,4 @@ -import { Box } from '@linode/ui'; -import { Button, Stack, Typography } from '@linode/ui'; +import { Box, Button, Stack, Typography } from '@linode/ui'; import React from 'react'; import { useFieldArray, useFormContext, useWatch } from 'react-hook-form'; diff --git a/packages/manager/src/features/CloudPulse/Alerts/CreateAlert/GeneralInformation/ResourceMultiSelect.test.tsx b/packages/manager/src/features/CloudPulse/Alerts/CreateAlert/GeneralInformation/ResourceMultiSelect.test.tsx index d89fe9d3a24..4436ae11d1a 100644 --- a/packages/manager/src/features/CloudPulse/Alerts/CreateAlert/GeneralInformation/ResourceMultiSelect.test.tsx +++ b/packages/manager/src/features/CloudPulse/Alerts/CreateAlert/GeneralInformation/ResourceMultiSelect.test.tsx @@ -1,8 +1,8 @@ +import { linodeFactory } from '@linode/utilities'; import { screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; -import { linodeFactory } from 'src/factories'; import { renderWithThemeAndHookFormContext } from 'src/utilities/testHelpers'; import { CloudPulseMultiResourceSelect } from './ResourceMultiSelect'; diff --git a/packages/manager/src/features/CloudPulse/Alerts/CreateAlert/Resources/CloudPulseModifyAlertResources.test.tsx b/packages/manager/src/features/CloudPulse/Alerts/CreateAlert/Resources/CloudPulseModifyAlertResources.test.tsx index f6f2dc56d63..dd800c40c3d 100644 --- a/packages/manager/src/features/CloudPulse/Alerts/CreateAlert/Resources/CloudPulseModifyAlertResources.test.tsx +++ b/packages/manager/src/features/CloudPulse/Alerts/CreateAlert/Resources/CloudPulseModifyAlertResources.test.tsx @@ -1,8 +1,8 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import { alertFactory, linodeFactory } from 'src/factories'; +import { alertFactory } from 'src/factories'; import { renderWithThemeAndHookFormContext } from 'src/utilities/testHelpers'; import { CloudPulseModifyAlertResources } from './CloudPulseModifyAlertResources'; diff --git a/packages/manager/src/features/CloudPulse/Alerts/EditAlert/EditAlertResources.test.tsx b/packages/manager/src/features/CloudPulse/Alerts/EditAlert/EditAlertResources.test.tsx index 318826ca7bc..0c80632ecd0 100644 --- a/packages/manager/src/features/CloudPulse/Alerts/EditAlert/EditAlertResources.test.tsx +++ b/packages/manager/src/features/CloudPulse/Alerts/EditAlert/EditAlertResources.test.tsx @@ -1,11 +1,11 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { createMemoryHistory } from 'history'; import React from 'react'; import { Router } from 'react-router-dom'; -import { alertFactory, linodeFactory } from 'src/factories'; +import { alertFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { EditAlertResources } from './EditAlertResources'; diff --git a/packages/manager/src/features/CloudPulse/shared/CloudPulseResourcesSelect.test.tsx b/packages/manager/src/features/CloudPulse/shared/CloudPulseResourcesSelect.test.tsx index d6dc9f0c9e5..ec086796f8b 100644 --- a/packages/manager/src/features/CloudPulse/shared/CloudPulseResourcesSelect.test.tsx +++ b/packages/manager/src/features/CloudPulse/shared/CloudPulseResourcesSelect.test.tsx @@ -1,8 +1,8 @@ +import { linodeFactory } from '@linode/utilities'; import { fireEvent, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; -import { linodeFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { CloudPulseResourcesSelect } from './CloudPulseResourcesSelect'; diff --git a/packages/manager/src/features/CloudPulse/shared/CloudPulseTagsFilter.test.tsx b/packages/manager/src/features/CloudPulse/shared/CloudPulseTagsFilter.test.tsx index d002827b82b..13ab105dcdf 100644 --- a/packages/manager/src/features/CloudPulse/shared/CloudPulseTagsFilter.test.tsx +++ b/packages/manager/src/features/CloudPulse/shared/CloudPulseTagsFilter.test.tsx @@ -1,7 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; -import { linodeFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { CloudPulseTagsSelect } from './CloudPulseTagsFilter'; diff --git a/packages/manager/src/features/Domains/CreateDomain/CreateDomain.tsx b/packages/manager/src/features/Domains/CreateDomain/CreateDomain.tsx index 8e5bb821446..1245e43d2cd 100644 --- a/packages/manager/src/features/Domains/CreateDomain/CreateDomain.tsx +++ b/packages/manager/src/features/Domains/CreateDomain/CreateDomain.tsx @@ -1,4 +1,5 @@ import { useGrants, useProfile } from '@linode/queries'; +import { LinodeSelect } from '@linode/shared'; import { ActionsPanel, Autocomplete, @@ -22,7 +23,6 @@ import { DocumentTitleSegment } from 'src/components/DocumentTitle'; import { LandingHeader } from 'src/components/LandingHeader'; import { MultipleIPInput } from 'src/components/MultipleIPInput/MultipleIPInput'; import { reportException } from 'src/exceptionReporting'; -import { LinodeSelect } from 'src/features/Linodes/LinodeSelect/LinodeSelect'; import { NodeBalancerSelect } from 'src/features/NodeBalancers/NodeBalancerSelect'; import { useCreateDomainMutation } from 'src/queries/domains'; import { sendCreateDomainEvent } from 'src/utilities/analytics/customEventAnalytics'; diff --git a/packages/manager/src/features/Domains/EditDomainDrawer.test.tsx b/packages/manager/src/features/Domains/EditDomainDrawer.test.tsx index 5d5ed3a886e..53072f13f88 100644 --- a/packages/manager/src/features/Domains/EditDomainDrawer.test.tsx +++ b/packages/manager/src/features/Domains/EditDomainDrawer.test.tsx @@ -1,4 +1,4 @@ -import { linodeFactory } from 'src/factories/linodes'; +import { linodeFactory } from '@linode/utilities'; import { generateDefaultDomainRecords } from './domainUtils'; diff --git a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/AddLinodeDrawer.tsx b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/AddLinodeDrawer.tsx index c2059a723cd..e7b9c51e249 100644 --- a/packages/manager/src/features/Firewalls/FirewallDetail/Devices/AddLinodeDrawer.tsx +++ b/packages/manager/src/features/Firewalls/FirewallDetail/Devices/AddLinodeDrawer.tsx @@ -4,6 +4,7 @@ import { useGrants, useProfile, } from '@linode/queries'; +import { LinodeSelect } from '@linode/shared'; import { ActionsPanel, Drawer, Notice } from '@linode/ui'; import { useTheme } from '@mui/material'; import { useParams } from '@tanstack/react-router'; @@ -13,7 +14,6 @@ import * as React from 'react'; import { Link } from 'src/components/Link'; import { NotFound } from 'src/components/NotFound'; import { SupportLink } from 'src/components/SupportLink'; -import { LinodeSelect } from 'src/features/Linodes/LinodeSelect/LinodeSelect'; import { getAPIErrorOrDefault } from 'src/utilities/errorUtils'; import { getEntityIdsByPermission } from 'src/utilities/grants'; import { sanitizeHTML } from 'src/utilities/sanitizeHTML'; diff --git a/packages/manager/src/features/Firewalls/FirewallLanding/CustomFirewallFields.tsx b/packages/manager/src/features/Firewalls/FirewallLanding/CustomFirewallFields.tsx index 6101ab30f25..6ad938a0741 100644 --- a/packages/manager/src/features/Firewalls/FirewallLanding/CustomFirewallFields.tsx +++ b/packages/manager/src/features/Firewalls/FirewallLanding/CustomFirewallFields.tsx @@ -1,4 +1,5 @@ import { useAllFirewallsQuery, useGrants } from '@linode/queries'; +import { LinodeSelect } from '@linode/shared'; import { Box, FormControlLabel, @@ -12,7 +13,6 @@ import { Controller, useFormContext } from 'react-hook-form'; import { Link } from 'src/components/Link'; import { FIREWALL_LIMITS_CONSIDERATIONS_LINK } from 'src/constants'; -import { LinodeSelect } from 'src/features/Linodes/LinodeSelect/LinodeSelect'; import { NodeBalancerSelect } from 'src/features/NodeBalancers/NodeBalancerSelect'; import { useAccountManagement } from 'src/hooks/useAccountManagement'; import { sendLinodeCreateFormInputEvent } from 'src/utilities/analytics/formEventAnalytics'; diff --git a/packages/manager/src/features/IAM/Users/UsersTable/UserRow.tsx b/packages/manager/src/features/IAM/Users/UsersTable/UserRow.tsx index 663411c353d..cf584fab3d9 100644 --- a/packages/manager/src/features/IAM/Users/UsersTable/UserRow.tsx +++ b/packages/manager/src/features/IAM/Users/UsersTable/UserRow.tsx @@ -1,3 +1,4 @@ +import { useProfile } from '@linode/queries'; import { Box, Chip, Stack, Typography } from '@linode/ui'; import { capitalize } from '@linode/utilities'; import { useTheme } from '@mui/material/styles'; @@ -10,7 +11,6 @@ import { MaskableText } from 'src/components/MaskableText/MaskableText'; import { StatusIcon } from 'src/components/StatusIcon/StatusIcon'; import { TableCell } from 'src/components/TableCell'; import { TableRow } from 'src/components/TableRow'; -import { useProfile } from '@linode/queries'; import { UsersActionMenu } from './UsersActionMenu'; diff --git a/packages/manager/src/features/Images/ImagesCreate/CreateImageTab.test.tsx b/packages/manager/src/features/Images/ImagesCreate/CreateImageTab.test.tsx index 454d63aa156..7005156946f 100644 --- a/packages/manager/src/features/Images/ImagesCreate/CreateImageTab.test.tsx +++ b/packages/manager/src/features/Images/ImagesCreate/CreateImageTab.test.tsx @@ -1,9 +1,9 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import { userEvent } from '@testing-library/user-event'; import React from 'react'; -import { imageFactory, linodeDiskFactory, linodeFactory } from 'src/factories'; +import { imageFactory, linodeDiskFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithThemeAndRouter } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Images/ImagesCreate/CreateImageTab.tsx b/packages/manager/src/features/Images/ImagesCreate/CreateImageTab.tsx index 7c36bbf4345..1f4d975f7b8 100644 --- a/packages/manager/src/features/Images/ImagesCreate/CreateImageTab.tsx +++ b/packages/manager/src/features/Images/ImagesCreate/CreateImageTab.tsx @@ -1,4 +1,11 @@ import { yupResolver } from '@hookform/resolvers/yup'; +import { + useAllLinodeDisksQuery, + useLinodeQuery, + useGrants, + useRegionsQuery, +} from '@linode/queries'; +import { LinodeSelect } from '@linode/shared'; import { Autocomplete, Box, @@ -20,17 +27,10 @@ import { Controller, useForm } from 'react-hook-form'; import { Link } from 'src/components/Link'; import { TagsInput } from 'src/components/TagsInput/TagsInput'; import { getRestrictedResourceText } from 'src/features/Account/utils'; -import { LinodeSelect } from 'src/features/Linodes/LinodeSelect/LinodeSelect'; import { useFlags } from 'src/hooks/useFlags'; import { useRestrictedGlobalGrantCheck } from 'src/hooks/useRestrictedGlobalGrantCheck'; import { useEventsPollingActions } from 'src/queries/events/events'; import { useCreateImageMutation } from 'src/queries/images'; -import { - useAllLinodeDisksQuery, - useLinodeQuery, - useGrants, - useRegionsQuery, -} from '@linode/queries'; import type { CreateImagePayload } from '@linode/api-v4'; diff --git a/packages/manager/src/features/Images/ImagesLanding/RebuildImageDrawer.test.tsx b/packages/manager/src/features/Images/ImagesLanding/RebuildImageDrawer.test.tsx index d809685e05c..e9a07149a7e 100644 --- a/packages/manager/src/features/Images/ImagesLanding/RebuildImageDrawer.test.tsx +++ b/packages/manager/src/features/Images/ImagesLanding/RebuildImageDrawer.test.tsx @@ -1,7 +1,8 @@ +import { linodeFactory } from '@linode/utilities'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import { imageFactory, linodeFactory } from 'src/factories'; +import { imageFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Images/ImagesLanding/RebuildImageDrawer.tsx b/packages/manager/src/features/Images/ImagesLanding/RebuildImageDrawer.tsx index 60db38ca5b8..5bac747db58 100644 --- a/packages/manager/src/features/Images/ImagesLanding/RebuildImageDrawer.tsx +++ b/packages/manager/src/features/Images/ImagesLanding/RebuildImageDrawer.tsx @@ -1,3 +1,4 @@ +import { LinodeSelect } from '@linode/shared'; import { ActionsPanel, Divider, Drawer, Notice, Stack } from '@linode/ui'; import * as React from 'react'; import { Controller, useForm } from 'react-hook-form'; @@ -7,7 +8,6 @@ import { useHistory } from 'react-router-dom'; import { DescriptionList } from 'src/components/DescriptionList/DescriptionList'; import { NotFound } from 'src/components/NotFound'; import { REBUILD_LINODE_IMAGE_PARAM_NAME } from 'src/features/Linodes/LinodesDetail/LinodeRebuild/utils'; -import { LinodeSelect } from 'src/features/Linodes/LinodeSelect/LinodeSelect'; import { useImageAndLinodeGrantCheck } from '../utils'; diff --git a/packages/manager/src/features/Images/utils.test.tsx b/packages/manager/src/features/Images/utils.test.tsx index eba0b26ca23..875078cb129 100644 --- a/packages/manager/src/features/Images/utils.test.tsx +++ b/packages/manager/src/features/Images/utils.test.tsx @@ -1,4 +1,6 @@ -import { eventFactory, imageFactory, linodeFactory } from 'src/factories'; +import { linodeFactory } from '@linode/utilities'; + +import { eventFactory, imageFactory } from 'src/factories'; import { getEventsForImages, getImageLabelForLinode } from './utils'; diff --git a/packages/manager/src/features/Kubernetes/CreateCluster/ClusterTierPanel.tsx b/packages/manager/src/features/Kubernetes/CreateCluster/ClusterTierPanel.tsx index cae4ce58950..6a0db68e26c 100644 --- a/packages/manager/src/features/Kubernetes/CreateCluster/ClusterTierPanel.tsx +++ b/packages/manager/src/features/Kubernetes/CreateCluster/ClusterTierPanel.tsx @@ -1,10 +1,10 @@ +import { useAccount } from '@linode/queries'; import { Stack, Typography } from '@linode/ui'; import { useMediaQuery } from '@mui/material'; import React from 'react'; import { DocsLink } from 'src/components/DocsLink/DocsLink'; import { SelectionCard } from 'src/components/SelectionCard/SelectionCard'; -import { useAccount } from '@linode/queries'; import { CLUSTER_TIER_DOCS_LINK } from '../constants'; import { diff --git a/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/NodeRow.tsx b/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/NodeRow.tsx index 6b581166619..e0b54231505 100644 --- a/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/NodeRow.tsx +++ b/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/NodeRow.tsx @@ -1,3 +1,4 @@ +import { usePreferences } from '@linode/queries'; import { Box, Typography } from '@linode/ui'; import Grid from '@mui/material/Grid2'; import * as React from 'react'; @@ -9,7 +10,6 @@ import { TableCell } from 'src/components/TableCell'; import { TableRow } from 'src/components/TableRow'; import { transitionText } from 'src/features/Linodes/transitions'; import { useInProgressEvents } from 'src/queries/events/events'; -import { usePreferences } from '@linode/queries'; import NodeActionMenu from './NodeActionMenu'; diff --git a/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/NodeTable.test.tsx b/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/NodeTable.test.tsx index a6610035774..6dd7533fcab 100644 --- a/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/NodeTable.test.tsx +++ b/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/NodeTable.test.tsx @@ -1,8 +1,8 @@ +import { linodeFactory } from '@linode/utilities'; import { DateTime } from 'luxon'; import * as React from 'react'; import { kubeLinodeFactory } from 'src/factories/kubernetesCluster'; -import { linodeFactory } from 'src/factories/linodes'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Kubernetes/kubeUtils.test.ts b/packages/manager/src/features/Kubernetes/kubeUtils.test.ts index 9ea22c18369..7bfcbbded8d 100644 --- a/packages/manager/src/features/Kubernetes/kubeUtils.test.ts +++ b/packages/manager/src/features/Kubernetes/kubeUtils.test.ts @@ -1,3 +1,4 @@ +import { linodeTypeFactory } from '@linode/utilities'; import { renderHook } from '@testing-library/react'; import { @@ -5,7 +6,6 @@ import { kubeLinodeFactory, kubernetesEnterpriseTierVersionFactory, kubernetesVersionFactory, - linodeTypeFactory, nodePoolFactory, } from 'src/factories'; import { extendType } from 'src/utilities/extendType'; diff --git a/packages/manager/src/features/Linodes/AccessTable.test.tsx b/packages/manager/src/features/Linodes/AccessTable.test.tsx index 92f564fb722..be440b75923 100644 --- a/packages/manager/src/features/Linodes/AccessTable.test.tsx +++ b/packages/manager/src/features/Linodes/AccessTable.test.tsx @@ -1,7 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import { fireEvent } from '@testing-library/react'; import * as React from 'react'; -import { linodeFactory } from 'src/factories'; import { PUBLIC_IP_ADDRESSES_TOOLTIP_TEXT } from 'src/features/Linodes/PublicIPAddressesTooltip'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/CloneLanding/Details.tsx b/packages/manager/src/features/Linodes/CloneLanding/Details.tsx index b39c9e304b9..4c37df080cb 100644 --- a/packages/manager/src/features/Linodes/CloneLanding/Details.tsx +++ b/packages/manager/src/features/Linodes/CloneLanding/Details.tsx @@ -1,3 +1,5 @@ +import { useRegionsQuery } from '@linode/queries'; +import { LinodeSelect } from '@linode/shared'; import { ActionsPanel, Button, @@ -13,8 +15,6 @@ import { useTheme } from '@mui/material/styles'; import * as React from 'react'; import { Link } from 'src/components/Link'; -import { LinodeSelect } from 'src/features/Linodes/LinodeSelect/LinodeSelect'; -import { useRegionsQuery } from '@linode/queries'; import { StyledButton, diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Region.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Region.test.tsx index 1aaabaef4bb..7c2f3f26d45 100644 --- a/packages/manager/src/features/Linodes/LinodeCreate/Region.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeCreate/Region.test.tsx @@ -1,15 +1,13 @@ -import { regionFactory } from '@linode/utilities'; +import { + linodeFactory, + linodeTypeFactory, + regionFactory, +} from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import { userEvent } from '@testing-library/user-event'; import React from 'react'; -import { - grantsFactory, - imageFactory, - linodeFactory, - linodeTypeFactory, - profileFactory, -} from 'src/factories'; +import { grantsFactory, imageFactory, profileFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithThemeAndHookFormContext } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Summary/utilities.test.ts b/packages/manager/src/features/Linodes/LinodeCreate/Summary/utilities.test.ts index 1da6463ccd4..d985577bc93 100644 --- a/packages/manager/src/features/Linodes/LinodeCreate/Summary/utilities.test.ts +++ b/packages/manager/src/features/Linodes/LinodeCreate/Summary/utilities.test.ts @@ -1,4 +1,4 @@ -import { linodeTypeFactory } from 'src/factories'; +import { linodeTypeFactory } from '@linode/utilities'; import { getLinodePrice } from './utilities'; diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Tabs/Backups/BackupSelect.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Tabs/Backups/BackupSelect.test.tsx index 11748fa03f1..b983da7834f 100644 --- a/packages/manager/src/features/Linodes/LinodeCreate/Tabs/Backups/BackupSelect.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeCreate/Tabs/Backups/BackupSelect.test.tsx @@ -1,6 +1,6 @@ +import { backupFactory, linodeFactory } from '@linode/utilities'; import React from 'react'; -import { backupFactory, linodeFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithThemeAndHookFormContext } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTable.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTable.test.tsx index 7755d89ffb5..7882c83a47a 100644 --- a/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTable.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTable.test.tsx @@ -1,7 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import { HttpResponse, http } from 'msw'; import React from 'react'; -import { linodeFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { server } from 'src/mocks/testServer'; import { diff --git a/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTableRow.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTableRow.test.tsx index 2e10389b690..159a694c3a1 100644 --- a/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTableRow.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeCreate/shared/LinodeSelectTableRow.test.tsx @@ -1,8 +1,8 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import { imageFactory, linodeFactory, typeFactory } from 'src/factories'; +import { imageFactory, typeFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { diff --git a/packages/manager/src/features/Linodes/LinodeCreate/shared/SelectLinodeCard.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/shared/SelectLinodeCard.test.tsx index 787793169c0..ece6e5e3534 100644 --- a/packages/manager/src/features/Linodes/LinodeCreate/shared/SelectLinodeCard.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeCreate/shared/SelectLinodeCard.test.tsx @@ -1,7 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import { fireEvent } from '@testing-library/react'; import React from 'react'; -import { linodeFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { SelectLinodeCard } from './SelectLinodeCard'; diff --git a/packages/manager/src/features/Linodes/LinodeCreate/utilities.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/utilities.test.tsx index f53293418a0..48b3a4d64f2 100644 --- a/packages/manager/src/features/Linodes/LinodeCreate/utilities.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeCreate/utilities.test.tsx @@ -1,4 +1,5 @@ import { + createLinodeRequestFactory, getIsLegacyInterfaceArray, linodeConfigInterfaceFactory, linodeInterfaceFactoryPublic, @@ -6,8 +7,6 @@ import { linodeInterfaceFactoryVlan, } from '@linode/utilities'; -import { createLinodeRequestFactory } from 'src/factories'; - import { getDefaultInterfaceGenerationFromAccountSetting, getInterfacesPayload, diff --git a/packages/manager/src/features/Linodes/LinodeEntityDetail.test.tsx b/packages/manager/src/features/Linodes/LinodeEntityDetail.test.tsx index 0e048523048..52c27929e3a 100644 --- a/packages/manager/src/features/Linodes/LinodeEntityDetail.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeEntityDetail.test.tsx @@ -1,4 +1,5 @@ import { queryClientFactory } from '@linode/queries'; +import { linodeFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import * as React from 'react'; @@ -6,7 +7,6 @@ import { accountFactory, firewallFactory, kubernetesClusterFactory, - linodeFactory, subnetAssignedLinodeDataFactory, subnetFactory, vpcFactory, diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/CaptureSnapshot.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/CaptureSnapshot.test.tsx index eb8f95f0d2b..3513cf40806 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/CaptureSnapshot.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/CaptureSnapshot.test.tsx @@ -1,7 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; -import { linodeFactory } from 'src/factories/linodes'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/EnableBackupsDialog.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/EnableBackupsDialog.test.tsx index 074098faef1..c2c89ed4699 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/EnableBackupsDialog.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/EnableBackupsDialog.test.tsx @@ -1,7 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import * as React from 'react'; import { DISK_ENCRYPTION_BACKUPS_CAVEAT_COPY } from 'src/components/Encryption/constants'; -import { linodeFactory } from 'src/factories'; import { typeFactory } from 'src/factories/types'; import { PRICES_RELOAD_ERROR_NOTICE_TEXT } from 'src/utilities/pricing/constants'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackups.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackups.test.tsx index ca314b4a045..7e5f5bf84cd 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackups.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/LinodeBackups.test.tsx @@ -1,7 +1,7 @@ import { LinodeBackupsResponse } from '@linode/api-v4'; +import { backupFactory, linodeFactory } from '@linode/utilities'; import * as React from 'react'; -import { backupFactory, linodeFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/RestoreToLinodeDrawer.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/RestoreToLinodeDrawer.test.tsx index e951d207cae..055a4f62cce 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/RestoreToLinodeDrawer.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/RestoreToLinodeDrawer.test.tsx @@ -1,6 +1,6 @@ +import { backupFactory, linodeFactory } from '@linode/utilities'; import * as React from 'react'; -import { backupFactory, linodeFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/ScheduleSettings.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/ScheduleSettings.test.tsx index 59b4d5826e2..432ce683b0f 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/ScheduleSettings.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/ScheduleSettings.test.tsx @@ -1,9 +1,9 @@ +import { linodeFactory } from '@linode/utilities'; +import { userEvent } from '@testing-library/user-event'; import { Settings } from 'luxon'; import * as React from 'react'; -import { userEvent } from '@testing-library/user-event'; import { profileFactory } from 'src/factories'; -import { linodeFactory } from 'src/factories/linodes'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigDialog.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigDialog.test.tsx index e8f29ee3dce..05f0f7af2aa 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigDialog.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigDialog.test.tsx @@ -1,7 +1,7 @@ -import { linodeConfigInterfaceFactory } from '@linode/utilities'; +import { linodeConfigInterfaceFactory, linodeFactory } from '@linode/utilities'; import React from 'react'; -import { linodeConfigFactory, linodeFactory } from 'src/factories'; +import { linodeConfigFactory } from 'src/factories'; import { LKE_ENTERPRISE_LINODE_VPC_CONFIG_WARNING } from 'src/features/Kubernetes/constants'; import { LINODE_UNREACHABLE_HELPER_TEXT, @@ -11,8 +11,11 @@ import { import 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; -import { LinodeConfigDialog, padList } from './LinodeConfigDialog'; -import { unrecommendedConfigNoticeSelector } from './LinodeConfigDialog'; +import { + LinodeConfigDialog, + padList, + unrecommendedConfigNoticeSelector, +} from './LinodeConfigDialog'; import type { MemoryLimit } from './LinodeConfigDialog'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigs.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigs.test.tsx index 0f6d8c4118a..5a507711805 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigs.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeConfigs/LinodeConfigs.test.tsx @@ -1,6 +1,6 @@ +import { linodeFactory } from '@linode/utilities'; import React from 'react'; -import { linodeFactory } from 'src/factories'; import 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeIPAddressRow.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeIPAddressRow.test.tsx index a00e6b8a60b..2f63014b5f0 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeIPAddressRow.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/LinodeIPAddressRow.test.tsx @@ -1,8 +1,10 @@ -import { linodeConfigInterfaceFactoryWithVPC } from '@linode/utilities'; +import { + linodeConfigInterfaceFactoryWithVPC, + linodeIPFactory, +} from '@linode/utilities'; import { fireEvent } from '@testing-library/react'; import * as React from 'react'; -import { linodeIPFactory } from 'src/factories/linodes'; import { ipResponseToDisplayRows, vpcConfigInterfaceToDisplayRows, diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/NetworkingSummaryPanel/NetworkTransfer.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/NetworkingSummaryPanel/NetworkTransfer.test.tsx index cad53f7fbe1..ebb18467c96 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/NetworkingSummaryPanel/NetworkTransfer.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeNetworking/NetworkingSummaryPanel/NetworkTransfer.test.tsx @@ -1,7 +1,7 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeTransferFactory, regionFactory } from '@linode/utilities'; import React from 'react'; -import { accountTransferFactory, linodeTransferFactory } from 'src/factories'; +import { accountTransferFactory } from 'src/factories'; import { typeFactory } from 'src/factories/types'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeRescue/RescueDialog.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeRescue/RescueDialog.test.tsx index acc5bd0bdc8..b6abe693b1c 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeRescue/RescueDialog.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeRescue/RescueDialog.test.tsx @@ -1,6 +1,6 @@ +import { linodeFactory } from '@linode/utilities'; import * as React from 'react'; -import { linodeFactory } from 'src/factories/linodes'; import { typeFactory } from 'src/factories/types'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettingsLabelPanel.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettingsLabelPanel.test.tsx index 789f3ff2d28..9d5a382025c 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettingsLabelPanel.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeSettings/LinodeSettingsLabelPanel.test.tsx @@ -1,7 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import * as React from 'react'; -import { linodeFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/CreateDiskDrawer.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/CreateDiskDrawer.test.tsx index c7f1ca7228a..a81e22e3f4b 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/CreateDiskDrawer.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/CreateDiskDrawer.test.tsx @@ -1,6 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import React from 'react'; -import { linodeDiskFactory, linodeFactory } from 'src/factories'; +import { linodeDiskFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDisks.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDisks.test.tsx index a2abaeeee7f..1744c8e6eb3 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDisks.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeDisks.test.tsx @@ -1,9 +1,9 @@ +import { linodeFactory } from '@linode/utilities'; import React from 'react'; import { linodeDiskFactory } from 'src/factories'; -import { linodeFactory } from 'src/factories/linodes'; import { makeResourcePage } from 'src/mocks/serverHandlers'; -import { http, HttpResponse, server } from 'src/mocks/testServer'; +import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { LinodeDisks } from './LinodeDisks'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeVolumes.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeVolumes.test.tsx index 05cf8a05dc7..60c05b64ddd 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeVolumes.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/LinodeVolumes.test.tsx @@ -1,6 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import * as React from 'react'; -import { accountFactory, linodeFactory, volumeFactory } from 'src/factories'; +import { accountFactory, volumeFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/ResizeDiskDrawer.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/ResizeDiskDrawer.test.tsx index c0d28d55a60..18d4b4873f0 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/ResizeDiskDrawer.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeStorage/ResizeDiskDrawer.test.tsx @@ -1,6 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import React from 'react'; -import { linodeDiskFactory, linodeFactory } from 'src/factories'; +import { linodeDiskFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodesLanding/LinodeActionMenu/LinodeActionMenu.test.tsx b/packages/manager/src/features/Linodes/LinodesLanding/LinodeActionMenu/LinodeActionMenu.test.tsx index 4ef2719d2b4..818fc6d6857 100644 --- a/packages/manager/src/features/Linodes/LinodesLanding/LinodeActionMenu/LinodeActionMenu.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesLanding/LinodeActionMenu/LinodeActionMenu.test.tsx @@ -1,10 +1,9 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeBackupsFactory, regionFactory } from '@linode/utilities'; import { screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; import { extendedTypes } from 'src/__data__/ExtendedType'; -import { linodeBackupsFactory } from 'src/factories/linodes'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { LinodeActionMenu } from './LinodeActionMenu'; diff --git a/packages/manager/src/features/Linodes/LinodesLanding/LinodeRow/LinodeRow.test.tsx b/packages/manager/src/features/Linodes/LinodesLanding/LinodeRow/LinodeRow.test.tsx index 7788546de9b..84b7d8bf6b1 100644 --- a/packages/manager/src/features/Linodes/LinodesLanding/LinodeRow/LinodeRow.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesLanding/LinodeRow/LinodeRow.test.tsx @@ -1,7 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; -import { linodeFactory } from 'src/factories'; import { renderWithTheme, wrapWithTableBody } from 'src/utilities/testHelpers'; import { LinodeRow, RenderFlag } from './LinodeRow'; diff --git a/packages/manager/src/features/Linodes/SMTPRestrictionText.test.tsx b/packages/manager/src/features/Linodes/SMTPRestrictionText.test.tsx index 7884196c7ce..4ae6c09252b 100644 --- a/packages/manager/src/features/Linodes/SMTPRestrictionText.test.tsx +++ b/packages/manager/src/features/Linodes/SMTPRestrictionText.test.tsx @@ -1,7 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import * as React from 'react'; -import { linodeFactory } from 'src/factories'; import { accountFactory } from 'src/factories/account'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/NodeBalancers/ConfigNodeIPSelect.utils.test.ts b/packages/manager/src/features/NodeBalancers/ConfigNodeIPSelect.utils.test.ts index e95b738d915..aa02cc8cedb 100644 --- a/packages/manager/src/features/NodeBalancers/ConfigNodeIPSelect.utils.test.ts +++ b/packages/manager/src/features/NodeBalancers/ConfigNodeIPSelect.utils.test.ts @@ -1,4 +1,4 @@ -import { linodeFactory } from 'src/factories'; +import { linodeFactory } from '@linode/utilities'; import { getPrivateIPOptions } from './ConfigNodeIPSelect.utils'; diff --git a/packages/manager/src/features/NodeBalancers/NodeBalancerDeleteDialog.test.tsx b/packages/manager/src/features/NodeBalancers/NodeBalancerDeleteDialog.test.tsx index fc5c22b3744..24491fc02f4 100644 --- a/packages/manager/src/features/NodeBalancers/NodeBalancerDeleteDialog.test.tsx +++ b/packages/manager/src/features/NodeBalancers/NodeBalancerDeleteDialog.test.tsx @@ -1,7 +1,7 @@ +import { nodeBalancerFactory } from '@linode/utilities'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; -import { nodeBalancerFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { NodeBalancerDeleteDialog } from './NodeBalancerDeleteDialog'; diff --git a/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerConfigurations.test.tsx b/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerConfigurations.test.tsx index 38f94168524..7a8835ae565 100644 --- a/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerConfigurations.test.tsx +++ b/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerConfigurations.test.tsx @@ -1,11 +1,11 @@ +import { + nodeBalancerConfigFactory, + nodeBalancerConfigNodeFactory, +} from '@linode/utilities'; import { waitForElementToBeRemoved } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; -import { - nodeBalancerConfigFactory, - nodeBalancerConfigNodeFactory, -} from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSettings.test.tsx b/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSettings.test.tsx index 79ff1a21e05..3cbfe38e965 100644 --- a/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSettings.test.tsx +++ b/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSettings.test.tsx @@ -1,6 +1,7 @@ +import { nodeBalancerFactory } from '@linode/utilities'; import * as React from 'react'; -import { firewallFactory, nodeBalancerFactory } from 'src/factories'; +import { firewallFactory } from 'src/factories'; import { useIsResourceRestricted } from 'src/hooks/useIsResourceRestricted'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSummary/SummaryPanel.test.tsx b/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSummary/SummaryPanel.test.tsx index c4f8ba712b5..41dc4477c66 100644 --- a/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSummary/SummaryPanel.test.tsx +++ b/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSummary/SummaryPanel.test.tsx @@ -1,11 +1,11 @@ -import { waitFor } from '@testing-library/react'; -import * as React from 'react'; - import { - firewallFactory, nodeBalancerConfigFactory, nodeBalancerFactory, -} from 'src/factories'; +} from '@linode/utilities'; +import { waitFor } from '@testing-library/react'; +import * as React from 'react'; + +import { firewallFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSummary/TablesPanel.test.tsx b/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSummary/TablesPanel.test.tsx index 5b266838373..c4d1f2d13ec 100644 --- a/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSummary/TablesPanel.test.tsx +++ b/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSummary/TablesPanel.test.tsx @@ -1,6 +1,6 @@ +import { nodeBalancerFactory } from '@linode/utilities'; import * as React from 'react'; -import { nodeBalancerFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { TablesPanel } from './TablesPanel'; diff --git a/packages/manager/src/features/NodeBalancers/NodeBalancerSelect.test.tsx b/packages/manager/src/features/NodeBalancers/NodeBalancerSelect.test.tsx index 4a3d494c358..4f737531ed4 100644 --- a/packages/manager/src/features/NodeBalancers/NodeBalancerSelect.test.tsx +++ b/packages/manager/src/features/NodeBalancers/NodeBalancerSelect.test.tsx @@ -1,8 +1,8 @@ +import { nodeBalancerFactory } from '@linode/utilities'; import { screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import { nodeBalancerFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { NodeBalancerSelect } from './NodeBalancerSelect'; diff --git a/packages/manager/src/features/NodeBalancers/NodeBalancerSelect.tsx b/packages/manager/src/features/NodeBalancers/NodeBalancerSelect.tsx index e976126eba0..be1beed0236 100644 --- a/packages/manager/src/features/NodeBalancers/NodeBalancerSelect.tsx +++ b/packages/manager/src/features/NodeBalancers/NodeBalancerSelect.tsx @@ -1,11 +1,10 @@ +import { useAllNodeBalancersQuery } from '@linode/queries'; import { Autocomplete, CustomPopper } from '@linode/ui'; +import { mapIdsToDevices } from '@linode/utilities'; import CloseIcon from '@mui/icons-material/Close'; import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; import * as React from 'react'; -import { useAllNodeBalancersQuery } from '@linode/queries'; -import { mapIdsToDevices } from 'src/utilities/mapIdsToDevices'; - import type { APIError, NodeBalancer } from '@linode/api-v4'; import type { SxProps, Theme } from '@mui/material/styles'; diff --git a/packages/manager/src/features/NodeBalancers/NodeBalancersLanding/NodeBalancerTableRow.test.tsx b/packages/manager/src/features/NodeBalancers/NodeBalancersLanding/NodeBalancerTableRow.test.tsx index 0eb8e8793af..35f1b35eba9 100644 --- a/packages/manager/src/features/NodeBalancers/NodeBalancersLanding/NodeBalancerTableRow.test.tsx +++ b/packages/manager/src/features/NodeBalancers/NodeBalancersLanding/NodeBalancerTableRow.test.tsx @@ -1,8 +1,8 @@ import { breakpoints } from '@linode/ui'; +import { nodeBalancerFactory } from '@linode/utilities'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; -import { nodeBalancerFactory } from 'src/factories'; import { useIsResourceRestricted } from 'src/hooks/useIsResourceRestricted'; import { renderWithTheme, resizeScreenSize } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/NodeBalancers/NodeBalancersLanding/NodeBalancersLanding.test.tsx b/packages/manager/src/features/NodeBalancers/NodeBalancersLanding/NodeBalancersLanding.test.tsx index e3771063f44..0f393a69699 100644 --- a/packages/manager/src/features/NodeBalancers/NodeBalancersLanding/NodeBalancersLanding.test.tsx +++ b/packages/manager/src/features/NodeBalancers/NodeBalancersLanding/NodeBalancersLanding.test.tsx @@ -1,7 +1,7 @@ +import { nodeBalancerFactory } from '@linode/utilities'; import { waitForElementToBeRemoved } from '@testing-library/react'; import * as React from 'react'; -import { nodeBalancerFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { mockMatchMedia, renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsAssignLinodesDrawer.test.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsAssignLinodesDrawer.test.tsx index efa6105d883..f9c399301bb 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsAssignLinodesDrawer.test.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsAssignLinodesDrawer.test.tsx @@ -1,8 +1,8 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import { fireEvent } from '@testing-library/react'; import * as React from 'react'; -import { linodeFactory, placementGroupFactory } from 'src/factories'; +import { placementGroupFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { PlacementGroupsAssignLinodesDrawer } from './PlacementGroupsAssignLinodesDrawer'; diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsAssignLinodesDrawer.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsAssignLinodesDrawer.tsx index 3aa90c75ad2..049c9b512b9 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsAssignLinodesDrawer.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsAssignLinodesDrawer.tsx @@ -7,6 +7,7 @@ import { useAllPlacementGroupsQuery, useAssignLinodesToPlacementGroup, } from '@linode/queries'; +import { LinodeSelect } from '@linode/shared'; import { ActionsPanel, Box, @@ -24,7 +25,6 @@ import { DescriptionList } from 'src/components/DescriptionList/DescriptionList' import { NotFound } from 'src/components/NotFound'; import { getErrorStringOrDefault } from 'src/utilities/errorUtils'; -import { LinodeSelect } from '../Linodes/LinodeSelect/LinodeSelect'; import { getLinodesFromAllPlacementGroups, hasPlacementGroupReachedCapacity, diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsDeleteModal.test.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsDeleteModal.test.tsx index b28a18d1284..e5b10f4cd75 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsDeleteModal.test.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsDeleteModal.test.tsx @@ -1,7 +1,8 @@ +import { linodeFactory } from '@linode/utilities'; import { userEvent } from '@testing-library/user-event'; import * as React from 'react'; -import { linodeFactory, placementGroupFactory } from 'src/factories'; +import { placementGroupFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { PlacementGroupsDeleteModal } from './PlacementGroupsDeleteModal'; diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsDetail/PlacementGroupsDetail.test.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsDetail/PlacementGroupsDetail.test.tsx index b827b445d98..734e673b6a2 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsDetail/PlacementGroupsDetail.test.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsDetail/PlacementGroupsDetail.test.tsx @@ -1,7 +1,7 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import * as React from 'react'; -import { linodeFactory, placementGroupFactory } from 'src/factories'; +import { placementGroupFactory } from 'src/factories'; import { renderWithThemeAndRouter } from 'src/utilities/testHelpers'; import { PlacementGroupsDetail } from './PlacementGroupsDetail'; diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsDetail/PlacementGroupsLinodes/PlacementGroupsLinodesTable.test.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsDetail/PlacementGroupsLinodes/PlacementGroupsLinodesTable.test.tsx index 56a41adce9e..8bdfa94325e 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsDetail/PlacementGroupsLinodes/PlacementGroupsLinodesTable.test.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsDetail/PlacementGroupsLinodes/PlacementGroupsLinodesTable.test.tsx @@ -1,6 +1,6 @@ +import { linodeFactory } from '@linode/utilities'; import * as React from 'react'; -import { linodeFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { PlacementGroupsLinodesTable } from './PlacementGroupsLinodesTable'; diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsDetail/PlacementGroupsLinodes/PlacementGroupsLinodesTableRow.test.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsDetail/PlacementGroupsLinodes/PlacementGroupsLinodesTableRow.test.tsx index befbd550601..f55395c1058 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsDetail/PlacementGroupsLinodes/PlacementGroupsLinodesTableRow.test.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsDetail/PlacementGroupsLinodes/PlacementGroupsLinodesTableRow.test.tsx @@ -1,8 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import * as React from 'react'; -import { linodeFactory } from 'src/factories'; -import { wrapWithTableBody } from 'src/utilities/testHelpers'; -import { renderWithTheme } from 'src/utilities/testHelpers'; +import { wrapWithTableBody, renderWithTheme } from 'src/utilities/testHelpers'; import { PlacementGroupsLinodesTableRow } from './PlacementGroupsLinodesTableRow'; diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsRow.test.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsRow.test.tsx index b5c159373c5..ae1c8bc754c 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsRow.test.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsLanding/PlacementGroupsRow.test.tsx @@ -1,7 +1,7 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import * as React from 'react'; -import { linodeFactory, placementGroupFactory } from 'src/factories'; +import { placementGroupFactory } from 'src/factories'; import { renderWithTheme, resizeScreenSize, diff --git a/packages/manager/src/features/PlacementGroups/PlacementGroupsUnassignModal.test.tsx b/packages/manager/src/features/PlacementGroups/PlacementGroupsUnassignModal.test.tsx index 14c5ab66a7c..ec54d37749f 100644 --- a/packages/manager/src/features/PlacementGroups/PlacementGroupsUnassignModal.test.tsx +++ b/packages/manager/src/features/PlacementGroups/PlacementGroupsUnassignModal.test.tsx @@ -1,6 +1,6 @@ +import { linodeFactory } from '@linode/utilities'; import * as React from 'react'; -import { linodeFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { PlacementGroupsUnassignModal } from './PlacementGroupsUnassignModal'; diff --git a/packages/manager/src/features/PlacementGroups/utils.test.ts b/packages/manager/src/features/PlacementGroups/utils.test.ts index 63a0d4061f2..c83ba1a4698 100644 --- a/packages/manager/src/features/PlacementGroups/utils.test.ts +++ b/packages/manager/src/features/PlacementGroups/utils.test.ts @@ -1,7 +1,7 @@ -import { regionFactory } from '@linode/utilities'; +import { linodeFactory, regionFactory } from '@linode/utilities'; import { renderHook } from '@testing-library/react'; -import { linodeFactory, placementGroupFactory } from 'src/factories'; +import { placementGroupFactory } from 'src/factories'; import { getLinodesFromAllPlacementGroups, diff --git a/packages/manager/src/features/Profile/AuthenticationSettings/SMSMessaging.tsx b/packages/manager/src/features/Profile/AuthenticationSettings/SMSMessaging.tsx index bedacf7a6d6..8fcb9118f2c 100644 --- a/packages/manager/src/features/Profile/AuthenticationSettings/SMSMessaging.tsx +++ b/packages/manager/src/features/Profile/AuthenticationSettings/SMSMessaging.tsx @@ -1,3 +1,4 @@ +import { useProfile, useSMSOptOutMutation } from '@linode/queries'; import { ActionsPanel, Box, @@ -12,7 +13,6 @@ import * as React from 'react'; import { ConfirmationDialog } from 'src/components/ConfirmationDialog/ConfirmationDialog'; import { Link } from 'src/components/Link'; -import { useSMSOptOutMutation, useProfile } from '@linode/queries'; import { getFormattedNumber } from './PhoneVerification/helpers'; diff --git a/packages/manager/src/features/TopMenu/CreateMenu/ProductFamilyGroup.tsx b/packages/manager/src/features/TopMenu/CreateMenu/ProductFamilyGroup.tsx index 704ac350474..e34b5130a35 100644 --- a/packages/manager/src/features/TopMenu/CreateMenu/ProductFamilyGroup.tsx +++ b/packages/manager/src/features/TopMenu/CreateMenu/ProductFamilyGroup.tsx @@ -1,5 +1,4 @@ -import { Stack } from '@linode/ui'; -import { Typography } from '@linode/ui'; +import { Stack, Typography } from '@linode/ui'; import * as React from 'react'; import { Link } from 'src/components/Link'; diff --git a/packages/manager/src/features/VPCs/VPCDetail/SubnetAssignLinodesDrawer.test.tsx b/packages/manager/src/features/VPCs/VPCDetail/SubnetAssignLinodesDrawer.test.tsx index fbef0006bfa..f7ae9f77def 100644 --- a/packages/manager/src/features/VPCs/VPCDetail/SubnetAssignLinodesDrawer.test.tsx +++ b/packages/manager/src/features/VPCs/VPCDetail/SubnetAssignLinodesDrawer.test.tsx @@ -1,7 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import { fireEvent, waitFor } from '@testing-library/react'; import * as React from 'react'; -import { linodeFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { mockMatchMedia, renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/VPCs/VPCDetail/SubnetAssignLinodesDrawer.tsx b/packages/manager/src/features/VPCs/VPCDetail/SubnetAssignLinodesDrawer.tsx index 40896631c32..28bbf483700 100644 --- a/packages/manager/src/features/VPCs/VPCDetail/SubnetAssignLinodesDrawer.tsx +++ b/packages/manager/src/features/VPCs/VPCDetail/SubnetAssignLinodesDrawer.tsx @@ -5,6 +5,7 @@ import { useGrants, useProfile, } from '@linode/queries'; +import { LinodeSelect } from '@linode/shared'; import { Autocomplete, Box, @@ -26,7 +27,6 @@ import { DownloadCSV } from 'src/components/DownloadCSV/DownloadCSV'; import { Link } from 'src/components/Link'; import { NotFound } from 'src/components/NotFound'; import { RemovableSelectionsListTable } from 'src/components/RemovableSelectionsList/RemovableSelectionsListTable'; -import { LinodeSelect } from 'src/features/Linodes/LinodeSelect/LinodeSelect'; import { VPC_AUTO_ASSIGN_IPV4_TOOLTIP, VPC_MULTIPLE_CONFIGURATIONS_LEARN_MORE_LINK, diff --git a/packages/manager/src/features/VPCs/VPCDetail/SubnetLinodeRow.test.tsx b/packages/manager/src/features/VPCs/VPCDetail/SubnetLinodeRow.test.tsx index ff12dab22a9..b5d9afe83b7 100644 --- a/packages/manager/src/features/VPCs/VPCDetail/SubnetLinodeRow.test.tsx +++ b/packages/manager/src/features/VPCs/VPCDetail/SubnetLinodeRow.test.tsx @@ -1,6 +1,7 @@ import { linodeConfigInterfaceFactory, linodeConfigInterfaceFactoryWithVPC, + linodeFactory, } from '@linode/utilities'; import { fireEvent, @@ -15,7 +16,6 @@ import { subnetFactory, } from 'src/factories'; import { linodeConfigFactory } from 'src/factories/linodeConfigs'; -import { linodeFactory } from 'src/factories/linodes'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { diff --git a/packages/manager/src/features/Volumes/Drawers/AttachVolumeDrawer.tsx b/packages/manager/src/features/Volumes/Drawers/AttachVolumeDrawer.tsx index 6103097de90..98728539279 100644 --- a/packages/manager/src/features/Volumes/Drawers/AttachVolumeDrawer.tsx +++ b/packages/manager/src/features/Volumes/Drawers/AttachVolumeDrawer.tsx @@ -1,4 +1,5 @@ import { useAttachVolumeMutation, useGrants } from '@linode/queries'; +import { LinodeSelect } from '@linode/shared'; import { ActionsPanel, Box, @@ -16,7 +17,6 @@ import { number, object } from 'yup'; import { BLOCK_STORAGE_ENCRYPTION_SETTING_IMMUTABLE_COPY } from 'src/components/Encryption/constants'; import { useIsBlockStorageEncryptionFeatureEnabled } from 'src/components/Encryption/utils'; import { NotFound } from 'src/components/NotFound'; -import { LinodeSelect } from 'src/features/Linodes/LinodeSelect/LinodeSelect'; import { useEventsPollingActions } from 'src/queries/events/events'; import { getAPIErrorFor } from 'src/utilities/getAPIErrorFor'; diff --git a/packages/manager/src/features/Volumes/Drawers/VolumeDrawer/LinodeVolumeAddDrawer.test.tsx b/packages/manager/src/features/Volumes/Drawers/VolumeDrawer/LinodeVolumeAddDrawer.test.tsx index b1d99ae1105..336725824fb 100644 --- a/packages/manager/src/features/Volumes/Drawers/VolumeDrawer/LinodeVolumeAddDrawer.test.tsx +++ b/packages/manager/src/features/Volumes/Drawers/VolumeDrawer/LinodeVolumeAddDrawer.test.tsx @@ -1,7 +1,8 @@ +import { linodeFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import * as React from 'react'; -import { accountFactory, linodeFactory } from 'src/factories'; +import { accountFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithThemeAndRouter } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Volumes/VolumeCreate.tsx b/packages/manager/src/features/Volumes/VolumeCreate.tsx index 7384e3d5aa1..adf84b3304d 100644 --- a/packages/manager/src/features/Volumes/VolumeCreate.tsx +++ b/packages/manager/src/features/Volumes/VolumeCreate.tsx @@ -8,6 +8,7 @@ import { useRegionsQuery, useVolumeTypesQuery, } from '@linode/queries'; +import { LinodeSelect } from '@linode/shared'; import { Box, Button, @@ -45,7 +46,6 @@ import { TagsInput } from 'src/components/TagsInput/TagsInput'; import { MAX_VOLUME_SIZE } from 'src/constants'; import { EUAgreementCheckbox } from 'src/features/Account/Agreements/EUAgreementCheckbox'; import { getRestrictedResourceText } from 'src/features/Account/utils'; -import { LinodeSelect } from 'src/features/Linodes/LinodeSelect/LinodeSelect'; import { useFlags } from 'src/hooks/useFlags'; import { sendCreateVolumeEvent } from 'src/utilities/analytics/customEventAnalytics'; import { getErrorStringOrDefault } from 'src/utilities/errorUtils'; diff --git a/packages/manager/src/mocks/presets/crud/handlers/linodes.ts b/packages/manager/src/mocks/presets/crud/handlers/linodes.ts index 57acef660bb..b620cfda332 100644 --- a/packages/manager/src/mocks/presets/crud/handlers/linodes.ts +++ b/packages/manager/src/mocks/presets/crud/handlers/linodes.ts @@ -1,22 +1,19 @@ import { configFactory, + linodeBackupFactory, + linodeFactory, + linodeIPFactory, linodeInterfaceFactoryPublic, linodeInterfaceFactoryVPC, linodeInterfaceFactoryVlan, linodeInterfaceSettingsFactory, + linodeStatsFactory, + linodeTransferFactory, } from '@linode/utilities'; import { DateTime } from 'luxon'; import { http } from 'msw'; -import { - firewallDeviceFactory, - linodeBackupFactory, - linodeDiskFactory, - linodeFactory, - linodeIPFactory, - linodeStatsFactory, - linodeTransferFactory, -} from 'src/factories'; +import { firewallDeviceFactory, linodeDiskFactory } from 'src/factories'; import { queueEvents } from 'src/mocks/utilities/events'; import { makeNotFoundResponse, diff --git a/packages/manager/src/mocks/presets/crud/seeds/linodes.ts b/packages/manager/src/mocks/presets/crud/seeds/linodes.ts index 72cf4a8268e..05b3df90357 100644 --- a/packages/manager/src/mocks/presets/crud/seeds/linodes.ts +++ b/packages/manager/src/mocks/presets/crud/seeds/linodes.ts @@ -1,7 +1,6 @@ -import { configFactory } from '@linode/utilities'; +import { linodeFactory, configFactory } from '@linode/utilities'; import { getSeedsCountMap } from 'src/dev-tools/utils'; -import { linodeFactory } from 'src/factories'; import { mswDB } from 'src/mocks/indexedDB'; import { seedWithUniqueIds } from 'src/mocks/presets/crud/seeds/utils'; diff --git a/packages/manager/src/mocks/serverHandlers.ts b/packages/manager/src/mocks/serverHandlers.ts index 43589df80c3..00f3377d718 100644 --- a/packages/manager/src/mocks/serverHandlers.ts +++ b/packages/manager/src/mocks/serverHandlers.ts @@ -8,7 +8,17 @@ */ import { accountAvailabilityFactory, + dedicatedTypeFactory, + linodeFactory, + linodeIPFactory, + linodeStatsFactory, + linodeTransferFactory, + linodeTypeFactory, + nodeBalancerConfigFactory, + nodeBalancerConfigNodeFactory, + nodeBalancerFactory, pickRandom, + proDedicatedTypeFactory, regionAvailabilityFactory, regions, } from '@linode/utilities'; @@ -38,7 +48,6 @@ import { databaseFactory, databaseInstanceFactory, databaseTypeFactory, - dedicatedTypeFactory, domainFactory, domainRecordFactory, entityTransferFactory, @@ -55,11 +64,6 @@ import { kubernetesVersionFactory, linodeConfigFactory, linodeDiskFactory, - linodeFactory, - linodeIPFactory, - linodeStatsFactory, - linodeTransferFactory, - linodeTypeFactory, lkeEnterpriseTypeFactory, lkeHighAvailabilityTypeFactory, lkeStandardAvailabilityTypeFactory, @@ -73,9 +77,6 @@ import { managedSSHPubKeyFactory, managedStatsFactory, monitorFactory, - nodeBalancerConfigFactory, - nodeBalancerConfigNodeFactory, - nodeBalancerFactory, nodeBalancerTypeFactory, nodePoolFactory, notificationChannelFactory, @@ -91,7 +92,6 @@ import { placementGroupFactory, possibleMySQLReplicationTypes, possiblePostgresReplicationTypes, - proDedicatedTypeFactory, profileFactory, promoFactory, securityQuestionsFactory, diff --git a/packages/manager/src/utilities/codesnippets/generate-cURL.test.ts b/packages/manager/src/utilities/codesnippets/generate-cURL.test.ts index 010b3836cc7..c0f6ef8c882 100644 --- a/packages/manager/src/utilities/codesnippets/generate-cURL.test.ts +++ b/packages/manager/src/utilities/codesnippets/generate-cURL.test.ts @@ -1,4 +1,4 @@ -import { createLinodeRequestFactory } from 'src/factories/linodes'; +import { createLinodeRequestFactory } from '@linode/utilities'; import { generateCurlCommand } from './generate-cURL'; diff --git a/packages/manager/src/utilities/codesnippets/generate-cli.test.ts b/packages/manager/src/utilities/codesnippets/generate-cli.test.ts index b6df3e3760e..5b73e92717a 100644 --- a/packages/manager/src/utilities/codesnippets/generate-cli.test.ts +++ b/packages/manager/src/utilities/codesnippets/generate-cli.test.ts @@ -1,4 +1,4 @@ -import { createLinodeRequestFactory } from 'src/factories/linodes'; +import { createLinodeRequestFactory } from '@linode/utilities'; import { generateCLICommand } from './generate-cli'; diff --git a/packages/manager/src/utilities/linodes.test.ts b/packages/manager/src/utilities/linodes.test.ts index 76620116f05..b90ee0ed7ca 100644 --- a/packages/manager/src/utilities/linodes.test.ts +++ b/packages/manager/src/utilities/linodes.test.ts @@ -1,6 +1,7 @@ +import { linodeFactory } from '@linode/utilities'; import { renderHook } from '@testing-library/react'; -import { accountMaintenanceFactory, linodeFactory } from 'src/factories'; +import { accountMaintenanceFactory } from 'src/factories'; import { addMaintenanceToLinodes, diff --git a/packages/manager/src/utilities/pricing/backups.test.tsx b/packages/manager/src/utilities/pricing/backups.test.tsx index a3ef5db57af..14c5fde1fca 100644 --- a/packages/manager/src/utilities/pricing/backups.test.tsx +++ b/packages/manager/src/utilities/pricing/backups.test.tsx @@ -1,4 +1,4 @@ -import { linodeFactory, linodeTypeFactory } from 'src/factories'; +import { linodeFactory, linodeTypeFactory } from '@linode/utilities'; import { getLinodeBackupPrice, getTotalBackupsPrice } from './backups'; diff --git a/packages/manager/src/utilities/pricing/kubernetes.test.tsx b/packages/manager/src/utilities/pricing/kubernetes.test.tsx index 6a76f0329bb..bb7799cdcd1 100644 --- a/packages/manager/src/utilities/pricing/kubernetes.test.tsx +++ b/packages/manager/src/utilities/pricing/kubernetes.test.tsx @@ -1,4 +1,6 @@ -import { linodeTypeFactory, nodePoolFactory } from 'src/factories'; +import { linodeTypeFactory } from '@linode/utilities'; + +import { nodePoolFactory } from 'src/factories'; import { extendType } from 'src/utilities/extendType'; import { getKubernetesMonthlyPrice, getTotalClusterPrice } from './kubernetes'; diff --git a/packages/manager/src/utilities/pricing/linodes.test.ts b/packages/manager/src/utilities/pricing/linodes.test.ts index 52f324cf89e..3f82c5ce58d 100644 --- a/packages/manager/src/utilities/pricing/linodes.test.ts +++ b/packages/manager/src/utilities/pricing/linodes.test.ts @@ -1,4 +1,4 @@ -import { linodeTypeFactory } from 'src/factories'; +import { linodeTypeFactory } from '@linode/utilities'; import { getLinodeBackupPrice } from './backups'; import { diff --git a/packages/shared/.changeset/README.md b/packages/shared/.changeset/README.md new file mode 100644 index 00000000000..b9a412689fb --- /dev/null +++ b/packages/shared/.changeset/README.md @@ -0,0 +1,18 @@ +# Changesets + +This directory gets auto-populated when running `pnpm changeset`. +You can however add your changesets manually as well, knowing that the [TYPE] is limited to the following options `Added`, `Fixed`, `Changed`, `Removed`, `Tech Stories`, `Tests`, `Upcoming Features` and follow this format: + +```md +--- +'@linode/[PACKAGE]': [TYPE] +--- + +My PR Description ([#`PR number`](`PR link`)) +``` + +You must commit them to the repo so they can be picked up for the changelog generation. + +This directory get wiped out when running `pnpm generate-changelog`. + +See `changeset.mjs` for implementation details. diff --git a/packages/shared/.changeset/pr-11844-added-1742228260491.md b/packages/shared/.changeset/pr-11844-added-1742228260491.md new file mode 100644 index 00000000000..33ea95d0bba --- /dev/null +++ b/packages/shared/.changeset/pr-11844-added-1742228260491.md @@ -0,0 +1,5 @@ +--- +"@linode/shared": Added +--- + +New `shared` package with `LinodeSelect` as the first component ([#11844](https://github.com/linode/manager/pull/11844)) diff --git a/packages/shared/.eslintrc.json b/packages/shared/.eslintrc.json new file mode 100644 index 00000000000..b8f8c62e03a --- /dev/null +++ b/packages/shared/.eslintrc.json @@ -0,0 +1,5 @@ +{ + // Temporarily extending ESLint config from linode/manager as the base config. + // @todo: modularization - Replace the path with the base shared ESLint config once available. + "extends": ["../manager/.eslintrc.cjs"] +} diff --git a/packages/shared/.prettierrc b/packages/shared/.prettierrc new file mode 100644 index 00000000000..c563e850dad --- /dev/null +++ b/packages/shared/.prettierrc @@ -0,0 +1,4 @@ +{ + "printWidth": 80, + "singleQuote": true +} diff --git a/packages/shared/CHANGELOG.md b/packages/shared/CHANGELOG.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/shared/README.md b/packages/shared/README.md new file mode 100644 index 00000000000..e591a9c1ea7 --- /dev/null +++ b/packages/shared/README.md @@ -0,0 +1,11 @@ +# Shared Feature Component Library + +`@linode/shared` contains definitions for React-based feature components that are used frequently across Akamai Connected Cloud Manager. + +In contrast to the other UI component library in this repository, [`@linode/ui`](../ui/), components in this package make use of [`@linode/api-v4`](../api-v4/) and other dependencies to implement common, opinionated and complex components to enable a seamless experience for users as they navigate between features of the app. + +## Components + +All components defined in this library must conform to the [CDS 2.0 design system](https://github.com/linode/design-language-system) and be built using base components from [`@linode/ui`](../ui/). + +Interfaces must be documented using the [TSDoc](https://tsdoc.org/) comment standard. This repository also includes support for Storybook stories and Vitest unit tests, which may be included as necessary to improve component quality and reliability. \ No newline at end of file diff --git a/packages/shared/package.json b/packages/shared/package.json new file mode 100644 index 00000000000..8b827308c5d --- /dev/null +++ b/packages/shared/package.json @@ -0,0 +1,72 @@ +{ + "name": "@linode/shared", + "version": "0.0.1", + "description": "Linode shared feature component library", + "main": "src/index.ts", + "module": "src/index.ts", + "types": "src/index.ts", + "author": "Linode", + "license": "Apache-2.0", + "repository": { + "type": "git", + "url": "https://github.com/linode/manager/tree/develop/packages/shared" + }, + "exports": { + ".": "./src/index.ts" + }, + "scripts": { + "start": "tsc -w --preserveWatchOutput", + "lint": "eslint . --quiet --ext .js,.ts,.tsx", + "typecheck": "tsc", + "test": "vitest run", + "test:watch": "vitest", + "test:debug": "node --inspect-brk scripts/test.js --runInBand", + "precommit": "lint-staged" + }, + "lint-staged": { + "*.{ts,tsx,js}": [ + "prettier --write", + "eslint --ext .js,.ts,.tsx --quiet" + ] + }, + "dependencies": { + "@linode/api-v4": "workspace:*", + "@linode/queries": "workspace:*", + "@linode/ui": "workspace:*", + "@linode/utilities": "workspace:*", + "@mui/material": "^6.4.5", + "@tanstack/react-query": "5.51.24", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@linode/eslint-plugin-cloud-manager": "^0.0.10", + "@storybook/addon-actions": "^8.6.7", + "@storybook/react": "^8.6.7", + "@testing-library/dom": "^10.1.0", + "@testing-library/jest-dom": "~6.4.2", + "@testing-library/react": "~16.0.0", + "@testing-library/user-event": "^14.5.2", + "@types/react": "^18.2.55", + "@types/react-dom": "^18.2.18", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", + "eslint": "^7.1.0", + "eslint-config-prettier": "~8.1.0", + "eslint-plugin-cypress": "^2.11.3", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-perfectionist": "^1.4.0", + "eslint-plugin-prettier": "~3.3.1", + "eslint-plugin-ramda": "^2.5.1", + "eslint-plugin-react": "^7.19.0", + "eslint-plugin-react-hooks": "^3.0.0", + "eslint-plugin-react-refresh": "^0.4.13", + "eslint-plugin-scanjs-rules": "^0.2.1", + "eslint-plugin-sonarjs": "^0.5.0", + "eslint-plugin-testing-library": "^3.1.2", + "eslint-plugin-xss": "^0.1.10", + "lint-staged": "^15.2.9", + "prettier": "~2.2.1", + "vite-plugin-svgr": "^3.2.0" + } +} diff --git a/packages/manager/src/features/Linodes/LinodeSelect/LinodeSelect.stories.tsx b/packages/shared/src/LinodeSelect/LinodeSelect.stories.tsx similarity index 96% rename from packages/manager/src/features/Linodes/LinodeSelect/LinodeSelect.stories.tsx rename to packages/shared/src/LinodeSelect/LinodeSelect.stories.tsx index d7cbd9de212..5b0aa4c78fb 100644 --- a/packages/manager/src/features/Linodes/LinodeSelect/LinodeSelect.stories.tsx +++ b/packages/shared/src/LinodeSelect/LinodeSelect.stories.tsx @@ -1,4 +1,3 @@ -import { Linode } from '@linode/api-v4/lib/linodes'; import { action } from '@storybook/addon-actions'; import React from 'react'; @@ -8,6 +7,7 @@ import type { LinodeMultiSelectProps, LinodeSingleSelectProps, } from './LinodeSelect'; +import type { Linode } from '@linode/api-v4/lib/linodes'; import type { Meta, StoryObj } from '@storybook/react'; const linodes = [ diff --git a/packages/manager/src/features/Linodes/LinodeSelect/LinodeSelect.test.tsx b/packages/shared/src/LinodeSelect/LinodeSelect.test.tsx similarity index 86% rename from packages/manager/src/features/Linodes/LinodeSelect/LinodeSelect.test.tsx rename to packages/shared/src/LinodeSelect/LinodeSelect.test.tsx index e0af79aab29..47dc1d7fd54 100644 --- a/packages/manager/src/features/Linodes/LinodeSelect/LinodeSelect.test.tsx +++ b/packages/shared/src/LinodeSelect/LinodeSelect.test.tsx @@ -1,10 +1,10 @@ -import { screen, waitFor } from '@testing-library/react'; +import { linodeFactory } from '@linode/utilities'; +import { waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; +import { describe, expect, test, vi } from 'vitest'; -import { linodeFactory } from 'src/factories'; -import { renderWithTheme } from 'src/utilities/testHelpers'; - +import { QueryClientWrapper, renderWithWrappers } from '../utilities/wrap'; import { LinodeSelect } from './LinodeSelect'; import type { Linode } from '@linode/api-v4'; @@ -17,14 +17,15 @@ describe('LinodeSelect', () => { const options: Linode[] = []; // Assuming no options are available const onSelectionChange = vi.fn(); - renderWithTheme( + const screen = renderWithWrappers( + />, + [QueryClientWrapper()] ); const input = screen.getByTestId(TEXTFIELD_ID); @@ -43,13 +44,14 @@ describe('LinodeSelect', () => { const option: Linode[] = []; // Assuming no options are available const onSelectionChange = vi.fn(); - renderWithTheme( + const screen = renderWithWrappers( + />, + [QueryClientWrapper()] ); // Open the dropdown @@ -68,14 +70,15 @@ describe('LinodeSelect', () => { const option: Linode[] = []; // Assuming no options are available const onSelectionChange = vi.fn(); - renderWithTheme( + const screen = renderWithWrappers( + />, + [QueryClientWrapper()] ); const input = screen.getByTestId(TEXTFIELD_ID); @@ -93,14 +96,15 @@ describe('LinodeSelect', () => { const option = linodeFactory.build({ id: 1, label: 'Linode 1' }); const onSelectionChange = vi.fn(); - renderWithTheme( + const screen = renderWithWrappers( + />, + [QueryClientWrapper()] ); const input = screen.getByTestId(TEXTFIELD_ID); @@ -117,14 +121,15 @@ describe('LinodeSelect', () => { const option = linodeFactory.build({ id: 1, label: 'Linode 1' }); const onSelectionChange = vi.fn(); - renderWithTheme( + const screen = renderWithWrappers( + />, + [QueryClientWrapper()] ); const input = screen.getByTestId(TEXTFIELD_ID); diff --git a/packages/manager/src/features/Linodes/LinodeSelect/LinodeSelect.tsx b/packages/shared/src/LinodeSelect/LinodeSelect.tsx similarity index 96% rename from packages/manager/src/features/Linodes/LinodeSelect/LinodeSelect.tsx rename to packages/shared/src/LinodeSelect/LinodeSelect.tsx index 6903748ed41..f497d095217 100644 --- a/packages/manager/src/features/Linodes/LinodeSelect/LinodeSelect.tsx +++ b/packages/shared/src/LinodeSelect/LinodeSelect.tsx @@ -1,9 +1,7 @@ -import { Autocomplete, CustomPopper } from '@linode/ui'; -import React from 'react'; - -import Close from 'src/assets/icons/close.svg'; import { useAllLinodesQuery } from '@linode/queries'; -import { mapIdsToDevices } from 'src/utilities/mapIdsToDevices'; +import { Autocomplete, CloseIcon, CustomPopper } from '@linode/ui'; +import { mapIdsToDevices } from '@linode/utilities'; +import React from 'react'; import type { APIError, Filter, Linode } from '@linode/api-v4'; import type { SxProps, Theme } from '@mui/material/styles'; @@ -142,7 +140,6 @@ export const LinodeSelect = ( : linodes?.find(value) ?? null : mapIdsToDevices(value, linodes) } - ChipProps={{ deleteIcon: }} PopperComponent={CustomPopper} clearOnBlur={false} data-testid="add-linode-autocomplete" @@ -162,6 +159,7 @@ export const LinodeSelect = ( onBlur={onBlur} onInputChange={(_, value) => setInputValue(value)} options={options || (linodes ?? [])} + slotProps={{ chip: { deleteIcon: } }} sx={sx} /> ); diff --git a/packages/shared/src/LinodeSelect/index.ts b/packages/shared/src/LinodeSelect/index.ts new file mode 100644 index 00000000000..c9e407ede3d --- /dev/null +++ b/packages/shared/src/LinodeSelect/index.ts @@ -0,0 +1 @@ +export * from './LinodeSelect'; diff --git a/packages/shared/src/env.d.ts b/packages/shared/src/env.d.ts new file mode 100644 index 00000000000..f36c722baed --- /dev/null +++ b/packages/shared/src/env.d.ts @@ -0,0 +1,4 @@ +declare module '*.svg' { + const src: ComponentClass; + export default src; +} diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts new file mode 100644 index 00000000000..c9e407ede3d --- /dev/null +++ b/packages/shared/src/index.ts @@ -0,0 +1 @@ +export * from './LinodeSelect'; diff --git a/packages/shared/src/utilities/wrap.tsx b/packages/shared/src/utilities/wrap.tsx new file mode 100644 index 00000000000..4893cdafa9f --- /dev/null +++ b/packages/shared/src/utilities/wrap.tsx @@ -0,0 +1,29 @@ +/* eslint-disable react-refresh/only-export-components */ +import { queryClientFactory } from '@linode/queries'; +import { QueryClientProvider } from '@tanstack/react-query'; +import { render } from '@testing-library/react'; +import React from 'react'; + +import type { RenderResult } from '@testing-library/react'; + +type Wrapper = (ui: React.ReactNode) => React.ReactNode; + +export const wrap = ( + ui: React.ReactNode, + wrappers: Wrapper[] +): React.ReactNode => wrappers.reduce((prev, wrapper) => wrapper(prev), ui); + +export const renderWithWrappers = ( + ui: React.ReactNode, + wrappers: Wrapper[] +): RenderResult => { + const renderResult = render(wrap(ui, wrappers)); + return { + ...renderResult, + rerender: (ui) => renderResult.rerender(wrap(ui, wrappers)), + }; +}; + +export const QueryClientWrapper = (queryClient = queryClientFactory()) => ( + ui: React.ReactNode +) => {ui}; diff --git a/packages/shared/testSetup.ts b/packages/shared/testSetup.ts new file mode 100644 index 00000000000..141cd45f9a4 --- /dev/null +++ b/packages/shared/testSetup.ts @@ -0,0 +1,9 @@ +import * as matchers from '@testing-library/jest-dom/matchers'; +import { cleanup } from '@testing-library/react'; +import { afterEach, expect } from 'vitest'; + +expect.extend(matchers); + +afterEach(() => { + cleanup(); +}); diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json new file mode 100644 index 00000000000..160560a852f --- /dev/null +++ b/packages/shared/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "jsx": "react", + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "skipLibCheck": true, + "noEmit": true, + "allowUnreachableCode": false, + "noImplicitAny": true, + "noImplicitReturns": true, + "noImplicitThis": true, + "noUnusedLocals": true, + "strictNullChecks": true, + "forceConsistentCasingInFileNames": true, + "incremental": true, + "types": ["@testing-library/jest-dom"] + }, + "include": ["src"] +} diff --git a/packages/shared/vitest.config.ts b/packages/shared/vitest.config.ts new file mode 100644 index 00000000000..ba5b20959d2 --- /dev/null +++ b/packages/shared/vitest.config.ts @@ -0,0 +1,11 @@ +import svgr from 'vite-plugin-svgr'; +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + plugins: [svgr({ exportAsDefault: true })], + + test: { + environment: 'jsdom', + setupFiles: './testSetup.ts', + }, +}); diff --git a/packages/ui/src/assets/icons/index.ts b/packages/ui/src/assets/icons/index.ts index 7554d0d7358..8cd516084a3 100644 --- a/packages/ui/src/assets/icons/index.ts +++ b/packages/ui/src/assets/icons/index.ts @@ -4,6 +4,7 @@ export { default as CheckboxIcon } from './checkbox.svg'; export { default as CheckboxCheckedIcon } from './checkboxChecked.svg'; export { default as CheckboxIndeterminateIcon } from './checkboxIndeterminate.svg'; export { default as ChevronDownIcon } from './chevron-down.svg'; +export { default as CloseIcon } from './close.svg'; export { default as InfoIcon } from './info.svg'; export { default as PendingIcon } from './pending.svg'; export { default as PlusSignIcon } from './plusSign.svg'; diff --git a/packages/utilities/package.json b/packages/utilities/package.json index b6c08885330..406d77685e7 100644 --- a/packages/utilities/package.json +++ b/packages/utilities/package.json @@ -2,7 +2,7 @@ "name": "@linode/utilities", "version": "0.1.0", "description": "Linode Utility functions library", - "main": "src/index.js", + "main": "src/index.ts", "module": "src/index.ts", "types": "src/index.ts", "author": "Linode", diff --git a/packages/utilities/src/factories/index.ts b/packages/utilities/src/factories/index.ts index 2aecf0b5021..ea88b488e7c 100644 --- a/packages/utilities/src/factories/index.ts +++ b/packages/utilities/src/factories/index.ts @@ -1,6 +1,8 @@ export * from './accountAvailability'; export * from './config'; export * from './factoryProxy'; -export * from './linodeConfigInterfaceFactory'; +export * from './linodes'; +export * from './linodeConfigInterface'; export * from './linodeInterface'; +export * from './nodebalancer'; export * from './regions'; diff --git a/packages/utilities/src/factories/linodeConfigInterfaceFactory.ts b/packages/utilities/src/factories/linodeConfigInterface.ts similarity index 100% rename from packages/utilities/src/factories/linodeConfigInterfaceFactory.ts rename to packages/utilities/src/factories/linodeConfigInterface.ts diff --git a/packages/manager/src/factories/linodes.ts b/packages/utilities/src/factories/linodes.ts similarity index 99% rename from packages/manager/src/factories/linodes.ts rename to packages/utilities/src/factories/linodes.ts index 859472752b8..c6fca8aa6eb 100644 --- a/packages/manager/src/factories/linodes.ts +++ b/packages/utilities/src/factories/linodes.ts @@ -1,4 +1,4 @@ -import { Factory } from '@linode/utilities'; +import { Factory } from './factoryProxy'; import type { CreateLinodeRequest, diff --git a/packages/manager/src/factories/nodebalancer.ts b/packages/utilities/src/factories/nodebalancer.ts similarity index 97% rename from packages/manager/src/factories/nodebalancer.ts rename to packages/utilities/src/factories/nodebalancer.ts index b3c41b6b264..6a9ebe18621 100644 --- a/packages/manager/src/factories/nodebalancer.ts +++ b/packages/utilities/src/factories/nodebalancer.ts @@ -1,4 +1,4 @@ -import { Factory } from '@linode/utilities'; +import { Factory } from './factoryProxy'; import type { NodeBalancer, diff --git a/packages/utilities/src/helpers/index.ts b/packages/utilities/src/helpers/index.ts index 056390a60df..976db2d3ac6 100644 --- a/packages/utilities/src/helpers/index.ts +++ b/packages/utilities/src/helpers/index.ts @@ -27,6 +27,7 @@ export * from './isNumber'; export * from './isToday'; export * from './link'; export * from './manuallySetVPCConfigInterfacesToActive'; +export * from './mapIdsToDevices'; export * from './maybeCastToNumber'; export * from './metadata'; export * from './minute-conversion'; diff --git a/packages/manager/src/utilities/mapIdsToDevices.test.ts b/packages/utilities/src/helpers/mapIdsToDevices.test.ts similarity index 86% rename from packages/manager/src/utilities/mapIdsToDevices.test.ts rename to packages/utilities/src/helpers/mapIdsToDevices.test.ts index af30a9537d1..b379a125582 100644 --- a/packages/manager/src/utilities/mapIdsToDevices.test.ts +++ b/packages/utilities/src/helpers/mapIdsToDevices.test.ts @@ -1,10 +1,9 @@ -import { nodeBalancerFactory } from 'src/factories'; -import { linodeFactory } from 'src/factories'; +import { linodeFactory, nodeBalancerFactory } from '../factories'; +import { describe, it, expect } from 'vitest'; import { mapIdsToDevices } from './mapIdsToDevices'; -import type { NodeBalancer } from '@linode/api-v4'; -import type { Linode } from '@linode/api-v4'; +import type { NodeBalancer, Linode } from '@linode/api-v4'; describe('mapIdsToDevices', () => { const linodes = linodeFactory.buildList(5); diff --git a/packages/manager/src/utilities/mapIdsToDevices.ts b/packages/utilities/src/helpers/mapIdsToDevices.ts similarity index 91% rename from packages/manager/src/utilities/mapIdsToDevices.ts rename to packages/utilities/src/helpers/mapIdsToDevices.ts index f8d6e856d92..065b86ff360 100644 --- a/packages/manager/src/utilities/mapIdsToDevices.ts +++ b/packages/utilities/src/helpers/mapIdsToDevices.ts @@ -1,4 +1,4 @@ -import { isNotNullOrUndefined } from '@linode/utilities'; +import { isNotNullOrUndefined } from '../helpers'; import type { Linode, NodeBalancer } from '@linode/api-v4'; diff --git a/packages/utilities/src/helpers/sort-by.test.ts b/packages/utilities/src/helpers/sort-by.test.ts index aaa1017ff38..6109eb26bc6 100644 --- a/packages/utilities/src/helpers/sort-by.test.ts +++ b/packages/utilities/src/helpers/sort-by.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; -import { sortByVersion } from '@linode/utilities'; +import { sortByVersion } from './sort-by'; describe('sortByVersion', () => { it('should identify the later major version as greater', () => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f5133ce857f..63a9746e989 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -109,6 +109,9 @@ importers: '@linode/search': specifier: workspace:* version: link:../search + '@linode/shared': + specifier: workspace:* + version: link:../shared '@linode/ui': specifier: workspace:* version: link:../ui @@ -313,46 +316,46 @@ importers: version: 0.0.10(eslint@7.32.0) '@storybook/addon-a11y': specifier: ^8.6.7 - version: 8.6.7(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@storybook/addon-actions': specifier: ^8.6.7 - version: 8.6.7(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@storybook/addon-controls': specifier: ^8.6.7 - version: 8.6.7(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@storybook/addon-docs': specifier: ^8.6.7 - version: 8.6.7(@types/react@18.3.12)(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(@types/react@18.3.12)(storybook@8.6.9(prettier@2.2.1)) '@storybook/addon-mdx-gfm': specifier: ^8.6.7 - version: 8.6.7(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@storybook/addon-measure': specifier: ^8.6.7 - version: 8.6.7(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@storybook/addon-storysource': specifier: ^8.6.7 - version: 8.6.7(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@storybook/addon-viewport': specifier: ^8.6.7 - version: 8.6.7(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@storybook/blocks': specifier: ^8.6.7 - version: 8.6.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.9(prettier@2.2.1)) '@storybook/manager-api': specifier: ^8.6.7 - version: 8.6.7(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@storybook/preview-api': specifier: ^8.6.7 - version: 8.6.7(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@storybook/react': specifier: ^8.6.7 - version: 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@2.2.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@2.2.1))(typescript@5.7.3) + version: 8.6.9(@storybook/test@8.6.9(storybook@8.6.9(prettier@2.2.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.9(prettier@2.2.1))(typescript@5.7.3) '@storybook/react-vite': specifier: ^8.6.7 - version: 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@2.2.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.34.8)(storybook@8.6.7(prettier@2.2.1))(typescript@5.7.3)(vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) + version: 8.6.9(@storybook/test@8.6.9(storybook@8.6.9(prettier@2.2.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.34.8)(storybook@8.6.9(prettier@2.2.1))(typescript@5.7.3)(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) '@storybook/theming': specifier: ^8.6.7 - version: 8.6.7(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@swc/core': specifier: ^1.10.9 version: 1.10.11 @@ -454,7 +457,7 @@ importers: version: 6.21.0(eslint@7.32.0)(typescript@5.7.3) '@vitejs/plugin-react-swc': specifier: ^3.7.2 - version: 3.7.2(vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) + version: 3.7.2(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) '@vitest/coverage-v8': specifier: ^3.0.7 version: 3.0.7(vitest@3.0.7) @@ -484,7 +487,7 @@ importers: version: 1.14.0(cypress@14.0.1) cypress-vite: specifier: ^1.6.0 - version: 1.6.0(vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) + version: 1.6.0(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) dotenv: specifier: ^16.0.3 version: 16.4.5 @@ -559,16 +562,16 @@ importers: version: 1.5.5(redux@4.2.1) storybook: specifier: ^8.6.7 - version: 8.6.7(prettier@2.2.1) + version: 8.6.9(prettier@2.2.1) storybook-dark-mode: specifier: 4.0.1 - version: 4.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@2.2.1)) + version: 4.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.9(prettier@2.2.1)) vite: specifier: ^6.2.2 - version: 6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) + version: 6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) vite-plugin-svgr: specifier: ^3.2.0 - version: 3.3.0(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) + version: 3.3.0(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) packages/queries: dependencies: @@ -676,6 +679,118 @@ importers: specifier: ^5 || ^6 version: 6.1.1(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) + packages/shared: + dependencies: + '@linode/api-v4': + specifier: workspace:* + version: link:../api-v4 + '@linode/queries': + specifier: workspace:* + version: link:../queries + '@linode/ui': + specifier: workspace:* + version: link:../ui + '@linode/utilities': + specifier: workspace:* + version: link:../utilities + '@mui/material': + specifier: ^6.4.5 + version: 6.4.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-query': + specifier: 5.51.24 + version: 5.51.24(react@18.3.1) + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) + devDependencies: + '@linode/eslint-plugin-cloud-manager': + specifier: ^0.0.10 + version: 0.0.10(eslint@7.32.0) + '@storybook/addon-actions': + specifier: ^8.6.7 + version: 8.6.9(storybook@8.6.9(prettier@2.2.1)) + '@storybook/react': + specifier: ^8.6.7 + version: 8.6.9(@storybook/test@8.6.9(storybook@8.6.9(prettier@2.2.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.9(prettier@2.2.1))(typescript@5.7.3) + '@testing-library/dom': + specifier: ^10.1.0 + version: 10.4.0 + '@testing-library/jest-dom': + specifier: ~6.4.2 + version: 6.4.8 + '@testing-library/react': + specifier: ~16.0.0 + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@testing-library/user-event': + specifier: ^14.5.2 + version: 14.5.2(@testing-library/dom@10.4.0) + '@types/react': + specifier: ^18.2.55 + version: 18.3.12 + '@types/react-dom': + specifier: ^18.2.18 + version: 18.3.1 + '@typescript-eslint/eslint-plugin': + specifier: ^6.21.0 + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@7.32.0)(typescript@5.7.3))(eslint@7.32.0)(typescript@5.7.3) + '@typescript-eslint/parser': + specifier: ^6.21.0 + version: 6.21.0(eslint@7.32.0)(typescript@5.7.3) + eslint: + specifier: ^7.1.0 + version: 7.32.0 + eslint-config-prettier: + specifier: ~8.1.0 + version: 8.1.0(eslint@7.32.0) + eslint-plugin-cypress: + specifier: ^2.11.3 + version: 2.15.2(eslint@7.32.0) + eslint-plugin-jsx-a11y: + specifier: ^6.7.1 + version: 6.10.2(eslint@7.32.0) + eslint-plugin-perfectionist: + specifier: ^1.4.0 + version: 1.5.1(eslint@7.32.0)(typescript@5.7.3) + eslint-plugin-prettier: + specifier: ~3.3.1 + version: 3.3.1(eslint-config-prettier@8.1.0(eslint@7.32.0))(eslint@7.32.0)(prettier@2.2.1) + eslint-plugin-ramda: + specifier: ^2.5.1 + version: 2.5.1 + eslint-plugin-react: + specifier: ^7.19.0 + version: 7.37.2(eslint@7.32.0) + eslint-plugin-react-hooks: + specifier: ^3.0.0 + version: 3.0.0(eslint@7.32.0) + eslint-plugin-react-refresh: + specifier: ^0.4.13 + version: 0.4.13(eslint@7.32.0) + eslint-plugin-scanjs-rules: + specifier: ^0.2.1 + version: 0.2.1 + eslint-plugin-sonarjs: + specifier: ^0.5.0 + version: 0.5.0(eslint@7.32.0) + eslint-plugin-testing-library: + specifier: ^3.1.2 + version: 3.10.2(eslint@7.32.0)(typescript@5.7.3) + eslint-plugin-xss: + specifier: ^0.1.10 + version: 0.1.12 + lint-staged: + specifier: ^15.2.9 + version: 15.4.3 + prettier: + specifier: ~2.2.1 + version: 2.2.1 + vite-plugin-svgr: + specifier: ^3.2.0 + version: 3.3.0(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) + packages/ui: dependencies: '@emotion/react': @@ -717,13 +832,13 @@ importers: version: 0.0.10(eslint@7.32.0) '@storybook/addon-actions': specifier: ^8.6.7 - version: 8.6.7(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@storybook/preview-api': specifier: ^8.6.7 - version: 8.6.7(storybook@8.6.7(prettier@2.2.1)) + version: 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@storybook/react': specifier: ^8.6.7 - version: 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@2.2.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@2.2.1))(typescript@5.7.3) + version: 8.6.9(@storybook/test@8.6.9(storybook@8.6.9(prettier@2.2.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.9(prettier@2.2.1))(typescript@5.7.3) '@testing-library/dom': specifier: ^10.1.0 version: 10.4.0 @@ -768,7 +883,7 @@ importers: version: 2.2.1 vite-plugin-svgr: specifier: ^3.2.0 - version: 3.3.0(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) + version: 3.3.0(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) packages/utilities: dependencies: @@ -999,34 +1114,29 @@ packages: resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.26.10': - resolution: {integrity: sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==} + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} '@babel/highlight@7.25.9': resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.10': - resolution: {integrity: sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.26.2': resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/runtime@7.26.10': - resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.9': - resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + '@babel/runtime@7.27.0': + resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} engines: {node: '>=6.9.0'} - '@babel/template@7.26.9': - resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} '@babel/traverse@7.25.9': @@ -1037,10 +1147,6 @@ packages: resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.10': - resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==} - engines: {node: '>=6.9.0'} - '@bcoe/v8-coverage@1.0.2': resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} @@ -2057,67 +2163,67 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@storybook/addon-a11y@8.6.7': - resolution: {integrity: sha512-/pGRa27AVpoFG0J2+PTKSQCk6ytbRkcR+5fi75iLlqgp7YZN9rVJ8SYyEXALf/B8Gw9hSk2uxCyT3dA7ZTy52Q==} + '@storybook/addon-a11y@8.6.9': + resolution: {integrity: sha512-X5s5RFLORwFjDXcEJitFKar0MMIUgp9JUfcT9VhQfJjnvZf7urf+9M2UGD9TwWAta5EAUBpGDkt9cqDi2UvTxA==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 - '@storybook/addon-actions@8.6.7': - resolution: {integrity: sha512-XgZCwIcZGThEyD7e2q7rN/jzg7ZHUxn/ln403eex04jWAGBBbtC2IVuowwCWV8HwDihnhpCZEP6HlgjakOYZbQ==} + '@storybook/addon-actions@8.6.9': + resolution: {integrity: sha512-H2v17sMbSl8jhSulPxcOyChsFbzik9E7mgCWIf4P114KcIUokWLVuALnSOeqHME6lY0pPBZs3DgvVVMVMm7zNw==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 - '@storybook/addon-controls@8.6.7': - resolution: {integrity: sha512-6ReB1Sc1qlqvAM7NUmtw2K1cKCgGBs8zYRgL44Q2ti+r55a2ownhm6WUm/kZs2ixSkV9ehm1osiqbGBfAn0Isw==} + '@storybook/addon-controls@8.6.9': + resolution: {integrity: sha512-YXBYsbHqdYhmrbGI+wv9LAr/LlKnPt9f9GL+9rw82lnYadWObYxzUxs+PPLNO5tc14fd2g+FMVHOfovaRdFvrQ==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 - '@storybook/addon-docs@8.6.7': - resolution: {integrity: sha512-kgNPEVuLGNJE8EdVQi5Tg2DYgR66/gut07jvhqnJfNqUkj6UpBHad0JR1uwrd7xS3kJs29Fs7UyU87RJnSlwcg==} + '@storybook/addon-docs@8.6.9': + resolution: {integrity: sha512-yAP59G5Vd+E6O9KLfBR5ALdOFA5yEZ0n1f8Ne9jwF+NGu1U8KNIfWnZmBYaBGe+bpYn0CWV5AfdFvw83bzHYpw==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 - '@storybook/addon-highlight@8.6.7': - resolution: {integrity: sha512-4KE1RF4XfqII7XrJPgf/1W0t0EWRKmik5Rrpb6WofXfgZ2QYzLFnyESjf67/g2TMgDnle2drfa/pt5tGV4+I2Q==} + '@storybook/addon-highlight@8.6.9': + resolution: {integrity: sha512-I0gBHgaH74wX6yf5S7zUmdfr25hwPONpSAqPPGBSNYu0Jj9Je+ANr1y4T1I3cOaEvf73QntDhCgHC6/iqY90Fw==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 - '@storybook/addon-mdx-gfm@8.6.7': - resolution: {integrity: sha512-IfGgPnOMq51yBpnaY2w5hlm4pBgIMig61vsigqySU7KKFY6qxD/LcIJAxOPh2s9dLhYGYDrO0hFGR9fQ7Niu5A==} + '@storybook/addon-mdx-gfm@8.6.9': + resolution: {integrity: sha512-NG8wDB27WM3f24r5A69G1lcA58jisnPQIdT91tNEj089tlRoN0m0eXEmv5X4Gd13M0JgiuEhLU8ywAgpmeEHuQ==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 - '@storybook/addon-measure@8.6.7': - resolution: {integrity: sha512-4dkkCltjKRcJH+ZMv5nbNT0LBQfcXIydVfN9mAvhDsiPFD5eZcHbN4XVfUslECWgrkaa/a6FE1W9PNEUBjCJaA==} + '@storybook/addon-measure@8.6.9': + resolution: {integrity: sha512-2GrHtaYZgM7qeil5/XfNJrdnan7hoLLUyU7w7fph0EVl7tiwmhtp4He0PX9hrT/Abk2HxeCP4WU2fAGwIuTkYg==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 - '@storybook/addon-storysource@8.6.7': - resolution: {integrity: sha512-tIoTQp3MMyF3S4XarMOBVO40DofILO3Mz8upT4wGEfQULLjgCkS2K5c4BbT4de1hF49JsqvPByVlavntWQFTdg==} + '@storybook/addon-storysource@8.6.9': + resolution: {integrity: sha512-BPEUhEuo6JijM71ZNAPziXQur1HzN12iekYJnpfsJZF/cUwZWjTF2HeXBn0Z2DjOjqtBzoSPaJgT7CLVAKucsQ==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 - '@storybook/addon-viewport@8.6.7': - resolution: {integrity: sha512-kTrt6ByCbBIbqoRqQO9watDl5nSIKCC+R0/EmpEl6ZtzBV3l8trZHdvCHhIqOyv7nfaa7pIeTTG1GD6Gdrxk3w==} + '@storybook/addon-viewport@8.6.9': + resolution: {integrity: sha512-1xkozyB1zs3eSNTc8ePAMcajUfbKvNMTjs5LYdts2N1Ss0xeZ+K/gphfRg0GaYsNvRYi5piufag/niHCGkT3hA==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 - '@storybook/blocks@8.6.7': - resolution: {integrity: sha512-IFhIKO7R1UPpnoG/5tZH0FgC79oYgXNf+7aGUwq29M/CQWy6p/Pvp0y4P962btY1UZRol+SsU//33nH8o6yNRw==} + '@storybook/blocks@8.6.9': + resolution: {integrity: sha512-+vSRkHLD7ho3Wd1WVA1KrYAnv7BnGHOhHWHAgTR5IdeMdgzQxm6+HHeqGB5sncilA0AjVC6udBIgHbCSuD61dA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^8.6.7 + storybook: ^8.6.9 peerDependenciesMeta: react: optional: true react-dom: optional: true - '@storybook/builder-vite@8.6.7': - resolution: {integrity: sha512-hgYnVu2cy8clrmDwidu4XjvFMTEi9WiblLH5cPI3LWQjVajIQmDpcWVp6kbD063sIOphh9zYP7cVKGO7ktMB/g==} + '@storybook/builder-vite@8.6.9': + resolution: {integrity: sha512-8U11A7sLPvvcnJQ3pXyoX1LdJDpa4+JOYcASL9A+DL591jkfYKxhim7R4BOHO55aetmqQAoA/LEAD5runu7zoQ==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 vite: ^4.0.0 || ^5.0.0 || ^6.0.0 '@storybook/components@8.4.5': @@ -2125,8 +2231,8 @@ packages: peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/components@8.6.7': - resolution: {integrity: sha512-8pnjH1w7PZ/Iiuve1/BJY7EO/kmu0qdE34X1ZM8DyHzuy33EL/PfUuhxNkrL4ayMXrEDp/EJMHx2bqO1RdRV6A==} + '@storybook/components@8.6.9': + resolution: {integrity: sha512-CqWUAYK/RgV++sXfiDG63DM2JF2FeidvnMO5/bki2hFbEqgs0/yy7BKUjhsGmuri5y+r9B2FJhW0WnE6PI8NWw==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2135,18 +2241,18 @@ packages: peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/core@8.6.7': - resolution: {integrity: sha512-FcvLFA+Qn3+D6LgQkk0MOXA5FBz8DGc0UZmZuVbIwIUV4MV4ywCMwtKdG0cyhtzQg0YNyfiIYWJr7lZ4jLLhYg==} + '@storybook/core@8.6.9': + resolution: {integrity: sha512-psYxJAlj34ZaDAk+OvT/He6ZuUh0eGiHVtZNe0xWbNp5pQvOBjf+dg48swdI6KEbVs3aeU+Wnyra/ViU2RtA+Q==} peerDependencies: prettier: ^2 || ^3 peerDependenciesMeta: prettier: optional: true - '@storybook/csf-plugin@8.6.7': - resolution: {integrity: sha512-HK7yQD4kFu04JOKnUwoFeR58r5WY6ucF0D8zfW4Gx+r8hBJ5K4t3z6k2dlIlRQF1X5+2vNkQOwD8liHjckuZ8Q==} + '@storybook/csf-plugin@8.6.9': + resolution: {integrity: sha512-IQnhyaVUkcRR9e4xiHN83xMQtTMH+lJp472iMifUIqxx/Yw137BTef2DEEp6EnRct4yKrch24+Nl65LWg0mRpQ==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} @@ -2158,49 +2264,49 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/instrumenter@8.6.7': - resolution: {integrity: sha512-FeQiV0g5crCWs0P1wKY4xZzb4PxAYNcrm2+9LLGVqwnC7qzrSCPf0p10MlveVfwsen1m6Wbqfe+wl21c31Hfmg==} + '@storybook/instrumenter@8.6.9': + resolution: {integrity: sha512-Gp6OSiu9KA/p1HWd7VW9TtpWX32ZBfqRVrOm4wW1AM6B4XACbQWFE/aQ25HwU834yfdJkr2BW+uUH8DBAQ6kTw==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 - '@storybook/manager-api@8.6.7': - resolution: {integrity: sha512-BA8RxaLP07WGF660LWo7qB3Jomr/+MPuCZmuKPqXxPhfIovqYjr0hnugxJBjEah0ic31aNX4NucNfDRuV7F5sA==} + '@storybook/manager-api@8.6.9': + resolution: {integrity: sha512-mxq9B9rxAraOCBapGKsUDfI+8yNtFhTgKMZCxmHoUCxvAHaIt4S9JcdX0qQQKUsBTr/b2hHm0O7A8DYrbgBRfw==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/preview-api@8.6.7': - resolution: {integrity: sha512-Rz83Nx43v3Dn9/SjhIsorkcx1gPmlclueuzf6YywJTqE1E/L4dgoe2mOA9MfF0jr0bh3TwEA2J3ii0Jstg1Orw==} + '@storybook/preview-api@8.6.9': + resolution: {integrity: sha512-hW3Z8NBrGs2bNunaHgrLjpfrOcWsxH0ejAqaba8MolPXjzNs0lTFF/Ela7pUsh2m1R4/kiD+WfddQzyipUo4Mg==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/react-dom-shim@8.6.7': - resolution: {integrity: sha512-+JH7gbRI6NRbt9o0l1rY4wFdeVt8wGRddm0b55OBlwBGlFo2nvGVOH73J4AGphXVhfY7z33I3TXIjXQ561UdEQ==} + '@storybook/react-dom-shim@8.6.9': + resolution: {integrity: sha512-SjqP6r5yy87OJRAiq1JzFazn6VWfptOA2HaxOiP8zRhJgG41K0Vseh8tbZdycj1AzJYSCcnKaIcfd/GEo/41+g==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.7 + storybook: ^8.6.9 - '@storybook/react-vite@8.6.7': - resolution: {integrity: sha512-KiTeYaZ+AUQ1AFHSItP8dhUbd2v7Qy8+BB7w64VxQMw/dw5n0Z38lo4Tzdlkn22q2smW2ce4QwAzh2pfTz3b8g==} + '@storybook/react-vite@8.6.9': + resolution: {integrity: sha512-V81hRb2zv+LsKJnyjXQMYzL7ojdp92C3ThQ3r+SFGxKxY9t1JdoxloRmeyrN6XHyIAYhiJRwni0E1RagtPWG1g==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.6.7 + '@storybook/test': 8.6.9 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.7 + storybook: ^8.6.9 vite: ^4.0.0 || ^5.0.0 || ^6.0.0 peerDependenciesMeta: '@storybook/test': optional: true - '@storybook/react@8.6.7': - resolution: {integrity: sha512-6R8znSm7kzsoAJyRbEiDWE+5xjeAIzwEcfT60fqx+uMdd0vDFM7f2uT4fYy+CijWas1oFWcNV/LMd3EqSkBGsQ==} + '@storybook/react@8.6.9': + resolution: {integrity: sha512-xu4eJyYNz3mHeqnHn80KZZ2s22ZfqqCTzCNCVAyM6MWTxUwIpLX6FXC/vmcT1gPwwTl2KcRHZXaE7snB3aOLuw==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.6.7 + '@storybook/test': 8.6.9 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.7 + storybook: ^8.6.9 typescript: '>= 4.2.x' peerDependenciesMeta: '@storybook/test': @@ -2208,18 +2314,18 @@ packages: typescript: optional: true - '@storybook/source-loader@8.6.7': - resolution: {integrity: sha512-ycfrPHCs5OUrJTLCXDxvxLVB1zjL7IEepPs53o4RGRWO8xV1z0QfXXiX1drk48rep6dDu+a3mRWfNJ8m0RV/GA==} + '@storybook/source-loader@8.6.9': + resolution: {integrity: sha512-Ogh3HjJoAiKD7svqqyA+bM8xOZm2kuMs0jkYsrfuZG6BlO9xVuTSviGRWHowUEEznQZOBz8a++SmTaqNEoen6g==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 - '@storybook/test@8.6.7': - resolution: {integrity: sha512-uF1JbBtdT7tuiXfEtHsUShBHIhm2vc0C39nKVJaTWyK9CybajXaj2Ny3IRa3oY9NKnklwGgN+kZ/Z9YiIOc4MQ==} + '@storybook/test@8.6.9': + resolution: {integrity: sha512-lIJA6jup3ZZNkKFyUiy1q2tHWZv5q5bTaLxTnI85XIWr+sFCZG5oo3pOQESBkX4V95rv8sq9gEmEWySZvW7MBw==} peerDependencies: - storybook: ^8.6.7 + storybook: ^8.6.9 - '@storybook/theming@8.6.7': - resolution: {integrity: sha512-F/i4XS5bew9dvtNiHvDJF0mko1IUbPM9PUjTYPaw6cK8ytS0kdec703MsJ/GUA7seeEWBeGdZjV3ua0pys650A==} + '@storybook/theming@8.6.9': + resolution: {integrity: sha512-FQafe66itGnIh0V42R65tgFKyz0RshpIs0pTrxrdByuB2yKsep+f8ZgKLJE3fCKw/Egw4bUuICo2m8d7uOOumA==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -3357,8 +3463,8 @@ packages: engines: {node: '>=18'} hasBin: true - consola@3.4.1: - resolution: {integrity: sha512-zaUUWockhqxFf4bSXS+kTJwxWvAyMuKtShx0BWcGrMEUqbETcBCT91iQs9pECNx7yz8VH4VeWW/1KAbhE8kiww==} + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} consolidated-events@2.0.2: @@ -5992,8 +6098,8 @@ packages: storybook-dark-mode@4.0.1: resolution: {integrity: sha512-9l3qY8NdgwZnY+NlO1XHB3eUb6FmZo9GazJeUSeFkjRqwA5FmnMSeq0YVqEOqfwniM/TvQwOiTYd5g/hC2wugA==} - storybook@8.6.7: - resolution: {integrity: sha512-9gktoFMQDSCINNGQH869d/sar9rVtAhr0HchcvDA6bssAqgQJvTphY4qC9lH54SxfTJm/7Sy+BKEngMK+dziJg==} + storybook@8.6.9: + resolution: {integrity: sha512-Iw4+R4V3yX7MhXJaLBAT4oLtZ+SaTzX8KvUNZiQzvdD+TrFKVA3QKV8gvWjstGyU2dd+afE1Ph6EG5Xa2Az2CA==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -6536,8 +6642,8 @@ packages: yaml: optional: true - vite@6.2.2: - resolution: {integrity: sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==} + vite@6.2.3: + resolution: {integrity: sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -6891,7 +6997,7 @@ snapshots: '@babel/generator': 7.26.2 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.10 + '@babel/helpers': 7.26.0 '@babel/parser': 7.26.2 '@babel/template': 7.25.9 '@babel/traverse': 7.25.9 @@ -6942,10 +7048,10 @@ snapshots: '@babel/helper-validator-option@7.25.9': {} - '@babel/helpers@7.26.10': + '@babel/helpers@7.26.0': dependencies: - '@babel/template': 7.26.9 - '@babel/types': 7.26.10 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 '@babel/highlight@7.25.9': dependencies: @@ -6954,15 +7060,15 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/parser@7.26.10': - dependencies: - '@babel/types': 7.26.10 - '@babel/parser@7.26.2': dependencies: '@babel/types': 7.26.0 - '@babel/runtime@7.26.10': + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/runtime@7.27.0': dependencies: regenerator-runtime: 0.14.1 @@ -6972,12 +7078,6 @@ snapshots: '@babel/parser': 7.26.2 '@babel/types': 7.26.0 - '@babel/template@7.26.9': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 - '@babel/traverse@7.25.9': dependencies: '@babel/code-frame': 7.26.2 @@ -6995,11 +7095,6 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/types@7.26.10': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@bcoe/v8-coverage@1.0.2': {} '@braintree/asset-loader@2.0.0': {} @@ -7098,7 +7193,7 @@ snapshots: '@emotion/babel-plugin@11.13.5': dependencies: '@babel/helper-module-imports': 7.25.9 - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/serialize': 1.3.3 @@ -7129,7 +7224,7 @@ snapshots: '@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.13.5 '@emotion/serialize': 1.3.3 @@ -7155,7 +7250,7 @@ snapshots: '@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.3.1 '@emotion/react': 11.13.5(@types/react@18.3.12)(react@18.3.1) @@ -7504,12 +7599,12 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.7.3)(vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.7.3)(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1))': dependencies: glob: 10.4.5 magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.7.3) - vite: 6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) + vite: 6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) optionalDependencies: typescript: 5.7.3 @@ -7580,7 +7675,7 @@ snapshots: '@mui/icons-material@6.4.5(@mui/material@6.4.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@mui/material': 6.4.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -7588,7 +7683,7 @@ snapshots: '@mui/material@6.4.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@mui/core-downloads-tracker': 6.4.5 '@mui/system': 6.4.3(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@mui/types': 7.2.21(@types/react@18.3.12) @@ -7609,7 +7704,7 @@ snapshots: '@mui/private-theming@6.4.3(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@mui/utils': 6.4.3(@types/react@18.3.12)(react@18.3.1) prop-types: 15.8.1 react: 18.3.1 @@ -7618,7 +7713,7 @@ snapshots: '@mui/styled-engine@6.4.3(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@emotion/cache': 11.13.5 '@emotion/serialize': 1.3.3 '@emotion/sheet': 1.4.0 @@ -7631,7 +7726,7 @@ snapshots: '@mui/system@6.4.3(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@mui/private-theming': 6.4.3(@types/react@18.3.12)(react@18.3.1) '@mui/styled-engine': 6.4.3(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(react@18.3.1) '@mui/types': 7.2.21(@types/react@18.3.12) @@ -7651,7 +7746,7 @@ snapshots: '@mui/utils@6.4.3(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@mui/types': 7.2.21(@types/react@18.3.12) '@types/prop-types': 15.7.14 clsx: 2.1.1 @@ -7663,7 +7758,7 @@ snapshots: '@mui/x-date-pickers@7.27.0(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@mui/material@6.4.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@6.4.3(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(dayjs@1.11.13)(luxon@3.4.4)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@mui/material': 6.4.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/system': 6.4.3(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@mui/utils': 6.4.3(@types/react@18.3.12)(react@18.3.1) @@ -7685,7 +7780,7 @@ snapshots: '@mui/x-internals@7.26.0(@types/react@18.3.12)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@mui/utils': 6.4.3(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 transitivePeerDependencies: @@ -7938,110 +8033,110 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@storybook/addon-a11y@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/addon-a11y@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: - '@storybook/addon-highlight': 8.6.7(storybook@8.6.7(prettier@2.2.1)) + '@storybook/addon-highlight': 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@storybook/global': 5.0.0 - '@storybook/test': 8.6.7(storybook@8.6.7(prettier@2.2.1)) + '@storybook/test': 8.6.9(storybook@8.6.9(prettier@2.2.1)) axe-core: 4.10.2 - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) - '@storybook/addon-actions@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/addon-actions@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) uuid: 9.0.1 - '@storybook/addon-controls@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/addon-controls@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: '@storybook/global': 5.0.0 dequal: 2.0.3 - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) ts-dedent: 2.2.0 - '@storybook/addon-docs@8.6.7(@types/react@18.3.12)(storybook@8.6.7(prettier@2.2.1))': + '@storybook/addon-docs@8.6.9(@types/react@18.3.12)(storybook@8.6.9(prettier@2.2.1))': dependencies: '@mdx-js/react': 3.1.0(@types/react@18.3.12)(react@18.3.1) - '@storybook/blocks': 8.6.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@2.2.1)) - '@storybook/csf-plugin': 8.6.7(storybook@8.6.7(prettier@2.2.1)) - '@storybook/react-dom-shim': 8.6.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@2.2.1)) + '@storybook/blocks': 8.6.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.9(prettier@2.2.1)) + '@storybook/csf-plugin': 8.6.9(storybook@8.6.9(prettier@2.2.1)) + '@storybook/react-dom-shim': 8.6.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.9(prettier@2.2.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-highlight@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/addon-highlight@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) - '@storybook/addon-mdx-gfm@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/addon-mdx-gfm@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: remark-gfm: 4.0.0 - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color - '@storybook/addon-measure@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/addon-measure@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) tiny-invariant: 1.3.3 - '@storybook/addon-storysource@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/addon-storysource@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: - '@storybook/source-loader': 8.6.7(storybook@8.6.7(prettier@2.2.1)) + '@storybook/source-loader': 8.6.9(storybook@8.6.9(prettier@2.2.1)) estraverse: 5.3.0 - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) tiny-invariant: 1.3.3 - '@storybook/addon-viewport@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/addon-viewport@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: memoizerific: 1.11.3 - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) - '@storybook/blocks@8.6.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@2.2.1))': + '@storybook/blocks@8.6.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.9(prettier@2.2.1))': dependencies: '@storybook/icons': 1.2.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) ts-dedent: 2.2.0 optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/builder-vite@8.6.7(storybook@8.6.7(prettier@2.2.1))(vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1))': + '@storybook/builder-vite@8.6.9(storybook@8.6.9(prettier@2.2.1))(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1))': dependencies: - '@storybook/csf-plugin': 8.6.7(storybook@8.6.7(prettier@2.2.1)) + '@storybook/csf-plugin': 8.6.9(storybook@8.6.9(prettier@2.2.1)) browser-assert: 1.2.1 - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) ts-dedent: 2.2.0 - vite: 6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) + vite: 6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) - '@storybook/components@8.4.5(storybook@8.6.7(prettier@2.2.1))': + '@storybook/components@8.4.5(storybook@8.6.9(prettier@2.2.1))': dependencies: - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) - '@storybook/components@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/components@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) - '@storybook/core-events@8.4.5(storybook@8.6.7(prettier@2.2.1))': + '@storybook/core-events@8.4.5(storybook@8.6.9(prettier@2.2.1))': dependencies: - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) - '@storybook/core@8.6.7(prettier@2.2.1)(storybook@8.6.7(prettier@2.2.1))': + '@storybook/core@8.6.9(prettier@2.2.1)(storybook@8.6.9(prettier@2.2.1))': dependencies: - '@storybook/theming': 8.6.7(storybook@8.6.7(prettier@2.2.1)) + '@storybook/theming': 8.6.9(storybook@8.6.9(prettier@2.2.1)) better-opn: 3.0.2 browser-assert: 1.2.1 - esbuild: 0.25.1 - esbuild-register: 3.6.0(esbuild@0.25.1) + esbuild: 0.24.2 + esbuild-register: 3.6.0(esbuild@0.24.2) jsdoc-type-pratt-parser: 4.1.0 process: 0.11.10 recast: 0.23.9 @@ -8056,9 +8151,9 @@ snapshots: - supports-color - utf-8-validate - '@storybook/csf-plugin@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/csf-plugin@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) unplugin: 1.16.0 '@storybook/global@5.0.0': {} @@ -8068,84 +8163,84 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/instrumenter@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/instrumenter@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: '@storybook/global': 5.0.0 '@vitest/utils': 2.1.5 - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) - '@storybook/manager-api@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/manager-api@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) - '@storybook/preview-api@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/preview-api@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) - '@storybook/react-dom-shim@8.6.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@2.2.1))': + '@storybook/react-dom-shim@8.6.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.9(prettier@2.2.1))': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) - '@storybook/react-vite@8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@2.2.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.34.8)(storybook@8.6.7(prettier@2.2.1))(typescript@5.7.3)(vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1))': + '@storybook/react-vite@8.6.9(@storybook/test@8.6.9(storybook@8.6.9(prettier@2.2.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.34.8)(storybook@8.6.9(prettier@2.2.1))(typescript@5.7.3)(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.7.3)(vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.7.3)(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) '@rollup/pluginutils': 5.1.3(rollup@4.34.8) - '@storybook/builder-vite': 8.6.7(storybook@8.6.7(prettier@2.2.1))(vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) - '@storybook/react': 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@2.2.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@2.2.1))(typescript@5.7.3) + '@storybook/builder-vite': 8.6.9(storybook@8.6.9(prettier@2.2.1))(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)) + '@storybook/react': 8.6.9(@storybook/test@8.6.9(storybook@8.6.9(prettier@2.2.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.9(prettier@2.2.1))(typescript@5.7.3) find-up: 5.0.0 magic-string: 0.30.17 react: 18.3.1 react-docgen: 7.1.0 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.8 - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) tsconfig-paths: 4.2.0 - vite: 6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) + vite: 6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) optionalDependencies: - '@storybook/test': 8.6.7(storybook@8.6.7(prettier@2.2.1)) + '@storybook/test': 8.6.9(storybook@8.6.9(prettier@2.2.1)) transitivePeerDependencies: - rollup - supports-color - typescript - '@storybook/react@8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@2.2.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@2.2.1))(typescript@5.7.3)': + '@storybook/react@8.6.9(@storybook/test@8.6.9(storybook@8.6.9(prettier@2.2.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.9(prettier@2.2.1))(typescript@5.7.3)': dependencies: - '@storybook/components': 8.6.7(storybook@8.6.7(prettier@2.2.1)) + '@storybook/components': 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.6.7(storybook@8.6.7(prettier@2.2.1)) - '@storybook/preview-api': 8.6.7(storybook@8.6.7(prettier@2.2.1)) - '@storybook/react-dom-shim': 8.6.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@2.2.1)) - '@storybook/theming': 8.6.7(storybook@8.6.7(prettier@2.2.1)) + '@storybook/manager-api': 8.6.9(storybook@8.6.9(prettier@2.2.1)) + '@storybook/preview-api': 8.6.9(storybook@8.6.9(prettier@2.2.1)) + '@storybook/react-dom-shim': 8.6.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.9(prettier@2.2.1)) + '@storybook/theming': 8.6.9(storybook@8.6.9(prettier@2.2.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) optionalDependencies: - '@storybook/test': 8.6.7(storybook@8.6.7(prettier@2.2.1)) + '@storybook/test': 8.6.9(storybook@8.6.9(prettier@2.2.1)) typescript: 5.7.3 - '@storybook/source-loader@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/source-loader@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: es-toolkit: 1.27.0 estraverse: 5.3.0 prettier: 3.3.3 - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) - '@storybook/test@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/test@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.6.7(storybook@8.6.7(prettier@2.2.1)) + '@storybook/instrumenter': 8.6.9(storybook@8.6.9(prettier@2.2.1)) '@testing-library/dom': 10.4.0 '@testing-library/jest-dom': 6.5.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) '@vitest/expect': 2.0.5 '@vitest/spy': 2.0.5 - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) - '@storybook/theming@8.6.7(storybook@8.6.7(prettier@2.2.1))': + '@storybook/theming@8.6.9(storybook@8.6.9(prettier@2.2.1))': dependencies: - storybook: 8.6.7(prettier@2.2.1) + storybook: 8.6.9(prettier@2.2.1) '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.26.0)': dependencies: @@ -8313,14 +8408,14 @@ snapshots: '@testing-library/cypress@10.0.3(cypress@14.0.1)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@testing-library/dom': 10.4.0 cypress: 14.0.1 '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.26.2 - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -8331,7 +8426,7 @@ snapshots: '@testing-library/jest-dom@6.4.8': dependencies: '@adobe/css-tools': 4.4.1 - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 aria-query: 5.3.2 chalk: 3.0.0 css.escape: 1.5.1 @@ -8351,7 +8446,7 @@ snapshots: '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 '@testing-library/dom': 10.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -8367,24 +8462,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.26.0 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.26.0 '@types/braintree-web@3.96.15': dependencies: @@ -8755,10 +8850,10 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-react-swc@3.7.2(vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1))': + '@vitejs/plugin-react-swc@3.7.2(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1))': dependencies: '@swc/core': 1.10.11 - vite: 6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) + vite: 6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) transitivePeerDependencies: - '@swc/helpers' @@ -9094,7 +9189,7 @@ snapshots: babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 cosmiconfig: 7.1.0 resolve: 1.22.8 @@ -9204,7 +9299,7 @@ snapshots: canvg@3.0.11: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 '@types/raf': 3.4.3 core-js: 3.39.0 raf: 3.4.1 @@ -9399,7 +9494,7 @@ snapshots: tree-kill: 1.2.2 yargs: 17.7.2 - consola@3.4.1: {} + consola@3.4.2: {} consolidated-events@2.0.2: {} @@ -9491,11 +9586,11 @@ snapshots: dependencies: cypress: 14.0.1 - cypress-vite@1.6.0(vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)): + cypress-vite@1.6.0(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)): dependencies: chokidar: 3.6.0 debug: 4.4.0(supports-color@8.1.1) - vite: 6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) + vite: 6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) transitivePeerDependencies: - supports-color @@ -9688,7 +9783,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 csstype: 3.1.3 dompurify@3.2.4: @@ -9859,10 +9954,10 @@ snapshots: es-toolkit@1.27.0: {} - esbuild-register@3.6.0(esbuild@0.25.1): + esbuild-register@3.6.0(esbuild@0.24.2): dependencies: debug: 4.4.0(supports-color@8.1.1) - esbuild: 0.25.1 + esbuild: 0.24.2 transitivePeerDependencies: - supports-color @@ -10589,7 +10684,7 @@ snapshots: history@4.10.1: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 loose-envify: 1.4.0 resolve-pathname: 3.0.0 tiny-invariant: 1.3.3 @@ -11005,7 +11100,7 @@ snapshots: jspdf@3.0.1: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 atob: 2.1.2 btoa: 1.2.1 fflate: 0.8.2 @@ -11889,7 +11984,7 @@ snapshots: polished@4.3.1: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 possible-typed-array-names@1.0.0: {} @@ -12004,7 +12099,7 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/traverse': 7.25.9 - '@babel/types': 7.26.10 + '@babel/types': 7.26.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 '@types/doctrine': 0.0.9 @@ -12053,7 +12148,7 @@ snapshots: react-redux@7.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1): dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 hoist-non-react-statics: 3.3.2 invariant: 2.2.4 loose-envify: 1.4.0 @@ -12066,7 +12161,7 @@ snapshots: react-router-dom@5.3.4(react@18.3.1): dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 history: 4.10.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -12083,7 +12178,7 @@ snapshots: react-router@5.3.4(react@18.3.1): dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 history: 4.10.1 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 @@ -12104,7 +12199,7 @@ snapshots: react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -12120,7 +12215,7 @@ snapshots: react-waypoint@10.3.0(react@18.3.1): dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 consolidated-events: 2.0.2 prop-types: 15.8.1 react: 18.3.1 @@ -12163,7 +12258,7 @@ snapshots: recompose@0.30.0(react@18.3.1): dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 change-emitter: 0.1.6 fbjs: 0.8.18 hoist-non-react-statics: 2.5.5 @@ -12189,7 +12284,7 @@ snapshots: redux@4.2.1: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.26.0 reflect.getprototypeof@1.0.6: dependencies: @@ -12550,14 +12645,14 @@ snapshots: std-env@3.8.0: {} - storybook-dark-mode@4.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@2.2.1)): + storybook-dark-mode@4.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.9(prettier@2.2.1)): dependencies: - '@storybook/components': 8.4.5(storybook@8.6.7(prettier@2.2.1)) - '@storybook/core-events': 8.4.5(storybook@8.6.7(prettier@2.2.1)) + '@storybook/components': 8.4.5(storybook@8.6.9(prettier@2.2.1)) + '@storybook/core-events': 8.4.5(storybook@8.6.9(prettier@2.2.1)) '@storybook/global': 5.0.0 '@storybook/icons': 1.2.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/manager-api': 8.6.7(storybook@8.6.7(prettier@2.2.1)) - '@storybook/theming': 8.6.7(storybook@8.6.7(prettier@2.2.1)) + '@storybook/manager-api': 8.6.9(storybook@8.6.9(prettier@2.2.1)) + '@storybook/theming': 8.6.9(storybook@8.6.9(prettier@2.2.1)) fast-deep-equal: 3.1.3 memoizerific: 1.11.3 transitivePeerDependencies: @@ -12565,9 +12660,9 @@ snapshots: - react-dom - storybook - storybook@8.6.7(prettier@2.2.1): + storybook@8.6.9(prettier@2.2.1): dependencies: - '@storybook/core': 8.6.7(prettier@2.2.1)(storybook@8.6.7(prettier@2.2.1)) + '@storybook/core': 8.6.9(prettier@2.2.1)(storybook@8.6.9(prettier@2.2.1)) optionalDependencies: prettier: 2.2.1 transitivePeerDependencies: @@ -12871,7 +12966,7 @@ snapshots: bundle-require: 5.1.0(esbuild@0.25.1) cac: 6.7.14 chokidar: 4.0.3 - consola: 3.4.1 + consola: 3.4.2 debug: 4.4.0(supports-color@8.1.1) esbuild: 0.25.1 joycon: 3.1.1 @@ -13108,7 +13203,7 @@ snapshots: debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) + vite: 6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - jiti @@ -13123,12 +13218,12 @@ snapshots: - tsx - yaml - vite-plugin-svgr@3.3.0(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)): + vite-plugin-svgr@3.3.0(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1)): dependencies: '@rollup/pluginutils': 5.1.3(rollup@4.34.8) '@svgr/core': 8.1.0(typescript@5.7.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.7.3)) - vite: 6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) + vite: 6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1) transitivePeerDependencies: - rollup - supports-color @@ -13147,7 +13242,7 @@ snapshots: tsx: 4.19.3 yaml: 2.6.1 - vite@6.2.2(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1): + vite@6.2.3(@types/node@20.17.6)(jiti@1.21.6)(terser@5.36.0)(tsx@4.19.3)(yaml@2.6.1): dependencies: esbuild: 0.25.1 postcss: 8.5.3 diff --git a/scripts/changelog/utils/constants.mjs b/scripts/changelog/utils/constants.mjs index 9b61ea0035e..d9aab768d70 100644 --- a/scripts/changelog/utils/constants.mjs +++ b/scripts/changelog/utils/constants.mjs @@ -10,6 +10,7 @@ export const PACKAGES = [ "api-v4", "manager", "queries", + "shared", "ui", "utilities", "validation", diff --git a/scripts/package-versions/index.js b/scripts/package-versions/index.js index 831ef3823f8..955aaa22b05 100644 --- a/scripts/package-versions/index.js +++ b/scripts/package-versions/index.js @@ -11,7 +11,8 @@ * - `` (Optional) Desired Validation package version. * - `` (Optional) Desired UI package version. * - `` (Optional) Desired Utilities package version. - * - `` (Optional) Desired Queries package version. + * - `` (Optional) Desired Queries package version. + * - `` (Optional) Desired Shared package version. * * Optional Flags: * - `-f | --force` Forces the script to update package versions without @@ -115,6 +116,7 @@ const jobs = [ { name: 'ui', path: getPackagePath('ui'), desiredVersion: desiredUiVersion }, { name: 'utilities', path: getPackagePath('utilities'), desiredVersion: desiredUtilitiesVersion }, { name: 'queries', path: getPackagePath('queries'), desiredVersion: desiredQueriesVersion }, + { name: 'shared', path: getPackagePath('shared'), desiredVersion: desiredSharedVersion }, ]; // Describes the files that will be written to, and the changes that will be made. diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 224072aade5..d54bb838a3a 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -2,6 +2,7 @@ export default [ "packages/api-v4", "packages/manager", "packages/search", + "packages/shared", "packages/ui", "packages/utilities", ];