Skip to main content

crepuscularity_webext/
lib.rs

1//! crepuscularity-webext — Browser extension capabilities with auto-detection
2//!
3//! This crate provides opt-in capability management for browser extensions,
4//! inspired by Equilibrium's `.eqp` capability system. Extensions declare
5//! capabilities in a manifest, and the CLI watches files to auto-detect
6//! and suggest missing capabilities.
7//!
8//! # Example Manifest (manifest.crex)
9//!
10//! ```toml
11//! [extension]
12//! name = "my-extension"
13//! version = "1.0.0"
14//!
15//! [capabilities]
16//! content-script = true
17//! storage = true
18//! messaging = true
19//! host-permissions = ["https://example.com/*"]
20//! ```
21
22pub mod extension_assets;
23
24mod api;
25mod capabilities;
26mod manifest;
27mod scanner;
28#[cfg(any(feature = "wasm", test))]
29mod wasm_schema;
30mod watcher;
31pub mod widgets;
32
33#[cfg(feature = "wasm")]
34pub mod wasm;
35
36pub use api::{
37    BrowserProgram, BrowserSource, BrowserStatement, JsExpr, MessagePayload, StorageArea,
38};
39pub use capabilities::{Capability, CapabilitySet};
40pub use manifest::{
41    ActionSpec, BackgroundSpec, CapabilitiesSection, ContentScriptEntry, ContentScriptSpec,
42    ExtensionInfo, ExtensionManifest, ManifestError, ManifestOptions, ManifestV3,
43    WebAccessibleResources,
44};
45pub use scanner::{scan_crepus_for_capabilities, CapabilityUsage};
46pub use watcher::{check_project_capabilities, CapabilityWatcher, WatchEvent};
47pub use widgets::{build_frame_doc, json_to_template};