|
|
|
@ -16,6 +16,7 @@ const didRe = /^did:ssb:(ed25519):([0-9a-zA-Z._\-]+)$/;
|
|
|
|
|
const didUrlRe = /^(did:[^?#\/]*)(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;
|
|
|
|
|
const ssbRefRe = /^(@|%|&)([A-Za-z0-9\/+]{43}=)\.([\w\d]+)$/;
|
|
|
|
|
const ssbMsgIdRe = /^%[A-Za-z0-9\/+]{43}=\.[\w\d]+$/;
|
|
|
|
|
const dateTimeRe = /^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\dZ$/;
|
|
|
|
|
|
|
|
|
|
function parseDIDURL(uri) {
|
|
|
|
|
const m = didUrlRe.exec(uri);
|
|
|
|
@ -100,7 +101,9 @@ Resolver.prototype.resolveOrResolveRepresentation = function (did, resolutionOpt
|
|
|
|
|
gotLatestMessage();
|
|
|
|
|
});
|
|
|
|
|
} else if (versionTime) {
|
|
|
|
|
if (!dateTimeRe.test(versionTime)) return cb({error: 'invalidVersionTime'}, Null, {});
|
|
|
|
|
const versionDate = new Date(versionTime);
|
|
|
|
|
const timestampQuery = {$lte: versionDate.getTime() + 1000};
|
|
|
|
|
// 5
|
|
|
|
|
pull(
|
|
|
|
|
self.sbot.query.read({
|
|
|
|
@ -111,7 +114,7 @@ Resolver.prototype.resolveOrResolveRepresentation = function (did, resolutionOpt
|
|
|
|
|
value: {
|
|
|
|
|
author: feedId,
|
|
|
|
|
content: {type: 'did-document-update'},
|
|
|
|
|
timestamp: {$lte: versionDate.getTime()}
|
|
|
|
|
timestamp: timestampQuery
|
|
|
|
|
}
|
|
|
|
|
}}
|
|
|
|
|
]
|
|
|
|
|