From e76980a65615bd2302c62f520fd3fc1527810493 Mon Sep 17 00:00:00 2001 From: Jeremy Cloarec <159018898+JeremyCloarec@users.noreply.github.com> Date: Mon, 23 Sep 2024 14:05:57 +0200 Subject: [PATCH 1/5] [backend] change the way restricted entities are built (#8407) --- .../src/database/middleware.js | 47 ++++++++++++++++--- .../src/domain/stixCoreObject.js | 6 +-- .../01-database/middleware-test.js | 12 +++-- 3 files changed, 53 insertions(+), 12 deletions(-) diff --git a/opencti-platform/opencti-graphql/src/database/middleware.js b/opencti-platform/opencti-graphql/src/database/middleware.js index 06e7f27af070..971f6e2e0b7f 100644 --- a/opencti-platform/opencti-graphql/src/database/middleware.js +++ b/opencti-platform/opencti-graphql/src/database/middleware.js @@ -446,6 +446,46 @@ export const stixLoadByFilters = async (context, user, types, args) => { }; // endregion +const isValidDate = (stringDate) => { + const dateParsed = Date.parse(stringDate); + if (!dateParsed) return false; + const dateInstance = new Date(dateParsed); + return dateInstance.toISOString() === stringDate; +}; + +// used to get a "restricted" value of a current attribute value depending on the value type +const restrictValue = (entityValue) => { + if (Array.isArray((entityValue))) return []; + if (isValidDate(entityValue)) return FROM_START_STR; + const type = typeof entityValue; + switch (type) { + case 'string': return 'Restricted'; + case 'object': return null; + default: return undefined; + } +}; + +// restricted entities need to be able to be queried through the API +// we need to keep all of the entity attributes, but restrict their values +export const buildRestrictedEntity = (resolvedEntity) => { + // we first create a deep copy of the resolved entity + const restrictedEntity = structuredClone(resolvedEntity); + // for every attribute of the entity, we restrict it's value: we obfuscate the real value with a fake default value + for (let i = 0; i < Object.keys(restrictedEntity).length; i += 1) { + const item = Object.keys(restrictedEntity)[i]; + restrictedEntity[item] = restrictedEntity[item] ? restrictValue(restrictedEntity[item]) : restrictedEntity[item]; + } + // we return the restricted entity with some additional restricted data in it + return { + ...restrictedEntity, + id: resolvedEntity.internal_id, + name: 'Restricted', + entity_type: resolvedEntity.entity_type, + parent_types: resolvedEntity.parent_types, + representative: { main: 'Restricted', secondary: 'Restricted' } + }; +}; + // region Graphics const convertAggregateDistributions = async (context, user, limit, orderingFunction, distribution) => { const data = R.take(limit, R.sortWith([orderingFunction(R.prop('value'))])(distribution)); @@ -473,12 +513,7 @@ const convertAggregateDistributions = async (context, user, limit, orderingFunct } return { ...n, - entity: { - id: element.id, - entity_type: element.entity_type, - parent_types: element.parent_types, - representative: { main: 'Restricted', secondary: 'Restricted' } - } + entity: buildRestrictedEntity(element) }; }); }; diff --git a/opencti-platform/opencti-graphql/src/domain/stixCoreObject.js b/opencti-platform/opencti-graphql/src/domain/stixCoreObject.js index c47a1c3c994e..a3fc95f934cd 100644 --- a/opencti-platform/opencti-graphql/src/domain/stixCoreObject.js +++ b/opencti-platform/opencti-graphql/src/domain/stixCoreObject.js @@ -1,5 +1,5 @@ import * as R from 'ramda'; -import { createEntity, createRelationRaw, deleteElementById, distributionEntities, storeLoadByIdWithRefs, timeSeriesEntities } from '../database/middleware'; +import { buildRestrictedEntity, createEntity, createRelationRaw, deleteElementById, distributionEntities, storeLoadByIdWithRefs, timeSeriesEntities } from '../database/middleware'; import { internalFindByIds, internalLoadById, listEntitiesPaginated, listEntitiesThroughRelationsPaginated, storeLoadById } from '../database/middleware-loader'; import { findAll as relationFindAll } from './stixCoreRelationship'; import { delEditContext, lockResource, notify, setEditContext, storeUpdateEvent } from '../database/redis'; @@ -98,7 +98,7 @@ export const batchInternalRels = async (context, user, elements, opts = {}) => { return resolve; } // If access is not possible, return a restricted entity - return { id: resolve.internal_id, name: 'Restricted', entity_type: resolve.entity_type }; + return buildRestrictedEntity(resolve); })); // Return sorted elements if needed if (opts.sortBy) { @@ -117,7 +117,7 @@ export const batchInternalRels = async (context, user, elements, opts = {}) => { return resolve; } // If access is not possible, return a restricted entity - return { id: resolve.internal_id, name: 'Restricted', entity_type: resolve.entity_type }; + return buildRestrictedEntity(resolve); } return undefined; })); diff --git a/opencti-platform/opencti-graphql/tests/02-integration/01-database/middleware-test.js b/opencti-platform/opencti-graphql/tests/02-integration/01-database/middleware-test.js index 1b31543e2a76..c73ff87c42ec 100644 --- a/opencti-platform/opencti-graphql/tests/02-integration/01-database/middleware-test.js +++ b/opencti-platform/opencti-graphql/tests/02-integration/01-database/middleware-test.js @@ -751,9 +751,15 @@ describe('Relations distribution', () => { expect(distribution[0].entity.representative).toEqual({ main: 'Restricted', secondary: 'Restricted' }); expect(distribution[1].entity.representative).toEqual({ main: 'Restricted', secondary: 'Restricted' }); expect(distribution[2].entity.representative).toEqual({ main: 'Restricted', secondary: 'Restricted' }); - expect(distribution[0].entity.name).toBeUndefined(); - expect(distribution[1].entity.name).toBeUndefined(); - expect(distribution[2].entity.name).toBeUndefined(); + expect(distribution[0].entity.name).toEqual('Restricted'); + expect(distribution[1].entity.name).toEqual('Restricted'); + expect(distribution[2].entity.name).toEqual('Restricted'); + expect(distribution[0].entity.standard_id).toBeDefined(); + expect(distribution[1].entity.standard_id).toBeDefined(); + expect(distribution[2].entity.standard_id).toBeDefined(); + expect(distribution[0].entity.created_at).toBeDefined(); + expect(distribution[1].entity.created_at).toBeDefined(); + expect(distribution[2].entity.created_at).toBeDefined(); }); }); From 91f5e9417bed33cf12ea4b77eb867b48f3ca9c28 Mon Sep 17 00:00:00 2001 From: Adrien Servel <50013774+Kedae@users.noreply.github.com> Date: Mon, 23 Sep 2024 14:25:56 +0200 Subject: [PATCH 2/5] [frontend] Alignment fixes (#8443) (#8435) --- .../src/components/Breadcrumbs.tsx | 30 +++---------------- .../src/components/list_lines/ListLines.jsx | 1 - .../analyses/ExternalReferences.tsx | 2 +- .../private/components/analyses/Groupings.tsx | 2 +- .../components/analyses/MalwareAnalyses.tsx | 2 +- .../src/private/components/analyses/Notes.tsx | 2 +- .../private/components/analyses/Reports.tsx | 2 +- .../analyses/external_references/Root.jsx | 2 +- .../components/analyses/groupings/Root.tsx | 2 +- .../analyses/malware_analyses/Root.tsx | 2 +- .../components/analyses/notes/Root.jsx | 2 +- .../components/analyses/reports/Root.tsx | 2 +- .../private/components/arsenal/Channels.tsx | 2 +- .../private/components/arsenal/Malwares.tsx | 2 +- .../src/private/components/arsenal/Tools.tsx | 2 +- .../components/arsenal/Vulnerabilities.tsx | 2 +- .../components/arsenal/channels/Root.tsx | 2 +- .../components/arsenal/malwares/Root.tsx | 2 +- .../private/components/arsenal/tools/Root.tsx | 2 +- .../arsenal/vulnerabilities/Root.tsx | 2 +- .../components/cases/CaseIncidents.tsx | 2 +- .../src/private/components/cases/CaseRfis.tsx | 2 +- .../src/private/components/cases/CaseRfts.tsx | 2 +- .../private/components/cases/Feedbacks.tsx | 2 +- .../src/private/components/cases/Tasks.tsx | 2 +- .../components/cases/case_incidents/Root.tsx | 2 +- .../components/cases/case_rfis/Root.tsx | 2 +- .../components/cases/case_rfts/Root.tsx | 2 +- .../components/cases/feedbacks/Root.tsx | 2 +- .../private/components/cases/tasks/Root.tsx | 2 +- .../private/components/data/Connectors.jsx | 2 +- .../private/components/data/CsvMappers.tsx | 2 +- .../src/private/components/data/Entities.tsx | 2 +- .../src/private/components/data/Feed.tsx | 2 +- .../private/components/data/IngestionCsv.tsx | 2 +- .../private/components/data/IngestionRss.jsx | 2 +- .../components/data/IngestionTaxiis.jsx | 2 +- .../src/private/components/data/Playbooks.tsx | 2 +- .../private/components/data/Relationships.tsx | 2 +- .../src/private/components/data/Stream.jsx | 2 +- .../src/private/components/data/Sync.jsx | 2 +- .../src/private/components/data/Tasks.jsx | 2 +- .../src/private/components/data/Taxii.tsx | 2 +- .../components/data/connectors/Root.jsx | 2 +- .../components/data/import/ImportContent.jsx | 2 +- .../data/import/ImportFilesContent.tsx | 2 +- .../data/import/ImportWorkbenchesContent.tsx | 2 +- .../private/components/entities/Events.tsx | 2 +- .../components/entities/Individuals.tsx | 2 +- .../components/entities/Organizations.tsx | 2 +- .../private/components/entities/Sectors.jsx | 2 +- .../private/components/entities/Systems.tsx | 2 +- .../components/entities/events/Root.tsx | 2 +- .../components/entities/individuals/Root.tsx | 2 +- .../entities/organizations/Root.tsx | 2 +- .../components/entities/sectors/Root.tsx | 2 +- .../components/entities/systems/Root.tsx | 2 +- .../private/components/events/Incidents.tsx | 2 +- .../components/events/ObservedDatas.tsx | 2 +- .../events/StixSightingRelationships.tsx | 2 +- .../components/events/incidents/Root.tsx | 2 +- .../components/events/observed_data/Root.jsx | 2 +- .../StixSightingRelationship.tsx | 2 +- .../locations/AdministrativeAreas.tsx | 2 +- .../private/components/locations/Cities.tsx | 2 +- .../components/locations/Countries.tsx | 2 +- .../components/locations/Positions.tsx | 2 +- .../private/components/locations/Regions.tsx | 2 +- .../locations/administrative_areas/Root.tsx | 2 +- .../components/locations/cities/Root.tsx | 2 +- .../components/locations/countries/Root.tsx | 2 +- .../components/locations/positions/Root.tsx | 2 +- .../components/locations/regions/Root.tsx | 2 +- .../components/observations/Artifacts.tsx | 2 +- .../components/observations/Indicators.tsx | 2 +- .../observations/Infrastructures.tsx | 2 +- .../observations/StixCyberObservables.tsx | 2 +- .../observations/artifacts/Root.jsx | 2 +- .../observations/indicators/Root.tsx | 2 +- .../observations/infrastructures/Root.tsx | 2 +- .../stix_cyber_observables/Root.tsx | 2 +- .../components/profile/Notifications.tsx | 2 +- .../private/components/profile/Triggers.tsx | 2 +- .../search/SearchContainerQuery.tsx | 6 +++- .../private/components/settings/Groups.jsx | 2 +- .../components/settings/KillChainPhases.jsx | 2 +- .../private/components/settings/Labels.jsx | 2 +- .../settings/MarkingDefinitions.jsx | 2 +- .../private/components/settings/Notifiers.tsx | 2 +- .../private/components/settings/Policies.tsx | 2 +- .../private/components/settings/Retention.tsx | 2 +- .../src/private/components/settings/Roles.jsx | 2 +- .../src/private/components/settings/Rules.jsx | 2 +- .../private/components/settings/Sessions.jsx | 2 +- .../private/components/settings/Settings.jsx | 6 ++-- .../settings/SettingsOrganizations.tsx | 2 +- .../src/private/components/settings/Users.jsx | 2 +- .../components/settings/Vocabularies.tsx | 2 +- .../settings/VocabularyCategories.tsx | 2 +- .../settings/activity/alerting/Alerting.tsx | 2 +- .../settings/activity/audit/Audit.tsx | 2 +- .../activity/configuration/Configuration.tsx | 2 +- .../settings/case_templates/CaseTemplates.tsx | 2 +- .../components/settings/decay/DecayRule.tsx | 2 +- .../components/settings/decay/DecayRules.tsx | 2 +- .../settings/file_indexing/FileIndexing.tsx | 2 +- .../components/settings/groups/Root.tsx | 2 +- .../settings/organizations/Root.tsx | 2 +- .../components/settings/roles/Root.tsx | 2 +- .../status_templates/StatusTemplates.tsx | 2 +- .../components/settings/sub_types/Root.tsx | 2 +- .../settings/sub_types/SubTypes.tsx | 2 +- .../settings/support/SupportPackages.tsx | 2 +- .../components/settings/users/Root.jsx | 2 +- .../components/techniques/AttackPatterns.tsx | 2 +- .../components/techniques/CoursesOfAction.tsx | 2 +- .../components/techniques/DataComponents.tsx | 2 +- .../components/techniques/DataSources.tsx | 2 +- .../components/techniques/Narratives.tsx | 2 +- .../techniques/attack_patterns/Root.tsx | 2 +- .../techniques/courses_of_action/Root.jsx | 2 +- .../techniques/data_components/Root.tsx | 2 +- .../techniques/data_sources/Root.tsx | 2 +- .../components/techniques/narratives/Root.tsx | 2 +- .../private/components/threats/Campaigns.tsx | 2 +- .../components/threats/IntrusionSets.tsx | 2 +- .../components/threats/ThreatActorsGroup.tsx | 2 +- .../threats/ThreatActorsIndividual.tsx | 2 +- .../components/threats/campaigns/Root.tsx | 2 +- .../threats/intrusion_sets/Root.tsx | 2 +- .../threats/threat_actors_group/Root.tsx | 2 +- .../threats/threat_actors_individual/Root.tsx | 2 +- .../src/private/components/trash/Trash.tsx | 2 +- .../components/workspaces/Workspaces.tsx | 1 - .../public_dashboards/PublicDashboards.tsx | 1 - 135 files changed, 141 insertions(+), 162 deletions(-) diff --git a/opencti-platform/opencti-front/src/components/Breadcrumbs.tsx b/opencti-platform/opencti-front/src/components/Breadcrumbs.tsx index 4d834469ca93..0ff13036d6d3 100644 --- a/opencti-platform/opencti-front/src/components/Breadcrumbs.tsx +++ b/opencti-platform/opencti-front/src/components/Breadcrumbs.tsx @@ -2,7 +2,7 @@ import React, { FunctionComponent } from 'react'; import MUIBreadcrumbs from '@mui/material/Breadcrumbs'; import { Link } from 'react-router-dom'; import Typography from '@mui/material/Typography'; -import makeStyles from '@mui/styles/makeStyles'; +import { useTheme } from '@mui/styles'; import { truncate } from '../utils/String'; import type { Theme } from './Theme'; @@ -13,35 +13,13 @@ interface element { } interface BreadcrumbsProps { - variant: 'standard' | 'list' | 'object', elements: element[], } -// Deprecated - https://mui.com/system/styles/basics/ -// Do not use it for new code. -const useStyles = makeStyles((theme) => ({ - breadcrumbsList: { - marginBottom: theme.spacing(2), - }, - breadcrumbsObject: { - marginTop: -5, - marginBottom: 15, - }, - breadcrumbsStandard: { - marginTop: -5, - }, -})); - -const Breadcrumbs: FunctionComponent = ({ elements, variant }) => { - const classes = useStyles(); - let className = classes.breadcrumbsStandard; - if (variant === 'list') { - className = classes.breadcrumbsList; - } else if (variant === 'object') { - className = classes.breadcrumbsObject; - } +const Breadcrumbs: FunctionComponent = ({ elements }) => { + const theme = useTheme(); return ( - + {elements.map((element) => { if (element.current) { return ( diff --git a/opencti-platform/opencti-front/src/components/list_lines/ListLines.jsx b/opencti-platform/opencti-front/src/components/list_lines/ListLines.jsx index ec5e4e367974..2ed556175436 100644 --- a/opencti-platform/opencti-front/src/components/list_lines/ListLines.jsx +++ b/opencti-platform/opencti-front/src/components/list_lines/ListLines.jsx @@ -61,7 +61,6 @@ const styles = (theme) => ({ display: 'flex', alignItems: 'center', gap: 10, - marginTop: -10, paddingBottom: 10, flexWrap: 'wrap', }, diff --git a/opencti-platform/opencti-front/src/private/components/analyses/ExternalReferences.tsx b/opencti-platform/opencti-front/src/private/components/analyses/ExternalReferences.tsx index 7e48ecf40003..06e6c7376edb 100644 --- a/opencti-platform/opencti-front/src/private/components/analyses/ExternalReferences.tsx +++ b/opencti-platform/opencti-front/src/private/components/analyses/ExternalReferences.tsx @@ -150,7 +150,7 @@ const ExternalReferences: FunctionComponent = () => { } as UsePreloadedPaginationFragment; return ( <> - + {queryRef && ( = () => { return ( - + {queryRef && ( { return ( - + {queryRef && (
{ return ( <> - + {queryRef && ( { }; return ( - + {queryRef && ( { if (props.externalReference && props.connectorsForImport) { return ( <> - { const currentAccessRight = useGetCurrentUserAccessRight(grouping.currentUserAccessRight); return (
- { const paddingRight = getPaddingRight(location.pathname, malwareAnalysis.id, '/dashboard/analyses/malware_analyses', false); return (
- { const { note } = props; return ( <> - { const currentAccessRight = useGetCurrentUserAccessRight(report.currentUserAccessRight); return (
- { return ( <> - + {queryRef && ( { return ( <> - + {viewStorage.view !== 'lines' ? renderCards() : renderList()} {!isFABReplaced && ( diff --git a/opencti-platform/opencti-front/src/private/components/arsenal/Tools.tsx b/opencti-platform/opencti-front/src/private/components/arsenal/Tools.tsx index 4d6351fc845c..c5eb54fee08e 100644 --- a/opencti-platform/opencti-front/src/private/components/arsenal/Tools.tsx +++ b/opencti-platform/opencti-front/src/private/components/arsenal/Tools.tsx @@ -144,7 +144,7 @@ const Tools = () => { return ( <> - + {queryRef && ( { return ( <> - + {queryRef && ( { />
- { />
- { />
-
- = () => { return ( <> - + {queryRef && ( = () => { return ( <> - + {queryRef && ( = () => { return ( <> - + {queryRef && ( = () => { return ( <> - + {queryRef && ( { return ( <> - + {queryRef && ( { const currentAccessRight = useGetCurrentUserAccessRight(caseData.currentUserAccessRight); return (
- { const currentAccessRight = useGetCurrentUserAccessRight(caseData.currentUserAccessRight); return (
- { const currentAccessRight = useGetCurrentUserAccessRight(caseData.currentUserAccessRight); return (
- { const { canEdit } = useGetCurrentUserAccessRight(feedbackData.currentUserAccessRight); return (
- { <> {data ? (
- - + { schemaAttributesQueryRef={queryRefSchemaAttributes} >
- + { return (
- + {queryRef && ( { padding: '0 200px 50px 0', }} > - + {feedState.view === 'lines' ? renderLines(paginationOptions) : ''} diff --git a/opencti-platform/opencti-front/src/private/components/data/IngestionCsv.tsx b/opencti-platform/opencti-front/src/private/components/data/IngestionCsv.tsx index 6a1beee19a69..1549427eb2ed 100644 --- a/opencti-platform/opencti-front/src/private/components/data/IngestionCsv.tsx +++ b/opencti-platform/opencti-front/src/private/components/data/IngestionCsv.tsx @@ -123,7 +123,7 @@ const IngestionCsv = () => { return (
- + {renderLines()} diff --git a/opencti-platform/opencti-front/src/private/components/data/IngestionRss.jsx b/opencti-platform/opencti-front/src/private/components/data/IngestionRss.jsx index 965907c966bc..9c56302b5e82 100644 --- a/opencti-platform/opencti-front/src/private/components/data/IngestionRss.jsx +++ b/opencti-platform/opencti-front/src/private/components/data/IngestionRss.jsx @@ -72,7 +72,7 @@ const IngestionRss = () => { } return (
- + { } return (
- + { }; return (
- + {isEnterpriseEdition ? ( <> diff --git a/opencti-platform/opencti-front/src/private/components/data/Relationships.tsx b/opencti-platform/opencti-front/src/private/components/data/Relationships.tsx index 4642ea16a4cf..97d019af7eb1 100644 --- a/opencti-platform/opencti-front/src/private/components/data/Relationships.tsx +++ b/opencti-platform/opencti-front/src/private/components/data/Relationships.tsx @@ -299,7 +299,7 @@ const Relationships = () => { return ( <> - + {queryRef && ( - + {view === 'lines' ? this.renderLines(paginationOptions) : ''} diff --git a/opencti-platform/opencti-front/src/private/components/data/Sync.jsx b/opencti-platform/opencti-front/src/private/components/data/Sync.jsx index e4fa650e1656..5cc0e29ba5fd 100644 --- a/opencti-platform/opencti-front/src/private/components/data/Sync.jsx +++ b/opencti-platform/opencti-front/src/private/components/data/Sync.jsx @@ -79,7 +79,7 @@ const Sync = () => { } return (
- + {
- + {t_i18n('In progress tasks')} diff --git a/opencti-platform/opencti-front/src/private/components/data/Taxii.tsx b/opencti-platform/opencti-front/src/private/components/data/Taxii.tsx index d630d12ed1e1..9348399a86fc 100644 --- a/opencti-platform/opencti-front/src/private/components/data/Taxii.tsx +++ b/opencti-platform/opencti-front/src/private/components/data/Taxii.tsx @@ -118,7 +118,7 @@ const Taxii = () => { }} aria-label="TaxiiCollections" > - + {taxiiState.view === 'lines' ? renderLines(paginationOptions) : null} diff --git a/opencti-platform/opencti-front/src/private/components/data/connectors/Root.jsx b/opencti-platform/opencti-front/src/private/components/data/connectors/Root.jsx index 41ef966cd15c..5889d7ef92f1 100644 --- a/opencti-platform/opencti-front/src/private/components/data/connectors/Root.jsx +++ b/opencti-platform/opencti-front/src/private/components/data/connectors/Root.jsx @@ -25,7 +25,7 @@ class RootConnector extends Component { if (props.connector) { return ( <> - + - + {isNewImportScreensEnabled && } { return (
- + { return (
- + { }; return ( <> - + {renderLines()} {!isFABReplaced && diff --git a/opencti-platform/opencti-front/src/private/components/entities/Individuals.tsx b/opencti-platform/opencti-front/src/private/components/entities/Individuals.tsx index 8f9fb9f2d422..8208a9a07638 100644 --- a/opencti-platform/opencti-front/src/private/components/entities/Individuals.tsx +++ b/opencti-platform/opencti-front/src/private/components/entities/Individuals.tsx @@ -117,7 +117,7 @@ const Individuals = () => { return ( <> - + {renderLines()} {!isFABReplaced && diff --git a/opencti-platform/opencti-front/src/private/components/entities/Organizations.tsx b/opencti-platform/opencti-front/src/private/components/entities/Organizations.tsx index d8e9f3a09424..ecde43ded40b 100644 --- a/opencti-platform/opencti-front/src/private/components/entities/Organizations.tsx +++ b/opencti-platform/opencti-front/src/private/components/entities/Organizations.tsx @@ -125,7 +125,7 @@ const Organizations = () => { return ( <> - + {renderLines()} {!isFABReplaced && diff --git a/opencti-platform/opencti-front/src/private/components/entities/Sectors.jsx b/opencti-platform/opencti-front/src/private/components/entities/Sectors.jsx index c18247e5cff6..e78ac4e40d8c 100644 --- a/opencti-platform/opencti-front/src/private/components/entities/Sectors.jsx +++ b/opencti-platform/opencti-front/src/private/components/entities/Sectors.jsx @@ -50,7 +50,7 @@ class Sectors extends Component { const { t } = this.props; return ( <> - +
{ return ( <> - + {renderLines()} {!isFABReplaced && diff --git a/opencti-platform/opencti-front/src/private/components/entities/events/Root.tsx b/opencti-platform/opencti-front/src/private/components/entities/events/Root.tsx index 4495ad43524f..fb9c7285e473 100644 --- a/opencti-platform/opencti-front/src/private/components/entities/events/Root.tsx +++ b/opencti-platform/opencti-front/src/private/components/entities/events/Root.tsx @@ -127,7 +127,7 @@ const RootEvent = ({ eventId, queryRef }: RootEventProps) => { />
- { />
-
- { />
- { />
- { return (
- + {queryRef && ( { return ( <> - + {queryRef && ( { return ( <> - + {queryRef && ( {
- - - { }; return ( <> - + {renderLines()} {!FABReplaced && diff --git a/opencti-platform/opencti-front/src/private/components/locations/Cities.tsx b/opencti-platform/opencti-front/src/private/components/locations/Cities.tsx index b4c723743629..67ef5a6cdfef 100644 --- a/opencti-platform/opencti-front/src/private/components/locations/Cities.tsx +++ b/opencti-platform/opencti-front/src/private/components/locations/Cities.tsx @@ -111,7 +111,7 @@ const Cities: FunctionComponent = () => { }; return ( <> - + {renderLines()} {!FABReplaced && diff --git a/opencti-platform/opencti-front/src/private/components/locations/Countries.tsx b/opencti-platform/opencti-front/src/private/components/locations/Countries.tsx index aa73773eb77a..1b743b6b883d 100644 --- a/opencti-platform/opencti-front/src/private/components/locations/Countries.tsx +++ b/opencti-platform/opencti-front/src/private/components/locations/Countries.tsx @@ -111,7 +111,7 @@ const Countries: FunctionComponent = () => { }; return ( <> - + {renderLines()} {!FABReplaced && diff --git a/opencti-platform/opencti-front/src/private/components/locations/Positions.tsx b/opencti-platform/opencti-front/src/private/components/locations/Positions.tsx index ba92b8f76d64..ecaa0fa56e01 100644 --- a/opencti-platform/opencti-front/src/private/components/locations/Positions.tsx +++ b/opencti-platform/opencti-front/src/private/components/locations/Positions.tsx @@ -111,7 +111,7 @@ const Positions: FunctionComponent = () => { }; return ( <> - + {renderLines()} {!FABReplaced && diff --git a/opencti-platform/opencti-front/src/private/components/locations/Regions.tsx b/opencti-platform/opencti-front/src/private/components/locations/Regions.tsx index b7c0637dd986..56856243c9c1 100644 --- a/opencti-platform/opencti-front/src/private/components/locations/Regions.tsx +++ b/opencti-platform/opencti-front/src/private/components/locations/Regions.tsx @@ -111,7 +111,7 @@ const Regions: FunctionComponent = () => { }; return ( <> - + {renderLines()} {!FABReplaced && diff --git a/opencti-platform/opencti-front/src/private/components/locations/administrative_areas/Root.tsx b/opencti-platform/opencti-front/src/private/components/locations/administrative_areas/Root.tsx index 2f6ed2b1a86c..51bf20ded588 100644 --- a/opencti-platform/opencti-front/src/private/components/locations/administrative_areas/Root.tsx +++ b/opencti-platform/opencti-front/src/private/components/locations/administrative_areas/Root.tsx @@ -126,7 +126,7 @@ const RootAdministrativeAreaComponent = ({ queryRef, administrativeAreaId }) => />
- { />
- { />
- { />
- { />
- { return (
- + {queryRef && ( { return ( <> - + {queryRef && ( { return ( - + {queryRef && ( { return ( - + {queryRef && ( - { <> {indicator ? (
- {
- {stixCyberObservable ? (
- { }; return ( <> - + {renderLines()} ); diff --git a/opencti-platform/opencti-front/src/private/components/profile/Triggers.tsx b/opencti-platform/opencti-front/src/private/components/profile/Triggers.tsx index db7789594102..2134d60dd783 100644 --- a/opencti-platform/opencti-front/src/private/components/profile/Triggers.tsx +++ b/opencti-platform/opencti-front/src/private/components/profile/Triggers.tsx @@ -112,7 +112,7 @@ const Triggers: FunctionComponent = () => { return ( <> - + {renderLines()} diff --git a/opencti-platform/opencti-front/src/private/components/search/SearchContainerQuery.tsx b/opencti-platform/opencti-front/src/private/components/search/SearchContainerQuery.tsx index 18a82be4cf92..c64bd7837750 100644 --- a/opencti-platform/opencti-front/src/private/components/search/SearchContainerQuery.tsx +++ b/opencti-platform/opencti-front/src/private/components/search/SearchContainerQuery.tsx @@ -6,12 +6,14 @@ import { Link, useLocation, useParams } from 'react-router-dom'; import EEChip from '@components/common/entreprise_edition/EEChip'; import { graphql, PreloadedQuery, usePreloadedQuery, useQueryLoader } from 'react-relay'; import Badge from '@mui/material/Badge'; +import { useTheme } from '@mui/styles'; import ExportContextProvider from '../../../utils/ExportContextProvider'; import { useFormatter } from '../../../components/i18n'; import { decodeSearchKeyword } from '../../../utils/SearchUtils'; import useAuth from '../../../utils/hooks/useAuth'; import { SearchContainerQueryFilesCountQuery } from './__generated__/SearchContainerQueryFilesCountQuery.graphql'; import Breadcrumbs from '../../../components/Breadcrumbs'; +import type { Theme } from '../../../components/Theme'; const searchContainerQueryFilesCountQuery = graphql` query SearchContainerQueryFilesCountQuery($search: String) { @@ -26,6 +28,7 @@ interface SearchRootComponentProps { const SearchContainer: FunctionComponent = ({ children, filesCount = 0 }) => { const { t_i18n } = useFormatter(); + const theme = useTheme(); const { keyword } = useParams() as { keyword: string }; const location = useLocation(); let searchType = 'knowledge'; @@ -34,12 +37,13 @@ const SearchContainer: FunctionComponent = ({ children } return ( - + diff --git a/opencti-platform/opencti-front/src/private/components/settings/Groups.jsx b/opencti-platform/opencti-front/src/private/components/settings/Groups.jsx index c661ec77a84e..f1b28a00fa28 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/Groups.jsx +++ b/opencti-platform/opencti-front/src/private/components/settings/Groups.jsx @@ -157,7 +157,7 @@ class Groups extends Component { }; return (
- + {view === 'lines' ? this.renderLines(paginationOptions) : ''} diff --git a/opencti-platform/opencti-front/src/private/components/settings/KillChainPhases.jsx b/opencti-platform/opencti-front/src/private/components/settings/KillChainPhases.jsx index 657864d207bc..ed32c4d133c8 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/KillChainPhases.jsx +++ b/opencti-platform/opencti-front/src/private/components/settings/KillChainPhases.jsx @@ -145,7 +145,7 @@ const KillChainPhases = () => { return (
- + {queryRef && ( { return (
- + {queryRef && ( - + {view === 'lines' ? this.renderLines(paginationOptions) : ''} diff --git a/opencti-platform/opencti-front/src/private/components/settings/Notifiers.tsx b/opencti-platform/opencti-front/src/private/components/settings/Notifiers.tsx index c4fa16d5875e..eacbf695c06a 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/Notifiers.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/Notifiers.tsx @@ -71,7 +71,7 @@ const Notifiers = () => { return (
- + = ({ return (
- + { return (
- + - + {view === 'lines' ? this.renderLines(paginationOptions) : ''} diff --git a/opencti-platform/opencti-front/src/private/components/settings/Rules.jsx b/opencti-platform/opencti-front/src/private/components/settings/Rules.jsx index d9c5164cc022..f2f6518625cc 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/Rules.jsx +++ b/opencti-platform/opencti-front/src/private/components/settings/Rules.jsx @@ -43,7 +43,7 @@ const Rules = () => { return (
- + {({ platformModuleHelpers }) => { if (!platformModuleHelpers.isRuleEngineEnable()) { diff --git a/opencti-platform/opencti-front/src/private/components/settings/Sessions.jsx b/opencti-platform/opencti-front/src/private/components/settings/Sessions.jsx index bdf6993160d4..39201b6dd6fb 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/Sessions.jsx +++ b/opencti-platform/opencti-front/src/private/components/settings/Sessions.jsx @@ -57,7 +57,7 @@ class Sessions extends Component { return (
- +
({ +const useStyles = makeStyles((theme) => ({ container: { margin: '0 0 60px 0', }, @@ -44,7 +44,7 @@ const useStyles = makeStyles(() => ({ }, button: { float: 'right', - marginTop: -30, + marginTop: theme.spacing(-5), }, })); @@ -295,7 +295,7 @@ const Settings = () => { ); return ( <> - + diff --git a/opencti-platform/opencti-front/src/private/components/settings/SettingsOrganizations.tsx b/opencti-platform/opencti-front/src/private/components/settings/SettingsOrganizations.tsx index 3947e82714df..f7fd9c0167f2 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/SettingsOrganizations.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/SettingsOrganizations.tsx @@ -77,7 +77,7 @@ const SettingsOrganizations = () => { }; return (
- + { return (
- + {isSetAccess || isEnterpriseEdition ? ( renderLines() diff --git a/opencti-platform/opencti-front/src/private/components/settings/Vocabularies.tsx b/opencti-platform/opencti-front/src/private/components/settings/Vocabularies.tsx index 0ab3f2480d60..4edeb03fc655 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/Vocabularies.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/Vocabularies.tsx @@ -180,7 +180,7 @@ const Vocabularies = () => { return (
- { return (
- + {renderLines()}
); diff --git a/opencti-platform/opencti-front/src/private/components/settings/activity/alerting/Alerting.tsx b/opencti-platform/opencti-front/src/private/components/settings/activity/alerting/Alerting.tsx index ae2bf9afb251..92b4edf2cf0b 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/activity/alerting/Alerting.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/activity/alerting/Alerting.tsx @@ -217,7 +217,7 @@ const Alerting: FunctionComponent = () => { return (
- + {renderLines()}
diff --git a/opencti-platform/opencti-front/src/private/components/settings/activity/audit/Audit.tsx b/opencti-platform/opencti-front/src/private/components/settings/activity/audit/Audit.tsx index 2b7c65e8e7b1..659f9c80d812 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/activity/audit/Audit.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/activity/audit/Audit.tsx @@ -219,7 +219,7 @@ const Audit = () => { return (
-
- + diff --git a/opencti-platform/opencti-front/src/private/components/settings/case_templates/CaseTemplates.tsx b/opencti-platform/opencti-front/src/private/components/settings/case_templates/CaseTemplates.tsx index d6055e335159..5769864bbfe3 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/case_templates/CaseTemplates.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/case_templates/CaseTemplates.tsx @@ -105,7 +105,7 @@ const CaseTemplates = () => { return (
- + {renderLines()} { return (
- { return (
- + {renderLines()}
diff --git a/opencti-platform/opencti-front/src/private/components/settings/file_indexing/FileIndexing.tsx b/opencti-platform/opencti-front/src/private/components/settings/file_indexing/FileIndexing.tsx index 3aa4f1713669..5ed180e89a19 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/file_indexing/FileIndexing.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/file_indexing/FileIndexing.tsx @@ -90,7 +90,7 @@ const FileIndexingComponent: FunctionComponent = ({ }, []); return ( <> - + {!isEnterpriseEdition ? ( ) : ( diff --git a/opencti-platform/opencti-front/src/private/components/settings/groups/Root.tsx b/opencti-platform/opencti-front/src/private/components/settings/groups/Root.tsx index 74282dd357d5..f5868b8ee40f 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/groups/Root.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/groups/Root.tsx @@ -65,7 +65,7 @@ const RootGroupComponent: FunctionComponent = ({ queryR {group ? ( <> - - = ({ queryRef {role ? ( <> - { return (
- + {renderLines()} { { data.subType ? ( <> - { return (
- + { return ( {t_i18n('You do not have any access to the knowledge of this OpenCTI instance.')}}>
- diff --git a/opencti-platform/opencti-front/src/private/components/settings/users/Root.jsx b/opencti-platform/opencti-front/src/private/components/settings/users/Root.jsx index b7865b01817b..75df601e78ed 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/users/Root.jsx +++ b/opencti-platform/opencti-front/src/private/components/settings/users/Root.jsx @@ -101,7 +101,7 @@ const RootUserComponent = ({ queryRef, userId, refetch }) => { {data ? (
- { return ( <> - + {queryRef && ( { return ( <> - + {queryRef && ( { return ( <> - + {queryRef && ( { return ( <> - + {queryRef && ( { }; return ( - + {view === 'lines' ? renderLines() : ''} {view === 'subEntityLines' ? renderSubEntityLines() : ''} {!isFABReplaced && ( diff --git a/opencti-platform/opencti-front/src/private/components/techniques/attack_patterns/Root.tsx b/opencti-platform/opencti-front/src/private/components/techniques/attack_patterns/Root.tsx index a6427bb00981..cdd2c8de50f9 100644 --- a/opencti-platform/opencti-front/src/private/components/techniques/attack_patterns/Root.tsx +++ b/opencti-platform/opencti-front/src/private/components/techniques/attack_patterns/Root.tsx @@ -128,7 +128,7 @@ const RootAttackPattern = ({ attackPatternId, queryRef }: RootAttackPatternProps />
- - { const paddingRight = getPaddingRight(location.pathname, dataComponent.id, '/dashboard/techniques/data_components', false); return (
- { <> {dataSource ? (
- { />
- { return ( <> - + {viewStorage.view !== 'lines' ? renderCards() : renderList()} {!isFABReplaced && ( diff --git a/opencti-platform/opencti-front/src/private/components/threats/IntrusionSets.tsx b/opencti-platform/opencti-front/src/private/components/threats/IntrusionSets.tsx index ebf895dbc9ef..d02fb0adbf84 100644 --- a/opencti-platform/opencti-front/src/private/components/threats/IntrusionSets.tsx +++ b/opencti-platform/opencti-front/src/private/components/threats/IntrusionSets.tsx @@ -187,7 +187,7 @@ const IntrusionSets = () => { return ( <> - + {viewStorage.view !== 'lines' ? renderCards() : renderList()} {!isFABReplaced && ( diff --git a/opencti-platform/opencti-front/src/private/components/threats/ThreatActorsGroup.tsx b/opencti-platform/opencti-front/src/private/components/threats/ThreatActorsGroup.tsx index 26b13a571cc9..483479082640 100644 --- a/opencti-platform/opencti-front/src/private/components/threats/ThreatActorsGroup.tsx +++ b/opencti-platform/opencti-front/src/private/components/threats/ThreatActorsGroup.tsx @@ -191,7 +191,7 @@ const ThreatActorsGroup = () => { return ( <> - + {viewStorage.view !== 'lines' ? renderCards() : renderList()} {!isFABReplaced && ( diff --git a/opencti-platform/opencti-front/src/private/components/threats/ThreatActorsIndividual.tsx b/opencti-platform/opencti-front/src/private/components/threats/ThreatActorsIndividual.tsx index 8bc790958ba1..db43cb66aa24 100644 --- a/opencti-platform/opencti-front/src/private/components/threats/ThreatActorsIndividual.tsx +++ b/opencti-platform/opencti-front/src/private/components/threats/ThreatActorsIndividual.tsx @@ -194,7 +194,7 @@ const ThreatActorsIndividual = () => { return ( <> - + {viewStorage.view !== 'lines' ? renderCards() : renderList()} {!isFABReplaced && ( diff --git a/opencti-platform/opencti-front/src/private/components/threats/campaigns/Root.tsx b/opencti-platform/opencti-front/src/private/components/threats/campaigns/Root.tsx index a0ec1dd6b5fa..de6997f02870 100644 --- a/opencti-platform/opencti-front/src/private/components/threats/campaigns/Root.tsx +++ b/opencti-platform/opencti-front/src/private/components/threats/campaigns/Root.tsx @@ -134,7 +134,7 @@ const RootCampaign = ({ campaignId, queryRef }: RootCampaignProps) => { />
-
-
-
- { }; return ( - + {renderLines()} ); diff --git a/opencti-platform/opencti-front/src/private/components/workspaces/Workspaces.tsx b/opencti-platform/opencti-front/src/private/components/workspaces/Workspaces.tsx index b6e6c9a5d447..6701aa34dd35 100644 --- a/opencti-platform/opencti-front/src/private/components/workspaces/Workspaces.tsx +++ b/opencti-platform/opencti-front/src/private/components/workspaces/Workspaces.tsx @@ -233,7 +233,6 @@ const Workspaces: FunctionComponent = ({ return ( <> { return ( <> Date: Tue, 24 Sep 2024 02:11:40 +0000 Subject: [PATCH 3/5] [backend/worker] Release 6.3.3 --- opencti-platform/opencti-front/package.json | 2 +- opencti-platform/opencti-graphql/package.json | 2 +- opencti-platform/opencti-graphql/src/python/requirements.txt | 2 +- opencti-worker/src/requirements.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/opencti-platform/opencti-front/package.json b/opencti-platform/opencti-front/package.json index a92559ec72ff..1edf385c1c40 100644 --- a/opencti-platform/opencti-front/package.json +++ b/opencti-platform/opencti-front/package.json @@ -1,6 +1,6 @@ { "name": "opencti-front", - "version": "6.3.1", + "version": "6.3.3", "private": true, "main": "src/front.tsx", "dependencies": { diff --git a/opencti-platform/opencti-graphql/package.json b/opencti-platform/opencti-graphql/package.json index c280bf67c14f..d8a63b30a63e 100644 --- a/opencti-platform/opencti-graphql/package.json +++ b/opencti-platform/opencti-graphql/package.json @@ -1,6 +1,6 @@ { "name": "opencti-graphql", - "version": "6.3.1", + "version": "6.3.3", "main": "src/back.js", "scripts": { "check-ts": "tsc --noEmit", diff --git a/opencti-platform/opencti-graphql/src/python/requirements.txt b/opencti-platform/opencti-graphql/src/python/requirements.txt index f4e6854537d4..816fbbeb9b4c 100644 --- a/opencti-platform/opencti-graphql/src/python/requirements.txt +++ b/opencti-platform/opencti-graphql/src/python/requirements.txt @@ -1,4 +1,4 @@ -pycti==6.3.1 +pycti==6.3.3 parsuricata==0.4.1 plyara==2.1.1 sigmatools==0.23.1 diff --git a/opencti-worker/src/requirements.txt b/opencti-worker/src/requirements.txt index 687009f1801b..d87adeff9b2a 100644 --- a/opencti-worker/src/requirements.txt +++ b/opencti-worker/src/requirements.txt @@ -1,4 +1,4 @@ -pycti==6.3.1 +pycti==6.3.3 opentelemetry-api==1.22.0 opentelemetry-sdk==1.22.0 opentelemetry-exporter-prometheus==0.43b0 From c36a8d6a55abd9e91ccbdefeca8cc4407756679f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 09:06:36 +0200 Subject: [PATCH 4/5] [backend] Bump rollup from 4.21.3 to 4.22.4 Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- opencti-platform/opencti-graphql/yarn.lock | 136 ++++++++++----------- 1 file changed, 68 insertions(+), 68 deletions(-) diff --git a/opencti-platform/opencti-graphql/yarn.lock b/opencti-platform/opencti-graphql/yarn.lock index 5b739d61cdec..c078a951e6dc 100644 --- a/opencti-platform/opencti-graphql/yarn.lock +++ b/opencti-platform/opencti-graphql/yarn.lock @@ -3594,114 +3594,114 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.21.3" +"@rollup/rollup-android-arm-eabi@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.4" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-android-arm64@npm:4.21.3" +"@rollup/rollup-android-arm64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-android-arm64@npm:4.22.4" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-darwin-arm64@npm:4.21.3" +"@rollup/rollup-darwin-arm64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-darwin-arm64@npm:4.22.4" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-darwin-x64@npm:4.21.3" +"@rollup/rollup-darwin-x64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-darwin-x64@npm:4.22.4" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.21.3" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.21.3" +"@rollup/rollup-linux-arm-musleabihf@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.4" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.21.3" +"@rollup/rollup-linux-arm64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.4" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.21.3" +"@rollup/rollup-linux-arm64-musl@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.4" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.21.3" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.21.3" +"@rollup/rollup-linux-riscv64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.4" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.21.3" +"@rollup/rollup-linux-s390x-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.4" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.21.3" +"@rollup/rollup-linux-x64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.4" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.21.3" +"@rollup/rollup-linux-x64-musl@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.4" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.21.3" +"@rollup/rollup-win32-arm64-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.4" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.21.3" +"@rollup/rollup-win32-ia32-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.4" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.21.3" +"@rollup/rollup-win32-x64-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.4" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -11985,25 +11985,25 @@ __metadata: linkType: hard "rollup@npm:^4.20.0": - version: 4.21.3 - resolution: "rollup@npm:4.21.3" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.21.3" - "@rollup/rollup-android-arm64": "npm:4.21.3" - "@rollup/rollup-darwin-arm64": "npm:4.21.3" - "@rollup/rollup-darwin-x64": "npm:4.21.3" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.21.3" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.21.3" - "@rollup/rollup-linux-arm64-gnu": "npm:4.21.3" - "@rollup/rollup-linux-arm64-musl": "npm:4.21.3" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.21.3" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.21.3" - "@rollup/rollup-linux-s390x-gnu": "npm:4.21.3" - "@rollup/rollup-linux-x64-gnu": "npm:4.21.3" - "@rollup/rollup-linux-x64-musl": "npm:4.21.3" - "@rollup/rollup-win32-arm64-msvc": "npm:4.21.3" - "@rollup/rollup-win32-ia32-msvc": "npm:4.21.3" - "@rollup/rollup-win32-x64-msvc": "npm:4.21.3" + version: 4.22.4 + resolution: "rollup@npm:4.22.4" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.22.4" + "@rollup/rollup-android-arm64": "npm:4.22.4" + "@rollup/rollup-darwin-arm64": "npm:4.22.4" + "@rollup/rollup-darwin-x64": "npm:4.22.4" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.22.4" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.22.4" + "@rollup/rollup-linux-arm64-gnu": "npm:4.22.4" + "@rollup/rollup-linux-arm64-musl": "npm:4.22.4" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.22.4" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.22.4" + "@rollup/rollup-linux-s390x-gnu": "npm:4.22.4" + "@rollup/rollup-linux-x64-gnu": "npm:4.22.4" + "@rollup/rollup-linux-x64-musl": "npm:4.22.4" + "@rollup/rollup-win32-arm64-msvc": "npm:4.22.4" + "@rollup/rollup-win32-ia32-msvc": "npm:4.22.4" + "@rollup/rollup-win32-x64-msvc": "npm:4.22.4" "@types/estree": "npm:1.0.5" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -12043,7 +12043,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10/60a1d6548fa1e612209f9f98f83c73a213f27569abddcbfb246af08455d730f367d95f6bd541b58c9e1e643c181463db27326c712aa81efd4071372a4d3481b9 + checksum: 10/0fbee8c14d9052624c76a09fe79ed4d46024832be3ceea86c69f1521ae84b581a64c6e6596fdd796030c206835987e1a0a3be85f4c0d35b71400be5dce799d12 languageName: node linkType: hard From 2dd77015873755d74c54974ca4388f146020405b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 09:07:21 +0200 Subject: [PATCH 5/5] [frontend] Bump rollup from 4.21.0 to 4.22.4 Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- opencti-platform/opencti-front/yarn.lock | 313 +++++------------------ 1 file changed, 69 insertions(+), 244 deletions(-) diff --git a/opencti-platform/opencti-front/yarn.lock b/opencti-platform/opencti-front/yarn.lock index c47ec91e4266..0d736792eaf5 100644 --- a/opencti-platform/opencti-front/yarn.lock +++ b/opencti-platform/opencti-front/yarn.lock @@ -5211,226 +5211,114 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.21.0" +"@rollup/rollup-android-arm-eabi@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.4" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.21.3" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@rollup/rollup-android-arm64@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-android-arm64@npm:4.21.0" +"@rollup/rollup-android-arm64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-android-arm64@npm:4.22.4" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-android-arm64@npm:4.21.3" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-arm64@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.21.0" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-arm64@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-darwin-arm64@npm:4.21.3" +"@rollup/rollup-darwin-arm64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-darwin-arm64@npm:4.22.4" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.21.0" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-x64@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-darwin-x64@npm:4.21.3" +"@rollup/rollup-darwin-x64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-darwin-x64@npm:4.22.4" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.21.0" - conditions: os=linux & cpu=arm & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm-gnueabihf@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.21.3" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.21.0" +"@rollup/rollup-linux-arm-musleabihf@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.4" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.21.3" - conditions: os=linux & cpu=arm & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm64-gnu@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.21.0" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm64-gnu@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.21.3" +"@rollup/rollup-linux-arm64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.4" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.21.0" +"@rollup/rollup-linux-arm64-musl@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.4" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.21.3" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.21.0" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.21.3" - conditions: os=linux & cpu=ppc64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-riscv64-gnu@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.21.0" - conditions: os=linux & cpu=riscv64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-riscv64-gnu@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.21.3" +"@rollup/rollup-linux-riscv64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.4" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.21.0" +"@rollup/rollup-linux-s390x-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.4" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.21.3" - conditions: os=linux & cpu=s390x & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-x64-gnu@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.21.0" +"@rollup/rollup-linux-x64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.4" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.21.3" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-x64-musl@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.21.0" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-linux-x64-musl@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.21.3" +"@rollup/rollup-linux-x64-musl@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.4" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.21.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.4" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.21.3" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-win32-ia32-msvc@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.21.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.4" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.21.3" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@rollup/rollup-win32-x64-msvc@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.21.0" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@rollup/rollup-win32-x64-msvc@npm:4.21.3": - version: 4.21.3 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.21.3" +"@rollup/rollup-win32-x64-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.4" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -18209,89 +18097,26 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.13.0": - version: 4.21.0 - resolution: "rollup@npm:4.21.0" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.21.0" - "@rollup/rollup-android-arm64": "npm:4.21.0" - "@rollup/rollup-darwin-arm64": "npm:4.21.0" - "@rollup/rollup-darwin-x64": "npm:4.21.0" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.21.0" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.21.0" - "@rollup/rollup-linux-arm64-gnu": "npm:4.21.0" - "@rollup/rollup-linux-arm64-musl": "npm:4.21.0" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.21.0" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.21.0" - "@rollup/rollup-linux-s390x-gnu": "npm:4.21.0" - "@rollup/rollup-linux-x64-gnu": "npm:4.21.0" - "@rollup/rollup-linux-x64-musl": "npm:4.21.0" - "@rollup/rollup-win32-arm64-msvc": "npm:4.21.0" - "@rollup/rollup-win32-ia32-msvc": "npm:4.21.0" - "@rollup/rollup-win32-x64-msvc": "npm:4.21.0" - "@types/estree": "npm:1.0.5" - fsevents: "npm:~2.3.2" - dependenciesMeta: - "@rollup/rollup-android-arm-eabi": - optional: true - "@rollup/rollup-android-arm64": - optional: true - "@rollup/rollup-darwin-arm64": - optional: true - "@rollup/rollup-darwin-x64": - optional: true - "@rollup/rollup-linux-arm-gnueabihf": - optional: true - "@rollup/rollup-linux-arm-musleabihf": - optional: true - "@rollup/rollup-linux-arm64-gnu": - optional: true - "@rollup/rollup-linux-arm64-musl": - optional: true - "@rollup/rollup-linux-powerpc64le-gnu": - optional: true - "@rollup/rollup-linux-riscv64-gnu": - optional: true - "@rollup/rollup-linux-s390x-gnu": - optional: true - "@rollup/rollup-linux-x64-gnu": - optional: true - "@rollup/rollup-linux-x64-musl": - optional: true - "@rollup/rollup-win32-arm64-msvc": - optional: true - "@rollup/rollup-win32-ia32-msvc": - optional: true - "@rollup/rollup-win32-x64-msvc": - optional: true - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: 10/27ac47d5049719249d2a44982e31f01423158a3625cabff2f2362219aee64bdc14c32572b669169c22c324c3a965044ce8f06e27eee00fd8802861cd13697f87 - languageName: node - linkType: hard - -"rollup@npm:^4.20.0": - version: 4.21.3 - resolution: "rollup@npm:4.21.3" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.21.3" - "@rollup/rollup-android-arm64": "npm:4.21.3" - "@rollup/rollup-darwin-arm64": "npm:4.21.3" - "@rollup/rollup-darwin-x64": "npm:4.21.3" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.21.3" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.21.3" - "@rollup/rollup-linux-arm64-gnu": "npm:4.21.3" - "@rollup/rollup-linux-arm64-musl": "npm:4.21.3" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.21.3" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.21.3" - "@rollup/rollup-linux-s390x-gnu": "npm:4.21.3" - "@rollup/rollup-linux-x64-gnu": "npm:4.21.3" - "@rollup/rollup-linux-x64-musl": "npm:4.21.3" - "@rollup/rollup-win32-arm64-msvc": "npm:4.21.3" - "@rollup/rollup-win32-ia32-msvc": "npm:4.21.3" - "@rollup/rollup-win32-x64-msvc": "npm:4.21.3" +"rollup@npm:^4.13.0, rollup@npm:^4.20.0": + version: 4.22.4 + resolution: "rollup@npm:4.22.4" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.22.4" + "@rollup/rollup-android-arm64": "npm:4.22.4" + "@rollup/rollup-darwin-arm64": "npm:4.22.4" + "@rollup/rollup-darwin-x64": "npm:4.22.4" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.22.4" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.22.4" + "@rollup/rollup-linux-arm64-gnu": "npm:4.22.4" + "@rollup/rollup-linux-arm64-musl": "npm:4.22.4" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.22.4" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.22.4" + "@rollup/rollup-linux-s390x-gnu": "npm:4.22.4" + "@rollup/rollup-linux-x64-gnu": "npm:4.22.4" + "@rollup/rollup-linux-x64-musl": "npm:4.22.4" + "@rollup/rollup-win32-arm64-msvc": "npm:4.22.4" + "@rollup/rollup-win32-ia32-msvc": "npm:4.22.4" + "@rollup/rollup-win32-x64-msvc": "npm:4.22.4" "@types/estree": "npm:1.0.5" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -18331,7 +18156,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10/60a1d6548fa1e612209f9f98f83c73a213f27569abddcbfb246af08455d730f367d95f6bd541b58c9e1e643c181463db27326c712aa81efd4071372a4d3481b9 + checksum: 10/0fbee8c14d9052624c76a09fe79ed4d46024832be3ceea86c69f1521ae84b581a64c6e6596fdd796030c206835987e1a0a3be85f4c0d35b71400be5dce799d12 languageName: node linkType: hard