secuprompt
Version:
Protect your AI from Prompt Injection
24 lines (23 loc) • 837 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.score_unicode = void 0;
const data_1 = require("../data");
const embedding_1 = require("../core/embedding");
const unicode_flags = (txt) => {
let flags = 0;
for (const ch of txt) {
const code = ch.codePointAt(0);
if (data_1.unicode_ranges.hidden_ranges.some(([s, e]) => code >= s && code <= e))
flags++;
else if (data_1.unicode_ranges.homoglyph_blocks.some(([s, e]) => code >= s && code <= e))
flags++;
if (flags >= 4)
break;
}
return flags;
};
const score_unicode = (txt) => {
const flags = unicode_flags(txt);
return { score: (0, embedding_1.normalize)(flags / 4), detail: flags ? [`unicode_flags_${flags}`] : [] };
};
exports.score_unicode = score_unicode;