fix(api-gateway): home server home page (#949)

* feat: add home server home page message

* fix: upgrade yarn
This commit is contained in:
Karol Sójko 2023-12-01 09:32:56 +01:00 committed by GitHub
parent 589b740f49
commit a82192db42
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 1031 additions and 965 deletions

70
.pnp.cjs generated
View file

@ -18048,14 +18048,16 @@ const Filename = {
const npath = Object.create(path__default.default); const npath = Object.create(path__default.default);
const ppath = Object.create(path__default.default.posix); const ppath = Object.create(path__default.default.posix);
npath.cwd = () => process.cwd(); npath.cwd = () => process.cwd();
ppath.cwd = () => toPortablePath(process.cwd()); ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd;
ppath.resolve = (...segments) => { if (process.platform === `win32`) {
if (segments.length > 0 && ppath.isAbsolute(segments[0])) { ppath.resolve = (...segments) => {
return path__default.default.posix.resolve(...segments); if (segments.length > 0 && ppath.isAbsolute(segments[0])) {
} else { return path__default.default.posix.resolve(...segments);
return path__default.default.posix.resolve(ppath.cwd(), ...segments); } else {
} return path__default.default.posix.resolve(ppath.cwd(), ...segments);
}; }
};
}
const contains = function(pathUtils, from, to) { const contains = function(pathUtils, from, to) {
from = pathUtils.normalize(from); from = pathUtils.normalize(from);
to = pathUtils.normalize(to); to = pathUtils.normalize(to);
@ -18069,17 +18071,13 @@ const contains = function(pathUtils, from, to) {
return null; return null;
} }
}; };
npath.fromPortablePath = fromPortablePath;
npath.toPortablePath = toPortablePath;
npath.contains = (from, to) => contains(npath, from, to); npath.contains = (from, to) => contains(npath, from, to);
ppath.contains = (from, to) => contains(ppath, from, to); ppath.contains = (from, to) => contains(ppath, from, to);
const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/;
const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/; const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/;
const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/;
const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/;
function fromPortablePath(p) { function fromPortablePathWin32(p) {
if (process.platform !== `win32`)
return p;
let portablePathMatch, uncPortablePathMatch; let portablePathMatch, uncPortablePathMatch;
if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP))
p = portablePathMatch[1]; p = portablePathMatch[1];
@ -18089,9 +18087,7 @@ function fromPortablePath(p) {
return p; return p;
return p.replace(/\//g, `\\`); return p.replace(/\//g, `\\`);
} }
function toPortablePath(p) { function toPortablePathWin32(p) {
if (process.platform !== `win32`)
return p;
p = p.replace(/\\/g, `/`); p = p.replace(/\\/g, `/`);
let windowsPathMatch, uncWindowsPathMatch; let windowsPathMatch, uncWindowsPathMatch;
if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP))
@ -18100,6 +18096,10 @@ function toPortablePath(p) {
p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`;
return p; return p;
} }
const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p;
const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p;
npath.fromPortablePath = fromPortablePath;
npath.toPortablePath = toPortablePath;
function convertPath(targetPathUtils, sourcePath) { function convertPath(targetPathUtils, sourcePath) {
return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath);
} }
@ -19144,6 +19144,12 @@ class ProxiedFS extends FakeFS {
} }
} }
function direntToPortable(dirent) {
const portableDirent = dirent;
if (typeof dirent.path === `string`)
portableDirent.path = npath.toPortablePath(dirent.path);
return portableDirent;
}
class NodeFS extends BasePortableFakeFS { class NodeFS extends BasePortableFakeFS {
constructor(realFs = fs__default.default) { constructor(realFs = fs__default.default) {
super(); super();
@ -19470,15 +19476,31 @@ class NodeFS extends BasePortableFakeFS {
async readdirPromise(p, opts) { async readdirPromise(p, opts) {
return await new Promise((resolve, reject) => { return await new Promise((resolve, reject) => {
if (opts) { if (opts) {
this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); if (opts.recursive && process.platform === `win32`) {
if (opts.withFileTypes) {
this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject));
} else {
this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject));
}
} else {
this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject));
}
} else { } else {
this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback((value) => resolve(value), reject)); this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
} }
}); });
} }
readdirSync(p, opts) { readdirSync(p, opts) {
if (opts) { if (opts) {
return this.realFs.readdirSync(npath.fromPortablePath(p), opts); if (opts.recursive && process.platform === `win32`) {
if (opts.withFileTypes) {
return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable);
} else {
return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath);
}
} else {
return this.realFs.readdirSync(npath.fromPortablePath(p), opts);
}
} else { } else {
return this.realFs.readdirSync(npath.fromPortablePath(p)); return this.realFs.readdirSync(npath.fromPortablePath(p));
} }
@ -23032,8 +23054,6 @@ function getPathForDisplay(p) {
const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10));
const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13;
const builtinModules = new Set(require$$0.Module.builtinModules || Object.keys(process.binding(`natives`)));
const isBuiltinModule = (request) => request.startsWith(`node:`) || builtinModules.has(request);
function readPackageScope(checkPath) { function readPackageScope(checkPath) {
const rootSeparatorIndex = checkPath.indexOf(npath.sep); const rootSeparatorIndex = checkPath.indexOf(npath.sep);
let separatorIndex; let separatorIndex;
@ -23142,7 +23162,7 @@ function applyPatch(pnpapi, opts) {
const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/; const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/;
const originalModuleResolveFilename = require$$0.Module._resolveFilename; const originalModuleResolveFilename = require$$0.Module._resolveFilename;
require$$0.Module._resolveFilename = function(request, parent, isMain, options) { require$$0.Module._resolveFilename = function(request, parent, isMain, options) {
if (isBuiltinModule(request)) if (require$$0.isBuiltin(request))
return request; return request;
if (!enableNativeHooks) if (!enableNativeHooks)
return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, options); return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, options);
@ -24504,7 +24524,7 @@ function makeApi(runtimeState, opts) {
throw new Error(`resolveToUnqualified can not handle private import mappings`); throw new Error(`resolveToUnqualified can not handle private import mappings`);
if (request === `pnpapi`) if (request === `pnpapi`)
return npath.toPortablePath(opts.pnpapiResolution); return npath.toPortablePath(opts.pnpapiResolution);
if (considerBuiltins && isBuiltinModule(request)) if (considerBuiltins && require$$0.isBuiltin(request))
return null; return null;
const requestForDisplay = getPathForDisplay(request); const requestForDisplay = getPathForDisplay(request);
const issuerForDisplay = issuer && getPathForDisplay(issuer); const issuerForDisplay = issuer && getPathForDisplay(issuer);
@ -24642,7 +24662,7 @@ ${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ances
} }
} }
} else if (dependencyReference === void 0) { } else if (dependencyReference === void 0) {
if (!considerBuiltins && isBuiltinModule(request)) { if (!considerBuiltins && require$$0.isBuiltin(request)) {
if (isDependencyTreeRoot(issuerLocator)) { if (isDependencyTreeRoot(issuerLocator)) {
error = makeError( error = makeError(
ErrorCode.UNDECLARED_DEPENDENCY, ErrorCode.UNDECLARED_DEPENDENCY,
@ -24809,7 +24829,7 @@ ${candidates.map((candidate) => `Not found: ${getPathForDisplay(candidate)}
if (unqualifiedPath === null) if (unqualifiedPath === null)
return null; return null;
const isIssuerIgnored = () => issuer !== null ? isPathIgnored(issuer) : false; const isIssuerIgnored = () => issuer !== null ? isPathIgnored(issuer) : false;
const remappedPath = (!considerBuiltins || !isBuiltinModule(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions, issuer) : unqualifiedPath; const remappedPath = (!considerBuiltins || !require$$0.isBuiltin(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions, issuer) : unqualifiedPath;
return resolveUnqualified(remappedPath, { extensions }); return resolveUnqualified(remappedPath, { extensions });
} catch (error) { } catch (error) {
if (Object.hasOwn(error, `pnpCode`)) if (Object.hasOwn(error, `pnpCode`))

127
.pnp.loader.mjs generated
View file

@ -1,9 +1,9 @@
import fs from 'fs'; import fs from 'fs';
import { URL as URL$1, fileURLToPath, pathToFileURL } from 'url'; import { URL as URL$1, fileURLToPath, pathToFileURL } from 'url';
import path from 'path'; import path from 'path';
import moduleExports, { Module } from 'module';
import { createHash } from 'crypto'; import { createHash } from 'crypto';
import { EOL } from 'os'; import { EOL } from 'os';
import moduleExports, { isBuiltin } from 'module';
import assert from 'assert'; import assert from 'assert';
const SAFE_TIME = 456789e3; const SAFE_TIME = 456789e3;
@ -16,14 +16,16 @@ const PortablePath = {
const npath = Object.create(path); const npath = Object.create(path);
const ppath = Object.create(path.posix); const ppath = Object.create(path.posix);
npath.cwd = () => process.cwd(); npath.cwd = () => process.cwd();
ppath.cwd = () => toPortablePath(process.cwd()); ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd;
ppath.resolve = (...segments) => { if (process.platform === `win32`) {
if (segments.length > 0 && ppath.isAbsolute(segments[0])) { ppath.resolve = (...segments) => {
return path.posix.resolve(...segments); if (segments.length > 0 && ppath.isAbsolute(segments[0])) {
} else { return path.posix.resolve(...segments);
return path.posix.resolve(ppath.cwd(), ...segments); } else {
} return path.posix.resolve(ppath.cwd(), ...segments);
}; }
};
}
const contains = function(pathUtils, from, to) { const contains = function(pathUtils, from, to) {
from = pathUtils.normalize(from); from = pathUtils.normalize(from);
to = pathUtils.normalize(to); to = pathUtils.normalize(to);
@ -37,17 +39,13 @@ const contains = function(pathUtils, from, to) {
return null; return null;
} }
}; };
npath.fromPortablePath = fromPortablePath;
npath.toPortablePath = toPortablePath;
npath.contains = (from, to) => contains(npath, from, to); npath.contains = (from, to) => contains(npath, from, to);
ppath.contains = (from, to) => contains(ppath, from, to); ppath.contains = (from, to) => contains(ppath, from, to);
const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/;
const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/; const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/;
const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/;
const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/;
function fromPortablePath(p) { function fromPortablePathWin32(p) {
if (process.platform !== `win32`)
return p;
let portablePathMatch, uncPortablePathMatch; let portablePathMatch, uncPortablePathMatch;
if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP))
p = portablePathMatch[1]; p = portablePathMatch[1];
@ -57,9 +55,7 @@ function fromPortablePath(p) {
return p; return p;
return p.replace(/\//g, `\\`); return p.replace(/\//g, `\\`);
} }
function toPortablePath(p) { function toPortablePathWin32(p) {
if (process.platform !== `win32`)
return p;
p = p.replace(/\\/g, `/`); p = p.replace(/\\/g, `/`);
let windowsPathMatch, uncWindowsPathMatch; let windowsPathMatch, uncWindowsPathMatch;
if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP))
@ -68,6 +64,10 @@ function toPortablePath(p) {
p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`;
return p; return p;
} }
const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p;
const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p;
npath.fromPortablePath = fromPortablePath;
npath.toPortablePath = toPortablePath;
function convertPath(targetPathUtils, sourcePath) { function convertPath(targetPathUtils, sourcePath) {
return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath);
} }
@ -902,6 +902,12 @@ class ProxiedFS extends FakeFS {
} }
} }
function direntToPortable(dirent) {
const portableDirent = dirent;
if (typeof dirent.path === `string`)
portableDirent.path = npath.toPortablePath(dirent.path);
return portableDirent;
}
class NodeFS extends BasePortableFakeFS { class NodeFS extends BasePortableFakeFS {
constructor(realFs = fs) { constructor(realFs = fs) {
super(); super();
@ -1228,15 +1234,31 @@ class NodeFS extends BasePortableFakeFS {
async readdirPromise(p, opts) { async readdirPromise(p, opts) {
return await new Promise((resolve, reject) => { return await new Promise((resolve, reject) => {
if (opts) { if (opts) {
this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); if (opts.recursive && process.platform === `win32`) {
if (opts.withFileTypes) {
this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject));
} else {
this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject));
}
} else {
this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject));
}
} else { } else {
this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback((value) => resolve(value), reject)); this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
} }
}); });
} }
readdirSync(p, opts) { readdirSync(p, opts) {
if (opts) { if (opts) {
return this.realFs.readdirSync(npath.fromPortablePath(p), opts); if (opts.recursive && process.platform === `win32`) {
if (opts.withFileTypes) {
return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable);
} else {
return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath);
}
} else {
return this.realFs.readdirSync(npath.fromPortablePath(p), opts);
}
} else { } else {
return this.realFs.readdirSync(npath.fromPortablePath(p)); return this.realFs.readdirSync(npath.fromPortablePath(p));
} }
@ -1372,10 +1394,8 @@ class VirtualFS extends ProxiedFS {
const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10));
const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13;
const HAS_LAZY_LOADED_TRANSLATORS = major > 19 || major === 19 && minor >= 3; const HAS_LAZY_LOADED_TRANSLATORS = major === 20 && minor < 6 || major === 19 && minor >= 3;
const builtinModules = new Set(Module.builtinModules || Object.keys(process.binding(`natives`)));
const isBuiltinModule = (request) => request.startsWith(`node:`) || builtinModules.has(request);
function readPackageScope(checkPath) { function readPackageScope(checkPath) {
const rootSeparatorIndex = checkPath.indexOf(npath.sep); const rootSeparatorIndex = checkPath.indexOf(npath.sep);
let separatorIndex; let separatorIndex;
@ -1963,7 +1983,7 @@ async function resolvePrivateRequest(specifier, issuer, context, nextResolve) {
} }
async function resolve$1(originalSpecifier, context, nextResolve) { async function resolve$1(originalSpecifier, context, nextResolve) {
const { findPnpApi } = moduleExports; const { findPnpApi } = moduleExports;
if (!findPnpApi || isBuiltinModule(originalSpecifier)) if (!findPnpApi || isBuiltin(originalSpecifier))
return nextResolve(originalSpecifier, context, nextResolve); return nextResolve(originalSpecifier, context, nextResolve);
let specifier = originalSpecifier; let specifier = originalSpecifier;
const url = tryParseURL(specifier, isRelativeRegexp.test(specifier) ? context.parentURL : void 0); const url = tryParseURL(specifier, isRelativeRegexp.test(specifier) ? context.parentURL : void 0);
@ -2022,31 +2042,46 @@ async function resolve$1(originalSpecifier, context, nextResolve) {
if (!HAS_LAZY_LOADED_TRANSLATORS) { if (!HAS_LAZY_LOADED_TRANSLATORS) {
const binding = process.binding(`fs`); const binding = process.binding(`fs`);
const originalfstat = binding.fstat; const originalReadFile = binding.readFileUtf8 || binding.readFileSync;
const ZIP_MASK = 4278190080; if (originalReadFile) {
const ZIP_MAGIC = 704643072; binding[originalReadFile.name] = function(...args) {
binding.fstat = function(...args) {
const [fd, useBigint, req] = args;
if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) {
try { try {
const stats = fs.fstatSync(fd); return fs.readFileSync(args[0], {
return new Float64Array([ encoding: `utf8`,
stats.dev, flag: args[1]
stats.mode, });
stats.nlink,
stats.uid,
stats.gid,
stats.rdev,
stats.blksize,
stats.ino,
stats.size,
stats.blocks
]);
} catch { } catch {
} }
} return originalReadFile.apply(this, args);
return originalfstat.apply(this, args); };
}; } else {
const binding2 = process.binding(`fs`);
const originalfstat = binding2.fstat;
const ZIP_MASK = 4278190080;
const ZIP_MAGIC = 704643072;
binding2.fstat = function(...args) {
const [fd, useBigint, req] = args;
if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) {
try {
const stats = fs.fstatSync(fd);
return new Float64Array([
stats.dev,
stats.mode,
stats.nlink,
stats.uid,
stats.gid,
stats.rdev,
stats.blksize,
stats.ino,
stats.size,
stats.blocks
]);
} catch {
}
}
return originalfstat.apply(this, args);
};
}
} }
const resolve = resolve$1; const resolve = resolve$1;

File diff suppressed because one or more lines are too long

893
.yarn/releases/yarn-4.0.2.cjs vendored Executable file

File diff suppressed because one or more lines are too long

View file

@ -2,4 +2,4 @@ compressionLevel: mixed
enableGlobalCache: false enableGlobalCache: false
yarnPath: .yarn/releases/yarn-4.0.0-rc.51.cjs yarnPath: .yarn/releases/yarn-4.0.2.cjs

View file

@ -39,7 +39,7 @@
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"typescript": "^5.0.4" "typescript": "^5.0.4"
}, },
"packageManager": "yarn@4.0.0-rc.51", "packageManager": "yarn@4.0.2",
"dependenciesMeta": { "dependenciesMeta": {
"grpc-tools@1.12.4": { "grpc-tools@1.12.4": {
"unplugged": true "unplugged": true

View file

@ -1,9 +1,18 @@
import { Request, Response } from 'express'
import { BaseHttpController, all, controller, results } from 'inversify-express-utils' import { BaseHttpController, all, controller, results } from 'inversify-express-utils'
@controller('') @controller('')
export class FallbackController extends BaseHttpController { export class FallbackController extends BaseHttpController {
@all('*') @all('*')
public async fallback(): Promise<results.NotFoundResult> { public async fallback(request: Request, response: Response): Promise<void | results.NotFoundResult> {
if (request.path === '/' && request.method === 'GET') {
response.send(
'<!DOCTYPE html><html lang="en"><head><meta name="robots" content="noindex"></head><body>Your home server is up and running! Enter the URL of this page into Standard Notes when registering or signing in to begin using your home server.</body></html>',
)
return
}
return this.notFound() return this.notFound()
} }
} }