@filteringdev/tinyshield 3.5.1 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -9,10 +9,13 @@
|
|
|
9
9
|
*/
|
|
10
10
|
const Win = typeof unsafeWindow !== 'undefined' ? unsafeWindow : window;
|
|
11
11
|
import { CheckDepthInASWeakMap } from './as-weakmap.js';
|
|
12
|
+
import { SafeArrayToString } from './safe-ArrayToString.js';
|
|
12
13
|
export const OriginalRegExpTest = Win.RegExp.prototype.test;
|
|
13
14
|
export function RunTinyShieldUserscript(BrowserWindow, UserscriptName = 'tinyShield') {
|
|
14
|
-
const OriginalArrayToString = BrowserWindow.Array.prototype.toString;
|
|
15
15
|
const OriginalRegExpTest = BrowserWindow.RegExp.prototype.test;
|
|
16
|
+
const OriginalArrayMap = BrowserWindow.Array.prototype.map;
|
|
17
|
+
const OriginalString = BrowserWindow.String;
|
|
18
|
+
const OriginalArrayJoin = BrowserWindow.Array.prototype.join;
|
|
16
19
|
const ProtectedFunctionStrings = ['toString', 'get', 'set'];
|
|
17
20
|
BrowserWindow.Function.prototype.toString = new Proxy(BrowserWindow.Function.prototype.toString, {
|
|
18
21
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
@@ -35,7 +38,7 @@ export function RunTinyShieldUserscript(BrowserWindow, UserscriptName = 'tinyShi
|
|
|
35
38
|
if (Args.length > 0 && typeof Args[0] !== 'function') {
|
|
36
39
|
return Reflect.apply(Target, ThisArg, Args);
|
|
37
40
|
}
|
|
38
|
-
let ArgText =
|
|
41
|
+
let ArgText = SafeArrayToString(Args, { OriginalArrayMap, OriginalString, OriginalArrayJoin });
|
|
39
42
|
if (ASInitPositiveRegExps.filter(ASInitPositiveRegExp => ASInitPositiveRegExp.filter(Index => OriginalRegExpTest.call(Index, ArgText)).length >= 2).length === 1) {
|
|
40
43
|
console.debug(`[${UserscriptName}]: Map.prototype.get:`, ThisArg, Args);
|
|
41
44
|
throw new Error();
|
|
@@ -55,12 +58,7 @@ export function RunTinyShieldUserscript(BrowserWindow, UserscriptName = 'tinyShi
|
|
|
55
58
|
BrowserWindow.Map.prototype.set = new Proxy(BrowserWindow.Map.prototype.set, {
|
|
56
59
|
apply(Target, ThisArg, Args) {
|
|
57
60
|
let ArgText = '';
|
|
58
|
-
|
|
59
|
-
ArgText = OriginalArrayToString.call(Args);
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
console.warn(`[${UserscriptName}]: Map.prototype.set:`, ThisArg, Args);
|
|
63
|
-
}
|
|
61
|
+
ArgText = SafeArrayToString(Args, { OriginalArrayMap, OriginalString, OriginalArrayJoin });
|
|
64
62
|
if (ASReinsertedAdvInvenPositiveRegExps.filter(ASReinsertedAdvInvenPositiveRegExp => ASReinsertedAdvInvenPositiveRegExp.filter(Index => OriginalRegExpTest.call(Index, ArgText)).length >= 3).length === 1) {
|
|
65
63
|
console.debug(`[${UserscriptName}]: Map.prototype.set:`, ThisArg, Args);
|
|
66
64
|
throw new Error();
|
package/dist/tinyShield.user.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// @downloadURL https://cdn.jsdelivr.net/npm/@filteringdev/tinyshield@latest/dist/tinyShield.user.js
|
|
9
9
|
// @license MPL-2.0
|
|
10
10
|
//
|
|
11
|
-
// @version 3.
|
|
11
|
+
// @version 3.6.0
|
|
12
12
|
// @author PiQuark6046 and contributors
|
|
13
13
|
//
|
|
14
14
|
// @grant unsafeWindow
|
|
@@ -3110,6 +3110,8 @@
|
|
|
3110
3110
|
// @match *://*.loveandlemons.com/*
|
|
3111
3111
|
// @match *://islands.com/*
|
|
3112
3112
|
// @match *://*.islands.com/*
|
|
3113
|
+
// @match *://bulbagarden.net/*
|
|
3114
|
+
// @match *://*.bulbagarden.net/*
|
|
3113
3115
|
// @match *://brobible.com/*
|
|
3114
3116
|
// @match *://*.brobible.com/*
|
|
3115
3117
|
// @match *://britannica.com/*
|
|
@@ -3140,6 +3142,10 @@
|
|
|
3140
3142
|
// @match *://*.celebritynetworth.com/*
|
|
3141
3143
|
// @match *://sugarspunrun.com/*
|
|
3142
3144
|
// @match *://*.sugarspunrun.com/*
|
|
3145
|
+
// @match *://tcdb.com/*
|
|
3146
|
+
// @match *://*.tcdb.com/*
|
|
3147
|
+
// @match *://mtgdecks.net/*
|
|
3148
|
+
// @match *://*.mtgdecks.net/*
|
|
3143
3149
|
// @match *://preppykitchen.com/*
|
|
3144
3150
|
// @match *://*.preppykitchen.com/*
|
|
3145
3151
|
// @match *://profootballnetwork.com/*
|
|
@@ -3210,6 +3216,8 @@
|
|
|
3210
3216
|
// @match *://*.soapcentral.com/*
|
|
3211
3217
|
// @match *://yummytoddlerfood.com/*
|
|
3212
3218
|
// @match *://*.yummytoddlerfood.com/*
|
|
3219
|
+
// @match *://porofessor.gg/*
|
|
3220
|
+
// @match *://*.porofessor.gg/*
|
|
3213
3221
|
// @match *://littlespoonfarm.com/*
|
|
3214
3222
|
// @match *://*.littlespoonfarm.com/*
|
|
3215
3223
|
// @match *://dinneratthezoo.com/*
|
|
@@ -3236,6 +3244,8 @@
|
|
|
3236
3244
|
// @match *://*.thesaltymarshmallow.com/*
|
|
3237
3245
|
// @match *://homemaking.com/*
|
|
3238
3246
|
// @match *://*.homemaking.com/*
|
|
3247
|
+
// @match *://mobafire.com/*
|
|
3248
|
+
// @match *://*.mobafire.com/*
|
|
3239
3249
|
// @match *://littlesunnykitchen.com/*
|
|
3240
3250
|
// @match *://*.littlesunnykitchen.com/*
|
|
3241
3251
|
// @match *://bromabakery.com/*
|
|
@@ -3302,6 +3312,8 @@
|
|
|
3302
3312
|
// @match *://*.pivotalweather.com/*
|
|
3303
3313
|
// @match *://kirbiecravings.com/*
|
|
3304
3314
|
// @match *://*.kirbiecravings.com/*
|
|
3315
|
+
// @match *://notateslaapp.com/*
|
|
3316
|
+
// @match *://*.notateslaapp.com/*
|
|
3305
3317
|
// @match *://theclevercarrot.com/*
|
|
3306
3318
|
// @match *://*.theclevercarrot.com/*
|
|
3307
3319
|
// @match *://thedebrief.org/*
|
|
@@ -3528,12 +3540,16 @@
|
|
|
3528
3540
|
// @match *://*.scam-detector.com/*
|
|
3529
3541
|
// @match *://momsdish.com/*
|
|
3530
3542
|
// @match *://*.momsdish.com/*
|
|
3543
|
+
// @match *://sporked.com/*
|
|
3544
|
+
// @match *://*.sporked.com/*
|
|
3531
3545
|
// @match *://thenaturalnurturer.com/*
|
|
3532
3546
|
// @match *://*.thenaturalnurturer.com/*
|
|
3533
3547
|
// @match *://alphafoodie.com/*
|
|
3534
3548
|
// @match *://*.alphafoodie.com/*
|
|
3535
3549
|
// @match *://cookthestory.com/*
|
|
3536
3550
|
// @match *://*.cookthestory.com/*
|
|
3551
|
+
// @match *://whatmollymade.com/*
|
|
3552
|
+
// @match *://*.whatmollymade.com/*
|
|
3537
3553
|
// @match *://redhousespice.com/*
|
|
3538
3554
|
// @match *://*.redhousespice.com/*
|
|
3539
3555
|
// @match *://japanese-names.info/*
|
|
@@ -3884,6 +3900,8 @@
|
|
|
3884
3900
|
// @match *://*.feedingtinybellies.com/*
|
|
3885
3901
|
// @match *://chewoutloud.com/*
|
|
3886
3902
|
// @match *://*.chewoutloud.com/*
|
|
3903
|
+
// @match *://math-salamanders.com/*
|
|
3904
|
+
// @match *://*.math-salamanders.com/*
|
|
3887
3905
|
// @match *://howtocook.recipes/*
|
|
3888
3906
|
// @match *://*.howtocook.recipes/*
|
|
3889
3907
|
// @match *://simpleeverydaymom.com/*
|
|
@@ -4062,6 +4080,8 @@
|
|
|
4062
4080
|
// @match *://*.evolvingtable.com/*
|
|
4063
4081
|
// @match *://runtothefinish.com/*
|
|
4064
4082
|
// @match *://*.runtothefinish.com/*
|
|
4083
|
+
// @match *://unboundwellness.com/*
|
|
4084
|
+
// @match *://*.unboundwellness.com/*
|
|
4065
4085
|
// @match *://neighborfoodblog.com/*
|
|
4066
4086
|
// @match *://*.neighborfoodblog.com/*
|
|
4067
4087
|
// @match *://fortressofsolitude.co.za/*
|
|
@@ -4170,6 +4190,8 @@
|
|
|
4170
4190
|
// @match *://*.navylookout.com/*
|
|
4171
4191
|
// @match *://apetogentleman.com/*
|
|
4172
4192
|
// @match *://*.apetogentleman.com/*
|
|
4193
|
+
// @match *://ffxnow.com/*
|
|
4194
|
+
// @match *://*.ffxnow.com/*
|
|
4173
4195
|
// @match *://thecookiedoughdiaries.com/*
|
|
4174
4196
|
// @match *://*.thecookiedoughdiaries.com/*
|
|
4175
4197
|
// @match *://fashionbeans.com/*
|
|
@@ -4490,6 +4512,8 @@
|
|
|
4490
4512
|
// @match *://*.aprettylifeinthesuburbs.com/*
|
|
4491
4513
|
// @match *://dashofsanity.com/*
|
|
4492
4514
|
// @match *://*.dashofsanity.com/*
|
|
4515
|
+
// @match *://juliapacheco.com/*
|
|
4516
|
+
// @match *://*.juliapacheco.com/*
|
|
4493
4517
|
// @match *://streetstylis.com/*
|
|
4494
4518
|
// @match *://*.streetstylis.com/*
|
|
4495
4519
|
// @match *://thecookingjar.com/*
|
|
@@ -4706,6 +4730,8 @@
|
|
|
4706
4730
|
// @match *://*.whiteonricecouple.com/*
|
|
4707
4731
|
// @match *://anoregoncottage.com/*
|
|
4708
4732
|
// @match *://*.anoregoncottage.com/*
|
|
4733
|
+
// @match *://foodstruct.com/*
|
|
4734
|
+
// @match *://*.foodstruct.com/*
|
|
4709
4735
|
// @match *://sweetsimplevegan.com/*
|
|
4710
4736
|
// @match *://*.sweetsimplevegan.com/*
|
|
4711
4737
|
// @match *://lynnswayoflife.com/*
|
|
@@ -4854,6 +4880,8 @@
|
|
|
4854
4880
|
// @match *://*.ketocookingchristian.com/*
|
|
4855
4881
|
// @match *://gardeninthekitchen.com/*
|
|
4856
4882
|
// @match *://*.gardeninthekitchen.com/*
|
|
4883
|
+
// @match *://alxnow.com/*
|
|
4884
|
+
// @match *://*.alxnow.com/*
|
|
4857
4885
|
// @match *://droidgamers.com/*
|
|
4858
4886
|
// @match *://*.droidgamers.com/*
|
|
4859
4887
|
// @match *://hanjancrochet.com/*
|
|
@@ -4890,6 +4918,8 @@
|
|
|
4890
4918
|
// @match *://*.suebeehomemaker.com/*
|
|
4891
4919
|
// @match *://attractionsmagazine.com/*
|
|
4892
4920
|
// @match *://*.attractionsmagazine.com/*
|
|
4921
|
+
// @match *://travelawaits.com/*
|
|
4922
|
+
// @match *://*.travelawaits.com/*
|
|
4893
4923
|
// @match *://wendypolisi.com/*
|
|
4894
4924
|
// @match *://*.wendypolisi.com/*
|
|
4895
4925
|
// @match *://onmykidsplate.com/*
|
|
@@ -4940,6 +4970,8 @@
|
|
|
4940
4970
|
// @match *://*.theblondcook.com/*
|
|
4941
4971
|
// @match *://cakemehometonight.com/*
|
|
4942
4972
|
// @match *://*.cakemehometonight.com/*
|
|
4973
|
+
// @match *://jayscentre.com/*
|
|
4974
|
+
// @match *://*.jayscentre.com/*
|
|
4943
4975
|
// @match *://cheerfulcook.com/*
|
|
4944
4976
|
// @match *://*.cheerfulcook.com/*
|
|
4945
4977
|
// @match *://onsuttonplace.com/*
|
|
@@ -5308,6 +5340,8 @@
|
|
|
5308
5340
|
// @match *://*.gabriellearruda.com/*
|
|
5309
5341
|
// @match *://masalaherb.com/*
|
|
5310
5342
|
// @match *://*.masalaherb.com/*
|
|
5343
|
+
// @match *://randymajors.org/*
|
|
5344
|
+
// @match *://*.randymajors.org/*
|
|
5311
5345
|
// @match *://wichitabyeb.com/*
|
|
5312
5346
|
// @match *://*.wichitabyeb.com/*
|
|
5313
5347
|
// @match *://pumpkinnspice.com/*
|
|
@@ -10500,6 +10534,8 @@
|
|
|
10500
10534
|
// @match *://*.gundamcard.gg/*
|
|
10501
10535
|
// @match *://hermitcrabanswers.com/*
|
|
10502
10536
|
// @match *://*.hermitcrabanswers.com/*
|
|
10537
|
+
// @match *://holistichealthherbalist.com/*
|
|
10538
|
+
// @match *://*.holistichealthherbalist.com/*
|
|
10503
10539
|
// @match *://homeoomph.com/*
|
|
10504
10540
|
// @match *://*.homeoomph.com/*
|
|
10505
10541
|
// @match *://iteachtoo.com/*
|
|
@@ -11984,6 +12020,8 @@
|
|
|
11984
12020
|
// @match *://*.auone.jp/*
|
|
11985
12021
|
// @match *://emojipedia.org/*
|
|
11986
12022
|
// @match *://*.emojipedia.org/*
|
|
12023
|
+
// @match *://nicovideo.jp/*
|
|
12024
|
+
// @match *://*.nicovideo.jp/*
|
|
11987
12025
|
// @match *://cruciverba.it/*
|
|
11988
12026
|
// @match *://*.cruciverba.it/*
|
|
11989
12027
|
// @match *://palabr.as/*
|
|
@@ -11998,6 +12036,8 @@
|
|
|
11998
12036
|
// @match *://*.heraldm.com/*
|
|
11999
12037
|
// @match *://razzball.com/*
|
|
12000
12038
|
// @match *://*.razzball.com/*
|
|
12039
|
+
// @match *://geo.fr/*
|
|
12040
|
+
// @match *://*.geo.fr/*
|
|
12001
12041
|
// @match *://freeconvert.com/*
|
|
12002
12042
|
// @match *://*.freeconvert.com/*
|
|
12003
12043
|
// @match *://pcgamebenchmark.com/*
|
|
@@ -13108,6 +13148,8 @@
|
|
|
13108
13148
|
// @match *://*.yahoo.com/*
|
|
13109
13149
|
// @match *://quizlet.com/*
|
|
13110
13150
|
// @match *://*.quizlet.com/*
|
|
13151
|
+
// @match *://apnews.com/*
|
|
13152
|
+
// @match *://*.apnews.com/*
|
|
13111
13153
|
// @match *://neowin.net/*
|
|
13112
13154
|
// @match *://*.neowin.net/*
|
|
13113
13155
|
// @match *://cboard.net/*
|
|
@@ -13122,6 +13164,10 @@
|
|
|
13122
13164
|
// @match *://*.alle-tests.nl/*
|
|
13123
13165
|
// @match *://lovelive-petitsoku.com/*
|
|
13124
13166
|
// @match *://*.lovelive-petitsoku.com/*
|
|
13167
|
+
// @match *://urldecoder.org/*
|
|
13168
|
+
// @match *://*.urldecoder.org/*
|
|
13169
|
+
// @match *://base64decode.org/*
|
|
13170
|
+
// @match *://*.base64decode.org/*
|
|
13125
13171
|
// @match *://scribd.com/*
|
|
13126
13172
|
// @match *://*.scribd.com/*
|
|
13127
13173
|
// @match *://modhub.us/*
|
|
@@ -13174,6 +13220,8 @@
|
|
|
13174
13220
|
// @match *://*.references.be/*
|
|
13175
13221
|
// @match *://roleplayer.me/*
|
|
13176
13222
|
// @match *://*.roleplayer.me/*
|
|
13223
|
+
// @match *://rotowire.com/*
|
|
13224
|
+
// @match *://*.rotowire.com/*
|
|
13177
13225
|
// @match *://statecollege.com/*
|
|
13178
13226
|
// @match *://*.statecollege.com/*
|
|
13179
13227
|
// @match *://szamoldki.hu/*
|
|
@@ -13334,8 +13382,6 @@
|
|
|
13334
13382
|
// @match *://*.soxprospects.com/*
|
|
13335
13383
|
// @match *://kio.ac/*
|
|
13336
13384
|
// @match *://*.kio.ac/*
|
|
13337
|
-
// @match *://nicovideo.jp/*
|
|
13338
|
-
// @match *://*.nicovideo.jp/*
|
|
13339
13385
|
// @match *://notebookcheck.co/*
|
|
13340
13386
|
// @match *://*.notebookcheck.co/*
|
|
13341
13387
|
// @match *://notebookcheck.de/*
|
|
@@ -13627,7 +13673,7 @@
|
|
|
13627
13673
|
// ==/UserScript==
|
|
13628
13674
|
|
|
13629
13675
|
|
|
13630
|
-
(()=>{function
|
|
13676
|
+
(()=>{function g(t,o){let i=new Set(o);return new Set(t.filter(l=>i.has(l))).size}function z(t){if(typeof t[0]!="object"||g(["device","id","imp","regs","site","source"],Object.keys(t[0]))<5)return!1;let o=/^[0-9]+\/[a-zA-Z0-9]+\/[a-zA-Z0-9]+\/[a-z0-9-\(\)]+\/[a-zA-Z0-9_]+_slot[0-9]+_+/;return!(typeof Object.keys(t[0]).find(r=>typeof t[0][r]=="object"&&Array.isArray(t[0][r])&&t[0][r].filter(l=>typeof l=="object"&&Object.keys(l).filter(u=>typeof u=="string"&&k.call(o,u))).length>=1)>"u")}function c(t,o){let i=o.OriginalArrayMap.call(t,r=>o.OriginalString(r));return o.OriginalArrayJoin.call(i)}var Z=typeof unsafeWindow<"u"?unsafeWindow:window,k=Z.RegExp.prototype.test;function w(t,o="tinyShield"){let i=t.RegExp.prototype.test,r=t.Array.prototype.map,l=t.String,u=t.Array.prototype.join,m=["toString","get","set"];t.Function.prototype.toString=new Proxy(t.Function.prototype.toString,{apply(a,n,e){return m.includes(n.name)?`function ${n.name}() { [native code] }`:Reflect.apply(a,n,e)}});let A=[[/[a-zA-Z0-9]+ *=> *{ *const *[a-zA-Z0-9]+ *= *[a-zA-Z0-9]+ *; *if/,/===? *[a-zA-Z0-9]+ *\[ *[a-zA-Z0-9]+\( *[0-9a-z]+ *\) *\] *\) *return *[a-zA-Z0-9]+ *\( *{ *('|")?inventoryId('|")? *:/,/{ *('|")?inventoryId('|")? *: *this *\[[a-zA-Z0-9]+ *\( *[0-9a-z]+ *\) *\] *, *\.\.\. *[a-zA-Z0-9]+ *\[ *[a-zA-Z0-9]+ *\( *[0-9a-z]+ * *\) *\] *} *\)/]];t.Map.prototype.get=new Proxy(t.Map.prototype.get,{apply(a,n,e){if(e.length>0&&typeof e[0]!="function")return Reflect.apply(a,n,e);let p=c(e,{OriginalArrayMap:r,OriginalString:l,OriginalArrayJoin:u});if(A.filter(y=>y.filter(f=>i.call(f,p)).length>=2).length===1)throw console.debug(`[${o}]: Map.prototype.get:`,n,e),new Error;return Reflect.apply(a,n,e)}});let S=[[/inventory_id,[a-zA-Z0-9-]+\/[a-zA-Z0-9]+\/[a-zA-Z0-9]+/,/inventory_id,[a-zA-Z0-9-]+\/[a-zA-Z0-9]+\/[a-zA-Z0-9]+/,/inventory_id,[a-zA-Z0-9-]+\/[a-zA-Z0-9]+\/[a-zA-Z0-9]+/],[/[a-z0-9A-Z]+\.setAttribute\( *('|")onload('|") *, *('|")! *async *function\( *\) *\{ *let */,/confirm\( *[A-Za-z0-9]+ *\) *\) *{ *const *[A-Za-z0-9]+ *= *new *[A-Za-z0-9]+\.URL\(('|")https:\/\/report\.error-report\.com\//,/\.forEach *\( *\( *[A-Za-z0-9]+ *=> *[A-Za-z0-9]+\.remove *\( *\) *\) *\) *\) *, *[0-9a-f]+ *\) *; *const *[A-Za-z0-9]+ *= *await *\( *await *fetch *\(/]];t.Map.prototype.set=new Proxy(t.Map.prototype.set,{apply(a,n,e){let p="";if(p=c(e,{OriginalArrayMap:r,OriginalString:l,OriginalArrayJoin:u}),S.filter(y=>y.filter(f=>i.call(f,p)).length>=3).length===1)throw console.debug(`[${o}]: Map.prototype.set:`,n,e),new Error;return Reflect.apply(a,n,e)}}),t.WeakMap.prototype.set=new Proxy(t.WeakMap.prototype.set,{apply(a,n,e){if(z(e))throw console.debug(`[${o}]: WeakMap.prototype.set:`,n,e),new Error;return Reflect.apply(a,n,e)}});let s=[[/async *\( *\) *=> *{ *const *[A-Za-z0-9]+ *= *[A-Za-z0-9]+ *; *await *[A-Za-z0-9]+ *\( *\)/,/; *await *[A-Za-z0-9]+ *\( *\) *, *[A-Za-z0-9]+ *\( *! *1 *, *new *Error *\( *[A-Za-z0-9]+ *\( *[0-9a-f]+ *\) *\) *\) *}/,/ *\) *\) *\) *}/]];t.setTimeout=new Proxy(t.setTimeout,{apply(a,n,e){if(s.filter(p=>p.filter(y=>y.test(e[0].toString())).length>=3).length===1){console.debug(`[${o}]: setTimeout:`,e);return}return Reflect.apply(a,n,e)}}),t.setInterval=new Proxy(t.setInterval,{apply(a,n,e){if(s.filter(p=>p.filter(y=>y.test(e[0].toString())).length>=3).length===1){console.debug(`[${o}]: setInterval:`,e);return}return Reflect.apply(a,n,e)}})}w(Z);})();
|
|
13631
13677
|
/*!
|
|
13632
13678
|
* @license MPL-2.0
|
|
13633
13679
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@filteringdev/tinyshield",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -27,9 +27,14 @@
|
|
|
27
27
|
"url": "git+https://github.com/FilteringDev/tinyShield.git"
|
|
28
28
|
},
|
|
29
29
|
"license": "MPL-2.0",
|
|
30
|
-
"packageManager": "npm@11.5.1+",
|
|
31
30
|
"workspaces": [
|
|
32
31
|
"userscript",
|
|
33
32
|
"builder"
|
|
34
|
-
]
|
|
33
|
+
],
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@typescript-eslint/eslint-plugin": "^8.56.0",
|
|
36
|
+
"@typescript-eslint/parser": "^8.56.0",
|
|
37
|
+
"eslint": "^9.39.2",
|
|
38
|
+
"typescript-eslint": "^8.56.0"
|
|
39
|
+
}
|
|
35
40
|
}
|