"source-map-support": "^0.5.21",
"tar": "^6.1.11",
"tslib": "^2.4.0",
- "uuid": "^9.0.0",
"winston": "^3.8.2",
"winston-daily-rotate-file": "^4.7.1",
"ws": "^8.9.0"
"@types/node": "^18.11.0",
"@types/proper-lockfile": "^4.1.2",
"@types/tar": "^6.1.3",
- "@types/uuid": "^8.3.4",
"@types/ws": "^8.5.3",
"@typescript-eslint/eslint-plugin": "^5.40.0",
"@typescript-eslint/parser": "^5.40.0",
"integrity": "sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==",
"dev": true
},
- "node_modules/@types/uuid": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
- "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==",
- "dev": true
- },
"node_modules/@types/webgl-ext": {
"version": "0.0.30",
"resolved": "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz",
"integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==",
"dev": true
},
- "node_modules/uuid": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
- "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/uuid-parse": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/uuid-parse/-/uuid-parse-1.1.0.tgz",
"integrity": "sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==",
"dev": true
},
- "@types/uuid": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
- "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==",
- "dev": true
- },
"@types/webgl-ext": {
"version": "0.0.30",
"resolved": "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz",
"integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==",
"dev": true
},
- "uuid": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
- "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg=="
- },
"uuid-parse": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/uuid-parse/-/uuid-parse-1.1.0.tgz",
"source-map-support": "^0.5.21",
"tar": "^6.1.11",
"tslib": "^2.4.0",
- "uuid": "^9.0.0",
"winston": "^3.8.2",
"winston-daily-rotate-file": "^4.7.1",
"ws": "^8.9.0"
"@types/node": "^18.11.0",
"@types/proper-lockfile": "^4.1.2",
"@types/tar": "^6.1.3",
- "@types/uuid": "^8.3.4",
"@types/ws": "^8.5.3",
"@typescript-eslint/eslint-plugin": "^5.40.0",
"@typescript-eslint/parser": "^5.40.0",
import { BroadcastChannel } from 'worker_threads';
-import * as uuid from 'uuid';
-
import type { JsonType } from '../types/JsonType';
import type {
BroadcastChannelRequest,
);
return false;
}
- if (uuid.validate(messageEvent.data[0]) === false) {
+ if (Utils.validateUUID(messageEvent.data[0]) === false) {
logger.error(
this.logPrefix(moduleName, 'validateMessageEvent') +
' Worker broadcast channel protocol message event data UUID field is invalid'
import type internal from 'stream';
import { StatusCodes } from 'http-status-codes';
-import * as uuid from 'uuid';
import WebSocket, { type RawData, WebSocketServer } from 'ws';
import type { UIServerConfiguration } from '../../types/ConfigurationData';
return false;
}
- if (uuid.validate(request[0]) === false) {
+ if (Utils.validateUUID(request[0]) === false) {
logger.error(
`${this.logPrefix(
moduleName,
"core-js": "^3.25.5",
"finalhandler": "^1.2.0",
"serve-static": "^1.15.0",
- "uuid": "^9.0.0",
"vue": "^3.2.41",
"vue-class-component": "^8.0.0-rc.1",
"vue-router": "^4.1.5"
"@types/chai": "^4.3.3",
"@types/mocha": "^10.0.0",
"@types/node": "^18.11.0",
- "@types/uuid": "^8.3.4",
"@typescript-eslint/eslint-plugin": "^5.40.0",
"@typescript-eslint/parser": "^5.40.0",
"@vue/cli": "~5.0.8",
"@types/node": "*"
}
},
- "node_modules/@types/uuid": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
- "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==",
- "dev": true
- },
"node_modules/@types/webpack-env": {
"version": "1.17.0",
"resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.17.0.tgz",
"node": ">= 0.4.0"
}
},
- "node_modules/uuid": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
- "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"@types/node": "*"
}
},
- "@types/uuid": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
- "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==",
- "dev": true
- },
"@types/webpack-env": {
"version": "1.17.0",
"resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.17.0.tgz",
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
"dev": true
},
- "uuid": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
- "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg=="
- },
"validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"core-js": "^3.25.5",
"finalhandler": "^1.2.0",
"serve-static": "^1.15.0",
- "uuid": "^9.0.0",
"vue": "^3.2.41",
"vue-class-component": "^8.0.0-rc.1",
"vue-router": "^4.1.5"
"@types/chai": "^4.3.3",
"@types/mocha": "^10.0.0",
"@types/node": "^18.11.0",
- "@types/uuid": "^8.3.4",
"@typescript-eslint/eslint-plugin": "^5.40.0",
"@typescript-eslint/parser": "^5.40.0",
"@vue/cli": "~5.0.8",
import Utils from './Utils';
import config from '@/assets/config';
-import { v4 as uuidv4 } from 'uuid';
type ResponseHandler = {
procedureName: ProcedureName;
let uuid: string;
return Utils.promiseWithTimeout(
new Promise((resolve, reject) => {
- uuid = uuidv4();
+ uuid = crypto.randomUUID();
const msg = JSON.stringify([uuid, command, data]);
if (this._ws.readyState !== WebSocket.OPEN) {
import crypto from 'crypto';
-import { v4 as uuid } from 'uuid';
-
import { WebSocketCloseEventStatusString } from '../types/WebSocket';
export default class Utils {
}
public static generateUUID(): string {
- return uuid();
+ return crypto.randomUUID();
+ }
+
+ public static validateUUID(uuid: string): boolean {
+ return /\/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$\/i/.test(uuid);
}
public static async sleep(milliSeconds: number): Promise<NodeJS.Timeout> {