@nostrify/policies 0.36.3 → 0.36.4
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 +1 -1
- package/CHANGELOG.md +9 -0
- package/DomainPolicy.ts +1 -1
- package/dist/AntiDuplicationPolicy.js +1 -5
- package/dist/AntiDuplicationPolicy.js.map +1 -1
- package/dist/AnyPolicy.js +1 -5
- package/dist/AnyPolicy.js.map +1 -1
- package/dist/AuthorPolicy.js +1 -5
- package/dist/AuthorPolicy.js.map +1 -1
- package/dist/DomainPolicy.d.ts +1 -1
- package/dist/DomainPolicy.d.ts.map +1 -1
- package/dist/DomainPolicy.js +5 -9
- package/dist/DomainPolicy.js.map +1 -1
- package/dist/FiltersPolicy.js +3 -7
- package/dist/FiltersPolicy.js.map +1 -1
- package/dist/HashtagPolicy.js +1 -5
- package/dist/HashtagPolicy.js.map +1 -1
- package/dist/HellthreadPolicy.js +1 -5
- package/dist/HellthreadPolicy.js.map +1 -1
- package/dist/InvertPolicy.js +1 -5
- package/dist/InvertPolicy.js.map +1 -1
- package/dist/KeywordPolicy.js +1 -5
- package/dist/KeywordPolicy.js.map +1 -1
- package/dist/NoOpPolicy.js +1 -5
- package/dist/NoOpPolicy.js.map +1 -1
- package/dist/OpenAIPolicy.js +1 -5
- package/dist/OpenAIPolicy.js.map +1 -1
- package/dist/PipePolicy.js +1 -5
- package/dist/PipePolicy.js.map +1 -1
- package/dist/PowPolicy.js +3 -7
- package/dist/PowPolicy.js.map +1 -1
- package/dist/PubkeyBanPolicy.js +1 -5
- package/dist/PubkeyBanPolicy.js.map +1 -1
- package/dist/ReadOnlyPolicy.js +1 -5
- package/dist/ReadOnlyPolicy.js.map +1 -1
- package/dist/RegexPolicy.js +1 -5
- package/dist/RegexPolicy.js.map +1 -1
- package/dist/ReplyBotPolicy.js +1 -5
- package/dist/ReplyBotPolicy.js.map +1 -1
- package/dist/SizePolicy.js +1 -5
- package/dist/SizePolicy.js.map +1 -1
- package/dist/WhitelistPolicy.js +1 -5
- package/dist/WhitelistPolicy.js.map +1 -1
- package/dist/WoTPolicy.js +1 -5
- package/dist/WoTPolicy.js.map +1 -1
- package/dist/mod.d.ts +20 -20
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +20 -43
- package/dist/mod.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/mod.ts +20 -20
- package/package.json +3 -3
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
package/DomainPolicy.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NIP05, NSchema as n } from '@nostrify/nostrify';
|
|
2
2
|
import { NPolicy, NProfilePointer, NStore } from '@nostrify/types';
|
|
3
3
|
|
|
4
|
-
import { AuthorPolicy } from './AuthorPolicy';
|
|
4
|
+
import { AuthorPolicy } from './AuthorPolicy.js';
|
|
5
5
|
|
|
6
6
|
/** Options for `DomainPolicy`. */
|
|
7
7
|
interface DomainPolicyOpts {
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AntiDuplicationPolicy = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Prevent messages with the exact same content from being submitted repeatedly.
|
|
6
3
|
*
|
|
@@ -18,7 +15,7 @@ exports.AntiDuplicationPolicy = void 0;
|
|
|
18
15
|
* new AntiDuplicationPolicy({ kv, expireIn: 60000, minLength: 50 });
|
|
19
16
|
* ```
|
|
20
17
|
*/
|
|
21
|
-
class AntiDuplicationPolicy {
|
|
18
|
+
export class AntiDuplicationPolicy {
|
|
22
19
|
opts;
|
|
23
20
|
constructor(opts) {
|
|
24
21
|
this.opts = opts;
|
|
@@ -59,5 +56,4 @@ class AntiDuplicationPolicy {
|
|
|
59
56
|
return hash;
|
|
60
57
|
}
|
|
61
58
|
}
|
|
62
|
-
exports.AntiDuplicationPolicy = AntiDuplicationPolicy;
|
|
63
59
|
//# sourceMappingURL=AntiDuplicationPolicy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AntiDuplicationPolicy.js","sourceRoot":"","sources":["../AntiDuplicationPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AntiDuplicationPolicy.js","sourceRoot":"","sources":["../AntiDuplicationPolicy.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,qBAAqB;IACZ;IAApB,YAAoB,IAA+B;QAA/B,SAAI,GAAJ,IAAI,CAA2B;IAAG,CAAC;IAEvD,KAAK,CAAC,IAAI,CAAC,KAAiB;QAC1B,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAC3B,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,SAAS,GAAG,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAExE,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC;QAEtD,IAAI,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACrD,MAAM,GAAG,GAAU,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAErE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEpC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACtC,OAAO;oBACL,IAAI;oBACJ,EAAE;oBACF,KAAK;oBACL,4DAA4D;iBAC7D,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,QAAQ,CAAC,GAAW;QACjC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;YAChC,IAAI,IAAI,CAAC,CAAC,CAAC,2BAA2B;QACxC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
package/dist/AnyPolicy.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AnyPolicy = void 0;
|
|
4
1
|
/** Similar to `PipePolicy`, but passes if at least one policy passes. */
|
|
5
|
-
class AnyPolicy {
|
|
2
|
+
export class AnyPolicy {
|
|
6
3
|
policies;
|
|
7
4
|
constructor(policies) {
|
|
8
5
|
this.policies = policies;
|
|
@@ -19,5 +16,4 @@ class AnyPolicy {
|
|
|
19
16
|
return result;
|
|
20
17
|
}
|
|
21
18
|
}
|
|
22
|
-
exports.AnyPolicy = AnyPolicy;
|
|
23
19
|
//# sourceMappingURL=AnyPolicy.js.map
|
package/dist/AnyPolicy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnyPolicy.js","sourceRoot":"","sources":["../AnyPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AnyPolicy.js","sourceRoot":"","sources":["../AnyPolicy.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,MAAM,OAAO,SAAS;IACA;IAApB,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;IAAG,CAAC;IAE3C,KAAK,CAAC,IAAI,CAAC,KAAiB,EAAE,MAAoB;QAChD,IAAI,MAAM,GAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,2BAA2B,CAAC,CAAC;QAEhF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAE1C,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,EAAE,EAAE,CAAC;gBACP,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
package/dist/AuthorPolicy.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AuthorPolicy = void 0;
|
|
4
1
|
/** Rejects events by authors without a kind 0, then optionally applies another policy to the kind 0. */
|
|
5
|
-
class AuthorPolicy {
|
|
2
|
+
export class AuthorPolicy {
|
|
6
3
|
store;
|
|
7
4
|
policy;
|
|
8
5
|
constructor(store, policy) {
|
|
@@ -23,5 +20,4 @@ class AuthorPolicy {
|
|
|
23
20
|
return ['OK', event.id, true, ''];
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
|
-
exports.AuthorPolicy = AuthorPolicy;
|
|
27
23
|
//# sourceMappingURL=AuthorPolicy.js.map
|
package/dist/AuthorPolicy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorPolicy.js","sourceRoot":"","sources":["../AuthorPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AuthorPolicy.js","sourceRoot":"","sources":["../AuthorPolicy.ts"],"names":[],"mappings":"AAEA,wGAAwG;AACxG,MAAM,OAAO,YAAY;IACH;IAAuB;IAA3C,YAAoB,KAAa,EAAU,MAAgB;QAAvC,UAAK,GAAL,KAAK,CAAQ;QAAU,WAAM,GAAN,MAAM,CAAU;IAAG,CAAC;IAE/D,KAAK,CAAC,IAAI,CAAC,KAAiB,EAAE,MAAoB;QAChD,MAAM,MAAM,GAA2B,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK;aAC/E,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;aACtE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAE5B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,2CAA2C,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,EAAE,AAAD,EAAG,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;CACF"}
|
package/dist/DomainPolicy.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NPolicy, NProfilePointer, NStore } from '@nostrify/types';
|
|
2
|
-
import { AuthorPolicy } from './AuthorPolicy';
|
|
2
|
+
import { AuthorPolicy } from './AuthorPolicy.js';
|
|
3
3
|
/** Options for `DomainPolicy`. */
|
|
4
4
|
interface DomainPolicyOpts {
|
|
5
5
|
/** Custom NIP-05 lookup function. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomainPolicy.d.ts","sourceRoot":"","sources":["../DomainPolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"DomainPolicy.d.ts","sourceRoot":"","sources":["../DomainPolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,kCAAkC;AAClC,UAAU,gBAAgB;IACxB,qCAAqC;IACrC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACvE,0GAA0G;IAC1G,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,mIAAmI;IACnI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,8GAA8G;AAC9G,qBAAa,YAAa,SAAQ,YAAa,YAAW,OAAO;gBACnD,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,gBAAqB;IAmDtD,qFAAqF;IACrF,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAmBlC,wEAAwE;IACxE,OAAO,CAAC,MAAM,CAAC,MAAM;CAMtB"}
|
package/dist/DomainPolicy.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.DomainPolicy = void 0;
|
|
4
|
-
const nostrify_1 = require("@nostrify/nostrify");
|
|
5
|
-
const AuthorPolicy_1 = require("./AuthorPolicy");
|
|
1
|
+
import { NIP05, NSchema as n } from '@nostrify/nostrify';
|
|
2
|
+
import { AuthorPolicy } from './AuthorPolicy.js';
|
|
6
3
|
/** Ban events unless their author has a valid NIP-05 name. Domains can also be whitelisted or blacklisted. */
|
|
7
|
-
class DomainPolicy extends
|
|
4
|
+
export class DomainPolicy extends AuthorPolicy {
|
|
8
5
|
constructor(store, opts = {}) {
|
|
9
6
|
super(store, {
|
|
10
7
|
async call(event, signal) {
|
|
11
8
|
const { blacklist = [], whitelist, lookup = DomainPolicy.lookup } = opts;
|
|
12
|
-
const metadata =
|
|
9
|
+
const metadata = n.json().pipe(n.metadata()).safeParse(event.content);
|
|
13
10
|
if (!metadata.success) {
|
|
14
11
|
return ['OK', event.id, false, 'blocked: invalid kind 0 metadata'];
|
|
15
12
|
}
|
|
@@ -61,8 +58,7 @@ class DomainPolicy extends AuthorPolicy_1.AuthorPolicy {
|
|
|
61
58
|
}
|
|
62
59
|
/** Default NIP-05 lookup method if one isn't provided by the caller. */
|
|
63
60
|
static lookup(nip05, signal) {
|
|
64
|
-
return
|
|
61
|
+
return NIP05.lookup(nip05, { signal });
|
|
65
62
|
}
|
|
66
63
|
}
|
|
67
|
-
exports.DomainPolicy = DomainPolicy;
|
|
68
64
|
//# sourceMappingURL=DomainPolicy.js.map
|
package/dist/DomainPolicy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomainPolicy.js","sourceRoot":"","sources":["../DomainPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DomainPolicy.js","sourceRoot":"","sources":["../DomainPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAYjD,8GAA8G;AAC9G,MAAM,OAAO,YAAa,SAAQ,YAAY;IAC5C,YAAY,KAAa,EAAE,OAAyB,EAAE;QACpD,KAAK,CAAC,KAAK,EAAE;YACX,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;gBACtB,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;gBAEzE,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAEtE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,kCAAkC,CAAC,CAAC;gBACrE,CAAC;gBAED,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAEhC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,wBAAwB,CAAC,CAAC;gBAC3D,CAAC;gBAED,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,wBAAwB,CAAC,CAAC;gBAC3D,CAAC;gBAED,IAAI,YAAY,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;oBACxD,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,mCAAmC,CAAC,CAAC;gBACtE,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAE/C,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;wBAC5B,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,kCAAkC,CAAC,CAAC;oBACrE,CAAC;oBAED,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC7C,OAAO;4BACL,IAAI;4BACJ,KAAK,CAAC,EAAE;4BACR,KAAK;4BACL,wCAAwC;yBACzC,CAAC;oBACJ,CAAC;oBAED,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBACpC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,iCAAiC,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,qFAAqF;IAC7E,MAAM,CAAC,mBAAmB,CAChC,MAAc,EACd,SAAmB;QAEnB,wBAAwB;QACxB,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2DAA2D;QAC3D,KAAK,MAAM,iBAAiB,IAAI,SAAS,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,iBAAiB,CAAC,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wEAAwE;IAChE,MAAM,CAAC,MAAM,CACnB,KAAa,EACb,MAAoB;QAEpB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;CACF"}
|
package/dist/FiltersPolicy.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FiltersPolicy = void 0;
|
|
4
|
-
const nostr_tools_1 = require("nostr-tools");
|
|
1
|
+
import { matchFilters } from 'nostr-tools';
|
|
5
2
|
/**
|
|
6
3
|
* Reject events which don't match the filters.
|
|
7
4
|
*
|
|
@@ -13,18 +10,17 @@ const nostr_tools_1 = require("nostr-tools");
|
|
|
13
10
|
* new FiltersPolicy([{ kinds: [0, 1, 3, 5, 6, 7] }]);
|
|
14
11
|
* ```
|
|
15
12
|
*/
|
|
16
|
-
class FiltersPolicy {
|
|
13
|
+
export class FiltersPolicy {
|
|
17
14
|
filters;
|
|
18
15
|
constructor(filters) {
|
|
19
16
|
this.filters = filters;
|
|
20
17
|
}
|
|
21
18
|
// deno-lint-ignore require-await
|
|
22
19
|
async call(event) {
|
|
23
|
-
if (
|
|
20
|
+
if (matchFilters(this.filters, event)) {
|
|
24
21
|
return ['OK', event.id, true, ''];
|
|
25
22
|
}
|
|
26
23
|
return ['OK', event.id, false, "blocked: the event doesn't match the allowed filters"];
|
|
27
24
|
}
|
|
28
25
|
}
|
|
29
|
-
exports.FiltersPolicy = FiltersPolicy;
|
|
30
26
|
//# sourceMappingURL=FiltersPolicy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiltersPolicy.js","sourceRoot":"","sources":["../FiltersPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FiltersPolicy.js","sourceRoot":"","sources":["../FiltersPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C;;;;;;;;;;GAUG;AACH,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAE9C,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,KAAiB;QAC1B,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,sDAAsD,CAAC,CAAC;IACzF,CAAC;CACF"}
|
package/dist/HashtagPolicy.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HashtagPolicy = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Reject events containing any of the banned hashtags.
|
|
6
3
|
*
|
|
@@ -10,7 +7,7 @@ exports.HashtagPolicy = void 0;
|
|
|
10
7
|
* HashtagPolicy(['nsfw']);
|
|
11
8
|
* ```
|
|
12
9
|
*/
|
|
13
|
-
class HashtagPolicy {
|
|
10
|
+
export class HashtagPolicy {
|
|
14
11
|
hashtags;
|
|
15
12
|
constructor(hashtags) {
|
|
16
13
|
this.hashtags = hashtags;
|
|
@@ -25,5 +22,4 @@ class HashtagPolicy {
|
|
|
25
22
|
return ['OK', id, true, ''];
|
|
26
23
|
}
|
|
27
24
|
}
|
|
28
|
-
exports.HashtagPolicy = HashtagPolicy;
|
|
29
25
|
//# sourceMappingURL=HashtagPolicy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HashtagPolicy.js","sourceRoot":"","sources":["../HashtagPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HashtagPolicy.js","sourceRoot":"","sources":["../HashtagPolicy.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IAE1C,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAc;QACjC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YACjC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAChE,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,oCAAoC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF"}
|
package/dist/HellthreadPolicy.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HellthreadPolicy = void 0;
|
|
4
1
|
/** Basic policy to demonstrate how policies work. Accepts all events. */
|
|
5
|
-
class HellthreadPolicy {
|
|
2
|
+
export class HellthreadPolicy {
|
|
6
3
|
opts;
|
|
7
4
|
constructor(opts = {}) {
|
|
8
5
|
this.opts = opts;
|
|
@@ -19,5 +16,4 @@ class HellthreadPolicy {
|
|
|
19
16
|
return ['OK', id, true, ''];
|
|
20
17
|
}
|
|
21
18
|
}
|
|
22
|
-
exports.HellthreadPolicy = HellthreadPolicy;
|
|
23
19
|
//# sourceMappingURL=HellthreadPolicy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HellthreadPolicy.js","sourceRoot":"","sources":["../HellthreadPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HellthreadPolicy.js","sourceRoot":"","sources":["../HellthreadPolicy.ts"],"names":[],"mappings":"AAQA,yEAAyE;AACzE,MAAM,OAAO,gBAAgB;IACP;IAApB,YAAoB,OAA6B,EAAE;QAA/B,SAAI,GAAJ,IAAI,CAA2B;IAAG,CAAC;IAEvD,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAc;QACvC,MAAM,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAElC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YAE/C,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;gBACrB,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,4BAA4B,CAAC,CAAC,MAAM,cAAc,KAAK,iBAAiB,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF"}
|
package/dist/InvertPolicy.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InvertPolicy = void 0;
|
|
4
1
|
/** Rejects if the policy passes, passes if the policy rejects. */
|
|
5
|
-
class InvertPolicy {
|
|
2
|
+
export class InvertPolicy {
|
|
6
3
|
policy;
|
|
7
4
|
reason;
|
|
8
5
|
constructor(policy, reason) {
|
|
@@ -20,5 +17,4 @@ class InvertPolicy {
|
|
|
20
17
|
}
|
|
21
18
|
}
|
|
22
19
|
}
|
|
23
|
-
exports.InvertPolicy = InvertPolicy;
|
|
24
20
|
//# sourceMappingURL=InvertPolicy.js.map
|
package/dist/InvertPolicy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvertPolicy.js","sourceRoot":"","sources":["../InvertPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InvertPolicy.js","sourceRoot":"","sources":["../InvertPolicy.ts"],"names":[],"mappings":"AAEA,kEAAkE;AAClE,MAAM,OAAO,YAAY;IACH;IAAyB;IAA7C,YAAoB,MAAe,EAAU,MAAc;QAAvC,WAAM,GAAN,MAAM,CAAS;QAAU,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/D,KAAK,CAAC,IAAI,CAAC,KAAiB;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAErB,IAAI,EAAE,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF"}
|
package/dist/KeywordPolicy.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KeywordPolicy = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Reject events containing any of the strings in its content.
|
|
6
3
|
*
|
|
@@ -10,7 +7,7 @@ exports.KeywordPolicy = void 0;
|
|
|
10
7
|
* KeywordPolicy(['moo', 'oink', 'honk']);
|
|
11
8
|
* ```
|
|
12
9
|
*/
|
|
13
|
-
class KeywordPolicy {
|
|
10
|
+
export class KeywordPolicy {
|
|
14
11
|
words;
|
|
15
12
|
constructor(words) {
|
|
16
13
|
this.words = words;
|
|
@@ -25,5 +22,4 @@ class KeywordPolicy {
|
|
|
25
22
|
return ['OK', id, true, ''];
|
|
26
23
|
}
|
|
27
24
|
}
|
|
28
|
-
exports.KeywordPolicy = KeywordPolicy;
|
|
29
25
|
//# sourceMappingURL=KeywordPolicy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeywordPolicy.js","sourceRoot":"","sources":["../KeywordPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KeywordPolicy.js","sourceRoot":"","sources":["../KeywordPolicy.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,KAAuB;QAAvB,UAAK,GAAL,KAAK,CAAkB;IAAG,CAAC;IAE/C,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAc;QACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,2CAA2C,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF"}
|
package/dist/NoOpPolicy.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NoOpPolicy = void 0;
|
|
4
1
|
/** Basic policy to demonstrate how policies work. Accepts all events. */
|
|
5
|
-
class NoOpPolicy {
|
|
2
|
+
export class NoOpPolicy {
|
|
6
3
|
// deno-lint-ignore require-await
|
|
7
4
|
async call(event) {
|
|
8
5
|
return ['OK', event.id, true, ''];
|
|
9
6
|
}
|
|
10
7
|
}
|
|
11
|
-
exports.NoOpPolicy = NoOpPolicy;
|
|
12
8
|
//# sourceMappingURL=NoOpPolicy.js.map
|
package/dist/NoOpPolicy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoOpPolicy.js","sourceRoot":"","sources":["../NoOpPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NoOpPolicy.js","sourceRoot":"","sources":["../NoOpPolicy.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,MAAM,OAAO,UAAU;IACrB,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,KAAiB;QAC1B,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;CACF"}
|
package/dist/OpenAIPolicy.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OpenAIPolicy = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Passes event content to OpenAI and then rejects flagged events.
|
|
6
3
|
*
|
|
@@ -27,7 +24,7 @@ exports.OpenAIPolicy = void 0;
|
|
|
27
24
|
* });
|
|
28
25
|
* ```
|
|
29
26
|
*/
|
|
30
|
-
class OpenAIPolicy {
|
|
27
|
+
export class OpenAIPolicy {
|
|
31
28
|
opts;
|
|
32
29
|
constructor(opts) {
|
|
33
30
|
this.opts = opts;
|
|
@@ -58,5 +55,4 @@ class OpenAIPolicy {
|
|
|
58
55
|
return ['OK', event.id, true, ''];
|
|
59
56
|
}
|
|
60
57
|
}
|
|
61
|
-
exports.OpenAIPolicy = OpenAIPolicy;
|
|
62
58
|
//# sourceMappingURL=OpenAIPolicy.js.map
|
package/dist/OpenAIPolicy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIPolicy.js","sourceRoot":"","sources":["../OpenAIPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OpenAIPolicy.js","sourceRoot":"","sources":["../OpenAIPolicy.ts"],"names":[],"mappings":"AAkDA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,YAAY;IACH;IAApB,YAAoB,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;IAAG,CAAC;IAE9C,KAAK,CAAC,IAAI,CAAC,KAAiB,EAAE,MAAoB;QAChD,MAAM,EACJ,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAC5D,QAAQ,GAAG,uCAAuC,EAClD,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAClB,MAAM,GACP,GAAG,IAAI,CAAC,IAAI,CAAC;QAEd,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;oBACjC,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,eAAe,EAAE,UAAU,MAAM,EAAE;qBACpC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,KAAK,CAAC,OAAO;qBACrB,CAAC;oBACF,MAAM;iBACP,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAEjC,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,gCAAgC,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,kCAAkC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;CACF"}
|
package/dist/PipePolicy.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PipePolicy = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Processes events through multiple policies.
|
|
6
3
|
*
|
|
@@ -20,7 +17,7 @@ exports.PipePolicy = void 0;
|
|
|
20
17
|
* const [_, eventId, ok, reason] = await policy.call(event);
|
|
21
18
|
* ```
|
|
22
19
|
*/
|
|
23
|
-
class PipePolicy {
|
|
20
|
+
export class PipePolicy {
|
|
24
21
|
policies;
|
|
25
22
|
constructor(policies) {
|
|
26
23
|
this.policies = policies;
|
|
@@ -35,5 +32,4 @@ class PipePolicy {
|
|
|
35
32
|
return ['OK', event.id, true, ''];
|
|
36
33
|
}
|
|
37
34
|
}
|
|
38
|
-
exports.PipePolicy = PipePolicy;
|
|
39
35
|
//# sourceMappingURL=PipePolicy.js.map
|
package/dist/PipePolicy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PipePolicy.js","sourceRoot":"","sources":["../PipePolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PipePolicy.js","sourceRoot":"","sources":["../PipePolicy.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;IAAG,CAAC;IAE3C,KAAK,CAAC,IAAI,CAAC,KAAiB,EAAE,MAAoB;QAChD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAElE,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;CACF"}
|
package/dist/PowPolicy.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PowPolicy = void 0;
|
|
4
|
-
const nostr_tools_1 = require("nostr-tools");
|
|
1
|
+
import { nip13 } from 'nostr-tools';
|
|
5
2
|
/**
|
|
6
3
|
* Reject events which don't meet Proof-of-Work ([NIP-13](https://github.com/nostr-protocol/nips/blob/master/13.md)) criteria.
|
|
7
4
|
*
|
|
@@ -9,7 +6,7 @@ const nostr_tools_1 = require("nostr-tools");
|
|
|
9
6
|
* new PowPolicy({ difficulty: 20 });
|
|
10
7
|
* ```
|
|
11
8
|
*/
|
|
12
|
-
class PowPolicy {
|
|
9
|
+
export class PowPolicy {
|
|
13
10
|
opts;
|
|
14
11
|
constructor(opts = {}) {
|
|
15
12
|
this.opts = opts;
|
|
@@ -17,7 +14,7 @@ class PowPolicy {
|
|
|
17
14
|
// deno-lint-ignore require-await
|
|
18
15
|
async call({ id, tags }) {
|
|
19
16
|
const { difficulty = 1 } = this.opts;
|
|
20
|
-
const pow =
|
|
17
|
+
const pow = nip13.getPow(id);
|
|
21
18
|
const nonce = tags.find(([name]) => name === 'nonce');
|
|
22
19
|
if (pow >= difficulty && nonce && Number(nonce[2]) >= difficulty) {
|
|
23
20
|
return ['OK', id, true, ''];
|
|
@@ -32,5 +29,4 @@ class PowPolicy {
|
|
|
32
29
|
};
|
|
33
30
|
}
|
|
34
31
|
}
|
|
35
|
-
exports.PowPolicy = PowPolicy;
|
|
36
32
|
//# sourceMappingURL=PowPolicy.js.map
|
package/dist/PowPolicy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PowPolicy.js","sourceRoot":"","sources":["../PowPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PowPolicy.js","sourceRoot":"","sources":["../PowPolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAQpC;;;;;;GAMG;AACH,MAAM,OAAO,SAAS;IACA;IAApB,YAAoB,OAAsB,EAAE;QAAxB,SAAI,GAAJ,IAAI,CAAoB;IAAG,CAAC;IAEhD,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAc;QACjC,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAErC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAEtD,IAAI,GAAG,IAAI,UAAU,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;YACjE,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,+CAA+C,UAAU,GAAG,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,IAAI;QACN,OAAO;YACL,UAAU,EAAE;gBACV,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;aACzC;SACF,CAAC;IACJ,CAAC;CACF"}
|
package/dist/PubkeyBanPolicy.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PubkeyBanPolicy = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Ban events from individual pubkeys.
|
|
6
3
|
*
|
|
@@ -9,7 +6,7 @@ exports.PubkeyBanPolicy = void 0;
|
|
|
9
6
|
* new PubkeyBanPolicy(['e810fafa1e89cdf80cced8e013938e87e21b699b24c8570537be92aec4b12c18']);
|
|
10
7
|
* ```
|
|
11
8
|
*/
|
|
12
|
-
class PubkeyBanPolicy {
|
|
9
|
+
export class PubkeyBanPolicy {
|
|
13
10
|
pubkeys;
|
|
14
11
|
constructor(pubkeys) {
|
|
15
12
|
this.pubkeys = pubkeys;
|
|
@@ -24,5 +21,4 @@ class PubkeyBanPolicy {
|
|
|
24
21
|
return ['OK', id, true, ''];
|
|
25
22
|
}
|
|
26
23
|
}
|
|
27
|
-
exports.PubkeyBanPolicy = PubkeyBanPolicy;
|
|
28
24
|
//# sourceMappingURL=PubkeyBanPolicy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PubkeyBanPolicy.js","sourceRoot":"","sources":["../PubkeyBanPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PubkeyBanPolicy.js","sourceRoot":"","sources":["../PubkeyBanPolicy.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,eAAe;IACN;IAApB,YAAoB,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAEjD,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAc;QACnC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,2BAA2B,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF"}
|
package/dist/ReadOnlyPolicy.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReadOnlyPolicy = void 0;
|
|
4
1
|
/** This policy rejects all messages. */
|
|
5
|
-
class ReadOnlyPolicy {
|
|
2
|
+
export class ReadOnlyPolicy {
|
|
6
3
|
// deno-lint-ignore require-await
|
|
7
4
|
async call(event) {
|
|
8
5
|
return ['OK', event.id, false, 'blocked: the relay is read-only'];
|
|
9
6
|
}
|
|
10
7
|
}
|
|
11
|
-
exports.ReadOnlyPolicy = ReadOnlyPolicy;
|
|
12
8
|
//# sourceMappingURL=ReadOnlyPolicy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadOnlyPolicy.js","sourceRoot":"","sources":["../ReadOnlyPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReadOnlyPolicy.js","sourceRoot":"","sources":["../ReadOnlyPolicy.ts"],"names":[],"mappings":"AAEA,wCAAwC;AACxC,MAAM,OAAO,cAAc;IACzB,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,KAAiB;QAC1B,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,iCAAiC,CAAC,CAAC;IACpE,CAAC;CACF"}
|
package/dist/RegexPolicy.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RegexPolicy = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Reject events whose content matches the regex.
|
|
6
3
|
*
|
|
@@ -9,7 +6,7 @@ exports.RegexPolicy = void 0;
|
|
|
9
6
|
* new RegexPolicy(/(🟠|🔥|😳)ChtaGPT/i);
|
|
10
7
|
* ```
|
|
11
8
|
*/
|
|
12
|
-
class RegexPolicy {
|
|
9
|
+
export class RegexPolicy {
|
|
13
10
|
regex;
|
|
14
11
|
constructor(regex) {
|
|
15
12
|
this.regex = regex;
|
|
@@ -22,5 +19,4 @@ class RegexPolicy {
|
|
|
22
19
|
return ['OK', id, true, ''];
|
|
23
20
|
}
|
|
24
21
|
}
|
|
25
|
-
exports.RegexPolicy = RegexPolicy;
|
|
26
22
|
//# sourceMappingURL=RegexPolicy.js.map
|
package/dist/RegexPolicy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegexPolicy.js","sourceRoot":"","sources":["../RegexPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RegexPolicy.js","sourceRoot":"","sources":["../RegexPolicy.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAErC,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAc;QACpC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,2CAA2C,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF"}
|
package/dist/ReplyBotPolicy.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReplyBotPolicy = void 0;
|
|
4
1
|
/** Block events that reply too quickly to another event. */
|
|
5
|
-
class ReplyBotPolicy {
|
|
2
|
+
export class ReplyBotPolicy {
|
|
6
3
|
opts;
|
|
7
4
|
constructor(opts) {
|
|
8
5
|
this.opts = opts;
|
|
@@ -41,5 +38,4 @@ class ReplyBotPolicy {
|
|
|
41
38
|
return tags.find(this.isReplyTag) || tags.find(this.isRootTag) || tags.findLast(this.isLegacyReplyTag);
|
|
42
39
|
}
|
|
43
40
|
}
|
|
44
|
-
exports.ReplyBotPolicy = ReplyBotPolicy;
|
|
45
41
|
//# sourceMappingURL=ReplyBotPolicy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReplyBotPolicy.js","sourceRoot":"","sources":["../ReplyBotPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReplyBotPolicy.js","sourceRoot":"","sources":["../ReplyBotPolicy.ts"],"names":[],"mappings":"AAYA,4DAA4D;AAC5D,MAAM,OAAO,cAAc;IACL;IAApB,YAAoB,IAAwB;QAAxB,SAAI,GAAJ,IAAI,CAAoB;IAAG,CAAC;IAEhD,KAAK,CAAC,IAAI,CAAC,KAAiB,EAAE,MAAoB;QAChD,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAExD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAEpE,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;gBAE1E,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;oBACrD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;oBAE5F,IAAI,IAAI,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;wBAC/B,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,mCAAmC,CAAC,CAAC;oBACtE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,gCAAgC;IACxB,MAAM,CAAC,SAAS,CAAC,GAAa;QACpC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IAC7C,CAAC;IAED,iCAAiC;IACzB,MAAM,CAAC,UAAU,CAAC,GAAa;QACrC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;IAC9C,CAAC;IAED,iDAAiD;IACzC,MAAM,CAAC,gBAAgB,CAAC,GAAa;QAC3C,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,uHAAuH;IAC/G,MAAM,CAAC,YAAY,CAAC,IAAgB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzG,CAAC;CACF"}
|
package/dist/SizePolicy.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SizePolicy = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Reject events larger than a specified size in bytes.
|
|
6
3
|
*
|
|
@@ -11,7 +8,7 @@ exports.SizePolicy = void 0;
|
|
|
11
8
|
* new SizePolicy({ maxBytes: 15 * 1024 });
|
|
12
9
|
* ```
|
|
13
10
|
*/
|
|
14
|
-
class SizePolicy {
|
|
11
|
+
export class SizePolicy {
|
|
15
12
|
opts;
|
|
16
13
|
constructor(opts = {}) {
|
|
17
14
|
this.opts = opts;
|
|
@@ -27,5 +24,4 @@ class SizePolicy {
|
|
|
27
24
|
return ['OK', event.id, true, ''];
|
|
28
25
|
}
|
|
29
26
|
}
|
|
30
|
-
exports.SizePolicy = SizePolicy;
|
|
31
27
|
//# sourceMappingURL=SizePolicy.js.map
|
package/dist/SizePolicy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SizePolicy.js","sourceRoot":"","sources":["../SizePolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SizePolicy.js","sourceRoot":"","sources":["../SizePolicy.ts"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,OAAuB,EAAE;QAAzB,SAAI,GAAJ,IAAI,CAAqB;IAAG,CAAC;IAEjD,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,KAAiB;QAC1B,MAAM,EAAE,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAE1C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAEnD,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,6BAA6B,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;CACF"}
|
package/dist/WhitelistPolicy.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WhitelistPolicy = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Allows only the listed pubkeys to post. All other events are rejected.
|
|
6
3
|
*
|
|
@@ -9,7 +6,7 @@ exports.WhitelistPolicy = void 0;
|
|
|
9
6
|
* new WhitelistPolicy(['e810fafa1e89cdf80cced8e013938e87e21b699b24c8570537be92aec4b12c18']);
|
|
10
7
|
* ```
|
|
11
8
|
*/
|
|
12
|
-
class WhitelistPolicy {
|
|
9
|
+
export class WhitelistPolicy {
|
|
13
10
|
pubkeys;
|
|
14
11
|
constructor(pubkeys) {
|
|
15
12
|
this.pubkeys = pubkeys;
|
|
@@ -31,5 +28,4 @@ class WhitelistPolicy {
|
|
|
31
28
|
};
|
|
32
29
|
}
|
|
33
30
|
}
|
|
34
|
-
exports.WhitelistPolicy = WhitelistPolicy;
|
|
35
31
|
//# sourceMappingURL=WhitelistPolicy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WhitelistPolicy.js","sourceRoot":"","sources":["../WhitelistPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WhitelistPolicy.js","sourceRoot":"","sources":["../WhitelistPolicy.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,eAAe;IACN;IAApB,YAAoB,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAEjD,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAc;QACnC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,mDAAmD,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,IAAI;QACN,OAAO;YACL,UAAU,EAAE;gBACV,iBAAiB,EAAE,IAAI;aACxB;SACF,CAAC;IACJ,CAAC;CACF"}
|
package/dist/WoTPolicy.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WoTPolicy = void 0;
|
|
4
1
|
/** Whitelist pubkeys the given user follows, people those users follow, etc. up to `depth`. */
|
|
5
|
-
class WoTPolicy {
|
|
2
|
+
export class WoTPolicy {
|
|
6
3
|
opts;
|
|
7
4
|
pubkeys;
|
|
8
5
|
constructor(opts) {
|
|
@@ -38,5 +35,4 @@ class WoTPolicy {
|
|
|
38
35
|
return pubkeys;
|
|
39
36
|
}
|
|
40
37
|
}
|
|
41
|
-
exports.WoTPolicy = WoTPolicy;
|
|
42
38
|
//# sourceMappingURL=WoTPolicy.js.map
|
package/dist/WoTPolicy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WoTPolicy.js","sourceRoot":"","sources":["../WoTPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WoTPolicy.js","sourceRoot":"","sources":["../WoTPolicy.ts"],"names":[],"mappings":"AAiBA,+FAA+F;AAC/F,MAAM,OAAO,SAAS;IAGA;IAFZ,OAAO,CAAmC;IAElD,YAAoB,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAE3C,KAAK,CAAC,IAAI,CAAC,KAAiB;QAC1B,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;QAEnC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,mDAAmD,CAAC,CAAC;IACtF,CAAC;IAED,yDAAyD;IACjD,KAAK,CAAC,UAAU;QACtB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAEnC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YAE1E,OAAO,CAAC,KAAK,EAAE,CAAC;YAEhB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACvC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;wBACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,wBAAwB;4BACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACrB,CAAC;wBACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|