.nycrc.json
.nyc_output
.reuse
-.mocharc.json
.release-it.json
.xmake.cfg
# Logs
"root": true,
"env": {
"es2022": true,
- "node": true,
- "mocha": true
+ "node": true
},
"parserOptions": {
"ecmaVersion": 2022,
+++ /dev/null
-{
- "$schema": "https://json.schemastore.org/mocharc",
- "parallel": true,
- "diff": true,
- "recursive": true,
- "extension": ["ts"],
- "package": "./package.json",
- "reporter": "mochawesome",
- "reporter-options": "reportDir=outputs/mochawesome-report,json=false",
- "slow": 75,
- "timeout": 2000,
- "ui": "bdd",
- "full-trace": true,
- "enable-source-maps": true,
- "exit": true,
- "node-option": [
- "loader=ts-node/esm",
- "no-warnings=ExperimentalWarning",
- "experimental-specifier-resolution=node"
- ],
- "require": ["mochawesome/register"]
-}
"dbaeumer.vscode-eslint",
"eamodio.gitlens",
"EditorConfig.EditorConfig",
- "hbenl.vscode-mocha-test-adapter",
"ms-azuretools.vscode-docker",
"sonarsource.sonarlint-vscode",
"streetsidesoftware.code-spell-checker"
"continueOnAttach": true,
"autoAttachChildProcesses": false,
"timeout": 30000,
- "resolveSourceMapLocations": [
- "!**/node_modules/**",
- "!**/.vscode/extensions/hbenl.vscode-mocha-test-adapter-*/**"
- ],
+ "resolveSourceMapLocations": ["!**/node_modules/**"],
"skipFiles": ["<node_internals>/**"]
}
]
"source.fixAll": true
},
"testExplorer.useNativeTesting": true,
- "mochaExplorer.nodeArgv": [
- "--loader=ts-node/esm",
- "--no-warnings=ExperimentalWarning",
- "--experimental-specifier-resolution=node"
- ],
- "mochaExplorer.files": ["test/**/*.test.ts"],
- "mochaExplorer.debuggerConfig": "Debug Simulator Unit Tests",
"cSpell.words": [
"backoff",
"benoit",
"measurands",
"mikro",
"mnemonist",
- "mochawesome",
"ocpp",
"olivierbagot",
"parens",
"preinstall",
"Recurrency",
"RFID",
- "robohydra",
"shutdowning",
"sonarlint",
"SRPC",
"lint": "cross-env TIMING=1 eslint --cache src",
"lint:fix": "cross-env TIMING=1 eslint --cache --fix src",
"format": "prettier --cache --write .",
- "test": "c8 mocha test/**/*.test.ts",
- "test:debug": "mocha --no-parallel --inspect test/**/*.test.ts",
+ "test": "c8 node --loader tsx --no-warnings=ExperimentalWarning --test test/**/*.test.ts",
+ "test:debug": "node --loader tsx --no-warnings=ExperimentalWarning --test --inspect test/**/*.test.ts",
"coverage": "c8 report --reporter=lcov",
"coverage:html": "c8 report --reporter=html",
"clinic:clean": "clinic clean",
- "robohydra": "robohydra test/robohydra/config.json",
"git:sinit": "git submodule update --init --recursive --force",
"git:sdiff": "git diff && git submodule foreach 'git diff'",
"git:supdate": "git submodule update --remote --recursive --merge",
"@rollup/plugin-json": "^6.0.0",
"@rollup/plugin-terser": "^0.4.3",
"@rollup/plugin-typescript": "^11.1.4",
- "@types/mocha": "^10.0.2",
"@types/node": "^20.7.1",
"@types/sinon": "^10.0.17",
"@types/tar": "^6.1.6",
"expect": "^29.7.0",
"husky": "^8.0.3",
"lint-staged": "^14.0.1",
- "mocha": "^10.2.0",
- "mochawesome": "^7.1.3",
"prettier": "^3.0.3",
"release-it": "^16.2.1",
"rimraf": "^5.0.5",
- "robohydra": "^0.6.9",
"rollup": "^3.29.4",
"rollup-plugin-analyzer": "^4.0.0",
"rollup-plugin-delete": "^2.0.0",
"semver": "^7.5.4",
"sinon": "^16.0.0",
- "ts-node": "^10.9.1",
+ "tsx": "^3.13.0",
"typescript": "~5.2.2"
}
}
'@rollup/plugin-typescript':
specifier: ^11.1.4
version: 11.1.4(rollup@3.29.4)(tslib@2.6.2)(typescript@5.2.2)
- '@types/mocha':
- specifier: ^10.0.2
- version: 10.0.2
'@types/node':
specifier: ^20.7.1
version: 20.7.1
lint-staged:
specifier: ^14.0.1
version: 14.0.1
- mocha:
- specifier: ^10.2.0
- version: 10.2.0
- mochawesome:
- specifier: ^7.1.3
- version: 7.1.3(mocha@10.2.0)
prettier:
specifier: ^3.0.3
version: 3.0.3
rimraf:
specifier: ^5.0.5
version: 5.0.5
- robohydra:
- specifier: ^0.6.9
- version: 0.6.9(bufferutil@4.0.7)(utf-8-validate@6.0.3)
rollup:
specifier: ^3.29.4
version: 3.29.4
sinon:
specifier: ^16.0.0
version: 16.0.0
- ts-node:
- specifier: ^10.9.1
- version: 10.9.1(@types/node@20.7.1)(typescript@5.2.2)
+ tsx:
+ specifier: ^3.13.0
+ version: 3.13.0
typescript:
specifier: ~5.2.2
version: 5.2.2
concat-stream: 2.0.0
d3-fg: 6.14.0
debounce: 1.2.1
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
end-of-stream: 1.4.4
env-string: 1.0.1
escape-string-regexp: 4.0.0
d3-selection: 1.4.2
d3-shape: 1.3.7
d3-time-format: 2.3.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
distributions: 2.1.0
endpoint: 0.4.5
hidden-markov-model-tf: 4.0.0(@tensorflow/tfjs-core@3.21.0)
lodash.merge: 4.6.2
lodash.uniq: 4.5.0
resolve-from: 5.0.0
- ts-node: 10.9.1(@types/node@20.5.1)(typescript@5.2.2)
+ ts-node: 10.9.1(@types/node@20.7.1)(typescript@5.2.2)
typescript: 5.2.2
transitivePeerDependencies:
- '@swc/core'
jsdoc-type-pratt-parser: 4.0.0
dev: true
+ /@esbuild/android-arm64@0.18.20:
+ resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm@0.18.20:
+ resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-x64@0.18.20:
+ resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-arm64@0.18.20:
+ resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-x64@0.18.20:
+ resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-arm64@0.18.20:
+ resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-x64@0.18.20:
+ resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm64@0.18.20:
+ resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm@0.18.20:
+ resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ia32@0.18.20:
+ resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-loong64@0.18.20:
+ resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-mips64el@0.18.20:
+ resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ppc64@0.18.20:
+ resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-riscv64@0.18.20:
+ resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-s390x@0.18.20:
+ resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-x64@0.18.20:
+ resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/netbsd-x64@0.18.20:
+ resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openbsd-x64@0.18.20:
+ resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/sunos-x64@0.18.20:
+ resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-arm64@0.18.20:
+ resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-ia32@0.18.20:
+ resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-x64@0.18.20:
+ resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@eslint-community/eslint-utils@4.4.0(eslint@8.50.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
espree: 9.6.1
globals: 13.22.0
ignore: 5.2.4
engines: {node: '>=10.10.0'}
dependencies:
'@humanwhocodes/object-schema': 1.2.1
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
resolution: {integrity: sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A==}
dev: true
- /@types/mocha@10.0.2:
- resolution: {integrity: sha512-NaHL0+0lLNhX6d9rs+NSt97WH/gIlRHmszXbQ/8/MV/eVcFNdeJ/GYhrFuUc8K7WuPhRhTSdMkCp8VMzhUq85w==}
- dev: true
-
/@types/node@17.0.45:
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
'@typescript-eslint/type-utils': 6.7.3(eslint@8.50.0)(typescript@5.2.2)
'@typescript-eslint/utils': 6.7.3(eslint@8.50.0)(typescript@5.2.2)
'@typescript-eslint/visitor-keys': 6.7.3
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
eslint: 8.50.0
graphemer: 1.4.0
ignore: 5.2.4
'@typescript-eslint/types': 6.7.3
'@typescript-eslint/typescript-estree': 6.7.3(typescript@5.2.2)
'@typescript-eslint/visitor-keys': 6.7.3
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
eslint: 8.50.0
typescript: 5.2.2
transitivePeerDependencies:
dependencies:
'@typescript-eslint/typescript-estree': 6.7.3(typescript@5.2.2)
'@typescript-eslint/utils': 6.7.3(eslint@8.50.0)(typescript@5.2.2)
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
eslint: 8.50.0
ts-api-utils: 1.0.3(typescript@5.2.2)
typescript: 5.2.2
dependencies:
'@typescript-eslint/types': 6.7.3
'@typescript-eslint/visitor-keys': 6.7.3
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.4
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
engines: {node: '>= 6.0.0'}
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
transitivePeerDependencies:
- supports-color
resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
engines: {node: '>= 14'}
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: true
string-width: 4.2.3
dev: true
- /ansi-colors@4.1.1:
- resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
- engines: {node: '>=6'}
- dev: true
-
/ansi-escapes@3.2.0:
resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==}
engines: {node: '>=4'}
resolution: {integrity: sha512-36j4l5HVkboyRhIWgtMh1I9i8LTdFqVwDEHy1cp+QioJyKgAUG40X0W8s7jakWRta/Sjvm8mUG1fU6Tj8mWagQ==}
dev: true
- /anymatch@3.1.3:
- resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
- engines: {node: '>= 8'}
- dependencies:
- normalize-path: 3.0.0
- picomatch: 2.3.1
- dev: true
-
/aproba@2.0.0:
resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
engines: {node: '>=0.6'}
dev: true
- /binary-extensions@2.2.0:
- resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
- engines: {node: '>=8'}
- dev: true
-
/bit-twiddle@1.0.2:
resolution: {integrity: sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==}
dev: true
resolve: 1.22.6
dev: true
- /browser-stdout@1.3.1:
- resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
- dev: true
-
/browserify-aes@1.2.0:
resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==}
dependencies:
requiresBuild: true
dependencies:
node-gyp-build: 4.6.1
+ dev: false
/builtin-modules@3.3.0:
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
dev: true
- /chokidar@3.5.3:
- resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
- engines: {node: '>= 8.10.0'}
- dependencies:
- anymatch: 3.1.3
- braces: 3.0.2
- glob-parent: 5.1.2
- is-binary-path: 2.1.0
- is-glob: 4.0.3
- normalize-path: 3.0.0
- readdirp: 3.6.0
- optionalDependencies:
- fsevents: 2.3.3
- dev: true
-
/chownr@2.0.0:
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
engines: {node: '>=10'}
wrap-ansi: 5.1.0
dev: true
- /cliui@7.0.4:
- resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
- dependencies:
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wrap-ansi: 7.0.0
- dev: true
-
/cliui@8.0.1:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
dependencies:
'@types/node': 20.5.1
cosmiconfig: 8.3.6(typescript@5.2.2)
- ts-node: 10.9.1(@types/node@20.5.1)(typescript@5.2.2)
+ ts-node: 10.9.1(@types/node@20.7.1)(typescript@5.2.2)
typescript: 5.2.2
dev: true
'@babel/runtime': 7.23.1
dev: false
- /dateformat@4.6.3:
- resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
- dev: true
-
/debounce-fn@4.0.0:
resolution: {integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==}
engines: {node: '>=10'}
ms: 2.1.3
dev: true
- /debug@4.3.4(supports-color@8.1.1):
+ /debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
peerDependencies:
optional: true
dependencies:
ms: 2.1.2
- supports-color: 8.1.1
/decamelize-keys@1.1.1:
resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
engines: {node: '>=0.10.0'}
dev: true
- /decamelize@4.0.0:
- resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
- engines: {node: '>=10'}
- dev: true
-
/decompress-response@6.0.0:
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
engines: {node: '>=10'}
engines: {node: '>=0.3.1'}
dev: true
- /diff@5.0.0:
- resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
- engines: {node: '>=0.3.1'}
- dev: true
-
/diff@5.1.0:
resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==}
engines: {node: '>=0.3.1'}
safer-buffer: 2.1.2
dev: true
- /ejs@3.1.9:
- resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
- engines: {node: '>=0.10.0'}
- hasBin: true
- dependencies:
- jake: 10.8.7
- dev: true
-
/elliptic@6.5.4:
resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==}
dependencies:
ext: 1.7.0
dev: true
+ /esbuild@0.18.20:
+ resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/android-arm': 0.18.20
+ '@esbuild/android-arm64': 0.18.20
+ '@esbuild/android-x64': 0.18.20
+ '@esbuild/darwin-arm64': 0.18.20
+ '@esbuild/darwin-x64': 0.18.20
+ '@esbuild/freebsd-arm64': 0.18.20
+ '@esbuild/freebsd-x64': 0.18.20
+ '@esbuild/linux-arm': 0.18.20
+ '@esbuild/linux-arm64': 0.18.20
+ '@esbuild/linux-ia32': 0.18.20
+ '@esbuild/linux-loong64': 0.18.20
+ '@esbuild/linux-mips64el': 0.18.20
+ '@esbuild/linux-ppc64': 0.18.20
+ '@esbuild/linux-riscv64': 0.18.20
+ '@esbuild/linux-s390x': 0.18.20
+ '@esbuild/linux-x64': 0.18.20
+ '@esbuild/netbsd-x64': 0.18.20
+ '@esbuild/openbsd-x64': 0.18.20
+ '@esbuild/sunos-x64': 0.18.20
+ '@esbuild/win32-arm64': 0.18.20
+ '@esbuild/win32-ia32': 0.18.20
+ '@esbuild/win32-x64': 0.18.20
+ dev: true
+
/escalade@3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
engines: {node: '>=12'}
dev: true
- /escape-html@1.0.3:
- resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
- dev: true
-
/escape-string-regexp@1.0.5:
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
engines: {node: '>=0.8.0'}
eslint: '*'
eslint-plugin-import: '*'
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
enhanced-resolve: 5.15.0
eslint: 8.50.0
eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.3)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0)
'@es-joy/jsdoccomment': 0.40.1
are-docs-informative: 0.0.2
comment-parser: 1.4.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
escape-string-regexp: 4.0.0
eslint: 8.50.0
esquery: 1.5.0
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
moment: 2.29.4
dev: false
- /filelist@1.0.4:
- resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
- dependencies:
- minimatch: 5.1.6
- dev: true
-
/fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
rimraf: 3.0.2
dev: true
- /flat@5.0.2:
- resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
- hasBin: true
- dev: true
-
/flatstr@1.0.12:
resolution: {integrity: sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==}
dev: true
dev: true
optional: true
- /fsu@1.1.1:
- resolution: {integrity: sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A==}
- dev: true
-
/function-bind@1.1.1:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
dependencies:
basic-ftp: 5.0.3
data-uri-to-buffer: 5.0.1
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
fs-extra: 8.1.0
transitivePeerDependencies:
- supports-color
path-scurry: 1.10.1
dev: true
- /glob@7.2.0:
- resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
- dependencies:
- fs.realpath: 1.0.0
- inflight: 1.0.6
- inherits: 2.0.4
- minimatch: 3.1.2
- once: 1.4.0
- path-is-absolute: 1.0.1
- dev: true
-
/glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
dependencies:
/has-flag@4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines: {node: '>=8'}
+ dev: true
/has-property-descriptors@1.0.0:
resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
resolution: {integrity: sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==}
dev: true
- /he@1.2.0:
- resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
- hasBin: true
- dev: true
-
/hidden-markov-model-tf@4.0.0(@tensorflow/tfjs-core@3.21.0):
resolution: {integrity: sha512-q8VeBNCyQ5CNsUlbt4T5JXc+pUeKqq7LEGjs4HiH+thgZ2fuyJ9pf/V66ZFx9jZobXkwxVuQRWKZa3TwOFW+zw==}
peerDependencies:
dependencies:
'@tootallnate/once': 1.1.2
agent-base: 6.0.2
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
transitivePeerDependencies:
- supports-color
optional: true
engines: {node: '>= 14'}
dependencies:
agent-base: 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: true
engines: {node: '>= 6'}
dependencies:
agent-base: 6.0.2
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
transitivePeerDependencies:
- supports-color
engines: {node: '>= 14'}
dependencies:
agent-base: 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: true
has-bigints: 1.0.2
dev: true
- /is-binary-path@2.1.0:
- resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
- engines: {node: '>=8'}
- dependencies:
- binary-extensions: 2.2.0
- dev: true
-
/is-boolean-attribute@0.0.1:
resolution: {integrity: sha512-0kXT52Scokg2Miscvsn5UVqg6y1691vcLJcagie1YHJB4zOEuAhMERLX992jtvaStGy2xQTqOtJhvmG/MK1T5w==}
dev: true
engines: {node: '>=0.10.0'}
dev: true
- /is-plain-obj@2.1.0:
- resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
- engines: {node: '>=8'}
- dev: true
-
/is-plain-object@5.0.0:
resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
engines: {node: '>=0.10.0'}
'@pkgjs/parseargs': 0.11.0
dev: true
- /jake@10.8.7:
- resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
- engines: {node: '>=10'}
- hasBin: true
- dependencies:
- async: 3.2.4
- chalk: 4.1.2
- filelist: 1.0.4
- minimatch: 3.1.2
- dev: true
-
/jest-diff@29.7.0:
resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
colorette: 2.0.19
commander: 10.0.1
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
escalade: 3.1.1
esm: 3.2.25
get-package-type: 0.1.0
dependencies:
chalk: 5.3.0
commander: 11.0.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
execa: 7.2.0
lilconfig: 2.1.0
listr2: 6.6.1
resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
dev: true
- /lodash.isempty@4.4.0:
- resolution: {integrity: sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg==}
- dev: true
-
/lodash.isfunction@3.0.9:
resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==}
dev: true
- /lodash.isobject@3.0.2:
- resolution: {integrity: sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==}
- dev: true
-
/lodash.isplainobject@4.0.6:
resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
dev: true
moment-timezone: 0.5.43
please-upgrade-node: 3.2.0
- /markdown@0.3.1:
- resolution: {integrity: sha512-bf3LyP/7Y5WviTbaJvNtD1OXt07qn5HflK1boIpw4yCxNH1/apZBZ6wn2SkLtZ79U1lSltcQ+56PJDdUuwWYBQ==}
- hasBin: true
- dev: true
-
/md5.js@1.3.5:
resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==}
dependencies:
mime-db: 1.52.0
dev: true
- /mime@1.6.0:
- resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
- engines: {node: '>=4'}
- hasBin: true
- dev: true
-
/mimic-fn@1.2.0:
resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==}
engines: {node: '>=4'}
dependencies:
brace-expansion: 1.1.11
- /minimatch@5.0.1:
- resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
- engines: {node: '>=10'}
- dependencies:
- brace-expansion: 2.0.1
- dev: true
-
- /minimatch@5.1.6:
- resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
- engines: {node: '>=10'}
- dependencies:
- brace-expansion: 2.0.1
- dev: true
-
/minimatch@7.4.6:
resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
engines: {node: '>=10'}
obliterator: 2.0.4
dev: false
- /mocha@10.2.0:
- resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==}
- engines: {node: '>= 14.0.0'}
- hasBin: true
- dependencies:
- ansi-colors: 4.1.1
- browser-stdout: 1.3.1
- chokidar: 3.5.3
- debug: 4.3.4(supports-color@8.1.1)
- diff: 5.0.0
- escape-string-regexp: 4.0.0
- find-up: 5.0.0
- glob: 7.2.0
- he: 1.2.0
- js-yaml: 4.1.0
- log-symbols: 4.1.0
- minimatch: 5.0.1
- ms: 2.1.3
- nanoid: 3.3.3
- serialize-javascript: 6.0.0
- strip-json-comments: 3.1.1
- supports-color: 8.1.1
- workerpool: 6.2.1
- yargs: 16.2.0
- yargs-parser: 20.2.4
- yargs-unparser: 2.0.0
- dev: true
-
- /mochawesome-report-generator@6.2.0:
- resolution: {integrity: sha512-Ghw8JhQFizF0Vjbtp9B0i//+BOkV5OWcQCPpbO0NGOoxV33o+gKDYU0Pr2pGxkIHnqZ+g5mYiXF7GMNgAcDpSg==}
- hasBin: true
- dependencies:
- chalk: 4.1.2
- dateformat: 4.6.3
- escape-html: 1.0.3
- fs-extra: 10.1.0
- fsu: 1.1.1
- lodash.isfunction: 3.0.9
- opener: 1.5.2
- prop-types: 15.8.1
- tcomb: 3.2.29
- tcomb-validation: 3.4.1
- validator: 13.11.0
- yargs: 17.7.2
- dev: true
-
- /mochawesome@7.1.3(mocha@10.2.0):
- resolution: {integrity: sha512-Vkb3jR5GZ1cXohMQQ73H3cZz7RoxGjjUo0G5hu0jLaW+0FdUxUwg3Cj29bqQdh0rFcnyV06pWmqmi5eBPnEuNQ==}
- peerDependencies:
- mocha: '>=7'
- dependencies:
- chalk: 4.1.2
- diff: 5.1.0
- json-stringify-safe: 5.0.1
- lodash.isempty: 4.4.0
- lodash.isfunction: 3.0.9
- lodash.isobject: 3.0.2
- lodash.isstring: 4.0.1
- mocha: 10.2.0
- mochawesome-report-generator: 6.2.0
- strip-ansi: 6.0.1
- uuid: 9.0.1
- dev: true
-
/module-deps@6.2.3:
resolution: {integrity: sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==}
engines: {node: '>= 0.8.0'}
transform-ast: 2.4.4
dev: true
- /nanoid@3.3.3:
- resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==}
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- hasBin: true
- dev: true
-
/nanoid@3.3.6:
resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
resolution: {integrity: sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==}
hasBin: true
requiresBuild: true
+ dev: false
/node-gyp@8.4.1:
resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
validate-npm-package-license: 3.0.4
dev: true
- /normalize-path@3.0.0:
- resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
- engines: {node: '>=0.10.0'}
- dev: true
-
/normalize-url@8.0.0:
resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==}
engines: {node: '>=14.16'}
is-wsl: 2.2.0
dev: true
- /opener@1.5.2:
- resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
- hasBin: true
- dev: true
-
/opn@5.5.0:
resolution: {integrity: sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==}
engines: {node: '>=4'}
type-check: 0.4.0
dev: true
- /options@0.0.6:
- resolution: {integrity: sha512-bOj3L1ypm++N+n7CEbbe473A414AB7z+amKYshRb//iuL3MpdDCLhPnw6aVTdKB9g5ZRVHIEp8eUln6L2NUStg==}
- engines: {node: '>=0.4.0'}
- dev: true
-
/ora@5.4.1:
resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
engines: {node: '>=10'}
dependencies:
'@tootallnate/quickjs-emscripten': 0.23.0
agent-base: 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
get-uri: 6.0.1
http-proxy-agent: 7.0.0
https-proxy-agent: 7.0.2
iterate-value: 1.0.2
dev: true
- /prop-types@15.8.1:
- resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
- dependencies:
- loose-envify: 1.4.0
- object-assign: 4.1.1
- react-is: 16.13.1
- dev: true
-
/proto-list@1.2.4:
resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
dev: true
engines: {node: '>= 14'}
dependencies:
agent-base: 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
http-proxy-agent: 7.0.0
https-proxy-agent: 7.0.2
lru-cache: 7.18.3
strip-json-comments: 2.0.1
dev: true
- /react-is@16.13.1:
- resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
- dev: true
-
/react-is@18.2.0:
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
dev: true
string_decoder: 1.3.0
util-deprecate: 1.0.2
- /readdirp@3.6.0:
- resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
- engines: {node: '>=8.10.0'}
- dependencies:
- picomatch: 2.3.1
- dev: true
-
/rechoir@0.6.2:
resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
engines: {node: '>= 0.10'}
inherits: 2.0.4
dev: true
- /robohydra@0.6.9(bufferutil@4.0.7)(utf-8-validate@6.0.3):
- resolution: {integrity: sha512-kSLoeDBfnGnIkln+nmyfWPHsQSOPz9K/Lb0CDWvCj70Af6K4R5qM54q6DW/IeUUxJY7pI6zi5rHNQZCZnWgfgw==}
- hasBin: true
- dependencies:
- commander: 2.20.3
- ejs: 3.1.9
- markdown: 0.3.1
- mime: 1.6.0
- qs: 6.11.2
- ws: 1.1.5(bufferutil@4.0.7)(utf-8-validate@6.0.3)
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
- dev: true
-
/rollup-plugin-analyzer@4.0.0:
resolution: {integrity: sha512-LL9GEt3bkXp6Wa19SNR5MWcvHNMvuTFYg+eYBZN2OIFhSWN+pEJUQXEKu5BsOeABob3x9PDaLKW7w5iOJnsESQ==}
engines: {node: '>=8.0.0'}
dependencies:
lru-cache: 6.0.0
- /serialize-javascript@6.0.0:
- resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
- dependencies:
- randombytes: 2.1.0
- dev: true
-
/serialize-javascript@6.0.1:
resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==}
dependencies:
requiresBuild: true
dependencies:
agent-base: 6.0.2
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
socks: 2.7.1
transitivePeerDependencies:
- supports-color
engines: {node: '>= 14'}
dependencies:
agent-base: 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
socks: 2.7.1
transitivePeerDependencies:
- supports-color
has-flag: 4.0.0
dev: true
- /supports-color@8.1.1:
- resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
- engines: {node: '>=10'}
- dependencies:
- has-flag: 4.0.0
-
/supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
resolution: {integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==}
engines: {node: '>=8.0.0'}
- /tcomb-validation@3.4.1:
- resolution: {integrity: sha512-urVVMQOma4RXwiVCa2nM2eqrAomHROHvWPuj6UkDGz/eb5kcy0x6P0dVt6kzpUZtYMNoAqJLWmz1BPtxrtjtrA==}
- dependencies:
- tcomb: 3.2.29
- dev: true
-
- /tcomb@3.2.29:
- resolution: {integrity: sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ==}
- dev: true
-
/terser@4.8.1:
resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==}
engines: {node: '>=6.0.0'}
code-block-writer: 12.0.0
dev: false
- /ts-node@10.9.1(@types/node@20.5.1)(typescript@5.2.2):
- resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
- hasBin: true
- peerDependencies:
- '@swc/core': '>=1.2.50'
- '@swc/wasm': '>=1.2.50'
- '@types/node': '*'
- typescript: '>=2.7'
- peerDependenciesMeta:
- '@swc/core':
- optional: true
- '@swc/wasm':
- optional: true
- dependencies:
- '@cspotcode/source-map-support': 0.8.1
- '@tsconfig/node10': 1.0.9
- '@tsconfig/node12': 1.0.11
- '@tsconfig/node14': 1.0.3
- '@tsconfig/node16': 1.0.4
- '@types/node': 20.5.1
- acorn: 8.10.0
- acorn-walk: 8.2.0
- arg: 4.1.3
- create-require: 1.1.1
- diff: 4.0.2
- make-error: 1.3.6
- typescript: 5.2.2
- v8-compile-cache-lib: 3.0.1
- yn: 3.1.1
- dev: true
-
/ts-node@10.9.1(@types/node@20.7.1)(typescript@5.2.2):
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ /tsx@3.13.0:
+ resolution: {integrity: sha512-rjmRpTu3as/5fjNq/kOkOtihgLxuIz6pbKdj9xwP4J5jOLkBxw/rjN5ANw+KyrrOXV5uB7HC8+SrrSJxT65y+A==}
+ hasBin: true
+ dependencies:
+ esbuild: 0.18.20
+ get-tsconfig: 4.7.2
+ source-map-support: 0.5.21
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
/ttest@3.0.0:
resolution: {integrity: sha512-bLo+LdYokiDZHVFIWJmC5afoh7wZ+o1h++0XXKh01+yprzz8CnaiGNcbcbqP0e3+iyDqclLI+rM0j/9AwmRljw==}
dependencies:
dev: true
optional: true
- /ultron@1.0.2:
- resolution: {integrity: sha512-QMpnpVtYaWEeY+MwKDN/UdKlE/LsFZXM5lO1u7GaZzNgmIbGixHEmVMIKT+vqYOALu3m5GYQy9kz4Xu4IVn7Ow==}
- dev: true
-
/umd@3.0.3:
resolution: {integrity: sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==}
hasBin: true
requiresBuild: true
dependencies:
node-gyp-build: 4.6.1
+ dev: false
/util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
spdx-expression-parse: 3.0.1
dev: true
- /validator@13.11.0:
- resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==}
- engines: {node: '>= 0.10'}
- dev: true
-
/varint@5.0.0:
resolution: {integrity: sha512-gC13b/bWrqQoKY2EmROCZ+AR0jitc6DnDGaQ6Ls9QpKmuSgJB1eQ7H3KETtQm7qSdMWMKCmsshyCmUwMLh3OAA==}
dev: true
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
dev: true
- /workerpool@6.2.1:
- resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
- dev: true
-
/wrap-ansi@5.1.0:
resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==}
engines: {node: '>=6'}
typedarray-to-buffer: 3.1.5
dev: true
- /ws@1.1.5(bufferutil@4.0.7)(utf-8-validate@6.0.3):
- resolution: {integrity: sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==}
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: ^5.0.2
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
- dependencies:
- bufferutil: 4.0.7
- options: 0.0.6
- ultron: 1.0.2
- utf-8-validate: 6.0.3
- dev: true
-
/ws@8.14.2(bufferutil@4.0.7)(utf-8-validate@6.0.3):
resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==}
engines: {node: '>=10.0.0'}
decamelize: 1.2.0
dev: true
- /yargs-parser@20.2.4:
- resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
- engines: {node: '>=10'}
- dev: true
-
/yargs-parser@20.2.9:
resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
engines: {node: '>=10'}
engines: {node: '>=12'}
dev: true
- /yargs-unparser@2.0.0:
- resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
- engines: {node: '>=10'}
- dependencies:
- camelcase: 6.3.0
- decamelize: 4.0.0
- flat: 5.0.2
- is-plain-obj: 2.1.0
- dev: true
-
/yargs@14.2.3:
resolution: {integrity: sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==}
dependencies:
yargs-parser: 15.0.3
dev: true
- /yargs@16.2.0:
- resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
- engines: {node: '>=10'}
- dependencies:
- cliui: 7.0.4
- escalade: 3.1.1
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- string-width: 4.2.3
- y18n: 5.0.8
- yargs-parser: 20.2.9
- dev: true
-
/yargs@17.7.2:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
+++ /dev/null
-{
- "pluginLoadPaths": ["test/robohydra/plugins"],
- "plugins": ["logger", "wsServer"]
-}
+++ /dev/null
-GetDiagnostics:
- curl -d '[2,"123456789","GetDiagnostics",{"location":"ftp://localhost"}]' -H "Content-Type: application/json" -X POST http://localhost:3000/message
-TriggerMessage:
- curl -d '[2,"123456789","TriggerMessage",{"requestedMessage":"BootNotification"}]' -H "Content-Type: application/json" -X POST http://localhost:3000/message
- curl -d '[2,"123456789","TriggerMessage",{"requestedMessage":"HeartBeat"}]' -H "Content-Type: application/json" -X POST http://localhost:3000/message
-UpdateFirmware:
- curl -d '[2,"123456789","UpdateFirmware",{"location":"ftp://localhost","retrieveDate":"2019-01-01T00:00:00.000Z"}]' -H "Content-Type: application/json" -X POST http://localhost:3000/message
+++ /dev/null
-// eslint-disable-next-line n/no-unpublished-require
-const RoboHydra = require('robohydra');
-const RoboHydraHead = RoboHydra.heads.RoboHydraHead;
-const RoboHydraWebSocketHead = RoboHydra.heads.RoboHydraWebSocketHead;
-const RoboHydraWebSocketHeadProxy = RoboHydra.heads.RoboHydraWebSocketHeadProxy;
-
-// eslint-disable-next-line no-unused-vars
-exports.getBodyParts = function (conf) {
- let wsSocket;
- return {
- heads: [
- new RoboHydraHead({
- name: 'message',
- path: '/message',
- method: 'POST',
- handler: function (req, res) {
- const msg = JSON.stringify(req.body);
- if (wsSocket) {
- wsSocket.send(msg);
- res.send('Message sent');
- } else {
- res.send('Cannot send message, no opened websocket found');
- }
- },
- }),
-
- new RoboHydraHead({
- name: 'close',
- path: '/close',
- method: 'GET',
- handler: function (req, res) {
- if (wsSocket) {
- wsSocket.close();
- res.send('Websocket closed');
- } else {
- res.send('Cannot close websocket, no opened websocket found');
- }
- },
- }),
-
- new RoboHydraWebSocketHeadProxy({
- name: 'proxy',
- mountPath: '/proxy',
- proxyTo: 'ws://server.example.com',
- preProcessor: function (data) {
- console.info(`From the client: ${data}`);
- },
- postProcessor: function (data) {
- console.info(`From the server: ${data}`);
- },
- }),
-
- new RoboHydraWebSocketHead({
- name: 'WS Server',
- path: '/.*',
- handler: function (req, socket) {
- wsSocket = socket;
- },
- }),
- ],
- };
-};
+import { describe, it } from 'node:test';
+
import { expect } from 'expect';
import { CircularArray, DEFAULT_CIRCULAR_ARRAY_SIZE } from '../../src/utils/CircularArray';
-describe('CircularArray test suite', () => {
- it('Verify that circular array can be instantiated', () => {
+await describe('CircularArray test suite', async () => {
+ await it('Verify that circular array can be instantiated', () => {
const circularArray = new CircularArray();
expect(circularArray).toBeInstanceOf(CircularArray);
});
- it('Verify circular array default size at instance creation', () => {
+ await it('Verify circular array default size at instance creation', () => {
const circularArray = new CircularArray();
expect(circularArray.size).toBe(DEFAULT_CIRCULAR_ARRAY_SIZE);
});
- it('Verify that circular array size can be set at instance creation', () => {
+ await it('Verify that circular array size can be set at instance creation', () => {
const circularArray = new CircularArray(1000);
expect(circularArray.size).toBe(1000);
});
- it('Verify that circular array size and items can be set at instance creation', () => {
+ await it('Verify that circular array size and items can be set at instance creation', () => {
let circularArray = new CircularArray(1000, 1, 2, 3, 4, 5);
expect(circularArray.size).toBe(1000);
expect(circularArray.length).toBe(5);
expect(circularArray.length).toBe(4);
});
- it('Verify that circular array size is valid at instance creation', () => {
+ await it('Verify that circular array size is valid at instance creation', () => {
expect(() => new CircularArray(0.25)).toThrowError(
new TypeError('Invalid circular array size: 0.25 is not a safe integer'),
);
);
});
- it('Verify that circular array empty works as intended', () => {
+ await it('Verify that circular array empty works as intended', () => {
const circularArray = new CircularArray();
expect(circularArray.empty()).toBe(true);
});
- it('Verify that circular array full works as intended', () => {
+ await it('Verify that circular array full works as intended', () => {
const circularArray = new CircularArray(5, 1, 2, 3, 4, 5);
expect(circularArray.full()).toBe(true);
});
- it('Verify that circular array push works as intended', () => {
+ await it('Verify that circular array push works as intended', () => {
let circularArray = new CircularArray(4);
let arrayLength = circularArray.push(1, 2, 3, 4, 5);
expect(arrayLength).toBe(circularArray.size);
expect(circularArray).toStrictEqual(new CircularArray(100, 1, 2, 3, 4, 5));
});
- it('Verify that circular array splice works as intended', () => {
+ await it('Verify that circular array splice works as intended', () => {
let circularArray = new CircularArray(1000, 1, 2, 3, 4, 5);
let deletedItems = circularArray.splice(2);
expect(deletedItems).toStrictEqual(new CircularArray(3, 3, 4, 5));
expect(circularArray).toStrictEqual(new CircularArray(4, 2, 5, 6, 4));
});
- it('Verify that circular array concat works as intended', () => {
+ await it('Verify that circular array concat works as intended', () => {
let circularArray = new CircularArray(5, 1, 2, 3, 4, 5);
circularArray = circularArray.concat(6, 7);
expect(circularArray.length).toBe(5);
expect(circularArray).toStrictEqual(new CircularArray(1, 7));
});
- it('Verify that circular array unshift works as intended', () => {
+ await it('Verify that circular array unshift works as intended', () => {
let circularArray = new CircularArray(5, 1, 2, 3, 4, 5);
let arrayLength = circularArray.unshift(6, 7);
expect(arrayLength).toBe(5);
expect(circularArray).toStrictEqual(new CircularArray(1, 6));
});
- it('Verify that circular array resize works as intended', () => {
+ await it('Verify that circular array resize works as intended', () => {
expect(() => new CircularArray().resize(0.25)).toThrowError(
new TypeError('Invalid circular array size: 0.25 is not a safe integer'),
);
+import { describe, it } from 'node:test';
+
import { expect } from 'expect';
import { average, median, nthPercentile, stdDeviation } from '../../src/utils/StatisticUtils';
-describe('StatisticUtils test suite', () => {
- it('Verify average()', () => {
+await describe('StatisticUtils test suite', async () => {
+ await it('Verify average()', () => {
expect(average([])).toBe(0);
expect(average([0.08])).toBe(0.08);
expect(average([0.25, 4.75, 3.05, 6.04, 1.01, 2.02, 5.03])).toBe(3.1642857142857146);
expect(average([0.25, 4.75, 3.05, 6.04, 1.01, 2.02])).toBe(2.8533333333333335);
});
- it('Verify median()', () => {
+ await it('Verify median()', () => {
expect(median([])).toBe(0);
expect(median([0.08])).toBe(0.08);
expect(median([0.25, 4.75, 3.05, 6.04, 1.01, 2.02, 5.03])).toBe(3.05);
expect(median([0.25, 4.75, 3.05, 6.04, 1.01, 2.02])).toBe(2.535);
});
- it('Verify nthPercentile()', () => {
+ await it('Verify nthPercentile()', () => {
expect(nthPercentile([], 25)).toBe(0);
expect(nthPercentile([0.08], 50)).toBe(0.08);
const array0 = [0.25, 4.75, 3.05, 6.04, 1.01, 2.02, 5.03];
expect(nthPercentile(array0, 100)).toBe(6.04);
});
- it('Verify stdDeviation()', () => {
+ await it('Verify stdDeviation()', () => {
expect(stdDeviation([0.25, 4.75, 3.05, 6.04, 1.01, 2.02, 5.03])).toBe(2.0256064851429216);
});
});
+import { describe, it } from 'node:test';
+
import { hoursToMilliseconds, hoursToSeconds } from 'date-fns';
import { expect } from 'expect';
validateUUID,
} from '../../src/utils/Utils';
-describe('Utils test suite', () => {
- it('Verify generateUUID()/validateUUID()', () => {
+await describe('Utils test suite', async () => {
+ await it('Verify generateUUID()/validateUUID()', () => {
const uuid = generateUUID();
expect(uuid).toBeDefined();
expect(uuid.length).toEqual(36);
expect(validateUUID('987FBC9-4BED-3078-CF07A-9141BA07C9F3')).toBe(false);
});
- it('Verify sleep()', async () => {
+ await it('Verify sleep()', async () => {
const start = performance.now();
await sleep(1000);
const stop = performance.now();
expect(stop - start).toBeGreaterThanOrEqual(1000);
});
- it('Verify formatDurationMilliSeconds()', () => {
+ await it('Verify formatDurationMilliSeconds()', () => {
expect(formatDurationMilliSeconds(0)).toBe('');
expect(formatDurationMilliSeconds(1000)).toBe('1 second');
expect(formatDurationMilliSeconds(hoursToMilliseconds(4380))).toBe('182 days 12 hours');
});
- it('Verify formatDurationSeconds()', () => {
+ await it('Verify formatDurationSeconds()', () => {
expect(formatDurationSeconds(0)).toBe('');
expect(formatDurationSeconds(1)).toBe('1 second');
expect(formatDurationSeconds(hoursToSeconds(4380))).toBe('182 days 12 hours');
});
- it('Verify isValidTime()', () => {
+ await it('Verify isValidTime()', () => {
expect(isValidTime(undefined)).toBe(false);
expect(isValidTime(null)).toBe(false);
expect(isValidTime('')).toBe(false);
expect(isValidTime(new Date())).toBe(true);
});
- it('Verify convertToDate()', () => {
+ await it('Verify convertToDate()', () => {
expect(convertToDate(undefined)).toBe(undefined);
expect(() => convertToDate('')).toThrowError(new Error("Cannot convert to date: ''"));
expect(() => convertToDate('00:70:61')).toThrowError(
expect(date).toStrictEqual(new Date(dateStr));
});
- it('Verify convertToInt()', () => {
+ await it('Verify convertToInt()', () => {
expect(convertToInt(undefined)).toBe(0);
expect(convertToInt(null)).toBe(0);
expect(convertToInt(0)).toBe(0);
}).toThrow("Cannot convert to integer: 'NaN'");
});
- it('Verify convertToFloat()', () => {
+ await it('Verify convertToFloat()', () => {
expect(convertToFloat(undefined)).toBe(0);
expect(convertToFloat(null)).toBe(0);
expect(convertToFloat(0)).toBe(0);
}).toThrow("Cannot convert to float: 'NaN'");
});
- it('Verify convertToBoolean()', () => {
+ await it('Verify convertToBoolean()', () => {
expect(convertToBoolean(undefined)).toBe(false);
expect(convertToBoolean(null)).toBe(false);
expect(convertToBoolean('true')).toBe(true);
expect(convertToBoolean('NoNBoolean')).toBe(false);
});
- it('Verify secureRandom()', () => {
+ await it('Verify secureRandom()', () => {
const random = secureRandom();
expect(typeof random === 'number').toBe(true);
expect(random).toBeGreaterThanOrEqual(0);
expect(random).toBeLessThan(1);
});
- it('Verify getRandomInteger()', () => {
+ await it('Verify getRandomInteger()', () => {
let randomInteger = getRandomInteger();
expect(Number.isSafeInteger(randomInteger)).toBe(true);
expect(randomInteger).toBeGreaterThanOrEqual(0);
expect(randomInteger).toBeGreaterThanOrEqual(Math.ceil(minimum));
});
- it('Verify roundTo()', () => {
+ await it('Verify roundTo()', () => {
expect(roundTo(0, 2)).toBe(0);
expect(roundTo(0.5, 0)).toBe(1);
expect(roundTo(0.5, 2)).toBe(0.5);
expect(roundTo(-5.015, 2)).toBe(-5.02);
});
- it('Verify getRandomFloat()', () => {
+ await it('Verify getRandomFloat()', () => {
let randomFloat = getRandomFloat();
expect(typeof randomFloat === 'number').toBe(true);
expect(randomFloat).toBeGreaterThanOrEqual(0);
expect(randomFloat).toBeLessThanOrEqual(0);
});
- it('Verify extractTimeSeriesValues()', () => {
+ await it('Verify extractTimeSeriesValues()', () => {
expect(extractTimeSeriesValues([])).toEqual([]);
expect(extractTimeSeriesValues([{ timestamp: Date.now(), value: 1.1 }])).toEqual([1.1]);
expect(
).toEqual([1.1, 2.2]);
});
- it('Verify isObject()', () => {
+ await it('Verify isObject()', () => {
expect(isObject('test')).toBe(false);
expect(isObject(undefined)).toBe(false);
expect(isObject(null)).toBe(false);
expect(isObject(new WeakSet())).toBe(true);
});
- it('Verify cloneObject()', () => {
+ await it('Verify cloneObject()', () => {
const obj = { 1: 1 };
expect(cloneObject(obj)).toStrictEqual(obj);
expect(cloneObject(obj) === obj).toBe(false);
expect(cloneObject(weakSet)).toStrictEqual({});
});
- it('Verify hasOwnProp()', () => {
+ await it('Verify hasOwnProp()', () => {
expect(hasOwnProp('test', '')).toBe(false);
expect(hasOwnProp(undefined, '')).toBe(false);
expect(hasOwnProp(null, '')).toBe(false);
expect(hasOwnProp({ '1': '1' }, 2)).toBe(false);
});
- it('Verify isIterable()', () => {
+ await it('Verify isIterable()', () => {
expect(isIterable('')).toBe(true);
expect(isIterable(' ')).toBe(true);
expect(isIterable('test')).toBe(true);
expect(isIterable(new WeakSet())).toBe(false);
});
- it('Verify isEmptyString()', () => {
+ await it('Verify isEmptyString()', () => {
expect(isEmptyString('')).toBe(true);
expect(isEmptyString(' ')).toBe(true);
expect(isEmptyString(' ')).toBe(true);
expect(isEmptyString(new WeakSet())).toBe(false);
});
- it('Verify isNotEmptyString()', () => {
+ await it('Verify isNotEmptyString()', () => {
expect(isNotEmptyString('')).toBe(false);
expect(isNotEmptyString(' ')).toBe(false);
expect(isNotEmptyString(' ')).toBe(false);
expect(isNotEmptyString(new WeakSet())).toBe(false);
});
- it('Verify isUndefined()', () => {
+ await it('Verify isUndefined()', () => {
expect(isUndefined(undefined)).toBe(true);
expect(isUndefined(null)).toBe(false);
expect(isUndefined('')).toBe(false);
expect(isUndefined(new WeakSet())).toBe(false);
});
- it('Verify isNullOrUndefined()', () => {
+ await it('Verify isNullOrUndefined()', () => {
expect(isNullOrUndefined(undefined)).toBe(true);
expect(isNullOrUndefined(null)).toBe(true);
expect(isNullOrUndefined('')).toBe(false);
expect(isNullOrUndefined(new WeakSet())).toBe(false);
});
- it('Verify isEmptyArray()', () => {
+ await it('Verify isEmptyArray()', () => {
expect(isEmptyArray([])).toBe(true);
expect(isEmptyArray([1, 2])).toBe(false);
expect(isEmptyArray(['1', '2'])).toBe(false);
expect(isEmptyArray(new WeakSet())).toBe(false);
});
- it('Verify isNotEmptyArray()', () => {
+ await it('Verify isNotEmptyArray()', () => {
expect(isNotEmptyArray([])).toBe(false);
expect(isNotEmptyArray([1, 2])).toBe(true);
expect(isNotEmptyArray(['1', '2'])).toBe(true);
expect(isNotEmptyArray(new WeakSet())).toBe(false);
});
- it('Verify isEmptyObject()', () => {
+ await it('Verify isEmptyObject()', () => {
expect(isEmptyObject({})).toBe(true);
expect(isEmptyObject({ 1: 1, 2: 2 })).toBe(false);
expect(isEmptyObject(new Map())).toBe(false);
expect(isEmptyObject(new WeakSet())).toBe(false);
});
- it('Verify isArraySorted()', () => {
+ await it('Verify isArraySorted()', () => {
expect(
isArraySorted([], (a, b) => {
return a - b;
expect(isArraySorted<number>([2, 1, 3, 4, 5], (a, b) => a - b)).toBe(false);
});
- it('Verify once()', () => {
+ await it('Verify once()', () => {
let called = 0;
const fn = () => ++called;
const onceFn = once(fn, this);
expect(result3).toBe(1);
});
- it('Verify min()', () => {
+ await it('Verify min()', () => {
expect(min()).toBe(Infinity);
expect(min(0, 1)).toBe(0);
expect(min(1, 0)).toBe(0);
expect(min(-1, 0)).toBe(-1);
});
- it('Verify max()', () => {
+ await it('Verify max()', () => {
expect(max()).toBe(-Infinity);
expect(max(0, 1)).toBe(1);
expect(max(1, 0)).toBe(1);