@nostrify/policies 0.36.4 → 0.36.6
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/.turbo/turbo-build.log +28 -5
- package/.turbo/turbo-setup.log +22 -0
- package/.turbo/turbo-test.log +4 -0
- package/AntiDuplicationPolicy.test.ts +54 -41
- package/AntiDuplicationPolicy.ts +7 -3
- package/AnyPolicy.test.ts +15 -14
- package/AnyPolicy.ts +5 -2
- package/AuthorPolicy.test.ts +8 -7
- package/AuthorPolicy.ts +9 -3
- package/CHANGELOG.md +18 -0
- package/DomainPolicy.test.ts +130 -77
- package/DomainPolicy.ts +3 -3
- package/FiltersPolicy.test.ts +14 -7
- package/FiltersPolicy.ts +5 -2
- package/HashtagPolicy.test.ts +25 -14
- package/HashtagPolicy.ts +5 -2
- package/HellthreadPolicy.test.ts +10 -9
- package/HellthreadPolicy.ts +6 -3
- package/InvertPolicy.test.ts +10 -9
- package/InvertPolicy.ts +8 -2
- package/KeywordPolicy.test.ts +18 -12
- package/KeywordPolicy.ts +5 -2
- package/NoOpPolicy.test.ts +8 -7
- package/NoOpPolicy.ts +1 -1
- package/OpenAIPolicy.test.ts +22 -9
- package/OpenAIPolicy.ts +5 -2
- package/PipePolicy.test.ts +18 -17
- package/PipePolicy.ts +5 -2
- package/PowPolicy.test.ts +14 -13
- package/PowPolicy.ts +6 -3
- package/PubkeyBanPolicy.test.ts +15 -8
- package/PubkeyBanPolicy.ts +5 -2
- package/ReadOnlyPolicy.test.ts +9 -8
- package/ReadOnlyPolicy.ts +1 -1
- package/RegexPolicy.test.ts +19 -10
- package/RegexPolicy.ts +5 -2
- package/ReplyBotPolicy.test.ts +43 -27
- package/ReplyBotPolicy.ts +6 -3
- package/SizePolicy.test.ts +9 -8
- package/SizePolicy.ts +6 -2
- package/WhitelistPolicy.test.ts +15 -8
- package/WhitelistPolicy.ts +6 -2
- package/WoTPolicy.test.ts +48 -22
- package/WoTPolicy.ts +5 -2
- package/dist/AntiDuplicationPolicy.d.ts +2 -2
- package/dist/AntiDuplicationPolicy.d.ts.map +1 -1
- package/dist/AntiDuplicationPolicy.js +41 -56
- package/dist/AnyPolicy.d.ts +1 -1
- package/dist/AnyPolicy.d.ts.map +1 -1
- package/dist/AnyPolicy.js +17 -16
- package/dist/AuthorPolicy.d.ts +1 -1
- package/dist/AuthorPolicy.d.ts.map +1 -1
- package/dist/AuthorPolicy.js +19 -20
- package/dist/DomainPolicy.d.ts +2 -2
- package/dist/DomainPolicy.d.ts.map +1 -1
- package/dist/DomainPolicy.js +57 -59
- package/dist/FiltersPolicy.d.ts +1 -1
- package/dist/FiltersPolicy.d.ts.map +1 -1
- package/dist/FiltersPolicy.js +15 -24
- package/dist/HashtagPolicy.d.ts +1 -1
- package/dist/HashtagPolicy.d.ts.map +1 -1
- package/dist/HashtagPolicy.js +16 -23
- package/dist/HellthreadPolicy.d.ts +1 -1
- package/dist/HellthreadPolicy.d.ts.map +1 -1
- package/dist/HellthreadPolicy.js +18 -17
- package/dist/InvertPolicy.d.ts +1 -1
- package/dist/InvertPolicy.d.ts.map +1 -1
- package/dist/InvertPolicy.js +18 -18
- package/dist/KeywordPolicy.d.ts +1 -1
- package/dist/KeywordPolicy.d.ts.map +1 -1
- package/dist/KeywordPolicy.js +16 -23
- package/dist/NoOpPolicy.d.ts +1 -1
- package/dist/NoOpPolicy.d.ts.map +1 -1
- package/dist/NoOpPolicy.js +8 -7
- package/dist/OpenAIPolicy.d.ts +1 -1
- package/dist/OpenAIPolicy.d.ts.map +1 -1
- package/dist/OpenAIPolicy.js +35 -55
- package/dist/PipePolicy.d.ts +1 -1
- package/dist/PipePolicy.d.ts.map +1 -1
- package/dist/PipePolicy.js +16 -33
- package/dist/PowPolicy.d.ts +1 -1
- package/dist/PowPolicy.d.ts.map +1 -1
- package/dist/PowPolicy.js +25 -30
- package/dist/PubkeyBanPolicy.d.ts +1 -1
- package/dist/PubkeyBanPolicy.d.ts.map +1 -1
- package/dist/PubkeyBanPolicy.js +16 -22
- package/dist/ReadOnlyPolicy.d.ts +1 -1
- package/dist/ReadOnlyPolicy.d.ts.map +1 -1
- package/dist/ReadOnlyPolicy.js +8 -7
- package/dist/RegexPolicy.d.ts +1 -1
- package/dist/RegexPolicy.d.ts.map +1 -1
- package/dist/RegexPolicy.js +14 -20
- package/dist/ReplyBotPolicy.d.ts +1 -1
- package/dist/ReplyBotPolicy.d.ts.map +1 -1
- package/dist/ReplyBotPolicy.js +39 -38
- package/dist/SizePolicy.d.ts +1 -1
- package/dist/SizePolicy.d.ts.map +1 -1
- package/dist/SizePolicy.js +17 -25
- package/dist/WhitelistPolicy.d.ts +1 -1
- package/dist/WhitelistPolicy.d.ts.map +1 -1
- package/dist/WhitelistPolicy.js +23 -29
- package/dist/WoTPolicy.d.ts +2 -2
- package/dist/WoTPolicy.d.ts.map +1 -1
- package/dist/WoTPolicy.js +34 -33
- package/dist/mod.d.ts +20 -20
- package/dist/mod.js +42 -21
- package/dist/mod.js.map +7 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/mod.ts +20 -20
- package/package.json +10 -6
- package/tsconfig.json +3 -1
- package/.turbo/daemon/7bb8240f68f7ad88-turbo.log.2025-07-29 +0 -0
- package/dist/AntiDuplicationPolicy.js.map +0 -1
- package/dist/AnyPolicy.js.map +0 -1
- package/dist/AuthorPolicy.js.map +0 -1
- package/dist/DomainPolicy.js.map +0 -1
- package/dist/FiltersPolicy.js.map +0 -1
- package/dist/HashtagPolicy.js.map +0 -1
- package/dist/HellthreadPolicy.js.map +0 -1
- package/dist/InvertPolicy.js.map +0 -1
- package/dist/KeywordPolicy.js.map +0 -1
- package/dist/NoOpPolicy.js.map +0 -1
- package/dist/OpenAIPolicy.js.map +0 -1
- package/dist/PipePolicy.js.map +0 -1
- package/dist/PowPolicy.js.map +0 -1
- package/dist/PubkeyBanPolicy.js.map +0 -1
- package/dist/ReadOnlyPolicy.js.map +0 -1
- package/dist/RegexPolicy.js.map +0 -1
- package/dist/ReplyBotPolicy.js.map +0 -1
- package/dist/SizePolicy.js.map +0 -1
- package/dist/WhitelistPolicy.js.map +0 -1
- package/dist/WoTPolicy.js.map +0 -1
package/dist/ReplyBotPolicy.js
CHANGED
|
@@ -1,41 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
1
|
+
class ReplyBotPolicy {
|
|
2
|
+
opts;
|
|
3
|
+
constructor(opts) {
|
|
4
|
+
this.opts = opts;
|
|
5
|
+
}
|
|
6
|
+
async call(event, signal) {
|
|
7
|
+
const { store, threshold = 1, kinds = [1] } = this.opts;
|
|
8
|
+
if (kinds.includes(event.kind)) {
|
|
9
|
+
const [, replyToId] = ReplyBotPolicy.findReplyTag(event.tags) ?? [];
|
|
10
|
+
if (replyToId) {
|
|
11
|
+
const [prevEvent] = await store.query([{ ids: [replyToId] }], { signal });
|
|
12
|
+
if (prevEvent) {
|
|
13
|
+
const diff = event.created_at - prevEvent.created_at;
|
|
14
|
+
const pTag = prevEvent.tags.find(([name, value]) => name === "p" && value === event.pubkey);
|
|
15
|
+
if (diff <= threshold && !pTag) {
|
|
16
|
+
return ["OK", event.id, false, "rate-limited: replied too quickly"];
|
|
17
|
+
}
|
|
21
18
|
}
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
/** Tag is a NIP-10 root tag. */
|
|
25
|
-
static isRootTag(tag) {
|
|
26
|
-
return tag[0] === 'e' && tag[3] === 'root';
|
|
27
|
-
}
|
|
28
|
-
/** Tag is a NIP-10 reply tag. */
|
|
29
|
-
static isReplyTag(tag) {
|
|
30
|
-
return tag[0] === 'e' && tag[3] === 'reply';
|
|
31
|
-
}
|
|
32
|
-
/** Tag is an "e" tag without a NIP-10 marker. */
|
|
33
|
-
static isLegacyReplyTag(tag) {
|
|
34
|
-
return tag[0] === 'e' && !tag[3];
|
|
35
|
-
}
|
|
36
|
-
/** Get the "e" tag for the event being replied to, first according to the NIPs then falling back to the legacy way. */
|
|
37
|
-
static findReplyTag(tags) {
|
|
38
|
-
return tags.find(this.isReplyTag) || tags.find(this.isRootTag) || tags.findLast(this.isLegacyReplyTag);
|
|
19
|
+
}
|
|
39
20
|
}
|
|
21
|
+
return ["OK", event.id, true, ""];
|
|
22
|
+
}
|
|
23
|
+
/** Tag is a NIP-10 root tag. */
|
|
24
|
+
static isRootTag(tag) {
|
|
25
|
+
return tag[0] === "e" && tag[3] === "root";
|
|
26
|
+
}
|
|
27
|
+
/** Tag is a NIP-10 reply tag. */
|
|
28
|
+
static isReplyTag(tag) {
|
|
29
|
+
return tag[0] === "e" && tag[3] === "reply";
|
|
30
|
+
}
|
|
31
|
+
/** Tag is an "e" tag without a NIP-10 marker. */
|
|
32
|
+
static isLegacyReplyTag(tag) {
|
|
33
|
+
return tag[0] === "e" && !tag[3];
|
|
34
|
+
}
|
|
35
|
+
/** Get the "e" tag for the event being replied to, first according to the NIPs then falling back to the legacy way. */
|
|
36
|
+
static findReplyTag(tags) {
|
|
37
|
+
return tags.find(this.isReplyTag) || tags.find(this.isRootTag) || tags.findLast(this.isLegacyReplyTag);
|
|
38
|
+
}
|
|
40
39
|
}
|
|
41
|
-
|
|
40
|
+
export {
|
|
41
|
+
ReplyBotPolicy
|
|
42
|
+
};
|
package/dist/SizePolicy.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NostrEvent, NostrRelayOK, NPolicy } from '@nostrify/types';
|
|
1
|
+
import type { NostrEvent, NostrRelayOK, NPolicy } from '@nostrify/types';
|
|
2
2
|
/** Policy options for `SizePolicy`. */
|
|
3
3
|
interface SizePolicyOpts {
|
|
4
4
|
/** Maximum size of the message content in bytes. Default: 8192 (8KB) */
|
package/dist/SizePolicy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SizePolicy.d.ts","sourceRoot":"","sources":["../SizePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"SizePolicy.d.ts","sourceRoot":"","sources":["../SizePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEzE,uCAAuC;AACvC,UAAU,cAAc;IACtB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,qBAAa,UAAW,YAAW,OAAO;IACxC,OAAO,CAAC,IAAI,CAAiB;gBAEjB,IAAI,GAAE,cAAmB;IAK/B,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;CAYrD"}
|
package/dist/SizePolicy.js
CHANGED
|
@@ -1,27 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
constructor(opts = {}) {
|
|
14
|
-
this.opts = opts;
|
|
15
|
-
}
|
|
16
|
-
// deno-lint-ignore require-await
|
|
17
|
-
async call(event) {
|
|
18
|
-
const { maxBytes = 8 * 1024 } = this.opts;
|
|
19
|
-
const json = JSON.stringify(event);
|
|
20
|
-
const size = new TextEncoder().encode(json).length;
|
|
21
|
-
if (size > maxBytes) {
|
|
22
|
-
return ['OK', event.id, false, `blocked: event is too large`];
|
|
23
|
-
}
|
|
24
|
-
return ['OK', event.id, true, ''];
|
|
1
|
+
class SizePolicy {
|
|
2
|
+
opts;
|
|
3
|
+
constructor(opts = {}) {
|
|
4
|
+
this.opts = opts;
|
|
5
|
+
}
|
|
6
|
+
// deno-lint-ignore require-await
|
|
7
|
+
async call(event) {
|
|
8
|
+
const { maxBytes = 8 * 1024 } = this.opts;
|
|
9
|
+
const json = JSON.stringify(event);
|
|
10
|
+
const size = new TextEncoder().encode(json).length;
|
|
11
|
+
if (size > maxBytes) {
|
|
12
|
+
return ["OK", event.id, false, `blocked: event is too large`];
|
|
25
13
|
}
|
|
14
|
+
return ["OK", event.id, true, ""];
|
|
15
|
+
}
|
|
26
16
|
}
|
|
27
|
-
|
|
17
|
+
export {
|
|
18
|
+
SizePolicy
|
|
19
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WhitelistPolicy.d.ts","sourceRoot":"","sources":["../WhitelistPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"WhitelistPolicy.d.ts","sourceRoot":"","sources":["../WhitelistPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEzF;;;;;;;GAOG;AACH,qBAAa,eAAgB,YAAW,OAAO;IAC7C,OAAO,CAAC,OAAO,CAAmB;gBAEtB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC;IAK/B,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAU7D,IAAI,IAAI,IAAI,cAAc,CAMzB;CACF"}
|
package/dist/WhitelistPolicy.js
CHANGED
|
@@ -1,31 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
this.pubkeys = pubkeys;
|
|
13
|
-
}
|
|
14
|
-
// deno-lint-ignore require-await
|
|
15
|
-
async call({ id, pubkey }) {
|
|
16
|
-
for (const p of this.pubkeys) {
|
|
17
|
-
if (p === pubkey) {
|
|
18
|
-
return ['OK', id, true, ''];
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return ['OK', id, false, 'blocked: only certain pubkeys are allowed to post'];
|
|
22
|
-
}
|
|
23
|
-
get info() {
|
|
24
|
-
return {
|
|
25
|
-
limitation: {
|
|
26
|
-
restricted_writes: true,
|
|
27
|
-
},
|
|
28
|
-
};
|
|
1
|
+
class WhitelistPolicy {
|
|
2
|
+
pubkeys;
|
|
3
|
+
constructor(pubkeys) {
|
|
4
|
+
this.pubkeys = pubkeys;
|
|
5
|
+
}
|
|
6
|
+
// deno-lint-ignore require-await
|
|
7
|
+
async call({ id, pubkey }) {
|
|
8
|
+
for (const p of this.pubkeys) {
|
|
9
|
+
if (p === pubkey) {
|
|
10
|
+
return ["OK", id, true, ""];
|
|
11
|
+
}
|
|
29
12
|
}
|
|
13
|
+
return ["OK", id, false, "blocked: only certain pubkeys are allowed to post"];
|
|
14
|
+
}
|
|
15
|
+
get info() {
|
|
16
|
+
return {
|
|
17
|
+
limitation: {
|
|
18
|
+
restricted_writes: true
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
30
22
|
}
|
|
31
|
-
|
|
23
|
+
export {
|
|
24
|
+
WhitelistPolicy
|
|
25
|
+
};
|
package/dist/WoTPolicy.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NostrEvent, NostrRelayOK, NPolicy, NStore } from '@nostrify/types';
|
|
1
|
+
import type { NostrEvent, NostrRelayOK, NPolicy, NStore } from '@nostrify/types';
|
|
2
2
|
/** Options for the `WoTPolicy`. */
|
|
3
3
|
interface WoTPolicyOpts {
|
|
4
4
|
/** Store to get kind 3 follow lists from. */
|
|
@@ -15,8 +15,8 @@ interface WoTPolicyOpts {
|
|
|
15
15
|
}
|
|
16
16
|
/** Whitelist pubkeys the given user follows, people those users follow, etc. up to `depth`. */
|
|
17
17
|
export declare class WoTPolicy implements NPolicy {
|
|
18
|
-
private opts;
|
|
19
18
|
private pubkeys;
|
|
19
|
+
private opts;
|
|
20
20
|
constructor(opts: WoTPolicyOpts);
|
|
21
21
|
call(event: NostrEvent): Promise<NostrRelayOK>;
|
|
22
22
|
/** Retrieve the complete set of pubkeys to whitelist. */
|
package/dist/WoTPolicy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WoTPolicy.d.ts","sourceRoot":"","sources":["../WoTPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"WoTPolicy.d.ts","sourceRoot":"","sources":["../WoTPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEjF,mCAAmC;AACnC,UAAU,aAAa;IACrB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,+FAA+F;AAC/F,qBAAa,SAAU,YAAW,OAAO;IACvC,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,IAAI,CAAgB;gBAEhB,IAAI,EAAE,aAAa;IAIzB,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAWpD,yDAAyD;YAC3C,UAAU;CAyBzB"}
|
package/dist/WoTPolicy.js
CHANGED
|
@@ -1,38 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
class WoTPolicy {
|
|
2
|
+
pubkeys;
|
|
3
|
+
opts;
|
|
4
|
+
constructor(opts) {
|
|
5
|
+
this.opts = opts;
|
|
6
|
+
}
|
|
7
|
+
async call(event) {
|
|
8
|
+
this.pubkeys ??= this.getPubkeys();
|
|
9
|
+
const pubkeys = await this.pubkeys;
|
|
10
|
+
if (pubkeys.has(event.pubkey)) {
|
|
11
|
+
return ["OK", event.id, true, ""];
|
|
7
12
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
authors.clear();
|
|
24
|
-
for (const event of events) {
|
|
25
|
-
for (const [name, value] of event.tags) {
|
|
26
|
-
if (name === 'p') {
|
|
27
|
-
if (!pubkeys.has(value)) { // Avoid infinite loops.
|
|
28
|
-
authors.add(value);
|
|
29
|
-
}
|
|
30
|
-
pubkeys.add(value);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
13
|
+
return ["OK", event.id, false, "blocked: only certain pubkeys are allowed to post"];
|
|
14
|
+
}
|
|
15
|
+
/** Retrieve the complete set of pubkeys to whitelist. */
|
|
16
|
+
async getPubkeys() {
|
|
17
|
+
const { store, depth } = this.opts;
|
|
18
|
+
const pubkeys = /* @__PURE__ */ new Set([...this.opts.pubkeys]);
|
|
19
|
+
const authors = new Set(pubkeys);
|
|
20
|
+
for (let i = 0; i < depth; i++) {
|
|
21
|
+
const events = await store.query([{ kinds: [3], authors: [...authors] }]);
|
|
22
|
+
authors.clear();
|
|
23
|
+
for (const event of events) {
|
|
24
|
+
for (const [name, value] of event.tags) {
|
|
25
|
+
if (name === "p") {
|
|
26
|
+
if (!pubkeys.has(value)) {
|
|
27
|
+
authors.add(value);
|
|
33
28
|
}
|
|
29
|
+
pubkeys.add(value);
|
|
30
|
+
}
|
|
34
31
|
}
|
|
35
|
-
|
|
32
|
+
}
|
|
36
33
|
}
|
|
34
|
+
return pubkeys;
|
|
35
|
+
}
|
|
37
36
|
}
|
|
38
|
-
|
|
37
|
+
export {
|
|
38
|
+
WoTPolicy
|
|
39
|
+
};
|
package/dist/mod.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
export { AntiDuplicationPolicy } from './AntiDuplicationPolicy.
|
|
2
|
-
export { AnyPolicy } from './AnyPolicy.
|
|
3
|
-
export { AuthorPolicy } from './AuthorPolicy.
|
|
4
|
-
export { DomainPolicy } from './DomainPolicy.
|
|
5
|
-
export { FiltersPolicy } from './FiltersPolicy.
|
|
6
|
-
export { HashtagPolicy } from './HashtagPolicy.
|
|
7
|
-
export { HellthreadPolicy } from './HellthreadPolicy.
|
|
8
|
-
export { InvertPolicy } from './InvertPolicy.
|
|
9
|
-
export { KeywordPolicy } from './KeywordPolicy.
|
|
10
|
-
export { NoOpPolicy } from './NoOpPolicy.
|
|
11
|
-
export { OpenAIPolicy } from './OpenAIPolicy.
|
|
12
|
-
export { PipePolicy } from './PipePolicy.
|
|
13
|
-
export { PowPolicy } from './PowPolicy.
|
|
14
|
-
export { PubkeyBanPolicy } from './PubkeyBanPolicy.
|
|
15
|
-
export { ReadOnlyPolicy } from './ReadOnlyPolicy.
|
|
16
|
-
export { RegexPolicy } from './RegexPolicy.
|
|
17
|
-
export { ReplyBotPolicy } from './ReplyBotPolicy.
|
|
18
|
-
export { SizePolicy } from './SizePolicy.
|
|
19
|
-
export { WhitelistPolicy } from './WhitelistPolicy.
|
|
20
|
-
export { WoTPolicy } from './WoTPolicy.
|
|
1
|
+
export { AntiDuplicationPolicy } from './AntiDuplicationPolicy.ts';
|
|
2
|
+
export { AnyPolicy } from './AnyPolicy.ts';
|
|
3
|
+
export { AuthorPolicy } from './AuthorPolicy.ts';
|
|
4
|
+
export { DomainPolicy } from './DomainPolicy.ts';
|
|
5
|
+
export { FiltersPolicy } from './FiltersPolicy.ts';
|
|
6
|
+
export { HashtagPolicy } from './HashtagPolicy.ts';
|
|
7
|
+
export { HellthreadPolicy } from './HellthreadPolicy.ts';
|
|
8
|
+
export { InvertPolicy } from './InvertPolicy.ts';
|
|
9
|
+
export { KeywordPolicy } from './KeywordPolicy.ts';
|
|
10
|
+
export { NoOpPolicy } from './NoOpPolicy.ts';
|
|
11
|
+
export { OpenAIPolicy } from './OpenAIPolicy.ts';
|
|
12
|
+
export { PipePolicy } from './PipePolicy.ts';
|
|
13
|
+
export { PowPolicy } from './PowPolicy.ts';
|
|
14
|
+
export { PubkeyBanPolicy } from './PubkeyBanPolicy.ts';
|
|
15
|
+
export { ReadOnlyPolicy } from './ReadOnlyPolicy.ts';
|
|
16
|
+
export { RegexPolicy } from './RegexPolicy.ts';
|
|
17
|
+
export { ReplyBotPolicy } from './ReplyBotPolicy.ts';
|
|
18
|
+
export { SizePolicy } from './SizePolicy.ts';
|
|
19
|
+
export { WhitelistPolicy } from './WhitelistPolicy.ts';
|
|
20
|
+
export { WoTPolicy } from './WoTPolicy.ts';
|
|
21
21
|
//# sourceMappingURL=mod.d.ts.map
|
package/dist/mod.js
CHANGED
|
@@ -1,21 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
import { AntiDuplicationPolicy } from "./AntiDuplicationPolicy.js";
|
|
2
|
+
import { AnyPolicy } from "./AnyPolicy.js";
|
|
3
|
+
import { AuthorPolicy } from "./AuthorPolicy.js";
|
|
4
|
+
import { DomainPolicy } from "./DomainPolicy.js";
|
|
5
|
+
import { FiltersPolicy } from "./FiltersPolicy.js";
|
|
6
|
+
import { HashtagPolicy } from "./HashtagPolicy.js";
|
|
7
|
+
import { HellthreadPolicy } from "./HellthreadPolicy.js";
|
|
8
|
+
import { InvertPolicy } from "./InvertPolicy.js";
|
|
9
|
+
import { KeywordPolicy } from "./KeywordPolicy.js";
|
|
10
|
+
import { NoOpPolicy } from "./NoOpPolicy.js";
|
|
11
|
+
import { OpenAIPolicy } from "./OpenAIPolicy.js";
|
|
12
|
+
import { PipePolicy } from "./PipePolicy.js";
|
|
13
|
+
import { PowPolicy } from "./PowPolicy.js";
|
|
14
|
+
import { PubkeyBanPolicy } from "./PubkeyBanPolicy.js";
|
|
15
|
+
import { ReadOnlyPolicy } from "./ReadOnlyPolicy.js";
|
|
16
|
+
import { RegexPolicy } from "./RegexPolicy.js";
|
|
17
|
+
import { ReplyBotPolicy } from "./ReplyBotPolicy.js";
|
|
18
|
+
import { SizePolicy } from "./SizePolicy.js";
|
|
19
|
+
import { WhitelistPolicy } from "./WhitelistPolicy.js";
|
|
20
|
+
import { WoTPolicy } from "./WoTPolicy.js";
|
|
21
|
+
export {
|
|
22
|
+
AntiDuplicationPolicy,
|
|
23
|
+
AnyPolicy,
|
|
24
|
+
AuthorPolicy,
|
|
25
|
+
DomainPolicy,
|
|
26
|
+
FiltersPolicy,
|
|
27
|
+
HashtagPolicy,
|
|
28
|
+
HellthreadPolicy,
|
|
29
|
+
InvertPolicy,
|
|
30
|
+
KeywordPolicy,
|
|
31
|
+
NoOpPolicy,
|
|
32
|
+
OpenAIPolicy,
|
|
33
|
+
PipePolicy,
|
|
34
|
+
PowPolicy,
|
|
35
|
+
PubkeyBanPolicy,
|
|
36
|
+
ReadOnlyPolicy,
|
|
37
|
+
RegexPolicy,
|
|
38
|
+
ReplyBotPolicy,
|
|
39
|
+
SizePolicy,
|
|
40
|
+
WhitelistPolicy,
|
|
41
|
+
WoTPolicy
|
|
42
|
+
};
|
package/dist/mod.js.map
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../mod.ts"],
|
|
4
|
+
"sourcesContent": ["export { AntiDuplicationPolicy } from './AntiDuplicationPolicy.ts';\nexport { AnyPolicy } from './AnyPolicy.ts';\nexport { AuthorPolicy } from './AuthorPolicy.ts';\nexport { DomainPolicy } from './DomainPolicy.ts';\nexport { FiltersPolicy } from './FiltersPolicy.ts';\nexport { HashtagPolicy } from './HashtagPolicy.ts';\nexport { HellthreadPolicy } from './HellthreadPolicy.ts';\nexport { InvertPolicy } from './InvertPolicy.ts';\nexport { KeywordPolicy } from './KeywordPolicy.ts';\nexport { NoOpPolicy } from './NoOpPolicy.ts';\nexport { OpenAIPolicy } from './OpenAIPolicy.ts';\nexport { PipePolicy } from './PipePolicy.ts';\nexport { PowPolicy } from './PowPolicy.ts';\nexport { PubkeyBanPolicy } from './PubkeyBanPolicy.ts';\nexport { ReadOnlyPolicy } from './ReadOnlyPolicy.ts';\nexport { RegexPolicy } from './RegexPolicy.ts';\nexport { ReplyBotPolicy } from './ReplyBotPolicy.ts';\nexport { SizePolicy } from './SizePolicy.ts';\nexport { WhitelistPolicy } from './WhitelistPolicy.ts';\nexport { WoTPolicy } from './WoTPolicy.ts';\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,6BAA6B;AACtC,SAAS,iBAAiB;AAC1B,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B,SAAS,uBAAuB;AAChC,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAChC,SAAS,iBAAiB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|