diff --git a/README.md b/README.md index ad67a22..f8e0b51 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ It looks for `@dnb/eufemia` – nearest located from where this plugin is used ( ```diff - import '@dnb/eufemia/style/core' - import '@dnb/eufemia/style/themes/ui' +- import '@dnb/eufemia/style/themes/sbanken' ``` 2. This plugin also wraps your application with the [``](https://eufemia.dnb.no/uilib/usage/customisation/theming/theme/) provider. If you want to wrap your apps by yourself, you can disable this by using this option: `wrapWithThemeProvider: false`. You could make your own wrapper like so: diff --git a/package.json b/package.json index a731071..fbb7fb9 100644 --- a/package.json +++ b/package.json @@ -10,14 +10,13 @@ "watch": "yarn workspace gatsby-plugin-eufemia-theme-handler watch", "watch:all": "yarn watch & yarn workspace sb-theme-example watch & yarn workspace ui-theme-example watch & yarn serve", "start": "yarn watch & yarn workspace sb-theme-example start & yarn workspace ui-theme-example start", - "build": "yarn workspace gatsby-plugin-eufemia-theme-handler build && yarn workspace ui-theme-example build && yarn workspace ui-theme-example serve & yarn workspace sb-theme-example build && kill-port 8002", + "build": "yarn workspace gatsby-plugin-eufemia-theme-handler build && yarn workspace ui-theme-example build && yarn workspace ui-theme-example serve & yarn workspace sb-theme-example build", "serve": "yarn workspace sb-theme-example serve & yarn workspace ui-theme-example serve", "clean": "yarn workspace sb-theme-example clean & yarn workspace ui-theme-example clean", "release": "yarn workspace gatsby-plugin-eufemia-theme-handler release" }, "devDependencies": { - "@dnb/eufemia": "10.7.0", - "kill-port": "2.0.1" + "@dnb/eufemia": "10.7.0" }, "engines": { "node": "18.13.0", diff --git a/packages/gatsby-plugin-eufemia-theme-handler/.gitignore b/packages/gatsby-plugin-eufemia-theme-handler/.gitignore index 34b3359..403b4a8 100644 --- a/packages/gatsby-plugin-eufemia-theme-handler/.gitignore +++ b/packages/gatsby-plugin-eufemia-theme-handler/.gitignore @@ -1 +1,3 @@ -load-eufemia-styles.js \ No newline at end of file +*.js +*.d.ts +!babel.config.js \ No newline at end of file diff --git a/packages/gatsby-plugin-eufemia-theme-handler/babel.config.js b/packages/gatsby-plugin-eufemia-theme-handler/babel.config.js new file mode 100644 index 0000000..072f64f --- /dev/null +++ b/packages/gatsby-plugin-eufemia-theme-handler/babel.config.js @@ -0,0 +1,25 @@ +const presets = [ + '@babel/preset-react', + [ + '@babel/preset-typescript', + { + isTSX: true, + allExtensions: true, + }, + ], + [ + '@babel/preset-env', + { + modules: process.env.GATSBY_FILES ? false : 'auto', + targets: { node: 'current' }, + }, + ], +] + +const gatsbyFiles = ['**/gatsby-browser.ts', '**/gatsby-ssr.ts'] + +module.exports = { + ignore: process.env.GATSBY_FILES ? ['**/*.d.ts'] : gatsbyFiles, + only: process.env.GATSBY_FILES ? gatsbyFiles : undefined, + presets, +} diff --git a/packages/gatsby-plugin-eufemia-theme-handler/package.json b/packages/gatsby-plugin-eufemia-theme-handler/package.json index 72def9b..70c5e44 100644 --- a/packages/gatsby-plugin-eufemia-theme-handler/package.json +++ b/packages/gatsby-plugin-eufemia-theme-handler/package.json @@ -30,8 +30,8 @@ "./collectThemes.js": "./collectThemes.js", "./themeHandler.js": "./themeHandler.js", "./themeHandler.d.ts": "./themeHandler.d.ts", - "./inlineScriptDev.mjs": "./inlineScriptDev.mjs", - "./inlineScriptProd.mjs": "./inlineScriptProd.mjs", + "./inlineScriptDev.js": "./inlineScriptDev.js", + "./inlineScriptProd.js": "./inlineScriptProd.js", "./gatsby-node.js": "./gatsby-node.js", "./gatsby-browser.js": "./gatsby-browser.js", "./gatsby-ssr.js": "./gatsby-ssr.js", @@ -41,8 +41,11 @@ "release": "yarn copy-readme && yarn build && semantic-release", "release:dry": "semantic-release --dry-run", "copy-readme": "cp ../../README.md ./README.md", - "build": "echo not implemented", - "watch": "echo not implemented", + "build": "yarn build:cmd && GATSBY_FILES=true yarn build:cmd && yarn build:types", + "build:cmd": "yarn babel src --extensions .js,.ts,.tsx,.mjs --out-dir .", + "build:types": "tsc --project tsconfig.json", + "clean": "rm -rf themeHandler.js themeHandler.d.js load-eufemia-styles.js inlineScriptProd.js inlineScriptDev.js index.js gatsby-ssr.js gatsby-node.js gatsby-browser.js EventEmitter.js collectThemes.js", + "watch": "yarn build --watch", "test:types": "tsc --noEmit" }, "dependencies": { @@ -53,6 +56,11 @@ "terser-loader": "2.0.3" }, "devDependencies": { + "@babel/cli": "^7.23.0", + "@babel/core": "^7.23.0", + "@babel/preset-env": "^7.22.20", + "@babel/preset-react": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", "semantic-release": "21.1.1", "typescript": "5.2.2" }, diff --git a/packages/gatsby-plugin-eufemia-theme-handler/EventEmitter.js b/packages/gatsby-plugin-eufemia-theme-handler/src/EventEmitter.ts similarity index 64% rename from packages/gatsby-plugin-eufemia-theme-handler/EventEmitter.js rename to packages/gatsby-plugin-eufemia-theme-handler/src/EventEmitter.ts index 597e20e..f2c041b 100644 --- a/packages/gatsby-plugin-eufemia-theme-handler/EventEmitter.js +++ b/packages/gatsby-plugin-eufemia-theme-handler/src/EventEmitter.ts @@ -9,14 +9,41 @@ * But when this package is used inside projects, we do not have /src – a workarround could be to export /src in the main package. */ +declare global { + interface Window { + __EEE__?: EventEmitterEEE + } +} + +export type EventEmitterId = string +export type EventEmitterData = Record +export type EventEmitterListener = (data: EventEmitterData) => void +export type EventEmitterEEE = Record< + EventEmitterId, + EventEmitterScopeObject +> +export type EventEmitterScope = + | ({ + __EEE__?: EventEmitterEEE + } & Window) + | EventEmitter +export type EventEmitterScopeInstances = Array +export type EventEmitterScopeObject = { + count: number + instances: EventEmitterScopeInstances + data: EventEmitterData +} + class EventEmitter { - static createInstance(id) { + static createInstance(id: EventEmitterId) { return new EventEmitter(id) } - static __EEE__ + static __EEE__?: Record + id: EventEmitterId + listeners: Array - constructor(id) { + constructor(id: EventEmitterId) { scope.__EEE__ = scope.__EEE__ || {} if (!scope.__EEE__[id]) { scope.__EEE__[id] = { @@ -33,7 +60,7 @@ class EventEmitter { return this } - update = (data) => { + update = (data: EventEmitterData) => { this.set(data) scope.__EEE__[this.id].instances.forEach((instance) => { instance.listeners.forEach((fn) => { @@ -43,7 +70,7 @@ class EventEmitter { }) }) } - set = (data) => { + set = (data: EventEmitterData) => { scope.__EEE__[this.id].data = { ...scope.__EEE__[this.id].data, ...data, @@ -52,13 +79,13 @@ class EventEmitter { get = () => { return scope.__EEE__[this.id].data } - listen(fn) { + listen(fn: EventEmitterListener) { if (!this.listeners.includes(fn)) { this.listeners.push(fn) } return this } - unlisten(fn) { + unlisten(fn?: EventEmitterListener | undefined) { for (let i = 0, l = this.listeners.length; i < l; i++) { if (!fn || (fn && fn === this.listeners[i])) { this.listeners[i] = null diff --git a/packages/gatsby-plugin-eufemia-theme-handler/collectThemes.js b/packages/gatsby-plugin-eufemia-theme-handler/src/collectThemes.ts similarity index 74% rename from packages/gatsby-plugin-eufemia-theme-handler/collectThemes.js rename to packages/gatsby-plugin-eufemia-theme-handler/src/collectThemes.ts index d45ff4d..e4a6aa8 100644 --- a/packages/gatsby-plugin-eufemia-theme-handler/collectThemes.js +++ b/packages/gatsby-plugin-eufemia-theme-handler/src/collectThemes.ts @@ -1,8 +1,8 @@ -const path = require('path') -const fs = require('fs') -const globby = require('globby') -const micromatch = require('micromatch') -const { slash } = require('gatsby-core-utils') +import path from 'path' +import fs from 'fs' +import globby from 'globby' +import micromatch from 'micromatch' +import { slash } from 'gatsby-core-utils' /** * We want to run this in sync, @@ -13,7 +13,7 @@ const { slash } = require('gatsby-core-utils') * @property {object} reporter Gatsby Reporter * @property {object} pluginOptions Gatsby pluginOptions */ -function createThemesImport({ +export function createThemesImport({ reporter, programDirectory, pluginOptions, @@ -63,24 +63,28 @@ function createThemesImport({ ) } - const sortedImportFiles = importFiles - .map((file) => { - const themeName = (file.match(new RegExp('/theme-([^/]*)/')) || - [])?.[1] - - return { file, themeName } - }) - .filter(({ themeName }) => { - return limitThemes.length === 0 || limitThemes.includes(themeName) - }) - .sort((a, b) => { - return ( - includeFiles.findIndex((glob) => - micromatch.isMatch(a.file, glob) - ) - - includeFiles.findIndex((glob) => micromatch.isMatch(b.file, glob)) - ) - }) + type File = string + const sortedImportFiles: Array<{ file: File; themeName?: string }> = + importFiles + .map((file) => { + const themeName = (file.match(new RegExp('/theme-([^/]*)/')) || + [])?.[1] + + return { file, themeName } + }) + .filter(({ themeName }) => { + return limitThemes.length === 0 || limitThemes.includes(themeName) + }) + .sort((a, b) => { + return ( + includeFiles.findIndex((glob) => + micromatch.isMatch(a.file, glob) + ) - + includeFiles.findIndex((glob) => + micromatch.isMatch(b.file, glob) + ) + ) + }) if (pluginOptions.coreStyleName) { const coreFile = importFiles.find((file) => @@ -129,5 +133,3 @@ function createThemesImport({ showReports() } - -exports.createThemesImport = createThemesImport diff --git a/packages/gatsby-plugin-eufemia-theme-handler/gatsby-browser.js b/packages/gatsby-plugin-eufemia-theme-handler/src/gatsby-browser.ts similarity index 100% rename from packages/gatsby-plugin-eufemia-theme-handler/gatsby-browser.js rename to packages/gatsby-plugin-eufemia-theme-handler/src/gatsby-browser.ts diff --git a/packages/gatsby-plugin-eufemia-theme-handler/gatsby-node.js b/packages/gatsby-plugin-eufemia-theme-handler/src/gatsby-node.ts similarity index 94% rename from packages/gatsby-plugin-eufemia-theme-handler/gatsby-node.js rename to packages/gatsby-plugin-eufemia-theme-handler/src/gatsby-node.ts index e7867de..74590f4 100644 --- a/packages/gatsby-plugin-eufemia-theme-handler/gatsby-node.js +++ b/packages/gatsby-plugin-eufemia-theme-handler/src/gatsby-node.ts @@ -3,10 +3,10 @@ * */ -const path = require('path') -const micromatch = require('micromatch') -const { slash } = require('gatsby-core-utils') -const { createThemesImport } = require('./collectThemes') +import path from 'path' +import micromatch from 'micromatch' +import { slash } from 'gatsby-core-utils' +import { createThemesImport } from './collectThemes' global.themeNames = [] diff --git a/packages/gatsby-plugin-eufemia-theme-handler/gatsby-ssr.js b/packages/gatsby-plugin-eufemia-theme-handler/src/gatsby-ssr.ts similarity index 100% rename from packages/gatsby-plugin-eufemia-theme-handler/gatsby-ssr.js rename to packages/gatsby-plugin-eufemia-theme-handler/src/gatsby-ssr.ts diff --git a/packages/gatsby-plugin-eufemia-theme-handler/index.js b/packages/gatsby-plugin-eufemia-theme-handler/src/index.ts similarity index 100% rename from packages/gatsby-plugin-eufemia-theme-handler/index.js rename to packages/gatsby-plugin-eufemia-theme-handler/src/index.ts diff --git a/packages/gatsby-plugin-eufemia-theme-handler/inlineScriptDev.mjs b/packages/gatsby-plugin-eufemia-theme-handler/src/inlineScriptDev.mjs similarity index 100% rename from packages/gatsby-plugin-eufemia-theme-handler/inlineScriptDev.mjs rename to packages/gatsby-plugin-eufemia-theme-handler/src/inlineScriptDev.mjs diff --git a/packages/gatsby-plugin-eufemia-theme-handler/inlineScriptProd.mjs b/packages/gatsby-plugin-eufemia-theme-handler/src/inlineScriptProd.mjs similarity index 100% rename from packages/gatsby-plugin-eufemia-theme-handler/inlineScriptProd.mjs rename to packages/gatsby-plugin-eufemia-theme-handler/src/inlineScriptProd.mjs diff --git a/packages/gatsby-plugin-eufemia-theme-handler/raw-loader.d.ts b/packages/gatsby-plugin-eufemia-theme-handler/src/raw-loader.d.ts similarity index 100% rename from packages/gatsby-plugin-eufemia-theme-handler/raw-loader.d.ts rename to packages/gatsby-plugin-eufemia-theme-handler/src/raw-loader.d.ts diff --git a/packages/gatsby-plugin-eufemia-theme-handler/themeHandler.js b/packages/gatsby-plugin-eufemia-theme-handler/src/themeHandler.tsx similarity index 88% rename from packages/gatsby-plugin-eufemia-theme-handler/themeHandler.js rename to packages/gatsby-plugin-eufemia-theme-handler/src/themeHandler.tsx index 68235e5..93cb7bd 100644 --- a/packages/gatsby-plugin-eufemia-theme-handler/themeHandler.js +++ b/packages/gatsby-plugin-eufemia-theme-handler/src/themeHandler.tsx @@ -4,46 +4,61 @@ import inlineScriptProd from '!raw-loader!terser-loader!./inlineScriptProd' import inlineScriptDev from '!raw-loader!terser-loader!./inlineScriptDev' import EventEmitter from './EventEmitter.js' +import type { ThemeNames, ThemeProps } from '@dnb/eufemia/shared/Theme' + +type PropMapping = string + +export type ThemesItem = { + file?: string + hide?: boolean + isDev?: boolean +} & ThemeProps & { name?: ThemeNames } +export type Themes = Array + const defaultTheme = globalThis.EUFEMIA_THEME_defaultTheme || 'ui' const availableThemes = globalThis.EUFEMIA_THEME_themes || [] const storageId = globalThis.EUFEMIA_THEME_storageId || 'eufemia-theme' const availableThemesArray = Object.keys(availableThemes) -export function getThemes() { +export function getThemes(): Themes { return availableThemes } -export function isValidTheme(themeName) { +export function isValidTheme(themeName: ThemeNames) { return availableThemesArray.includes(themeName) } -export function useThemeHandler() { +export function useThemeHandler(): ThemesItem { const [theme, setTheme] = React.useState(getTheme) React.useEffect(() => { const emitter = EventEmitter.createInstance('themeHandler') emitter.listen((theme) => { - setTheme(theme) + setTheme(theme as ThemesItem) }) }, []) return theme } -export function getTheme() { +export function getTheme(): ThemesItem { if (typeof window === 'undefined') { return { name: defaultTheme } } try { const data = window.localStorage.getItem(storageId) - const theme = JSON.parse(data?.startsWith('{') ? data : '{}') + const theme = JSON.parse( + data?.startsWith('{') ? data : '{}' + ) as ThemesItem const regex = /.*eufemia-theme=([^&]*).*/ const query = window.location.search const fromQuery = (regex.test(query) && query?.replace(regex, '$1')) || null - const themeName = fromQuery || theme?.name || defaultTheme + const themeName = (fromQuery || + theme?.name || + defaultTheme) as ThemeNames if (!isValidTheme(themeName)) { console.error('Not valid themeName:', themeName) @@ -57,8 +72,11 @@ export function getTheme() { } } -export function setTheme(themeProps, callback) { - const theme = { ...getTheme(), ...themeProps } +export function setTheme( + themeProps: { name?: string; propMapping?: PropMapping }, + callback +) { + const theme = { ...getTheme(), ...themeProps } as ThemesItem if (!isValidTheme(theme?.name)) { console.error('Not valid themeName:', theme?.name) diff --git a/packages/gatsby-plugin-eufemia-theme-handler/themeHandler.d.ts b/packages/gatsby-plugin-eufemia-theme-handler/themeHandler.d.ts deleted file mode 100644 index f67b99e..0000000 --- a/packages/gatsby-plugin-eufemia-theme-handler/themeHandler.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type { ThemeNames, ThemeProps } from '@dnb/eufemia/shared/Theme' -type PropMapping = string -export type ThemesItem = { - file: string - hide?: boolean - isDev?: boolean -} & ThemeProps -export type Themes = Array -export const getThemes = (): Themes => null -export const isValidTheme = (): boolean => null -export const getTheme = (): ThemesItem => null -export const useThemeHandler = (): ThemesItem => null -const callback = () => null -export const setTheme = ( - props: { name?: string; propMapping?: PropMapping }, - callback = null -): void => null diff --git a/packages/gatsby-plugin-eufemia-theme-handler/tsconfig.json b/packages/gatsby-plugin-eufemia-theme-handler/tsconfig.json new file mode 100644 index 0000000..6b5753e --- /dev/null +++ b/packages/gatsby-plugin-eufemia-theme-handler/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "jsx": "react-jsx", + "skipLibCheck": true, + "declaration": true, + "allowJs": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "isolatedModules": true, + "emitDeclarationOnly": true, + "declarationDir": ".", + "rootDir": "src", + "baseUrl": "." + }, + "include": ["src/*.ts", "src/*.tsx"], + "exclude": ["node_modules", "dist"] +} diff --git a/yarn.lock b/yarn.lock index 72556ca..5df0429 100644 --- a/yarn.lock +++ b/yarn.lock @@ -51,6 +51,33 @@ __metadata: languageName: node linkType: hard +"@babel/cli@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/cli@npm:7.23.0" + dependencies: + "@jridgewell/trace-mapping": ^0.3.17 + "@nicolo-ribaudo/chokidar-2": 2.1.8-no-fsevents.3 + chokidar: ^3.4.0 + commander: ^4.0.1 + convert-source-map: ^2.0.0 + fs-readdir-recursive: ^1.1.0 + glob: ^7.2.0 + make-dir: ^2.1.0 + slash: ^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: beeb189560bf9c4ea951ef637eefa5214654678fb09c4aaa6695921037059c1e1553c610fe95fbd19a9cdfd9f5598a812fc13df40a6b9a9ea899e43fc6c42052 + languageName: node + linkType: hard + "@babel/code-frame@npm:7.12.11": version: 7.12.11 resolution: "@babel/code-frame@npm:7.12.11" @@ -77,7 +104,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.14.0, @babel/core@npm:^7.20.12": +"@babel/core@npm:^7.14.0, @babel/core@npm:^7.20.12, @babel/core@npm:^7.23.0": version: 7.23.0 resolution: "@babel/core@npm:7.23.0" dependencies: @@ -1395,7 +1422,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:^7.20.2": +"@babel/preset-env@npm:^7.20.2, @babel/preset-env@npm:^7.22.20": version: 7.22.20 resolution: "@babel/preset-env@npm:7.22.20" dependencies: @@ -1498,7 +1525,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-react@npm:^7.18.6": +"@babel/preset-react@npm:^7.18.6, @babel/preset-react@npm:^7.22.15": version: 7.22.15 resolution: "@babel/preset-react@npm:7.22.15" dependencies: @@ -1514,7 +1541,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.18.6": +"@babel/preset-typescript@npm:^7.18.6, @babel/preset-typescript@npm:^7.23.0": version: 7.23.0 resolution: "@babel/preset-typescript@npm:7.23.0" dependencies: @@ -2210,6 +2237,13 @@ __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: ee55cc9241aeea7eb94b8a8551bfa4246c56c53bc71ecda0a2104018fcc328ba5723b33686bdf9cc65d4df4ae65e8016b89e0bbdeb94e0309fe91bb9ced42344 + languageName: node + linkType: hard + "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1": version: 5.1.1-v1 resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1" @@ -5601,7 +5635,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.4.2, chokidar@npm:^3.5.3": +"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.4.0, chokidar@npm:^3.4.2, chokidar@npm:^3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" dependencies: @@ -5924,6 +5958,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^4.0.1": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: d7b9913ff92cae20cb577a4ac6fcc121bd6223319e54a40f51a14740a681ad5c574fd29a57da478a5f234a6fa6c52cbf0b7c641353e03c648b1ae85ba670b977 + languageName: node + linkType: hard + "commander@npm:^7.2.0": version: 7.2.0 resolution: "commander@npm:7.2.0" @@ -8355,6 +8396,13 @@ __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: 29d50f3d2128391c7fc9fd051c8b7ea45bcc8aa84daf31ef52b17218e20bfd2bd34d02382742801954cc8d1905832b68227f6b680a666ce525d8b6b75068ad1e + languageName: node + linkType: hard + "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" @@ -8513,7 +8561,6 @@ __metadata: resolution: "gatsby-eufemia-theme-handler@workspace:." dependencies: "@dnb/eufemia": 10.7.0 - kill-port: 2.0.1 languageName: unknown linkType: soft @@ -8591,6 +8638,11 @@ __metadata: version: 0.0.0-use.local resolution: "gatsby-plugin-eufemia-theme-handler@workspace:packages/gatsby-plugin-eufemia-theme-handler" dependencies: + "@babel/cli": ^7.23.0 + "@babel/core": ^7.23.0 + "@babel/preset-env": ^7.22.20 + "@babel/preset-react": ^7.22.15 + "@babel/preset-typescript": ^7.23.0 gatsby-core-utils: 4.12.0 globby: 11.0.4 micromatch: 4.0.5 @@ -9041,13 +9093,6 @@ __metadata: languageName: node linkType: hard -"get-them-args@npm:1.3.2": - version: 1.3.2 - resolution: "get-them-args@npm:1.3.2" - checksum: 5544dcec7faf0bc91656eb517a80d235f5bb42579bb50a119d0eafd9c6b6f3cc4a2c1291695caec941d6bdabee7962221206d0e31f6147374edbc0d95bf368ed - languageName: node - linkType: hard - "git-log-parser@npm:^1.2.0": version: 1.2.0 resolution: "git-log-parser@npm:1.2.0" @@ -9110,7 +9155,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.3": +"glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.0, glob@npm:^7.2.3": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -10706,18 +10751,6 @@ __metadata: languageName: node linkType: hard -"kill-port@npm:2.0.1": - version: 2.0.1 - resolution: "kill-port@npm:2.0.1" - dependencies: - get-them-args: 1.3.2 - shell-exec: 1.0.2 - bin: - kill-port: cli.js - checksum: 407b8f3ef90758aed0f311de07460b77d85b7e1b2826237108ca2a7f7060235fa4d11912917c2859f698103c61b6b1c36b55429ed9f53117e78490fa15ded6b6 - languageName: node - linkType: hard - "kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -11355,6 +11388,16 @@ __metadata: languageName: node linkType: hard +"make-dir@npm:^2.1.0": + version: 2.1.0 + resolution: "make-dir@npm:2.1.0" + dependencies: + pify: ^4.0.1 + semver: ^5.6.0 + checksum: 043548886bfaf1820323c6a2997e6d2fa51ccc2586ac14e6f14634f7458b4db2daf15f8c310e2a0abd3e0cddc64df1890d8fc7263033602c47bb12cbfcf86aab + languageName: node + linkType: hard + "make-dir@npm:^3.0.0, make-dir@npm:^3.0.2, make-dir@npm:^3.1.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" @@ -13277,6 +13320,13 @@ __metadata: languageName: node linkType: hard +"pify@npm:^4.0.1": + version: 4.0.1 + resolution: "pify@npm:4.0.1" + checksum: 9c4e34278cb09987685fa5ef81499c82546c033713518f6441778fbec623fc708777fe8ac633097c72d88470d5963094076c7305cafc7ad340aae27cfacd856b + languageName: node + linkType: hard + "pkg-conf@npm:^2.1.0": version: 2.1.0 resolution: "pkg-conf@npm:2.1.0" @@ -14978,7 +15028,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0, semver@npm:^5.7.1": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0, semver@npm:^5.6.0, semver@npm:^5.7.1": version: 5.7.2 resolution: "semver@npm:5.7.2" bin: @@ -15166,13 +15216,6 @@ __metadata: languageName: node linkType: hard -"shell-exec@npm:1.0.2": - version: 1.0.2 - resolution: "shell-exec@npm:1.0.2" - checksum: 0cae6f151165a96f2d3a5a5daf7c55888979ccfa379ada460269f618e95d7501018073cc3d53e6f942cbf7b36e92497d23dae281f3a2633b34ec489d8399ab11 - languageName: node - linkType: hard - "shell-quote@npm:^1.7.3": version: 1.8.1 resolution: "shell-quote@npm:1.8.1" @@ -15284,6 +15327,13 @@ __metadata: languageName: node linkType: hard +"slash@npm:^2.0.0": + version: 2.0.0 + resolution: "slash@npm:2.0.0" + checksum: 512d4350735375bd11647233cb0e2f93beca6f53441015eea241fe784d8068281c3987fbaa93e7ef1c38df68d9c60013045c92837423c69115297d6169aa85e6 + languageName: node + linkType: hard + "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0"