lib/WMURL.js
function WMURL_isValid(url,         // @arg URLString|URLStringArray - absolute/relative url(s)
                       canonical) { // @arg Boolean = false - TBD
                                    // @ret Boolean
                                    // @desc validate URL
//{@dev
    $valid(typeof url === "string" || Array.isArray(url), WMURL_isValid, "url");
//}@dev

    var urls = Array.isArray(url) ? url : [url];

    for (var i = 0, iz = urls.length; i < iz; ++i) {
        if ( !_parse(urls[i], true) ) {
            return false;
        }
    }
    return true;
}
function WMURL_isValid(url,         // @arg URLString|URLStringArray - absolute/relative url(s)
                       canonical) { // @arg Boolean = false - TBD
                                    // @ret Boolean
                                    // @desc validate URL
//{@dev
    $valid(typeof url === "string" || Array.isArray(url), WMURL_isValid, "url");
//}@dev

    var urls = Array.isArray(url) ? url : [url];

    for (var i = 0, iz = urls.length; i < iz; ++i) {
        if ( !_parse(urls[i], true) ) {
            return false;
        }
    }
    return true;
}
WMURL.addCacheBustingKeyword(url:URLString, keyword:String = "t"):URLString --- implements ------------------------------------------