From 8417092e3bf1a05e45a0cc36bcf228b820636c2f Mon Sep 17 00:00:00 2001 From: Joshua Bates Date: Tue, 19 Mar 2024 11:36:54 +0000 Subject: [PATCH] allow support for module directives in build process. Added use client directives to client components --- ...tsconfig.json => bundle-base.tsconfig.json | 6 +- package.json | 10 +- rollup.config.mjs | 52 +++- .../do-and-dont-list/DoAndDontList.tsx | 1 + .../table/components/TableCell.tsx | 7 +- .../table/components/TableRow.tsx | 1 + .../checkboxes/components/Box.tsx | 6 +- .../components/IndividualDateInputs.tsx | 4 +- .../form-elements/form/FormContext.ts | 1 + .../form-elements/radios/components/Radio.tsx | 5 +- .../card/components/CardContent.tsx | 1 + .../card/components/CardHeading.tsx | 1 + src/components/navigation/header/Header.tsx | 1 + .../navigation/header/components/Content.tsx | 1 + .../navigation/header/components/NHSLogo.tsx | 1 + .../header/components/NavDropdownMenu.tsx | 1 + .../header/components/OrganisationalLogo.tsx | 6 +- src/patterns/care-card/CareCard.tsx | 5 +- src/util/FormGroup.tsx | 1 + src/util/hooks/UseDevWarning.tsx | 1 + tsconfig.json | 1 - yarn.lock | 243 +++++++++--------- 22 files changed, 195 insertions(+), 161 deletions(-) rename build.tsconfig.json => bundle-base.tsconfig.json (84%) diff --git a/build.tsconfig.json b/bundle-base.tsconfig.json similarity index 84% rename from build.tsconfig.json rename to bundle-base.tsconfig.json index 10ef6b41..ac896e56 100644 --- a/build.tsconfig.json +++ b/bundle-base.tsconfig.json @@ -4,9 +4,6 @@ "target": "es6", "module": "esnext", "moduleResolution": "node", - "declaration": true, - "declarationDir": "types", - "emitDeclarationOnly": true, "baseUrl": "./", "types": ["jest", "node"], "sourceMap": true, @@ -17,7 +14,6 @@ "strict": true, "strictNullChecks": true, "resolveJsonModule": true, - "allowJs": true, "paths": { "@components/*": ["src/components/*"], "@content-presentation/*": ["src/components/content-presentation/*"], @@ -29,5 +25,5 @@ } }, "include": ["src"], - "exclude": ["node_modules", "build"] + "exclude": ["node_modules", "**/__tests__", "src/setupTests.ts"] } diff --git a/package.json b/package.json index c88d7386..f370d996 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,8 @@ "lib" ], "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", - "types": "dist/cjs/index.d.ts", + "module": "dist/esm", + "types": "dist/index.d.ts", "scripts": { "cleanup": "rm -rf dist/ > /dev/null && rm -rf lib/ > /dev/null", "storybook": "storybook dev -p 6006", @@ -26,10 +26,8 @@ }, "license": "MIT", "devDependencies": { - "@babel/cli": "^7.13.16", - "@babel/core": "^7.19.6", + "@babel/core": "^7.24.1", "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/preset-react": "^7.18.6", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-terser": "^0.4.4", @@ -45,6 +43,7 @@ "@storybook/theming": "^7.0.2", "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.2.1", + "@types/babel__core": "^7", "@types/jest": "^29.5.12", "@types/jest-axe": "^3.5.9", "@types/node": "^15.0.2", @@ -73,6 +72,7 @@ "rollup": "^4.13.0", "rollup-plugin-dts": "^6.1.0", "rollup-plugin-peer-deps-external": "^2.2.4", + "rollup-plugin-preserve-directives": "^0.4.0", "sass": "^1.53.0", "storybook": "^7.6.17", "ts-jest": "^29.1.2", diff --git a/rollup.config.mjs b/rollup.config.mjs index 84df155f..faae9af1 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -4,10 +4,24 @@ import typescript from '@rollup/plugin-typescript'; import terser from '@rollup/plugin-terser'; import external from 'rollup-plugin-peer-deps-external'; import dts from 'rollup-plugin-dts'; +import preserveDirectives from 'rollup-plugin-preserve-directives'; import packageJson from './package.json' assert { type: 'json' }; +// suppresses warnings printed to console as part of bundling components with directives present. +const onWarnSuppression = { + onwarn(warning, warn) { + if (warning.code === 'MODULE_LEVEL_DIRECTIVE' && warning.message.includes(`"use client"`)) { + return; + } + warn(warning); + }, +}; + +const commonPlugins = [external(), resolve(), commonjs()]; + export default [ + // cjs export { input: 'src/index.ts', output: [ @@ -15,25 +29,47 @@ export default [ file: packageJson.main, format: 'cjs', sourcemap: true, - name: 'react-ts-lib', }, + ], + plugins: [ + ...commonPlugins, + typescript({ + tsconfig: 'bundle-base.tsconfig.json', + compilerOptions: { + declaration: false, + }, + }), + terser(), + ], + ...onWarnSuppression, + }, + // esm export + { + input: 'src/index.ts', + output: [ { - file: packageJson.module, + dir: packageJson.module, format: 'esm', sourcemap: true, + preserveModules: true, }, ], plugins: [ - external(), - resolve(), - commonjs(), + ...commonPlugins, typescript({ - tsconfig: './build.tsconfig.json', - exclude: ['**/__tests__', '**/*.test.tsx', 'src/setupTests.ts'], + tsconfig: 'bundle-base.tsconfig.json', + compilerOptions: { + declaration: true, + declarationDir: 'dist/esm/types', + emitDeclarationOnly: true, + }, }), - terser(), + preserveDirectives(), + terser({ compress: { directives: false } }), ], + ...onWarnSuppression, }, + // type bundling { input: 'dist/esm/types/index.d.ts', output: [{ file: 'dist/index.d.ts', format: 'esm' }], diff --git a/src/components/content-presentation/do-and-dont-list/DoAndDontList.tsx b/src/components/content-presentation/do-and-dont-list/DoAndDontList.tsx index 5d19202a..e62753a2 100644 --- a/src/components/content-presentation/do-and-dont-list/DoAndDontList.tsx +++ b/src/components/content-presentation/do-and-dont-list/DoAndDontList.tsx @@ -1,3 +1,4 @@ +'use client'; import React, { HTMLProps, createContext, useContext, ReactNode } from 'react'; import classNames from 'classnames'; import { Tick, Cross } from '../../icons'; diff --git a/src/components/content-presentation/table/components/TableCell.tsx b/src/components/content-presentation/table/components/TableCell.tsx index 6988d5ac..fb3367b8 100644 --- a/src/components/content-presentation/table/components/TableCell.tsx +++ b/src/components/content-presentation/table/components/TableCell.tsx @@ -1,3 +1,4 @@ +'use client'; import classNames from 'classnames'; import React, { HTMLProps, useContext } from 'react'; import useDevWarning from '../../../../util/hooks/UseDevWarning'; @@ -38,11 +39,7 @@ const TableCell: React.FC = ({ case TableSection.NONE: default: return ( - + {_responsive && ( {_responsiveHeading} )} diff --git a/src/components/content-presentation/table/components/TableRow.tsx b/src/components/content-presentation/table/components/TableRow.tsx index 3a2039e3..e7468304 100644 --- a/src/components/content-presentation/table/components/TableRow.tsx +++ b/src/components/content-presentation/table/components/TableRow.tsx @@ -1,3 +1,4 @@ +'use client'; import classNames from 'classnames'; import React, { HTMLProps, useContext, useEffect } from 'react'; import TableContext from '../TableContext'; diff --git a/src/components/form-elements/checkboxes/components/Box.tsx b/src/components/form-elements/checkboxes/components/Box.tsx index b15a475a..8e38f8b3 100644 --- a/src/components/form-elements/checkboxes/components/Box.tsx +++ b/src/components/form-elements/checkboxes/components/Box.tsx @@ -1,3 +1,4 @@ +'use client'; import React, { HTMLProps, useContext, @@ -90,7 +91,10 @@ const Box: React.FC = ({ ) : null} {hint ? ( - + {hint} ) : null} diff --git a/src/components/form-elements/date-input/components/IndividualDateInputs.tsx b/src/components/form-elements/date-input/components/IndividualDateInputs.tsx index aa816f79..a8dfe4cc 100644 --- a/src/components/form-elements/date-input/components/IndividualDateInputs.tsx +++ b/src/components/form-elements/date-input/components/IndividualDateInputs.tsx @@ -1,3 +1,4 @@ +'use client'; import React, { HTMLProps, useContext, ChangeEvent } from 'react'; import classNames from 'classnames'; import Label, { LabelProps } from '../../label/Label'; @@ -48,7 +49,8 @@ const IndividualDateInput: React.FC = ({ const inputID = id || `${ctxId}-${inputType}`; const inputName = name || `${ctxName}-${inputType}`; const inputValue = value !== undefined ? value : ctxValue?.[inputType]; - const inputDefaultValue = defaultValue !== undefined ? defaultValue : ctxDefaultValue?.[inputType]; + const inputDefaultValue = + defaultValue !== undefined ? defaultValue : ctxDefaultValue?.[inputType]; const handleChange = (e: ChangeEvent) => { e.persist(); diff --git a/src/components/form-elements/form/FormContext.ts b/src/components/form-elements/form/FormContext.ts index 68b12f70..cd6e50a6 100644 --- a/src/components/form-elements/form/FormContext.ts +++ b/src/components/form-elements/form/FormContext.ts @@ -1,3 +1,4 @@ +'use client'; import { createContext, useContext } from 'react'; export interface IFormContext { diff --git a/src/components/form-elements/radios/components/Radio.tsx b/src/components/form-elements/radios/components/Radio.tsx index 077414aa..ae937e91 100644 --- a/src/components/form-elements/radios/components/Radio.tsx +++ b/src/components/form-elements/radios/components/Radio.tsx @@ -1,6 +1,5 @@ -import React, { - HTMLProps, useContext, ReactNode, useEffect, useState, -} from 'react'; +'use client'; +import React, { HTMLProps, useContext, ReactNode, useEffect, useState } from 'react'; import classNames from 'classnames'; import { RadiosContext, IRadiosContext } from '../RadioContext'; import HintText, { HintTextProps } from '../../hint-text/HintText'; diff --git a/src/components/navigation/card/components/CardContent.tsx b/src/components/navigation/card/components/CardContent.tsx index 04de1460..a9a70b99 100644 --- a/src/components/navigation/card/components/CardContent.tsx +++ b/src/components/navigation/card/components/CardContent.tsx @@ -1,3 +1,4 @@ +'use client'; import React, { HTMLProps, useContext } from 'react'; import classNames from 'classnames'; import CardContext from '../CardContext'; diff --git a/src/components/navigation/card/components/CardHeading.tsx b/src/components/navigation/card/components/CardHeading.tsx index b18d7488..5ffca1ce 100644 --- a/src/components/navigation/card/components/CardHeading.tsx +++ b/src/components/navigation/card/components/CardHeading.tsx @@ -1,3 +1,4 @@ +'use client'; import React, { HTMLProps, useContext } from 'react'; import classNames from 'classnames'; import HeadingLevel, { HeadingLevelType } from '../../../../util/HeadingLevel'; diff --git a/src/components/navigation/header/Header.tsx b/src/components/navigation/header/Header.tsx index 209df151..c9b789ad 100644 --- a/src/components/navigation/header/Header.tsx +++ b/src/components/navigation/header/Header.tsx @@ -1,3 +1,4 @@ +'use client'; import React, { PureComponent, HTMLProps, useContext } from 'react'; import classNames from 'classnames'; import NHSLogo, { NHSLogoNavProps } from './components/NHSLogo'; diff --git a/src/components/navigation/header/components/Content.tsx b/src/components/navigation/header/components/Content.tsx index fb2a3829..fe78d13f 100644 --- a/src/components/navigation/header/components/Content.tsx +++ b/src/components/navigation/header/components/Content.tsx @@ -1,3 +1,4 @@ +'use client'; import React, { HTMLProps, useContext } from 'react'; import classNames from 'classnames'; import HeaderContext, { IHeaderContext } from '../HeaderContext'; diff --git a/src/components/navigation/header/components/NHSLogo.tsx b/src/components/navigation/header/components/NHSLogo.tsx index fa74f388..8a5d4bbb 100644 --- a/src/components/navigation/header/components/NHSLogo.tsx +++ b/src/components/navigation/header/components/NHSLogo.tsx @@ -1,3 +1,4 @@ +'use client'; import React, { useContext, SVGProps } from 'react'; import classNames from 'classnames'; import HeaderContext, { IHeaderContext } from '../HeaderContext'; diff --git a/src/components/navigation/header/components/NavDropdownMenu.tsx b/src/components/navigation/header/components/NavDropdownMenu.tsx index 4b2e062d..f0e47c04 100644 --- a/src/components/navigation/header/components/NavDropdownMenu.tsx +++ b/src/components/navigation/header/components/NavDropdownMenu.tsx @@ -1,3 +1,4 @@ +'use client'; import React, { HTMLProps, useContext, useEffect, MouseEvent } from 'react'; import HeaderContext, { IHeaderContext } from '../HeaderContext'; import { ChevronDown as ChevronDownIcon } from '../../../icons'; diff --git a/src/components/navigation/header/components/OrganisationalLogo.tsx b/src/components/navigation/header/components/OrganisationalLogo.tsx index d4cc52af..eef40cc0 100644 --- a/src/components/navigation/header/components/OrganisationalLogo.tsx +++ b/src/components/navigation/header/components/OrganisationalLogo.tsx @@ -1,3 +1,4 @@ +'use client'; import React, { useContext } from 'react'; import HeaderContext, { IHeaderContext } from '../HeaderContext'; import type { AsElementLink } from '../../../../util/types/LinkTypes'; @@ -7,7 +8,10 @@ export interface OrganisationalLogoProps extends AsElementLink = ({ - logoUrl, alt, asElement: Component = 'a', ...rest + logoUrl, + alt, + asElement: Component = 'a', + ...rest }) => { const { orgName, orgSplit, orgDescriptor } = useContext(HeaderContext); return ( diff --git a/src/patterns/care-card/CareCard.tsx b/src/patterns/care-card/CareCard.tsx index 708a12f0..b45990e6 100644 --- a/src/patterns/care-card/CareCard.tsx +++ b/src/patterns/care-card/CareCard.tsx @@ -1,3 +1,4 @@ +'use client'; import React, { HTMLProps, createContext, useContext } from 'react'; import classNames from 'classnames'; import { CareCardType } from '../../util/types/NHSUKTypes'; @@ -66,9 +67,7 @@ interface CareCard extends React.FC { Heading: React.FC; } -const CareCard: CareCard = ({ - className, type, children, ...rest -}) => ( +const CareCard: CareCard = ({ className, type, children, ...rest }) => (
{children}
diff --git a/src/util/FormGroup.tsx b/src/util/FormGroup.tsx index 13fc20d0..8324147a 100644 --- a/src/util/FormGroup.tsx +++ b/src/util/FormGroup.tsx @@ -1,3 +1,4 @@ +'use client'; import React, { ReactNode, useState, useEffect, HTMLProps, useContext } from 'react'; import classNames from 'classnames'; import HintText from '../components/form-elements/hint-text/HintText'; diff --git a/src/util/hooks/UseDevWarning.tsx b/src/util/hooks/UseDevWarning.tsx index 1fa27939..58115234 100644 --- a/src/util/hooks/UseDevWarning.tsx +++ b/src/util/hooks/UseDevWarning.tsx @@ -1,3 +1,4 @@ +'use client'; import { useEffect } from 'react'; import isDev from '../IsDev'; diff --git a/tsconfig.json b/tsconfig.json index d70b04ce..eed6306c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,6 @@ "strict": true, "strictNullChecks": true, "resolveJsonModule": true, - "allowJs": true, "paths": { "@components/*": ["src/components/*"], "@content-presentation/*": ["src/components/content-presentation/*"], diff --git a/yarn.lock b/yarn.lock index 01a23175..cdc0b9bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -40,33 +40,6 @@ __metadata: languageName: node linkType: hard -"@babel/cli@npm:^7.13.16": - version: 7.23.9 - resolution: "@babel/cli@npm:7.23.9" - dependencies: - "@jridgewell/trace-mapping": "npm:^0.3.17" - "@nicolo-ribaudo/chokidar-2": "npm:2.1.8-no-fsevents.3" - chokidar: "npm:^3.4.0" - commander: "npm:^4.0.1" - convert-source-map: "npm:^2.0.0" - fs-readdir-recursive: "npm:^1.1.0" - glob: "npm:^7.2.0" - make-dir: "npm:^2.1.0" - slash: "npm:^2.0.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - dependenciesMeta: - "@nicolo-ribaudo/chokidar-2": - optional: true - chokidar: - optional: true - bin: - babel: ./bin/babel.js - babel-external-helpers: ./bin/babel-external-helpers.js - checksum: 10c0/0a5e9399e95ff0efea10db217e48682e025bd09d51aa96886e5c4d8c7b9d2115bc17d00704dc05e9ae7ab858c26467fec15e87a100cf995567c395f2941df4a0 - languageName: node - linkType: hard - "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5": version: 7.23.5 resolution: "@babel/code-frame@npm:7.23.5" @@ -77,6 +50,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/code-frame@npm:7.24.1" + dependencies: + "@babel/highlight": "npm:^7.24.1" + picocolors: "npm:^1.0.0" + checksum: 10c0/c92f4244538089c95f0322c5e8f6c2287529a576ae9ab254366a073c8720ecb537e7009d5d79a6a5698d3b658b298fc77691c05608cafbe4957cab03033ada15 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" @@ -84,7 +67,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.18.9, @babel/core@npm:^7.19.6, @babel/core@npm:^7.20.12, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.9": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.18.9, @babel/core@npm:^7.20.12, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.9": version: 7.24.0 resolution: "@babel/core@npm:7.24.0" dependencies: @@ -107,6 +90,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/core@npm:7.24.1" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.24.1" + "@babel/generator": "npm:^7.24.1" + "@babel/helper-compilation-targets": "npm:^7.23.6" + "@babel/helper-module-transforms": "npm:^7.23.3" + "@babel/helpers": "npm:^7.24.1" + "@babel/parser": "npm:^7.24.1" + "@babel/template": "npm:^7.24.0" + "@babel/traverse": "npm:^7.24.1" + "@babel/types": "npm:^7.24.0" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/b085b0bc65c225f20b9d5f7b05c8b127c005a73c355d4a7480f099de5d6757abafa7f60786eb95e6d098a6b5c34618e7b0950d60ef55139db04d8767d410e0a9 + languageName: node + linkType: hard + "@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.7.2": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" @@ -119,6 +125,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/generator@npm:7.24.1" + dependencies: + "@babel/types": "npm:^7.24.0" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^2.5.1" + checksum: 10c0/f0eea7497657cdf68cfb4b7d181588e1498eefd1f303d73b0d8ca9b21a6db27136a6f5beb8f988b6bdcd4249870826080950450fd310951de42ecf36df274881 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" @@ -383,6 +401,17 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/helpers@npm:7.24.1" + dependencies: + "@babel/template": "npm:^7.24.0" + "@babel/traverse": "npm:^7.24.1" + "@babel/types": "npm:^7.24.0" + checksum: 10c0/b3445860ae749fc664682b291f092285e949114e8336784ae29f88eb4c176279b01cc6740005a017a0389ae4b4e928d5bbbc01de7da7e400c972e3d6f792063a + languageName: node + linkType: hard + "@babel/highlight@npm:^7.23.4": version: 7.23.4 resolution: "@babel/highlight@npm:7.23.4" @@ -394,6 +423,18 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/highlight@npm:7.24.1" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.22.20" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10c0/39520f655101245efd44a6e5997e73e2b977f8e2011897022ec81fa5b0366dbfef5313bdebadbd08186f52b7e9c21b38ba265cc78caa0c6a8c894461e7a70430 + languageName: node + linkType: hard + "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.0": version: 7.24.0 resolution: "@babel/parser@npm:7.24.0" @@ -403,6 +444,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/parser@npm:7.24.1" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/d2a8b99aa5f33182b69d5569367403a40e7c027ae3b03a1f81fd8ac9b06ceb85b31f6ee4267fb90726dc2ac99909c6bdaa9cf16c379efab73d8dfe85cee32c50 + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" @@ -1157,28 +1207,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-display-name@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/3aed142af7bd1aed1df2bdad91ed33ba1cdd5c3c67ce6eafba821ff72f129162a197ffb55f1eb1775af276abd5545934489a8257fef6c6665ddf253a4f39a939 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-development@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" - dependencies: - "@babel/plugin-transform-react-jsx": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/4d2e9e68383238feb873f6111df972df4a2ebf6256d6f787a8772241867efa975b3980f7d75ab7d750e7eaad4bd454e8cc6e106301fd7572dd389e553f5f69d2 - languageName: node - linkType: hard - "@babel/plugin-transform-react-jsx-self@npm:^7.18.6": version: 7.23.3 resolution: "@babel/plugin-transform-react-jsx-self@npm:7.23.3" @@ -1201,33 +1229,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.22.15, @babel/plugin-transform-react-jsx@npm:^7.22.5": - version: 7.23.4 - resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-module-imports": "npm:^7.22.15" - "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/plugin-syntax-jsx": "npm:^7.23.3" - "@babel/types": "npm:^7.23.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/8851b3adc515cd91bdb06ff3a23a0f81f0069cfef79dfb3fa744da4b7a82e3555ccb6324c4fa71ecf22508db13b9ff6a0ed96675f95fc87903b9fc6afb699580 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-pure-annotations@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.23.3" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-plugin-utils": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/76287adeab656fb7f39243e5ab6a8c60069cf69fffeebd1566457d56cb2f966366a23bd755d3e369f4d0437459e3b76243df370caa7d7d2287a8560b66c53ca2 - languageName: node - linkType: hard - "@babel/plugin-transform-regenerator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" @@ -1484,22 +1485,6 @@ __metadata: languageName: node linkType: hard -"@babel/preset-react@npm:^7.18.6": - version: 7.23.3 - resolution: "@babel/preset-react@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/helper-validator-option": "npm:^7.22.15" - "@babel/plugin-transform-react-display-name": "npm:^7.23.3" - "@babel/plugin-transform-react-jsx": "npm:^7.22.15" - "@babel/plugin-transform-react-jsx-development": "npm:^7.22.5" - "@babel/plugin-transform-react-pure-annotations": "npm:^7.23.3" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/cecb2493e09fd4ffa5effcef1d06e968386b1bfe077a99834f7e8ef249208274fca62fe5a6b3986ef1c1c3900b2eb409adb528ae1b73dba31397b16f9262e83c - languageName: node - linkType: hard - "@babel/preset-typescript@npm:^7.23.0": version: 7.23.3 resolution: "@babel/preset-typescript@npm:7.23.3" @@ -1575,7 +1560,25 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.24.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": +"@babel/traverse@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/traverse@npm:7.24.1" + dependencies: + "@babel/code-frame": "npm:^7.24.1" + "@babel/generator": "npm:^7.24.1" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + "@babel/parser": "npm:^7.24.1" + "@babel/types": "npm:^7.24.0" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10c0/c087b918f6823776537ba246136c70e7ce0719fc05361ebcbfd16f4e6f2f6f1f8f4f9167f1d9b675f27d12074839605189cc9d689de20b89a85e7c140f23daab + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.24.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.24.0 resolution: "@babel/types@npm:7.24.0" dependencies: @@ -2253,13 +2256,6 @@ __metadata: languageName: node linkType: hard -"@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3": - version: 2.1.8-no-fsevents.3 - resolution: "@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3" - checksum: 10c0/27dcabaa0c9a29b3a60217bd3fff87a22cb43ed77863da570c6828e4d0b8f1c6ee52582cd3d439275a2b1f2051005e648ed866b981f2a03b61c645b7e4806ba7 - languageName: node - linkType: hard - "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -3919,7 +3915,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.18.0": +"@types/babel__core@npm:^7, @types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.18.0": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" dependencies: @@ -5489,7 +5485,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.4.0, chokidar@npm:^3.6.0": +"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.6.0": version: 3.6.0 resolution: "chokidar@npm:3.6.0" dependencies: @@ -5690,13 +5686,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^4.0.1": - version: 4.1.1 - resolution: "commander@npm:4.1.1" - checksum: 10c0/84a76c08fe6cc08c9c93f62ac573d2907d8e79138999312c92d4155bc2325d487d64d13f669b2000c9f8caf70493c1be2dac74fec3c51d5a04f8bc3ae1830bab - languageName: node - linkType: hard - "commander@npm:^6.2.1": version: 6.2.1 resolution: "commander@npm:6.2.1" @@ -7363,13 +7352,6 @@ __metadata: languageName: node linkType: hard -"fs-readdir-recursive@npm:^1.1.0": - version: 1.1.0 - resolution: "fs-readdir-recursive@npm:1.1.0" - checksum: 10c0/7e190393952143e674b6d1ad4abcafa1b5d3e337fcc21b0cb051079a7140a54617a7df193d562ef9faf21bd7b2148a38601b3d5c16261fa76f278d88dc69989c - languageName: node - linkType: hard - "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" @@ -9426,7 +9408,7 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.0, magic-string@npm:^0.30.3, magic-string@npm:^0.30.4": +"magic-string@npm:^0.30.0, magic-string@npm:^0.30.3, magic-string@npm:^0.30.4, magic-string@npm:^0.30.5": version: 0.30.8 resolution: "magic-string@npm:0.30.8" dependencies: @@ -9846,10 +9828,8 @@ __metadata: version: 0.0.0-use.local resolution: "nhsuk-react-components@workspace:." dependencies: - "@babel/cli": "npm:^7.13.16" - "@babel/core": "npm:^7.19.6" + "@babel/core": "npm:^7.24.1" "@babel/plugin-transform-modules-commonjs": "npm:^7.23.3" - "@babel/preset-react": "npm:^7.18.6" "@rollup/plugin-commonjs": "npm:^25.0.7" "@rollup/plugin-node-resolve": "npm:^15.2.3" "@rollup/plugin-terser": "npm:^0.4.4" @@ -9865,6 +9845,7 @@ __metadata: "@storybook/theming": "npm:^7.0.2" "@testing-library/jest-dom": "npm:^6.4.2" "@testing-library/react": "npm:^14.2.1" + "@types/babel__core": "npm:^7" "@types/jest": "npm:^29.5.12" "@types/jest-axe": "npm:^3.5.9" "@types/node": "npm:^15.0.2" @@ -9894,6 +9875,7 @@ __metadata: rollup: "npm:^4.13.0" rollup-plugin-dts: "npm:^6.1.0" rollup-plugin-peer-deps-external: "npm:^2.2.4" + rollup-plugin-preserve-directives: "npm:^0.4.0" sass: "npm:^1.53.0" storybook: "npm:^7.6.17" ts-jest: "npm:^29.1.2" @@ -11318,6 +11300,18 @@ __metadata: languageName: node linkType: hard +"rollup-plugin-preserve-directives@npm:^0.4.0": + version: 0.4.0 + resolution: "rollup-plugin-preserve-directives@npm:0.4.0" + dependencies: + "@rollup/pluginutils": "npm:^5.1.0" + magic-string: "npm:^0.30.5" + peerDependencies: + rollup: 2.x || 3.x || 4.x + checksum: 10c0/83e27b6cefe5d2185a39b79fa860644e60b53ed0c32942e1829023e10aa75a2fdd9c0d57e9a46eec4b60804d3fdb1ae51e847d5762f372b0f22fafcaca8c6a0e + languageName: node + linkType: hard + "rollup@npm:^0.63.4": version: 0.63.5 resolution: "rollup@npm:0.63.5" @@ -11644,13 +11638,6 @@ __metadata: languageName: node linkType: hard -"slash@npm:^2.0.0": - version: 2.0.0 - resolution: "slash@npm:2.0.0" - checksum: 10c0/f83dbd3cb62c41bb8fcbbc6bf5473f3234b97fa1d008f571710a9d3757a28c7169e1811cad1554ccb1cc531460b3d221c9a7b37f549398d9a30707f0a5af9193 - languageName: node - linkType: hard - "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0"