From 00920ffb05818fd019ac55cb723249958b3aa685 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Fri, 1 Nov 2024 05:33:24 +0000 Subject: [PATCH] fix: yarn-pnp/react-vite/package.json & yarn-pnp/react-vite/yarn.lock to reduce vulnerabilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-PATHTOREGEXP-7925106 - https://snyk.io/vuln/SNYK-JS-BODYPARSER-7926860 - https://snyk.io/vuln/SNYK-JS-COOKIE-8163060 - https://snyk.io/vuln/SNYK-JS-EXPRESS-7926867 - https://snyk.io/vuln/SNYK-JS-SEND-7926862 - https://snyk.io/vuln/SNYK-JS-SERVESTATIC-7926865 --- yarn-pnp/react-vite/package.json | 2 +- yarn-pnp/react-vite/yarn.lock | 281 ++++++++++++++++++------------- 2 files changed, 168 insertions(+), 115 deletions(-) diff --git a/yarn-pnp/react-vite/package.json b/yarn-pnp/react-vite/package.json index 7c72d63..73658ff 100644 --- a/yarn-pnp/react-vite/package.json +++ b/yarn-pnp/react-vite/package.json @@ -24,7 +24,7 @@ "@storybook/addon-onboarding": "^1.0.8", "@storybook/blocks": "^7.6.0-alpha.2", "@storybook/react": "^7.6.0-alpha.2", - "@storybook/react-vite": "^7.6.0-alpha.2", + "@storybook/react-vite": "^8.4.0", "@storybook/test-runner": "^0.13.0", "@storybook/testing-library": "^0.2.2", "@types/react": "^18.2.33", diff --git a/yarn-pnp/react-vite/yarn.lock b/yarn-pnp/react-vite/yarn.lock index ae388e2..e2a3196 100644 --- a/yarn-pnp/react-vite/yarn.lock +++ b/yarn-pnp/react-vite/yarn.lock @@ -2,7 +2,7 @@ # Manual changes might be lost - proceed with caution! __metadata: - version: 8 + version: 6 cacheKey: 10c0 "@aashutoshrathi/word-wrap@npm:^1.2.3": @@ -50,7 +50,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.18.9, @babel/core@npm:^7.20.12, @babel/core@npm:^7.22.20, @babel/core@npm:^7.22.5, @babel/core@npm:^7.22.9, @babel/core@npm:^7.7.5": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.18.9, @babel/core@npm:^7.22.20, @babel/core@npm:^7.22.5, @babel/core@npm:^7.22.9, @babel/core@npm:^7.7.5": version: 7.23.2 resolution: "@babel/core@npm:7.23.2" dependencies: @@ -1133,7 +1133,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-self@npm:^7.18.6, @babel/plugin-transform-react-jsx-self@npm:^7.22.5": +"@babel/plugin-transform-react-jsx-self@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-react-jsx-self@npm:7.22.5" dependencies: @@ -1144,7 +1144,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-source@npm:^7.19.6, @babel/plugin-transform-react-jsx-source@npm:^7.22.5": +"@babel/plugin-transform-react-jsx-source@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-react-jsx-source@npm:7.22.5" dependencies: @@ -3319,39 +3319,17 @@ __metadata: languageName: node linkType: hard -"@storybook/builder-vite@npm:7.6.0-alpha.2": - version: 7.6.0-alpha.2 - resolution: "@storybook/builder-vite@npm:7.6.0-alpha.2" +"@storybook/builder-vite@npm:8.4.0": + version: 8.4.0 + resolution: "@storybook/builder-vite@npm:8.4.0" dependencies: - "@storybook/channels": "npm:7.6.0-alpha.2" - "@storybook/client-logger": "npm:7.6.0-alpha.2" - "@storybook/core-common": "npm:7.6.0-alpha.2" - "@storybook/csf-plugin": "npm:7.6.0-alpha.2" - "@storybook/node-logger": "npm:7.6.0-alpha.2" - "@storybook/preview": "npm:7.6.0-alpha.2" - "@storybook/preview-api": "npm:7.6.0-alpha.2" - "@storybook/types": "npm:7.6.0-alpha.2" - "@types/find-cache-dir": "npm:^3.2.1" - browser-assert: "npm:^1.2.1" - es-module-lexer: "npm:^0.9.3" - express: "npm:^4.17.3" - find-cache-dir: "npm:^3.0.0" - fs-extra: "npm:^11.1.0" - magic-string: "npm:^0.30.0" - rollup: "npm:^2.25.0 || ^3.3.0" + "@storybook/csf-plugin": 8.4.0 + browser-assert: ^1.2.1 + ts-dedent: ^2.0.0 peerDependencies: - "@preact/preset-vite": "*" - typescript: ">= 4.3.x" - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - vite-plugin-glimmerx: "*" - peerDependenciesMeta: - "@preact/preset-vite": - optional: true - typescript: - optional: true - vite-plugin-glimmerx: - optional: true - checksum: 5455c4ae88e232546c7e805b0ed85eb8392055dc8b1f5e82c2e507d008466e2cf3c06ac1b15299597ab1b55132815c3fd356fc09145f94d79baac343ac12b5aa + storybook: ^8.4.0 + vite: ^4.0.0 || ^5.0.0 + checksum: 8/c815656077286879c5c4fe38813a14cc35e8961607ef8c1e1b7c9abad6176e951a8c3804b2d9893748edbc701c86db923719dd76f4b298e0be8478332c5676d1 languageName: node linkType: hard @@ -3496,6 +3474,15 @@ __metadata: languageName: node linkType: hard +"@storybook/components@npm:^8.4.0": + version: 8.4.0 + resolution: "@storybook/components@npm:8.4.0" + peerDependencies: + storybook: ^8.4.0 + checksum: 8/6b8c35d55b153ddce3b9021fc8050eb392776feec2f50ac67a3ed8f57a1d720e0f581190b26620282e1772df9d687c69bc5b39dc4d50402c619abd9a082a0191 + languageName: node + linkType: hard + "@storybook/core-client@npm:7.6.0-alpha.2": version: 7.6.0-alpha.2 resolution: "@storybook/core-client@npm:7.6.0-alpha.2" @@ -3645,6 +3632,17 @@ __metadata: languageName: node linkType: hard +"@storybook/csf-plugin@npm:8.4.0": + version: 8.4.0 + resolution: "@storybook/csf-plugin@npm:8.4.0" + dependencies: + unplugin: ^1.3.1 + peerDependencies: + storybook: ^8.4.0 + checksum: 8/8d9b9491d8b8e7a96fa76522f0661f3af9a7ab610ab3eb1fed025ab66ca083e6433d36605c7d22ce2dac6469eb21a39f067e25d6ba9107d4d7bb979191d4b6a4 + languageName: node + linkType: hard + "@storybook/csf-tools@npm:7.5.1, @storybook/csf-tools@npm:^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": version: 7.5.1 resolution: "@storybook/csf-tools@npm:7.5.1" @@ -3755,6 +3753,15 @@ __metadata: languageName: node linkType: hard +"@storybook/manager-api@npm:^8.4.0": + version: 8.4.0 + resolution: "@storybook/manager-api@npm:8.4.0" + peerDependencies: + storybook: ^8.4.0 + checksum: 8/a5ae11f2997fb8d0c857e3049466f938b7f321a56c57f4794efc69023a9c7d0fe478d7ead95b91865d58041ecdf662fdc15e06358b22a113ffedd62545ec9926 + languageName: node + linkType: hard + "@storybook/manager@npm:7.6.0-alpha.2": version: 7.6.0-alpha.2 resolution: "@storybook/manager@npm:7.6.0-alpha.2" @@ -3834,10 +3841,12 @@ __metadata: languageName: node linkType: hard -"@storybook/preview@npm:7.6.0-alpha.2": - version: 7.6.0-alpha.2 - resolution: "@storybook/preview@npm:7.6.0-alpha.2" - checksum: 65434cfa4da9f0693de6f378a2aa9de0423c232afedf4e653832005f35438d6a6acd31c2a76d1319931b99e21a38adaa080170ec8d2194d10c8496c4afb511f4 +"@storybook/preview-api@npm:^8.4.0": + version: 8.4.0 + resolution: "@storybook/preview-api@npm:8.4.0" + peerDependencies: + storybook: ^8.4.0 + checksum: 8/a748992fdac8025b1ce70e516249ee5843b4c7acd1635a55ab2fcab2c5b4416d00fc501ba4f2fdbf177f3b870d32416f7cb423d79e6a8cbb42858d8537026d79 languageName: node linkType: hard @@ -3851,26 +3860,65 @@ __metadata: languageName: node linkType: hard -"@storybook/react-vite@npm:^7.6.0-alpha.2": - version: 7.6.0-alpha.2 - resolution: "@storybook/react-vite@npm:7.6.0-alpha.2" +"@storybook/react-dom-shim@npm:8.4.0": + version: 8.4.0 + resolution: "@storybook/react-dom-shim@npm:8.4.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.4.0 + checksum: 8/07bcaecc6b38d133ddef96e5c9f045ac0c2083ef181ada66c9889c7494dcdc5807696b8526b794c01e798fb0b813664de70b401cd4421e8ac4dda09c847fbc56 + languageName: node + linkType: hard + +"@storybook/react-vite@npm:^8.4.0": + version: 8.4.0 + resolution: "@storybook/react-vite@npm:8.4.0" dependencies: - "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.3.0" - "@rollup/pluginutils": "npm:^5.0.2" - "@storybook/builder-vite": "npm:7.6.0-alpha.2" - "@storybook/react": "npm:7.6.0-alpha.2" - "@vitejs/plugin-react": "npm:^3.0.1" - magic-string: "npm:^0.30.0" - react-docgen: "npm:^7.0.0" + "@joshwooding/vite-plugin-react-docgen-typescript": 0.3.0 + "@rollup/pluginutils": ^5.0.2 + "@storybook/builder-vite": 8.4.0 + "@storybook/react": 8.4.0 + find-up: ^5.0.0 + magic-string: ^0.30.0 + react-docgen: ^7.0.0 + resolve: ^1.22.8 + tsconfig-paths: ^4.2.0 peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - checksum: 2fa79e38bb0d19dd080ac6ad6ba92d94d0f0dd7d0fb9ac49df2bc6aebe1cfe5b9c91f437e9e305ca9e7f74976c27d0e616cb7da6f57f27b87dcc6d4ec6b344a4 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.4.0 + vite: ^4.0.0 || ^5.0.0 + checksum: 8/05a6c897938a5d9231e25c5abcbb82bb1628313b5596e018222c351ea76f54ff12b911d47a9ab6d453859f403ae7ce36790ff1fbeaad1f4568b5e52c0d6c9437 + languageName: node + linkType: hard + +"@storybook/react@npm:8.4.0": + version: 8.4.0 + resolution: "@storybook/react@npm:8.4.0" + dependencies: + "@storybook/components": ^8.4.0 + "@storybook/global": ^5.0.0 + "@storybook/manager-api": ^8.4.0 + "@storybook/preview-api": ^8.4.0 + "@storybook/react-dom-shim": 8.4.0 + "@storybook/theming": ^8.4.0 + peerDependencies: + "@storybook/test": 8.4.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.4.0 + typescript: ">= 4.2.x" + peerDependenciesMeta: + "@storybook/test": + optional: true + typescript: + optional: true + checksum: 8/72ac6850d279a8c8ec778da03ece4f5aefe204c481d48689e3625375d7a36c3d4ed404bb80c113a597ddad2763c40f987e4df72d54dc17cbefe87b907e589964 languageName: node linkType: hard -"@storybook/react@npm:7.6.0-alpha.2, @storybook/react@npm:^7.6.0-alpha.2": +"@storybook/react@npm:^7.6.0-alpha.2": version: 7.6.0-alpha.2 resolution: "@storybook/react@npm:7.6.0-alpha.2" dependencies: @@ -4015,6 +4063,15 @@ __metadata: languageName: node linkType: hard +"@storybook/theming@npm:^8.4.0": + version: 8.4.0 + resolution: "@storybook/theming@npm:8.4.0" + peerDependencies: + storybook: ^8.4.0 + checksum: 8/31512fae36853cbc2dd941a253db8fc4a9f8b1fbee29617d7956305652471088943a258c7c565bfa5bc26409844478fe9d11d06141c8e845b854d8580ee917a7 + languageName: node + linkType: hard + "@storybook/types@npm:7.5.1": version: 7.5.1 resolution: "@storybook/types@npm:7.5.1" @@ -4785,21 +4842,6 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-react@npm:^3.0.1": - version: 3.1.0 - resolution: "@vitejs/plugin-react@npm:3.1.0" - dependencies: - "@babel/core": "npm:^7.20.12" - "@babel/plugin-transform-react-jsx-self": "npm:^7.18.6" - "@babel/plugin-transform-react-jsx-source": "npm:^7.19.6" - magic-string: "npm:^0.27.0" - react-refresh: "npm:^0.14.0" - peerDependencies: - vite: ^4.1.0-beta.0 - checksum: 259a92a303cd736240dc0d3282d1261339e7bbcf51c5b326868c910b35d4bd22a360334b2dafa5bfc7f3e935f2cd0fdc7ccb6ec6b519b81017c4c4812cd05290 - languageName: node - linkType: hard - "@vitejs/plugin-react@npm:^4.1.0": version: 4.1.0 resolution: "@vitejs/plugin-react@npm:4.1.0" @@ -6642,13 +6684,6 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^0.9.3": - version: 0.9.3 - resolution: "es-module-lexer@npm:0.9.3" - checksum: be77d73aee709fdc68d22b9938da81dfee3bc45e8d601629258643fe5bfdab253d6e2540035e035cfa8cf52a96366c1c19b46bcc23b4507b1d44e5907d2e7f6c - languageName: node - linkType: hard - "es6-error@npm:^4.0.1": version: 4.1.1 resolution: "es6-error@npm:4.1.1" @@ -7452,18 +7487,18 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin": +"fsevents@patch:fsevents@npm%3A2.3.2#~builtin": version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1" + resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" dependencies: node-gyp: "npm:latest" conditions: os=darwin languageName: node linkType: hard -"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": +"fsevents@patch:fsevents@npm%3A^2.3.2#~builtin, fsevents@patch:fsevents@npm%3A~2.3.2#~builtin": version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" dependencies: node-gyp: "npm:latest" conditions: os=darwin @@ -9315,7 +9350,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.2.3": +"json5@npm:^2.2.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -11273,7 +11308,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.1": +"resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.8": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -11286,16 +11321,16 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin": +"resolve@patch:resolve@^1.22.8#~builtin, resolve@patch:resolve@npm%3A^1.10.0#~builtin, resolve@patch:resolve@npm%3A^1.14.2#~builtin, resolve@patch:resolve@npm%3A^1.20.0#~builtin, resolve@patch:resolve@npm%3A^1.22.1#~builtin": version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" + resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" dependencies: is-core-module: "npm:^2.13.0" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729 + checksum: 8/5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 languageName: node linkType: hard @@ -11356,7 +11391,7 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^2.25.0 || ^3.3.0, rollup@npm:^3.27.1": +"rollup@npm:^3.27.1": version: 3.29.4 resolution: "rollup@npm:3.29.4" dependencies: @@ -11931,6 +11966,13 @@ __metadata: languageName: node linkType: hard +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 8/8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b + languageName: node + linkType: hard + "strip-bom@npm:^4.0.0": version: 4.0.0 resolution: "strip-bom@npm:4.0.0" @@ -12210,6 +12252,17 @@ __metadata: languageName: node linkType: hard +"tsconfig-paths@npm:^4.2.0": + version: 4.2.0 + resolution: "tsconfig-paths@npm:4.2.0" + dependencies: + json5: ^2.2.2 + minimist: ^1.2.6 + strip-bom: ^3.0.0 + checksum: 8/28c5f7bbbcabc9dabd4117e8fdc61483f6872a1c6b02a4b1c4d68c5b79d06896c3cc9547610c4c3ba64658531caa2de13ead1ea1bf321c7b53e969c4752b98c7 + languageName: node + linkType: hard + "tslib@npm:^1.13.0, tslib@npm:^1.9.0": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -12332,13 +12385,13 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.2.2#optional!builtin": +"typescript@patch:typescript@^5.2.2#~builtin": version: 5.2.2 - resolution: "typescript@patch:typescript@npm%3A5.2.2#optional!builtin::version=5.2.2&hash=f3b441" + resolution: "typescript@patch:typescript@npm%3A5.2.2#~builtin::version=5.2.2&hash=d73830" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 062c1cee1990e6b9419ce8a55162b8dc917eb87f807e4de0327dbc1c2fa4e5f61bc0dd4e034d38ff541d1ed0479b53bcee8e4de3a4075c51a1724eb6216cb6f5 + checksum: 8/07106822b4305de3f22835cbba949a2b35451cad50888759b6818421290ff95d522b38ef7919e70fb381c5fe9c1c643d7dea22c8b31652a717ddbd57b7f4d554 languageName: node linkType: hard @@ -13054,31 +13107,31 @@ __metadata: version: 0.0.0-use.local resolution: "yarn-pnp-react-vite@workspace:." dependencies: - "@storybook/addon-essentials": "npm:^7.6.0-alpha.2" - "@storybook/addon-interactions": "npm:^7.6.0-alpha.2" - "@storybook/addon-links": "npm:^7.6.0-alpha.2" - "@storybook/addon-onboarding": "npm:^1.0.8" - "@storybook/blocks": "npm:^7.6.0-alpha.2" - "@storybook/react": "npm:^7.6.0-alpha.2" - "@storybook/react-vite": "npm:^7.6.0-alpha.2" - "@storybook/test-runner": "npm:^0.13.0" - "@storybook/testing-library": "npm:^0.2.2" - "@types/react": "npm:^18.2.33" - "@types/react-dom": "npm:^18.2.14" - "@typescript-eslint/eslint-plugin": "npm:^6.9.0" - "@typescript-eslint/parser": "npm:^6.9.0" - "@vitejs/plugin-react": "npm:^4.1.0" - concurrently: "npm:^8.2.2" - eslint: "npm:^8.52.0" - eslint-plugin-react-hooks: "npm:^4.6.0" - eslint-plugin-react-refresh: "npm:^0.4.3" - react: "npm:^18.2.0" - react-dom: "npm:^18.2.0" - serve: "npm:^14.2.1" - storybook: "npm:^7.6.0-alpha.2" - typescript: "npm:^5.2.2" - vite: "npm:^4.5.0" - wait-on: "npm:^7.0.1" + "@storybook/addon-essentials": ^7.6.0-alpha.2 + "@storybook/addon-interactions": ^7.6.0-alpha.2 + "@storybook/addon-links": ^7.6.0-alpha.2 + "@storybook/addon-onboarding": ^1.0.8 + "@storybook/blocks": ^7.6.0-alpha.2 + "@storybook/react": ^7.6.0-alpha.2 + "@storybook/react-vite": ^8.4.0 + "@storybook/test-runner": ^0.13.0 + "@storybook/testing-library": ^0.2.2 + "@types/react": ^18.2.33 + "@types/react-dom": ^18.2.14 + "@typescript-eslint/eslint-plugin": ^6.9.0 + "@typescript-eslint/parser": ^6.9.0 + "@vitejs/plugin-react": ^4.1.0 + concurrently: ^8.2.2 + eslint: ^8.52.0 + eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-react-refresh: ^0.4.3 + react: ^18.2.0 + react-dom: ^18.2.0 + serve: ^14.2.1 + storybook: ^7.6.0-alpha.2 + typescript: ^5.2.2 + vite: ^4.5.0 + wait-on: ^7.0.1 languageName: unknown linkType: soft