tryDecodeExactSourceMetadata function
Decodes the final valid exact-source trailer, if present.
Implementation
EmbeddedExactSource? tryDecodeExactSourceMetadata(String text) {
final runes = text.runes.toList(growable: false);
if (runes.isEmpty || runes.last != _exactSourceEndTag) return null;
var start = runes.length - 2;
while (start >= 0 && runes[start] != _exactSourceStartTag) {
start -= 1;
}
if (start < 0) return null;
final payloadUnits = <int>[];
for (var i = start + 1; i < runes.length - 1; i++) {
final rune = runes[i];
if (rune < 0xE0020 || rune > 0xE007E) return null;
payloadUnits.add(rune - 0xE0000);
}
final payload = String.fromCharCodes(payloadUnits);
if (!payload.startsWith(_exactSourceMagic)) return null;
final body = payload.substring(_exactSourceMagic.length);
final renderedSplit = body.lastIndexOf(':');
if (renderedSplit <= 0 || renderedSplit == body.length - 1) return null;
final sourceSplit = body.lastIndexOf(':', renderedSplit - 1);
if (sourceSplit <= 0 || sourceSplit == renderedSplit - 1) return null;
final encoded = body.substring(0, sourceSplit);
final sourceChecksumText = body.substring(sourceSplit + 1, renderedSplit);
final renderedChecksumText = body.substring(renderedSplit + 1);
final checksumPattern = RegExp(r'^[0-9a-f]{8}$');
if (!checksumPattern.hasMatch(sourceChecksumText) ||
!checksumPattern.hasMatch(renderedChecksumText)) {
return null;
}
try {
final padded = encoded.padRight(
encoded.length + ((4 - encoded.length % 4) % 4),
'=',
);
final bytes = Uint8List.fromList(base64Url.decode(padded));
if (_fnv1a32(bytes).toRadixString(16).padLeft(8, '0') !=
sourceChecksumText) {
return null;
}
final source = _stringFromUtf16Le(bytes);
final visible = String.fromCharCodes(runes.sublist(0, start));
if (_fnv1a32(_stringToUtf16Le(visible)).toRadixString(16).padLeft(8, '0') !=
renderedChecksumText) {
return null;
}
return EmbeddedExactSource(
visibleText: visible,
originalSource: source,
);
} on FormatException {
return null;
} on StateError {
return null;
}
}