From 281febb3de804c3e866761ceda4046d1798502a4 Mon Sep 17 00:00:00 2001 From: Michael Behrisch <m.behrisch@uu.nl> Date: Wed, 9 Feb 2022 21:18:25 +0100 Subject: [PATCH] fix(storybook): :bug: fixed reduxer in rawjsonvis storybook and added theme to semanticsubstr --- .vscode/settings.json | 3 +- apps/web-graphpolaris/.storybook/main.js | 8 +- .../src/components/schema/schema.stories.tsx | 18 ++- .../src/components/schema/schema.tsx | 2 +- .../rawjsonvis/rawjsonvis.stories.tsx | 130 +++++++++--------- .../semanticsubstrates.stories.tsx | 51 ++++++- .../semanticsubstrates/semanticsubstrates.tsx | 24 ++-- package.json | 1 + yarn.lock | 123 +++++++++++++++++ 9 files changed, 267 insertions(+), 93 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 656108b48..033495ac5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -19,6 +19,7 @@ "vis-semsub", "vis-nl", "vis-paoh", - "vis-schema" + "vis-schema", + "storybook" ] } diff --git a/apps/web-graphpolaris/.storybook/main.js b/apps/web-graphpolaris/.storybook/main.js index 32c9e4638..530fe3a06 100644 --- a/apps/web-graphpolaris/.storybook/main.js +++ b/apps/web-graphpolaris/.storybook/main.js @@ -11,7 +11,13 @@ module.exports = { '../src/app/**/*.stories.@(js|jsx|ts|tsx)', '../src/components/**/*.stories.@(js|jsx|ts|tsx)', ], - addons: [...rootMain.addons, '@nrwl/react/plugins/storybook'], + addons: [ + ...rootMain.addons, + '@nrwl/react/plugins/storybook', + ], + features: { + emotionAlias: false, + }, webpackFinal: async (config, { configType }) => { // apply any global webpack configs that might have been specified in .storybook/main.js if (rootMain.webpackFinal) { diff --git a/apps/web-graphpolaris/src/components/schema/schema.stories.tsx b/apps/web-graphpolaris/src/components/schema/schema.stories.tsx index 415aa8d09..4eb22a1ea 100644 --- a/apps/web-graphpolaris/src/components/schema/schema.stories.tsx +++ b/apps/web-graphpolaris/src/components/schema/schema.stories.tsx @@ -1,16 +1,14 @@ -import React from 'react'; -import Schema from './schema'; -import { ComponentStory, ComponentMeta } from '@storybook/react'; -import { Provider } from 'react-redux'; -import { - readInSchemaFromBackend, - setSchema, - store, -} from '@graphpolaris/shared/data-access/store'; import { handleSchemaLayout, - parseSchemaFromBackend, + parseSchemaFromBackend } from '@graphpolaris/schema/schema-usecases'; +import { + store +} from '@graphpolaris/shared/data-access/store'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import React from 'react'; +import { Provider } from 'react-redux'; +import Schema from './schema'; export default { /* 👇 The title prop is optional. diff --git a/apps/web-graphpolaris/src/components/schema/schema.tsx b/apps/web-graphpolaris/src/components/schema/schema.tsx index 6278d6fb4..e005a8543 100644 --- a/apps/web-graphpolaris/src/components/schema/schema.tsx +++ b/apps/web-graphpolaris/src/components/schema/schema.tsx @@ -27,7 +27,7 @@ const Schema = (props: Props) => { return ( <Div> <p>hey</p> - <ReactFlow elements={createReactFlowElements(dbschema)} /> + <ReactFlow elements={createReactFlowElements(dbschema)} /> <p>hoi</p> </Div> ); diff --git a/apps/web-graphpolaris/src/components/visualisations/rawjsonvis/rawjsonvis.stories.tsx b/apps/web-graphpolaris/src/components/visualisations/rawjsonvis/rawjsonvis.stories.tsx index dc47611f9..b384a6d3e 100644 --- a/apps/web-graphpolaris/src/components/visualisations/rawjsonvis/rawjsonvis.stories.tsx +++ b/apps/web-graphpolaris/src/components/visualisations/rawjsonvis/rawjsonvis.stories.tsx @@ -1,73 +1,73 @@ -// import React from 'react'; -// import { ComponentStory, ComponentMeta } from '@storybook/react'; -// import { RawJSONVis } from './rawjsonvis'; +import React from 'react'; +import { ComponentStory, ComponentMeta } from '@storybook/react'; +import { RawJSONVis } from './rawjsonvis'; -// import { Provider } from 'react-redux'; -// import { configureStore, createSlice } from '@reduxjs/toolkit'; +import { Provider } from 'react-redux'; +import { configureStore, createSlice } from '@reduxjs/toolkit'; -// import { -// graphQueryResultSlice, -// assignNewGraphQueryResult, -// resetGraphQueryResults, -// } from '@graphpolaris/shared/data-access/store'; +import { + graphQueryResultSlice, + assignNewGraphQueryResult, + resetGraphQueryResults, +} from '@graphpolaris/shared/data-access/store'; -// export default { -// /* 👇 The title prop is optional. -// * See https://storybook.js.org/docs/react/configure/overview#configure-story-loading -// * to learn how to generate automatic titles -// */ -// title: 'RawJSONVIS', -// component: RawJSONVis, -// decorators: [ -// (story) => ( -// <div style={{ padding: '3rem' }}> -// <Provider store={Mockstore}>{story()}</Provider> -// </div> -// ), -// ], -// } as ComponentMeta<typeof RawJSONVis>; +export default { + /* 👇 The title prop is optional. + * See https://storybook.js.org/docs/react/configure/overview#configure-story-loading + * to learn how to generate automatic titles + */ + title: 'RawJSONVIS', + component: RawJSONVis, + decorators: [ + (story) => ( + <div style={{ padding: '3rem' }}> + <Provider store={Mockstore}>{story()}</Provider> + </div> + ), + ], +} as ComponentMeta<typeof RawJSONVis>; -// const Template: ComponentStory<typeof RawJSONVis> = (args) => ( -// <RawJSONVis {...args} /> -// ); +const Template: ComponentStory<typeof RawJSONVis> = (args) => ( + <RawJSONVis {...args} /> +); -// // A super-simple mock of a redux store -// const Mockstore = configureStore({ -// reducer: { -// graphQueryResult: graphQueryResultSlice, -// }, -// }); +// A super-simple mock of a redux store +const Mockstore = configureStore({ + reducer: { + graphQueryResult: graphQueryResultSlice.reducer, + }, +}); -// export const TestWithData = Template.bind({}); -// TestWithData.args = { -// loading: false, -// }; -// TestWithData.play = async () => { -// const dispatch = Mockstore.dispatch; -// dispatch( -// assignNewGraphQueryResult({ -// nodes: [ -// { id: 'agent/007', attributes: { name: 'Daniel Craig' } }, -// { id: 'villain', attributes: { name: 'Le Chiffre' } }, -// ], -// links: [], -// }) -// ); -// }; +export const TestWithData = Template.bind({}); +TestWithData.args = { + loading: false, +}; +TestWithData.play = async () => { + const dispatch = Mockstore.dispatch; + dispatch( + assignNewGraphQueryResult({ + nodes: [ + { id: 'agent/007', attributes: { name: 'Daniel Craig' } }, + { id: 'villain', attributes: { name: 'Le Chiffre' } }, + ], + links: [], + }) + ); +}; -// export const Loading = Template.bind({}); -// Loading.args = { -// loading: true, -// }; +export const Loading = Template.bind({}); +Loading.args = { + loading: true, +}; -// export const Empty = Template.bind({}); -// Empty.args = { -// // Shaping the stories through args composition. -// // Inherited data coming from the Loading story. -// ...Loading.args, -// loading: false, -// }; -// Empty.play = async () => { -// const dispatch = Mockstore.dispatch; -// dispatch(resetGraphQueryResults()); -// }; +export const Empty = Template.bind({}); +Empty.args = { + // Shaping the stories through args composition. + // Inherited data coming from the Loading story. + ...Loading.args, + loading: false, +}; +Empty.play = async () => { + const dispatch = Mockstore.dispatch; + dispatch(resetGraphQueryResults()); +}; diff --git a/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.stories.tsx b/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.stories.tsx index 3c80f3467..5cb0c4c84 100644 --- a/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.stories.tsx +++ b/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.stories.tsx @@ -1,19 +1,60 @@ -import React from 'react'; +import { createTheme, ThemeProvider } from '@mui/material/styles'; +import { configureStore } from '@reduxjs/toolkit'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import colorPaletteConfigSlice from 'libs/shared/data-access/store/src/lib/colorPaletteConfigSlice'; +import { Provider } from 'react-redux'; import SemanticSubstrates from './semanticsubstrates'; -import { ComponentStory, ComponentMeta } from '@storybook/react'; export default { /* 👇 The title prop is optional. * See https://storybook.js.org/docs/react/configure/overview#configure-story-loading * to learn how to generate automatic titles */ - title: 'NodeLink', + title: 'SemanticSubstrates', component: SemanticSubstrates, - decorators: [(story) => <div style={{ padding: '3rem' }}>{story()}</div>], + decorators: [ + (story) => <div style={{ padding: '3rem' }}>{story()}</div>, + (story) => ( + <div style={{ padding: '3rem' }}> + <Provider store={Mockstore}>{story()}</Provider> + </div> + ), + (story) => <ThemeProvider theme={mockTheme}>{story()}</ThemeProvider>, + ], } as ComponentMeta<typeof SemanticSubstrates>; +declare module '@mui/material/styles' { + interface Theme { + graphpolaris: { + danger: string; + dataPointColors: string[]; + }; + } + // allow configuration using `createTheme` + interface ThemeOptions { + graphpolaris: { + danger: string; + dataPointColors: string[]; + }; + } +} + +const mockTheme = createTheme({ + graphpolaris: { + danger: 'orange', + dataPointColors: ['blue', 'green'], + }, +}); + +// A super-simple mock of a redux store +const Mockstore = configureStore({ + reducer: { + colorPaletteConfig: colorPaletteConfigSlice, + }, +}); + const Template: ComponentStory<typeof SemanticSubstrates> = (args) => ( - <SemanticSubstrates {...args} /> + <SemanticSubstrates /> ); export const Primary = Template.bind({}); diff --git a/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.tsx b/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.tsx index 04a068232..12f850c74 100644 --- a/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.tsx +++ b/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.tsx @@ -14,58 +14,62 @@ const Div = styled('div')(({ theme }) => ({ const SemanticSubstrates = () => { const dispatch = useDispatch(); const theme = useTheme(); + console.log('theme here ', theme); return ( <> <Div> - <h1>semantic substrates</h1> + <h1>semantic substrates div</h1> </Div> <Box sx={{ // Using our custom palette dataPointColors property, cast theme to any because Theme doesn't know of this custom property - backgroundColor: (theme: Theme) => theme.palette.dataPointColors[0], + backgroundColor: (theme: Theme) => + theme.graphpolaris.dataPointColors[0], }} > - <h1>semantic substrates</h1> + <h1>semantic substrates h1</h1> </Box> <input onChange={(v) => dispatch(changePrimary({ main: v.currentTarget.value })) } type="color" - id="head" name="head" value={theme.palette.primary.main} - /> + />{' '} + Change Primary Color <input onChange={(v) => dispatch( changeDataPointColors([ v.currentTarget.value, - ...theme.palette.dataPointColors.slice(1), + ...theme.graphpolaris.dataPointColors.slice(1), ]) ) } type="color" id="head" name="head" - value={theme.palette.dataPointColors[0]} + value={theme.graphpolaris.dataPointColors[0]} /> + Change dataPointColors reflects to local <input onChange={(v) => dispatch( changeDataPointColors([ - theme.palette.dataPointColors[0], + theme.graphpolaris.dataPointColors[0], v.currentTarget.value, - ...theme.palette.dataPointColors.slice(2), + ...theme.graphpolaris.dataPointColors.slice(2), ]) ) } type="color" id="head" name="head" - value={theme.palette.dataPointColors[1]} + value={theme.graphpolaris.dataPointColors[1]} /> + Change dataPointColors reflects to global </> ); }; diff --git a/package.json b/package.json index f642de7d3..d8191b152 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "@emotion/react": "^11.7.1", "@emotion/styled": "^11.6.0", "@mui/material": "^5.4.1", + "@mui/styles": "^5.4.1", "@reduxjs/toolkit": "^1.7.1", "@types/cytoscape": "^3.19.4", "@types/react-grid-layout": "^1.3.0", diff --git a/yarn.lock b/yarn.lock index 9fba981e2..4b4bf132a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1216,6 +1216,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.8.3": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" + integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/template@^7.12.13", "@babel/template@^7.12.7", "@babel/template@^7.16.7", "@babel/template@^7.3.3": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" @@ -2125,6 +2132,29 @@ "@emotion/cache" "^11.7.1" prop-types "^15.7.2" +"@mui/styles@^5.4.1": + version "5.4.1" + resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.4.1.tgz#994171da902267184fffa19896ee5bbb07d4d783" + integrity sha512-ekw2NBC06re0H9SvCA1XgtFcghB8AQdGPXD3mjIz5ik+X+LvR+f2TeoCpJpkKp7UQdcNn6uuYi6BO6irTiQhdw== + dependencies: + "@babel/runtime" "^7.17.0" + "@emotion/hash" "^0.8.0" + "@mui/private-theming" "^5.4.1" + "@mui/types" "^7.1.1" + "@mui/utils" "^5.4.1" + clsx "^1.1.1" + csstype "^3.0.10" + hoist-non-react-statics "^3.3.2" + jss "^10.8.2" + jss-plugin-camel-case "^10.8.2" + jss-plugin-default-unit "^10.8.2" + jss-plugin-global "^10.8.2" + jss-plugin-nested "^10.8.2" + jss-plugin-props-sort "^10.8.2" + jss-plugin-rule-value-function "^10.8.2" + jss-plugin-vendor-prefixer "^10.8.2" + prop-types "^15.7.2" + "@mui/system@^5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.4.1.tgz#cf253369fbf1d960c792f0ec068fa28af81be3d4" @@ -7334,6 +7364,14 @@ css-tree@^1.1.2, css-tree@^1.1.3: mdn-data "2.0.14" source-map "^0.6.1" +css-vendor@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" + integrity sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ== + dependencies: + "@babel/runtime" "^7.8.3" + is-in-browser "^1.0.2" + css-what@^3.2.1: version "3.4.2" resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" @@ -10077,6 +10115,11 @@ husky@^7.0.0: resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535" integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ== +hyphenate-style-name@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" + integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== + iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -10514,6 +10557,11 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-in-browser@^1.0.2, is-in-browser@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" + integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU= + is-installed-globally@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" @@ -11523,6 +11571,76 @@ jsprim@^2.0.2: json-schema "0.4.0" verror "1.10.0" +jss-plugin-camel-case@^10.8.2: + version "10.9.0" + resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.0.tgz#4921b568b38d893f39736ee8c4c5f1c64670aaf7" + integrity sha512-UH6uPpnDk413/r/2Olmw4+y54yEF2lRIV8XIZyuYpgPYTITLlPOsq6XB9qeqv+75SQSg3KLocq5jUBXW8qWWww== + dependencies: + "@babel/runtime" "^7.3.1" + hyphenate-style-name "^1.0.3" + jss "10.9.0" + +jss-plugin-default-unit@^10.8.2: + version "10.9.0" + resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.0.tgz#bb23a48f075bc0ce852b4b4d3f7582bc002df991" + integrity sha512-7Ju4Q9wJ/MZPsxfu4T84mzdn7pLHWeqoGd/D8O3eDNNJ93Xc8PxnLmV8s8ZPNRYkLdxZqKtm1nPQ0BM4JRlq2w== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.9.0" + +jss-plugin-global@^10.8.2: + version "10.9.0" + resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.9.0.tgz#fc07a0086ac97aca174e37edb480b69277f3931f" + integrity sha512-4G8PHNJ0x6nwAFsEzcuVDiBlyMsj2y3VjmFAx/uHk/R/gzJV+yRHICjT4MKGGu1cJq2hfowFWCyrr/Gg37FbgQ== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.9.0" + +jss-plugin-nested@^10.8.2: + version "10.9.0" + resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.9.0.tgz#cc1c7d63ad542c3ccc6e2c66c8328c6b6b00f4b3" + integrity sha512-2UJnDrfCZpMYcpPYR16oZB7VAC6b/1QLsRiAutOt7wJaaqwCBvNsosLEu/fUyKNQNGdvg2PPJFDO5AX7dwxtoA== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.9.0" + tiny-warning "^1.0.2" + +jss-plugin-props-sort@^10.8.2: + version "10.9.0" + resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.0.tgz#30e9567ef9479043feb6e5e59db09b4de687c47d" + integrity sha512-7A76HI8bzwqrsMOJTWKx/uD5v+U8piLnp5bvru7g/3ZEQOu1+PjHvv7bFdNO3DwNPC9oM0a//KwIJsIcDCjDzw== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.9.0" + +jss-plugin-rule-value-function@^10.8.2: + version "10.9.0" + resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.0.tgz#379fd2732c0746fe45168011fe25544c1a295d67" + integrity sha512-IHJv6YrEf8pRzkY207cPmdbBstBaE+z8pazhPShfz0tZSDtRdQua5jjg6NMz3IbTasVx9FdnmptxPqSWL5tyJg== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.9.0" + tiny-warning "^1.0.2" + +jss-plugin-vendor-prefixer@^10.8.2: + version "10.9.0" + resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.0.tgz#aa9df98abfb3f75f7ed59a3ec50a5452461a206a" + integrity sha512-MbvsaXP7iiVdYVSEoi+blrW+AYnTDvHTW6I6zqi7JcwXdc6I9Kbm234nEblayhF38EftoenbM+5218pidmC5gA== + dependencies: + "@babel/runtime" "^7.3.1" + css-vendor "^2.0.8" + jss "10.9.0" + +jss@10.9.0, jss@^10.8.2: + version "10.9.0" + resolved "https://registry.yarnpkg.com/jss/-/jss-10.9.0.tgz#7583ee2cdc904a83c872ba695d1baab4b59c141b" + integrity sha512-YpzpreB6kUunQBbrlArlsMpXYyndt9JATbt95tajx0t4MTJJcCJdd4hdNpHmOIDiUJrF/oX5wtVFrS3uofWfGw== + dependencies: + "@babel/runtime" "^7.3.1" + csstype "^3.0.2" + is-in-browser "^1.1.3" + tiny-warning "^1.0.2" + "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b" @@ -15944,6 +16062,11 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= +tiny-warning@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" -- GitLab