From f9bc26e0a5a74fcec8a7e9f96050fd196da4c8c4 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Tue, 8 Nov 2016 12:33:13 +0100 Subject: [PATCH] feat(Utils): add `uri-tools`, in progress --- tests/resources.qrc | 1 + tests/ui/scripts/Utils/uri-tools.js | 104 ++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 tests/ui/scripts/Utils/uri-tools.js diff --git a/tests/resources.qrc b/tests/resources.qrc index 25a283df0..ac469fb3a 100644 --- a/tests/resources.qrc +++ b/tests/resources.qrc @@ -131,6 +131,7 @@ ui/modules/Linphone/Styles/TimelineStyle.qml ui/modules/Linphone/Timeline.qml ui/scripts/Utils/qmldir + ui/scripts/Utils/uri-tools.js ui/scripts/Utils/utils.js ui/views/App/Calls/Calls.qml ui/views/App/Calls/StartingCall.qml diff --git a/tests/ui/scripts/Utils/uri-tools.js b/tests/ui/scripts/Utils/uri-tools.js new file mode 100644 index 000000000..21ad76b5e --- /dev/null +++ b/tests/ui/scripts/Utils/uri-tools.js @@ -0,0 +1,104 @@ +// =================================================================== +// Library to deal with URI. +// =================================================================== + +// Level 0. ---------------------------------------------------------- + +var URI_PCT_ENCODED = '(%[[:xdigit:]]{2})' +var URI_PORT = '([\\d]*)' +var URI_SCHEME = '([[:alpha:]][[:alnum:]+\\-.]*)' +var URI_SUB_DELIMS = '[!$&\'()*+,;=]' +var URI_UNRESERVED = '[[:alnum:]\\-._~]' + +// Level 1. ---------------------------------------------------------- + +var URI_HOST = '(' + + '(' + + URI_UNRESERVED + + '|' + URI_PCT_ENCODED + + '|' + URI_SUB_DELIMS + + ')*' + +')' + +var URI_PCHAR = '(' + + URI_UNRESERVED + + '|' + URI_PCT_ENCODED + + '|' + URI_SUB_DELIMS + + '|' + '[:@]' + +')' + + +var URI_USERINFO = '(' + + '(' + + URI_UNRESERVED + + '|' + URI_PCT_ENCODED + + '|' + URI_SUB_DELIMS + + '|' + ':' + + ')*' + +')' + +// Level 2. ---------------------------------------------------------- + +var URI_AUTHORITY = '(' + + '(' + + URI_USERINFO + '@' + + ')?' + URI_HOST + '(' + + ':' + URI_PORT + + ')?' + +')' + +var URI_FRAGMENT = '(' + + '(' + + URI_PCHAR + + '|' + '[/?]' + + ')*' + +')' + + +var URI_QUERY = '(' + + '(' + + URI_PCHAR + + '|' + '[/?]' + + ')*' + +')' + +var URI_SEGMENT = '(' + URI_PCHAR + '*' + ')' +var URI_SEGMENT_NZ = '(' + URI_PCHAR + '+' + ')' + +// Level 3. ---------------------------------------------------------- + +var URI_PATH_ABEMPTY = '(' + '(' + '/' + URI_SEGMENT + ')*' + ')' + +var URI_PATH_ABSOLUTE = '(' + + '/' + '(' + + URI_SEGMENT_NZ + '(' + '/' + URI_SEGMENT + ')*' + + ')?' + +')' + +var URI_PATH_ROOTLESS = '(' + + URI_SEGMENT_NZ + '(' + '/' + URI_SEGMENT + ')*' + +')' + +// Level 4. ---------------------------------------------------------- + +var URI_HIER_PART = '(' + + '//' + URI_AUTHORITY + URI_PATH_ABEMPTY + + '|' + URI_PATH_ABSOLUTE + + '|' + URI_PATH_ROOTLESS + +')' + +// Level 5. ---------------------------------------------------------- + +// Regex to match URI. It respects the RFC 3986. +var URI_REGEX = '(' + + URI_SCHEME + ':' + URI_HIER_PART + '(' + + '\\?' + URI_QUERY + + ')?' + '(' + '#' + URI_FRAGMENT + ')?' + +')' + +// =================================================================== + +function test () { + console.log(URI_REGEX) +} +test()