diff --git a/frontend/package.json b/frontend/package.json index e3e3e2895f..c14a4f2097 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -93,7 +93,7 @@ "lodash.mapvalues": "^4.6.0", "lodash.omit": "4.5.0", "millify": "^6.0.0", - "msw": "2.4.12", + "msw": "2.5.0", "orval": "^6.31.0", "pkginfo": "0.4.1", "plausible-tracker": "0.3.9", @@ -118,7 +118,7 @@ "typescript": "5.4.5", "use-query-params": "^2.2.1", "vanilla-jsoneditor": "^0.23.0", - "vite": "5.4.9", + "vite": "5.4.10", "vite-plugin-env-compatible": "2.0.1", "vite-plugin-svgr": "3.3.0", "vite-tsconfig-paths": "4.3.2", @@ -128,9 +128,9 @@ "resolutions": { "@codemirror/state": "6.4.1", "@xmldom/xmldom": "^0.9.0", - "jsonpath-plus": "10.0.0", + "jsonpath-plus": "10.1.0", "json5": "^2.2.2", - "vite": "5.4.9", + "vite": "5.4.10", "semver": "7.6.3", "ws": "^8.18.0", "@types/react": "18.3.11" diff --git a/frontend/src/component/archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureDeleteConfirm/ArchivedFeatureDeleteConfirm.tsx b/frontend/src/component/archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureDeleteConfirm/ArchivedFeatureDeleteConfirm.tsx index 4fa9f92d76..4793db7e6c 100644 --- a/frontend/src/component/archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureDeleteConfirm/ArchivedFeatureDeleteConfirm.tsx +++ b/frontend/src/component/archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureDeleteConfirm/ArchivedFeatureDeleteConfirm.tsx @@ -11,7 +11,7 @@ interface IArchivedFeatureDeleteConfirmProps { deletedFeatures: string[]; projectId: string; open: boolean; - setOpen: React.Dispatch>; + setOpen: (open: boolean) => void; refetch: () => void; } diff --git a/frontend/src/component/archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureReviveConfirm/ArchivedFeatureReviveConfirm.tsx b/frontend/src/component/archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureReviveConfirm/ArchivedFeatureReviveConfirm.tsx index 9fa0ffd358..3a1cfeee66 100644 --- a/frontend/src/component/archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureReviveConfirm/ArchivedFeatureReviveConfirm.tsx +++ b/frontend/src/component/archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureReviveConfirm/ArchivedFeatureReviveConfirm.tsx @@ -1,5 +1,4 @@ import { Alert, styled } from '@mui/material'; -import type React from 'react'; import { Dialogue } from 'component/common/Dialogue/Dialogue'; import { formatUnknownError } from 'utils/formatUnknownError'; import useToast from 'hooks/useToast'; @@ -11,7 +10,7 @@ interface IArchivedFeatureReviveConfirmProps { revivedFeatures: string[]; projectId: string; open: boolean; - setOpen: React.Dispatch>; + setOpen: (open: boolean) => void; refetch: () => void; } diff --git a/frontend/src/component/layout/MainLayout/MainLayoutEventTimeline.tsx b/frontend/src/component/layout/MainLayout/MainLayoutEventTimeline.tsx index e50ebe81d2..fd32cf7cd6 100644 --- a/frontend/src/component/layout/MainLayout/MainLayoutEventTimeline.tsx +++ b/frontend/src/component/layout/MainLayout/MainLayoutEventTimeline.tsx @@ -3,7 +3,6 @@ import { ConditionallyRender } from 'component/common/ConditionallyRender/Condit import { EventTimeline } from 'component/events/EventTimeline/EventTimeline'; import { useEventTimelineContext } from 'component/events/EventTimeline/EventTimelineContext'; import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig'; -import { useUiFlag } from 'hooks/useUiFlag'; import { useEffect, useState } from 'react'; const StyledEventTimelineSlider = styled(Box)(({ theme }) => ({ @@ -21,10 +20,9 @@ const StyledEventTimelineWrapper = styled(Box)(({ theme }) => ({ export const MainLayoutEventTimeline = () => { const { isOss } = useUiConfig(); const { open: showTimeline } = useEventTimelineContext(); - const eventTimelineEnabled = useUiFlag('eventTimeline') && !isOss(); const [isInitialLoad, setIsInitialLoad] = useState(true); - const open = showTimeline && eventTimelineEnabled; + const open = showTimeline && !isOss(); useEffect(() => { setIsInitialLoad(false); diff --git a/frontend/src/component/layout/MainLayout/NavigationSidebar/NewInUnleash/NewInUnleash.tsx b/frontend/src/component/layout/MainLayout/NavigationSidebar/NewInUnleash/NewInUnleash.tsx index d07b601d13..bfdb849f4c 100644 --- a/frontend/src/component/layout/MainLayout/NavigationSidebar/NewInUnleash/NewInUnleash.tsx +++ b/frontend/src/component/layout/MainLayout/NavigationSidebar/NewInUnleash/NewInUnleash.tsx @@ -104,7 +104,6 @@ export const NewInUnleash = ({ ); const { isOss, isEnterprise } = useUiConfig(); const signalsEnabled = useUiFlag('signals'); - const eventTimelineEnabled = useUiFlag('eventTimeline'); const { setHighlighted } = useEventTimelineContext(); @@ -159,7 +158,7 @@ export const NewInUnleash = ({ }, docsLink: 'https://docs.getunleash.io/reference/events#event-timeline', - show: !isOss() && eventTimelineEnabled, + show: !isOss(), longDescription: ( <>

@@ -174,7 +173,6 @@ export const NewInUnleash = ({

), - beta: true, }, ]; diff --git a/frontend/src/component/menu/Header/HeaderEventTimelineButton.tsx b/frontend/src/component/menu/Header/HeaderEventTimelineButton.tsx index d40ad42fea..9340c166db 100644 --- a/frontend/src/component/menu/Header/HeaderEventTimelineButton.tsx +++ b/frontend/src/component/menu/Header/HeaderEventTimelineButton.tsx @@ -3,7 +3,6 @@ import LinearScaleIcon from '@mui/icons-material/LinearScale'; import { useEventTimelineContext } from 'component/events/EventTimeline/EventTimelineContext'; import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig'; import { usePlausibleTracker } from 'hooks/usePlausibleTracker'; -import { useUiFlag } from 'hooks/useUiFlag'; const StyledHeaderEventTimelineButton = styled(IconButton, { shouldForwardProp: (prop) => prop !== 'highlighted', @@ -34,14 +33,13 @@ const StyledHeaderEventTimelineButton = styled(IconButton, { export const HeaderEventTimelineButton = () => { const { trackEvent } = usePlausibleTracker(); const { isOss } = useUiConfig(); - const eventTimeline = useUiFlag('eventTimeline') && !isOss(); const { open: showTimeline, setOpen: setShowTimeline, highlighted, } = useEventTimelineContext(); - if (!eventTimeline) return null; + if (isOss()) return null; return ( { const { trackEvent } = usePlausibleTracker(); const { setSplashSeen } = useSplashApi(); const { splash } = useAuthSplash(); - const name = user?.name; + const name = user?.name || ''; - usePageTitle(`Dashboard: ${name}`); + usePageTitle(name ? `Dashboard: ${name}` : 'Dashboard'); const { personalDashboard, refetch: refetchDashboard } = usePersonalDashboard(); diff --git a/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/ProjectFeatureToggles.tsx b/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/ProjectFeatureToggles.tsx index 9ae5d4b0f2..8525dfa00c 100644 --- a/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/ProjectFeatureToggles.tsx +++ b/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/ProjectFeatureToggles.tsx @@ -47,6 +47,8 @@ import { ProjectOnboarding } from '../../../onboarding/flow/ProjectOnboarding'; import { useLocalStorageState } from 'hooks/useLocalStorageState'; import { ProjectOnboarded } from 'component/onboarding/flow/ProjectOnboarded'; import { usePlausibleTracker } from 'hooks/usePlausibleTracker'; +import { ArchivedFeatureActionCell } from '../../../archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureActionCell'; +import { ArchiveBatchActions } from '../../../archive/ArchiveTable/ArchiveBatchActions'; interface IPaginatedProjectFeatureTogglesProps { environments: string[]; @@ -115,6 +117,8 @@ export const ProjectFeatureToggles = ({ setFeatureArchiveState, setFeatureStaleDialogState, setShowMarkCompletedDialogue, + setShowFeatureReviveDialogue, + setShowFeatureDeleteDialogue, } = useRowActions(refetch, projectId); const isPlaceholder = Boolean(initialLoad || (loading && total)); @@ -321,14 +325,32 @@ export const ProjectFeatureToggles = ({ columnHelper.display({ id: 'actions', header: '', - cell: ({ row }) => ( - - ), + cell: ({ row }) => + tableState.archived ? ( + { + setShowFeatureReviveDialogue({ + featureId: row.id, + open: true, + }); + }} + onDelete={() => { + setShowFeatureDeleteDialogue({ + featureId: row.id, + open: true, + }); + }} + /> + ) : ( + + ), + enableSorting: false, enableHiding: false, meta: { @@ -585,13 +607,24 @@ export const ProjectFeatureToggles = ({ } /> - + {tableState.archived ? ( + { + refetch(); + table.resetRowSelection(); + }} + /> + ) : ( + + )} ); diff --git a/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/ProjectOverviewFilters.tsx b/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/ProjectOverviewFilters.tsx index 0bbb2da2d3..0a2d8479a9 100644 --- a/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/ProjectOverviewFilters.tsx +++ b/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/ProjectOverviewFilters.tsx @@ -6,6 +6,7 @@ import { type IFilterItem, } from 'component/filter/Filters/Filters'; import { useProjectFlagCreators } from 'hooks/api/getters/useProjectFlagCreators/useProjectFlagCreators'; +import { useUiFlag } from 'hooks/useUiFlag'; interface IProjectOverviewFilters { state: FilterItemParamHolder; @@ -21,6 +22,7 @@ export const ProjectOverviewFilters: VFC = ({ const { tags } = useAllTags(); const { flagCreators } = useProjectFlagCreators(project); const [availableFilters, setAvailableFilters] = useState([]); + const simplifyProjectOverview = useUiFlag('simplifyProjectOverview'); useEffect(() => { const tagsOptions = (tags || []).map((tag) => ({ @@ -95,6 +97,18 @@ export const ProjectOverviewFilters: VFC = ({ singularOperators: ['IS', 'IS_NOT'], pluralOperators: ['IS_ANY_OF', 'IS_NONE_OF'], }, + ...(simplifyProjectOverview + ? ([ + { + label: 'Show only archived', + icon: 'inventory', + options: [{ label: 'True', value: 'true' }], + filterKey: 'archived', + singularOperators: ['IS'], + pluralOperators: ['IS_ANY_OF'], + }, + ] as IFilterItem[]) + : []), ]; setAvailableFilters(availableFilters); diff --git a/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/hooks/useRowActions.tsx b/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/hooks/useRowActions.tsx index 5ba17bf051..ad05827e40 100644 --- a/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/hooks/useRowActions.tsx +++ b/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/hooks/useRowActions.tsx @@ -2,6 +2,8 @@ import { useState } from 'react'; import { FeatureArchiveDialog } from 'component/common/FeatureArchiveDialog/FeatureArchiveDialog'; import { FeatureStaleDialog } from 'component/common/FeatureStaleDialog/FeatureStaleDialog'; import { MarkCompletedDialogue } from 'component/feature/FeatureView/FeatureOverview/FeatureLifecycle/MarkCompletedDialogue'; +import { ArchivedFeatureDeleteConfirm } from '../../../../archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureDeleteConfirm/ArchivedFeatureDeleteConfirm'; +import { ArchivedFeatureReviveConfirm } from '../../../../archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureReviveConfirm/ArchivedFeatureReviveConfirm'; export const useRowActions = (onChange: () => void, projectId: string) => { const [featureArchiveState, setFeatureArchiveState] = useState< @@ -20,6 +22,21 @@ export const useRowActions = (onChange: () => void, projectId: string) => { featureId: 'default', open: false, }); + const [showFeatureReviveDialogue, setShowFeatureReviveDialogue] = useState<{ + featureId: string; + open: boolean; + }>({ + featureId: 'default', + open: false, + }); + const [showFeatureDeleteDialogue, setShowFeatureDeleteDialogue] = useState<{ + featureId: string; + open: boolean; + }>({ + featureId: 'default', + open: false, + }); + const rowActionsDialogs = ( <> void, projectId: string) => { featureId={showMarkCompletedDialogue.featureId} onComplete={onChange} /> + { + setShowFeatureDeleteDialogue((prev) => ({ + ...prev, + open, + })); + }} + refetch={onChange} + /> + { + setShowFeatureReviveDialogue((prev) => ({ + ...prev, + open, + })); + }} + refetch={() => { + setShowFeatureReviveDialogue((prev) => ({ + ...prev, + open: false, + })); + onChange(); + }} + /> ); @@ -62,5 +109,7 @@ export const useRowActions = (onChange: () => void, projectId: string) => { setFeatureArchiveState, setFeatureStaleDialogState, setShowMarkCompletedDialogue, + setShowFeatureReviveDialogue, + setShowFeatureDeleteDialogue, }; }; diff --git a/frontend/src/interfaces/uiConfig.ts b/frontend/src/interfaces/uiConfig.ts index ddb96aca17..2d396f81bb 100644 --- a/frontend/src/interfaces/uiConfig.ts +++ b/frontend/src/interfaces/uiConfig.ts @@ -92,6 +92,7 @@ export type UiFlags = { unleashAI?: boolean; releasePlans?: boolean; 'enterprise-payg'?: boolean; + simplifyProjectOverview?: boolean; }; export interface IVersionInfo { diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 098fac3960..5b3f0e5154 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -1383,48 +1383,49 @@ __metadata: languageName: node linkType: hard -"@inquirer/confirm@npm:^3.0.0": - version: 3.1.9 - resolution: "@inquirer/confirm@npm:3.1.9" +"@inquirer/confirm@npm:^4.0.0": + version: 4.0.1 + resolution: "@inquirer/confirm@npm:4.0.1" dependencies: - "@inquirer/core": "npm:^8.2.2" - "@inquirer/type": "npm:^1.3.3" - checksum: 10c0/9fb63a052cbe3705bcab706b3e68d70aa75ac7c7bfc04cc4fee2319e4da9355150c99b205bc72b595844e1549705643049e71d14070a3ab3d6483941c1e6a239 + "@inquirer/core": "npm:^9.2.1" + "@inquirer/type": "npm:^2.0.0" + checksum: 10c0/8ea5e6a63efa348b626750384c249cc903280e38c2596bb42c640f178b375dbc389d8c4d040b2e4759b3937d8a188e245ca262b8dc7cdb2fa35dfce4104c2e8f languageName: node linkType: hard -"@inquirer/core@npm:^8.2.2": - version: 8.2.2 - resolution: "@inquirer/core@npm:8.2.2" +"@inquirer/core@npm:^9.2.1": + version: 9.2.1 + resolution: "@inquirer/core@npm:9.2.1" dependencies: - "@inquirer/figures": "npm:^1.0.3" - "@inquirer/type": "npm:^1.3.3" + "@inquirer/figures": "npm:^1.0.6" + "@inquirer/type": "npm:^2.0.0" "@types/mute-stream": "npm:^0.0.4" - "@types/node": "npm:^20.12.13" + "@types/node": "npm:^22.5.5" "@types/wrap-ansi": "npm:^3.0.0" ansi-escapes: "npm:^4.3.2" - chalk: "npm:^4.1.2" - cli-spinners: "npm:^2.9.2" cli-width: "npm:^4.1.0" mute-stream: "npm:^1.0.0" signal-exit: "npm:^4.1.0" strip-ansi: "npm:^6.0.1" wrap-ansi: "npm:^6.2.0" - checksum: 10c0/6a04b42f856b31f892bd2195cbb214a38836f708f09925b36a50b11e3e84dca73ebf008ff7a42f2e7901350450a1cec8fe625c43cc1a90eda3c10ed7e4527cca + yoctocolors-cjs: "npm:^2.1.2" + checksum: 10c0/11c14be77a9fa85831de799a585721b0a49ab2f3b7d8fd1780c48ea2b29229c6bdc94e7892419086d0f7734136c2ba87b6a32e0782571eae5bbd655b1afad453 languageName: node linkType: hard -"@inquirer/figures@npm:^1.0.3": - version: 1.0.3 - resolution: "@inquirer/figures@npm:1.0.3" - checksum: 10c0/099e062f000baafb4010014ece443d0cd211f562194854dc52a128bfe514611f8cc3da4cdb5092d75440956aff201dcd8e893b8a71feb104f97b0b00c6a696cf +"@inquirer/figures@npm:^1.0.6": + version: 1.0.7 + resolution: "@inquirer/figures@npm:1.0.7" + checksum: 10c0/d7b4cfcd38dd43d1ac79da52c4478aa89145207004a471aa2083856f1d9b99adef45563f09d66c09d6457b09200fcf784527804b70ad3bd517cbc5e11142c2df languageName: node linkType: hard -"@inquirer/type@npm:^1.3.3": - version: 1.3.3 - resolution: "@inquirer/type@npm:1.3.3" - checksum: 10c0/84048694410bb5b2c55dc4e48da6369ce942b9e8f8016d15ef63ab3f9873832a56cc12a50582b5b2b626821bfe29973dfcc19edc90f58490b51df1f4d9d0a074 +"@inquirer/type@npm:^2.0.0": + version: 2.0.0 + resolution: "@inquirer/type@npm:2.0.0" + dependencies: + mute-stream: "npm:^1.0.0" + checksum: 10c0/8c663d52beb2b89a896d3c3d5cc3d6d024fa149e565555bcb42fa640cbe23fba7ff2c51445342cef1fe6e46305e2d16c1590fa1d11ad0ddf93a67b655ef41f0a languageName: node linkType: hard @@ -3084,7 +3085,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^20.12.12, @types/node@npm:^20.12.13": +"@types/node@npm:^20.12.12": version: 20.17.1 resolution: "@types/node@npm:20.17.1" dependencies: @@ -3093,6 +3094,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^22.5.5": + version: 22.8.4 + resolution: "@types/node@npm:22.8.4" + dependencies: + undici-types: "npm:~6.19.8" + checksum: 10c0/f88d030480630194a9168772462ec09b2d86454f34368c46d2b7fda5dc6e14594b1576fcc5c35cc53b57a4d1e8dd2865a85ae81f34ded0d1af753a0f5d294c25 + languageName: node + linkType: hard + "@types/parse-json@npm:^4.0.0": version: 4.0.2 resolution: "@types/parse-json@npm:4.0.2" @@ -4143,13 +4153,6 @@ __metadata: languageName: node linkType: hard -"cli-spinners@npm:^2.9.2": - version: 2.9.2 - resolution: "cli-spinners@npm:2.9.2" - checksum: 10c0/907a1c227ddf0d7a101e7ab8b300affc742ead4b4ebe920a5bf1bc6d45dce2958fcd195eb28fa25275062fe6fa9b109b93b63bc8033396ed3bcb50297008b3a3 - languageName: node - linkType: hard - "cli-table3@npm:~0.6.1": version: 0.6.5 resolution: "cli-table3@npm:0.6.5" @@ -6737,9 +6740,9 @@ __metadata: languageName: node linkType: hard -"jsonpath-plus@npm:10.0.0": - version: 10.0.0 - resolution: "jsonpath-plus@npm:10.0.0" +"jsonpath-plus@npm:10.1.0": + version: 10.1.0 + resolution: "jsonpath-plus@npm:10.1.0" dependencies: "@jsep-plugin/assignment": "npm:^1.2.1" "@jsep-plugin/regex": "npm:^1.0.3" @@ -6747,7 +6750,7 @@ __metadata: bin: jsonpath: bin/jsonpath-cli.js jsonpath-plus: bin/jsonpath-cli.js - checksum: 10c0/0bd0ad79397f319c8543f090a944ea08c933c13d69ad5213f202f738ef4abd46de57c917844a83e2e89643cadbfc2e327a402c01eaf50bd1870882d50a4a8b95 + checksum: 10c0/1ff0743f9113f7750b598563c7886e1b07c19f112c4a8d976165e6799ff9774279985d1f4a147e87eacc0b94eb27dbd6e3ab5cf0728d4ba947f00757bc6aebb4 languageName: node linkType: hard @@ -7609,14 +7612,14 @@ __metadata: languageName: node linkType: hard -"msw@npm:2.4.12": - version: 2.4.12 - resolution: "msw@npm:2.4.12" +"msw@npm:2.5.0": + version: 2.5.0 + resolution: "msw@npm:2.5.0" dependencies: "@bundled-es-modules/cookie": "npm:^2.0.0" "@bundled-es-modules/statuses": "npm:^1.0.1" "@bundled-es-modules/tough-cookie": "npm:^0.1.6" - "@inquirer/confirm": "npm:^3.0.0" + "@inquirer/confirm": "npm:^4.0.0" "@mswjs/interceptors": "npm:^0.36.5" "@open-draft/until": "npm:^2.1.0" "@types/cookie": "npm:^0.6.0" @@ -7637,7 +7640,7 @@ __metadata: optional: true bin: msw: cli/index.js - checksum: 10c0/1f24544e5aaac4a5184cae48ee4f6f8a85d1476f361cb7b831fcabfb4cdedbb03a38298c1b1c3af77118c439b797d8a95e2398ba1c233cf353be496de1a0ef9c + checksum: 10c0/59eb6d2496b4d44f6b5507802beffd780ac03efc0b02cc092886d1ff6b9266297274ee655cf89bcccc49988d960f685f0dd571535663bc7f60f38e8040d9a092 languageName: node linkType: hard @@ -10153,7 +10156,7 @@ __metadata: lodash.mapvalues: "npm:^4.6.0" lodash.omit: "npm:4.5.0" millify: "npm:^6.0.0" - msw: "npm:2.4.12" + msw: "npm:2.5.0" orval: "npm:^6.31.0" pkginfo: "npm:0.4.1" plausible-tracker: "npm:0.3.9" @@ -10178,7 +10181,7 @@ __metadata: typescript: "npm:5.4.5" use-query-params: "npm:^2.2.1" vanilla-jsoneditor: "npm:^0.23.0" - vite: "npm:5.4.9" + vite: "npm:5.4.10" vite-plugin-env-compatible: "npm:2.0.1" vite-plugin-svgr: "npm:3.3.0" vite-tsconfig-paths: "npm:4.3.2" @@ -10451,9 +10454,9 @@ __metadata: languageName: node linkType: hard -"vite@npm:5.4.9": - version: 5.4.9 - resolution: "vite@npm:5.4.9" +"vite@npm:5.4.10": + version: 5.4.10 + resolution: "vite@npm:5.4.10" dependencies: esbuild: "npm:^0.21.3" fsevents: "npm:~2.3.3" @@ -10490,7 +10493,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/e9c59f2c639047e37c79bbbb151c7a55a3dc27932957cf4cf0447ee0bdcc1ddfd9b1fb3ba0465371c01ba3616d62561327855794c2d652213c3a10a32e6d369d + checksum: 10c0/4ef4807d2fd166a920de244dbcec791ba8a903b017a7d8e9f9b4ac40d23f8152c1100610583d08f542b47ca617a0505cfc5f8407377d610599d58296996691ed languageName: node linkType: hard @@ -10836,6 +10839,13 @@ __metadata: languageName: node linkType: hard +"yoctocolors-cjs@npm:^2.1.2": + version: 2.1.2 + resolution: "yoctocolors-cjs@npm:2.1.2" + checksum: 10c0/a0e36eb88fea2c7981eab22d1ba45e15d8d268626e6c4143305e2c1628fa17ebfaa40cd306161a8ce04c0a60ee0262058eab12567493d5eb1409780853454c6f + languageName: node + linkType: hard + "zustand@npm:4.0.0": version: 4.0.0 resolution: "zustand@npm:4.0.0" diff --git a/package.json b/package.json index 2169d67b14..5c3aa1c456 100644 --- a/package.json +++ b/package.json @@ -173,7 +173,7 @@ }, "devDependencies": { "@apidevtools/swagger-parser": "10.1.0", - "@babel/core": "7.25.8", + "@babel/core": "7.25.9", "@biomejs/biome": "^1.8.3", "@cyclonedx/yarn-plugin-cyclonedx": "^1.0.0-rc.7", "@swc/core": "1.7.39", @@ -191,7 +191,7 @@ "@types/memoizee": "0.4.11", "@types/mime": "4.0.0", "@types/mustache": "^4.2.5", - "@types/node": "20.16.13", + "@types/node": "20.16.14", "@types/nodemailer": "6.4.16", "@types/owasp-password-strength-test": "1.3.2", "@types/pg": "8.11.10", diff --git a/src/lib/addons/addon.ts b/src/lib/addons/addon.ts index 173e84b750..3cbfbf93e5 100644 --- a/src/lib/addons/addon.ts +++ b/src/lib/addons/addon.ts @@ -94,12 +94,10 @@ export default abstract class Addon { integrationEvent: IntegrationEventWriteModel, ): Promise { await this.integrationEventsService.registerEvent(integrationEvent); - if (this.flagResolver.isEnabled('addonUsageMetrics')) { - this.eventBus.emit(ADDON_EVENTS_HANDLED, { - result: integrationEvent.state, - destination: this.name, - }); - } + this.eventBus.emit(ADDON_EVENTS_HANDLED, { + result: integrationEvent.state, + destination: this.name, + }); } destroy?(): void; diff --git a/src/lib/features/events/event-search-controller.ts b/src/lib/features/events/event-search-controller.ts index 3b59bede06..ba2810a9e4 100644 --- a/src/lib/features/events/event-search-controller.ts +++ b/src/lib/features/events/event-search-controller.ts @@ -111,19 +111,15 @@ export default class EventSearchController extends Controller { } enrichEvents(events: IEvent[]): IEvent[] | IEnrichedEvent[] { - if (this.flagResolver.isEnabled('eventTimeline')) { - return events.map((event) => { - const { label, text: summary } = - this.msgFormatter.format(event); + return events.map((event) => { + const { label, text: summary } = this.msgFormatter.format(event); - return { - ...event, - label, - summary, - }; - }); - } - return events; + return { + ...event, + label, + summary, + }; + }); } maybeAnonymiseEvents(events: IEvent[]): IEvent[] { diff --git a/src/lib/features/feature-search/feature-search-store.ts b/src/lib/features/feature-search/feature-search-store.ts index bf3fd577c1..f08eb624f8 100644 --- a/src/lib/features/feature-search/feature-search-store.ts +++ b/src/lib/features/feature-search/feature-search-store.ts @@ -121,6 +121,7 @@ class FeatureSearchStore implements IFeatureSearchStore { 'features.name as feature_name', 'features.description as description', 'features.type as type', + 'features.archived_at as archived_at', 'features.project as project', 'features.created_at as created_at', 'features.stale as stale', @@ -475,6 +476,7 @@ class FeatureSearchStore implements IFeatureSearchStore { name: row.feature_name, createdAt: row.created_at, stale: row.stale, + archivedAt: row.archived_at, impressionData: row.impression_data, lastSeenAt: row.last_seen_at, dependencyType: row.dependency, diff --git a/src/lib/features/feature-search/feature.search.e2e.test.ts b/src/lib/features/feature-search/feature.search.e2e.test.ts index 396010cc22..41d52ad589 100644 --- a/src/lib/features/feature-search/feature.search.e2e.test.ts +++ b/src/lib/features/feature-search/feature.search.e2e.test.ts @@ -179,6 +179,11 @@ const filterFeaturesByEnvironmentStatus = async ( const searchFeaturesWithoutQueryParams = async (expectedCode = 200) => { return app.request.get(`/api/admin/search/features`).expect(expectedCode); }; +const getProjectArchive = async (projectId = 'default', expectedCode = 200) => { + return app.request + .get(`/api/admin/archive/features/${projectId}`) + .expect(expectedCode); +}; test('should search matching features by name', async () => { await app.createFeature('my_feature_a'); @@ -1154,6 +1159,7 @@ test('should return archived when query param set', async () => { features: [ { name: 'my_feature_a', + archivedAt: null, }, ], }); @@ -1162,10 +1168,14 @@ test('should return archived when query param set', async () => { query: 'my_feature', archived: 'IS:true', }); + + const { body: archive } = await getProjectArchive(); + expect(archivedFeatures).toMatchObject({ features: [ { name: 'my_feature_b', + archivedAt: archive.features[0].archivedAt, }, ], }); diff --git a/src/lib/openapi/spec/event-schema.ts b/src/lib/openapi/spec/event-schema.ts index 78f8640e51..fe33fbe732 100644 --- a/src/lib/openapi/spec/event-schema.ts +++ b/src/lib/openapi/spec/event-schema.ts @@ -95,14 +95,12 @@ export const eventSchema = { label: { type: 'string', nullable: true, - description: - '**[Experimental]** The concise, human-readable name of the event.', + description: 'The concise, human-readable name of the event.', }, summary: { type: 'string', nullable: true, - description: - '**[Experimental]** A markdown-formatted summary of the event.', + description: 'A markdown-formatted summary of the event.', }, }, components: { diff --git a/src/lib/openapi/spec/feature-search-response-schema.ts b/src/lib/openapi/spec/feature-search-response-schema.ts index 3bb5e64f6d..5085116acc 100644 --- a/src/lib/openapi/spec/feature-search-response-schema.ts +++ b/src/lib/openapi/spec/feature-search-response-schema.ts @@ -54,11 +54,6 @@ export const featureSearchResponseSchema = { description: "The type of dependency. 'parent' means that the feature is a parent feature, 'child' means that the feature is a child feature.", }, - archived: { - type: 'boolean', - example: true, - description: '`true` if the feature is archived', - }, project: { type: 'string', example: 'dx-squad', diff --git a/src/lib/services/email-service.ts b/src/lib/services/email-service.ts index 38357e592a..155c7d187c 100644 --- a/src/lib/services/email-service.ts +++ b/src/lib/services/email-service.ts @@ -528,8 +528,8 @@ export class EmailService { } async sendProductivityReportEmail( - userName: string, userEmail: string, + userName: string, metrics: { health: number; flagsCreated: number; diff --git a/src/lib/types/experimental.ts b/src/lib/types/experimental.ts index 1df825499f..f24395ef49 100644 --- a/src/lib/types/experimental.ts +++ b/src/lib/types/experimental.ts @@ -51,17 +51,16 @@ export type IFlagKey = | 'removeUnsafeInlineStyleSrc' | 'onboardingUI' | 'projectRoleAssignment' - | 'eventTimeline' | 'personalDashboardUI' | 'trackLifecycleMetrics' | 'purchaseAdditionalEnvironments' | 'originMiddlewareRequestLogging' | 'unleashAI' | 'webhookDomainLogging' - | 'addonUsageMetrics' | 'releasePlans' | 'navigationSidebar' - | 'productivityReportEmail'; + | 'productivityReportEmail' + | 'simplifyProjectOverview'; export type IFlags = Partial<{ [key in IFlagKey]: boolean | Variant }>; @@ -262,10 +261,6 @@ const flags: IFlags = { process.env.UNLEASH_EXPERIMENTAL_PROJECT_ROLE_ASSIGNMENT, false, ), - eventTimeline: parseEnvVarBoolean( - process.env.UNLEASH_EXPERIMENTAL_EVENT_TIMELINE, - false, - ), personalDashboardUI: parseEnvVarBoolean( process.env.UNLEASH_EXPERIMENTAL_PERSONAL_DASHBOARD_UI, false, @@ -290,10 +285,6 @@ const flags: IFlags = { process.env.UNLEASH_EXPERIMENT_WEBHOOK_DOMAIN_LOGGING, false, ), - addonUsageMetrics: parseEnvVarBoolean( - process.env.UNLEASH_EXPERIMENTAL_ADDON_USAGE_METRICS, - false, - ), releasePlans: parseEnvVarBoolean( process.env.UNLEASH_EXPERIMENTAL_RELEASE_PLANS, false, @@ -306,6 +297,10 @@ const flags: IFlags = { process.env.UNLEASH_EXPERIMENTAL_PRODUCTIVITY_REPORT_EMAIL, false, ), + simplifyProjectOverview: parseEnvVarBoolean( + process.env.UNLEASH_EXPERIMENTAL_SIMPLIFY_PROJECT_OVERVIEW, + false, + ), }; export const defaultExperimentalOptions: IExperimentalOptions = { diff --git a/src/lib/types/model.ts b/src/lib/types/model.ts index 46da479814..9300b58dad 100644 --- a/src/lib/types/model.ts +++ b/src/lib/types/model.ts @@ -261,6 +261,7 @@ export type IFeatureSearchOverview = Exclude< > & { dependencyType: 'parent' | 'child' | null; environments: FeatureSearchEnvironmentSchema[]; + archivedAt: string; createdBy: { id: number; name: string; diff --git a/src/migrations/20241030093439-release-plans-template-ref-and-missing-strategy-fields.js b/src/migrations/20241030093439-release-plans-template-ref-and-missing-strategy-fields.js new file mode 100644 index 0000000000..d18203eab7 --- /dev/null +++ b/src/migrations/20241030093439-release-plans-template-ref-and-missing-strategy-fields.js @@ -0,0 +1,27 @@ +exports.up = function(db, cb) { + db.runSql(` + ALTER TABLE release_plan_definitions ADD COLUMN release_plan_template_id TEXT REFERENCES release_plan_definitions(id) ON DELETE CASCADE; + CREATE INDEX idx_release_plan_template_definition_id ON release_plan_definitions (release_plan_template_id) WHERE release_plan_template_id IS NOT NULL; + + ALTER TABLE feature_strategies ADD COLUMN milestone_id TEXT REFERENCES milestones(id) ON DELETE CASCADE; + CREATE INDEX idx_feature_strategies_milestone_id ON feature_strategies (milestone_id) WHERE milestone_id IS NOT NULL; + + CREATE TABLE milestone_strategy_segments ( + segment_id INT NOT NULL references segments(id) ON DELETE CASCADE, + milestone_strategy_id TEXT NOT NULL references milestone_strategies(id) ON DELETE CASCADE, + created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT (now() at time zone 'utc'), + PRIMARY KEY (segment_id, milestone_strategy_id) + ); + + ALTER TABLE milestone_strategies ADD COLUMN variants JSONB NOT NULL DEFAULT '[]'::JSONB; + `, cb) +}; + +exports.down = function(db, cb) { + db.runSql(` + ALTER TABLE release_plan_definitions DROP COLUMN release_plan_template_id; + ALTER TABLE feature_strategies DROP COLUMN milestone_id; + DROP TABLE milestone_strategy_segments; + ALTER TABLE milestone_strategies DROP COLUMN variants; + `, cb); +}; diff --git a/src/server-dev.ts b/src/server-dev.ts index 91c2bfc4c7..81a95d9f16 100644 --- a/src/server-dev.ts +++ b/src/server-dev.ts @@ -55,8 +55,8 @@ process.nextTick(async () => { originMiddlewareRequestLogging: true, unleashAI: true, webhookDomainLogging: true, - addonUsageMetrics: true, releasePlans: false, + simplifyProjectOverview: true, }, }, authentication: { diff --git a/website/package.json b/website/package.json index 360d8e69ca..dad8d6b987 100644 --- a/website/package.json +++ b/website/package.json @@ -68,7 +68,7 @@ ] }, "devDependencies": { - "@babel/core": "7.25.8", + "@babel/core": "7.25.9", "@docusaurus/module-type-aliases": "2.3.1", "@tsconfig/docusaurus": "2.0.3", "babel-loader": "9.2.1", diff --git a/website/yarn.lock b/website/yarn.lock index 59fcd04a94..9042544505 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -245,13 +245,14 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/code-frame@npm:7.25.7" +"@babel/code-frame@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/code-frame@npm:7.26.0" dependencies: - "@babel/highlight": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.9" + js-tokens: "npm:^4.0.0" picocolors: "npm:^1.0.0" - checksum: 10c0/14825c298bdec914caf3d24d1383b6d4cd6b030714686004992f4fc251831ecf432236652896f99d5d341f17170ae9a07b58d8d7b15aa0df8cfa1c5a7d5474bc + checksum: 10c0/46f7e367714be736b52ea3c01b24f47e2102e210fb83021d1c8237d8fc511b9538909e16e2fcdbb5cb6173e0794e28624309a59014e52fcfb7bde908f5284388 languageName: node linkType: hard @@ -269,10 +270,10 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.25.7": - version: 7.25.8 - resolution: "@babel/compat-data@npm:7.25.8" - checksum: 10c0/8b81c17580e5fb4cbb6a3c52079f8c283fc59c0c6bd2fe14cfcf9c44b32d2eaab71b02c5633e2c679f5896f73f8ac4036ba2e67a4c806e8f428e4b11f526d7f4 +"@babel/compat-data@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/compat-data@npm:7.26.0" + checksum: 10c0/6325c9151a3c9b0a3a807e854a26255ef66d989bff331475a935af9bb18f160e0fffe6aed550e4e96b63f91efcd874bfbaab2a1f4a2f8d25645d712a0de590fb languageName: node linkType: hard @@ -300,26 +301,26 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.25.8": - version: 7.25.8 - resolution: "@babel/core@npm:7.25.8" +"@babel/core@npm:7.25.9": + version: 7.25.9 + resolution: "@babel/core@npm:7.25.9" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.25.7" - "@babel/generator": "npm:^7.25.7" - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helpers": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.8" - "@babel/template": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.8" + "@babel/code-frame": "npm:^7.25.9" + "@babel/generator": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helpers": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/8411ea506e6f7c8a39ab5c1524b00589fa3b087edb47389708f7fe07170929192171734666e3ea10b95a951643a531a6d09eedfe071572c9ea28516646265086 + checksum: 10c0/40d3064ebe906f65ed4153a0f4d75c679a19e4d71e425035b7bbe2d292a9167274f1a0d908d4d6c8f484fcddeb10bd91e0c7878fdb3dfad1bb00f6a319ce431d languageName: node linkType: hard @@ -404,15 +405,16 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/generator@npm:7.25.7" +"@babel/generator@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/generator@npm:7.26.0" dependencies: - "@babel/types": "npm:^7.25.7" + "@babel/parser": "npm:^7.26.0" + "@babel/types": "npm:^7.26.0" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^3.0.2" - checksum: 10c0/c03a26c79864d60d04ce36b649c3fa0d6fd7b2bf6a22e22854a0457aa09206508392dd73ee40e7bc8d50b3602f9ff068afa47770cda091d332e7db1ca382ee96 + checksum: 10c0/b6bb9185f19a97eaf58e04a6d39a13237076678e7ed16b6321dea914535d4bf6a8d7727c9dcb65539845aa0096b326eb67be4bab764bd74bcfd848e2eda68609 languageName: node linkType: hard @@ -480,16 +482,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-compilation-targets@npm:7.25.7" +"@babel/helper-compilation-targets@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-compilation-targets@npm:7.25.9" dependencies: - "@babel/compat-data": "npm:^7.25.7" - "@babel/helper-validator-option": "npm:^7.25.7" + "@babel/compat-data": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10c0/705be7e5274a3fdade68e3e2cf42e2b600316ab52794e13b91299a16f16c926f15886b6e9d6df20eb943ccc1cdba5a363d4766f8d01e47b8e6f4e01175f5e66c + checksum: 10c0/a6b26a1e4222e69ef8e62ee19374308f060b007828bc11c65025ecc9e814aba21ff2175d6d3f8bf53c863edd728ee8f94ba7870f8f90a37d39552ad9933a8aaa languageName: node linkType: hard @@ -699,13 +701,13 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-module-imports@npm:7.25.7" +"@babel/helper-module-imports@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-module-imports@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/0fd0c3673835e5bf75558e184bcadc47c1f6dd2fe2016d53ebe1e5a6ae931a44e093015c2f9a6651c1a89f25c76d9246710c2b0b460b95ee069c464f2837fa2c + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/078d3c2b45d1f97ffe6bb47f61961be4785d2342a4156d8b42c92ee4e1b7b9e365655dd6cb25329e8fe1a675c91eeac7e3d04f0c518b67e417e29d6e27b6aa70 languageName: node linkType: hard @@ -740,17 +742,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-module-transforms@npm:7.25.7" +"@babel/helper-module-transforms@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/helper-module-transforms@npm:7.26.0" dependencies: - "@babel/helper-module-imports": "npm:^7.25.7" - "@babel/helper-simple-access": "npm:^7.25.7" - "@babel/helper-validator-identifier": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/f37fa7d1d4df21690535b278468cbd5faf0133a3080f282000cfa4f3ffc9462a1458f866b04b6a2f2d1eec4691236cba9a867da61270dab3ab19846e62f05090 + checksum: 10c0/ee111b68a5933481d76633dad9cdab30c41df4479f0e5e1cc4756dc9447c1afd2c9473b5ba006362e35b17f4ebddd5fca090233bef8dfc84dca9d9127e56ec3a languageName: node linkType: hard @@ -864,16 +865,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-simple-access@npm:7.25.7" - dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/eed1b499bfb4f613c18debd61517e3de77b6da2727ca025aa05ac81599e0269f1dddb5237db04e8bb598115d015874752e0a7f11ff38672d74a4976097417059 - languageName: node - linkType: hard - "@babel/helper-skip-transparent-expression-wrappers@npm:^7.18.9": version: 7.20.0 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.20.0" @@ -931,10 +922,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-string-parser@npm:7.25.7" - checksum: 10c0/73ef2ceb81f8294678a0afe8ab0103729c0370cac2e830e0d5128b03be5f6a2635838af31d391d763e3c5a4460ed96f42fd7c9b552130670d525be665913bc4c +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 10c0/7244b45d8e65f6b4338a6a68a8556f2cb161b782343e97281a5f2b9b93e420cad0d9f5773a59d79f61d0c448913d06f6a2358a87f2e203cf112e3c5b53522ee6 languageName: node linkType: hard @@ -973,10 +964,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-validator-identifier@npm:7.25.7" - checksum: 10c0/07438e5bf01ab2882a15027fdf39ac3b0ba1b251774a5130917907014684e2f70fef8fd620137ca062c4c4eedc388508d2ea7a3a7d9936a32785f4fe116c68c0 +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d languageName: node linkType: hard @@ -994,10 +985,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-validator-option@npm:7.25.7" - checksum: 10c0/12ed418c8e3ed9ed44c8c80d823f4e42d399b5eb2e423adccb975e31a31a008cd3b5d8eab688b31f740caff4a1bb28fe06ea2fa7d635aee34cc0ad6995d50f0a +"@babel/helper-validator-option@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-option@npm:7.25.9" + checksum: 10c0/27fb195d14c7dcb07f14e58fe77c44eea19a6a40a74472ec05c441478fa0bb49fa1c32b2d64be7a38870ee48ef6601bdebe98d512f0253aea0b39756c4014f3e languageName: node linkType: hard @@ -1046,13 +1037,13 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helpers@npm:7.25.7" +"@babel/helpers@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/helpers@npm:7.26.0" dependencies: - "@babel/template": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/3b3ae9e373bd785414195ef8f59976a69d5a6ebe0ef2165fdcc5165e5c3ee09e0fcee94bb457df2ddb8c0532e4146d0a9b7a96b3497399a4bff4ffe196b30228 + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + checksum: 10c0/343333cced6946fe46617690a1d0789346960910225ce359021a88a60a65bc0d791f0c5d240c0ed46cf8cc63b5fd7df52734ff14e43b9c32feae2b61b1647097 languageName: node linkType: hard @@ -1100,18 +1091,6 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/highlight@npm:7.25.7" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.25.7" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10c0/1f5894fdb0a0af6101fb2822369b2eeeae32cbeae2ef73ff73fc6a0a4a20471565cd9cfa589f54ed69df66adeca7c57266031ca9134b7bd244d023a488d419aa - languageName: node - linkType: hard - "@babel/parser@npm:^7.12.7, @babel/parser@npm:^7.18.10, @babel/parser@npm:^7.18.8, @babel/parser@npm:^7.20.2": version: 7.20.3 resolution: "@babel/parser@npm:7.20.3" @@ -1157,14 +1136,14 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/parser@npm:7.25.8" +"@babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0": + version: 7.26.1 + resolution: "@babel/parser@npm:7.26.1" dependencies: - "@babel/types": "npm:^7.25.8" + "@babel/types": "npm:^7.26.0" bin: parser: ./bin/babel-parser.js - checksum: 10c0/a1a13845b7e8dda4c970791814a4bbf60004969882f18f470e260ad822d2e1f8941948f851e9335895563610f240fa6c98481ce8019865e469502bbf21daafa4 + checksum: 10c0/dc7d4e6b7eb667fa0784e7e2c3f6f92ca12ad72242f6d4311995310dae55093f02acdb595b69b0dbbf04cb61ad87156ac03186ff32eacfa35149c655bc22c14b languageName: node linkType: hard @@ -3070,14 +3049,14 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/template@npm:7.25.7" +"@babel/template@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/template@npm:7.25.9" dependencies: - "@babel/code-frame": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/8ae9e36e4330ee83d4832531d1d9bec7dc2ef6a2a8afa1ef1229506fd60667abcb17f306d1c3d7e582251270597022990c845d5d69e7add70a5aea66720decb9 + "@babel/code-frame": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/ebe677273f96a36c92cc15b7aa7b11cc8bc8a3bb7a01d55b2125baca8f19cae94ff3ce15f1b1880fb8437f3a690d9f89d4e91f16fc1dc4d3eb66226d128983ab languageName: node linkType: hard @@ -3099,18 +3078,18 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/traverse@npm:7.25.7" +"@babel/traverse@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/traverse@npm:7.25.9" dependencies: - "@babel/code-frame": "npm:^7.25.7" - "@babel/generator": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.7" - "@babel/template": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" + "@babel/code-frame": "npm:^7.25.9" + "@babel/generator": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/75d73e52c507a7a7a4c7971d6bf4f8f26fdd094e0d3a0193d77edf6a5efa36fc3db91ec5cc48e8b94e6eb5d5ad21af0a1040e71309172851209415fd105efb1a + checksum: 10c0/e90be586a714da4adb80e6cb6a3c5cfcaa9b28148abdafb065e34cc109676fc3db22cf98cd2b2fff66ffb9b50c0ef882cab0f466b6844be0f6c637b82719bba1 languageName: node linkType: hard @@ -3169,14 +3148,13 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/types@npm:7.25.8" +"@babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/types@npm:7.26.0" dependencies: - "@babel/helper-string-parser": "npm:^7.25.7" - "@babel/helper-validator-identifier": "npm:^7.25.7" - to-fast-properties: "npm:^2.0.0" - checksum: 10c0/55ca2d6df6426c98db2769ce884ce5e9de83a512ea2dd7bcf56c811984dc14351cacf42932a723630c5afcff2455809323decd645820762182f10b7b5252b59f + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10c0/b694f41ad1597127e16024d766c33a641508aad037abd08d0d1f73af753e1119fa03b4a107d04b5f92cc19c095a594660547ae9bead1db2299212d644b0a5cb8 languageName: node linkType: hard @@ -16379,7 +16357,7 @@ plugin-image-zoom@flexanalytics/plugin-image-zoom: version: 0.0.0-use.local resolution: "websitev-2@workspace:." dependencies: - "@babel/core": "npm:7.25.8" + "@babel/core": "npm:7.25.9" "@docusaurus/core": "npm:2.3.1" "@docusaurus/module-type-aliases": "npm:2.3.1" "@docusaurus/plugin-client-redirects": "npm:2.3.1" diff --git a/yarn.lock b/yarn.lock index 20c8543208..44d2730613 100644 --- a/yarn.lock +++ b/yarn.lock @@ -104,13 +104,14 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/code-frame@npm:7.25.7" +"@babel/code-frame@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/code-frame@npm:7.26.0" dependencies: - "@babel/highlight": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.9" + js-tokens: "npm:^4.0.0" picocolors: "npm:^1.0.0" - checksum: 10c0/14825c298bdec914caf3d24d1383b6d4cd6b030714686004992f4fc251831ecf432236652896f99d5d341f17170ae9a07b58d8d7b15aa0df8cfa1c5a7d5474bc + checksum: 10c0/46f7e367714be736b52ea3c01b24f47e2102e210fb83021d1c8237d8fc511b9538909e16e2fcdbb5cb6173e0794e28624309a59014e52fcfb7bde908f5284388 languageName: node linkType: hard @@ -121,33 +122,33 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.25.7": - version: 7.25.8 - resolution: "@babel/compat-data@npm:7.25.8" - checksum: 10c0/8b81c17580e5fb4cbb6a3c52079f8c283fc59c0c6bd2fe14cfcf9c44b32d2eaab71b02c5633e2c679f5896f73f8ac4036ba2e67a4c806e8f428e4b11f526d7f4 +"@babel/compat-data@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/compat-data@npm:7.26.0" + checksum: 10c0/6325c9151a3c9b0a3a807e854a26255ef66d989bff331475a935af9bb18f160e0fffe6aed550e4e96b63f91efcd874bfbaab2a1f4a2f8d25645d712a0de590fb languageName: node linkType: hard -"@babel/core@npm:7.25.8": - version: 7.25.8 - resolution: "@babel/core@npm:7.25.8" +"@babel/core@npm:7.25.9": + version: 7.25.9 + resolution: "@babel/core@npm:7.25.9" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.25.7" - "@babel/generator": "npm:^7.25.7" - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helpers": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.8" - "@babel/template": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.8" + "@babel/code-frame": "npm:^7.25.9" + "@babel/generator": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helpers": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/8411ea506e6f7c8a39ab5c1524b00589fa3b087edb47389708f7fe07170929192171734666e3ea10b95a951643a531a6d09eedfe071572c9ea28516646265086 + checksum: 10c0/40d3064ebe906f65ed4153a0f4d75c679a19e4d71e425035b7bbe2d292a9167274f1a0d908d4d6c8f484fcddeb10bd91e0c7878fdb3dfad1bb00f6a319ce431d languageName: node linkType: hard @@ -197,15 +198,16 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/generator@npm:7.25.7" +"@babel/generator@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/generator@npm:7.26.0" dependencies: - "@babel/types": "npm:^7.25.7" + "@babel/parser": "npm:^7.26.0" + "@babel/types": "npm:^7.26.0" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^3.0.2" - checksum: 10c0/c03a26c79864d60d04ce36b649c3fa0d6fd7b2bf6a22e22854a0457aa09206508392dd73ee40e7bc8d50b3602f9ff068afa47770cda091d332e7db1ca382ee96 + checksum: 10c0/b6bb9185f19a97eaf58e04a6d39a13237076678e7ed16b6321dea914535d4bf6a8d7727c9dcb65539845aa0096b326eb67be4bab764bd74bcfd848e2eda68609 languageName: node linkType: hard @@ -224,16 +226,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-compilation-targets@npm:7.25.7" +"@babel/helper-compilation-targets@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-compilation-targets@npm:7.25.9" dependencies: - "@babel/compat-data": "npm:^7.25.7" - "@babel/helper-validator-option": "npm:^7.25.7" + "@babel/compat-data": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10c0/705be7e5274a3fdade68e3e2cf42e2b600316ab52794e13b91299a16f16c926f15886b6e9d6df20eb943ccc1cdba5a363d4766f8d01e47b8e6f4e01175f5e66c + checksum: 10c0/a6b26a1e4222e69ef8e62ee19374308f060b007828bc11c65025ecc9e814aba21ff2175d6d3f8bf53c863edd728ee8f94ba7870f8f90a37d39552ad9933a8aaa languageName: node linkType: hard @@ -279,13 +281,13 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-module-imports@npm:7.25.7" +"@babel/helper-module-imports@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-module-imports@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/0fd0c3673835e5bf75558e184bcadc47c1f6dd2fe2016d53ebe1e5a6ae931a44e093015c2f9a6651c1a89f25c76d9246710c2b0b460b95ee069c464f2837fa2c + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/078d3c2b45d1f97ffe6bb47f61961be4785d2342a4156d8b42c92ee4e1b7b9e365655dd6cb25329e8fe1a675c91eeac7e3d04f0c518b67e417e29d6e27b6aa70 languageName: node linkType: hard @@ -305,17 +307,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-module-transforms@npm:7.25.7" +"@babel/helper-module-transforms@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/helper-module-transforms@npm:7.26.0" dependencies: - "@babel/helper-module-imports": "npm:^7.25.7" - "@babel/helper-simple-access": "npm:^7.25.7" - "@babel/helper-validator-identifier": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/f37fa7d1d4df21690535b278468cbd5faf0133a3080f282000cfa4f3ffc9462a1458f866b04b6a2f2d1eec4691236cba9a867da61270dab3ab19846e62f05090 + checksum: 10c0/ee111b68a5933481d76633dad9cdab30c41df4479f0e5e1cc4756dc9447c1afd2c9473b5ba006362e35b17f4ebddd5fca090233bef8dfc84dca9d9127e56ec3a languageName: node linkType: hard @@ -335,16 +336,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-simple-access@npm:7.25.7" - dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/eed1b499bfb4f613c18debd61517e3de77b6da2727ca025aa05ac81599e0269f1dddb5237db04e8bb598115d015874752e0a7f11ff38672d74a4976097417059 - languageName: node - linkType: hard - "@babel/helper-split-export-declaration@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-split-export-declaration@npm:7.18.6" @@ -384,10 +375,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-string-parser@npm:7.25.7" - checksum: 10c0/73ef2ceb81f8294678a0afe8ab0103729c0370cac2e830e0d5128b03be5f6a2635838af31d391d763e3c5a4460ed96f42fd7c9b552130670d525be665913bc4c +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 10c0/7244b45d8e65f6b4338a6a68a8556f2cb161b782343e97281a5f2b9b93e420cad0d9f5773a59d79f61d0c448913d06f6a2358a87f2e203cf112e3c5b53522ee6 languageName: node linkType: hard @@ -426,10 +417,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-validator-identifier@npm:7.25.7" - checksum: 10c0/07438e5bf01ab2882a15027fdf39ac3b0ba1b251774a5130917907014684e2f70fef8fd620137ca062c4c4eedc388508d2ea7a3a7d9936a32785f4fe116c68c0 +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d languageName: node linkType: hard @@ -440,10 +431,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-validator-option@npm:7.25.7" - checksum: 10c0/12ed418c8e3ed9ed44c8c80d823f4e42d399b5eb2e423adccb975e31a31a008cd3b5d8eab688b31f740caff4a1bb28fe06ea2fa7d635aee34cc0ad6995d50f0a +"@babel/helper-validator-option@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-option@npm:7.25.9" + checksum: 10c0/27fb195d14c7dcb07f14e58fe77c44eea19a6a40a74472ec05c441478fa0bb49fa1c32b2d64be7a38870ee48ef6601bdebe98d512f0253aea0b39756c4014f3e languageName: node linkType: hard @@ -458,13 +449,13 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helpers@npm:7.25.7" +"@babel/helpers@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/helpers@npm:7.26.0" dependencies: - "@babel/template": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/3b3ae9e373bd785414195ef8f59976a69d5a6ebe0ef2165fdcc5165e5c3ee09e0fcee94bb457df2ddb8c0532e4146d0a9b7a96b3497399a4bff4ffe196b30228 + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + checksum: 10c0/343333cced6946fe46617690a1d0789346960910225ce359021a88a60a65bc0d791f0c5d240c0ed46cf8cc63b5fd7df52734ff14e43b9c32feae2b61b1647097 languageName: node linkType: hard @@ -490,18 +481,6 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/highlight@npm:7.25.7" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.25.7" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10c0/1f5894fdb0a0af6101fb2822369b2eeeae32cbeae2ef73ff73fc6a0a4a20471565cd9cfa589f54ed69df66adeca7c57266031ca9134b7bd244d023a488d419aa - languageName: node - linkType: hard - "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7": version: 7.20.7 resolution: "@babel/parser@npm:7.20.7" @@ -529,14 +508,14 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/parser@npm:7.25.8" +"@babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0": + version: 7.26.1 + resolution: "@babel/parser@npm:7.26.1" dependencies: - "@babel/types": "npm:^7.25.8" + "@babel/types": "npm:^7.26.0" bin: parser: ./bin/babel-parser.js - checksum: 10c0/a1a13845b7e8dda4c970791814a4bbf60004969882f18f470e260ad822d2e1f8941948f851e9335895563610f240fa6c98481ce8019865e469502bbf21daafa4 + checksum: 10c0/dc7d4e6b7eb667fa0784e7e2c3f6f92ca12ad72242f6d4311995310dae55093f02acdb595b69b0dbbf04cb61ad87156ac03186ff32eacfa35149c655bc22c14b languageName: node linkType: hard @@ -734,14 +713,14 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/template@npm:7.25.7" +"@babel/template@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/template@npm:7.25.9" dependencies: - "@babel/code-frame": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/8ae9e36e4330ee83d4832531d1d9bec7dc2ef6a2a8afa1ef1229506fd60667abcb17f306d1c3d7e582251270597022990c845d5d69e7add70a5aea66720decb9 + "@babel/code-frame": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/ebe677273f96a36c92cc15b7aa7b11cc8bc8a3bb7a01d55b2125baca8f19cae94ff3ce15f1b1880fb8437f3a690d9f89d4e91f16fc1dc4d3eb66226d128983ab languageName: node linkType: hard @@ -763,18 +742,18 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/traverse@npm:7.25.7" +"@babel/traverse@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/traverse@npm:7.25.9" dependencies: - "@babel/code-frame": "npm:^7.25.7" - "@babel/generator": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.7" - "@babel/template": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" + "@babel/code-frame": "npm:^7.25.9" + "@babel/generator": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/75d73e52c507a7a7a4c7971d6bf4f8f26fdd094e0d3a0193d77edf6a5efa36fc3db91ec5cc48e8b94e6eb5d5ad21af0a1040e71309172851209415fd105efb1a + checksum: 10c0/e90be586a714da4adb80e6cb6a3c5cfcaa9b28148abdafb065e34cc109676fc3db22cf98cd2b2fff66ffb9b50c0ef882cab0f466b6844be0f6c637b82719bba1 languageName: node linkType: hard @@ -822,14 +801,13 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/types@npm:7.25.8" +"@babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/types@npm:7.26.0" dependencies: - "@babel/helper-string-parser": "npm:^7.25.7" - "@babel/helper-validator-identifier": "npm:^7.25.7" - to-fast-properties: "npm:^2.0.0" - checksum: 10c0/55ca2d6df6426c98db2769ce884ce5e9de83a512ea2dd7bcf56c811984dc14351cacf42932a723630c5afcff2455809323decd645820762182f10b7b5252b59f + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10c0/b694f41ad1597127e16024d766c33a641508aad037abd08d0d1f73af753e1119fa03b4a107d04b5f92cc19c095a594660547ae9bead1db2299212d644b0a5cb8 languageName: node linkType: hard @@ -1555,8 +1533,8 @@ __metadata: linkType: hard "@slack/web-api@npm:^7.3.4": - version: 7.5.0 - resolution: "@slack/web-api@npm:7.5.0" + version: 7.7.0 + resolution: "@slack/web-api@npm:7.7.0" dependencies: "@slack/logger": "npm:^4.0.0" "@slack/types": "npm:^2.9.0" @@ -1570,7 +1548,7 @@ __metadata: p-queue: "npm:^6" p-retry: "npm:^4" retry: "npm:^0.13.1" - checksum: 10c0/067af68cb4aa823a13c328ae6db60ad22e41a97cdc2b69836176980a3075026c563f131b62f50ca9176481a0f6a4667e969fef783c63ea9cc1f206104fd20177 + checksum: 10c0/1b1703206872ff106103440397aa37031ea862448f1c84ffc9c8efc71f8edc1b1ca129a18b7d2d3f7e9b0c7760052e1739a8165e407dc7b58e6140a8000cf7ff languageName: node linkType: hard @@ -2061,12 +2039,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:20.16.13": - version: 20.16.13 - resolution: "@types/node@npm:20.16.13" +"@types/node@npm:20.16.14": + version: 20.16.14 + resolution: "@types/node@npm:20.16.14" dependencies: undici-types: "npm:~6.19.2" - checksum: 10c0/7f4fd7176db0802c62e11ebbf7a66d0248e2dc8ec9153d9fc8bcb164d9aed581d91c407046c823c522e60d0babfdc24a1618dba7f2c6920ef1a24e1d416c9550 + checksum: 10c0/297da38ff6668ecd672b17a100b715166cab33bc8d586521fa28b2d2fb47b04475e1ad9f55e8a436c31d72c1fefa7bd4485a8ad66d2adc9b4515d8a28937e8b9 languageName: node linkType: hard @@ -2771,13 +2749,6 @@ __metadata: languageName: node linkType: hard -"buffer-writer@npm:2.0.0": - version: 2.0.0 - resolution: "buffer-writer@npm:2.0.0" - checksum: 10c0/c91b2ab09a200cf0862237e5a4dbd5077003b42d26d4f0c596ec7149f82ef83e0751d670bcdf379ed988d1a08c0fac7759a8cb928cf1a4710a1988a7618b1190 - languageName: node - linkType: hard - "buildcheck@npm:~0.0.6": version: 0.0.6 resolution: "buildcheck@npm:0.0.6" @@ -7246,13 +7217,6 @@ __metadata: languageName: node linkType: hard -"packet-reader@npm:1.0.0": - version: 1.0.0 - resolution: "packet-reader@npm:1.0.0" - checksum: 10c0/c86c3321bb07e0f03cc2db59f7701184e0bbfcb914f1fdc963993b03262486deb402292adcef39b64e3530ea66b3b2e2163d6da7b3792a730bdd1c6df3175aaa - languageName: node - linkType: hard - "parse-database-url@npm:^0.3.0, parse-database-url@npm:~0.3.0": version: 0.3.0 resolution: "parse-database-url@npm:0.3.0" @@ -7396,13 +7360,20 @@ __metadata: languageName: node linkType: hard -"pg-connection-string@npm:^2.5.0, pg-connection-string@npm:^2.6.2, pg-connection-string@npm:^2.6.4": +"pg-connection-string@npm:^2.5.0": version: 2.6.4 resolution: "pg-connection-string@npm:2.6.4" checksum: 10c0/0d0b617df0fc6507bf6a94bdcd56c7a305788a1402d69bff9773350947c8f525d6d8136128065370749a3325e99658ae40fbdcce620fb8e60126181f0591a6a6 languageName: node linkType: hard +"pg-connection-string@npm:^2.7.0": + version: 2.7.0 + resolution: "pg-connection-string@npm:2.7.0" + checksum: 10c0/50a1496a1c858f9495d78a2c7a66d93ef3602e718aff2953bb5738f3ea616d7f727f32fc20513c9bed127650cd14c1ddc7b458396f4000e689d4b64c65c5c51e + languageName: node + linkType: hard + "pg-int8@npm:1.0.1": version: 1.0.1 resolution: "pg-int8@npm:1.0.1" @@ -7417,35 +7388,26 @@ __metadata: languageName: node linkType: hard -"pg-pool@npm:^3.6.1": - version: 3.6.1 - resolution: "pg-pool@npm:3.6.1" +"pg-pool@npm:^3.7.0": + version: 3.7.0 + resolution: "pg-pool@npm:3.7.0" peerDependencies: pg: ">=8.0" - checksum: 10c0/47837c4e4c2b9e195cec01bd58b6e276acc915537191707ad4d6ed975fd9bc03c73f63cb7fde4cb0e08ed059e35faf60fbd03744dee3af71d4b4631ab40eeb7f + checksum: 10c0/9128673cf941f288c0cb1a74ca959a9b4f6075ef73b2cc7dece5d4db3dd7043784869e7c12bce2e69ca0df22132a419cc45c2050b4373632856fe8bae9eb94b5 languageName: node linkType: hard -"pg-pool@npm:^3.6.2": - version: 3.6.2 - resolution: "pg-pool@npm:3.6.2" - peerDependencies: - pg: ">=8.0" - checksum: 10c0/14c524549490954b5e48457a4b808df8f619f6deeb3b395b0cd184a8f4ed65a9273fe0697ba0341a41d6745af197f1437eb1cf51fff0cbbf5b0fb3852ebe5392 - languageName: node - linkType: hard - -"pg-protocol@npm:*, pg-protocol@npm:^1.6.0": +"pg-protocol@npm:*": version: 1.6.0 resolution: "pg-protocol@npm:1.6.0" checksum: 10c0/318a4d1e9cebd3927b10a8bc412f5017117a1f9a5fafb628d75847da7d1ab81c33250de58596bd0990029e14e92a995a851286d60fc236692299faf509572213 languageName: node linkType: hard -"pg-protocol@npm:^1.6.1": - version: 1.6.1 - resolution: "pg-protocol@npm:1.6.1" - checksum: 10c0/7eadef4010ac0a3925c460be7332ca4098a5c6d5181725a62193fcfa800000ae6632d98d814f3989b42cf5fdc3b45e34c714a1959d29174e81e30730e140ae5f +"pg-protocol@npm:^1.7.0": + version: 1.7.0 + resolution: "pg-protocol@npm:1.7.0" + checksum: 10c0/c4af854d9b843c808231c0040fed89f2b9101006157df8da2bb2f62a7dde702de748d852228dc22df41cc7ffddfb526af3bcb34b278b581e9f76a060789186c1 languageName: node linkType: hard @@ -7477,16 +7439,14 @@ __metadata: languageName: node linkType: hard -"pg@npm:^8.11.2": - version: 8.11.3 - resolution: "pg@npm:8.11.3" +"pg@npm:^8.11.2, pg@npm:^8.12.0": + version: 8.13.1 + resolution: "pg@npm:8.13.1" dependencies: - buffer-writer: "npm:2.0.0" - packet-reader: "npm:1.0.0" pg-cloudflare: "npm:^1.1.1" - pg-connection-string: "npm:^2.6.2" - pg-pool: "npm:^3.6.1" - pg-protocol: "npm:^1.6.0" + pg-connection-string: "npm:^2.7.0" + pg-pool: "npm:^3.7.0" + pg-protocol: "npm:^1.7.0" pg-types: "npm:^2.1.0" pgpass: "npm:1.x" peerDependencies: @@ -7497,29 +7457,7 @@ __metadata: peerDependenciesMeta: pg-native: optional: true - checksum: 10c0/07e6967fc8bd5d72bab9be6620626e8e3ab59128ebf56bf0de83d67f10801a19221d88b3317e90b93339ba48d0498b39967b782ae39686aabda6bc647bceb438 - languageName: node - linkType: hard - -"pg@npm:^8.12.0": - version: 8.12.0 - resolution: "pg@npm:8.12.0" - dependencies: - pg-cloudflare: "npm:^1.1.1" - pg-connection-string: "npm:^2.6.4" - pg-pool: "npm:^3.6.2" - pg-protocol: "npm:^1.6.1" - pg-types: "npm:^2.1.0" - pgpass: "npm:1.x" - peerDependencies: - pg-native: ">=3.0.1" - dependenciesMeta: - pg-cloudflare: - optional: true - peerDependenciesMeta: - pg-native: - optional: true - checksum: 10c0/973e49b5e7327c42fc62806efa8c824159ab7a0b676cefe6eeb51a59b6e226587911ec27697f36c18d69e58a7f4f0b76d0829364087194d13ed431ab7c9c417a + checksum: 10c0/c13bc661cbdb115337bc8519254836faf4bd79106dfd7ed588c8ece8c8b2dd3b7376bfec9a9a2f7646fa095b0b310cec77a83c3ba2ea4872331446eb93fd9055 languageName: node linkType: hard @@ -9340,7 +9278,7 @@ __metadata: resolution: "unleash-server@workspace:." dependencies: "@apidevtools/swagger-parser": "npm:10.1.0" - "@babel/core": "npm:7.25.8" + "@babel/core": "npm:7.25.9" "@biomejs/biome": "npm:^1.8.3" "@cyclonedx/yarn-plugin-cyclonedx": "npm:^1.0.0-rc.7" "@slack/web-api": "npm:^7.3.4" @@ -9359,7 +9297,7 @@ __metadata: "@types/memoizee": "npm:0.4.11" "@types/mime": "npm:4.0.0" "@types/mustache": "npm:^4.2.5" - "@types/node": "npm:20.16.13" + "@types/node": "npm:20.16.14" "@types/nodemailer": "npm:6.4.16" "@types/owasp-password-strength-test": "npm:1.3.2" "@types/pg": "npm:8.11.10"