forked from AdguardTeam/Scriptlets
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscriptlets.d.ts
More file actions
160 lines (134 loc) · 3.51 KB
/
Copy pathscriptlets.d.ts
File metadata and controls
160 lines (134 loc) · 3.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
declare module '@adguard/scriptlets' {
/**
* Scriptlet properties
*/
interface IConfiguration {
/**
* Scriptlet name
*/
name: string;
/**
* Arguments for scriptlet function
*/
args: string[];
/**
* {'extension'|'corelibs'} engine Defines the final form of scriptlet string presentation
*/
engine: string;
/**
* Version
*/
version: string;
/**
* flag to enable printing to console debug information
*/
verbose: boolean;
/**
* Source rule text is used for debugging purposes
*/
ruleText: string;
/**
* Domain name, used to improve logging
*/
domainName?: string
}
/**
* Redirect object
*/
interface Redirect {
/**
* Redirect name
*/
title: string;
/**
* Some comment for redirect resource
*/
comment: string;
/**
* Data which is redirected to
*/
content: string;
/**
* Type of content
*/
contentType: string;
/**
* If it's new type of redirects, i.e. click2load
*/
isBlocking?: boolean;
/**
* base64 encoded hash for script needed for extension csp, i.e. for click2load
*/
sha?: string;
}
/**
* Redirects class
*/
class Redirects {
constructor(rawYaml: string);
getRedirect(title: string): Redirect;
}
/**
* Returns scriptlet code by param
*
* @param source
* @returns js code string
*/
function invoke(source: IConfiguration): string | null;
/**
* Converts scriptlet rule to AdGuard one
*
* @param ruleText
* @returns array of AdGuard scriptlet rules
*/
function convertScriptletToAdg(ruleText: string): string[];
/**
* Checks if ruleText is valid scriptlet rule
* @param ruleText
*/
function isValidScriptletRule(ruleText: string): boolean;
/**
* Returns scriptlet function by name
*/
function getScriptletFunction(name: string): () => void
/**
* Redirects module
*/
const redirects: {
/**
* Object with redirects titles in the keys and RedirectSources
*/
Redirects: Redirects;
/**
* Returns filename with extension for requested alias
* @param alias alias for redirect filename
*/
getRedirectFilename(alias: string): string;
/**
* Checks if the `rule` is AdGuard redirect rule.
*
* @param rule
*/
isAdgRedirectRule(rule: string): boolean;
/**
* Checks if the `rule` is **valid** AdGuard redirect resource rule
* @param rule
*/
isValidAdgRedirectRule(rule: string): boolean;
/**
* Checks if the Ubo redirect `rule` has AdGuard analog. Needed for Ubo->Adg conversion
* @param rule
*/
isUboRedirectCompatibleWithAdg(rule: string): boolean;
/**
* Checks if the Abp redirect `rule` has AdGuard analog. Needed for Abp->Adg conversion
* @param rule
*/
isAbpRedirectCompatibleWithAdg(rule: string): boolean;
/**
* Converts redirect rule to AdGuard one
* @param rule
*/
convertRedirectToAdg(rule: string): string;
}
}