Skip to main content

Crate alap

Crate alap 

Source
Expand description

Rust port of the Alap expression parser.

This is the server-side subset of alap/core (TypeScript). It covers expression parsing, config merging, regex validation, and URL sanitization.

§Grammar

query   = segment (',' segment)*
segment = term (op term)* refiner*
op      = '+' | '|' | '-'
term    = '(' segment ')' | atom
atom    = ITEM_ID | CLASS | DOM_REF | REGEX | PROTOCOL
refiner = '*' name (':' arg)* '*'

Re-exports§

pub use types::Config;
pub use types::LinkWithId;
pub use types::Macro;
pub use types::Protocol;
pub use types::ProtocolHandler;
pub use types::RegexValidation;
pub use types::Tier;

Modules§

link_provenance
Provenance tier stamping — Rust port of src/core/linkProvenance.ts.
sanitize_by_tier
Tier-aware sanitizers — Rust port of src/core/sanitizeByTier.ts.
types
Configuration types for the Alap expression parser.

Structs§

ExpressionParser
Resolves Alap expressions against a Config.
ValidateOptions
Options passed to validate_config_with_options.

Constants§

DEFAULT_SCHEMES
Default allowlist used by sanitize_url_with_schemes when the caller passes None. http and https only.
STRICT_SCHEMES
Allowlist used by sanitize_url_strict: http / https / mailto.

Functions§

cherry_pick
Resolves an expression and returns a map of id → sanitized link.
is_private_host
Check if a URL targets a private or reserved network address.
merge_configs
Shallow-merges multiple configs. Later configs win on collision.
resolve
Resolves an expression and returns matching links with sanitized URLs.
sanitize_link_urls
Single source of truth for URL-scheme sanitization on a link.
sanitize_url
Returns the URL unchanged if safe, or "about:blank" if it uses a dangerous scheme (javascript:, data:, vbscript:, blob:).
sanitize_url_strict
Strict URL sanitizer — http / https / mailto only (plus relative URLs and empty string). Use for links whose origin has not been verified as author-tier: protocol handler results, storage-loaded configs, etc.
sanitize_url_with_schemes
Sanitize url against a configurable scheme allowlist.
validate_config
Validate and sanitize a Config from an untrusted JSON Value, stamping each link with Tier::Author.
validate_config_with_options
Validate and sanitize a Config from an untrusted JSON Value, stamping each link with opts.provenance.
validate_regex
Checks whether a regex pattern compiles successfully.