diff --git a/integration-tests/__tests__/alter-database.spec.js b/integration-tests/__tests__/alter-database.spec.js index f5659521a..b786c4718 100644 --- a/integration-tests/__tests__/alter-database.spec.js +++ b/integration-tests/__tests__/alter-database.spec.js @@ -1,7 +1,6 @@ const stableStringify = require('json-stable-stringify'); const _ = require('lodash'); const fp = require('lodash/fp'); -const uuidv1 = require('uuid/v1'); const { testWrapper } = require('../tools'); const engines = require('../engines'); const { getAlterDatabaseScript, extendDatabaseInfo, generateDbPairingId } = require('dbgate-tools'); diff --git a/integration-tests/__tests__/alter-table.spec.js b/integration-tests/__tests__/alter-table.spec.js index f6ae926f6..c671e7c3e 100644 --- a/integration-tests/__tests__/alter-table.spec.js +++ b/integration-tests/__tests__/alter-table.spec.js @@ -1,7 +1,6 @@ const stableStringify = require('json-stable-stringify'); const _ = require('lodash'); const fp = require('lodash/fp'); -const uuidv1 = require('uuid/v1'); const { testWrapper } = require('../tools'); const engines = require('../engines'); const { getAlterTableScript, extendDatabaseInfo, generateDbPairingId } = require('dbgate-tools'); @@ -76,7 +75,7 @@ describe('Alter table', () => { tbl.columns.push({ columnName: 'added', dataType: 'int', - pairingId: uuidv1(), + pairingId: crypto.randomUUID(), notNull: false, autoIncrement: false, }); diff --git a/packages/api/package.json b/packages/api/package.json index c1f4dd62b..4b6a2b8ee 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -57,8 +57,7 @@ "rimraf": "^3.0.0", "simple-encryptor": "^4.0.0", "ssh2": "^1.11.0", - "tar": "^6.0.5", - "uuid": "^3.4.0" + "tar": "^6.0.5" }, "scripts": { "start": "env-cmd node src/index.js --listen-api", diff --git a/packages/api/src/controllers/archive.js b/packages/api/src/controllers/archive.js index eb1a546e2..4a6b94e21 100644 --- a/packages/api/src/controllers/archive.js +++ b/packages/api/src/controllers/archive.js @@ -6,7 +6,6 @@ const socket = require('../utility/socket'); const loadFilesRecursive = require('../utility/loadFilesRecursive'); const getJslFileName = require('../utility/getJslFileName'); const { getLogger } = require('dbgate-tools'); -const uuidv1 = require('uuid/v1'); const dbgateApi = require('../shell'); const jsldata = require('./jsldata'); const platformInfo = require('../utility/platformInfo'); @@ -127,7 +126,7 @@ module.exports = { return true; } - const tmpchangedFilePath = path.join(resolveArchiveFolder(folder), `${file}-${uuidv1()}.jsonl`); + const tmpchangedFilePath = path.join(resolveArchiveFolder(folder), `${file}-${crypto.randomUUID()}.jsonl`); const reader = await dbgateApi.modifyJsonLinesReader({ fileName: changedFilePath, changeSet, diff --git a/packages/api/src/controllers/auth.js b/packages/api/src/controllers/auth.js index 1d1b127ab..7092ed975 100644 --- a/packages/api/src/controllers/auth.js +++ b/packages/api/src/controllers/auth.js @@ -1,14 +1,13 @@ const axios = require('axios'); const jwt = require('jsonwebtoken'); const getExpressPath = require('../utility/getExpressPath'); -const uuidv1 = require('uuid/v1'); const { getLogins } = require('../utility/hasPermission'); const { getLogger } = require('dbgate-tools'); const AD = require('activedirectory2').promiseWrapper; const logger = getLogger('auth'); -const tokenSecret = uuidv1(); +const tokenSecret = crypto.randomUUID(); function shouldAuthorizeApi() { const logins = getLogins(); diff --git a/packages/api/src/controllers/databaseConnections.js b/packages/api/src/controllers/databaseConnections.js index 1dfe68fe6..396288acd 100644 --- a/packages/api/src/controllers/databaseConnections.js +++ b/packages/api/src/controllers/databaseConnections.js @@ -1,4 +1,3 @@ -const uuidv1 = require('uuid/v1'); const connections = require('./connections'); const archive = require('./archive'); const socket = require('../utility/socket'); @@ -137,7 +136,7 @@ module.exports = { /** @param {import('dbgate-types').OpenedDatabaseConnection} conn */ sendRequest(conn, message) { - const msgid = uuidv1(); + const msgid = crypto.randomUUID(); const promise = new Promise((resolve, reject) => { this.requests[msgid] = [resolve, reject]; try { diff --git a/packages/api/src/controllers/files.js b/packages/api/src/controllers/files.js index 1e3c76b7a..cbfc13644 100644 --- a/packages/api/src/controllers/files.js +++ b/packages/api/src/controllers/files.js @@ -1,4 +1,3 @@ -const uuidv1 = require('uuid/v1'); const fs = require('fs-extra'); const path = require('path'); const { filesdir, archivedir, resolveArchiveFolder, uploadsdir, appdir } = require('../utility/directories'); @@ -164,7 +163,7 @@ module.exports = { generateUploadsFile_meta: true, async generateUploadsFile({ extension }) { - const fileName = `${uuidv1()}.${extension || 'html'}`; + const fileName = `${crypto.randomUUID()}.${extension || 'html'}`; return { fileName, filePath: path.join(uploadsdir(), fileName), diff --git a/packages/api/src/controllers/runners.js b/packages/api/src/controllers/runners.js index d10eac39d..75cc31442 100644 --- a/packages/api/src/controllers/runners.js +++ b/packages/api/src/controllers/runners.js @@ -1,7 +1,6 @@ const _ = require('lodash'); const path = require('path'); const fs = require('fs-extra'); -const uuidv1 = require('uuid/v1'); const byline = require('byline'); const socket = require('../utility/socket'); const { fork } = require('child_process'); @@ -165,7 +164,7 @@ module.exports = { start_meta: true, async start({ script }) { - const runid = uuidv1(); + const runid = crypto.randomUUID() if (script.type == 'json') { const js = jsonScriptToJavascript(script); @@ -213,7 +212,7 @@ module.exports = { loadReader_meta: true, async loadReader({ functionName, props }) { const promise = new Promise((resolve, reject) => { - const runid = uuidv1(); + const runid = crypto.randomUUID(); this.requests[runid] = [resolve, reject]; this.startCore(runid, loaderScriptTemplate(functionName, props, runid)); }); diff --git a/packages/api/src/controllers/serverConnections.js b/packages/api/src/controllers/serverConnections.js index e2d167852..afd3b12c9 100644 --- a/packages/api/src/controllers/serverConnections.js +++ b/packages/api/src/controllers/serverConnections.js @@ -1,7 +1,6 @@ const connections = require('./connections'); const socket = require('../utility/socket'); const { fork } = require('child_process'); -const uuidv1 = require('uuid/v1'); const _ = require('lodash'); const AsyncLock = require('async-lock'); const { handleProcessCommunication } = require('../utility/processComm'); @@ -201,7 +200,7 @@ module.exports = { }, sendRequest(conn, message) { - const msgid = uuidv1(); + const msgid = crypto.randomUUID(); const promise = new Promise((resolve, reject) => { this.requests[msgid] = [resolve, reject]; try { diff --git a/packages/api/src/controllers/sessions.js b/packages/api/src/controllers/sessions.js index d3ca9eb22..9499b173b 100644 --- a/packages/api/src/controllers/sessions.js +++ b/packages/api/src/controllers/sessions.js @@ -1,5 +1,4 @@ const _ = require('lodash'); -const uuidv1 = require('uuid/v1'); const connections = require('./connections'); const socket = require('../utility/socket'); const { fork } = require('child_process'); @@ -85,7 +84,7 @@ module.exports = { create_meta: true, async create({ conid, database }) { - const sesid = uuidv1(); + const sesid = crypto.randomUUID(); const connection = await connections.getCore({ conid }); const subprocess = fork( global['API_PACKAGE'] || process.argv[1], diff --git a/packages/api/src/controllers/uploads.js b/packages/api/src/controllers/uploads.js index e4f68d555..18be83556 100644 --- a/packages/api/src/controllers/uploads.js +++ b/packages/api/src/controllers/uploads.js @@ -1,6 +1,5 @@ const path = require('path'); const { uploadsdir } = require('../utility/directories'); -const uuidv1 = require('uuid/v1'); const { getLogger } = require('dbgate-tools'); const logger = getLogger('uploads'); @@ -15,7 +14,7 @@ module.exports = { res.json(null); return; } - const uploadName = uuidv1(); + const uploadName = crypto.randomUUID(); const filePath = path.join(uploadsdir(), uploadName); logger.info(`Uploading file ${data.name}, size=${data.size}`); diff --git a/packages/api/src/proc/sessionProcess.js b/packages/api/src/proc/sessionProcess.js index f95b319bd..fb33b248d 100644 --- a/packages/api/src/proc/sessionProcess.js +++ b/packages/api/src/proc/sessionProcess.js @@ -1,4 +1,3 @@ -const uuidv1 = require('uuid/v1'); const path = require('path'); const fs = require('fs'); const _ = require('lodash'); @@ -31,7 +30,7 @@ class TableWriter { } initializeFromQuery(structure, resultIndex) { - this.jslid = uuidv1(); + this.jslid = crypto.randomUUID(); this.currentFile = path.join(jsldir(), `${this.jslid}.jsonl`); fs.writeFileSync( this.currentFile, diff --git a/packages/api/src/shell/download.js b/packages/api/src/shell/download.js index 158d535ab..d8ad8237c 100644 --- a/packages/api/src/shell/download.js +++ b/packages/api/src/shell/download.js @@ -1,11 +1,10 @@ const path = require('path'); -const uuidv1 = require('uuid/v1'); const { uploadsdir } = require('../utility/directories'); const { downloadFile } = require('../utility/downloader'); async function download(url) { if (url && url.match(/(^http:\/\/)|(^https:\/\/)/)) { - const tmpFile = path.join(uploadsdir(), uuidv1()); + const tmpFile = path.join(uploadsdir(), crypto.randomUUID()); await downloadFile(url, tmpFile); return tmpFile; } diff --git a/packages/api/src/utility/DatastoreProxy.js b/packages/api/src/utility/DatastoreProxy.js index ca8597d93..6c39fe297 100644 --- a/packages/api/src/utility/DatastoreProxy.js +++ b/packages/api/src/utility/DatastoreProxy.js @@ -1,5 +1,4 @@ const { fork } = require('child_process'); -const uuidv1 = require('uuid/v1'); const { handleProcessCommunication } = require('./processComm'); const processArgs = require('../utility/processArgs'); const pipeForkLogs = require('./pipeForkLogs'); @@ -67,7 +66,7 @@ class DatastoreProxy { async getRows(offset, limit) { await this.ensureSubprocess(); - const msgid = uuidv1(); + const msgid = crypto.randomUUID(); const promise = new Promise((resolve, reject) => { this.requests[msgid] = [resolve, reject]; try { @@ -81,7 +80,7 @@ class DatastoreProxy { } async notifyChangedCore() { - const msgid = uuidv1(); + const msgid = crypto.randomUUID(); const promise = new Promise((resolve, reject) => { this.requests[msgid] = [resolve, reject]; try { diff --git a/packages/api/src/utility/JsonLinesDatabase.js b/packages/api/src/utility/JsonLinesDatabase.js index 12de5cef3..87484961e 100644 --- a/packages/api/src/utility/JsonLinesDatabase.js +++ b/packages/api/src/utility/JsonLinesDatabase.js @@ -1,6 +1,5 @@ const AsyncLock = require('async-lock'); const fs = require('fs-extra'); -const uuidv1 = require('uuid/v1'); const lock = new AsyncLock(); @@ -57,7 +56,7 @@ class JsonLinesDatabase { ? obj : { ...obj, - _id: uuidv1(), + _id: crypto.randomUUID(), }; this.data.push(elem); await this._save(); diff --git a/packages/api/src/utility/JsonLinesDatastore.js b/packages/api/src/utility/JsonLinesDatastore.js index c34cb3300..4854a4857 100644 --- a/packages/api/src/utility/JsonLinesDatastore.js +++ b/packages/api/src/utility/JsonLinesDatastore.js @@ -8,7 +8,6 @@ const stableStringify = require('json-stable-stringify'); const { evaluateCondition } = require('dbgate-sqltree'); const requirePluginFunction = require('./requirePluginFunction'); const esort = require('external-sorting'); -const uuidv1 = require('uuid/v1'); const { jsldir } = require('./directories'); const LineReader = require('./LineReader'); @@ -28,7 +27,7 @@ class JsonLinesDatastore { } static async sortFile(infile, outfile, sort) { - const tempDir = path.join(os.tmpdir(), uuidv1()); + const tempDir = path.join(os.tmpdir(), crypto.randomUUID()); fs.mkdirSync(tempDir); await esort diff --git a/packages/api/src/utility/downloadPackage.js b/packages/api/src/utility/downloadPackage.js index 37bdb7f43..ea895aec4 100644 --- a/packages/api/src/utility/downloadPackage.js +++ b/packages/api/src/utility/downloadPackage.js @@ -1,7 +1,6 @@ // const pacote = require('pacote'); const axios = require('axios'); // const tarballExtract = require('tarball-extract'); -const uuidv1 = require('uuid/v1'); const path = require('path'); const fs = require('fs'); const zlib = require('zlib'); @@ -38,9 +37,9 @@ async function downloadPackage(packageName, directory) { const tarball = infoResp.data.versions[latest].dist.tarball; - const tmpFile = path.join(uploadsdir(), uuidv1() + '.tgz'); + const tmpFile = path.join(uploadsdir(), crypto.randomUUID() + '.tgz'); await downloadFile(tarball, tmpFile); - const tmpDir = path.join(uploadsdir(), uuidv1()); + const tmpDir = path.join(uploadsdir(), crypto.randomUUID()); fs.mkdirSync(tmpDir); await extractTarball(tmpFile, tmpDir); await copyDirectory(path.join(tmpDir, 'package'), directory); diff --git a/packages/api/src/utility/sshTunnelProxy.js b/packages/api/src/utility/sshTunnelProxy.js index 90b930f4b..f63bcfd8f 100644 --- a/packages/api/src/utility/sshTunnelProxy.js +++ b/packages/api/src/utility/sshTunnelProxy.js @@ -1,5 +1,4 @@ const { getLogger } = require('dbgate-tools'); -const uuidv1 = require('uuid/v1'); const { getSshTunnel } = require('./sshTunnel'); const logger = getLogger('sshTunnelProxy'); @@ -22,7 +21,7 @@ function handleGetSshTunnelResponse({ msgid, response }, subprocess) { async function getSshTunnelProxy(connection) { if (!process.send) return getSshTunnel(connection); - const msgid = uuidv1(); + const msgid = crypto.randomUUID(); process.send({ msgtype: 'getsshtunnel-request', msgid, connection }); return new Promise((resolve, reject) => { dispatchedMessages[msgid] = { resolve, reject };