refactor: migrate from argon2 -> @node-rs/argon2 (#4733)
* chore(deps): replace argon2 w/@node-rs/argon2 * refactor: clean up hashPassword functions * refactor(util): pass in process.platform * fix: use correct settings for test-extension Before, it was running into errors with an @types package. Now, we're correctly running `tsc` so it picks up our `tsconfig.json` and we're telling TypeScript to not typecheck our lib and exclude `node_modules`
This commit is contained in:
@ -24,6 +24,6 @@
|
||||
"typescript": "^4.0.5"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc extension.ts"
|
||||
"build": "tsc"
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,9 @@
|
||||
"module": "commonjs",
|
||||
"outDir": ".",
|
||||
"strict": true,
|
||||
"baseUrl": "./"
|
||||
"baseUrl": "./",
|
||||
"skipLibCheck": true
|
||||
},
|
||||
"include": ["./extension.ts"]
|
||||
"include": ["./extension.ts"],
|
||||
"exclude": ["node_modules"]
|
||||
}
|
||||
|
@ -8,7 +8,6 @@
|
||||
"@types/node-fetch": "^2.5.8",
|
||||
"@types/supertest": "^2.0.11",
|
||||
"@types/wtfnode": "^0.7.0",
|
||||
"argon2": "^0.28.0",
|
||||
"jest": "^27.3.1",
|
||||
"jest-fetch-mock": "^3.0.3",
|
||||
"jsdom": "^16.4.0",
|
||||
@ -20,7 +19,6 @@
|
||||
},
|
||||
"resolutions": {
|
||||
"ansi-regex": "^5.0.1",
|
||||
"argon2/@mapbox/node-pre-gyp/tar": "^6.1.9",
|
||||
"set-value": "^4.0.1",
|
||||
"tmpl": "^1.0.5",
|
||||
"path-parse": "^1.0.7",
|
||||
|
@ -7,16 +7,6 @@ import * as util from "../../../src/node/util"
|
||||
|
||||
describe("getEnvPaths", () => {
|
||||
describe("on darwin", () => {
|
||||
let ORIGINAL_PLATFORM = ""
|
||||
|
||||
beforeAll(() => {
|
||||
ORIGINAL_PLATFORM = process.platform
|
||||
|
||||
Object.defineProperty(process, "platform", {
|
||||
value: "darwin",
|
||||
})
|
||||
})
|
||||
|
||||
beforeEach(() => {
|
||||
jest.resetModules()
|
||||
jest.mock("env-paths", () => {
|
||||
@ -27,15 +17,6 @@ describe("getEnvPaths", () => {
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
afterAll(() => {
|
||||
// Restore old platform
|
||||
|
||||
Object.defineProperty(process, "platform", {
|
||||
value: ORIGINAL_PLATFORM,
|
||||
})
|
||||
})
|
||||
|
||||
it("should return the env paths using xdgBasedir", () => {
|
||||
jest.mock("xdg-basedir", () => ({
|
||||
data: "/home/usr/.local/share",
|
||||
@ -43,7 +24,7 @@ describe("getEnvPaths", () => {
|
||||
runtime: "/tmp/runtime",
|
||||
}))
|
||||
const getEnvPaths = require("../../../src/node/util").getEnvPaths
|
||||
const envPaths = getEnvPaths()
|
||||
const envPaths = getEnvPaths("darwin")
|
||||
|
||||
expect(envPaths.data).toEqual("/home/usr/.local/share/code-server")
|
||||
expect(envPaths.config).toEqual("/home/usr/.config/code-server")
|
||||
@ -53,7 +34,7 @@ describe("getEnvPaths", () => {
|
||||
it("should return the env paths using envPaths when xdgBasedir is undefined", () => {
|
||||
jest.mock("xdg-basedir", () => ({}))
|
||||
const getEnvPaths = require("../../../src/node/util").getEnvPaths
|
||||
const envPaths = getEnvPaths()
|
||||
const envPaths = getEnvPaths("darwin")
|
||||
|
||||
expect(envPaths.data).toEqual("/home/envPath/.local/share")
|
||||
expect(envPaths.config).toEqual("/home/envPath/.config")
|
||||
@ -61,16 +42,6 @@ describe("getEnvPaths", () => {
|
||||
})
|
||||
})
|
||||
describe("on win32", () => {
|
||||
let ORIGINAL_PLATFORM = ""
|
||||
|
||||
beforeAll(() => {
|
||||
ORIGINAL_PLATFORM = process.platform
|
||||
|
||||
Object.defineProperty(process, "platform", {
|
||||
value: "win32",
|
||||
})
|
||||
})
|
||||
|
||||
beforeEach(() => {
|
||||
jest.resetModules()
|
||||
jest.mock("env-paths", () => {
|
||||
@ -82,17 +53,9 @@ describe("getEnvPaths", () => {
|
||||
})
|
||||
})
|
||||
|
||||
afterAll(() => {
|
||||
// Restore old platform
|
||||
|
||||
Object.defineProperty(process, "platform", {
|
||||
value: ORIGINAL_PLATFORM,
|
||||
})
|
||||
})
|
||||
|
||||
it("should return the env paths using envPaths", () => {
|
||||
const getEnvPaths = require("../../../src/node/util").getEnvPaths
|
||||
const envPaths = getEnvPaths()
|
||||
const envPaths = getEnvPaths("win32")
|
||||
|
||||
expect(envPaths.data).toEqual("/windows/envPath/.local/share")
|
||||
expect(envPaths.config).toEqual("/windows/envPath/.config")
|
||||
@ -100,16 +63,6 @@ describe("getEnvPaths", () => {
|
||||
})
|
||||
})
|
||||
describe("on other platforms", () => {
|
||||
let ORIGINAL_PLATFORM = ""
|
||||
|
||||
beforeAll(() => {
|
||||
ORIGINAL_PLATFORM = process.platform
|
||||
|
||||
Object.defineProperty(process, "platform", {
|
||||
value: "linux",
|
||||
})
|
||||
})
|
||||
|
||||
beforeEach(() => {
|
||||
jest.resetModules()
|
||||
jest.mock("env-paths", () => {
|
||||
@ -121,20 +74,12 @@ describe("getEnvPaths", () => {
|
||||
})
|
||||
})
|
||||
|
||||
afterAll(() => {
|
||||
// Restore old platform
|
||||
|
||||
Object.defineProperty(process, "platform", {
|
||||
value: ORIGINAL_PLATFORM,
|
||||
})
|
||||
})
|
||||
|
||||
it("should return the runtime using xdgBasedir if it exists", () => {
|
||||
jest.mock("xdg-basedir", () => ({
|
||||
runtime: "/tmp/runtime",
|
||||
}))
|
||||
const getEnvPaths = require("../../../src/node/util").getEnvPaths
|
||||
const envPaths = getEnvPaths()
|
||||
const envPaths = getEnvPaths("linux")
|
||||
|
||||
expect(envPaths.data).toEqual("/linux/envPath/.local/share")
|
||||
expect(envPaths.config).toEqual("/linux/envPath/.config")
|
||||
@ -144,7 +89,7 @@ describe("getEnvPaths", () => {
|
||||
it("should return the env paths using envPaths when xdgBasedir is undefined", () => {
|
||||
jest.mock("xdg-basedir", () => ({}))
|
||||
const getEnvPaths = require("../../../src/node/util").getEnvPaths
|
||||
const envPaths = getEnvPaths()
|
||||
const envPaths = getEnvPaths("linux")
|
||||
|
||||
expect(envPaths.data).toEqual("/linux/envPath/.local/share")
|
||||
expect(envPaths.config).toEqual("/linux/envPath/.config")
|
||||
@ -192,16 +137,16 @@ describe("isHashMatch", () => {
|
||||
const actual = await util.isHashMatch(password, _hash)
|
||||
expect(actual).toBe(false)
|
||||
})
|
||||
it("should return false and not throw an error if the hash doesn't start with a $", async () => {
|
||||
it("should return false if the hash doesn't start with a $", async () => {
|
||||
const password = "hellowpasssword"
|
||||
const _hash = "n2i$v=19$m=4096,t=3,p=1$EAoczTxVki21JDfIZpTUxg$rkXgyrW4RDGoDYrxBFD4H2DlSMEhP4h+Api1hXnGnFY"
|
||||
expect(async () => await util.isHashMatch(password, _hash)).not.toThrow()
|
||||
expect(await util.isHashMatch(password, _hash)).toBe(false)
|
||||
})
|
||||
it("should reject the promise and throw if error", async () => {
|
||||
it("should return false if the password and hash don't match", async () => {
|
||||
const password = "hellowpasssword"
|
||||
const _hash = "$ar2i"
|
||||
expect(async () => await util.isHashMatch(password, _hash)).rejects.toThrow()
|
||||
const actual = await util.isHashMatch(password, _hash)
|
||||
expect(actual).toBe(false)
|
||||
})
|
||||
})
|
||||
|
||||
|
3051
test/yarn.lock
3051
test/yarn.lock
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user