Skip to content

Commit 1c5fd84

Browse files
committed
Merge branch 'master' into fix/AG-35667-mv2-002
2 parents 48a30d6 + 193e35c commit 1c5fd84

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+455
-432
lines changed

packages/adguard-api-mv3/package.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@
3636
"author": "Adguard Software Ltd.",
3737
"license": "GPL-3.0-only",
3838
"dependencies": {
39-
"@adguard/logger": "1.1.0",
40-
"@adguard/tswebextension": "3.0.0-alpha.0",
39+
"@adguard/tswebextension": "workspace:^",
4140
"zod": "3.22.4"
4241
},
4342
"devDependencies": {

packages/adguard-api-mv3/rollup.config.ts

-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ const backgroundConfig = {
4242
include: 'src/background/**',
4343
},
4444
external: [
45-
'@adguard/logger',
4645
'@adguard/tswebextension/mv3',
4746
'zod',
4847
],

packages/adguard-api-mv3/src/background/main.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import {
2020
TsWebExtension,
2121
type Configuration as TsWebExtensionConfiguration,
22-
type MessagesHandlerMV3,
22+
type MessageHandler,
2323
FilterListPreprocessor,
2424
LF,
2525
} from '@adguard/tswebextension/mv3';
@@ -66,7 +66,7 @@ export class AdguardApi {
6666
* for example, message for get computed css for content-script.
6767
* @returns Message handler.
6868
*/
69-
public getMessageHandler(): MessagesHandlerMV3 {
69+
public getMessageHandler(): MessageHandler {
7070
return this.tswebextension.getMessageHandler();
7171
}
7272

packages/adguard-api/src/background/main.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import {
2020
type TsWebExtension,
2121
type ConfigurationMV2 as TsWebExtensionConfiguration,
22-
type MessageHandlerMV2,
22+
type MessageHandler,
2323
EventChannel,
2424
createTsWebExtension,
2525
BasicFilterValidator,
@@ -129,7 +129,7 @@ export class AdguardApi {
129129
* for example, message for get computed css for content-script.
130130
* @returns Message handler.
131131
*/
132-
public getMessageHandler(): MessageHandlerMV2 {
132+
public getMessageHandler(): MessageHandler {
133133
return this.tswebextension.getMessageHandler();
134134
}
135135

packages/agtree/CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ The format is based on [Keep a Changelog], and this project adheres to [Semantic
88
[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/
99
[Semantic Versioning]: https://semver.org/spec/v2.0.0.html
1010

11+
## [3.0.0-alpha.3] - 2025-01-30
12+
13+
### Changed
14+
15+
- Better usage of ESM pure imports for `tldts` dependency.
16+
17+
[3.0.0-alpha.3]: https://github.com/AdguardTeam/tsurlfilter/releases/tag/agtree-v3.0.0-alpha.3
1118

1219
## [3.0.0-alpha.2] - 2024-12-17
1320

packages/agtree/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@adguard/agtree",
3-
"version": "3.0.0-alpha.2",
3+
"version": "3.0.0-alpha.3",
44
"description": "Tool set for working with adblock filter lists",
55
"keywords": [
66
"adblock",

packages/agtree/src/parser/network/host-rule-parser.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable no-param-reassign */
2-
import * as tldts from 'tldts';
2+
import { getHostname, getDomain } from 'tldts';
33
import isIp from 'is-ip';
44

55
import { StringUtils } from '../../utils/string';
@@ -93,7 +93,7 @@ export class HostRuleParser extends BaseParser {
9393
if (partsLength === 1) {
9494
// "Just domain" syntax, e.g. `example.org`
9595
// In this case, domain should be valid and IP will be set to 0.0.0.0 by default
96-
if (tldts.getDomain(parts[0].value) !== parts[0].value) {
96+
if (getDomain(parts[0].value) !== parts[0].value) {
9797
throw new Error(`Not a valid domain: ${parts[0].value}`);
9898
}
9999

@@ -115,7 +115,7 @@ export class HostRuleParser extends BaseParser {
115115
}
116116

117117
for (const { value } of hostnames) {
118-
if (tldts.getHostname(value) !== value) {
118+
if (getHostname(value) !== value) {
119119
throw new Error(`Not a valid hostname: ${value}`);
120120
}
121121
}

packages/tsurlfilter/CHANGELOG.md

+7-6
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## Unreleased
8+
## [3.1.0-alpha.8] - 2025-01-30
99

1010
### Added
1111

@@ -14,20 +14,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1414

1515
### Changed
1616

17-
- We throw error for empty modifier list in network rules.
18-
- Updated [@adguard/agtree] to `v3.0.0` which improves the bundle size and performance.
19-
- Updated [@adguard/scriptlets] to `v2.0.1`
20-
- Updated [@adguard/extended-css] to `v2.1.0`
17+
- Drop UMD support, now only ESM builds.
18+
- Updated [@adguard/agtree] to `v3.0.0-alpha.3` which improves the bundle size
19+
and performance.
20+
- Updated [@adguard/scriptlets] to `v2.1.4` which improves the bundle size and
21+
performance.
2122

2223
### Fixed
2324

24-
- Handling missing children data in the deserializer for certain nodes.
2525
- URI encoded `$removeparam` value is not removed in MV3 [AdguardBrowserExtension#3014].
2626
- `$removeparam` fails to match encoded URL params in MV2 [AdguardBrowserExtension#3015].
2727
- `$popup,third-party` modifiers cause document blocking [AdguardBrowserExtension#3012].
2828
- `$removeparam` incorrectly removes parameters from encoded URLs [AdguardBrowserExtension#3076].
2929
- Pattern shortcut extraction from regexp patterns with character classes [AdguardBrowserExtension#2924].
3030

31+
[3.1.0-alpha.8]: https://github.com/AdguardTeam/tsurlfilter/releases/tag/tsurlfilter-v3.1.0-alpha.8
3132
[AdguardBrowserExtension#3014]: https://github.com/AdguardTeam/AdguardBrowserExtension/issues/3014
3233
[AdguardBrowserExtension#3015]: https://github.com/AdguardTeam/AdguardBrowserExtension/issues/3015
3334
[AdguardBrowserExtension#3012]: https://github.com/AdguardTeam/AdguardBrowserExtension/issues/3012

packages/tsurlfilter/package.json

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
{
22
"name": "@adguard/tsurlfilter",
3-
"version": "3.1.0-alpha.7",
3+
"version": "3.1.0-alpha.8",
44
"description": "This is a TypeScript library that implements AdGuard's content blocking rules",
55
"main": "dist/es/index.js",
66
"module": "dist/es/index.js",
77
"iife": "dist/tsurlfilter.iife.js",
88
"types": "dist/types/src/index.d.ts",
99
"type": "module",
10+
"sideEffects": false,
1011
"files": [
1112
"dist",
1213
"!dist/build.txt"
@@ -115,14 +116,14 @@
115116
"dependencies": {
116117
"@adguard/agtree": "workspace:^",
117118
"@adguard/css-tokenizer": "workspace:^",
118-
"@adguard/scriptlets": "^2.1.3-alpha.1",
119+
"@adguard/scriptlets": "^2.1.4",
119120
"cidr-tools": "^6.4.1",
120121
"commander": "9.4.1",
121122
"is-cidr": "4.0.2",
122123
"is-ip": "3.1.0",
123124
"lru-cache": "^11.0.2",
124125
"punycode": "2.3.1",
125-
"tldts": "5.6.45",
126+
"tldts": "^5.7.112",
126127
"zod": "3.21.4"
127128
},
128129
"devDependencies": {

packages/tsurlfilter/src/modifiers/remove-param-modifier.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as utils from '../utils/url';
1+
import { cleanUrlParamByRegExp } from '../utils/url';
22
import { type IAdvancedModifier } from './advanced-modifier';
33
import { SimpleRegex } from '../rules/simple-regex';
44

@@ -95,9 +95,9 @@ export class RemoveParamModifier implements IAdvancedModifier {
9595
}
9696

9797
if (this.value.startsWith('~')) {
98-
return utils.cleanUrlParamByRegExp(url, this.valueRegExp, true);
98+
return cleanUrlParamByRegExp(url, this.valueRegExp, true);
9999
}
100100

101-
return utils.cleanUrlParamByRegExp(url, this.valueRegExp);
101+
return cleanUrlParamByRegExp(url, this.valueRegExp);
102102
}
103103
}

packages/tsurlfilter/src/request.ts

+1
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ export class Request {
143143
this.sourceUrl = Request.compactUrl(sourceUrl);
144144

145145
const tldResult = parse(url);
146+
// We suppose that request always has a hostname and a domain.
146147
this.hostname = tldResult.hostname!;
147148
this.domain = tldResult.domain!;
148149
this.subdomains = Request.getSubdomains(tldResult);

packages/tsurlfilter/src/rules/cosmetic-rule.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
} from '@adguard/agtree';
1717

1818
import { CosmeticRuleBodyGenerator } from '@adguard/agtree/generator';
19-
import * as rule from './rule';
19+
import { type IRule, RULE_INDEX_NONE } from './rule';
2020
import { DomainModifier } from '../modifiers/domain-modifier';
2121
import { getRelativeUrl } from '../utils/url';
2222
import { SimpleRegex } from './simple-regex';
@@ -178,7 +178,7 @@ interface ProcessedModifiers {
178178
* * `example.org#%#//scriptlet('scriptlet-name')` -- Scriptlet rule
179179
* * `example.org$$div[id="test"]` -- HTML filtering rule
180180
*/
181-
export class CosmeticRule implements rule.IRule {
181+
export class CosmeticRule implements IRule {
182182
private readonly ruleIndex: number;
183183

184184
private readonly filterListId: number;
@@ -562,7 +562,7 @@ export class CosmeticRule implements rule.IRule {
562562
*
563563
* @throws error if it fails to parse the rule.
564564
*/
565-
constructor(node: AnyCosmeticRule, filterListId: number, ruleIndex: number = rule.RULE_INDEX_NONE) {
565+
constructor(node: AnyCosmeticRule, filterListId: number, ruleIndex: number = RULE_INDEX_NONE) {
566566
this.ruleIndex = ruleIndex;
567567
this.filterListId = filterListId;
568568

packages/tsurlfilter/src/rules/declarative-converter/network-indexed-rule-with-hash.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { type AnyRule, RuleConverter } from '@adguard/agtree';
1+
import { type AnyRule } from '@adguard/agtree';
2+
import { RuleConverter } from '@adguard/agtree/converter';
23

34
import { getErrorMessage } from '../../common/error';
45
import { fastHash } from '../../utils/string-utils';

packages/tsurlfilter/src/rules/declarative-converter/rule-set.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { z as zod } from 'zod';
2-
import { RuleParser } from '@adguard/agtree';
2+
import { RuleParser } from '@adguard/agtree/parser';
33

44
import type { NetworkRule } from '../network-rule';
55
import { getErrorMessage } from '../../common/error';

packages/tsurlfilter/src/rules/host-rule.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { type HostRule as HostRuleNode } from '@adguard/agtree';
2-
3-
import * as rule from './rule';
2+
import { type IRule, RULE_INDEX_NONE } from './rule';
43

54
/**
65
* Implements a host rule.
@@ -20,7 +19,7 @@ import * as rule from './rule';
2019
* * `::1 localhost ip6-localhost ip6-loopback` -- ipv6 aliases
2120
* * `example.org` -- "just domain" syntax
2221
*/
23-
export class HostRule implements rule.IRule {
22+
export class HostRule implements IRule {
2423
private readonly ruleIndex: number;
2524

2625
private readonly filterListId: number;
@@ -41,7 +40,7 @@ export class HostRule implements rule.IRule {
4140
*
4241
* @throws error if it fails to parse the rule.
4342
*/
44-
constructor(node: HostRuleNode, filterListId: number, ruleIndex = rule.RULE_INDEX_NONE) {
43+
constructor(node: HostRuleNode, filterListId: number, ruleIndex = RULE_INDEX_NONE) {
4544
this.ruleIndex = ruleIndex;
4645
this.filterListId = filterListId;
4746

packages/tsurlfilter/src/rules/network-rule.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { type ModifierList, type NetworkRule as NetworkRuleNode } from '@adguard/agtree';
22
import { RuleGenerator } from '@adguard/agtree/generator';
33

4-
import * as rule from './rule';
4+
import { type IRule, RULE_INDEX_NONE } from './rule';
55
import { SimpleRegex } from './simple-regex';
66
import { type Request } from '../request';
77
import { DomainModifier, PIPE_SEPARATOR } from '../modifiers/domain-modifier';
@@ -202,7 +202,7 @@ export enum NetworkRuleGroupOptions {
202202
* Basic network filtering rule.
203203
* https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#basic-rules
204204
*/
205-
export class NetworkRule implements rule.IRule {
205+
export class NetworkRule implements IRule {
206206
private readonly ruleIndex: number;
207207

208208
private readonly filterListId: number;
@@ -1055,7 +1055,7 @@ export class NetworkRule implements rule.IRule {
10551055
*
10561056
* @throws error if it fails to parse the rule.
10571057
*/
1058-
constructor(node: NetworkRuleNode, filterListId: number, ruleIndex = rule.RULE_INDEX_NONE) {
1058+
constructor(node: NetworkRuleNode, filterListId: number, ruleIndex = RULE_INDEX_NONE) {
10591059
this.ruleIndex = ruleIndex;
10601060
// TODO: Remove this completely
10611061
this.ruleText = RuleGenerator.generate(node);

0 commit comments

Comments
 (0)