///|
pub fn version() -> String {
"0.2.0"
}
///|
pub fn package_name() -> String {
"ljlljl678/moonbit-deid"
}
///|
pub fn supported_modes() -> Array[String] {
["token", "preserve-length", "partial", "stable-hash"]
}
///|
pub fn supported_profiles() -> Array[String] {
["chinese-clinical", "english-clinical", "high-precision", "all-builtins"]
}
///|
pub fn supported_exports() -> Array[String] {
["text", "markdown", "json", "csv", "plain"]
}
///|
pub fn capabilities() -> Map[String, Bool] {
{
"regex_detection": true,
"external_entities": true,
"batch_processing": true,
"streaming_chunks": true,
"offset_mapping": true,
"audit_export": true,
"synthetic_benchmarks": true,
}
}
///|
pub fn api_surface_summary() -> String {
[
"package=\{package_name()}",
"version=\{version()}",
"rules=\{comprehensive_rules().length()}",
"modes=\{supported_modes().length()}",
"profiles=\{supported_profiles().length()}",
"exports=\{supported_exports().length()}",
].join("\n")
}
///|
pub fn redact_default(input : String) -> DeidResult raise DeidError {
redact_clinical_note(input)
}
///|
pub fn scan_default(input : String) -> Array[Finding] raise DeidError {
scan_clinical_note(input)
}
///|
pub fn audit_default(input : String) -> String raise DeidError {
audit_to_json(redact_default(input).audit)
}
///|
pub fn redacted_text(input : String) -> String raise DeidError {
redact_default(input).text
}
///|
pub fn redaction_offsets(input : String) -> Array[OffsetMap] raise DeidError {
redact_default(input).offsets
}
///|
pub fn redaction_findings(input : String) -> Array[Finding] raise DeidError {
redact_default(input).findings
}
///|
pub fn result_is_safe(input : String) -> Bool raise DeidError {
let result = redact_default(input)
output_contract_passes(input, result)
}
///|
pub fn capability_lines() -> Array[String] {
let result = []
for key, value in capabilities() {
result.push("\{key}=\{value}")
}
result.sort()
result
}
///|
pub fn rule_counts_report() -> String {
let counts = rule_count_by_kind(comprehensive_rules())
let lines = []
for key, value in counts {
lines.push("\{key}=\{value}")
}
lines.sort()
lines.join("\n")
}
///|
pub fn supported_targets() -> Array[String] {
["wasm-gc", "native", "js"]
}
///|
pub fn source_policy_notice() -> String {
"Rules and fixtures are deterministic engineering assets; review institution-specific policy before production use."
}