UNPKG

@knora/core

Version:
91 lines 9.73 kB
/** * Collection of useful utility functions. */ import { KnoraConstants } from './api/knora-constants'; // @dynamic var Utils = /** @class */ (function () { function Utils() { } /** * Given a Knora entity IRI, gets the ontology Iri. * * @param {string} entityIri an entity Iri. * @return {string} the ontology IRI */ Utils.getOntologyIriFromEntityIri = function (entityIri) { // split class Iri on "#" var segments = entityIri.split(KnoraConstants.PathSeparator); if (segments.length !== 2) console.error("Error: " + entityIri + " is not a valid entity IRI."); return segments[0]; }; /** * Converts a complex knora-api entity Iri to a knora-api simple entity Iri. * * @param {string} complexEntityIri * @returns {string} */ Utils.convertComplexKnoraApiEntityIritoSimple = function (complexEntityIri) { // split entity Iri on "#" var segments = complexEntityIri.split('v2' + KnoraConstants.PathSeparator); if (segments.length !== 2) console.error("Error: " + complexEntityIri + " is not a valid entity IRI."); // add 'simple' to base path return segments[0] + 'simple/v2' + KnoraConstants.PathSeparator + segments[1]; }; /** * A regex to validate Email address. * * @type {RegExp} */ Utils.RegexEmail = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i; /** * A regex to validate Username. * * @type {RegExp} */ Utils.RegexUsername = /^[a-zA-Z0-9]+$/; /** * A regex to validate URLs. * * @type {RegExp} */ Utils.RegexUrl = /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,6}(:[0-9]{1,5})?(\/.*)?$/i; /** * A regex to validate Passwords * * @type {RegExp} */ Utils.RegexPassword = /^(?=.*\d)(?=.*[a-zA-Z]).{8,}$/i; /** * A regex to validate Hexadecimal values * * @type {RegExp} */ Utils.RegexHex = /^[0-9A-Fa-f]+$/; /** * A regex to validate shortname in projects * * @type {RegExp} */ Utils.RegexShortname = /^[a-zA-Z]+\S*$/; /** * Lambda function eliminating duplicates in a collection to be passed to [[filter]]. * * @param elem element of an Array that is currently being looked at. * @param index current elements index. * @param self reference to the whole Array. * @returns {boolean} true if the same element does not already exist in the Array. */ Utils.filterOutDuplicates = function (elem, index, self) { // https://stackoverflow.com/questions/16747798/delete-duplicate-elements-from-an-array // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter?v=example // returns true if the element's index equals the index of the leftmost element // -> this means that there is no identical element before this index, hence it is not a duplicate // for all other elements, false is returned return index === self.indexOf(elem); }; return Utils; }()); export { Utils }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa25vcmEvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9kZWNsYXJhdGlvbnMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQsV0FBVztBQUNYO0lBQUE7SUFvR0EsQ0FBQztJQXBDRzs7Ozs7T0FLRztJQUNXLGlDQUEyQixHQUF6QyxVQUEwQyxTQUFpQjtRQUV2RCx5QkFBeUI7UUFDekIsSUFBTSxRQUFRLEdBQWEsU0FBUyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFekUsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVUsU0FBUyxnQ0FBNkIsQ0FBQyxDQUFDO1FBRTNGLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXZCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNXLDZDQUF1QyxHQUFyRCxVQUFzRCxnQkFBd0I7UUFFMUUsMEJBQTBCO1FBQzFCLElBQU0sUUFBUSxHQUFhLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZGLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFVLGdCQUFnQixnQ0FBNkIsQ0FBQyxDQUFDO1FBRWxHLDRCQUE0QjtRQUM1QixPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLEdBQUcsY0FBYyxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFbEYsQ0FBQztJQWhHRDs7OztPQUlHO0lBQ29CLGdCQUFVLEdBQUcsd0hBQXdILENBQUM7SUFFN0o7Ozs7T0FJRztJQUNvQixtQkFBYSxHQUFHLGdCQUFnQixDQUFDO0lBRXhEOzs7O09BSUc7SUFDb0IsY0FBUSxHQUFHLDBIQUEwSCxDQUFDO0lBRTdKOzs7O09BSUc7SUFDb0IsbUJBQWEsR0FBRyxnQ0FBZ0MsQ0FBQztJQUV4RTs7OztPQUlHO0lBQ29CLGNBQVEsR0FBRyxnQkFBZ0IsQ0FBQztJQUVuRDs7OztPQUlHO0lBQ29CLG9CQUFjLEdBQUcsZ0JBQWdCLENBQUM7SUFHekQ7Ozs7Ozs7T0FPRztJQUNXLHlCQUFtQixHQUFHLFVBQUMsSUFBSSxFQUFFLEtBQWEsRUFBRSxJQUFJO1FBRTFELHVGQUF1RjtRQUN2RiwwR0FBMEc7UUFFMUcsK0VBQStFO1FBQy9FLGtHQUFrRztRQUNsRyw0Q0FBNEM7UUFDNUMsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV4QyxDQUFDLENBQUE7SUFzQ0wsWUFBQztDQUFBLEFBcEdELElBb0dDO1NBcEdZLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbGxlY3Rpb24gb2YgdXNlZnVsIHV0aWxpdHkgZnVuY3Rpb25zLlxuICovXG5pbXBvcnQgeyBLbm9yYUNvbnN0YW50cyB9IGZyb20gJy4vYXBpL2tub3JhLWNvbnN0YW50cyc7XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgVXRpbHMge1xuICAgIC8qKlxuICAgICAqIEEgcmVnZXggdG8gdmFsaWRhdGUgRW1haWwgYWRkcmVzcy5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtSZWdFeHB9XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBSZWdleEVtYWlsID0gL14oKFtePD4oKVxcW1xcXVxcLiw7Olxcc0BcXFwiXSsoXFwuW148PigpXFxbXFxdXFwuLDs6XFxzQFxcXCJdKykqKXwoXFxcIi4rXFxcIikpQCgoW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXStcXC4pK1tePD4oKVtcXF1cXC4sOzpcXHNAXFxcIl17Mix9KSQvaTtcblxuICAgIC8qKlxuICAgICAqIEEgcmVnZXggdG8gdmFsaWRhdGUgVXNlcm5hbWUuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7UmVnRXhwfVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUmVnZXhVc2VybmFtZSA9IC9eW2EtekEtWjAtOV0rJC87XG5cbiAgICAvKipcbiAgICAgKiBBIHJlZ2V4IHRvIHZhbGlkYXRlIFVSTHMuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7UmVnRXhwfVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUmVnZXhVcmwgPSAvXihodHRwOlxcL1xcL3d3d1xcLnxodHRwczpcXC9cXC93d3dcXC58aHR0cDpcXC9cXC98aHR0cHM6XFwvXFwvKT9bYS16MC05XSsoW1xcLVxcLl17MX1bYS16MC05XSspKlxcLlthLXpdezIsNn0oOlswLTldezEsNX0pPyhcXC8uKik/JC9pO1xuXG4gICAgLyoqXG4gICAgICogQSByZWdleCB0byB2YWxpZGF0ZSBQYXNzd29yZHNcbiAgICAgKlxuICAgICAqIEB0eXBlIHtSZWdFeHB9XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBSZWdleFBhc3N3b3JkID0gL14oPz0uKlxcZCkoPz0uKlthLXpBLVpdKS57OCx9JC9pO1xuXG4gICAgLyoqXG4gICAgICogQSByZWdleCB0byB2YWxpZGF0ZSBIZXhhZGVjaW1hbCB2YWx1ZXNcbiAgICAgKlxuICAgICAqIEB0eXBlIHtSZWdFeHB9XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBSZWdleEhleCA9IC9eWzAtOUEtRmEtZl0rJC87XG5cbiAgICAvKipcbiAgICAgKiBBIHJlZ2V4IHRvIHZhbGlkYXRlIHNob3J0bmFtZSBpbiBwcm9qZWN0c1xuICAgICAqXG4gICAgICogQHR5cGUge1JlZ0V4cH1cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJlZ2V4U2hvcnRuYW1lID0gL15bYS16QS1aXStcXFMqJC87XG5cblxuICAgIC8qKlxuICAgICAqIExhbWJkYSBmdW5jdGlvbiBlbGltaW5hdGluZyBkdXBsaWNhdGVzIGluIGEgY29sbGVjdGlvbiB0byBiZSBwYXNzZWQgdG8gW1tmaWx0ZXJdXS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbGVtIGVsZW1lbnQgb2YgYW4gQXJyYXkgdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgbG9va2VkIGF0LlxuICAgICAqIEBwYXJhbSBpbmRleCBjdXJyZW50IGVsZW1lbnRzIGluZGV4LlxuICAgICAqIEBwYXJhbSBzZWxmIHJlZmVyZW5jZSB0byB0aGUgd2hvbGUgQXJyYXkuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIHNhbWUgZWxlbWVudCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0IGluIHRoZSBBcnJheS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZpbHRlck91dER1cGxpY2F0ZXMgPSAoZWxlbSwgaW5kZXg6IG51bWJlciwgc2VsZikgPT4ge1xuXG4gICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE2NzQ3Nzk4L2RlbGV0ZS1kdXBsaWNhdGUtZWxlbWVudHMtZnJvbS1hbi1hcnJheVxuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9maWx0ZXI/dj1leGFtcGxlXG5cbiAgICAgICAgLy8gcmV0dXJucyB0cnVlIGlmIHRoZSBlbGVtZW50J3MgaW5kZXggZXF1YWxzIHRoZSBpbmRleCBvZiB0aGUgbGVmdG1vc3QgZWxlbWVudFxuICAgICAgICAvLyAtPiB0aGlzIG1lYW5zIHRoYXQgdGhlcmUgaXMgbm8gaWRlbnRpY2FsIGVsZW1lbnQgYmVmb3JlIHRoaXMgaW5kZXgsIGhlbmNlIGl0IGlzIG5vdCBhIGR1cGxpY2F0ZVxuICAgICAgICAvLyBmb3IgYWxsIG90aGVyIGVsZW1lbnRzLCBmYWxzZSBpcyByZXR1cm5lZFxuICAgICAgICByZXR1cm4gaW5kZXggPT09IHNlbGYuaW5kZXhPZihlbGVtKTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdpdmVuIGEgS25vcmEgZW50aXR5IElSSSwgZ2V0cyB0aGUgb250b2xvZ3kgSXJpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGVudGl0eUlyaSBhbiBlbnRpdHkgSXJpLlxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gdGhlIG9udG9sb2d5IElSSVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0T250b2xvZ3lJcmlGcm9tRW50aXR5SXJpKGVudGl0eUlyaTogc3RyaW5nKSB7XG5cbiAgICAgICAgLy8gc3BsaXQgY2xhc3MgSXJpIG9uIFwiI1wiXG4gICAgICAgIGNvbnN0IHNlZ21lbnRzOiBzdHJpbmdbXSA9IGVudGl0eUlyaS5zcGxpdChLbm9yYUNvbnN0YW50cy5QYXRoU2VwYXJhdG9yKTtcblxuICAgICAgICBpZiAoc2VnbWVudHMubGVuZ3RoICE9PSAyKSBjb25zb2xlLmVycm9yKGBFcnJvcjogJHtlbnRpdHlJcml9IGlzIG5vdCBhIHZhbGlkIGVudGl0eSBJUkkuYCk7XG5cbiAgICAgICAgcmV0dXJuIHNlZ21lbnRzWzBdO1xuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYSBjb21wbGV4IGtub3JhLWFwaSBlbnRpdHkgSXJpIHRvIGEga25vcmEtYXBpIHNpbXBsZSBlbnRpdHkgSXJpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbXBsZXhFbnRpdHlJcmlcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY29udmVydENvbXBsZXhLbm9yYUFwaUVudGl0eUlyaXRvU2ltcGxlKGNvbXBsZXhFbnRpdHlJcmk6IHN0cmluZykge1xuXG4gICAgICAgIC8vIHNwbGl0IGVudGl0eSBJcmkgb24gXCIjXCJcbiAgICAgICAgY29uc3Qgc2VnbWVudHM6IHN0cmluZ1tdID0gY29tcGxleEVudGl0eUlyaS5zcGxpdCgndjInICsgS25vcmFDb25zdGFudHMuUGF0aFNlcGFyYXRvcik7XG5cbiAgICAgICAgaWYgKHNlZ21lbnRzLmxlbmd0aCAhPT0gMikgY29uc29sZS5lcnJvcihgRXJyb3I6ICR7Y29tcGxleEVudGl0eUlyaX0gaXMgbm90IGEgdmFsaWQgZW50aXR5IElSSS5gKTtcblxuICAgICAgICAvLyBhZGQgJ3NpbXBsZScgdG8gYmFzZSBwYXRoXG4gICAgICAgIHJldHVybiBzZWdtZW50c1swXSArICdzaW1wbGUvdjInICsgS25vcmFDb25zdGFudHMuUGF0aFNlcGFyYXRvciArIHNlZ21lbnRzWzFdO1xuXG4gICAgfVxuXG5cbn1cbiJdfQ==