forked from tools/josh
Update dependencies, fix compatibility issues
This commit is contained in:
parent
ec6e5b01a1
commit
1c5927815a
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2018 F.W. Dekker
|
Copyright (c) 2018 Florine W. Dekker
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
Binary file not shown.
32
package.json
32
package.json
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"name": "fwdekker.com",
|
"name": "fwdekker.com",
|
||||||
"version": "0.40.11",
|
"version": "0.40.12",
|
||||||
"description": "The source code of [my personal website](https://fwdekker.com/).",
|
"description": "The source code of [my personal website](https://fwdekker.com/).",
|
||||||
"author": "F.W. Dekker",
|
"author": "Florine W. Dekker",
|
||||||
"browser": "dist/bundle.js",
|
"browser": "dist/bundle.js",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -18,17 +18,17 @@
|
||||||
"coverage": "nyc npm run test"
|
"coverage": "nyc npm run test"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"js-cookie": "^2.2.1",
|
"js-cookie": "^3.0.1",
|
||||||
"js-sha256": "^0.9.0",
|
"js-sha256": "^0.9.0",
|
||||||
"semver": "^6.3.0"
|
"semver": "^6.3.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@istanbuljs/nyc-config-typescript": "^1.0.1",
|
"@istanbuljs/nyc-config-typescript": "^1.0.2",
|
||||||
"@types/chai": "^4.2.21",
|
"@types/chai": "^4.3.0",
|
||||||
"@types/js-cookie": "^2.2.7",
|
"@types/js-cookie": "^3.0.1",
|
||||||
"@types/mocha": "^9.0.0",
|
"@types/mocha": "^9.1.0",
|
||||||
"@types/semver": "^6.2.1",
|
"@types/semver": "^6.2.1",
|
||||||
"chai": "^4.3.4",
|
"chai": "^4.3.6",
|
||||||
"grunt": "^1.4.1",
|
"grunt": "^1.4.1",
|
||||||
"grunt-cli": "^1.4.3",
|
"grunt-cli": "^1.4.3",
|
||||||
"grunt-contrib-clean": "^2.0.0",
|
"grunt-contrib-clean": "^2.0.0",
|
||||||
|
@ -36,15 +36,15 @@
|
||||||
"grunt-contrib-watch": "^1.1.0",
|
"grunt-contrib-watch": "^1.1.0",
|
||||||
"grunt-focus": "^1.0.0",
|
"grunt-focus": "^1.0.0",
|
||||||
"grunt-text-replace": "^0.4.0",
|
"grunt-text-replace": "^0.4.0",
|
||||||
"grunt-webpack": "^4.0.3",
|
"grunt-webpack": "^5.0.0",
|
||||||
"jsdom": "^17.0.0",
|
"jsdom": "^19.0.0",
|
||||||
"jsdom-global": "^3.0.2",
|
"jsdom-global": "^3.0.2",
|
||||||
"mocha": "^9.1.0",
|
"mocha": "^9.2.0",
|
||||||
"nyc": "^15.1.0",
|
"nyc": "^15.1.0",
|
||||||
"ts-loader": "^9.2.5",
|
"ts-loader": "^9.2.6",
|
||||||
"ts-node": "^10.2.1",
|
"ts-node": "^10.5.0",
|
||||||
"typescript": "^4.3.5",
|
"typescript": "^4.5.5",
|
||||||
"webpack": "^5.51.1",
|
"webpack": "^5.69.1",
|
||||||
"webpack-cli": "^4.8.0"
|
"webpack-cli": "^4.9.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,13 +3,13 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<meta name="author" content="F.W. Dekker" />
|
<meta name="author" content="Florine W. Dekker" />
|
||||||
<meta name="application-name" content="FWDekker" />
|
<meta name="application-name" content="FWDekker" />
|
||||||
<meta name="description" content="F.W. Dekker's personal website" />
|
<meta name="description" content="Florine W. Dekker's personal website" />
|
||||||
<meta name="theme-color" content="#0033cc" />
|
<meta name="theme-color" content="#0033cc" />
|
||||||
<meta property="og:url" content="https://fwdekker.com/" />
|
<meta property="og:url" content="https://fwdekker.com/" />
|
||||||
<meta property="og:title" content="FWDekker" />
|
<meta property="og:title" content="FWDekker" />
|
||||||
<meta property="og:description" content="F.W. Dekker's personal website">
|
<meta property="og:description" content="Florine W. Dekker's personal website">
|
||||||
<meta property="og:locale" content="en_GB" />
|
<meta property="og:locale" content="en_GB" />
|
||||||
|
|
||||||
<title>FWDekker</title>
|
<title>FWDekker</title>
|
||||||
|
|
|
@ -57,6 +57,9 @@ export class Commands {
|
||||||
localStreams.out = this.toStream(input.redirectTargets[1]) ?? localStreams.out;
|
localStreams.out = this.toStream(input.redirectTargets[1]) ?? localStreams.out;
|
||||||
localStreams.err = this.toStream(input.redirectTargets[2]) ?? localStreams.err;
|
localStreams.err = this.toStream(input.redirectTargets[2]) ?? localStreams.err;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
if (!(error instanceof Error))
|
||||||
|
throw Error(`Error while processing redirection error:\n${error}`);
|
||||||
|
|
||||||
streams.err.writeLine(`Error while redirecting output:\n${error.message}`);
|
streams.err.writeLine(`Error while redirecting output:\n${error.message}`);
|
||||||
return ExitCode.MISC;
|
return ExitCode.MISC;
|
||||||
}
|
}
|
||||||
|
@ -136,9 +139,12 @@ export class Commands {
|
||||||
} else {
|
} else {
|
||||||
return this.interpretBinary(code, this.environment, this.userList, this.fileSystem);
|
return this.interpretBinary(code, this.environment, this.userList, this.fileSystem);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (error) {
|
||||||
console.error(`Failed to interpret script '${targetName}'.`, code, e);
|
if (!(error instanceof Error))
|
||||||
return e;
|
throw Error(`Error while processing interpretation error:\n${error}`);
|
||||||
|
|
||||||
|
console.error(`Failed to interpret script '${targetName}'.`, code, error);
|
||||||
|
return error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,13 +39,13 @@ export class FileSystem {
|
||||||
[
|
[
|
||||||
new User("root", HashProvider.default.hashPassword("g9PjKu"), "/root",
|
new User("root", HashProvider.default.hashPassword("g9PjKu"), "/root",
|
||||||
"You're a hacker, Harry!"),
|
"You're a hacker, Harry!"),
|
||||||
new User("f", HashProvider.default.hashPassword("password"), undefined,
|
new User("florine", HashProvider.default.hashPassword("password"), undefined,
|
||||||
"Who are <i>you</i>?")
|
"Who are <i>you</i>?")
|
||||||
].map(it => User.toString(it)).join("\n") + "\n"
|
].map(it => User.toString(it)).join("\n") + "\n"
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
"home": new Directory({
|
"home": new Directory({
|
||||||
"f": new Directory({
|
"florine": new Directory({
|
||||||
"pgp-key.pub": new File("https://fwdkr.co/pgp", "lnk"),
|
"pgp-key.pub": new File("https://fwdkr.co/pgp", "lnk"),
|
||||||
"privacy-policy.lnk": new File("https://fwdekker.com/privacy/"),
|
"privacy-policy.lnk": new File("https://fwdekker.com/privacy/"),
|
||||||
"resume.pdf": new File("https://fwdkr.co/cv", "lnk"),
|
"resume.pdf": new File("https://fwdkr.co/cv", "lnk"),
|
||||||
|
|
|
@ -32,7 +32,7 @@ doAfterLoad(() => {
|
||||||
if (semver.lt(userVersion, latestVersion)) {
|
if (semver.lt(userVersion, latestVersion)) {
|
||||||
Persistence.reset();
|
Persistence.reset();
|
||||||
Persistence.setWasUpdated(true); // Message is displayed after reload
|
Persistence.setWasUpdated(true); // Message is displayed after reload
|
||||||
location.reload(true);
|
location.reload();
|
||||||
throw new ExpectedGoodbyeError("Goodbye");
|
throw new ExpectedGoodbyeError("Goodbye");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import * as Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import {Environment} from "./Environment";
|
import {Environment} from "./Environment";
|
||||||
import {Directory, FileSystem, Node} from "./FileSystem";
|
import {Directory, FileSystem, Node} from "./FileSystem";
|
||||||
import {InputHistory} from "./InputHistory";
|
import {InputHistory} from "./InputHistory";
|
||||||
|
@ -161,10 +161,10 @@ export class Persistence {
|
||||||
|
|
||||||
// Check user in environment
|
// Check user in environment
|
||||||
if (!environment.has("user")) {
|
if (!environment.has("user")) {
|
||||||
environment.set("user", "f");
|
environment.set("user", "florine");
|
||||||
} else if (environment.get("user") !== "" && !userList.has(environment.get("user"))) {
|
} else if (environment.get("user") !== "" && !userList.has(environment.get("user"))) {
|
||||||
console.warn(`Invalid user '${environment.get("user")}' in environment.`);
|
console.warn(`Invalid user '${environment.get("user")}' in environment.`);
|
||||||
environment.set("user", "f");
|
environment.set("user", "florine");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set home directory
|
// Set home directory
|
||||||
|
|
|
@ -126,7 +126,7 @@ export class Shell {
|
||||||
const inputString = streams.ins.readLine().replace("\n", "");
|
const inputString = streams.ins.readLine().replace("\n", "");
|
||||||
if (inputString === "factory-reset") {
|
if (inputString === "factory-reset") {
|
||||||
Persistence.reset();
|
Persistence.reset();
|
||||||
location.reload(true);
|
location.reload();
|
||||||
throw new ExpectedGoodbyeError("Goodbye");
|
throw new ExpectedGoodbyeError("Goodbye");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,6 +163,9 @@ export class Shell {
|
||||||
try {
|
try {
|
||||||
inputs = InputParser.create(this.environment, this.fileSystem).parseCommands(inputString);
|
inputs = InputParser.create(this.environment, this.fileSystem).parseCommands(inputString);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
if (!(error instanceof Error))
|
||||||
|
throw Error(`Error while processing parsing error:\n${error}`);
|
||||||
|
|
||||||
streams.err.writeLine(`Could not parse input: ${error.message}`);
|
streams.err.writeLine(`Could not parse input: ${error.message}`);
|
||||||
this.environment.set("status", "" + ExitCode.USAGE);
|
this.environment.set("status", "" + ExitCode.USAGE);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "es2019",
|
"target": "es2019",
|
||||||
"strict": true,
|
"strict": true,
|
||||||
// "noUncheckedIndexedAccess": true,
|
"allowSyntheticDefaultImports": true,
|
||||||
"rootDir": "./src/main/js/",
|
"rootDir": "./src/main/js/",
|
||||||
"outDir": "./dist/js/"
|
"outDir": "./dist/js/",
|
||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
"src/main/js/**/*.ts"
|
"src/main/js/**/*.ts"
|
||||||
|
|
Loading…
Reference in New Issue