Compare commits
3 Commits
2d179e8ade
...
a733ffca1c
Author | SHA1 | Date | |
---|---|---|---|
a733ffca1c | |||
ceebe5a317 | |||
aca28dc3e2 |
@ -29,7 +29,7 @@ steps:
|
|||||||
- name: test
|
- name: test
|
||||||
image: 'node:21.1.0-slim'
|
image: 'node:21.1.0-slim'
|
||||||
commands:
|
commands:
|
||||||
- yarn set version 4.0.1
|
- yarn set version 4.0.2
|
||||||
- yarn install
|
- yarn install
|
||||||
- yarn run jest
|
- yarn run jest
|
||||||
|
|
||||||
|
52
.pnp.cjs
generated
52
.pnp.cjs
generated
@ -26,12 +26,12 @@ const RAW_RUNTIME_STATE =
|
|||||||
[null, {\
|
[null, {\
|
||||||
"packageLocation": "./",\
|
"packageLocation": "./",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@types/jest", "npm:29.5.7"],\
|
["@types/jest", "npm:29.5.10"],\
|
||||||
["@types/node", "npm:20.8.10"],\
|
["@types/node", "npm:20.8.10"],\
|
||||||
["jest", "virtual:0bdaf34b18f64a61d994ea5745297b16ca55696ece813438927b218d5900be7b3b1afb8777870498f0544991088e71be7d6609a8d92700ec537ab224121fd8a4#npm:29.7.0"],\
|
["jest", "virtual:0bdaf34b18f64a61d994ea5745297b16ca55696ece813438927b218d5900be7b3b1afb8777870498f0544991088e71be7d6609a8d92700ec537ab224121fd8a4#npm:29.7.0"],\
|
||||||
["ts-jest", "virtual:0bdaf34b18f64a61d994ea5745297b16ca55696ece813438927b218d5900be7b3b1afb8777870498f0544991088e71be7d6609a8d92700ec537ab224121fd8a4#npm:29.1.1"],\
|
["ts-jest", "virtual:0bdaf34b18f64a61d994ea5745297b16ca55696ece813438927b218d5900be7b3b1afb8777870498f0544991088e71be7d6609a8d92700ec537ab224121fd8a4#npm:29.1.1"],\
|
||||||
["ts-node", "virtual:0bdaf34b18f64a61d994ea5745297b16ca55696ece813438927b218d5900be7b3b1afb8777870498f0544991088e71be7d6609a8d92700ec537ab224121fd8a4#npm:10.9.1"],\
|
["ts-node", "virtual:0bdaf34b18f64a61d994ea5745297b16ca55696ece813438927b218d5900be7b3b1afb8777870498f0544991088e71be7d6609a8d92700ec537ab224121fd8a4#npm:10.9.1"],\
|
||||||
["typescript", "patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=29ae49"]\
|
["typescript", "patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=e012d7"]\
|
||||||
],\
|
],\
|
||||||
"linkType": "SOFT"\
|
"linkType": "SOFT"\
|
||||||
}]\
|
}]\
|
||||||
@ -1379,10 +1379,10 @@ const RAW_RUNTIME_STATE =
|
|||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
["@types/jest", [\
|
["@types/jest", [\
|
||||||
["npm:29.5.7", {\
|
["npm:29.5.10", {\
|
||||||
"packageLocation": "../../../../cache/others/berry/cache/@types-jest-npm-29.5.7-e6780d868f-10c0.zip/node_modules/@types/jest/",\
|
"packageLocation": "../../../../cache/others/berry/cache/@types-jest-npm-29.5.10-cc73227aae-10c0.zip/node_modules/@types/jest/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@types/jest", "npm:29.5.7"],\
|
["@types/jest", "npm:29.5.10"],\
|
||||||
["expect", "npm:29.6.4"],\
|
["expect", "npm:29.6.4"],\
|
||||||
["pretty-format", "npm:29.6.3"]\
|
["pretty-format", "npm:29.6.3"]\
|
||||||
],\
|
],\
|
||||||
@ -1927,12 +1927,12 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageLocation": "./",\
|
"packageLocation": "./",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["clean-architecture", "workspace:."],\
|
["clean-architecture", "workspace:."],\
|
||||||
["@types/jest", "npm:29.5.7"],\
|
["@types/jest", "npm:29.5.10"],\
|
||||||
["@types/node", "npm:20.8.10"],\
|
["@types/node", "npm:20.8.10"],\
|
||||||
["jest", "virtual:0bdaf34b18f64a61d994ea5745297b16ca55696ece813438927b218d5900be7b3b1afb8777870498f0544991088e71be7d6609a8d92700ec537ab224121fd8a4#npm:29.7.0"],\
|
["jest", "virtual:0bdaf34b18f64a61d994ea5745297b16ca55696ece813438927b218d5900be7b3b1afb8777870498f0544991088e71be7d6609a8d92700ec537ab224121fd8a4#npm:29.7.0"],\
|
||||||
["ts-jest", "virtual:0bdaf34b18f64a61d994ea5745297b16ca55696ece813438927b218d5900be7b3b1afb8777870498f0544991088e71be7d6609a8d92700ec537ab224121fd8a4#npm:29.1.1"],\
|
["ts-jest", "virtual:0bdaf34b18f64a61d994ea5745297b16ca55696ece813438927b218d5900be7b3b1afb8777870498f0544991088e71be7d6609a8d92700ec537ab224121fd8a4#npm:29.1.1"],\
|
||||||
["ts-node", "virtual:0bdaf34b18f64a61d994ea5745297b16ca55696ece813438927b218d5900be7b3b1afb8777870498f0544991088e71be7d6609a8d92700ec537ab224121fd8a4#npm:10.9.1"],\
|
["ts-node", "virtual:0bdaf34b18f64a61d994ea5745297b16ca55696ece813438927b218d5900be7b3b1afb8777870498f0544991088e71be7d6609a8d92700ec537ab224121fd8a4#npm:10.9.1"],\
|
||||||
["typescript", "patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=29ae49"]\
|
["typescript", "patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=e012d7"]\
|
||||||
],\
|
],\
|
||||||
"linkType": "SOFT"\
|
"linkType": "SOFT"\
|
||||||
}]\
|
}]\
|
||||||
@ -4564,7 +4564,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
["@types/babel-jest", null],\
|
["@types/babel-jest", null],\
|
||||||
["@types/babel__core", null],\
|
["@types/babel__core", null],\
|
||||||
["@types/esbuild", null],\
|
["@types/esbuild", null],\
|
||||||
["@types/jest", "npm:29.5.7"],\
|
["@types/jest", "npm:29.5.10"],\
|
||||||
["@types/jest__types", null],\
|
["@types/jest__types", null],\
|
||||||
["@types/typescript", null],\
|
["@types/typescript", null],\
|
||||||
["babel-jest", null],\
|
["babel-jest", null],\
|
||||||
@ -4577,7 +4577,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
["lodash.memoize", "npm:4.1.2"],\
|
["lodash.memoize", "npm:4.1.2"],\
|
||||||
["make-error", "npm:1.3.6"],\
|
["make-error", "npm:1.3.6"],\
|
||||||
["semver", "npm:7.5.4"],\
|
["semver", "npm:7.5.4"],\
|
||||||
["typescript", "patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=29ae49"],\
|
["typescript", "patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=e012d7"],\
|
||||||
["yargs-parser", "npm:21.1.1"]\
|
["yargs-parser", "npm:21.1.1"]\
|
||||||
],\
|
],\
|
||||||
"packagePeers": [\
|
"packagePeers": [\
|
||||||
@ -4626,7 +4626,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
["create-require", "npm:1.1.1"],\
|
["create-require", "npm:1.1.1"],\
|
||||||
["diff", "npm:4.0.2"],\
|
["diff", "npm:4.0.2"],\
|
||||||
["make-error", "npm:1.3.6"],\
|
["make-error", "npm:1.3.6"],\
|
||||||
["typescript", "patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=29ae49"],\
|
["typescript", "patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=e012d7"],\
|
||||||
["v8-compile-cache-lib", "npm:3.0.1"],\
|
["v8-compile-cache-lib", "npm:3.0.1"],\
|
||||||
["yn", "npm:3.1.1"]\
|
["yn", "npm:3.1.1"]\
|
||||||
],\
|
],\
|
||||||
@ -4661,10 +4661,10 @@ const RAW_RUNTIME_STATE =
|
|||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
["typescript", [\
|
["typescript", [\
|
||||||
["patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=29ae49", {\
|
["patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=e012d7", {\
|
||||||
"packageLocation": "../../../../cache/others/berry/cache/typescript-patch-d8d4f943dd-10c0.zip/node_modules/typescript/",\
|
"packageLocation": "../../../../cache/others/berry/cache/typescript-patch-71fdfda6a2-10c0.zip/node_modules/typescript/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["typescript", "patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=29ae49"]\
|
["typescript", "patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=e012d7"]\
|
||||||
],\
|
],\
|
||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
@ -6289,6 +6289,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();
|
||||||
@ -6615,15 +6621,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 {
|
} else {
|
||||||
this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback((value) => resolve(value), reject));
|
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 {
|
||||||
|
this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
readdirSync(p, opts) {
|
readdirSync(p, opts) {
|
||||||
if (opts) {
|
if (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);
|
return this.realFs.readdirSync(npath.fromPortablePath(p), opts);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return this.realFs.readdirSync(npath.fromPortablePath(p));
|
return this.realFs.readdirSync(npath.fromPortablePath(p));
|
||||||
}
|
}
|
||||||
|
47
.pnp.loader.mjs
generated
47
.pnp.loader.mjs
generated
@ -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 {
|
} else {
|
||||||
this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback((value) => resolve(value), reject));
|
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 {
|
||||||
|
this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
readdirSync(p, opts) {
|
readdirSync(p, opts) {
|
||||||
if (opts) {
|
if (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);
|
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,7 +1394,7 @@ 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;
|
||||||
|
|
||||||
function readPackageScope(checkPath) {
|
function readPackageScope(checkPath) {
|
||||||
const rootSeparatorIndex = checkPath.indexOf(npath.sep);
|
const rootSeparatorIndex = checkPath.indexOf(npath.sep);
|
||||||
@ -2020,10 +2042,24 @@ 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;
|
||||||
|
if (originalReadFile) {
|
||||||
|
binding[originalReadFile.name] = function(...args) {
|
||||||
|
try {
|
||||||
|
return fs.readFileSync(args[0], {
|
||||||
|
encoding: `utf8`,
|
||||||
|
flag: args[1]
|
||||||
|
});
|
||||||
|
} catch {
|
||||||
|
}
|
||||||
|
return originalReadFile.apply(this, args);
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
const binding2 = process.binding(`fs`);
|
||||||
|
const originalfstat = binding2.fstat;
|
||||||
const ZIP_MASK = 4278190080;
|
const ZIP_MASK = 4278190080;
|
||||||
const ZIP_MAGIC = 704643072;
|
const ZIP_MAGIC = 704643072;
|
||||||
binding.fstat = function(...args) {
|
binding2.fstat = function(...args) {
|
||||||
const [fd, useBigint, req] = args;
|
const [fd, useBigint, req] = args;
|
||||||
if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) {
|
if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) {
|
||||||
try {
|
try {
|
||||||
@ -2046,6 +2082,7 @@ if (!HAS_LAZY_LOADED_TRANSLATORS) {
|
|||||||
return originalfstat.apply(this, args);
|
return originalfstat.apply(this, args);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const resolve = resolve$1;
|
const resolve = resolve$1;
|
||||||
const load = load$1;
|
const load = load$1;
|
||||||
|
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
yarnPath: .yarn/releases/yarn-4.0.1.cjs
|
yarnPath: .yarn/releases/yarn-4.0.2.cjs
|
||||||
|
2
Makefile
2
Makefile
@ -6,7 +6,7 @@ asdf_install:
|
|||||||
|
|
||||||
.PHONY: yarn_setup
|
.PHONY: yarn_setup
|
||||||
yarn_setup:
|
yarn_setup:
|
||||||
@yarn set version 4.0.1
|
@yarn set version 4.0.2
|
||||||
@yarn init -2
|
@yarn init -2
|
||||||
@yarn add typescript jest @types/jest ts-node ts-jest
|
@yarn add typescript jest @types/jest ts-node ts-jest
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "clean-architecture",
|
"name": "clean-architecture",
|
||||||
"packageManager": "yarn@4.0.1",
|
"packageManager": "yarn@4.0.2",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/jest": "^29.5.4",
|
"@types/jest": "^29.5.4",
|
||||||
"@types/node": "^20.6.3",
|
"@types/node": "^20.6.3",
|
||||||
|
10
yarn.lock
10
yarn.lock
@ -894,12 +894,12 @@ __metadata:
|
|||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@types/jest@npm:^29.5.4":
|
"@types/jest@npm:^29.5.4":
|
||||||
version: 29.5.7
|
version: 29.5.10
|
||||||
resolution: "@types/jest@npm:29.5.7"
|
resolution: "@types/jest@npm:29.5.10"
|
||||||
dependencies:
|
dependencies:
|
||||||
expect: "npm:^29.0.0"
|
expect: "npm:^29.0.0"
|
||||||
pretty-format: "npm:^29.0.0"
|
pretty-format: "npm:^29.0.0"
|
||||||
checksum: 231c873f3d1ddac973b8f8f2ad7760677d941d85fb52d1c5dc4a311bafba4c2c1658a1040fd7054a51f4d1841f51c6ca4cabf70675ee4fa9e10fc5b8066e1de1
|
checksum: b46171d59d12a5f69bbe710f65eaf59a8073337c6b4a67dff8158575caec53f1c61f8a7d645b34d6ac3c4ea398acd30f0c5d1c4a131c0c918798019264a3397d
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@ -3741,11 +3741,11 @@ __metadata:
|
|||||||
|
|
||||||
"typescript@patch:typescript@npm%3A^5.2.2#optional!builtin<compat/typescript>":
|
"typescript@patch:typescript@npm%3A^5.2.2#optional!builtin<compat/typescript>":
|
||||||
version: 5.3.2
|
version: 5.3.2
|
||||||
resolution: "typescript@patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=29ae49"
|
resolution: "typescript@patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=e012d7"
|
||||||
bin:
|
bin:
|
||||||
tsc: bin/tsc
|
tsc: bin/tsc
|
||||||
tsserver: bin/tsserver
|
tsserver: bin/tsserver
|
||||||
checksum: c81b9bd20c6dbe90fa43e876c586021447f2b47baede9fa542b1f56715835c043e23b2eaf19c42c067cc6f5ae512bd9a9be28a67b3a1d9807f8c9cfb1269875e
|
checksum: 73c8bad74e732d93211c9d77f28b03307e2f5fc6a0afc73f4b783261ab567686a16d6ae958bdaef383a00be1b0b8c8b6741dd6ca3d13af4963fa7e47456d49c7
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user