From fd371e01c5178fe79501b0cc05a2100275d9c288 Mon Sep 17 00:00:00 2001 From: Hiroyuki Okada Date: Wed, 13 Mar 2024 20:14:39 +0900 Subject: [PATCH] update biome config * chore: update biome config * ci: remove pre-commit --- .github/workflows/pre-commit.yml | 14 - .pre-commit-config.yaml | 9 - biome.json | 29 +- jest.config.json | 8 +- package.json | 167 +++++----- renovate.json | 69 ++--- settings.js | 510 +++++++++++++++---------------- tsconfig.json | 24 +- 8 files changed, 402 insertions(+), 428 deletions(-) delete mode 100644 .github/workflows/pre-commit.yml delete mode 100644 .pre-commit-config.yaml diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml deleted file mode 100644 index d0707c1..0000000 --- a/.github/workflows/pre-commit.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: pre-commit - -on: - pull_request: - push: - branches: [main] - -jobs: - pre-commit: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - - uses: pre-commit/action@v3.0.1 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml deleted file mode 100644 index 49b9ad9..0000000 --- a/.pre-commit-config.yaml +++ /dev/null @@ -1,9 +0,0 @@ -repos: - - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 - hooks: - - id: trailing-whitespace - - id: end-of-file-fixer - - id: check-yaml - - id: double-quote-string-fixer - - id: requirements-txt-fixer diff --git a/biome.json b/biome.json index 91fea70..12b8b15 100644 --- a/biome.json +++ b/biome.json @@ -1,15 +1,18 @@ { - "$schema": "https://biomejs.dev/schemas/1.6.1/schema.json", - "organizeImports": { - "enabled": true - }, - "linter": { - "enabled": true, - "rules": { - "suspicious": { - "noExplicitAny": "off" - }, - "recommended": true - } - } + "$schema": "https://biomejs.dev/schemas/1.6.1/schema.json", + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "suspicious": { + "noExplicitAny": "off" + }, + "recommended": true + } + }, + "files": { + "ignore": [".devcontainer/*", ".vscode/*", "examples/*.json"] + } } diff --git a/jest.config.json b/jest.config.json index 903fc82..db5c0fc 100644 --- a/jest.config.json +++ b/jest.config.json @@ -1,6 +1,6 @@ { - "bail": 1, - "verbose": true, - "preset": "ts-jest", - "testEnvironment": "node" + "bail": 1, + "verbose": true, + "preset": "ts-jest", + "testEnvironment": "node" } diff --git a/package.json b/package.json index 816755b..8e1a883 100644 --- a/package.json +++ b/package.json @@ -1,87 +1,84 @@ { - "name": "@red-mobile/red-mobile-nodes", - "version": "3.4.1", - "description": "Extra nodes for RedMobile", - "scripts": { - "start": "npx node-red --setting=settings.js -v", - "build": "run-p lint type-check copy", - "copy": "copyfiles -u 1 \"./nodes/**/*.{png,svg,json,html}\" \"./dist/nodes/\"", - "type-check": "npx tsc", - "test": "npx jest --runInBand nodes/", - "coverage": "npx jest --runInBand --coverage nodes/", - "lint": "npx @biomejs/biome check --apply nodes/" - }, - "keywords": [ - "redmobile", - "nodered" - ], - "author": "hiroyuki okada", - "license": "MIT", - "dependencies": { - "@types/node-red-node-test-helper": "0.3.4", - "axios": "1.6.7", - "is-base64": "1.1.0", - "qs": "6.12.0", - "ws": "8.16.0" - }, - "devDependencies": { - "@biomejs/biome": "1.6.1", - "@types/is-base64": "1.1.3", - "@types/jest": "29.5.12", - "@types/node-red": "1.3.5", - "@types/node-red-node-test-helper": "0.3.4", - "@types/ws": "8.5.10", - "copyfiles": "2.4.1", - "jest": "29.7.0", - "node-red": "3.1.7", - "node-red-node-test-helper": "0.3.3", - "npm-run-all2": "6.1.2", - "ts-jest": "29.1.2", - "typescript": "5.4.2" - }, - "node-red": { - "nodes": { - "sensor subscribe": "./dist/nodes/sensors/subscribe/subscribe.js", - "sensor unsubscribe": "./dist/nodes/sensors/unsubscribe/unsubscribe.js", - "light": "./dist/nodes/sensors/light/light.js", - "motion": "./dist/nodes/sensors/motion/motion.js", - "gyroscope": "./dist/nodes/sensors/gyroscope/gyroscope.js", - "compass": "./dist/nodes/sensors/compass/compass.js", - "magnetic": "./dist/nodes/sensors/magnetic/magnetic.js", - "dB": "./dist/nodes/sensors/db/db.js", - "battery": "./dist/nodes/sensors/battery/battery.js", - "location": "./dist/nodes/sensors/geolocation/geolocation.js", - "proximity": "./dist/nodes/sensors/proximity/proximity.js", - "nfc": "./dist/nodes/sensors/nfc/nfc.js", - "speech-to-text": "./dist/nodes/cognitives/speech-to-text/speech-to-text.js", - "text-to-speech": "./dist/nodes/cognitives/text-to-speech/text-to-speech.js", - "in-app-browser": "./dist/nodes/in-app-browser/in-app-browser.js", - "vibrate": "./dist/nodes/notifications/vibrate/vibrate.js", - "beep": "./dist/nodes/notifications/beep/beep.js", - "alert": "./dist/nodes/notifications/alert/alert.js", - "confirm": "./dist/nodes/notifications/confirm/confirm.js", - "prompt": "./dist/nodes/notifications/prompt/prompt.js", - "camera-command": "./dist/nodes/camera-command/camera.js", - "camera": "./dist/nodes/camera/camera.js", - "serial": "./dist/nodes/serial/serial.js", - "volume": "./dist/nodes/volume/volume.js", - "intent": "./dist/nodes/intent/intent.js", - "sqlite": "./dist/nodes/sqlite/sqlite.js", - "ble-bledevice": "./dist/nodes/ble/00-bledevice.js", - "ble-notification": "./dist/nodes/ble/01-notification.js", - "ble-scan": "./dist/nodes/ble/02-scan.js", - "ble-connect": "./dist/nodes/ble/03-connect.js", - "ble-disconnect": "./dist/nodes/ble/04-disconnect.js", - "ble-read": "./dist/nodes/ble/05-read.js", - "ble-write": "./dist/nodes/ble/06-write.js", - "ble-subscribe": "./dist/nodes/ble/07-subscribe.js", - "ble-unsubscribe": "./dist/nodes/ble/08-unsubscribe.js", - "clipboard": "./dist/nodes/clipboard/clipboard.js", - "qrcode-scan": "./dist/nodes/qrcode/scan.js", - "mlkit": "./dist/nodes/mlkit/mlkit.js" - } - }, - "engines": { - "node": "18" - } + "name": "@red-mobile/red-mobile-nodes", + "version": "3.4.1", + "description": "Extra nodes for RedMobile", + "scripts": { + "start": "npx node-red --setting=settings.js -v", + "build": "run-p lint type-check copy", + "copy": "copyfiles -u 1 \"./nodes/**/*.{png,svg,json,html}\" \"./dist/nodes/\"", + "type-check": "npx tsc", + "test": "npx jest --runInBand nodes/", + "coverage": "npx jest --runInBand --coverage nodes/", + "lint": "npx @biomejs/biome check --apply ." + }, + "keywords": ["redmobile", "nodered"], + "author": "hiroyuki okada", + "license": "MIT", + "dependencies": { + "@types/node-red-node-test-helper": "0.3.4", + "axios": "1.6.7", + "is-base64": "1.1.0", + "qs": "6.12.0", + "ws": "8.16.0" + }, + "devDependencies": { + "@biomejs/biome": "1.6.1", + "@types/is-base64": "1.1.3", + "@types/jest": "29.5.12", + "@types/node-red": "1.3.5", + "@types/node-red-node-test-helper": "0.3.4", + "@types/ws": "8.5.10", + "copyfiles": "2.4.1", + "jest": "29.7.0", + "node-red": "3.1.7", + "node-red-node-test-helper": "0.3.3", + "npm-run-all2": "6.1.2", + "ts-jest": "29.1.2", + "typescript": "5.4.2" + }, + "node-red": { + "nodes": { + "sensor subscribe": "./dist/nodes/sensors/subscribe/subscribe.js", + "sensor unsubscribe": "./dist/nodes/sensors/unsubscribe/unsubscribe.js", + "light": "./dist/nodes/sensors/light/light.js", + "motion": "./dist/nodes/sensors/motion/motion.js", + "gyroscope": "./dist/nodes/sensors/gyroscope/gyroscope.js", + "compass": "./dist/nodes/sensors/compass/compass.js", + "magnetic": "./dist/nodes/sensors/magnetic/magnetic.js", + "dB": "./dist/nodes/sensors/db/db.js", + "battery": "./dist/nodes/sensors/battery/battery.js", + "location": "./dist/nodes/sensors/geolocation/geolocation.js", + "proximity": "./dist/nodes/sensors/proximity/proximity.js", + "nfc": "./dist/nodes/sensors/nfc/nfc.js", + "speech-to-text": "./dist/nodes/cognitives/speech-to-text/speech-to-text.js", + "text-to-speech": "./dist/nodes/cognitives/text-to-speech/text-to-speech.js", + "in-app-browser": "./dist/nodes/in-app-browser/in-app-browser.js", + "vibrate": "./dist/nodes/notifications/vibrate/vibrate.js", + "beep": "./dist/nodes/notifications/beep/beep.js", + "alert": "./dist/nodes/notifications/alert/alert.js", + "confirm": "./dist/nodes/notifications/confirm/confirm.js", + "prompt": "./dist/nodes/notifications/prompt/prompt.js", + "camera-command": "./dist/nodes/camera-command/camera.js", + "camera": "./dist/nodes/camera/camera.js", + "serial": "./dist/nodes/serial/serial.js", + "volume": "./dist/nodes/volume/volume.js", + "intent": "./dist/nodes/intent/intent.js", + "sqlite": "./dist/nodes/sqlite/sqlite.js", + "ble-bledevice": "./dist/nodes/ble/00-bledevice.js", + "ble-notification": "./dist/nodes/ble/01-notification.js", + "ble-scan": "./dist/nodes/ble/02-scan.js", + "ble-connect": "./dist/nodes/ble/03-connect.js", + "ble-disconnect": "./dist/nodes/ble/04-disconnect.js", + "ble-read": "./dist/nodes/ble/05-read.js", + "ble-write": "./dist/nodes/ble/06-write.js", + "ble-subscribe": "./dist/nodes/ble/07-subscribe.js", + "ble-unsubscribe": "./dist/nodes/ble/08-unsubscribe.js", + "clipboard": "./dist/nodes/clipboard/clipboard.js", + "qrcode-scan": "./dist/nodes/qrcode/scan.js", + "mlkit": "./dist/nodes/mlkit/mlkit.js" + } + }, + "engines": { + "node": "18" + } } diff --git a/renovate.json b/renovate.json index 83b7ba5..c607aef 100644 --- a/renovate.json +++ b/renovate.json @@ -1,38 +1,35 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "config:base", - ":timezone(Asia/Tokyo)" - ], - "rangeStrategy": "pin", - "major": { - "automerge": false - }, - "nodenv": { - "enabled": false - }, - "lockFileMaintenance": { - "enabled": true, - "automerge": true, - "platformAutomerge": true - }, - "packageRules": [ - { - "automerge": true, - "platformAutomerge": true, - "matchManagers": ["pre-commit"] - }, - { - "automerge": true, - "platformAutomerge": true, - "matchUpdateTypes": ["minor", "patch", "pin", "digest"] - }, - { - "description": "Ignore nodejs", - "matchPackageNames": ["node"], - "matchManagers": ["npm"], - "matchDepTypes": ["engines"], - "enabled": false - } - ] + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": ["config:base", ":timezone(Asia/Tokyo)"], + "rangeStrategy": "pin", + "major": { + "automerge": false + }, + "nodenv": { + "enabled": false + }, + "lockFileMaintenance": { + "enabled": true, + "automerge": true, + "platformAutomerge": true + }, + "packageRules": [ + { + "automerge": true, + "platformAutomerge": true, + "matchManagers": ["pre-commit"] + }, + { + "automerge": true, + "platformAutomerge": true, + "matchUpdateTypes": ["minor", "patch", "pin", "digest"] + }, + { + "description": "Ignore nodejs", + "matchPackageNames": ["node"], + "matchManagers": ["npm"], + "matchDepTypes": ["engines"], + "enabled": false + } + ] } diff --git a/settings.js b/settings.js index 3f1bb39..0c61b0d 100644 --- a/settings.js +++ b/settings.js @@ -19,259 +19,259 @@ // var fs = require('fs'); module.exports = { - // the tcp port that the Node-RED web server is listening on - uiPort: process.env.PORT || 1880, - - // By default, the Node-RED UI accepts connections on all IPv4 interfaces. - // To listen on all IPv6 addresses, set uiHost to "::", - // The following property can be used to listen on a specific interface. For - // example, the following would only allow connections from the local machine. - //uiHost: "127.0.0.1", - - // Retry time in milliseconds for MQTT connections - mqttReconnectTime: 15000, - - // Retry time in milliseconds for Serial port connections - serialReconnectTime: 15000, - - // Retry time in milliseconds for TCP socket connections - //socketReconnectTime: 10000, - - // Timeout in milliseconds for TCP server socket connections - // defaults to no timeout - //socketTimeout: 120000, - - // Maximum number of messages to wait in queue while attempting to connect to TCP socket - // defaults to 1000 - //tcpMsgQueueSize: 2000, - - // Timeout in milliseconds for HTTP request connections - // defaults to 120 seconds - //httpRequestTimeout: 120000, - - // The maximum length, in characters, of any message sent to the debug sidebar tab - debugMaxLength: 1000, - - // The maximum number of messages nodes will buffer internally as part of their - // operation. This applies across a range of nodes that operate on message sequences. - // defaults to no limit. A value of 0 also means no limit is applied. - //nodeMessageBufferMaxLength: 0, - - // To disable the option for using local files for storing keys and certificates in the TLS configuration - // node, set this to true - //tlsConfigDisableLocalFiles: true, - - // Colourise the console output of the debug node - //debugUseColors: true, - - // The file containing the flows. If not set, it defaults to flows_.json - //flowFile: 'flows.json', - - // To enabled pretty-printing of the flow within the flow file, set the following - // property to true: - //flowFilePretty: true, - - // By default, credentials are encrypted in storage using a generated key. To - // specify your own secret, set the following property. - // If you want to disable encryption of credentials, set this property to false. - // Note: once you set this property, do not change it - doing so will prevent - // node-red from being able to decrypt your existing credentials and they will be - // lost. - //credentialSecret: "a-secret-key", - - // By default, all user data is stored in a directory called `.node-red` under - // the user's home directory. To use a different location, the following - // property can be used - userDir: '.node-red/', - - // Node-RED scans the `nodes` directory in the userDir to find local node files. - // The following property can be used to specify an additional directory to scan. - nodesDir: 'dist/nodes', - - // By default, the Node-RED UI is available at http://localhost:1880/ - // The following property can be used to specify a different root path. - // If set to false, this is disabled. - //httpAdminRoot: '/admin', - - // Some nodes, such as HTTP In, can be used to listen for incoming http requests. - // By default, these are served relative to '/'. The following property - // can be used to specifiy a different root path. If set to false, this is - // disabled. - //httpNodeRoot: '/red-nodes', - - // The following property can be used in place of 'httpAdminRoot' and 'httpNodeRoot', - // to apply the same root to both parts. - //httpRoot: '/red', - - // When httpAdminRoot is used to move the UI to a different root path, the - // following property can be used to identify a directory of static content - // that should be served at http://localhost:1880/. - //httpStatic: '/home/nol/node-red-static/', - - // The maximum size of HTTP request that will be accepted by the runtime api. - // Default: 5mb - //apiMaxLength: '5mb', - - // If you installed the optional node-red-dashboard you can set it's path - // relative to httpRoot - //ui: { path: "ui" }, - - // Securing Node-RED - // ----------------- - // To password protect the Node-RED editor and admin API, the following - // property can be used. See http://nodered.org/docs/security.html for details. - // adminAuth: { - // type: "credentials", - // users: [{ - // username: "admin", - // password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.", - // permissions: "*" - // }] - // }, - - // To password protect the node-defined HTTP endpoints (httpNodeRoot), or - // the static content (httpStatic), the following properties can be used. - // The pass field is a bcrypt hash of the password. - // See http://nodered.org/docs/security.html#generating-the-password-hash - //httpNodeAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."}, - //httpStaticAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."}, - - // The following property can be used to enable HTTPS - // See http://nodejs.org/api/https.html#https_https_createserver_options_requestlistener - // for details on its contents. - // See the comment at the top of this file on how to load the `fs` module used by - // this setting. - // - //https: { - // key: fs.readFileSync('privatekey.pem'), - // cert: fs.readFileSync('certificate.pem') - //}, - - // The following property can be used to cause insecure HTTP connections to - // be redirected to HTTPS. - //requireHttps: true, - - // The following property can be used to disable the editor. The admin API - // is not affected by this option. To disable both the editor and the admin - // API, use either the httpRoot or httpAdminRoot properties - //disableEditor: false, - - // The following property can be used to configure cross-origin resource sharing - // in the HTTP nodes. - // See https://github.com/troygoode/node-cors#configuration-options for - // details on its contents. The following is a basic permissive set of options: - //httpNodeCors: { - // origin: "*", - // methods: "GET,PUT,POST,DELETE" - //}, - - // If you need to set an http proxy please set an environment variable - // called http_proxy (or HTTP_PROXY) outside of Node-RED in the operating system. - // For example - http_proxy=http://myproxy.com:8080 - // (Setting it here will have no effect) - // You may also specify no_proxy (or NO_PROXY) to supply a comma separated - // list of domains to not proxy, eg - no_proxy=.acme.co,.acme.co.uk - - // The following property can be used to add a custom middleware function - // in front of all http in nodes. This allows custom authentication to be - // applied to all http in nodes, or any other sort of common request processing. - //httpNodeMiddleware: function(req,res,next) { - // // Handle/reject the request, or pass it on to the http in node by calling next(); - // // Optionally skip our rawBodyParser by setting this to true; - // //req.skipRawBodyParser = true; - // next(); - //}, - - // The following property can be used to pass custom options to the Express.js - // server used by Node-RED. For a full list of available options, refer - // to http://expressjs.com/en/api.html#app.settings.table - //httpServerOptions: { }, - - // The following property can be used to verify websocket connection attempts. - // This allows, for example, the HTTP request headers to be checked to ensure - // they include valid authentication information. - //webSocketNodeVerifyClient: function(info) { - // // 'info' has three properties: - // // - origin : the value in the Origin header - // // - req : the HTTP request - // // - secure : true if req.connection.authorized or req.connection.encrypted is set - // // - // // The function should return true if the connection should be accepted, false otherwise. - // // - // // Alternatively, if this function is defined to accept a second argument, callback, - // // it can be used to verify the client asynchronously. - // // The callback takes three arguments: - // // - result : boolean, whether to accept the connection or not - // // - code : if result is false, the HTTP error status to return - // // - reason: if result is false, the HTTP reason string to return - //}, - - // The following property can be used to seed Global Context with predefined - // values. This allows extra node modules to be made available with the - // Function node. - // For example, - // functionGlobalContext: { os:require('os') } - // can be accessed in a function block as: - // global.get("os") - functionGlobalContext: { - // os:require('os'), - // jfive:require("johnny-five"), - // j5board:require("johnny-five").Board({repl:false}) - }, - // `global.keys()` returns a list of all properties set in global context. - // This allows them to be displayed in the Context Sidebar within the editor. - // In some circumstances it is not desirable to expose them to the editor. The - // following property can be used to hide any property set in `functionGlobalContext` - // from being list by `global.keys()`. - // By default, the property is set to false to avoid accidental exposure of - // their values. Setting this to true will cause the keys to be listed. - exportGlobalContextKeys: false, - - // Context Storage - // The following property can be used to enable context storage. The configuration - // provided here will enable file-based context that flushes to disk every 30 seconds. - // Refer to the documentation for further options: https://nodered.org/docs/api/context/ - // - //contextStorage: { - // default: { - // module:"localfilesystem" - // }, - //}, - - // The following property can be used to order the categories in the editor - // palette. If a node's category is not in the list, the category will get - // added to the end of the palette. - // If not set, the following default order is used: - //paletteCategories: ['subflows','flow','input','output','function','parser','social','mobile','storage','analysis','advanced'], - - // Configure the logging output - logging: { - // Only console logging is currently supported - console: { - // Level of logging to be recorded. Options are: - // fatal - only those errors which make the application unusable should be recorded - // error - record errors which are deemed fatal for a particular request + fatal errors - // warn - record problems which are non fatal + errors + fatal errors - // info - record information about the general running of the application + warn + error + fatal errors - // debug - record information which is more verbose than info + info + warn + error + fatal errors - // trace - record very detailed logging + debug + info + warn + error + fatal errors - // off - turn off all logging (doesn't affect metrics or audit) - level: 'info', - // Whether or not to include metric events in the log output - metrics: false, - // Whether or not to include audit events in the log output - audit: false, - }, - }, - - // Customising the editor - editorTheme: { - page: { - scripts: [__dirname + '/sample.js'], - }, - projects: { - // To enable the Projects feature, set this value to true - enabled: false, - }, - }, + // the tcp port that the Node-RED web server is listening on + uiPort: process.env.PORT || 1880, + + // By default, the Node-RED UI accepts connections on all IPv4 interfaces. + // To listen on all IPv6 addresses, set uiHost to "::", + // The following property can be used to listen on a specific interface. For + // example, the following would only allow connections from the local machine. + //uiHost: "127.0.0.1", + + // Retry time in milliseconds for MQTT connections + mqttReconnectTime: 15000, + + // Retry time in milliseconds for Serial port connections + serialReconnectTime: 15000, + + // Retry time in milliseconds for TCP socket connections + //socketReconnectTime: 10000, + + // Timeout in milliseconds for TCP server socket connections + // defaults to no timeout + //socketTimeout: 120000, + + // Maximum number of messages to wait in queue while attempting to connect to TCP socket + // defaults to 1000 + //tcpMsgQueueSize: 2000, + + // Timeout in milliseconds for HTTP request connections + // defaults to 120 seconds + //httpRequestTimeout: 120000, + + // The maximum length, in characters, of any message sent to the debug sidebar tab + debugMaxLength: 1000, + + // The maximum number of messages nodes will buffer internally as part of their + // operation. This applies across a range of nodes that operate on message sequences. + // defaults to no limit. A value of 0 also means no limit is applied. + //nodeMessageBufferMaxLength: 0, + + // To disable the option for using local files for storing keys and certificates in the TLS configuration + // node, set this to true + //tlsConfigDisableLocalFiles: true, + + // Colourise the console output of the debug node + //debugUseColors: true, + + // The file containing the flows. If not set, it defaults to flows_.json + //flowFile: 'flows.json', + + // To enabled pretty-printing of the flow within the flow file, set the following + // property to true: + //flowFilePretty: true, + + // By default, credentials are encrypted in storage using a generated key. To + // specify your own secret, set the following property. + // If you want to disable encryption of credentials, set this property to false. + // Note: once you set this property, do not change it - doing so will prevent + // node-red from being able to decrypt your existing credentials and they will be + // lost. + //credentialSecret: "a-secret-key", + + // By default, all user data is stored in a directory called `.node-red` under + // the user's home directory. To use a different location, the following + // property can be used + userDir: ".node-red/", + + // Node-RED scans the `nodes` directory in the userDir to find local node files. + // The following property can be used to specify an additional directory to scan. + nodesDir: "dist/nodes", + + // By default, the Node-RED UI is available at http://localhost:1880/ + // The following property can be used to specify a different root path. + // If set to false, this is disabled. + //httpAdminRoot: '/admin', + + // Some nodes, such as HTTP In, can be used to listen for incoming http requests. + // By default, these are served relative to '/'. The following property + // can be used to specifiy a different root path. If set to false, this is + // disabled. + //httpNodeRoot: '/red-nodes', + + // The following property can be used in place of 'httpAdminRoot' and 'httpNodeRoot', + // to apply the same root to both parts. + //httpRoot: '/red', + + // When httpAdminRoot is used to move the UI to a different root path, the + // following property can be used to identify a directory of static content + // that should be served at http://localhost:1880/. + //httpStatic: '/home/nol/node-red-static/', + + // The maximum size of HTTP request that will be accepted by the runtime api. + // Default: 5mb + //apiMaxLength: '5mb', + + // If you installed the optional node-red-dashboard you can set it's path + // relative to httpRoot + //ui: { path: "ui" }, + + // Securing Node-RED + // ----------------- + // To password protect the Node-RED editor and admin API, the following + // property can be used. See http://nodered.org/docs/security.html for details. + // adminAuth: { + // type: "credentials", + // users: [{ + // username: "admin", + // password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.", + // permissions: "*" + // }] + // }, + + // To password protect the node-defined HTTP endpoints (httpNodeRoot), or + // the static content (httpStatic), the following properties can be used. + // The pass field is a bcrypt hash of the password. + // See http://nodered.org/docs/security.html#generating-the-password-hash + //httpNodeAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."}, + //httpStaticAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."}, + + // The following property can be used to enable HTTPS + // See http://nodejs.org/api/https.html#https_https_createserver_options_requestlistener + // for details on its contents. + // See the comment at the top of this file on how to load the `fs` module used by + // this setting. + // + //https: { + // key: fs.readFileSync('privatekey.pem'), + // cert: fs.readFileSync('certificate.pem') + //}, + + // The following property can be used to cause insecure HTTP connections to + // be redirected to HTTPS. + //requireHttps: true, + + // The following property can be used to disable the editor. The admin API + // is not affected by this option. To disable both the editor and the admin + // API, use either the httpRoot or httpAdminRoot properties + //disableEditor: false, + + // The following property can be used to configure cross-origin resource sharing + // in the HTTP nodes. + // See https://github.com/troygoode/node-cors#configuration-options for + // details on its contents. The following is a basic permissive set of options: + //httpNodeCors: { + // origin: "*", + // methods: "GET,PUT,POST,DELETE" + //}, + + // If you need to set an http proxy please set an environment variable + // called http_proxy (or HTTP_PROXY) outside of Node-RED in the operating system. + // For example - http_proxy=http://myproxy.com:8080 + // (Setting it here will have no effect) + // You may also specify no_proxy (or NO_PROXY) to supply a comma separated + // list of domains to not proxy, eg - no_proxy=.acme.co,.acme.co.uk + + // The following property can be used to add a custom middleware function + // in front of all http in nodes. This allows custom authentication to be + // applied to all http in nodes, or any other sort of common request processing. + //httpNodeMiddleware: function(req,res,next) { + // // Handle/reject the request, or pass it on to the http in node by calling next(); + // // Optionally skip our rawBodyParser by setting this to true; + // //req.skipRawBodyParser = true; + // next(); + //}, + + // The following property can be used to pass custom options to the Express.js + // server used by Node-RED. For a full list of available options, refer + // to http://expressjs.com/en/api.html#app.settings.table + //httpServerOptions: { }, + + // The following property can be used to verify websocket connection attempts. + // This allows, for example, the HTTP request headers to be checked to ensure + // they include valid authentication information. + //webSocketNodeVerifyClient: function(info) { + // // 'info' has three properties: + // // - origin : the value in the Origin header + // // - req : the HTTP request + // // - secure : true if req.connection.authorized or req.connection.encrypted is set + // // + // // The function should return true if the connection should be accepted, false otherwise. + // // + // // Alternatively, if this function is defined to accept a second argument, callback, + // // it can be used to verify the client asynchronously. + // // The callback takes three arguments: + // // - result : boolean, whether to accept the connection or not + // // - code : if result is false, the HTTP error status to return + // // - reason: if result is false, the HTTP reason string to return + //}, + + // The following property can be used to seed Global Context with predefined + // values. This allows extra node modules to be made available with the + // Function node. + // For example, + // functionGlobalContext: { os:require('os') } + // can be accessed in a function block as: + // global.get("os") + functionGlobalContext: { + // os:require('os'), + // jfive:require("johnny-five"), + // j5board:require("johnny-five").Board({repl:false}) + }, + // `global.keys()` returns a list of all properties set in global context. + // This allows them to be displayed in the Context Sidebar within the editor. + // In some circumstances it is not desirable to expose them to the editor. The + // following property can be used to hide any property set in `functionGlobalContext` + // from being list by `global.keys()`. + // By default, the property is set to false to avoid accidental exposure of + // their values. Setting this to true will cause the keys to be listed. + exportGlobalContextKeys: false, + + // Context Storage + // The following property can be used to enable context storage. The configuration + // provided here will enable file-based context that flushes to disk every 30 seconds. + // Refer to the documentation for further options: https://nodered.org/docs/api/context/ + // + //contextStorage: { + // default: { + // module:"localfilesystem" + // }, + //}, + + // The following property can be used to order the categories in the editor + // palette. If a node's category is not in the list, the category will get + // added to the end of the palette. + // If not set, the following default order is used: + //paletteCategories: ['subflows','flow','input','output','function','parser','social','mobile','storage','analysis','advanced'], + + // Configure the logging output + logging: { + // Only console logging is currently supported + console: { + // Level of logging to be recorded. Options are: + // fatal - only those errors which make the application unusable should be recorded + // error - record errors which are deemed fatal for a particular request + fatal errors + // warn - record problems which are non fatal + errors + fatal errors + // info - record information about the general running of the application + warn + error + fatal errors + // debug - record information which is more verbose than info + info + warn + error + fatal errors + // trace - record very detailed logging + debug + info + warn + error + fatal errors + // off - turn off all logging (doesn't affect metrics or audit) + level: "info", + // Whether or not to include metric events in the log output + metrics: false, + // Whether or not to include audit events in the log output + audit: false, + }, + }, + + // Customising the editor + editorTheme: { + page: { + scripts: [`${__dirname}/sample.js`], + }, + projects: { + // To enable the Projects feature, set this value to true + enabled: false, + }, + }, }; diff --git a/tsconfig.json b/tsconfig.json index 072a36d..62b714a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,14 +1,14 @@ { - "compilerOptions": { - "module": "commonjs", - "target": "es2022", - "outDir": "./dist", - "rootDir": "./", - "lib": ["es2022", "dom"], - "moduleResolution": "node", - "esModuleInterop": true, - "strict": true - }, - "include": ["nodes/**/*"], - "exclude": ["nodes/**/__tests__/*"] + "compilerOptions": { + "module": "commonjs", + "target": "es2022", + "outDir": "./dist", + "rootDir": "./", + "lib": ["es2022", "dom"], + "moduleResolution": "node", + "esModuleInterop": true, + "strict": true + }, + "include": ["nodes/**/*"], + "exclude": ["nodes/**/__tests__/*"] }