If you want to know which node modules you have installed, the answer is in the ~/.node-red/.config.json
file.
So we can easily grab that data and summarise it using the marvelous JSONata:
payload.nodes {
"TOTAL": $count($keys($)),
"node_modules": $keys($)
}
Below is an example flow. Note the example has two file read's to illustrate Linux and Windows file paths. You will need to adjust the file paths to suit your own installation.
This JSONata will give you a list of objects where each object contains the name of the module and a list of the node names for that module.
(
$each(payload.nodes,function($v, $k) {
{
"name": $k,
"nodes": $keys($v.nodes)
}
});
)
Which gives output that looks like this (I've removed the node-red module as it is long):
[
{
"name": "node-red-node-twitter",
"nodes": [
"twitter"
]
},
{
"name": "node-red-contrib-uibuilder",
"nodes": [
"uibuilder"
]
}
]
Or, more compactly:
$each(payload.nodes,function($v, $k) {
{$k: $keys($v.nodes)}
})
which gives:
[
...
{
"node-red-node-google": [
"google plus",
"google places",
"google-api-config",
"google geocoding",
"google directions",
"google calendar"
]
},
{
"node-red-contrib-blockly": [
"blockly"
]
},
...
]
A more compact alternative would be:
$sort(payload.nodes.*.nodes.(
$each($, function($v, $k) {
$k & " : " & $v.module
})
))
Gives a list of nodes sorted by node name and each node shows the module it comes from.
[
...
"file : node-red",
"function : node-red",
"google calendar : node-red-node-google",
"google directions : node-red-node-google",
"google geocoding : node-red-node-google",
"google places : node-red-node-google",
"google plus : node-red-node-google",
"google-api-config : node-red-node-google",
"httpin : node-red",
"httprequest : node-red",
"humanizer : node-red-contrib-moment",
...
]
Hello Totallyinformation,
I am trying to use your flow; however I cannot find the path to the config.json file. I do not see any of the directories in your example flow path. Can you help me find the path to config.json? Here is my .node-red tree
pi@raspberrypi:~/.node-red $ tree -d
.
├── lib
│ └── flows
└── node_modules
├── accepts
│ └── node_modules
├── ajv
│ ├── dist
│ ├── lib
│ │ ├── compile
│ │ ├── dot
│ │ ├── dotjs
│ │ └── refs
│ └── scripts
├── ansi-colors
│ └── types
├── ansi-regex
├── ansi-styles
├── anymatch
├── argparse
│ └── lib
├── array-find-index
├── array-uniq
├── asap
├── asn1
│ └── lib
│ └── ber
├── assert-plus
├── async
│ ├── dist
│ ├── internal
│ └── node_modules
│ └── lodash
│ └── fp
├── async-await-retry
├── asynckit
│ └── lib
├── aws4
├── aws-sign2
├── axios
│ ├── dist
│ ├── lib
│ │ ├── adapters
│ │ ├── cancel
│ │ ├── core
│ │ ├── defaults
│ │ │ └── env
│ │ ├── env
│ │ └── helpers
│ └── node_modules
│ └── form-data
│ └── lib
├── balanced-match
├── base64id
│ └── lib
├── base64-js
├── bcrypt-pbkdf
├── binary-extensions
├── bl
│ ├── node_modules
│ │ ├── readable-stream
│ │ │ └── lib
│ │ │ └── internal
│ │ │ └── streams
│ │ ├── safe-buffer
│ │ └── string_decoder
│ │ └── lib
│ └── test
├── bluebird
│ └── js
│ ├── browser
│ └── release
├── boolbase
├── brace-expansion
├── braces
│ └── lib
├── browser-stdout
├── buffer
├── buffer-from
├── byline
│ └── lib
├── bytes
├── cacheable-request
│ ├── node_modules
│ │ ├── get-stream
│ │ └── lowercase-keys
│ └── src
├── call-bind
│ └── test
├── caller-id
│ ├── lib
│ └── test
├── camelcase
├── camelcase-keys
├── caseless
├── chalk
│ ├── node_modules
│ │ └── supports-color
│ └── source
├── cheerio
│ ├── lib
│ │ └── api
│ ├── scripts
│ └── test
│ └── api
├── child_process
├── chokidar
│ ├── lib
│ └── types
├── cliui
│ └── build
│ └── lib
├── clone-response
│ ├── node_modules
│ │ └── mimic-response
│ └── src
├── co
├── color-convert
├── color-name
├── combined-stream
│ └── lib
├── commist
├── compressible
├── compression
│ └── node_modules
│ ├── debug
│ │ └── src
│ └── ms
├── concat-map
│ ├── example
│ └── test
├── concat-stream
│ └── node_modules
│ ├── readable-stream
│ │ └── lib
│ │ └── internal
│ │ └── streams
│ ├── safe-buffer
│ └── string_decoder
│ └── lib
├── cookie
├── core-util-is
│ └── lib
├── cors
│ └── lib
├── cross-spawn
│ └── lib
│ └── util
├── crypto
├── crypto-js
│ └── docs
├── css-select
│ └── lib
├── css-what
├── currently-unhandled
├── dashdash
│ ├── etc
│ └── lib
├── debug
│ └── src
├── decamelize
├── default-gateway
├── defer-to-connect
│ └── dist
├── define-data-property
│ └── test
├── delayed-stream
│ └── lib
├── depd
│ └── lib
│ └── browser
├── destroy
├── diff
│ ├── dist
│ └── lib
│ ├── convert
│ ├── diff
│ ├── patch
│ └── util
├── dns-packet
├── dns-socket
├── domain
│ ├── demo
│ │ └── test
│ ├── dist
│ │ ├── lib
│ │ └── test
│ ├── lib
│ └── test
├── domelementtype
├── domhandler
│ ├── lib
│ └── test
│ └── cases
├── dom-serializer
├── domutils
│ ├── lib
│ └── test
│ └── tests
├── dotty
│ ├── docs
│ │ └── public
│ │ ├── fonts
│ │ └── stylesheets
│ ├── lib
│ └── test
├── duplexer
│ └── test
├── duplexer3
├── duplexify
│ └── node_modules
│ ├── readable-stream
│ │ └── lib
│ │ └── internal
│ │ └── streams
│ ├── safe-buffer
│ └── string_decoder
│ └── lib
├── ecc-jsbn
│ └── lib
├── ee-first
├── emitter-component
│ └── test
├── emoji-regex
│ └── es2015
├── encodeurl
├── end-of-stream
├── engine.io
│ └── build
│ ├── parser-v3
│ ├── transports
│ └── transports-uws
├── engine.io-parser
│ └── build
│ ├── cjs
│ │ └── contrib
│ └── esm
│ └── contrib
├── entities
│ ├── lib
│ ├── maps
│ └── test
├── error-ex
├── escalade
│ ├── dist
│ └── sync
├── escape-html
├── escape-string-regexp
├── es-define-property
│ └── test
├── es-errors
│ └── test
├── etag
├── eventemitter3
│ └── umd
├── eventstore
│ ├── lib
│ │ └── databases
│ └── node_modules
│ ├── debug
│ │ └── src
│ ├── lodash
│ │ └── fp
│ └── ms
├── event-stream
│ ├── examples
│ └── test
│ └── helper
├── execa
│ └── lib
├── extend
├── extsprintf
│ └── lib
├── fast-deep-equal
│ └── es6
├── fast-json-stable-stringify
│ ├── benchmark
│ ├── example
│ └── test
├── filesize
│ └── lib
├── fill-range
├── find-up
├── flat
│ └── test
├── follow-redirects
├── forever-agent
├── form-data
│ └── lib
├── fresh
├── from
│ └── test
├── fs
├── fs.realpath
├── ftp
│ ├── lib
│ └── test
├── function-bind
│ └── test
├── get-caller-file
├── get-hrefs
│ ├── bin
│ ├── node_modules
│ │ ├── normalize-url
│ │ └── prepend-http
│ ├── src
│ └── test
├── get-intrinsic
│ └── test
├── getpass
│ └── lib
├── get-stdin
├── get-stream
├── glob
├── glob-parent
├── gopd
│ └── test
├── got
│ ├── node_modules
│ │ ├── decompress-response
│ │ ├── get-stream
│ │ └── mimic-response
│ └── source
│ └── utils
├── graceful-fs
├── gridstack
│ ├── dist
│ └── doc
├── har-schema
│ └── lib
├── har-validator
│ └── lib
├── has
│ ├── src
│ └── test
├── has-flag
├── hasown
├── has-property-descriptors
│ └── test
├── has-proto
│ └── test
├── has-symbols
│ └── test
│ └── shams
├── he
│ ├── bin
│ └── man
├── help-me
│ ├── doc
│ ├── fixture
│ │ ├── basic
│ │ ├── dir
│ │ │ └── a
│ │ ├── no-ext
│ │ ├── sameprefix
│ │ └── shortnames
│ └── node_modules
│ ├── readable-stream
│ │ └── lib
│ │ └── internal
│ │ └── streams
│ ├── safe-buffer
│ └── string_decoder
│ └── lib
├── hosted-git-info
├── htmlparser2
│ ├── lib
│ ├── node_modules
│ │ ├── domutils
│ │ │ ├── lib
│ │ │ └── test
│ │ │ └── tests
│ │ └── entities
│ │ ├── lib
│ │ ├── maps
│ │ └── test
│ └── test
│ ├── Documents
│ ├── Events
│ ├── Feeds
│ └── Stream
├── http-cache-semantics
├── http-errors
├── http-signature
│ └── lib
├── human-signals
│ └── build
│ └── src
├── iconv-lite
│ ├── encodings
│ │ └── tables
│ └── lib
├── ieee754
├── indent-string
├── inflight
├── inherits
├── internal-ip
├── ipaddr.js
│ └── lib
├── ip-regex
├── isarray
│ └── build
├── is-arrayish
├── is-binary-path
├── is-core-module
│ └── test
├── isexe
│ └── test
├── is-extglob
├── is-finite
├── is-fullwidth-code-point
├── is-glob
├── is-ip
├── is-number
├── is-plain-obj
├── is-stream
├── isstream
├── is-typedarray
├── is-unicode-supported
├── is-utf8
├── jquery
│ ├── dist
│ ├── external
│ │ └── sizzle
│ │ └── dist
│ └── src
│ ├── ajax
│ │ └── var
│ ├── attributes
│ ├── core
│ │ └── var
│ ├── css
│ │ └── var
│ ├── data
│ │ └── var
│ ├── deferred
│ ├── deprecated
│ ├── effects
│ ├── event
│ ├── exports
│ ├── manipulation
│ │ └── var
│ ├── queue
│ ├── traversing
│ │ └── var
│ └── var
├── jsbn
├── json-buffer
│ └── test
├── jsondate
├── json-schema
│ └── lib
├── json-schema-traverse
│ └── spec
│ └── fixtures
├── json-stringify-safe
│ └── test
├── jsprim
│ └── lib
├── js-sdsl
│ └── dist
│ ├── cjs
│ │ ├── container
│ │ │ ├── ContainerBase
│ │ │ ├── HashContainer
│ │ │ │ └── Base
│ │ │ ├── OtherContainer
│ │ │ ├── SequentialContainer
│ │ │ │ └── Base
│ │ │ └── TreeContainer
│ │ │ └── Base
│ │ └── utils
│ ├── esm
│ │ ├── container
│ │ │ ├── ContainerBase
│ │ │ ├── HashContainer
│ │ │ │ └── Base
│ │ │ ├── OtherContainer
│ │ │ ├── SequentialContainer
│ │ │ │ └── Base
│ │ │ └── TreeContainer
│ │ │ └── Base
│ │ └── utils
│ └── umd
├── js-yaml
│ ├── bin
│ ├── dist
│ └── lib
│ ├── schema
│ └── type
├── keyv
│ └── src
├── @leichtgewicht
│ └── ip-codec
│ └── types
├── leven
├── load-json-file
├── locate-path
├── lodash
│ ├── array
│ ├── chain
│ ├── collection
│ ├── date
│ ├── function
│ ├── internal
│ ├── lang
│ ├── math
│ ├── number
│ ├── object
│ ├── string
│ └── utility
├── log-symbols
├── loud-rejection
├── lowercase-keys
├── lru-cache
├── map-obj
├── map-stream
│ ├── examples
│ └── test
├── meow
├── merge-stream
├── mime
│ └── src
├── mime-db
├── mime-types
├── mimic-fn
├── minimatch
├── minimist
│ ├── example
│ └── test
├── mocha
│ ├── bin
│ ├── lib
│ │ ├── browser
│ │ ├── cli
│ │ ├── interfaces
│ │ ├── nodejs
│ │ │ └── reporters
│ │ └── reporters
│ └── node_modules
│ ├── brace-expansion
│ ├── find-up
│ ├── glob
│ ├── minimatch
│ │ └── lib
│ ├── ms
│ └── path-exists
├── moment
│ ├── dist
│ │ └── locale
│ ├── locale
│ ├── min
│ ├── src
│ │ ├── lib
│ │ │ ├── create
│ │ │ ├── duration
│ │ │ ├── format
│ │ │ ├── locale
│ │ │ ├── moment
│ │ │ ├── parse
│ │ │ ├── units
│ │ │ └── utils
│ │ └── locale
│ └── ts3.1-typings
├── mqtt
│ ├── bin
│ ├── dist
│ ├── doc
│ ├── lib
│ │ └── connect
│ ├── node_modules
│ │ ├── readable-stream
│ │ │ └── lib
│ │ │ └── internal
│ │ │ └── streams
│ │ ├── safe-buffer
│ │ ├── string_decoder
│ │ │ └── lib
│ │ └── ws
│ │ └── lib
│ └── types
│ └── lib
│ └── connect
├── mqtt-packet
│ ├── benchmarks
│ └── types
├── ms
├── mustache
│ ├── bin
│ └── wrappers
│ ├── dojo
│ ├── jquery
│ ├── mootools
│ ├── qooxdoo
│ └── yui3
├── nanoid
│ ├── async
│ └── non-secure
├── needle
│ ├── bin
│ ├── examples
│ │ └── stream-multiple
│ ├── lib
│ └── test
│ ├── files
│ └── utils
├── negotiator
│ └── lib
├── node-addon-api
│ └── tools
├── node-gyp-build
├── node-red-biglib
├── node-red-contrib-aggregator
│ └── aggregator
├── node-red-contrib-arp
│ └── arp
├── node-red-contrib-bigexec
│ └── bigexec
│ ├── icons
│ └── locales
│ └── en-US
├── node-red-contrib-boolean-logic
│ └── boolean-logic
├── node-red-contrib-bool-gate
│ ├── examples
│ ├── lib
│ └── nodes
│ └── icons
├── node-red-contrib-buffer-parser
│ ├── examples
│ ├── images
│ └── test
├── node-red-contrib-calc
│ ├── examples
│ ├── icons
│ └── images
├── node-red-contrib-countdown-2
│ ├── examples
│ ├── icons
│ └── images
├── node-red-contrib-cpu
│ ├── icons
│ └── images
├── node-red-contrib-device-stats
│ ├── dist
│ │ └── locales
│ │ └── en-US
│ ├── examples
│ └── node_modules
│ ├── source-map
│ │ ├── dist
│ │ └── lib
│ └── source-map-support
├── node-red-contrib-frequency-meter
├── node-red-contrib-ftp-client
│ └── examples
├── node-red-contrib-fullsplitter
│ └── icons
├── node-red-contrib-get-hrefs
│ ├── src
│ │ └── icons
│ └── test
├── node-red-contrib-ip
│ └── locales
│ └── en-US
├── node-red-contrib-isonline
│ └── isonline
├── node-red-contrib-latching-router
│ ├── icons
│ ├── node_modules
│ │ └── lodash
│ │ └── fp
│ └── tests
├── node-red-contrib-play-audio
│ ├── examples
│ └── locales
│ ├── en-US
│ └── ja
├── node-red-contrib-rpi-shutdown
├── node-red-contrib-string
│ └── string
│ ├── demo
│ └── icons
├── node-red-contrib-timed-counter
│ └── icons
├── node-red-contrib-tuya-auth
│ ├── examples
│ ├── icons
│ ├── lib
│ ├── node_modules
│ │ └── qs
│ │ ├── dist
│ │ ├── lib
│ │ └── test
│ └── test
├── node-red-contrib-tuya-devices
│ ├── img
│ ├── lib
│ └── nodes
│ └── icons
├── node-red-contrib-tuya-local
│ ├── icons
│ ├── images
│ ├── lib
│ └── node_modules
│ ├── debug
│ │ ├── dist
│ │ └── src
│ ├── p-retry
│ ├── retry
│ │ ├── example
│ │ ├── lib
│ │ └── test
│ │ └── integration
│ └── tuyapi
│ └── lib
├── node-red-contrib-tuya-smart-device
│ ├── examples
│ ├── img
│ └── src
│ └── icons
├── node-red-contrib-ui-led
│ └── dist
│ └── nodes
│ └── ui_led
│ ├── icons
│ └── shared
├── node-red-contrib-wifiscan
│ ├── icons
│ └── wifiscan
├── node-red-dashboard
│ ├── dist
│ │ ├── css
│ │ ├── fonts
│ │ └── js
│ └── nodes
│ ├── icons
│ └── locales
│ ├── de
│ ├── en-US
│ └── ja
├── node-red-node-email
│ ├── locales
│ │ ├── de
│ │ ├── en-US
│ │ └── ja
│ └── node_modules
│ ├── base32.js
│ │ ├── dist
│ │ └── test
│ ├── core-util-is
│ │ └── lib
│ ├── deepmerge
│ │ └── dist
│ ├── domelementtype
│ │ └── lib
│ │ └── esm
│ ├── domhandler
│ │ └── lib
│ │ └── esm
│ ├── dom-serializer
│ │ └── lib
│ │ └── esm
│ ├── domutils
│ │ └── lib
│ │ └── esm
│ ├── encoding-japanese
│ │ └── src
│ ├── entities
│ │ └── lib
│ │ ├── esm
│ │ │ └── generated
│ │ └── generated
│ ├── he
│ │ ├── bin
│ │ └── man
│ ├── htmlparser2
│ │ └── lib
│ │ └── esm
│ ├── html-to-text
│ │ └── lib
│ ├── iconv-lite
│ │ ├── encodings
│ │ │ └── tables
│ │ └── lib
│ ├── imap
│ │ ├── deps
│ │ │ └── encoding
│ │ ├── lib
│ │ └── test
│ ├── inherits
│ ├── ipv6-normalize
│ ├── isarray
│ │ └── build
│ ├── leac
│ │ └── lib
│ ├── libbase64
│ │ └── lib
│ ├── libmime
│ │ └── lib
│ ├── libqp
│ │ ├── lib
│ │ └── test
│ ├── linkify-it
│ │ ├── build
│ │ └── lib
│ ├── mailparser
│ │ ├── lib
│ │ └── node_modules
│ │ └── nodemailer
│ │ └── lib
│ │ ├── addressparser
│ │ ├── base64
│ │ ├── dkim
│ │ ├── fetch
│ │ ├── json-transport
│ │ ├── mail-composer
│ │ ├── mailer
│ │ ├── mime-funcs
│ │ ├── mime-node
│ │ ├── punycode
│ │ ├── qp
│ │ ├── sendmail-transport
│ │ ├── ses-transport
│ │ ├── shared
│ │ ├── smtp-connection
│ │ ├── smtp-pool
│ │ ├── smtp-transport
│ │ ├── stream-transport
│ │ ├── well-known
│ │ └── xoauth2
│ ├── mailsplit
│ │ ├── lib
│ │ └── node_modules
│ │ ├── libbase64
│ │ │ └── lib
│ │ ├── libmime
│ │ │ └── lib
│ │ └── libqp
│ │ ├── lib
│ │ └── test
│ ├── nodemailer
│ │ └── lib
│ │ ├── addressparser
│ │ ├── base64
│ │ ├── dkim
│ │ ├── fetch
│ │ ├── json-transport
│ │ ├── mail-composer
│ │ ├── mailer
│ │ ├── mime-funcs
│ │ ├── mime-node
│ │ ├── punycode
│ │ ├── qp
│ │ ├── sendmail-transport
│ │ ├── ses-transport
│ │ ├── shared
│ │ ├── smtp-connection
│ │ ├── smtp-pool
│ │ ├── smtp-transport
│ │ ├── stream-transport
│ │ ├── well-known
│ │ └── xoauth2
│ ├── node-pop3
│ │ ├── bin
│ │ ├── dist
│ │ │ ├── bin
│ │ │ └── src
│ │ ├── docs
│ │ ├── lib
│ │ └── src
│ ├── parseley
│ │ └── lib
│ ├── peberminta
│ │ └── lib
│ ├── punycode
│ ├── readable-stream
│ │ └── lib
│ ├── safer-buffer
│ ├── @selderee
│ │ └── plugin-htmlparser2
│ │ └── lib
│ ├── selderee
│ │ └── lib
│ ├── semver
│ │ └── bin
│ ├── smtp-server
│ │ ├── examples
│ │ ├── lib
│ │ ├── node_modules
│ │ │ └── nodemailer
│ │ │ └── lib
│ │ │ ├── addressparser
│ │ │ ├── base64
│ │ │ ├── dkim
│ │ │ ├── fetch
│ │ │ ├── json-transport
│ │ │ ├── mail-composer
│ │ │ ├── mailer
│ │ │ ├── mime-funcs
│ │ │ ├── mime-node
│ │ │ ├── punycode
│ │ │ ├── qp
│ │ │ ├── sendmail-transport
│ │ │ ├── ses-transport
│ │ │ ├── shared
│ │ │ ├── smtp-connection
│ │ │ ├── smtp-pool
│ │ │ ├── smtp-transport
│ │ │ ├── stream-transport
│ │ │ ├── well-known
│ │ │ └── xoauth2
│ │ └── test
│ ├── string_decoder
│ ├── tlds
│ ├── uc.micro
│ │ ├── build
│ │ ├── categories
│ │ │ ├── Cc
│ │ │ ├── Cf
│ │ │ ├── P
│ │ │ ├── S
│ │ │ └── Z
│ │ └── properties
│ │ └── Any
│ └── utf7
│ └── test
├── node-red-node-pi-gpio
│ └── locales
│ ├── de
│ ├── en-US
│ ├── ja
│ └── ko
├── node-red-node-ping
│ └── locales
│ ├── de
│ ├── en-US
│ └── ja
├── node-red-node-random
│ └── locales
│ ├── de
│ ├── en-US
│ └── ja
├── node-red-node-serialport
│ └── locales
│ ├── de
│ ├── en-US
│ └── ja
├── node-red-node-smooth
│ └── icons
├── node-wifiscanner
│ ├── examples
│ ├── lib
│ └── tests
│ └── fixtures
│ └── airport
├── normalize-package-data
│ └── lib
├── normalize-path
├── normalize-url
├── npm-run-path
├── nth-check
├── number-allocator
│ ├── lib
│ ├── test
│ │ └── typescript
│ └── types
│ └── lib
├── oauth-sign
├── object-assign
├── object-inspect
│ ├── example
│ └── test
│ └── browser
├── once
├── onetime
├── on-finished
├── on-headers
├── parent-require
├── parse-json
│ └── vendor
├── parseurl
├── path-exists
├── path-is-absolute
├── path-key
├── path-parse
├── path-type
├── pause-stream
│ └── test
├── p-cancelable
├── performance-now
│ ├── lib
│ ├── src
│ └── test
│ └── scripts
├── p-event
├── p-finally
├── picomatch
│ └── lib
├── pify
├── pinkie
├── pinkie-promise
├── p-limit
├── p-locate
├── p-queue
│ └── dist
├── prepend-http
├── p-retry
├── process-nextick-args
├── promise
│ ├── domains
│ ├── lib
│ ├── setimmediate
│ └── src
├── psl
│ ├── data
│ └── dist
├── p-timeout
├── public-ip
├── pump
├── punycode
├── qs
│ ├── dist
│ ├── lib
│ └── test
├── query-string
├── randombytes
├── range-parser
├── readable-stream
│ └── lib
├── readdirp
├── read-pkg
├── read-pkg-up
├── redent
├── reinterval
│ └── tests
├── repeating
├── request
│ └── lib
├── require-directory
├── resolve
│ ├── bin
│ ├── example
│ ├── lib
│ └── test
│ ├── dotdot
│ │ └── abc
│ ├── module_dir
│ │ ├── xmodules
│ │ │ └── aaa
│ │ ├── ymodules
│ │ │ └── aaa
│ │ └── zmodules
│ │ └── bbb
│ ├── node_path
│ │ ├── x
│ │ │ ├── aaa
│ │ │ └── ccc
│ │ └── y
│ │ ├── bbb
│ │ └── ccc
│ ├── pathfilter
│ │ └── deep_ref
│ ├── precedence
│ │ ├── aaa
│ │ └── bbb
│ ├── resolver
│ │ ├── baz
│ │ ├── browser_field
│ │ ├── dot_main
│ │ ├── dot_slash_main
│ │ ├── false_main
│ │ ├── incorrect_main
│ │ ├── invalid_main
│ │ ├── malformed_package_json
│ │ ├── multirepo
│ │ │ └── packages
│ │ │ ├── package-a
│ │ │ └── package-b
│ │ ├── nested_symlinks
│ │ │ └── mylib
│ │ ├── other_path
│ │ │ └── lib
│ │ ├── quux
│ │ │ └── foo
│ │ ├── same_names
│ │ │ └── foo
│ │ ├── symlinked
│ │ │ ├── _
│ │ │ │ ├── node_modules
│ │ │ │ └── symlink_target
│ │ │ └── package
│ │ └── without_basedir
│ └── shadowed_core
│ └── node_modules
│ └── util
├── responselike
│ └── src
├── retry
│ ├── example
│ └── lib
├── rfdc
│ └── test
├── safe-buffer
├── safer-buffer
├── sax
│ └── lib
├── semver
│ └── bin
├── send
│ └── node_modules
│ ├── debug
│ │ ├── node_modules
│ │ │ └── ms
│ │ └── src
│ └── ms
├── serialize-javascript
├── @serialport
│ ├── binding-mock
│ │ └── dist
│ ├── bindings-cpp
│ │ ├── dist
│ │ ├── node_modules
│ │ │ └── @serialport
│ │ │ ├── parser-delimiter
│ │ │ │ └── dist
│ │ │ └── parser-readline
│ │ │ └── dist
│ │ ├── prebuilds
│ │ │ ├── android-arm
│ │ │ ├── android-arm64
│ │ │ ├── darwin-x64+arm64
│ │ │ ├── linux-arm
│ │ │ ├── linux-arm64
│ │ │ ├── linux-x64
│ │ │ ├── win32-ia32
│ │ │ └── win32-x64
│ │ └── src
│ ├── bindings-interface
│ │ └── dist
│ ├── parser-byte-length
│ │ └── dist
│ ├── parser-cctalk
│ │ └── dist
│ ├── parser-delimiter
│ │ └── dist
│ ├── parser-inter-byte-timeout
│ │ └── dist
│ ├── parser-packet-length
│ │ └── dist
│ ├── parser-readline
│ │ └── dist
│ ├── parser-ready
│ │ └── dist
│ ├── parser-regex
│ │ └── dist
│ ├── parser-slip-encoder
│ │ └── dist
│ ├── parser-spacepacket
│ │ └── dist
│ └── stream
│ └── dist
├── serialport
│ └── dist
├── serve-static
├── set-function-length
├── setprototypeof
│ └── test
├── shebang-command
├── shebang-regex
├── shell-quote
│ ├── example
│ └── test
├── shortid
│ └── lib
│ ├── random
│ └── util
├── should
│ └── lib
│ └── ext
├── should-equal
├── should-format
│ └── tests
│ └── browser
├── should-type
├── side-channel
│ └── test
├── signal-exit
├── simple-statistics
│ ├── dist
│ └── src
├── @sindresorhus
│ └── is
│ └── dist
├── @socket.io
│ └── component-emitter
├── socket.io
│ ├── client-dist
│ └── dist
├── socket.io-adapter
│ └── dist
│ └── contrib
├── socket.io-parser
│ └── build
│ ├── cjs
│ ├── esm
│ └── esm-debug
├── sort-keys
├── spdx-correct
├── spdx-exceptions
├── spdx-expression-parse
├── spdx-license-ids
├── split
│ ├── examples
│ └── test
├── split2
│ └── node_modules
│ ├── readable-stream
│ │ └── lib
│ │ └── internal
│ │ └── streams
│ ├── safe-buffer
│ └── string_decoder
│ └── lib
├── sshpk
│ ├── bin
│ ├── lib
│ │ └── formats
│ └── man
│ └── man1
├── stack-trace
│ └── lib
├── statuses
├── stream
├── stream-combiner
│ └── test
├── stream-shift
├── strict-uri-encode
├── string
│ ├── dist
│ ├── lib
│ └── test
├── string_decoder
├── string-width
├── strip-ansi
├── strip-bom
├── strip-final-newline
├── strip-indent
│ └── node_modules
│ └── get-stdin
├── strip-json-comments
├── suncalc
├── supports-color
├── supports-preserve-symlinks-flag
│ └── test
├── systeminformation
│ └── lib
├── @szmarczak
│ └── http-timer
│ └── source
├── thingzi-logic-timers
│ ├── icons
│ ├── images
│ ├── node_modules
│ │ └── lodash
│ │ └── fp
│ └── schedule
├── through
│ └── test
├── thunkify
│ └── test
├── toidentifier
├── tolerance
├── to-readable-stream
├── to-regex-range
├── tough-cookie
│ └── lib
├── trim-newlines
├── ttb-node-red-counter
├── tunnel-agent
├── tuya-cloud-sdk-nodejs-ex
│ ├── example
│ │ ├── common
│ │ ├── device
│ │ └── user
│ └── tuyacloud
│ ├── client
│ │ ├── automation
│ │ ├── data
│ │ ├── device
│ │ ├── devicecontrol
│ │ ├── devicegroup
│ │ ├── devicemember
│ │ ├── home
│ │ ├── paringtoken
│ │ ├── scene
│ │ ├── time
│ │ ├── token
│ │ ├── user
│ │ └── weather
│ ├── common
│ └── exception
├── tuyapi
│ └── lib
├── tweetnacl
├── typedarray
│ ├── example
│ └── test
│ └── server
├── @types
│ ├── cookie
│ ├── cors
│ ├── node
│ │ ├── assert
│ │ ├── dns
│ │ ├── fs
│ │ ├── readline
│ │ ├── stream
│ │ └── timers
│ └── retry
├── undici-types
├── uri-js
│ └── dist
│ ├── es5
│ └── esnext
│ └── schemes
├── url-parse-lax
├── util-deprecate
├── uuid
│ ├── bin
│ └── lib
├── validate-npm-package-license
├── vary
├── verror
│ └── lib
├── which
│ └── bin
├── workerpool
│ ├── dist
│ └── src
│ └── generated
├── wrap-ansi
├── wrappy
├── ws
│ └── lib
├── xregexp
│ └── tests
├── xtend
├── y18n
│ └── build
│ └── lib
│ └── platform-shims
├── yallist
├── yargs
│ ├── build
│ │ └── lib
│ │ ├── typings
│ │ └── utils
│ ├── helpers
│ ├── lib
│ │ └── platform-shims
│ └── locales
├── yargs-parser
│ └── build
│ └── lib
├── yargs-unparser
│ └── node_modules
│ ├── camelcase
│ ├── decamelize
│ └── is-plain-obj
└── yocto-queue
1370 directories
Thanks,
Dave