#!/bin/sh //bin/true; exec deno run --unstable-kv -A "$0" "$@" import { AntiDuplicationPolicy, HellthreadPolicy, PipePolicy, readStdin, writeStdout, } from 'jsr:@nostrify/policies'; import { strfry } from 'jsr:@nostrify/strfry'; import { LdapConfig, LdapPolicy } from './ldap-policy.ts'; import { load } from "https://deno.land/std@0.224.0/dotenv/mod.ts"; const dirname = new URL('.', import.meta.url).pathname; await load({ envPath: `${dirname}/.env`, export: true }); const ldapConfig: LdapConfig = { url: Deno.env.get("LDAP_URL"), bindDN: Deno.env.get("LDAP_BIND_DN"), password: Deno.env.get("LDAP_PASSWORD"), searchDN: Deno.env.get("LDAP_SEARCH_DN"), whitelistPubkeys: Deno.env.get("WHITELIST_PUBKEYS")?.split(',') } const policy = new PipePolicy([ new HellthreadPolicy({ limit: 10 }), new AntiDuplicationPolicy({ kv: await Deno.openKv(), expireIn: 60000, minLength: 50 }), new LdapPolicy(ldapConfig) ]); await strfry(policy);