Clarity is a scalable, accessible, customizable, open-source design system built with web components. Works with any JavaScript framework, created for enterprises, and designed to be inclusive.
Make sure you're running Node.js v20.3.1 (I have not tried other v20 versions but I expect the same result)
Run npm install
See error:
```
% npm install
npm WARN deprecated @npmcli/move-file@2.0.1: This functionality has been moved to @npmcli/fs
npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated sane@4.1.0: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated istanbul@0.4.5: This module is no longer maintained, try this instead:
npm WARN deprecated npm i nyc
npm WARN deprecated Visit https://istanbul.js.org/integrations for other alternatives.
npm WARN deprecated core-js@2.6.12: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
npm WARN deprecated core-js@3.20.3: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
npm ERR! code 1
npm ERR! path /[...]/core/node_modules/lmdb
npm ERR! command failed
npm ERR! command sh -c node-gyp-build
npm ERR! CXX(target) Release/obj.target/lmdb/src/lmdb-js.o
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@8.4.1
npm ERR! gyp info using node@20.3.1 | darwin | x64
npm ERR! gyp info find Python using Python version 3.10.8 found at "/usr/local/opt/python@3.10/bin/python3.10"
npm ERR! gyp info spawn /usr/local/opt/python@3.10/bin/python3.10
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args '/[...]/core/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args 'binding.gyp',
npm ERR! gyp info spawn args '-f',
npm ERR! gyp info spawn args 'make',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/[...]/core/node_modules/lmdb/build/config.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/[...]/core/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/Users/johndough/Library/Caches/node-gyp/20.3.1/include/node/common.gypi',
npm ERR! gyp info spawn args '-Dlibrary=shared_library',
npm ERR! gyp info spawn args '-Dvisibility=default',
npm ERR! gyp info spawn args '-Dnode_root_dir=/Users/johndough/Library/Caches/node-gyp/20.3.1',
npm ERR! gyp info spawn args '-Dnode_gyp_dir=/[...]/core/node_modules/node-gyp',
npm ERR! gyp info spawn args '-Dnode_lib_file=/Users/johndough/Library/Caches/node-gyp/20.3.1/<(target_arch)/node.lib',
npm ERR! gyp info spawn args '-Dmodule_root_dir=/[...]/core/node_modules/lmdb',
npm ERR! gyp info spawn args '-Dnode_engine=v8',
npm ERR! gyp info spawn args '--depth=.',
npm ERR! gyp info spawn args '--no-parallel',
npm ERR! gyp info spawn args '--generator-output',
npm ERR! gyp info spawn args 'build',
npm ERR! gyp info spawn args '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! In file included from ../src/lmdb-js.cpp:1:
npm ERR! In file included from ../src/lmdb-js.h:32:
npm ERR! In file included from ../../nan/nan.h:178:
npm ERR! ../../nan/nan_callbacks.h:55:23: error: no member named 'AccessorSignature' in namespace 'v8'
npm ERR! typedef v8::Local Sig;
npm ERR! ~~~~^
npm ERR! In file included from ../src/lmdb-js.cpp:1:
npm ERR! In file included from ../src/lmdb-js.h:32:
npm ERR! ../../nan/nan.h:684:39: warning: 'IdleNotificationDeadline' is deprecated: Use MemoryPressureNotification() to influence the GC schedule. [-Wdeprecated-declarations]
npm ERR! return v8::Isolate::GetCurrent()->IdleNotificationDeadline(
npm ERR! ^
npm ERR! /Users/johndough/Library/Caches/node-gyp/20.3.1/include/node/v8-isolate.h:1291:3: note: 'IdleNotificationDeadline' has been explicitly marked deprecated here
npm ERR! V8_DEPRECATE_SOON(
npm ERR! ^
npm ERR! /Users/johndough/Library/Caches/node-gyp/20.3.1/include/node/v8config.h:550:39: note: expanded from macro 'V8_DEPRECATE_SOON'
npm ERR! # define V8_DEPRECATE_SOON(message) [[deprecated(message)]]
npm ERR! ^
npm ERR! In file included from ../src/lmdb-js.cpp:1:
npm ERR! In file included from ../src/lmdb-js.h:32:
npm ERR! ../../nan/nan.h:2544:8: error: no matching member function for call to 'SetAccessor'
npm ERR! tpl->SetAccessor(
npm ERR! ~~~~~^~~~~~~~~~~
npm ERR! /Users/johndough/Library/Caches/node-gyp/20.3.1/include/node/v8-template.h:816:8: note: candidate function not viable: no known conversion from 'imp::Sig' (aka 'int') to 'v8::SideEffectType' for 7th argument
npm ERR! void SetAccessor(
npm ERR! ^
npm ERR! /Users/johndough/Library/Caches/node-gyp/20.3.1/include/node/v8-template.h:809:8: note: candidate function not viable: no known conversion from 'imp::NativeGetter' (aka 'void (*)(v8::Local, const v8::PropertyCallbackInfo &)') to 'v8::AccessorGetterCallback' (aka 'void (*)(Local, const PropertyCallbackInfo &)') for 2nd argument
npm ERR! void SetAccessor(
npm ERR! ^
npm ERR! 1 warning and 2 errors generated.
npm ERR! make: *** [Release/obj.target/lmdb/src/lmdb-js.o] Error 1
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack at ChildProcess.onExit (/[...]/core/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:511:28)
npm ERR! gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:293:12)
npm ERR! gyp ERR! System Darwin 22.5.0
npm ERR! gyp ERR! command "/usr/local/bin/node" "/[...]/core/node_modules/.bin/node-gyp" "rebuild"
npm ERR! gyp ERR! cwd /[...]/core/node_modules/lmdb
npm ERR! gyp ERR! node -v v20.3.1
npm ERR! gyp ERR! node-gyp -v v8.4.1
npm ERR! gyp ERR! not ok
```
Expected behavior
This is what one would expect (this was produced while running on v18.16.1, i.e. the current LTS):
```
% npm install
npm WARN deprecated @types/jasmine-expect@3.8.1: This is a stub types definition for jasmine-expect (https://github.com/JamieMason/Jasmine-Matchers). jasmine-expect provides its own type definitions, so you don\'t need @types/jasmine-expect installed!
npm WARN deprecated @types/cssnano@5.1.0: This is a stub types definition. cssnano provides its own type definitions, so you do not need this installed.
npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated @npmcli/move-file@2.0.1: This functionality has been moved to @npmcli/fs
npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated source-map-resolve@0.6.0: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated sane@4.1.0: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated axios@0.19.2: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410
npm WARN deprecated istanbul@0.4.5: This module is no longer maintained, try this instead:
npm WARN deprecated npm i nyc
npm WARN deprecated Visit https://istanbul.js.org/integrations for other alternatives.
npm WARN deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x.
npm WARN deprecated core-js@2.6.12: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
npm WARN deprecated core-js@3.20.3: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
> prepare
> husky install
husky - Git hooks installed
added 5570 packages, and audited 5797 packages in 3m
550 packages are looking for funding
run `npm fund` for details
206 vulnerabilities (1 low, 169 moderate, 35 high, 1 critical)
To address issues that do not require attention, run:
npm audit fix
To address all issues possible (including breaking changes), run:
npm audit fix --force
Some issues need review, and may require choosing
a different dependency.
Run `npm audit` for details.
```
Versions
Clarity project:
[x] Clarity Core
[x] Clarity Angular/UI
This is while running npm install on the top-level directory (to be able to build and run Storybook), so I believe both are affected, but note that we exclusively use Clarity Core.
Clarity version:
[ ] v5.x
[x] v6.x
We exclusively use Clarity Core v6, and this is running from source, on latest main, so definitely happening for v6.x. I would expect the same, or worse, on v5.x.
Framework:
[ ] Angular
[ ] React
[ ] Vue
[x] Other: Irrelevant here
Device:
Type: MacBook Pro
OS: Ventura 13.4.1
Browser: N/A
Version N/A
Additional notes
I think a good starting point would be to upgrade dependencies as a lot are giving deprecation warning. Some might be harder to upgrade, but doing so one-by-one, low-hanging fruits first, would definitely help. At CloudHealth we use Renovate (website / repo) and it's been exceptional.
This is the output of npm outdated at the time of opening this issue:
Describe the bug
How to reproduce
Steps to reproduce the behavior:
npm install
Expected behavior
This is what one would expect (this was produced while running on v18.16.1, i.e. the current LTS):
Versions
Clarity project:
This is while running
npm install
on the top-level directory (to be able to build and run Storybook), so I believe both are affected, but note that we exclusively use Clarity Core.Clarity version:
We exclusively use Clarity Core v6, and this is running from source, on latest
main
, so definitely happening for v6.x. I would expect the same, or worse, on v5.x.Framework:
Device:
Additional notes
I think a good starting point would be to upgrade dependencies as a lot are giving deprecation warning. Some might be harder to upgrade, but doing so one-by-one, low-hanging fruits first, would definitely help. At CloudHealth we use Renovate (website / repo) and it's been exceptional.
This is the output of
npm outdated
at the time of opening this issue:That's a lot đŸ˜…