mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2026-07-16 00:00:04 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a3646bccf1 | ||
|
|
ad2b96532b | ||
|
|
3aba9fb3be | ||
|
|
c929197b72 | ||
|
|
c889c29fd7 | ||
|
|
92f25e05f0 | ||
|
|
1323d60d93 | ||
|
|
5d4b19b16f | ||
|
|
100c31f4ae | ||
|
|
b1c6135d40 | ||
|
|
1ddb8ca2b9 | ||
|
|
7042240c4c | ||
|
|
b27760071f | ||
|
|
e5c5ab5646 | ||
|
|
2655a557d2 | ||
|
|
346b93dae1 | ||
|
|
0687f8b4f8 | ||
|
|
8dbb439908 | ||
|
|
dbcfe59b75 | ||
|
|
d7d7f5ba7c | ||
|
|
dbcd8c0bda | ||
|
|
2f7eca8932 | ||
|
|
0c5380ff10 | ||
|
|
fa13dd16f4 | ||
|
|
70d5b1e2f2 | ||
|
|
694078a325 | ||
|
|
4597727725 | ||
|
|
0ef3fa9655 | ||
|
|
cc087382e4 | ||
|
|
5b4a0a4eff | ||
|
|
ee64b91371 | ||
|
|
9005eab47e | ||
|
|
ff293a931e |
@@ -1,3 +1,3 @@
|
||||
{
|
||||
".": "9.1.3"
|
||||
".": "9.2.1"
|
||||
}
|
||||
|
||||
@@ -256,6 +256,58 @@
|
||||
|
||||
|
||||
|
||||
## [9.2.1](https://github.com/danielsogl/awesome-cordova-plugins/compare/awesome-cordova-plugins-v9.2.0...awesome-cordova-plugins-v9.2.1) (2026-07-13)
|
||||
|
||||
|
||||
### Miscellaneous Chores
|
||||
|
||||
* **deps:** lock file maintenance ([#5182](https://github.com/danielsogl/awesome-cordova-plugins/issues/5182)) ([92f25e0](https://github.com/danielsogl/awesome-cordova-plugins/commit/92f25e05f00b240096db4db9d7a8f4676acfb6b4))
|
||||
* **deps:** update build and bundling tools ([#5159](https://github.com/danielsogl/awesome-cordova-plugins/issues/5159)) ([dbcd8c0](https://github.com/danielsogl/awesome-cordova-plugins/commit/dbcd8c0bda657ed65cbfbf8ffeec4094b5cfa399))
|
||||
* **deps:** update build and bundling tools ([#5165](https://github.com/danielsogl/awesome-cordova-plugins/issues/5165)) ([346b93d](https://github.com/danielsogl/awesome-cordova-plugins/commit/346b93dae11042ace6c57e516ce236b1e58a9081))
|
||||
* **deps:** update build and bundling tools to ^4.62.2 ([#5172](https://github.com/danielsogl/awesome-cordova-plugins/issues/5172)) ([b277600](https://github.com/danielsogl/awesome-cordova-plugins/commit/b27760071fa7113bc50ce3c6a6d24937bebb9c0b))
|
||||
* **deps:** update dependency @swc/core to ^1.15.43 ([#5176](https://github.com/danielsogl/awesome-cordova-plugins/issues/5176)) ([1ddb8ca](https://github.com/danielsogl/awesome-cordova-plugins/commit/1ddb8ca2b98d3087d22b76e7f01de6214a7b64ff))
|
||||
* **deps:** update dependency @types/node to ^22.19.19 ([#5160](https://github.com/danielsogl/awesome-cordova-plugins/issues/5160)) ([d7d7f5b](https://github.com/danielsogl/awesome-cordova-plugins/commit/d7d7f5ba7ca6737ad3321fa8ac8726e1724b5fae))
|
||||
* **deps:** update dependency @types/node to ^22.20.0 ([#5177](https://github.com/danielsogl/awesome-cordova-plugins/issues/5177)) ([b1c6135](https://github.com/danielsogl/awesome-cordova-plugins/commit/b1c6135d401c5e64c0fa1c18c89b4a6c917c472e))
|
||||
* **deps:** update dependency @types/node to ^24.13.3 ([#5185](https://github.com/danielsogl/awesome-cordova-plugins/issues/5185)) ([3aba9fb](https://github.com/danielsogl/awesome-cordova-plugins/commit/3aba9fb3be2f3819997b8bf6667193a815a64e7c))
|
||||
* **deps:** update dependency @types/node to v24 ([#5179](https://github.com/danielsogl/awesome-cordova-plugins/issues/5179)) ([5d4b19b](https://github.com/danielsogl/awesome-cordova-plugins/commit/5d4b19b16f5f399d9f7c7e7d2a53907961343258))
|
||||
* **deps:** update dependency eslint-plugin-jsdoc to v63 ([#5181](https://github.com/danielsogl/awesome-cordova-plugins/issues/5181)) ([1323d60](https://github.com/danielsogl/awesome-cordova-plugins/commit/1323d60d934489fb8cd6b25c58bd109763b0e81b))
|
||||
* **deps:** update dependency tsx to ^4.22.3 ([#5162](https://github.com/danielsogl/awesome-cordova-plugins/issues/5162)) ([dbcfe59](https://github.com/danielsogl/awesome-cordova-plugins/commit/dbcfe59b752b256a72b45ddfb27f27200de0f337))
|
||||
* **deps:** update dependency tsx to ^4.23.1 ([#5186](https://github.com/danielsogl/awesome-cordova-plugins/issues/5186)) ([ad2b965](https://github.com/danielsogl/awesome-cordova-plugins/commit/ad2b96532b5010ec5b0763f4a2418ba109b0c107))
|
||||
* **deps:** update dependency typedoc to ^0.28.20 ([#5183](https://github.com/danielsogl/awesome-cordova-plugins/issues/5183)) ([c889c29](https://github.com/danielsogl/awesome-cordova-plugins/commit/c889c29fd71073a87d7750af58284371523dc01c))
|
||||
* **deps:** update documentation tools to ^4.12.0 ([#5173](https://github.com/danielsogl/awesome-cordova-plugins/issues/5173)) ([7042240](https://github.com/danielsogl/awesome-cordova-plugins/commit/7042240c4c6488fb02cf86ad4c025bad0fe563d8))
|
||||
* **deps:** update linting and formatting ([#5178](https://github.com/danielsogl/awesome-cordova-plugins/issues/5178)) ([100c31f](https://github.com/danielsogl/awesome-cordova-plugins/commit/100c31f4aec11ec2b949be6a4a9fc844ef019484))
|
||||
* **deps:** update linting and formatting ([#5184](https://github.com/danielsogl/awesome-cordova-plugins/issues/5184)) ([c929197](https://github.com/danielsogl/awesome-cordova-plugins/commit/c929197b72a546cc8da43a16a98479f98b6616ec))
|
||||
* **deps:** update testing framework ([#5163](https://github.com/danielsogl/awesome-cordova-plugins/issues/5163)) ([8dbb439](https://github.com/danielsogl/awesome-cordova-plugins/commit/8dbb4399089b3812530c7660625cf3e9be2836e3))
|
||||
* **deps:** update testing framework to ^1.15.41 ([#5167](https://github.com/danielsogl/awesome-cordova-plugins/issues/5167)) ([2655a55](https://github.com/danielsogl/awesome-cordova-plugins/commit/2655a557d24a19941406d838ace6f2b3adcb484b))
|
||||
* **deps:** update typescript type definitions to ^22.19.20 ([#5164](https://github.com/danielsogl/awesome-cordova-plugins/issues/5164)) ([0687f8b](https://github.com/danielsogl/awesome-cordova-plugins/commit/0687f8b4f891b418712db9ba3388f4c2307bff73))
|
||||
* **deps:** update typescript type definitions to ^22.19.21 ([#5168](https://github.com/danielsogl/awesome-cordova-plugins/issues/5168)) ([e5c5ab5](https://github.com/danielsogl/awesome-cordova-plugins/commit/e5c5ab5646a49dbf5fd07f7de2688f75a7bb04d0))
|
||||
|
||||
## [9.2.0](https://github.com/danielsogl/awesome-cordova-plugins/compare/awesome-cordova-plugins-v9.1.4...awesome-cordova-plugins-v9.2.0) (2026-05-11)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **adjust:** update adjust sdk index.ts api to v5.6.0 ([#5154](https://github.com/danielsogl/awesome-cordova-plugins/issues/5154)) ([fa13dd1](https://github.com/danielsogl/awesome-cordova-plugins/commit/fa13dd16f44dd8163854039877ff019e3b461892))
|
||||
|
||||
|
||||
### Miscellaneous Chores
|
||||
|
||||
* **deps:** update dependency @swc/core to ^1.15.30 ([#5146](https://github.com/danielsogl/awesome-cordova-plugins/issues/5146)) ([ee64b91](https://github.com/danielsogl/awesome-cordova-plugins/commit/ee64b913711da74c0d76709c15bcc48abec702d8))
|
||||
* **deps:** update dependency @swc/core to ^1.15.33 ([#5155](https://github.com/danielsogl/awesome-cordova-plugins/issues/5155)) ([0ef3fa9](https://github.com/danielsogl/awesome-cordova-plugins/commit/0ef3fa9655477d457401e230053f410058186641))
|
||||
* **deps:** update dependency @types/node to ^22.19.18 ([#5157](https://github.com/danielsogl/awesome-cordova-plugins/issues/5157)) ([694078a](https://github.com/danielsogl/awesome-cordova-plugins/commit/694078a325882872a80997434d3a2731754271e2))
|
||||
* **deps:** update dependency rollup to ^4.60.2 ([#5147](https://github.com/danielsogl/awesome-cordova-plugins/issues/5147)) ([5b4a0a4](https://github.com/danielsogl/awesome-cordova-plugins/commit/5b4a0a4efff086c91424bbf53667d57d17103e3d))
|
||||
* **deps:** update dependency rollup to ^4.60.3 ([#5158](https://github.com/danielsogl/awesome-cordova-plugins/issues/5158)) ([0c5380f](https://github.com/danielsogl/awesome-cordova-plugins/commit/0c5380ff10adb71000218af62785b7ca893b44d2))
|
||||
* **deps:** update dependency typescript to ~5.9.3 ([#5151](https://github.com/danielsogl/awesome-cordova-plugins/issues/5151)) ([70d5b1e](https://github.com/danielsogl/awesome-cordova-plugins/commit/70d5b1e2f2382ed06c4d7ab269a51bc4735c6319))
|
||||
* **deps:** update linting and formatting ([#5152](https://github.com/danielsogl/awesome-cordova-plugins/issues/5152)) ([cc08738](https://github.com/danielsogl/awesome-cordova-plugins/commit/cc087382e4f6e458d3a2fad000cd3ca3895e4873))
|
||||
* **deps:** update linting and formatting ([#5156](https://github.com/danielsogl/awesome-cordova-plugins/issues/5156)) ([4597727](https://github.com/danielsogl/awesome-cordova-plugins/commit/459772772581a20b54d2f73c508fcfd7b6286f09))
|
||||
|
||||
## [9.1.4](https://github.com/danielsogl/awesome-cordova-plugins/compare/awesome-cordova-plugins-v9.1.3...awesome-cordova-plugins-v9.1.4) (2026-04-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* restore v9 plugin exports ([#5144](https://github.com/danielsogl/awesome-cordova-plugins/issues/5144)) ([ff293a9](https://github.com/danielsogl/awesome-cordova-plugins/commit/ff293a931e135d86e4f8b16f75fd2e8a3e42c11a))
|
||||
|
||||
## [9.1.3](https://github.com/danielsogl/awesome-cordova-plugins/compare/awesome-cordova-plugins-v9.1.2...awesome-cordova-plugins-v9.1.3) (2026-04-15)
|
||||
|
||||
|
||||
|
||||
Generated
+1215
-1104
File diff suppressed because it is too large
Load Diff
+15
-15
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "awesome-cordova-plugins",
|
||||
"version": "9.1.3",
|
||||
"version": "9.2.1",
|
||||
"description": "Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support",
|
||||
"homepage": "https://awesome-cordova-plugins.com",
|
||||
"author": "Daniel Sogl <me@danielsogl.com> (https://danielsogl.com)",
|
||||
@@ -32,25 +32,25 @@
|
||||
"@angular/compiler-cli": "20.3.18",
|
||||
"@angular/core": "20.3.18",
|
||||
"@eslint/js": "^10.0.0",
|
||||
"@swc/core": "^1.15.24",
|
||||
"@swc/core": "^1.15.43",
|
||||
"@swc/jest": "^0.2.39",
|
||||
"@types/cordova": "11.0.3",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/node": "^22.19.17",
|
||||
"eslint": "^10.1.0",
|
||||
"@types/node": "^24.13.3",
|
||||
"eslint": "^10.6.0",
|
||||
"eslint-config-prettier": "10.1.8",
|
||||
"eslint-plugin-jsdoc": "^62.8.1",
|
||||
"jest": "^30.3.0",
|
||||
"jest-environment-jsdom": "^30.3.0",
|
||||
"lefthook": "^2.1.4",
|
||||
"prettier": "^3.8.1",
|
||||
"rollup": "^4.60.1",
|
||||
"eslint-plugin-jsdoc": "^63.0.12",
|
||||
"jest": "^30.4.2",
|
||||
"jest-environment-jsdom": "^30.4.1",
|
||||
"lefthook": "^2.1.9",
|
||||
"prettier": "^3.9.4",
|
||||
"rollup": "^4.62.2",
|
||||
"rxjs": "^7.8.2",
|
||||
"tsx": "^4.21.0",
|
||||
"typedoc": "^0.28.19",
|
||||
"typedoc-plugin-markdown": "^4.11.0",
|
||||
"typescript": "~5.8.3",
|
||||
"typescript-eslint": "^8.57.2"
|
||||
"tsx": "^4.23.1",
|
||||
"typedoc": "^0.28.20",
|
||||
"typedoc-plugin-markdown": "^4.12.0",
|
||||
"typescript": "~5.9.3",
|
||||
"typescript-eslint": "^8.62.1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -27,6 +27,7 @@ export class AdjustConfig {
|
||||
private sessionTrackingSucceededCallback: (session: AdjustSessionSuccess) => void = null;
|
||||
private sessionTrackingFailedCallback: (session: AdjustSessionFailure) => void = null;
|
||||
private deferredDeeplinkCallback: (deeplink: string) => void = null;
|
||||
private remoteTriggerCallback: (remoteTrigger: AdjustRemoteTrigger) => void = null;
|
||||
|
||||
// android only
|
||||
private processName: string = null;
|
||||
@@ -34,6 +35,7 @@ export class AdjustConfig {
|
||||
private preinstallFilePath: string = null;
|
||||
private isPlayStoreKidsComplianceEnabled: boolean = null;
|
||||
private fbAppId: string = null;
|
||||
private isAppSetIdReadingEnabled: boolean = null;
|
||||
|
||||
// ios only
|
||||
private isAdServicesEnabled: boolean = null;
|
||||
@@ -125,6 +127,10 @@ export class AdjustConfig {
|
||||
this.deferredDeeplinkCallback = deferredDeeplinkCallback;
|
||||
}
|
||||
|
||||
setRemoteTriggerCallback(remoteTriggerCallback: (remoteTrigger: AdjustRemoteTrigger) => void): void {
|
||||
this.remoteTriggerCallback = remoteTriggerCallback;
|
||||
}
|
||||
|
||||
private getAttributionCallback(): ((attribution: AdjustAttribution) => void) | null {
|
||||
return this.attributionCallback;
|
||||
}
|
||||
@@ -149,6 +155,10 @@ export class AdjustConfig {
|
||||
return this.deferredDeeplinkCallback;
|
||||
}
|
||||
|
||||
private getRemoteTriggerCallback(): ((remoteTrigger: AdjustRemoteTrigger) => void) | null {
|
||||
return this.remoteTriggerCallback;
|
||||
}
|
||||
|
||||
private hasAttributionCallback(): boolean {
|
||||
return this.attributionCallback !== null;
|
||||
}
|
||||
@@ -173,6 +183,10 @@ export class AdjustConfig {
|
||||
return this.deferredDeeplinkCallback !== null;
|
||||
}
|
||||
|
||||
private hasRemoteTriggerCallback(): boolean {
|
||||
return this.remoteTriggerCallback !== null;
|
||||
}
|
||||
|
||||
// android only
|
||||
setProcessName(processName: string): void {
|
||||
this.processName = processName;
|
||||
@@ -190,6 +204,10 @@ export class AdjustConfig {
|
||||
this.fbAppId = fbAppId;
|
||||
}
|
||||
|
||||
disableAppSetIdReading(): void {
|
||||
this.isAppSetIdReadingEnabled = false;
|
||||
}
|
||||
|
||||
// ios only
|
||||
disableIdfaReading(): void {
|
||||
this.isIdfaReadingEnabled = false;
|
||||
@@ -525,6 +543,11 @@ export interface AdjustSkanData {
|
||||
error: string;
|
||||
}
|
||||
|
||||
export interface AdjustRemoteTrigger {
|
||||
label: string;
|
||||
payloadJson: string;
|
||||
}
|
||||
|
||||
export interface AdjustPurchaseVerificationResult {
|
||||
verificationStatus: string;
|
||||
code: number;
|
||||
@@ -574,6 +597,7 @@ export enum AdjustLogLevel {
|
||||
* AdjustEventSuccess
|
||||
* AdjustEventFailure
|
||||
* AdjustSkanData
|
||||
* AdjustRemoteTrigger
|
||||
* AdjustPurchaseVerificationResult
|
||||
* @classes
|
||||
* AdjustConfig
|
||||
@@ -679,10 +703,22 @@ export class Adjust extends AwesomeCordovaNativePlugin {
|
||||
* This method is used to send and potentially resolve shortened deep links
|
||||
*
|
||||
* @param {AdjustDeeplink} adjustDeeplink AdjustDeeplink instance containing shortened deep link that has opened your app
|
||||
* @returns {Promise<string>} Returns a promise with either resolved (if it was resolved) or echoed deep link
|
||||
* @returns {Promise<string | null>} Returns a promise with either resolved (if it was resolved) or echoed deep link
|
||||
*/
|
||||
@Cordova()
|
||||
processAndResolveDeeplink(adjustDeeplink: AdjustDeeplink): Promise<string> {
|
||||
processAndResolveDeeplink(adjustDeeplink: AdjustDeeplink): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method resolves the underlying Adjust link from other links that wrap Adjust links.
|
||||
*
|
||||
* @param {string} url URL to resolve
|
||||
* @param {string[]} resolveUrlSuffixArray Array of URL suffixes to resolve
|
||||
* @returns {Promise<string | null>} Returns a promise with resolved link or null
|
||||
*/
|
||||
@Cordova()
|
||||
resolveLinkWithUrl(url: string, resolveUrlSuffixArray: string[]): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -727,40 +763,40 @@ export class Adjust extends AwesomeCordovaNativePlugin {
|
||||
/**
|
||||
* Function used to get Google AdId
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with Google advertising ID value
|
||||
* @returns {Promise<string | null>} Returns a promise with Google advertising ID value
|
||||
*/
|
||||
@Cordova()
|
||||
getGoogleAdId(): Promise<string> {
|
||||
getGoogleAdId(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* If you need to obtain the Amazon Fire Advertising ID, you can make a call to this function.
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with Amazon Fire advertising ID
|
||||
* @returns {Promise<string | null>} Returns a promise with Amazon Fire advertising ID
|
||||
*/
|
||||
@Cordova()
|
||||
getAmazonAdId(): Promise<string> {
|
||||
getAmazonAdId(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* To obtain the IDFA, call this function
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with IDFA string value
|
||||
* @returns {Promise<string | null>} Returns a promise with IDFA string value
|
||||
*/
|
||||
@Cordova()
|
||||
getIdfa(): Promise<string> {
|
||||
getIdfa(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* To obtain the IDFV, call this function
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with IDFV string value
|
||||
* @returns {Promise<string | null>} Returns a promise with IDFV string value
|
||||
*/
|
||||
@Cordova()
|
||||
getIdfv(): Promise<string> {
|
||||
getIdfv(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -768,30 +804,52 @@ export class Adjust extends AwesomeCordovaNativePlugin {
|
||||
* For every device with your app installed on it, the Adjust backend generates a unique Adjust device identifier (adid).
|
||||
* In order to obtain this identifier, call this function
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with adid value
|
||||
* @returns {Promise<string | null>} Returns a promise with adid value
|
||||
*/
|
||||
@Cordova()
|
||||
getAdid(): Promise<string> {
|
||||
getAdid(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method allows retrieving the ADID with a specified timeout. If the value is not obtained in time, null is returned.
|
||||
*
|
||||
* @param {number} timeoutInMilliseconds Timeout in milliseconds
|
||||
* @returns {Promise<string | null>} Returns a promise with adid value or null if timeout
|
||||
*/
|
||||
@Cordova()
|
||||
getAdidWithTimeout(timeoutInMilliseconds: number): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* If you want to access information about a user's current attribution whenever you need it, you can make a call to this function
|
||||
*
|
||||
* @returns {Promise<AdjustAttribution>} Returns a promise with AdjustAttribution object
|
||||
* @returns {Promise<AdjustAttribution | null>} Returns a promise with AdjustAttribution object
|
||||
*/
|
||||
@Cordova()
|
||||
getAttribution(): Promise<AdjustAttribution> {
|
||||
getAttribution(): Promise<AdjustAttribution | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method allows retrieving the current attribution information with a specified timeout. If the value is not obtained in time, null is returned.
|
||||
*
|
||||
* @param {number} timeoutInMilliseconds Timeout in milliseconds
|
||||
* @returns {Promise<AdjustAttribution | null>} Returns a promise with AdjustAttribution object or null if timeout
|
||||
*/
|
||||
@Cordova()
|
||||
getAttributionWithTimeout(timeoutInMilliseconds: number): Promise<AdjustAttribution | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the information about version of the SDK used
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with SDK version information
|
||||
* @returns {Promise<string | null>} Returns a promise with SDK version information
|
||||
*/
|
||||
@Cordova()
|
||||
getSdkVersion(): Promise<string> {
|
||||
getSdkVersion(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -875,10 +933,10 @@ export class Adjust extends AwesomeCordovaNativePlugin {
|
||||
/**
|
||||
* To obtain the last deep link which has opened your app, call this function
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with last opened deep link string value
|
||||
* @returns {Promise<string | null>} Returns a promise with last opened deep link string value
|
||||
*/
|
||||
@Cordova()
|
||||
getLastDeeplink(): Promise<string> {
|
||||
getLastDeeplink(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user