From 12d7440117cfaff36c791f735ed15782fd1090c0 Mon Sep 17 00:00:00 2001 From: Lilia Sviridova Date: Thu, 5 Dec 2024 10:43:18 +0200 Subject: [PATCH 1/5] Display image credit in LargeImageBlock --- common/__generated__/graphql.ts | 46 ++++++++++++------- common/__generated__/possible_types.json | 14 +++++- components/common/StreamField.tsx | 32 ++++++++++--- .../contentblocks/ContentPageHeaderBlock.js | 2 +- fragments/stream-field.fragment.ts | 1 + 5 files changed, 69 insertions(+), 26 deletions(-) diff --git a/common/__generated__/graphql.ts b/common/__generated__/graphql.ts index 554453c9..2c8efb4e 100644 --- a/common/__generated__/graphql.ts +++ b/common/__generated__/graphql.ts @@ -2143,13 +2143,14 @@ export type EmptyPageSiblingsArgs = { searchQuery?: InputMaybe; }; -export type EndDateColumnBlock = DashboardColumnInterface & StreamFieldInterface & { +export type EndDateColumnBlock = DashboardColumnInterface & FieldBlockMetaInterface & StreamFieldInterface & { __typename?: 'EndDateColumnBlock'; blockType: Scalars['String']; blocks: Array; columnLabel?: Maybe; field: Scalars['String']; id?: Maybe; + meta?: Maybe; rawValue: Scalars['String']; }; @@ -2242,13 +2243,14 @@ export type FrontPageHeroBlock = StreamFieldInterface & { rawValue: Scalars['String']; }; -export type IdentifierColumnBlock = DashboardColumnInterface & StreamFieldInterface & { +export type IdentifierColumnBlock = DashboardColumnInterface & FieldBlockMetaInterface & StreamFieldInterface & { __typename?: 'IdentifierColumnBlock'; blockType: Scalars['String']; blocks: Array; columnLabel?: Maybe; field: Scalars['String']; id?: Maybe; + meta?: Maybe; rawValue: Scalars['String']; }; @@ -2291,13 +2293,14 @@ export type ImageRendition = { width: Scalars['Int']; }; -export type ImpactColumnBlock = DashboardColumnInterface & StreamFieldInterface & { +export type ImpactColumnBlock = DashboardColumnInterface & FieldBlockMetaInterface & StreamFieldInterface & { __typename?: 'ImpactColumnBlock'; blockType: Scalars['String']; blocks: Array; columnLabel?: Maybe; field: Scalars['String']; id?: Maybe; + meta?: Maybe; rawValue: Scalars['String']; }; @@ -2421,13 +2424,14 @@ export type ImpactGroupPageSiblingsArgs = { searchQuery?: InputMaybe; }; -export type ImplementationPhaseColumnBlock = DashboardColumnInterface & StreamFieldInterface & { +export type ImplementationPhaseColumnBlock = DashboardColumnInterface & FieldBlockMetaInterface & StreamFieldInterface & { __typename?: 'ImplementationPhaseColumnBlock'; blockType: Scalars['String']; blocks: Array; columnLabel?: Maybe; field: Scalars['String']; id?: Maybe; + meta?: Maybe; rawValue: Scalars['String']; }; @@ -2735,13 +2739,14 @@ export type IndicatorValue = { value: Scalars['Float']; }; -export type IndicatorsColumnBlock = DashboardColumnInterface & StreamFieldInterface & { +export type IndicatorsColumnBlock = DashboardColumnInterface & FieldBlockMetaInterface & StreamFieldInterface & { __typename?: 'IndicatorsColumnBlock'; blockType: Scalars['String']; blocks: Array; columnLabel?: Maybe; field: Scalars['String']; id?: Maybe; + meta?: Maybe; rawValue: Scalars['String']; }; @@ -2844,13 +2849,14 @@ export type MutationUpdatePlanArgs = { input: UpdatePlanMutationInput; }; -export type NameColumnBlock = DashboardColumnInterface & StreamFieldInterface & { +export type NameColumnBlock = DashboardColumnInterface & FieldBlockMetaInterface & StreamFieldInterface & { __typename?: 'NameColumnBlock'; blockType: Scalars['String']; blocks: Array; columnLabel?: Maybe; field: Scalars['String']; id?: Maybe; + meta?: Maybe; rawValue: Scalars['String']; }; @@ -2908,13 +2914,14 @@ export type OrganizationClass = { name: Scalars['String']; }; -export type OrganizationColumnBlock = DashboardColumnInterface & StreamFieldInterface & { +export type OrganizationColumnBlock = DashboardColumnInterface & FieldBlockMetaInterface & StreamFieldInterface & { __typename?: 'OrganizationColumnBlock'; blockType: Scalars['String']; blocks: Array; columnLabel?: Maybe; field: Scalars['String']; id?: Maybe; + meta?: Maybe; rawValue: Scalars['String']; }; @@ -3996,13 +4003,14 @@ export type ReportValueInterface = { field: ReportFieldBlock; }; -export type ResponsiblePartiesColumnBlock = DashboardColumnInterface & StreamFieldInterface & { +export type ResponsiblePartiesColumnBlock = DashboardColumnInterface & FieldBlockMetaInterface & StreamFieldInterface & { __typename?: 'ResponsiblePartiesColumnBlock'; blockType: Scalars['String']; blocks: Array; columnLabel?: Maybe; field: Scalars['String']; id?: Maybe; + meta?: Maybe; rawValue: Scalars['String']; }; @@ -4169,13 +4177,14 @@ export type SiteObjectTypePagesArgs = { searchQuery?: InputMaybe; }; -export type StartDateColumnBlock = DashboardColumnInterface & StreamFieldInterface & { +export type StartDateColumnBlock = DashboardColumnInterface & FieldBlockMetaInterface & StreamFieldInterface & { __typename?: 'StartDateColumnBlock'; blockType: Scalars['String']; blocks: Array; columnLabel?: Maybe; field: Scalars['String']; id?: Maybe; + meta?: Maybe; rawValue: Scalars['String']; }; @@ -4290,13 +4299,14 @@ export type StaticPageSiblingsArgs = { searchQuery?: InputMaybe; }; -export type StatusColumnBlock = DashboardColumnInterface & StreamFieldInterface & { +export type StatusColumnBlock = DashboardColumnInterface & FieldBlockMetaInterface & StreamFieldInterface & { __typename?: 'StatusColumnBlock'; blockType: Scalars['String']; blocks: Array; columnLabel?: Maybe; field: Scalars['String']; id?: Maybe; + meta?: Maybe; rawValue: Scalars['String']; }; @@ -4340,13 +4350,14 @@ export type TagObjectType = { name: Scalars['String']; }; -export type TasksColumnBlock = DashboardColumnInterface & StreamFieldInterface & { +export type TasksColumnBlock = DashboardColumnInterface & FieldBlockMetaInterface & StreamFieldInterface & { __typename?: 'TasksColumnBlock'; blockType: Scalars['String']; blocks: Array; columnLabel?: Maybe; field: Scalars['String']; id?: Maybe; + meta?: Maybe; rawValue: Scalars['String']; }; @@ -4465,13 +4476,14 @@ export type UpdatePlanMutationPayload = { plan?: Maybe; }; -export type UpdatedAtColumnBlock = DashboardColumnInterface & StreamFieldInterface & { +export type UpdatedAtColumnBlock = DashboardColumnInterface & FieldBlockMetaInterface & StreamFieldInterface & { __typename?: 'UpdatedAtColumnBlock'; blockType: Scalars['String']; blocks: Array; columnLabel?: Maybe; field: Scalars['String']; id?: Maybe; + meta?: Maybe; rawValue: Scalars['String']; }; @@ -7296,7 +7308,7 @@ type StreamFieldFragment_IndicatorShowcaseBlock_Fragment = ( type StreamFieldFragment_LargeImageBlock_Fragment = ( { width?: string | null, id?: string | null, blockType: string, field: string, image?: ( - { title: string, altText: string, width: number, height: number, renditionUncropped?: ( + { title: string, altText: string, width: number, height: number, imageCredit: string, renditionUncropped?: ( { src: string } & { __typename?: 'ImageRendition' } ) | null } @@ -10637,7 +10649,7 @@ export type GetContentPageQuery = ( & { __typename?: 'IndicatorShowcaseBlock' } ) | ( { width?: string | null, id?: string | null, blockType: string, field: string, image?: ( - { title: string, altText: string, width: number, height: number, renditionUncropped?: ( + { title: string, altText: string, width: number, height: number, imageCredit: string, renditionUncropped?: ( { src: string } & { __typename?: 'ImageRendition' } ) | null } @@ -11348,7 +11360,7 @@ export type GetContentPageQuery = ( & { __typename?: 'IndicatorShowcaseBlock' } ) | ( { width?: string | null, id?: string | null, blockType: string, field: string, image?: ( - { title: string, altText: string, width: number, height: number, renditionUncropped?: ( + { title: string, altText: string, width: number, height: number, imageCredit: string, renditionUncropped?: ( { src: string } & { __typename?: 'ImageRendition' } ) | null } @@ -11753,7 +11765,7 @@ export type GetContentPageQuery = ( & { __typename?: 'IndicatorShowcaseBlock' } ) | ( { width?: string | null, id?: string | null, blockType: string, field: string, image?: ( - { title: string, altText: string, width: number, height: number, renditionUncropped?: ( + { title: string, altText: string, width: number, height: number, imageCredit: string, renditionUncropped?: ( { src: string } & { __typename?: 'ImageRendition' } ) | null } @@ -12173,7 +12185,7 @@ export type GetHomePageQuery = ( & { __typename?: 'IndicatorShowcaseBlock' } ) | ( { id?: string | null, width?: string | null, blockType: string, field: string, image?: ( - { title: string, altText: string, width: number, height: number, renditionUncropped?: ( + { title: string, altText: string, width: number, height: number, imageCredit: string, renditionUncropped?: ( { src: string } & { __typename?: 'ImageRendition' } ) | null } diff --git a/common/__generated__/possible_types.json b/common/__generated__/possible_types.json index 2269cbbf..012c9f6a 100644 --- a/common/__generated__/possible_types.json +++ b/common/__generated__/possible_types.json @@ -120,7 +120,19 @@ "ActionResponsiblePartiesBlock", "ActionScheduleBlock", "ActionTasksBlock", - "IndicatorCausalChainBlock" + "EndDateColumnBlock", + "IdentifierColumnBlock", + "ImpactColumnBlock", + "ImplementationPhaseColumnBlock", + "IndicatorCausalChainBlock", + "IndicatorsColumnBlock", + "NameColumnBlock", + "OrganizationColumnBlock", + "ResponsiblePartiesColumnBlock", + "StartDateColumnBlock", + "StatusColumnBlock", + "TasksColumnBlock", + "UpdatedAtColumnBlock" ], "MenuItem": [ "ExternalLinkMenuItem", diff --git a/components/common/StreamField.tsx b/components/common/StreamField.tsx index a4021a8a..c1c58ac5 100644 --- a/components/common/StreamField.tsx +++ b/components/common/StreamField.tsx @@ -22,6 +22,8 @@ import IndicatorShowcaseBlock from 'components/contentblocks/IndicatorShowcaseBl import QuestionAnswerBlock from 'components/contentblocks/QuestionAnswerBlock'; import RelatedIndicatorsBlock from 'components/contentblocks/RelatedIndicatorsBlock'; import RelatedPlanListBlock from 'components/contentblocks/RelatedPlanListBlock'; +import { ImageCredit } from 'components/contentblocks/ContentPageHeaderBlock'; +import { useTranslations } from 'next-intl'; import { usePlan } from 'context/plan'; import { Col, ColProps, Container, Row } from 'reactstrap'; import { ColumnProps } from 'reactstrap/types/lib/Col'; @@ -123,6 +125,7 @@ function StreamFieldBlock(props: StreamFieldBlockProps) { const { __typename } = block; const plan = usePlan(); const theme = useTheme(); + const t = useTranslations(); switch (__typename) { case 'RichTextBlock': { @@ -254,6 +257,7 @@ function StreamFieldBlock(props: StreamFieldBlockProps) { * fit_to_column: image is limited to text block width * Image keeps it original ratio and doesn't crop */ + const getColSize = (breakpoint) => { if (block.width === 'maximum') return {}; switch (breakpoint) { @@ -274,16 +278,30 @@ function StreamFieldBlock(props: StreamFieldBlockProps) { xl={getColSize('xl')} lg={getColSize('lg')} md={getColSize('md')} + style={{ + position: 'relative', + }} > - {block.image?.altText} + > + {block.image?.altText} + {block.image?.imageCredit && ( + + {`${t('image-credit')}: ${block.image.imageCredit}`} + + )} + diff --git a/components/contentblocks/ContentPageHeaderBlock.js b/components/contentblocks/ContentPageHeaderBlock.js index 2cf3894f..af7168a2 100644 --- a/components/contentblocks/ContentPageHeaderBlock.js +++ b/components/contentblocks/ContentPageHeaderBlock.js @@ -47,7 +47,7 @@ const ContentHeader = styled.header` } `; -const ImageCredit = styled.span` +export const ImageCredit = styled.span` position: absolute; top: 0; right: 0; diff --git a/fragments/stream-field.fragment.ts b/fragments/stream-field.fragment.ts index a4ce01ac..2b85829f 100644 --- a/fragments/stream-field.fragment.ts +++ b/fragments/stream-field.fragment.ts @@ -129,6 +129,7 @@ export const STREAM_FIELD_FRAGMENT = gql` renditionUncropped: rendition(size: "1320x1320", crop: false) { src } + imageCredit } width } From 2c858f0e7395ffd10ed2a56d3e35cd8d86a3a247 Mon Sep 17 00:00:00 2001 From: Lilia Sviridova Date: Thu, 5 Dec 2024 11:27:21 +0200 Subject: [PATCH 2/5] Get the marginBottom back --- components/common/StreamField.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/components/common/StreamField.tsx b/components/common/StreamField.tsx index c1c58ac5..8d1b4941 100644 --- a/components/common/StreamField.tsx +++ b/components/common/StreamField.tsx @@ -294,6 +294,7 @@ function StreamFieldBlock(props: StreamFieldBlockProps) { style={{ display: 'block', width: '100%', + marginBottom: theme.spaces.s600, }} /> {block.image?.imageCredit && ( From 3ffbd8f8bb93a15eb9a422f613175217daa4dd27 Mon Sep 17 00:00:00 2001 From: Timo Tuominen Date: Tue, 3 Dec 2024 22:09:39 +0200 Subject: [PATCH 3/5] Remove ImpactColumnBlock --- components/dashboard/dashboard.constants.tsx | 6 ------ fragments/action-list.fragment.ts | 3 --- 2 files changed, 9 deletions(-) diff --git a/components/dashboard/dashboard.constants.tsx b/components/dashboard/dashboard.constants.tsx index 72a1aee5..2e83c27e 100644 --- a/components/dashboard/dashboard.constants.tsx +++ b/components/dashboard/dashboard.constants.tsx @@ -71,12 +71,6 @@ export const COLUMN_CONFIG: { [key in ColumnBlock]: Column } = { renderCell: (action) => action.identifier, }, - // TODO: Remove from the backend - ImpactColumnBlock: { - renderHeader: () => '', - renderCell: () => '', - }, - NameColumnBlock: { sortable: true, headerKey: 'name', diff --git a/fragments/action-list.fragment.ts b/fragments/action-list.fragment.ts index 5f4941c7..ad9fca66 100644 --- a/fragments/action-list.fragment.ts +++ b/fragments/action-list.fragment.ts @@ -106,9 +106,6 @@ export const ACTION_TABLE_COLUMN_FRAGMENT = gql` ... on OrganizationColumnBlock { columnLabel } - ... on ImpactColumnBlock { - columnLabel - } ... on FieldColumnBlock { columnLabel field From bc2c6ce11ccd610bc42edf29b4eed7fe9ee84e16 Mon Sep 17 00:00:00 2001 From: Lilia Sviridova Date: Mon, 9 Dec 2024 10:35:20 +0200 Subject: [PATCH 4/5] Fix URL construction for LogoLink --- components/common/GlobalNav.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/common/GlobalNav.tsx b/components/common/GlobalNav.tsx index 8d05483e..540b07b9 100644 --- a/components/common/GlobalNav.tsx +++ b/components/common/GlobalNav.tsx @@ -32,7 +32,9 @@ import NavbarSearch from './NavbarSearch'; const getRootLink = (plan, locale, primaryLanguage) => { if (plan.parent && plan.parent.viewUrl) { - const shouldAppendLocale = locale !== primaryLanguage; + const shouldAppendLocale = + locale !== primaryLanguage && + !plan.parent.viewUrl.includes(`/${locale}/`); if (shouldAppendLocale) { return `${plan.parent.viewUrl}/${locale}/`; } From 20a547ac32e15f9b557b197424c864d861349633 Mon Sep 17 00:00:00 2001 From: Timo Tuominen Date: Mon, 2 Dec 2024 17:43:39 +0200 Subject: [PATCH 5/5] Remove client-side Action spreadsheet file export from dashboard Replace it with the same backend excel export implementation used for reporting. Also remove related dependencies. Hopefully this will result in less maintenance in the long run. --- components/dashboard/ActionStatusExport.js | 187 +-------- package.json | 2 - queries/get-plan.ts | 1 + yarn.lock | 427 +-------------------- 4 files changed, 20 insertions(+), 597 deletions(-) diff --git a/components/dashboard/ActionStatusExport.js b/components/dashboard/ActionStatusExport.js index f9a816a3..159ac086 100644 --- a/components/dashboard/ActionStatusExport.js +++ b/components/dashboard/ActionStatusExport.js @@ -1,5 +1,3 @@ -import { getActionTaskTermContext, getActionTermContext } from 'common/i18n'; -import { cleanActionStatus } from 'common/preprocess'; import { usePlan } from 'context/plan'; import { useTranslations } from 'next-intl'; import { @@ -9,193 +7,18 @@ import { DropdownItem, } from 'reactstrap'; -async function exportActions( - t, - actions, - actionStatuses, - plan, - fileFormat = 'excel' -) { - const Excel = (await import('exceljs')).default; - const fileSaver = (await import('file-saver')).default; - const workbook = new Excel.Workbook(); - const worksheet = workbook.addWorksheet( - t('actions', getActionTermContext(plan)) - ); - const planIds = new Set(actions.map((action) => action.plan.id)); - const multiplePlans = planIds.size > 1; - const columns = [ - { header: t('action-identifier'), key: 'id', width: 10 }, - { - header: t('action-name-title', getActionTermContext(plan)), - key: 'name', - width: 50, - }, - { header: t('status'), key: 'status', width: 20 }, - { - header: t('action-implementation-phase'), - key: 'implementationPhase', - width: 20, - }, - { header: t('action-last-updated'), key: 'lastUpdated', width: 15 }, - { - header: t('tasks-on-time', getActionTaskTermContext(plan)), - key: 'ontimeTasks', - width: 10, - }, - { - header: t('tasks-late', getActionTaskTermContext(plan)), - key: 'lateTasks', - width: 10, - }, - { - header: t('tasks-completed', getActionTaskTermContext(plan)), - key: 'completedTasks', - width: 10, - }, - { - header: t('action-tasks', getActionTaskTermContext(plan)), - key: 'tasks', - width: 10, - }, - { - header: t('responsible-organizations-primary'), - key: 'primaryResponsibleOrgs', - width: 20, - }, - { - header: t('responsible-organizations-collaborator'), - key: 'collaboratorResponsibleOrgs', - width: 20, - }, - { - header: t('responsible-organizations-other'), - key: 'otherResponsibleOrgs', - width: 20, - }, - ]; - if (multiplePlans) { - columns.unshift({ - header: t('plan'), - key: 'plan', - width: 20, - }); - } - // When assigning to worksheet.columns, some magic happens and manipulating worksheet.columns afterwards does not - // yield the desired results. So we prepare the columns array separately before assigning it to worksheet.columns. - worksheet.columns = columns; - actions.forEach((act) => { - const status = cleanActionStatus(act, actionStatuses); - // Remove any soft hyphens in action name (due to `hyphenated: true` when querying the name) as Excel renders - // visible hyphens instead. - const actionName = act.name?.replaceAll('­', ''); - let activePhaseName = act.implementationPhase?.name; - if (status != null) { - // FIXME: Duplicated logic from ActionPhase.js - const inactive = [ - 'cancelled', - 'merged', - 'postponed', - 'completed', - ].includes(status.identifier); - if (inactive) activePhaseName = status.name; - } - - const tasks = act.tasks; - let tasksCount = tasks.length; - // FIXME: Duplicated logic from ActionStatusTable.js - let ontimeTasks = 0; - let lateTasks = 0; - let completedTasks = 0; - const nowDate = new Date(); - - tasks.forEach((task) => { - const taskDue = new Date(task.dueAt); - switch (task.state) { - case 'NOT_STARTED': - case 'IN_PROGRESS': - if (taskDue < nowDate) lateTasks += 1; - else ontimeTasks += 1; - break; - case 'COMPLETED': - completedTasks += 1; - break; - default: - tasksCount -= 1; - } - }); - - const getOrgName = ({ organization }) => organization.name; - - const parties = act.responsibleParties; - const primaryResponsibleOrgs = parties - .filter((p) => p.role === 'PRIMARY') - .map(getOrgName); - const collaboratorResponsibleOrgs = parties - .filter((p) => p.role === 'COLLABORATOR') - .map(getOrgName); - const otherResponsibleOrgs = parties - .filter((p) => p.role === null) - .map(getOrgName); - - const row = [ - act.identifier, - actionName, - status?.name, - activePhaseName, - new Date(act.updatedAt), - ontimeTasks, - lateTasks, - completedTasks, - tasksCount, - primaryResponsibleOrgs.join(';'), - collaboratorResponsibleOrgs.join(';'), - otherResponsibleOrgs.join(';'), - ]; - if (multiplePlans) { - row.unshift(act.plan.name); - } - worksheet.addRow(row); - }); - - const today = new Date().toISOString().split('T')[0]; - switch (fileFormat) { - case 'excel': - const xls64 = await workbook.xlsx.writeBuffer({ base64: true }); - fileSaver.saveAs( - new Blob([xls64], { - type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - }), - `${t('actions', getActionTermContext(plan))}-${today}.xlsx` - ); - break; - - case 'csv': - const csv64 = await workbook.csv.writeBuffer({ base64: true }); - fileSaver.saveAs( - new Blob([csv64], { type: 'text/csv' }), - `${t('actions', getActionTermContext(plan))}-${today}.csv` - ); - break; - - default: - throw new Error('Unknown file format'); - } -} - export default function ActionStatusExport({ actions }) { const t = useTranslations(); const plan = usePlan(); - const { actionStatuses } = plan; - const handleExport = async (format) => { - await exportActions(t, actions, actionStatuses, plan, format); - }; + const url = plan.actionReportExportViewUrl; + const csvExportUrl = `${url}?format=csv`; + const excelExportUrl = `${url}?format=xlsx`; return ( {t('export')} - handleExport('excel')}>Excel - handleExport('csv')}>CSV + Excel + CSV ); diff --git a/package.json b/package.json index 2392d525..115ab41c 100644 --- a/package.json +++ b/package.json @@ -25,9 +25,7 @@ "docker-secret": "^1.2.4", "dotenv": "^16.0.0", "escape-string-regexp": "^5.0.0", - "exceljs": "^4.3.0", "express-robots-txt": "^1.0.0", - "file-saver": "^2.0.5", "fontfaceobserver": "^2.1.0", "framer-motion": "^11.0.24", "html-react-parser": "^1.4.12", diff --git a/queries/get-plan.ts b/queries/get-plan.ts index 523141a6..e2f380b5 100644 --- a/queries/get-plan.ts +++ b/queries/get-plan.ts @@ -26,6 +26,7 @@ const GET_PLAN_CONTEXT = gql` hideActionIdentifiers publishedAt viewUrl(clientUrl: $clientUrl) + actionReportExportViewUrl primaryActionClassification { id identifier diff --git a/yarn.lock b/yarn.lock index 14c04fc9..d39e187e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2347,35 +2347,6 @@ __metadata: languageName: node linkType: hard -"@fast-csv/format@npm:4.3.5": - version: 4.3.5 - resolution: "@fast-csv/format@npm:4.3.5" - dependencies: - "@types/node": ^14.0.1 - lodash.escaperegexp: ^4.1.2 - lodash.isboolean: ^3.0.3 - lodash.isequal: ^4.5.0 - lodash.isfunction: ^3.0.9 - lodash.isnil: ^4.0.0 - checksum: 36d5fb76c26179bd1718dffd49fc88f4ab62675464d7ec44c5f1de55b8c454ecdf3faf84fe291df934832233f531d24c810a71cc0c390c7c4df09685d614c65b - languageName: node - linkType: hard - -"@fast-csv/parse@npm:4.3.6": - version: 4.3.6 - resolution: "@fast-csv/parse@npm:4.3.6" - dependencies: - "@types/node": ^14.0.1 - lodash.escaperegexp: ^4.1.2 - lodash.groupby: ^4.6.0 - lodash.isfunction: ^3.0.9 - lodash.isnil: ^4.0.0 - lodash.isundefined: ^3.0.1 - lodash.uniq: ^4.5.0 - checksum: 15434d2bc7a71af63a4cc45352a58f6edd69d464233fd6f9a808a8efb9ae326832b4f78d1ddcf9fc3bbf166e9c1dce19671c4de40371a926d60cb7c5a8bad08a - languageName: node - linkType: hard - "@floating-ui/core@npm:^1.0.0": version: 1.6.0 resolution: "@floating-ui/core@npm:1.6.0" @@ -7012,13 +6983,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^14.0.1": - version: 14.18.63 - resolution: "@types/node@npm:14.18.63" - checksum: be909061a54931778c71c49dc562586c32f909c4b6197e3d71e6dac726d8bd9fccb9f599c0df99f52742b68153712b5097c0f00cac4e279fa894b0ea6719a8fd - languageName: node - linkType: hard - "@types/node@npm:^17.0.31": version: 17.0.45 resolution: "@types/node@npm:17.0.45" @@ -8421,57 +8385,6 @@ __metadata: languageName: node linkType: hard -"archiver-utils@npm:^2.1.0": - version: 2.1.0 - resolution: "archiver-utils@npm:2.1.0" - dependencies: - glob: ^7.1.4 - graceful-fs: ^4.2.0 - lazystream: ^1.0.0 - lodash.defaults: ^4.2.0 - lodash.difference: ^4.5.0 - lodash.flatten: ^4.4.0 - lodash.isplainobject: ^4.0.6 - lodash.union: ^4.6.0 - normalize-path: ^3.0.0 - readable-stream: ^2.0.0 - checksum: 5665f40bde87ee82cb638177bdccca8cc6e55edea1b94338f7e6b56a1d9367b0d9a39e42b47866eaf84b8c67669a7d250900a226207ecc30fa163b52aae859a5 - languageName: node - linkType: hard - -"archiver-utils@npm:^3.0.4": - version: 3.0.4 - resolution: "archiver-utils@npm:3.0.4" - dependencies: - glob: ^7.2.3 - graceful-fs: ^4.2.0 - lazystream: ^1.0.0 - lodash.defaults: ^4.2.0 - lodash.difference: ^4.5.0 - lodash.flatten: ^4.4.0 - lodash.isplainobject: ^4.0.6 - lodash.union: ^4.6.0 - normalize-path: ^3.0.0 - readable-stream: ^3.6.0 - checksum: 5c6568f1185fb6c4b85282ad3281a5a024761bf27e525de1ec54255d15ca98e19532e7b5403930273911a5c8c961aa0c1e9148d6c2810784fa6bd8a97c0021a7 - languageName: node - linkType: hard - -"archiver@npm:^5.0.0": - version: 5.3.2 - resolution: "archiver@npm:5.3.2" - dependencies: - archiver-utils: ^2.1.0 - async: ^3.2.4 - buffer-crc32: ^0.2.1 - readable-stream: ^3.6.0 - readdir-glob: ^1.1.2 - tar-stream: ^2.2.0 - zip-stream: ^4.1.0 - checksum: 7d3b9b9b51cf54d88c89fbca9b0847c120bfcf9776c7025c52dd0b62f6603dc63dc0f3f1a09582f936f67e3906b46d58954cc762a255be45e8d3e14e3cb0b0b1 - languageName: node - linkType: hard - "arg@npm:^4.1.0": version: 4.1.3 resolution: "arg@npm:4.1.3" @@ -8786,7 +8699,7 @@ __metadata: languageName: node linkType: hard -"async@npm:^3.2.3, async@npm:^3.2.4": +"async@npm:^3.2.3": version: 3.2.5 resolution: "async@npm:3.2.5" checksum: 5ec77f1312301dee02d62140a6b1f7ee0edd2a0f983b6fd2b0849b969f245225b990b47b8243e7b9ad16451a53e7f68e753700385b706198ced888beedba3af4 @@ -9206,7 +9119,7 @@ __metadata: languageName: node linkType: hard -"big-integer@npm:^1.6.17, big-integer@npm:^1.6.44": +"big-integer@npm:^1.6.44": version: 1.6.52 resolution: "big-integer@npm:1.6.52" checksum: 6e86885787a20fed96521958ae9086960e4e4b5e74d04f3ef7513d4d0ad631a9f3bde2730fc8aaa4b00419fc865f6ec573e5320234531ef37505da7da192c40b @@ -9234,16 +9147,6 @@ __metadata: languageName: node linkType: hard -"binary@npm:~0.3.0": - version: 0.3.0 - resolution: "binary@npm:0.3.0" - dependencies: - buffers: ~0.1.1 - chainsaw: ~0.1.0 - checksum: b4699fda9e2c2981e74a46b0115cf0d472eda9b68c0e9d229ef494e92f29ce81acf0a834415094cffcc340dfee7c4ef8ce5d048c65c18067a7ed850323f777af - languageName: node - linkType: hard - "bit-twiddle@npm:^1.0.0, bit-twiddle@npm:^1.0.2": version: 1.0.2 resolution: "bit-twiddle@npm:1.0.2" @@ -9279,13 +9182,6 @@ __metadata: languageName: node linkType: hard -"bluebird@npm:~3.4.1": - version: 3.4.7 - resolution: "bluebird@npm:3.4.7" - checksum: bffa9dee7d3a41ab15c4f3f24687b49959b4e64e55c058a062176feb8ccefc2163414fb4e1a0f3053bf187600936509660c3ebd168fd9f0e48c7eba23b019466 - languageName: node - linkType: hard - "bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9": version: 4.12.0 resolution: "bn.js@npm:4.12.0" @@ -9520,7 +9416,7 @@ __metadata: languageName: node linkType: hard -"buffer-crc32@npm:^0.2.1, buffer-crc32@npm:^0.2.13, buffer-crc32@npm:~0.2.3": +"buffer-crc32@npm:~0.2.3": version: 0.2.13 resolution: "buffer-crc32@npm:0.2.13" checksum: 06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c @@ -9534,13 +9430,6 @@ __metadata: languageName: node linkType: hard -"buffer-indexof-polyfill@npm:~1.0.0": - version: 1.0.2 - resolution: "buffer-indexof-polyfill@npm:1.0.2" - checksum: fbfb2d69c6bb2df235683126f9dc140150c08ac3630da149913a9971947b667df816a913b6993bc48f4d611999cb99a1589914d34c02dccd2234afda5cb75bbc - languageName: node - linkType: hard - "buffer-xor@npm:^1.0.3": version: 1.0.3 resolution: "buffer-xor@npm:1.0.3" @@ -9568,13 +9457,6 @@ __metadata: languageName: node linkType: hard -"buffers@npm:~0.1.1": - version: 0.1.1 - resolution: "buffers@npm:0.1.1" - checksum: ad6f8e483efab39cefd92bdc04edbff6805e4211b002f4d1cfb70c6c472a61cc89fb18c37bcdfdd4ee416ca096e9ff606286698a7d41a18b539bac12fd76d4d5 - languageName: node - linkType: hard - "builtin-status-codes@npm:^3.0.0": version: 3.0.0 resolution: "builtin-status-codes@npm:3.0.0" @@ -9775,15 +9657,6 @@ __metadata: languageName: node linkType: hard -"chainsaw@npm:~0.1.0": - version: 0.1.0 - resolution: "chainsaw@npm:0.1.0" - dependencies: - traverse: ">=0.3.0 <0.4" - checksum: 22a96b9fb0cd9fb20813607c0869e61817d1acc81b5d455cc6456b5e460ea1dd52630e0f76b291cf8294bfb6c1fc42e299afb52104af9096242699d6d3aa6d3e - languageName: node - linkType: hard - "chalk@npm:3.0.0, chalk@npm:^3.0.0": version: 3.0.0 resolution: "chalk@npm:3.0.0" @@ -10486,18 +10359,6 @@ __metadata: languageName: node linkType: hard -"compress-commons@npm:^4.1.2": - version: 4.1.2 - resolution: "compress-commons@npm:4.1.2" - dependencies: - buffer-crc32: ^0.2.13 - crc32-stream: ^4.0.2 - normalize-path: ^3.0.0 - readable-stream: ^3.6.0 - checksum: b50c4b5d6b8917ea164eef81d414b1824f27e02427f9266926c80aad55f9e15f81f74c274770773c2b732c22d1081b81dedce4f133271a466151f7f36b8e9dc9 - languageName: node - linkType: hard - "compressible@npm:~2.0.16": version: 2.0.18 resolution: "compressible@npm:2.0.18" @@ -10751,25 +10612,6 @@ __metadata: languageName: node linkType: hard -"crc-32@npm:^1.2.0": - version: 1.2.2 - resolution: "crc-32@npm:1.2.2" - bin: - crc32: bin/crc32.njs - checksum: ad2d0ad0cbd465b75dcaeeff0600f8195b686816ab5f3ba4c6e052a07f728c3e70df2e3ca9fd3d4484dc4ba70586e161ca5a2334ec8bf5a41bf022a6103ff243 - languageName: node - linkType: hard - -"crc32-stream@npm:^4.0.2": - version: 4.0.3 - resolution: "crc32-stream@npm:4.0.3" - dependencies: - crc-32: ^1.2.0 - readable-stream: ^3.4.0 - checksum: d44d0ec6f04d8a1bed899ac3e4fbb82111ed567ea6d506be39147362af45c747887fce1032f4beca1646b4824e5a9614cd3332bfa94bbc5577ca5445e7f75ddd - languageName: node - linkType: hard - "create-ecdh@npm:^4.0.0": version: 4.0.4 resolution: "create-ecdh@npm:4.0.4" @@ -11279,7 +11121,7 @@ __metadata: languageName: node linkType: hard -"dayjs@npm:^1.11.1, dayjs@npm:^1.8.34": +"dayjs@npm:^1.11.1": version: 1.11.10 resolution: "dayjs@npm:1.11.10" checksum: a6b5a3813b8884f5cd557e2e6b7fa569f4c5d0c97aca9558e38534af4f2d60daafd3ff8c2000fed3435cfcec9e805bcebd99f90130c6d1c5ef524084ced588c4 @@ -11848,15 +11690,6 @@ __metadata: languageName: node linkType: hard -"duplexer2@npm:~0.1.4": - version: 0.1.4 - resolution: "duplexer2@npm:0.1.4" - dependencies: - readable-stream: ^2.0.2 - checksum: 744961f03c7f54313f90555ac20284a3fb7bf22fdff6538f041a86c22499560eb6eac9d30ab5768054137cb40e6b18b40f621094e0261d7d8c35a37b7a5ad241 - languageName: node - linkType: hard - "duplexer@npm:^0.1.2": version: 0.1.2 resolution: "duplexer@npm:0.1.2" @@ -12793,23 +12626,6 @@ __metadata: languageName: node linkType: hard -"exceljs@npm:^4.3.0": - version: 4.4.0 - resolution: "exceljs@npm:4.4.0" - dependencies: - archiver: ^5.0.0 - dayjs: ^1.8.34 - fast-csv: ^4.3.1 - jszip: ^3.10.1 - readable-stream: ^3.6.0 - saxes: ^5.0.1 - tmp: ^0.2.0 - unzipper: ^0.10.11 - uuid: ^8.3.0 - checksum: e2ab1b4667988c213edf47ab67fc83be64dc4de5b1de64b41c9d564ae00eb7ee774fd00a907520a93757dd90fd6b601583f18ded28dd7d833001e0ed188792b7 - languageName: node - linkType: hard - "execa@npm:7.2.0": version: 7.2.0 resolution: "execa@npm:7.2.0" @@ -13047,16 +12863,6 @@ __metadata: languageName: node linkType: hard -"fast-csv@npm:^4.3.1": - version: 4.3.6 - resolution: "fast-csv@npm:4.3.6" - dependencies: - "@fast-csv/format": 4.3.5 - "@fast-csv/parse": 4.3.6 - checksum: 77ae68c08b368a19f2b6e933160d0c5d4934513ef903577c44c84ea08befe1a6638a9480238dfcd55f14c7ddcafdb772c9408dd9d145eca62a147c503ff493a9 - languageName: node - linkType: hard - "fast-decode-uri-component@npm:^1.0.1": version: 1.0.1 resolution: "fast-decode-uri-component@npm:1.0.1" @@ -13260,13 +13066,6 @@ __metadata: languageName: node linkType: hard -"file-saver@npm:^2.0.5": - version: 2.0.5 - resolution: "file-saver@npm:2.0.5" - checksum: c62d96e5cebc58b4bdf3ae8a60d5cf9607ad82f75f798c33a4ee63435ac2203002584d5256a2a780eda7feb5e19dc3b6351c2212e58b3f529e63d265a7cc79f7 - languageName: node - linkType: hard - "file-system-cache@npm:2.3.0": version: 2.3.0 resolution: "file-system-cache@npm:2.3.0" @@ -13698,18 +13497,6 @@ __metadata: languageName: node linkType: hard -"fstream@npm:^1.0.12": - version: 1.0.12 - resolution: "fstream@npm:1.0.12" - dependencies: - graceful-fs: ^4.1.2 - inherits: ~2.0.0 - mkdirp: ">=0.5 0" - rimraf: 2 - checksum: e6998651aeb85fd0f0a8a68cec4d05a3ada685ecc4e3f56e0d063d0564a4fc39ad11a856f9020f926daf869fc67f7a90e891def5d48e4cadab875dc313094536 - languageName: node - linkType: hard - "function-bind@npm:^1.1.1, function-bind@npm:^1.1.2": version: 1.1.2 resolution: "function-bind@npm:1.1.2" @@ -14054,7 +13841,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.3": +"glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -14320,7 +14107,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -15085,7 +14872,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.0, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 @@ -16817,18 +16604,6 @@ __metadata: languageName: node linkType: hard -"jszip@npm:^3.10.1": - version: 3.10.1 - resolution: "jszip@npm:3.10.1" - dependencies: - lie: ~3.3.0 - pako: ~1.0.2 - readable-stream: ~2.3.6 - setimmediate: ^1.0.5 - checksum: abc77bfbe33e691d4d1ac9c74c8851b5761fba6a6986630864f98d876f3fcc2d36817dfc183779f32c00157b5d53a016796677298272a714ae096dfe6b1c8b60 - languageName: node - linkType: hard - "kausal-watch-ui@workspace:.": version: 0.0.0-use.local resolution: "kausal-watch-ui@workspace:." @@ -16891,9 +16666,7 @@ __metadata: eslint: 8.56.0 eslint-config-next: 14.0.4 eslint-plugin-storybook: ^0.8.0 - exceljs: ^4.3.0 express-robots-txt: ^1.0.0 - file-saver: ^2.0.5 fontfaceobserver: ^2.1.0 framer-motion: ^11.0.24 html-react-parser: ^1.4.12 @@ -17019,15 +16792,6 @@ __metadata: languageName: node linkType: hard -"lazystream@npm:^1.0.0": - version: 1.0.1 - resolution: "lazystream@npm:1.0.1" - dependencies: - readable-stream: ^2.0.5 - checksum: 822c54c6b87701a6491c70d4fabc4cafcf0f87d6b656af168ee7bb3c45de9128a801cb612e6eeeefc64d298a7524a698dd49b13b0121ae50c2ae305f0dcc5310 - languageName: node - linkType: hard - "leven@npm:^3.1.0": version: 3.1.0 resolution: "leven@npm:3.1.0" @@ -17054,15 +16818,6 @@ __metadata: languageName: node linkType: hard -"lie@npm:~3.3.0": - version: 3.3.0 - resolution: "lie@npm:3.3.0" - dependencies: - immediate: ~3.0.5 - checksum: 33102302cf19766f97919a6a98d481e01393288b17a6aa1f030a3542031df42736edde8dab29ffdbf90bebeffc48c761eb1d064dc77592ca3ba3556f9fe6d2a8 - languageName: node - linkType: hard - "lilconfig@npm:2.1.0": version: 2.1.0 resolution: "lilconfig@npm:2.1.0" @@ -17097,13 +16852,6 @@ __metadata: languageName: node linkType: hard -"listenercount@npm:~1.0.1": - version: 1.0.1 - resolution: "listenercount@npm:1.0.1" - checksum: 0f1c9077cdaf2ebc16473c7d72eb7de6d983898ca42500f03da63c3914b6b312dd5f7a90d2657691ea25adf3fe0ac5a43226e8b2c673fd73415ed038041f4757 - languageName: node - linkType: hard - "listr-silent-renderer@npm:^1.1.1": version: 1.1.1 resolution: "listr-silent-renderer@npm:1.1.1" @@ -17296,34 +17044,6 @@ __metadata: languageName: node linkType: hard -"lodash.defaults@npm:^4.2.0": - version: 4.2.0 - resolution: "lodash.defaults@npm:4.2.0" - checksum: 84923258235592c8886e29de5491946ff8c2ae5c82a7ac5cddd2e3cb697e6fbdfbbb6efcca015795c86eec2bb953a5a2ee4016e3735a3f02720428a40efbb8f1 - languageName: node - linkType: hard - -"lodash.difference@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.difference@npm:4.5.0" - checksum: ecee276aa578f300e79350805a14a51be8d1f12b3c1389a19996d8ab516f814211a5f65c68331571ecdad96522b863ccc484b55504ce8c9947212a29f8857d5a - languageName: node - linkType: hard - -"lodash.escaperegexp@npm:^4.1.2": - version: 4.1.2 - resolution: "lodash.escaperegexp@npm:4.1.2" - checksum: 6d99452b1cfd6073175a9b741a9b09ece159eac463f86f02ea3bee2e2092923fce812c8d2bf446309cc52d1d61bf9af51c8118b0d7421388e6cead7bd3798f0f - languageName: node - linkType: hard - -"lodash.flatten@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.flatten@npm:4.4.0" - checksum: 0ac34a393d4b795d4b7421153d27c13ae67e08786c9cbb60ff5b732210d46f833598eee3fb3844bb10070e8488efe390ea53bb567377e0cb47e9e630bf0811cb - languageName: node - linkType: hard - "lodash.get@npm:^4": version: 4.4.2 resolution: "lodash.get@npm:4.4.2" @@ -17331,13 +17051,6 @@ __metadata: languageName: node linkType: hard -"lodash.groupby@npm:^4.6.0": - version: 4.6.0 - resolution: "lodash.groupby@npm:4.6.0" - checksum: e2d4d13d12790a1cacab3f5f120b7c072a792224e83b2f403218866d18efde76024b2579996dfebb230a61ce06469332e16639103669a35a605287e19ced6b9b - languageName: node - linkType: hard - "lodash.identity@npm:3.0.0": version: 3.0.0 resolution: "lodash.identity@npm:3.0.0" @@ -17345,34 +17058,6 @@ __metadata: languageName: node linkType: hard -"lodash.isboolean@npm:^3.0.3": - version: 3.0.3 - resolution: "lodash.isboolean@npm:3.0.3" - checksum: b70068b4a8b8837912b54052557b21fc4774174e3512ed3c5b94621e5aff5eb6c68089d0a386b7e801d679cd105d2e35417978a5e99071750aa2ed90bffd0250 - languageName: node - linkType: hard - -"lodash.isequal@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.isequal@npm:4.5.0" - checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644 - languageName: node - linkType: hard - -"lodash.isfunction@npm:^3.0.9": - version: 3.0.9 - resolution: "lodash.isfunction@npm:3.0.9" - checksum: 99e54c34b1e8a9ba75c034deb39cedbd2aca7af685815e67a2a8ec4f73ec9748cda6ebee5a07d7de4b938e90d421fd280e9c385cc190f903ac217ac8aff30314 - languageName: node - linkType: hard - -"lodash.isnil@npm:^4.0.0": - version: 4.0.0 - resolution: "lodash.isnil@npm:4.0.0" - checksum: ebf8df69879badd6ad99c4f64c54c470248df5cf92b208ca730861b1d8ac058da7b632ac811d18b0929d93cbac8d8fc866e781ee816b0142c56952e85edc682f - languageName: node - linkType: hard - "lodash.isplainobject@npm:^4.0.6": version: 4.0.6 resolution: "lodash.isplainobject@npm:4.0.6" @@ -17380,13 +17065,6 @@ __metadata: languageName: node linkType: hard -"lodash.isundefined@npm:^3.0.1": - version: 3.0.1 - resolution: "lodash.isundefined@npm:3.0.1" - checksum: 52b4d99a47bd41daa4e2860200258f56b1f2c99263c11a5f607fbbd91d6447fe674bdafc172735d099908a09136d4a0f98cf79715e38ca4b490fdda7162be289 - languageName: node - linkType: hard - "lodash.merge@npm:^4.6.1, lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" @@ -17415,20 +17093,6 @@ __metadata: languageName: node linkType: hard -"lodash.union@npm:^4.6.0": - version: 4.6.0 - resolution: "lodash.union@npm:4.6.0" - checksum: 1514dc6508b2614ec071a6470f36eb7a70f69bf1abb6d55bdfdc21069635a4517783654b28504c0f025059a7598d37529766888e6d5902b8ab28b712228f7b2a - languageName: node - linkType: hard - -"lodash.uniq@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.uniq@npm:4.5.0" - checksum: a4779b57a8d0f3c441af13d9afe7ecff22dd1b8ce1129849f71d9bbc8e8ee4e46dfb4b7c28f7ad3d67481edd6e51126e4e2a6ee276e25906d10f7140187c392d - languageName: node - linkType: hard - "lodash.xorby@npm:^4.7.0": version: 4.7.0 resolution: "lodash.xorby@npm:4.7.0" @@ -17995,7 +17659,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.0, minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": +"minimatch@npm:^5.0.0, minimatch@npm:^5.0.1": version: 5.1.6 resolution: "minimatch@npm:5.1.6" dependencies: @@ -18120,7 +17784,7 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:>=0.5 0, mkdirp@npm:^0.5.4": +"mkdirp@npm:^0.5.4": version: 0.5.6 resolution: "mkdirp@npm:0.5.6" dependencies: @@ -19068,7 +18732,7 @@ __metadata: languageName: node linkType: hard -"pako@npm:~1.0.2, pako@npm:~1.0.5": +"pako@npm:~1.0.5": version: 1.0.11 resolution: "pako@npm:1.0.11" checksum: 1be2bfa1f807608c7538afa15d6f25baa523c30ec870a3228a89579e474a4d992f4293859524e46d5d87fd30fa17c5edf34dbef0671251d9749820b488660b16 @@ -20652,7 +20316,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.5, readable-stream@npm:~2.3.6": +"readable-stream@npm:^2.0.0, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.5, readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -20691,15 +20355,6 @@ __metadata: languageName: node linkType: hard -"readdir-glob@npm:^1.1.2": - version: 1.1.3 - resolution: "readdir-glob@npm:1.1.3" - dependencies: - minimatch: ^5.1.0 - checksum: 1dc0f7440ff5d9378b593abe9d42f34ebaf387516615e98ab410cf3a68f840abbf9ff1032d15e0a0dbffa78f9e2c46d4fafdbaac1ca435af2efe3264e3f21874 - languageName: node - linkType: hard - "readdirp@npm:~3.6.0": version: 3.6.0 resolution: "readdirp@npm:3.6.0" @@ -21275,7 +20930,7 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:2, rimraf@npm:^2.6.1": +"rimraf@npm:^2.6.1": version: 2.7.1 resolution: "rimraf@npm:2.7.1" dependencies: @@ -21692,7 +21347,7 @@ __metadata: languageName: node linkType: hard -"setimmediate@npm:^1.0.4, setimmediate@npm:^1.0.5, setimmediate@npm:~1.0.4": +"setimmediate@npm:^1.0.4, setimmediate@npm:^1.0.5": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" checksum: c9a6f2c5b51a2dabdc0247db9c46460152ffc62ee139f3157440bd48e7c59425093f42719ac1d7931f054f153e2d26cf37dfeb8da17a794a58198a2705e527fd @@ -22839,7 +22494,7 @@ __metadata: languageName: node linkType: hard -"tar-stream@npm:^2.1.4, tar-stream@npm:^2.2.0": +"tar-stream@npm:^2.1.4": version: 2.2.0 resolution: "tar-stream@npm:2.2.0" dependencies: @@ -23075,15 +22730,6 @@ __metadata: languageName: node linkType: hard -"tmp@npm:^0.2.0": - version: 0.2.1 - resolution: "tmp@npm:0.2.1" - dependencies: - rimraf: ^3.0.0 - checksum: 8b1214654182575124498c87ca986ac53dc76ff36e8f0e0b67139a8d221eaecfdec108c0e6ec54d76f49f1f72ab9325500b246f562b926f85bcdfca8bf35df9e - languageName: node - linkType: hard - "tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" @@ -23201,13 +22847,6 @@ __metadata: languageName: node linkType: hard -"traverse@npm:>=0.3.0 <0.4": - version: 0.3.9 - resolution: "traverse@npm:0.3.9" - checksum: 982982e4e249e9bbf063732a41fe5595939892758524bbef5d547c67cdf371b13af72b5434c6a61d88d4bb4351d6dabc6e22d832e0d16bc1bc684ef97a1cc59e - languageName: node - linkType: hard - "ts-api-utils@npm:^1.0.1": version: 1.0.3 resolution: "ts-api-utils@npm:1.0.3" @@ -23817,24 +23456,6 @@ __metadata: languageName: node linkType: hard -"unzipper@npm:^0.10.11": - version: 0.10.14 - resolution: "unzipper@npm:0.10.14" - dependencies: - big-integer: ^1.6.17 - binary: ~0.3.0 - bluebird: ~3.4.1 - buffer-indexof-polyfill: ~1.0.0 - duplexer2: ~0.1.4 - fstream: ^1.0.12 - graceful-fs: ^4.2.2 - listenercount: ~1.0.1 - readable-stream: ~2.3.6 - setimmediate: ~1.0.4 - checksum: b46ae9a72e4b4c224be6a8f46447dd7cb3761a59450827e869747c4564a8f555f877fc19c7e3b5d146127a7dd3e2ffea186116682f6646e64479f99dd23565bc - languageName: node - linkType: hard - "update-browserslist-db@npm:^1.0.13": version: 1.0.13 resolution: "update-browserslist-db@npm:1.0.13" @@ -24041,15 +23662,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^8.3.0": - version: 8.3.2 - resolution: "uuid@npm:8.3.2" - bin: - uuid: dist/bin/uuid - checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df - languageName: node - linkType: hard - "uuid@npm:^9.0.0": version: 9.0.1 resolution: "uuid@npm:9.0.1" @@ -24878,14 +24490,3 @@ __metadata: checksum: b7289084bc1fc74a559b7259faa23d3214b14b538a8843d2b001a35e27147833f4107590b1b44bf5bc7f6dfe6f488660d3a3725f268e09b3925b3476153b7821 languageName: node linkType: hard - -"zip-stream@npm:^4.1.0": - version: 4.1.1 - resolution: "zip-stream@npm:4.1.1" - dependencies: - archiver-utils: ^3.0.4 - compress-commons: ^4.1.2 - readable-stream: ^3.6.0 - checksum: 33bd5ee7017656c2ad728b5d4ba510e15bd65ce1ec180c5bbdc7a5f063256353ec482e6a2bc74de7515219d8494147924b9aae16e63fdaaf37cdf7d1ee8df125 - languageName: node - linkType: hard