alloy-ens-extender 0.1.1

A extension of alloy-ens. Adds more functionalities to the library.
Documentation
use regex::Regex;
use std::sync::LazyLock;

pub static NETWORK_REGEX: LazyLock<Regex> = LazyLock::new(|| {
    Regex::new(
        r"(?x)
        (?P<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?
        (?P<root>\/)?
        (?P<subpath>ipfs\/|ipns\/)?
        (?P<target>[\w\-.]+)
        (?P<subtarget>\/.*)?
    ",
    )
    .unwrap()
});

pub static IPFS_HASH_REGEX: LazyLock<Regex> = LazyLock::new(|| {
    Regex::new(
        r"(?x)
        ^
        (
            Qm[1-9A-HJ-NP-Za-km-z]{44,}
          | b[A-Za-z2-7]{58,}
          | B[A-Z2-7]{58,}
          | z[1-9A-HJ-NP-Za-km-z]{48,}
          | F[0-9A-F]{50,}
        )
        (\/(?P<target>[\w\-.]+))?
        (?P<subtarget>\/.*)?$
    ",
    )
    .unwrap()
});

pub static BASE64_REGEX: LazyLock<Regex> = LazyLock::new(|| {
    Regex::new(
        r#"
        ^data:([a-zA-Z\-/+]*);base64,([^\"].*)
        "#,
    )
    .unwrap()
});

pub static DATA_URI_REGEX: LazyLock<Regex> =
    LazyLock::new(|| Regex::new(r#"^data:([a-zA-Z\\-/+]*)?(;[a-zA-Z0-9].*?)?(,)"#).unwrap());

pub static ID_URI_REGEX: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"(?:0x)?\{id\}").unwrap());