Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d833150
Create new linode/shared package
hkhalil-akamai Mar 13, 2025
7d96ad7
Fix imports
hkhalil-akamai Mar 13, 2025
f7531e9
Appease typescript
hkhalil-akamai Mar 14, 2025
9228d0f
Update imports
hkhalil-akamai Mar 14, 2025
96ccf3a
Move nodebalancer factory
hkhalil-akamai Mar 14, 2025
fcb752d
Test fixes
hkhalil-akamai Mar 14, 2025
ad928dd
Update package scripts
hkhalil-akamai Mar 17, 2025
3a8ac75
Added changeset: Move `LinodeSelect` to new `shared` package
hkhalil-akamai Mar 17, 2025
fb8f1e7
Added changeset: New `shared` package with `LinodeSelect` as the firs…
hkhalil-akamai Mar 17, 2025
7e3ff00
Linting fixes
hkhalil-akamai Mar 17, 2025
917a7bf
Merge remote-tracking branch 'upstream/develop' into M3-9214-shared-p…
hkhalil-akamai Mar 17, 2025
766fc49
Add shared package to storybook
hkhalil-akamai Mar 17, 2025
f00b107
Add missing dependencies
hkhalil-akamai Mar 17, 2025
7376217
Update lockfile
hkhalil-akamai Mar 17, 2025
ddf8b36
Merge remote-tracking branch 'upstream/develop' into M3-9214-shared-p…
hkhalil-akamai Mar 24, 2025
44f3c77
Feedback @bnussman-akamai @coliu-akamai
hkhalil-akamai Mar 24, 2025
87652bd
Fix unit test
hkhalil-akamai Mar 24, 2025
3512136
Merge remote-tracking branch 'upstream/develop' into M3-9214-shared-p…
hkhalil-akamai Mar 24, 2025
5900c37
Add validation artifact to ci.yml
hkhalil-akamai Mar 24, 2025
488f6a4
Fix cannabalizing imports
hkhalil-akamai Mar 25, 2025
18763f3
Merge remote-tracking branch 'upstream/develop' into M3-9214-shared-p…
hkhalil-akamai Mar 25, 2025
69406ad
Merge remote-tracking branch 'upstream/develop' into M3-9214-shared-p…
hkhalil-akamai Mar 25, 2025
9d1387a
Use <CloseIcon /> in LinodeSelect
hkhalil-akamai Mar 25, 2025
c40a9ac
Merge remote-tracking branch 'upstream/develop' into M3-9214-shared-p…
hkhalil-akamai Mar 25, 2025
60dfd18
Merge remote-tracking branch 'upstream/develop' into M3-9214-shared-p…
hkhalil-akamai Mar 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ jobs:
"linode-manager",
"@linode/api-v4",
"@linode/queries",
"@linode/shared",
"@linode/ui",
"@linode/utilities",
"@linode/validation",
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/)
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
5 changes: 5 additions & 0 deletions packages/manager/.changeset/pr-11844-removed-1742228203939.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@linode/manager": Removed
---

Move `LinodeSelect` to new `shared` package ([#11844](https://github.com/linode/manager/pull/11844))
1 change: 1 addition & 0 deletions packages/manager/.storybook/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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: [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
* @file Integration tests for Cloud Manager account enable Linode Managed flows.
*/

import { linodeFactory } from '@linode/utilities';
import {
visitUrlWithManagedDisabled,
visitUrlWithManagedEnabled,
Expand All @@ -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';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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.';
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand All @@ -27,7 +27,6 @@ import {
dashboardMetricFactory,
databaseFactory,
kubeLinodeFactory,
linodeFactory,
widgetFactory,
} from 'src/factories';
import { generateGraphData } from 'src/features/CloudPulse/Utils/CloudPulseWidgetUtils';
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand All @@ -25,7 +25,6 @@ import {
dashboardFactory,
dashboardMetricFactory,
kubeLinodeFactory,
linodeFactory,
widgetFactory,
} from 'src/factories';
import { generateGraphData } from 'src/features/CloudPulse/Utils/CloudPulseWidgetUtils';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
import { createLinodeRequestFactory } from '@linode/utilities';
import { authenticate } from 'support/api/authentication';
import { interceptCreateFirewall } from 'support/intercepts/firewalls';
import { ui } from 'support/ui';
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(() => {
Expand Down
Original file line number Diff line number Diff line change
@@ -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,
Expand All @@ -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';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { createFirewall, createLinode } from '@linode/api-v4';
import { createLinodeRequestFactory } from '@linode/utilities';
import { authenticate } from 'support/api/authentication';
import {
interceptUpdateFirewallLinodes,
Expand All @@ -10,7 +11,6 @@ import { randomItem, randomLabel, randomString } from 'support/util/random';
import { chooseRegion } from 'support/util/regions';

import {
createLinodeRequestFactory,
firewallFactory,
firewallRuleFactory,
firewallRulesFactory,
Expand Down
Original file line number Diff line number Diff line change
@@ -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';
Expand Down
Original file line number Diff line number Diff line change
@@ -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';
Expand Down Expand Up @@ -33,7 +34,6 @@ import { chooseRegion } from 'support/util/regions';
import {
accountFactory,
domainFactory,
linodeFactory,
supportTicketFactory,
} from 'src/factories';
import {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand All @@ -22,7 +22,6 @@ import {
import {
entityFactory,
linodeConfigFactory,
linodeFactory,
supportTicketFactory,
volumeFactory,
} from 'src/factories';
Expand Down
Original file line number Diff line number Diff line change
@@ -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';
Expand Down
Original file line number Diff line number Diff line change
@@ -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';
Expand All @@ -13,7 +14,6 @@ import {
accountUserFactory,
eventFactory,
grantsFactory,
linodeFactory,
profileFactory,
} from 'src/factories';
import { linodeDiskFactory } from 'src/factories/disk';
Expand Down
15 changes: 9 additions & 6 deletions packages/manager/cypress/e2e/core/kubernetes/lke-create.spec.ts
Original file line number Diff line number Diff line change
@@ -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,
Expand Down Expand Up @@ -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';
Expand Down
Original file line number Diff line number Diff line change
@@ -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';
Expand Down Expand Up @@ -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 {
Expand All @@ -42,8 +42,6 @@ import {
kubernetesClusterFactory,
kubernetesControlPlaneACLFactory,
kubernetesControlPlaneACLOptionsFactory,
linodeFactory,
linodeTypeFactory,
nodePoolFactory,
} from 'src/factories';
import { extendType } from 'src/utilities/extendType';
Expand Down
Original file line number Diff line number Diff line change
@@ -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';
Expand Down
Original file line number Diff line number Diff line change
@@ -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';
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand All @@ -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
Expand Down
Loading