From 07014b5621171f48dcfc89b33ab7e84e83d60461 Mon Sep 17 00:00:00 2001 From: Zane Rockenbaugh Date: Wed, 17 Jul 2024 09:22:05 -0500 Subject: [PATCH 1/3] Exported date/time component strings for re-use and updated documentation routine to capture. --- README.md | 7 ++++++- src/date-times.mjs | 22 ++++++++++++++-------- src/doc-extractor/doc-extractor.mjs | 4 +--- src/javascript.js | 2 +- src/web.js | 4 ++-- 5 files changed, 24 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 1cf6636..2cc16d6 100644 --- a/README.md +++ b/README.md @@ -72,10 +72,15 @@ const allColors = cssContent ### Date/Time - __`intlDateRE`__: Matches an international style 'YYYY/MM/DD' string. Accepts separators '.', '/', '-'. Will except 1 or 2 digits for month and day and 1-4 digits for the year. Also accepts a + or - before the year. Provides capture groups 1 (BCE/CE indicator), 2 (year), 3 (month), 4 (day). -- __`iso8601DateRE`__: Matches an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date time like '20240101T1212Z. Provides matching groups 1 (year), 3 (month), and 4 (day of month), 5 (week date), 6 (day of week date), and 7 (ordinal or Julian date), 8 (special instant end of day time), 10 (hour), 11 (decimal fraction of hour), 13 (minute), 14 (decimal fraction of minute), 15 (seconds), 16 (decimal fraction of a second), and 17 (timezone designation). (Groups 2, 11, and 13 are internal back references.) +- __`iso8601DateRE`__: Matches an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date time like '20240101T1212Z. Provides matching groups 1 (year), 3 (month), and 4 (day of month), 5 (week of year), 6 (day of week date), and 7 (ordinal or Julian date), 8 (special end of day time), 10 (hour), 11 (decimal fraction of hour), 13 (minute), 14 (decimal fraction of minute), 15 (seconds), 16 (decimal fraction of a second), and 17 (timezone designation). (Groups 2, 11, and 13 are internal back references.) - __`iso8601DateTimeRE`__: Matches an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) _requiring_ both date and time components. See [`iso8601DateRE`](#iso8601datere) for matching groups. +- __`iso8601DayREString`__: (string only) Matches the day designation portion of an ISO 8601 date+time. Provides matching groups 1 (year), 3 (month), and 4 (day of month), 5 (week of year), 6 (day of week date), and 7 (ordinal or Julian date). +- __`iso8601TimeREString`__: (string only) Matches the time designation portion of an ISO 8601 date+time. Provides matching groups 1 (special end of day time), 3 (hours), 3 (fraction of hour), 5 (minutes), 6 (fraction of minute), 7 (seconds), and 8 (fraction of seconds). - __`militaryTimeRE`__: Matches military time style 'HHMM' string. Provides capture groups 1 (special 2400 time), 2 (hour), and 3 (minutes). +- __`rfc2822DayREString`__: (string only) Matches the day designation portion of an RFC 2822 date+time. Provides matching groups 1 (day of week name), 2 (day of month), 3 (year). +- __`rfc2822TimeREString`__: (string only) Matches the time designation portion of an RFC 2822 date+time. Provides matching groups 1 (hour), 2 (minutes), 3 (seconds), and 4 (timezone). - __`timeRE`__: Matches a twelve hour time designation, requires AM or PM designation. Allows optional leading 0 in hour. Provides matching groups 1 (hour), 2 (minutes), 3 (seconds, without decimal fractions), 4 (decimal fraction seconds), and 5 (AM/PM indicator). +- __`timezoneREString`__: (string only) Matches a general timezone designation; compliant with RFC 2822 timezone portion. Provides matching groups 1 (timezone). - __`twentyFourHourTimeRE`__: Matches a twenty-four hour time designationAllows optional leading 0 in hour. Provides matching groups 1 (special 24:00 designation with optional seconds), 2 (hour), 3 (minutes), 4 (seconds, without decimal fractions), 5 (decimal fraction seconds). - __`usDateRE`__: Matches a US style 'MM/DD/YYYY' string. Accepts separators '.', '/', '-'. Will except 1 or 2 digits for month and day and 1-4 digits for the year. Also accepts a + or - before the year. Provides capture groups 1 (month), 2 (day of month), 3 (BCE/CE indicator), and 4 (year). diff --git a/src/date-times.mjs b/src/date-times.mjs index 4b60d65..84bb738 100644 --- a/src/date-times.mjs +++ b/src/date-times.mjs @@ -18,7 +18,8 @@ import { lockdownRE } from './lib/lockdown-re' // Started RE based on https://www.myintervals.com/blog/2009/05/20/iso-8601-date-validation-that-doesnt-suck/ // Made some corrections, rearranged capture groups. -const iso8601DayOnlyREString = '([+-]?\\d{4})(?:(-?)(?:(0[1-9]|1[0-2])(?:\\2([12]\\d|0[1-9]|3[01])?)?|W([0-4]\\d|5[0-3])\\2([1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3(?:[0-5]\\d|6[1-6])))?)?' +// Date/Time: (string only) Matches the day designation portion of an ISO 8601 date+time. Provides matching groups 1 (year), 3 (month), and 4 (day of month), 5 (week of year), 6 (day of week date), and 7 (ordinal or Julian date). +export const iso8601DayREString = '(?:([+-]?\\d{4})(?:(-?)(?:(0[1-9]|1[0-2])(?:\\2([12]\\d|0[1-9]|3[01])?)?|W([0-4]\\d|5[0-3])\\2([1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3(?:[0-5]\\d|6[1-6])))?)?)' const eod = '(24(?:?)00\\k00)' const frac = '(?:[.,](\\d+))' @@ -27,20 +28,25 @@ const min = `(?:([0-5]\\d)${frac}?)` const sec = `(?:([0-5]\\d|60)${frac}?)` const tz = '([zZ]|(?:[+-](?!00(?::?00)?)(?:[01]\\d|2[0-3])(?::?[0-5]\\d)?))' -const iso8601TimeOnlyREString = `(?:${eod}|${hr}(?:(?:?)${min}(?:\\k${sec})?)?)${tz}?` +// Date/Time: (string only) Matches the time designation portion of an ISO 8601 date+time. Provides matching groups 1 (special end of day time), 3 (hours), 3 (fraction of hour), 5 (minutes), 6 (fraction of minute), 7 (seconds), and 8 (fraction of seconds). +export const iso8601TimeREString = `(?:(?:${eod}|${hr}(?:(?:?)${min}(?:\\k${sec})?)?)${tz}?)` -export const iso8601DateREString = `${iso8601DayOnlyREString}(?:T${iso8601TimeOnlyREString})?` -// Date/Time: Matches an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date time like '20240101T1212Z. Provides matching groups 1 (year), 3 (month), and 4 (day of month), 5 (week date), 6 (day of week date), and 7 (ordinal or Julian date), 8 (special instant end of day time), 10 (hour), 11 (decimal fraction of hour), 13 (minute), 14 (decimal fraction of minute), 15 (seconds), 16 (decimal fraction of a second), and 17 (timezone designation). (Groups 2, 11, and 13 are internal back references.) +export const iso8601DateREString = `${iso8601DayREString}(?:T${iso8601TimeREString})?` +// Date/Time: Matches an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date time like '20240101T1212Z. Provides matching groups 1 (year), 3 (month), and 4 (day of month), 5 (week of year), 6 (day of week date), and 7 (ordinal or Julian date), 8 (special end of day time), 10 (hour), 11 (decimal fraction of hour), 13 (minute), 14 (decimal fraction of minute), 15 (seconds), 16 (decimal fraction of a second), and 17 (timezone designation). (Groups 2, 11, and 13 are internal back references.) export const iso8601DateRE = lockdownRE(iso8601DateREString) -export const iso8601DateTimeREString = `${iso8601DayOnlyREString}T${iso8601TimeOnlyREString}` +export const iso8601DateTimeREString = `${iso8601DayREString}T${iso8601TimeREString}` // Date/Time: Matches an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) _requiring_ both date and time components. See [`iso8601DateRE`](#iso8601datere) for matching groups. export const iso8601DateTimeRE = lockdownRE(iso8601DateTimeREString) -const rfc2822DayOnlyREString = '(?:(Sun|Mon|Tue|Wed|Thu|Fri|Sat),\\s+)?(0[1-9]|[1-2]?[0-9]|3[01])\\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s+(\\d{2,4})' -const rfc2822TimeOnlyREString = '(2[0-3]|[0-1][0-9]):([0-5][0-9])(?::(60|[0-5][0-9]))?(?:\\s+([+-][0-9]{2}[0-5][0-9]|(?:UT|GMT|[A-Z]{3,5}|[A-IK-Z])))?' +// Date/Time: (string only) Matches the day designation portion of an RFC 2822 date+time. Provides matching groups 1 (day of week name), 2 (day of month), 3 (year). +export const rfc2822DayREString = '(?:(?:(Sun|Mon|Tue|Wed|Thu|Fri|Sat),\\s+)?(0[1-9]|[1-2]?[0-9]|3[01])\\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s+(\\d{2,4}))' +// Date/Time: (string only) Matches a general timezone designation; compliant with RFC 2822 timezone portion. Provides matching groups 1 (timezone). +export const timezoneREString = '([+-][0-9]{2}[0-5][0-9]|(?:UT|GMT|[A-Z]{3,5}|[A-IK-Z]))' +// Date/Time: (string only) Matches the time designation portion of an RFC 2822 date+time. Provides matching groups 1 (hour), 2 (minutes), 3 (seconds), and 4 (timezone). +export const rfc2822TimeREString = `(?:(2[0-3]|[0-1][0-9]):([0-5][0-9])(?::(60|[0-5][0-9]))?(?:\\s+${timezoneREString})?)` -export const rfc2822DateREString = `${rfc2822DayOnlyREString}\\s+${rfc2822TimeOnlyREString}` +export const rfc2822DateREString = `${rfc2822DayREString}\\s+${rfc2822TimeREString}` // Date/Tmie: Matches an [RFC 2822](https://datatracker.ietf.org/doc/html/rfc2822#section-3.3) style date like 'Mon, 6 Jan 1992 12:12 UTC'. Provides matching groups 1 (day of week), 2 (day of month), 3 (month), and 4 (year), 5 (hour), 6 (min), 7 (second), and 8 (time zone). export const rfc2822DateRE = lockdownRE(rfc2822DateREString) diff --git a/src/doc-extractor/doc-extractor.mjs b/src/doc-extractor/doc-extractor.mjs index 44d85ab..fdc3171 100644 --- a/src/doc-extractor/doc-extractor.mjs +++ b/src/doc-extractor/doc-extractor.mjs @@ -21,7 +21,7 @@ const addData = ({ description, reName, section }) => { const contents = await fs.readFile(fsPath.resolve(__dirname, '..', fileName), { encoding : 'utf8' }) const lines = contents.split('\n') lines.forEach((l, i, a) => { - const exportMatch = l.match(/^\s*export\s+const +([a-zA-Z0-9]+RE(?=[ =]))/) + const exportMatch = l.match(/^\s*export\s+const +([a-zA-Z0-9]+RE(?:String)?(?=[ =]))/) if (exportMatch !== null) { const [, reName] = exportMatch const prevLine = a[i - 1] @@ -29,8 +29,6 @@ const addData = ({ description, reName, section }) => { if (commentMatch !== null) { const [, section, description] = commentMatch addData({ description, reName, section }) - } else { - addData({ reName, section : 'Uncategorized' }) } } }) diff --git a/src/javascript.js b/src/javascript.js index cde52f3..699eab8 100644 --- a/src/javascript.js +++ b/src/javascript.js @@ -20,7 +20,7 @@ export const jsReservedWordREString = '(?:do|if|in|for|let|new|try|var|case|else // JavaScript: Matches a JS resereved word. export const jsReservedWordRE = lockdownRE(jsReservedWordREString) -// credit to: https://stackoverflow.com/questions/1661197/what-characters-are-valid-for-javascript-variable-names +/* credit to: https://stackoverflow.com/questions/1661197/what-characters-are-valid-for-javascript-variable-names */ export const jsVariableREString = '(?!(?:(?:^| |;)do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)(?: |;|$))[$A-Z_a-z\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc][$A-Z_a-z\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc0-9\\u0300-\\u036f\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08e4-\\u08fe\\u0900-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c01-\\u0c03\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c82\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d02\\u0d03\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19b0-\\u19c0\\u19c8\\u19c9\\u19d0-\\u19d9\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf2-\\u1cf4\\u1dc0-\\u1de6\\u1dfc-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua880\\ua881\\ua8b4-\\ua8c4\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua900-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f]*' // JavaScript: Matches a valid JS variable name. export const jsVariableRE = lockdownRE(jsVariableREString) diff --git a/src/web.js b/src/web.js index 3ea03ff..229efeb 100644 --- a/src/web.js +++ b/src/web.js @@ -27,8 +27,8 @@ export const ipFormatREString = `(?:${ipTuple}\\.){3}${ipTuple}` // Web: Matches a string in IP address format. Use 'ipRE' to match actually valid IP addresses. export const ipFormatRE = lockdownRE(ipFormatREString) -// Base RE cribbed from: https://github.com/chriso/validator.js via https://stackoverflow.com/a/22648406/929494 -// Annotations cribbed from https://gist.github.com/dperini/729294 +/* Base RE cribbed from: https://github.com/chriso/validator.js via https://stackoverflow.com/a/22648406/929494 + Annotations cribbed from https://gist.github.com/dperini/729294 */ export const urlREString = // protocol ID '(?!mailto:)(?:(?:http|https|ftp)://)' + From eb5e53cc597f62754aa5ee669b8901b2fb29cdd2 Mon Sep 17 00:00:00 2001 From: Zane Rockenbaugh Date: Wed, 17 Jul 2024 09:22:26 -0500 Subject: [PATCH 2/3] Save QA files. --- qa/coverage/base.css | 224 +++++++ qa/coverage/block-navigation.js | 87 +++ qa/coverage/clover.xml | 198 +++++++ qa/coverage/coverage-final.json | 13 + qa/coverage/favicon.png | Bin 0 -> 445 bytes qa/coverage/index.html | 131 +++++ qa/coverage/prettify.css | 1 + qa/coverage/prettify.js | 2 + qa/coverage/sort-arrow-sprite.png | Bin 0 -> 138 bytes qa/coverage/sorter.js | 196 +++++++ qa/coverage/src/aws.js.html | 169 ++++++ qa/coverage/src/contacts.js.html | 160 +++++ qa/coverage/src/css.js.html | 409 +++++++++++++ qa/coverage/src/date-times.mjs.html | 304 ++++++++++ qa/coverage/src/ids.js.html | 148 +++++ qa/coverage/src/index.html | 236 ++++++++ qa/coverage/src/javascript.js.html | 163 ++++++ qa/coverage/src/lib/css-color-data.js.html | 610 ++++++++++++++++++++ qa/coverage/src/lib/index.html | 146 +++++ qa/coverage/src/lib/lockdown-re.js.html | 136 +++++ qa/coverage/src/lib/numbers-strings.js.html | 178 ++++++ qa/coverage/src/npm.js.html | 148 +++++ qa/coverage/src/numbers.js.html | 271 +++++++++ qa/coverage/src/web.js.html | 286 +++++++++ qa/lint.txt | 1 + qa/unit-test.txt | 35 ++ 26 files changed, 4252 insertions(+) create mode 100644 qa/coverage/base.css create mode 100644 qa/coverage/block-navigation.js create mode 100644 qa/coverage/clover.xml create mode 100644 qa/coverage/coverage-final.json create mode 100644 qa/coverage/favicon.png create mode 100644 qa/coverage/index.html create mode 100644 qa/coverage/prettify.css create mode 100644 qa/coverage/prettify.js create mode 100644 qa/coverage/sort-arrow-sprite.png create mode 100644 qa/coverage/sorter.js create mode 100644 qa/coverage/src/aws.js.html create mode 100644 qa/coverage/src/contacts.js.html create mode 100644 qa/coverage/src/css.js.html create mode 100644 qa/coverage/src/date-times.mjs.html create mode 100644 qa/coverage/src/ids.js.html create mode 100644 qa/coverage/src/index.html create mode 100644 qa/coverage/src/javascript.js.html create mode 100644 qa/coverage/src/lib/css-color-data.js.html create mode 100644 qa/coverage/src/lib/index.html create mode 100644 qa/coverage/src/lib/lockdown-re.js.html create mode 100644 qa/coverage/src/lib/numbers-strings.js.html create mode 100644 qa/coverage/src/npm.js.html create mode 100644 qa/coverage/src/numbers.js.html create mode 100644 qa/coverage/src/web.js.html create mode 100644 qa/lint.txt create mode 100644 qa/unit-test.txt diff --git a/qa/coverage/base.css b/qa/coverage/base.css new file mode 100644 index 0000000..f418035 --- /dev/null +++ b/qa/coverage/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/qa/coverage/block-navigation.js b/qa/coverage/block-navigation.js new file mode 100644 index 0000000..cc12130 --- /dev/null +++ b/qa/coverage/block-navigation.js @@ -0,0 +1,87 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/qa/coverage/clover.xml b/qa/coverage/clover.xml new file mode 100644 index 0000000..c82fd0d --- /dev/null +++ b/qa/coverage/clover.xml @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/qa/coverage/coverage-final.json b/qa/coverage/coverage-final.json new file mode 100644 index 0000000..8ecd767 --- /dev/null +++ b/qa/coverage/coverage-final.json @@ -0,0 +1,13 @@ +{"/Users/zane/playground/regex-repo/src/aws.js": {"path":"/Users/zane/playground/regex-repo/src/aws.js","statementMap":{"0":{"start":{"line":16,"column":0},"end":{"line":16,"column":null}},"1":{"start":{"line":18,"column":27},"end":{"line":18,"column":90}},"2":{"start":{"line":21,"column":38},"end":{"line":21,"column":96}},"3":{"start":{"line":23,"column":32},"end":{"line":23,"column":72}},"4":{"start":{"line":25,"column":36},"end":{"line":25,"column":98}},"5":{"start":{"line":28,"column":30},"end":{"line":28,"column":68}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1},"f":{},"b":{}} +,"/Users/zane/playground/regex-repo/src/contacts.js": {"path":"/Users/zane/playground/regex-repo/src/contacts.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":19,"column":28},"end":{"line":19,"column":95}},"2":{"start":{"line":21,"column":22},"end":{"line":21,"column":52}},"3":{"start":{"line":23,"column":28},"end":{"line":23,"column":55}},"4":{"start":{"line":25,"column":22},"end":{"line":25,"column":52}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1},"f":{},"b":{}} +,"/Users/zane/playground/regex-repo/src/css.js": {"path":"/Users/zane/playground/regex-repo/src/css.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":18,"column":0},"end":{"line":18,"column":null}},"2":{"start":{"line":19,"column":0},"end":{"line":19,"column":null}},"3":{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},"4":{"start":{"line":29,"column":36},"end":{"line":29,"column":73}},"5":{"start":{"line":31,"column":30},"end":{"line":31,"column":68}},"6":{"start":{"line":34,"column":34},"end":{"line":34,"column":88}},"7":{"start":{"line":36,"column":28},"end":{"line":36,"column":64}},"8":{"start":{"line":38,"column":34},"end":{"line":38,"column":91}},"9":{"start":{"line":40,"column":28},"end":{"line":40,"column":64}},"10":{"start":{"line":42,"column":34},"end":{"line":42,"column":91}},"11":{"start":{"line":44,"column":28},"end":{"line":44,"column":64}},"12":{"start":{"line":46,"column":34},"end":{"line":46,"column":91}},"13":{"start":{"line":48,"column":28},"end":{"line":48,"column":64}},"14":{"start":{"line":50,"column":33},"end":{"line":50,"column":89}},"15":{"start":{"line":52,"column":27},"end":{"line":52,"column":62}},"16":{"start":{"line":54,"column":18},"end":{"line":54,"column":62}},"17":{"start":{"line":55,"column":20},"end":{"line":55,"column":82}},"18":{"start":{"line":56,"column":21},"end":{"line":56,"column":97}},"19":{"start":{"line":57,"column":21},"end":{"line":57,"column":80}},"20":{"start":{"line":58,"column":22},"end":{"line":58,"column":88}},"21":{"start":{"line":60,"column":28},"end":{"line":60,"column":80}},"22":{"start":{"line":62,"column":22},"end":{"line":62,"column":52}},"23":{"start":{"line":64,"column":29},"end":{"line":64,"column":83}},"24":{"start":{"line":66,"column":23},"end":{"line":66,"column":54}},"25":{"start":{"line":71,"column":23},"end":{"line":71,"column":72}},"26":{"start":{"line":72,"column":23},"end":{"line":72,"column":114}},"27":{"start":{"line":73,"column":24},"end":{"line":73,"column":129}},"28":{"start":{"line":74,"column":24},"end":{"line":74,"column":110}},"29":{"start":{"line":75,"column":25},"end":{"line":75,"column":125}},"30":{"start":{"line":77,"column":24},"end":{"line":77,"column":117}},"31":{"start":{"line":79,"column":18},"end":{"line":79,"column":44}},"32":{"start":{"line":81,"column":21},"end":{"line":81,"column":84}},"33":{"start":{"line":82,"column":17},"end":{"line":82,"column":78}},"34":{"start":{"line":84,"column":25},"end":{"line":84,"column":60}},"35":{"start":{"line":86,"column":19},"end":{"line":86,"column":46}},"36":{"start":{"line":88,"column":24},"end":{"line":89,"column":97}},"37":{"start":{"line":91,"column":18},"end":{"line":91,"column":44}},"38":{"start":{"line":93,"column":30},"end":{"line":98,"column":5}},"39":{"start":{"line":100,"column":24},"end":{"line":100,"column":56}},"40":{"start":{"line":102,"column":29},"end":{"line":106,"column":5}},"41":{"start":{"line":108,"column":23},"end":{"line":108,"column":54}}},"fnMap":{"0":{"name":"_getRequireWildcardCache","decl":{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},"loc":{"start":{"line":27,"column":30},"end":{"line":27,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},"type":"if","locations":[{"start":{"line":27,"column":30},"end":{"line":27,"column":null}}]},"1":{"loc":{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},"type":"cond-expr","locations":[{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},{"start":{"line":27,"column":30},"end":{"line":27,"column":null}}]},"2":{"loc":{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},"type":"binary-expr","locations":[{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},{"start":{"line":27,"column":30},"end":{"line":27,"column":null}}]}},"s":{"0":1,"1":1,"2":1,"3":2,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1},"f":{"0":1},"b":{"0":[1],"1":[0,0],"2":[1,1,1]}} +,"/Users/zane/playground/regex-repo/src/date-times.mjs": {"path":"/Users/zane/playground/regex-repo/src/date-times.mjs","statementMap":{"0":{"start":{"line":16,"column":0},"end":{"line":16,"column":null}},"1":{"start":{"line":22,"column":31},"end":{"line":22,"column":195}},"2":{"start":{"line":24,"column":12},"end":{"line":24,"column":46}},"3":{"start":{"line":25,"column":13},"end":{"line":25,"column":29}},"4":{"start":{"line":26,"column":12},"end":{"line":26,"column":41}},"5":{"start":{"line":27,"column":13},"end":{"line":27,"column":36}},"6":{"start":{"line":28,"column":13},"end":{"line":28,"column":39}},"7":{"start":{"line":29,"column":11},"end":{"line":29,"column":76}},"8":{"start":{"line":32,"column":32},"end":{"line":32,"column":111}},"9":{"start":{"line":34,"column":32},"end":{"line":34,"column":86}},"10":{"start":{"line":36,"column":26},"end":{"line":36,"column":60}},"11":{"start":{"line":38,"column":36},"end":{"line":38,"column":85}},"12":{"start":{"line":40,"column":30},"end":{"line":40,"column":68}},"13":{"start":{"line":43,"column":31},"end":{"line":43,"column":172}},"14":{"start":{"line":45,"column":29},"end":{"line":45,"column":89}},"15":{"start":{"line":47,"column":32},"end":{"line":47,"column":122}},"16":{"start":{"line":49,"column":32},"end":{"line":49,"column":84}},"17":{"start":{"line":51,"column":26},"end":{"line":51,"column":60}},"18":{"start":{"line":53,"column":13},"end":{"line":53,"column":20}},"19":{"start":{"line":55,"column":27},"end":{"line":55,"column":105}},"20":{"start":{"line":57,"column":21},"end":{"line":57,"column":50}},"21":{"start":{"line":59,"column":29},"end":{"line":59,"column":107}},"22":{"start":{"line":61,"column":23},"end":{"line":61,"column":54}},"23":{"start":{"line":63,"column":33},"end":{"line":63,"column":78}},"24":{"start":{"line":65,"column":27},"end":{"line":65,"column":62}},"25":{"start":{"line":67,"column":25},"end":{"line":67,"column":112}},"26":{"start":{"line":69,"column":19},"end":{"line":69,"column":46}},"27":{"start":{"line":71,"column":39},"end":{"line":71,"column":133}},"28":{"start":{"line":73,"column":33},"end":{"line":73,"column":74}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1},"f":{},"b":{}} +,"/Users/zane/playground/regex-repo/src/ids.js": {"path":"/Users/zane/playground/regex-repo/src/ids.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":19,"column":25},"end":{"line":19,"column":118}},"2":{"start":{"line":21,"column":19},"end":{"line":21,"column":46}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1},"f":{},"b":{}} +,"/Users/zane/playground/regex-repo/src/javascript.js": {"path":"/Users/zane/playground/regex-repo/src/javascript.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":19,"column":35},"end":{"line":19,"column":346}},"2":{"start":{"line":21,"column":29},"end":{"line":21,"column":66}},"3":{"start":{"line":24,"column":31},"end":{"line":24,"column":12997}},"4":{"start":{"line":26,"column":25},"end":{"line":26,"column":58}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1},"f":{},"b":{}} +,"/Users/zane/playground/regex-repo/src/npm.js": {"path":"/Users/zane/playground/regex-repo/src/npm.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":19,"column":35},"end":{"line":19,"column":93}},"2":{"start":{"line":21,"column":29},"end":{"line":21,"column":66}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1},"f":{},"b":{}} +,"/Users/zane/playground/regex-repo/src/numbers.js": {"path":"/Users/zane/playground/regex-repo/src/numbers.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":18,"column":0},"end":{"line":18,"column":46}},"2":{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},"3":{"start":{"line":20,"column":28},"end":{"line":20,"column":50}},"4":{"start":{"line":22,"column":22},"end":{"line":22,"column":52}},"5":{"start":{"line":24,"column":31},"end":{"line":24,"column":55}},"6":{"start":{"line":26,"column":25},"end":{"line":26,"column":58}},"7":{"start":{"line":28,"column":36},"end":{"line":28,"column":65}},"8":{"start":{"line":30,"column":30},"end":{"line":30,"column":68}},"9":{"start":{"line":32,"column":26},"end":{"line":32,"column":45}},"10":{"start":{"line":34,"column":20},"end":{"line":34,"column":48}},"11":{"start":{"line":36,"column":33},"end":{"line":36,"column":59}},"12":{"start":{"line":38,"column":27},"end":{"line":38,"column":62}},"13":{"start":{"line":40,"column":37},"end":{"line":40,"column":67}},"14":{"start":{"line":42,"column":31},"end":{"line":42,"column":70}},"15":{"start":{"line":44,"column":42},"end":{"line":44,"column":77}},"16":{"start":{"line":46,"column":36},"end":{"line":46,"column":80}},"17":{"start":{"line":48,"column":30},"end":{"line":48,"column":53}},"18":{"start":{"line":50,"column":24},"end":{"line":50,"column":56}},"19":{"start":{"line":52,"column":35},"end":{"line":52,"column":63}},"20":{"start":{"line":54,"column":29},"end":{"line":54,"column":66}},"21":{"start":{"line":56,"column":30},"end":{"line":56,"column":53}},"22":{"start":{"line":58,"column":24},"end":{"line":58,"column":56}},"23":{"start":{"line":60,"column":35},"end":{"line":60,"column":63}},"24":{"start":{"line":62,"column":29},"end":{"line":62,"column":66}}},"fnMap":{"0":{"name":"_getRequireWildcardCache","decl":{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},"loc":{"start":{"line":18,"column":46},"end":{"line":18,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},"type":"if","locations":[{"start":{"line":18,"column":46},"end":{"line":18,"column":null}}]},"1":{"loc":{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},"type":"cond-expr","locations":[{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},{"start":{"line":18,"column":46},"end":{"line":18,"column":null}}]},"2":{"loc":{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},"type":"binary-expr","locations":[{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},{"start":{"line":18,"column":46},"end":{"line":18,"column":null}}]}},"s":{"0":1,"1":1,"2":2,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1},"f":{"0":1},"b":{"0":[1],"1":[0,0],"2":[1,1,1]}} +,"/Users/zane/playground/regex-repo/src/web.js": {"path":"/Users/zane/playground/regex-repo/src/web.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":19,"column":23},"end":{"line":21,"column":50}},"2":{"start":{"line":23,"column":17},"end":{"line":23,"column":42}},"3":{"start":{"line":25,"column":16},"end":{"line":25,"column":52}},"4":{"start":{"line":26,"column":29},"end":{"line":26,"column":64}},"5":{"start":{"line":28,"column":23},"end":{"line":28,"column":54}},"6":{"start":{"line":32,"column":24},"end":{"line":43,"column":209}},"7":{"start":{"line":45,"column":18},"end":{"line":45,"column":49}},"8":{"start":{"line":47,"column":28},"end":{"line":47,"column":47}},"9":{"start":{"line":49,"column":22},"end":{"line":49,"column":52}},"10":{"start":{"line":51,"column":31},"end":{"line":51,"column":230}},"11":{"start":{"line":53,"column":25},"end":{"line":53,"column":58}},"12":{"start":{"line":55,"column":30},"end":{"line":55,"column":70}},"13":{"start":{"line":57,"column":24},"end":{"line":57,"column":56}},"14":{"start":{"line":59,"column":33},"end":{"line":59,"column":113}},"15":{"start":{"line":61,"column":27},"end":{"line":61,"column":62}},"16":{"start":{"line":65,"column":26},"end":{"line":65,"column":239}},"17":{"start":{"line":67,"column":20},"end":{"line":67,"column":48}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2},"f":{},"b":{}} +,"/Users/zane/playground/regex-repo/src/lib/css-color-data.js": {"path":"/Users/zane/playground/regex-repo/src/lib/css-color-data.js","statementMap":{"0":{"start":{"line":17,"column":26},"end":{"line":34,"column":1}},"1":{"start":{"line":36,"column":26},"end":{"line":38,"column":17}},"2":{"start":{"line":40,"column":26},"end":{"line":171,"column":17}},"3":{"start":{"line":173,"column":25},"end":{"line":175,"column":17}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1},"f":{},"b":{}} +,"/Users/zane/playground/regex-repo/src/lib/lockdown-re.js": {"path":"/Users/zane/playground/regex-repo/src/lib/lockdown-re.js","statementMap":{"0":{"start":{"line":17,"column":26},"end":{"line":17,"column":71}},"1":{"start":{"line":17,"column":42},"end":{"line":17,"column":71}},"2":{"start":{"line":17,"column":71},"end":{"line":17,"column":null}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":17,"column":26},"end":{"line":17,"column":27}},"loc":{"start":{"line":17,"column":42},"end":{"line":17,"column":71}}}},"branchMap":{},"s":{"0":9,"1":54,"2":9},"f":{"0":54},"b":{}} +,"/Users/zane/playground/regex-repo/src/lib/numbers-strings.js": {"path":"/Users/zane/playground/regex-repo/src/lib/numbers-strings.js","statementMap":{"0":{"start":{"line":19,"column":26},"end":{"line":19,"column":75}},"1":{"start":{"line":20,"column":31},"end":{"line":20,"column":72}},"2":{"start":{"line":21,"column":21},"end":{"line":21,"column":65}},"3":{"start":{"line":22,"column":28},"end":{"line":22,"column":58}},"4":{"start":{"line":23,"column":32},"end":{"line":23,"column":62}},"5":{"start":{"line":24,"column":37},"end":{"line":25,"column":51}},"6":{"start":{"line":26,"column":25},"end":{"line":26,"column":80}},"7":{"start":{"line":27,"column":30},"end":{"line":28,"column":80}},"8":{"start":{"line":29,"column":25},"end":{"line":29,"column":80}},"9":{"start":{"line":30,"column":30},"end":{"line":31,"column":76}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2},"f":{},"b":{}} +} diff --git a/qa/coverage/favicon.png b/qa/coverage/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..c1525b811a167671e9de1fa78aab9f5c0b61cef7 GIT binary patch literal 445 zcmV;u0Yd(XP))rP{nL}Ln%S7`m{0DjX9TLF* zFCb$4Oi7vyLOydb!7n&^ItCzb-%BoB`=x@N2jll2Nj`kauio%aw_@fe&*}LqlFT43 z8doAAe))z_%=P%v^@JHp3Hjhj^6*Kr_h|g_Gr?ZAa&y>wxHE99Gk>A)2MplWz2xdG zy8VD2J|Uf#EAw*bo5O*PO_}X2Tob{%bUoO2G~T`@%S6qPyc}VkhV}UifBuRk>%5v( z)x7B{I~z*k<7dv#5tC+m{km(D087J4O%+<<;K|qwefb6@GSX45wCK}Sn*> + + + + Code coverage report for All files + + + + + + + + + +
+
+

All files

+
+ +
+ 100% + Statements + 153/153 +
+ + +
+ 66.66% + Branches + 8/12 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 100% + Lines + 150/150 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
src +
+
100%136/13666.66%8/12100%2/2100%135/135
src/lib +
+
100%17/17100%0/0100%1/1100%15/15
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/prettify.css b/qa/coverage/prettify.css new file mode 100644 index 0000000..b317a7c --- /dev/null +++ b/qa/coverage/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/qa/coverage/prettify.js b/qa/coverage/prettify.js new file mode 100644 index 0000000..b322523 --- /dev/null +++ b/qa/coverage/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/qa/coverage/sort-arrow-sprite.png b/qa/coverage/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed68316eb3f65dec9063332d2f69bf3093bbfab GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qh}Z>jv*C{$p!i!8j}?a+@3A= zIAGwzjijN=FBi!|L1t?LM;Q;gkwn>2cAy-KV{dn nf0J1DIvEHQu*n~6U}x}qyky7vi4|9XhBJ7&`njxgN@xNA8m%nc literal 0 HcmV?d00001 diff --git a/qa/coverage/sorter.js b/qa/coverage/sorter.js new file mode 100644 index 0000000..2bb296a --- /dev/null +++ b/qa/coverage/sorter.js @@ -0,0 +1,196 @@ +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if ( + row.textContent + .toLowerCase() + .includes(searchValue.toLowerCase()) + ) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = + colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/qa/coverage/src/aws.js.html b/qa/coverage/src/aws.js.html new file mode 100644 index 0000000..ac97b54 --- /dev/null +++ b/qa/coverage/src/aws.js.html @@ -0,0 +1,169 @@ + + + + + + Code coverage report for src/aws.js + + + + + + + + + +
+
+

All files / src aws.js

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 6/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +1x +  +  +1x +  +1x +  +1x +  +  +1x + 
/*
+Copyright 2023 Liquid Labs LLC
+ 
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ 
+    http://www.apache.org/licenses/LICENSE-2.0
+ 
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { ipFormatREString } from './web'
+ 
+const invalidS3Partials = `(?!^${ipFormatREString}|^xn--|^sthree-|.+-s3alias$|.+--ol-s3$)`
+// const invalidS3Partials = `(?!^${ipFormatREString}|^xn--|^sthree-)`
+ 
+export const awsS3TABucketNameREString = invalidS3Partials + '^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$'
+// AWS: Matches (most) S3 Transfer Acceleration compatible S3 bucket name. Note `awsS3TABucketNameREString` cannot be used for partial matches.
+export const awsS3TABucketNameRE = new RegExp(awsS3TABucketNameREString)
+ 
+export const awsS3BucketNameREString = invalidS3Partials + '^[a-z0-9](?:\\.?[a-z0-9-]+)+[a-z0-9]$'
+// export const awsS3BucketNameREString = '^[a-z0-9](?:\\.?[a-z0-9-]+)+[a-z0-9]$'
+// AWS: Matches (most) valid S3 bucket name. Note `awsS3BucketNameREString` cannot be used for partial matches. Does not enforce 63 character limit.
+export const awsS3BucketNameRE = new RegExp(awsS3BucketNameREString)
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/src/contacts.js.html b/qa/coverage/src/contacts.js.html new file mode 100644 index 0000000..69ced74 --- /dev/null +++ b/qa/coverage/src/contacts.js.html @@ -0,0 +1,160 @@ + + + + + + Code coverage report for src/contacts.js + + + + + + + + + +
+
+

All files / src contacts.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +1x +  +1x +  +1x +  +1x + 
/*
+Copyright 2023 Liquid Labs LLC
+ 
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ 
+    http://www.apache.org/licenses/LICENSE-2.0
+ 
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+ 
+import { lockdownRE } from './lib/lockdown-re'
+ 
+export const usPhoneREString = '(\\+?1[._ -]?)?(\\(\\d{3}\\)|\\d{3})[._ -]?\\d{3}[._ -]?\\d{4}'
+// Contact info: Matches US phone numbers with optional country code and area code.
+export const usPhoneRE = lockdownRE(usPhoneREString)
+ 
+export const zipCodeREString = '\\d{5}([._ -]?\\d{4})?'
+// Contact info: Matches 5 or 9 digit US zip codes.
+export const zipCodeRE = lockdownRE(zipCodeREString)
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/src/css.js.html b/qa/coverage/src/css.js.html new file mode 100644 index 0000000..8556e58 --- /dev/null +++ b/qa/coverage/src/css.js.html @@ -0,0 +1,409 @@ + + + + + + Code coverage report for src/css.js + + + + + + + + + +
+
+

All files / src css.js

+
+ +
+ 100% + Statements + 42/42 +
+ + +
+ 66.66% + Branches + 4/6 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 42/42 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +  +  +  +  +  +  +  +2x +  +1x +  +1x +  +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +1x +1x +1x +1x +  +1x +  +1x +  +1x +  +1x +  +  +  +  +1x +1x +1x +1x +1x +  +1x +  +1x +  +1x +1x +  +1x +  +1x +  +1x +  +  +1x +  +1x +  +  +  +  +  +  +1x +  +1x +  +  +  +  +  +1x + 
/*
+Copyright 2023 Liquid Labs LLC
+ 
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ 
+    http://www.apache.org/licenses/LICENSE-2.0
+ 
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+ 
+import * as pre from './lib/css-color-data'
+import { lockdownRE } from './lib/lockdown-re'
+import {
+  floatStr,
+  zeroTo255Str,
+  zeroTo1FloatStr,
+  zeroTo100PercentStr,
+  zeroTo100FloatPercentStr,
+  zeroTo255FloatStr,
+  zeroTo360Str
+} from './lib/numbers-strings'
+ 
+export const hexColorNoAlphaREString = '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'
+// Colors/CSS: Matches hex specified RGB colors with no alpha channel.
+export const hexColorNoAlphaRE = lockdownRE(hexColorNoAlphaREString)
+ 
+// level 4 adds alpha hex support
+export const hexColorAlphaREString = '#([a-fA-F0-9]{6}|[a-fA-F0-9]{8}|[a-fA-F0-9]{3,4})'
+// Colors/CSS: Matches hex specified RGBA colors with an alpha channel.
+export const hexColorAlphaRE = lockdownRE(hexColorAlphaREString)
+ 
+export const cssPreColors1REString = '(?:' + Object.keys(pre.cssPreColors1).join('|') + ')'
+// Colors/CSS: Matches CSS1 predefined color names.
+export const cssPreColors1RE = lockdownRE(cssPreColors1REString)
+ 
+export const cssPreColors2REString = '(?:' + Object.keys(pre.cssPreColors2).join('|') + ')'
+// Colors/CSS: Matches CSS2 predefined color names.
+export const cssPreColors2RE = lockdownRE(cssPreColors2REString)
+ 
+export const cssPreColors3REString = '(?:' + Object.keys(pre.cssPreColors3).join('|') + ')'
+// Colors/CSS: Matches CSS3 predefined color names.
+export const cssPreColors3RE = lockdownRE(cssPreColors3REString)
+ 
+export const cssPreColorsREString = '(?:' + Object.keys(pre.cssPreColors).join('|') + ')'
+// Colors/CSS: Matches CSS4 predefined color names.
+export const cssPreColorsRE = lockdownRE(cssPreColorsREString)
+ 
+const alphaStr = `(${zeroTo1FloatStr}|${zeroTo100PercentStr})`
+const rgb1IntStr = `rgb\\((\\s*${zeroTo255Str}\\s*,){2}\\s*${zeroTo255Str}\\s*\\)`
+const rgb1PercStr = `rgb\\((\\s*${zeroTo100PercentStr}\\s*,){2}\\s*${zeroTo100PercentStr}\\s*\\)`
+const rgba3IntStr = `rgba\\((\\s*${zeroTo255Str}\\s*,){3}\\s*${alphaStr}\\s*\\)`
+const rgba3PercStr = `rgba\\((\\s*${zeroTo100PercentStr}\\s*,){3}\\s*${alphaStr}\\s*\\)`
+ 
+export const rgbFuncREString = '(?:' + [rgb1IntStr, rgb1PercStr].join('|') + ')'
+// Colors/CSS: Matches CSS1 'rgb(...) using '0...255 and percent (integer) notation.
+export const rgbFuncRE = lockdownRE(rgbFuncREString)
+ 
+export const rgbaFuncREString = '(?:' + [rgba3IntStr, rgba3PercStr].join('|') + ')'
+// Colors/CSS: Matches CSS3 'rgba(...) using '0...255 and percent (integer) notation.
+export const rgbaFuncRE = lockdownRE(rgbaFuncREString)
+ 
+// In level 4, rgba is an alias for rgb, supports floats, and space notation
+// NOTE: The spec allows float values like '+.25e2%', which cannot be recognized
+// via RE and are not supported.
+const alphaFloatStr = `(${zeroTo1FloatStr}|${zeroTo100FloatPercentStr})`
+const rgbDecFuncStr = `(\\s*${zeroTo255FloatStr}\\s*,){2}\\s*${zeroTo255FloatStr}\\s*(,\\s*${alphaFloatStr}\\s*)?`
+const rgbPercFuncStr = `(\\s*${zeroTo100FloatPercentStr}\\s*,){2}\\s*${zeroTo100FloatPercentStr}\\s*(,\\s*${alphaFloatStr}\\s*)?`
+const rgbDecSpaceStr = `(\\s*${zeroTo255FloatStr}\\s+){2}${zeroTo255FloatStr}\\s*(/\\s*${alphaFloatStr}\\s*)?`
+const rgbPercSpaceStr = `(\\s*${zeroTo100FloatPercentStr}\\s+){2}${zeroTo100FloatPercentStr}\\s*(/\\s*${alphaFloatStr}\\s*)?`
+ 
+export const rgbREString = `rgba?\\((${rgbDecFuncStr}|${rgbPercFuncStr}|${rgbDecSpaceStr}|${rgbPercSpaceStr})\\s*\\)`
+// Colors/CSS: Matches CSS4 'rgb(...) and rgba(...) functios  using '0...255 and percent (float) notation.
+export const rgbRE = lockdownRE(rgbREString)
+ 
+const hsl3BaseStr = `\\s*${zeroTo360Str}(deg)?\\s*(,\\s*${zeroTo100PercentStr}\\s*)`
+const hsl3Opts = [`hsl\\(${hsl3BaseStr}{2}\\)`, `hsla\\(${hsl3BaseStr}{3}\\)`]
+ 
+export const hsl3REString = '(?:' + hsl3Opts.join('|') + ')'
+// Colors/CSS: Matches CSS3 'hsl(...) and hsla(...) deg and percent notation.
+export const hsl3RE = lockdownRE(hsl3REString)
+ 
+export const hslREString =
+  `hsla?\\(\\s*${floatStr}(deg|grad|rad|turn)?\\s*(,\\s*${zeroTo100FloatPercentStr}\\s*){2,3}\\)`
+// Colors/CSS: Matches CSS4 'hsl(...) and hsla(...) deg, grad, rad, turn and percent notation.
+export const hslRE = lockdownRE(hslREString)
+ 
+export const cssColor3REString = '(?:' +
+  [hexColorNoAlphaREString, rgb1IntStr, rgb1PercStr, rgba3IntStr, rgba3PercStr]
+    .concat(Object.keys(pre.cssPreColors3))
+    .concat(hsl3Opts)
+    .join('|') +
+  ')'
+// Colors/CSS: Matches CSS3 'hex, rgb, rgba, hsl, and predefined colors.
+export const cssColor3RE = lockdownRE(cssColor3REString)
+ 
+export const cssColorREString = '(?:' +
+  [hexColorAlphaREString, rgbREString, hslREString]
+    .concat(Object.keys(pre.cssPreColors))
+    .join('|') +
+  ')'
+// Colors/CSS: Matches CSS4 'hex, rgb, rgba, hsl, and predefined colors.
+export const cssColorRE = lockdownRE(cssColorREString)
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/src/date-times.mjs.html b/qa/coverage/src/date-times.mjs.html new file mode 100644 index 0000000..ec0fcec --- /dev/null +++ b/qa/coverage/src/date-times.mjs.html @@ -0,0 +1,304 @@ + + + + + + Code coverage report for src/date-times.mjs + + + + + + + + + +
+
+

All files / src date-times.mjs

+
+ +
+ 100% + Statements + 29/29 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 29/29 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +1x +  +1x +1x +1x +1x +1x +1x +  +  +1x +  +1x +  +1x +  +1x +  +1x +  +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x + 
/*
+Copyright 2023 Liquid Labs LLC
+ 
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ 
+    http://www.apache.org/licenses/LICENSE-2.0
+ 
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { lockdownRE } from './lib/lockdown-re'
+ 
+// Started RE based on https://www.myintervals.com/blog/2009/05/20/iso-8601-date-validation-that-doesnt-suck/
+// Made some corrections, rearranged capture groups.
+ 
+// Date/Time: (string only) Matches the day designation portion of an ISO 8601 date+time. Provides matching groups 1 (year), 3 (month), and 4 (day of month), 5 (week of year), 6 (day of week date), and 7 (ordinal or Julian date).
+export const iso8601DayREString = '(?:([+-]?\\d{4})(?:(-?)(?:(0[1-9]|1[0-2])(?:\\2([12]\\d|0[1-9]|3[01])?)?|W([0-4]\\d|5[0-3])\\2([1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3(?:[0-5]\\d|6[1-6])))?)?)'
+ 
+const eod = '(24(?<endSep>:?)00\\k<endSep>00)'
+const frac = '(?:[.,](\\d+))'
+const hr = `(?:([01]\\d|2[0-3])${frac}?)`
+const min = `(?:([0-5]\\d)${frac}?)`
+const sec = `(?:([0-5]\\d|60)${frac}?)`
+const tz = '([zZ]|(?:[+-](?!00(?::?00)?)(?:[01]\\d|2[0-3])(?::?[0-5]\\d)?))'
+ 
+// Date/Time: (string only) Matches the time designation portion of an ISO 8601 date+time. Provides matching groups 1 (special end of day time), 3 (hours), 3 (fraction of hour), 5 (minutes), 6 (fraction of minute), 7 (seconds), and 8 (fraction of seconds).
+export const iso8601TimeREString = `(?:(?:${eod}|${hr}(?:(?<timeSep>:?)${min}(?:\\k<timeSep>${sec})?)?)${tz}?)`
+ 
+export const iso8601DateREString = `${iso8601DayREString}(?:T${iso8601TimeREString})?`
+// Date/Time: Matches an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date time like '20240101T1212Z. Provides matching groups 1 (year), 3 (month), and 4 (day of month), 5 (week of year), 6 (day of week date), and 7 (ordinal or Julian date), 8 (special end of day time), 10 (hour), 11 (decimal fraction of hour), 13 (minute), 14 (decimal fraction of minute), 15 (seconds), 16 (decimal fraction of a second), and 17 (timezone designation). (Groups 2, 11, and 13 are internal back references.)
+export const iso8601DateRE = lockdownRE(iso8601DateREString)
+ 
+export const iso8601DateTimeREString = `${iso8601DayREString}T${iso8601TimeREString}`
+// Date/Time: Matches an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) _requiring_ both date and time components. See [`iso8601DateRE`](#iso8601datere) for matching groups.
+export const iso8601DateTimeRE = lockdownRE(iso8601DateTimeREString)
+ 
+// Date/Time: (string only) Matches the day designation portion of an RFC 2822 date+time. Provides matching groups 1 (day of week name), 2 (day of month), 3 (year).
+export const rfc2822DayREString = '(?:(?:(Sun|Mon|Tue|Wed|Thu|Fri|Sat),\\s+)?(0[1-9]|[1-2]?[0-9]|3[01])\\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s+(\\d{2,4}))'
+// Date/Time: (string only) Matches a general timezone designation; compliant with RFC 2822 timezone portion. Provides matching groups 1 (timezone).
+export const timezoneREString = '([+-][0-9]{2}[0-5][0-9]|(?:UT|GMT|[A-Z]{3,5}|[A-IK-Z]))'
+// Date/Time: (string only) Matches the time designation portion of an RFC 2822 date+time. Provides matching groups 1 (hour), 2 (minutes), 3 (seconds), and 4 (timezone).
+export const rfc2822TimeREString = `(?:(2[0-3]|[0-1][0-9]):([0-5][0-9])(?::(60|[0-5][0-9]))?(?:\\s+${timezoneREString})?)`
+ 
+export const rfc2822DateREString = `${rfc2822DayREString}\\s+${rfc2822TimeREString}`
+// Date/Tmie: Matches an [RFC 2822](https://datatracker.ietf.org/doc/html/rfc2822#section-3.3) style date like 'Mon, 6 Jan 1992 12:12 UTC'. Provides matching groups 1 (day of week), 2 (day of month), 3 (month), and 4 (year), 5 (hour), 6 (min), 7 (second), and 8 (time zone).
+export const rfc2822DateRE = lockdownRE(rfc2822DateREString)
+ 
+const seps = '[./-]'
+ 
+export const usDateREString = `(0?[1-9]|1[0-2])${seps}(0?[1-9]|[1-2][0-9]|3[0-1])${seps}([+-])?(\\d{1,})`
+// Date/Time: Matches a US style 'MM/DD/YYYY' string. Accepts separators '.', '/', '-'. Will except 1 or 2 digits for month and day and 1-4 digits for the year. Also accepts a + or - before the year. Provides capture groups 1 (month), 2 (day of month), 3 (BCE/CE indicator), and 4 (year).
+export const usDateRE = lockdownRE(usDateREString)
+ 
+export const intlDateREString = `([+-])?(\\d{1,})${seps}(0?[1-9]|1[0-2])${seps}(0?[1-9]|[1-2][0-9]|3[0-1])`
+// Date/Time: Matches an international style 'YYYY/MM/DD' string. Accepts separators '.', '/', '-'. Will except 1 or 2 digits for month and day and 1-4 digits for the year. Also accepts a + or - before the year. Provides capture groups 1 (BCE/CE indicator), 2 (year), 3 (month), 4 (day).
+export const intlDateRE = lockdownRE(intlDateREString)
+ 
+export const militaryTimeREString = '(?:(2400)|([0-1][0-9]|2[0-3])([0-5]\\d))'
+// Date/Time: Matches military time style 'HHMM' string. Provides capture groups 1 (special 2400 time), 2 (hour), and 3 (minutes).
+export const militaryTimeRE = lockdownRE(militaryTimeREString)
+ 
+export const timeREString = '(?:(0?[1-9]|1[0-2]):([0-5][0-9])(?::([0-5][0-9])(?:[.,](\\d+))?)?\\s*([aApP][mM]))'
+// Date/Time: Matches a twelve hour time designation, requires AM or PM designation. Allows optional leading 0 in hour. Provides matching groups 1 (hour), 2 (minutes), 3 (seconds, without decimal fractions), 4 (decimal fraction seconds), and 5 (AM/PM indicator).
+export const timeRE = lockdownRE(timeREString)
+ 
+export const twentyFourHourTimeREString = '(?:(24:00(?::00)?)|(0?[1-9]|1[0-9]|2[0-3]):([0-5][0-9])(?::([0-5][0-9])(?:[.,](\\d+))?)?)'
+// Date/Time: Matches a twenty-four hour time designationAllows optional leading 0 in hour. Provides matching groups 1 (special 24:00 designation with optional seconds), 2 (hour), 3 (minutes), 4 (seconds, without decimal fractions), 5 (decimal fraction seconds).
+export const twentyFourHourTimeRE = lockdownRE(twentyFourHourTimeREString)
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/src/ids.js.html b/qa/coverage/src/ids.js.html new file mode 100644 index 0000000..877f92a --- /dev/null +++ b/qa/coverage/src/ids.js.html @@ -0,0 +1,148 @@ + + + + + + Code coverage report for src/ids.js + + + + + + + + + +
+
+

All files / src ids.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +1x +  +1x + 
/*
+Copyright 2023 Liquid Labs LLC
+ 
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ 
+    http://www.apache.org/licenses/LICENSE-2.0
+ 
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+ 
+import { lockdownRE } from './lib/lockdown-re'
+ 
+export const uuidREString = '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}'
+// Identifiers: Matches a UUID.
+export const uuidRE = lockdownRE(uuidREString)
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/src/index.html b/qa/coverage/src/index.html new file mode 100644 index 0000000..16a5b47 --- /dev/null +++ b/qa/coverage/src/index.html @@ -0,0 +1,236 @@ + + + + + + Code coverage report for src + + + + + + + + + +
+
+

All files src

+
+ +
+ 100% + Statements + 136/136 +
+ + +
+ 66.66% + Branches + 8/12 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 135/135 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
aws.js +
+
100%6/6100%0/0100%0/0100%6/6
contacts.js +
+
100%5/5100%0/0100%0/0100%5/5
css.js +
+
100%42/4266.66%4/6100%1/1100%42/42
date-times.mjs +
+
100%29/29100%0/0100%0/0100%29/29
ids.js +
+
100%3/3100%0/0100%0/0100%3/3
javascript.js +
+
100%5/5100%0/0100%0/0100%5/5
npm.js +
+
100%3/3100%0/0100%0/0100%3/3
numbers.js +
+
100%25/2566.66%4/6100%1/1100%24/24
web.js +
+
100%18/18100%0/0100%0/0100%18/18
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/src/javascript.js.html b/qa/coverage/src/javascript.js.html new file mode 100644 index 0000000..9824077 --- /dev/null +++ b/qa/coverage/src/javascript.js.html @@ -0,0 +1,163 @@ + + + + + + Code coverage report for src/javascript.js + + + + + + + + + +
+
+

All files / src javascript.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +1x +  +1x +  +  +1x +  +1x + 
/*
+Copyright 2023 Liquid Labs LLC
+ 
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ 
+    http://www.apache.org/licenses/LICENSE-2.0
+ 
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+ 
+import { lockdownRE } from './lib/lockdown-re'
+ 
+export const jsReservedWordREString = '(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)'
+// JavaScript: Matches a JS resereved word.
+export const jsReservedWordRE = lockdownRE(jsReservedWordREString)
+ 
+/* credit to: https://stackoverflow.com/questions/1661197/what-characters-are-valid-for-javascript-variable-names */
+export const jsVariableREString = '(?!(?:(?:^| |;)do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)(?: |;|$))[$A-Z_a-z\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc][$A-Z_a-z\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc0-9\\u0300-\\u036f\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08e4-\\u08fe\\u0900-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c01-\\u0c03\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c82\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d02\\u0d03\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19b0-\\u19c0\\u19c8\\u19c9\\u19d0-\\u19d9\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf2-\\u1cf4\\u1dc0-\\u1de6\\u1dfc-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua880\\ua881\\ua8b4-\\ua8c4\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua900-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f]*'
+// JavaScript: Matches a valid JS variable name.
+export const jsVariableRE = lockdownRE(jsVariableREString)
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/src/lib/css-color-data.js.html b/qa/coverage/src/lib/css-color-data.js.html new file mode 100644 index 0000000..eea5d7a --- /dev/null +++ b/qa/coverage/src/lib/css-color-data.js.html @@ -0,0 +1,610 @@ + + + + + + Code coverage report for src/lib/css-color-data.js + + + + + + + + + +
+
+

All files / src/lib css-color-data.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  + 
/*
+Copyright 2023 Liquid Labs LLC
+ 
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ 
+    http://www.apache.org/licenses/LICENSE-2.0
+ 
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+ 
+export const cssPreColors1 = {
+  black   : '#000000',
+  silver  : '#c0c0c0',
+  gray    : '#808080',
+  white   : '#ffffff',
+  maroon  : '#800000',
+  red     : '#ff0000',
+  purple  : '#800080',
+  fuchsia : '#ff00ff',
+  green   : '#008000',
+  lime    : '#00ff00',
+  olive   : '#808000',
+  yellow  : '#ffff00',
+  navy    : '#000080',
+  blue    : '#0000ff',
+  teal    : '#008080',
+  aqua    : '#00ffff'
+}
+ 
+export const cssPreColors2 = Object.assign({
+  orange : '#ffa500'
+}, cssPreColors1)
+ 
+export const cssPreColors3 = Object.assign({
+  aliceblue            : '#f0f8ff',
+  antiquewhite         : '#faebd7',
+  aquamarine           : '#7fffd4',
+  azure                : '#f0ffff',
+  beige                : '#f5f5dc',
+  bisque               : '#ffe4c4',
+  blanchedalmond       : '#ffebcd',
+  blueviolet           : '#8a2be2',
+  brown                : '#a52a2a',
+  burlywood            : '#deb887',
+  cadetblue            : '#5f9ea0',
+  chartreuse           : '#7fff00',
+  chocolate            : '#d2691e',
+  coral                : '#ff7f50',
+  cornflowerblue       : '#6495ed',
+  cornsilk             : '#fff8dc',
+  crimson              : '#dc143c',
+  cyan                 : 'aqua',
+  darkblue             : '#00008b',
+  darkcyan             : '#008b8b',
+  darkgoldenrod        : '#b8860b',
+  darkgray             : '#a9a9a9',
+  darkgreen            : '#006400',
+  darkgrey             : '#a9a9a9',
+  darkkhaki            : '#bdb76b',
+  darkmagenta          : '#8b008b',
+  darkolivegreen       : '#556b2f',
+  darkorange           : '#ff8c00',
+  darkorchid           : '#9932cc',
+  darkred              : '#8b0000',
+  darksalmon           : '#e9967a',
+  darkseagreen         : '#8fbc8f',
+  darkslateblue        : '#483d8b',
+  darkslategray        : '#2f4f4f',
+  darkslategrey        : '#2f4f4f',
+  darkturquoise        : '#00ced1',
+  darkviolet           : '#9400d3',
+  deeppink             : '#ff1493',
+  deepskyblue          : '#00bfff',
+  dimgray              : '#696969',
+  dimgrey              : '#696969',
+  dodgerblue           : '#1e90ff',
+  firebrick            : '#b22222',
+  floralwhite          : '#fffaf0',
+  forestgreen          : '#228b22',
+  gainsboro            : '#dcdcdc',
+  ghostwhite           : '#f8f8ff',
+  gold                 : '#ffd700',
+  goldenrod            : '#daa520',
+  greenyellow          : '#adff2f',
+  grey                 : '#808080',
+  honeydew             : '#f0fff0',
+  hotpink              : '#ff69b4',
+  indianred            : '#cd5c5c',
+  indigo               : '#4b0082',
+  ivory                : '#fffff0',
+  khaki                : '#f0e68c',
+  lavender             : '#e6e6fa',
+  lavenderblush        : '#fff0f5',
+  lawngreen            : '#7cfc00',
+  lemonchiffon         : '#fffacd',
+  lightblue            : '#add8e6',
+  lightcoral           : '#f08080',
+  lightcyan            : '#e0ffff',
+  lightgoldenrodyellow : '#fafad2',
+  lightgray            : '#d3d3d3',
+  lightgreen           : '#90ee90',
+  lightgrey            : '#d3d3d3',
+  lightpink            : '#ffb6c1',
+  lightsalmon          : '#ffa07a',
+  lightseagreen        : '#20b2aa',
+  lightskyblue         : '#87cefa',
+  lightslategray       : '#778899',
+  lightslategrey       : '#778899',
+  lightsteelblue       : '#b0c4de',
+  lightyellow          : '#ffffe0',
+  limegreen            : '#32cd32',
+  linen                : '#faf0e6',
+  magenta              : 'fuchsia',
+  mediumaquamarine     : '#66cdaa',
+  mediumblue           : '#0000cd',
+  mediumorchid         : '#ba55d3',
+  mediumpurple         : '#9370db',
+  mediumseagreen       : '#3cb371',
+  mediumslateblue      : '#7b68ee',
+  mediumspringgreen    : '#00fa9a',
+  mediumturquoise      : '#48d1cc',
+  mediumvioletred      : '#c71585',
+  midnightblue         : '#191970',
+  mintcream            : '#f5fffa',
+  mistyrose            : '#ffe4e1',
+  moccasin             : '#ffe4b5',
+  navajowhite          : '#ffdead',
+  oldlace              : '#fdf5e6',
+  olivedrab            : '#6b8e23',
+  orangered            : '#ff4500',
+  orchid               : '#da70d6',
+  palegoldenrod        : '#eee8aa',
+  palegreen            : '#98fb98',
+  paleturquoise        : '#afeeee',
+  palevioletred        : '#db7093',
+  papayawhip           : '#ffefd5',
+  peachpuff            : '#ffdab9',
+  peru                 : '#cd853f',
+  pink                 : '#ffc0cb',
+  plum                 : '#dda0dd',
+  powderblue           : '#b0e0e6',
+  rosybrown            : '#bc8f8f',
+  royalblue            : '#4169e1',
+  saddlebrown          : '#8b4513',
+  salmon               : '#fa8072',
+  sandybrown           : '#f4a460',
+  seagreen             : '#2e8b57',
+  seashell             : '#fff5ee',
+  sienna               : '#a0522d',
+  skyblue              : '#87ceeb',
+  slateblue            : '#6a5acd',
+  slategray            : '#708090',
+  slategrey            : '#708090',
+  snow                 : '#fffafa',
+  springgreen          : '#00ff7f',
+  steelblue            : '#4682b4',
+  tan                  : '#d2b48c',
+  thistle              : '#d8bfd8',
+  tomato               : '#ff6347',
+  turquoise            : '#40e0d0',
+  violet               : '#ee82ee',
+  wheat                : '#f5deb3',
+  whitesmoke           : '#f5f5f5',
+  yellowgreen          : '#9acd32'
+}, cssPreColors2)
+ 
+export const cssPreColors = Object.assign({
+  rebeccapurple : '#663399'
+}, cssPreColors3)
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/src/lib/index.html b/qa/coverage/src/lib/index.html new file mode 100644 index 0000000..939ff6e --- /dev/null +++ b/qa/coverage/src/lib/index.html @@ -0,0 +1,146 @@ + + + + + + Code coverage report for src/lib + + + + + + + + + +
+
+

All files src/lib

+
+ +
+ 100% + Statements + 17/17 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 15/15 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
css-color-data.js +
+
100%4/4100%0/0100%0/0100%4/4
lockdown-re.js +
+
100%3/3100%0/0100%1/1100%1/1
numbers-strings.js +
+
100%10/10100%0/0100%0/0100%10/10
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/src/lib/lockdown-re.js.html b/qa/coverage/src/lib/lockdown-re.js.html new file mode 100644 index 0000000..5ec4d25 --- /dev/null +++ b/qa/coverage/src/lib/lockdown-re.js.html @@ -0,0 +1,136 @@ + + + + + + Code coverage report for src/lib/lockdown-re.js + + + + + + + + + +
+
+

All files / src/lib lockdown-re.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 1/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +54x + 
/*
+Copyright 2023 Liquid Labs LLC
+ 
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ 
+    http://www.apache.org/licenses/LICENSE-2.0
+ 
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+ 
+export const lockdownRE = (str, flags) => new RegExp(`^${str}$`, flags)
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/src/lib/numbers-strings.js.html b/qa/coverage/src/lib/numbers-strings.js.html new file mode 100644 index 0000000..6cf4bca --- /dev/null +++ b/qa/coverage/src/lib/numbers-strings.js.html @@ -0,0 +1,178 @@ + + + + + + Code coverage report for src/lib/numbers-strings.js + + + + + + + + + +
+
+

All files / src/lib numbers-strings.js

+
+ +
+ 100% + Statements + 10/10 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 10/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +2x +2x +2x +2x +2x +  +2x +2x +  +2x +2x +  + 
/*
+Copyright 2023 Liquid Labs LLC
+ 
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ 
+    http://www.apache.org/licenses/LICENSE-2.0
+ 
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+ 
+// Note, this module is used internally, so these aStr exported to for other
+// modules to use, but the file is not Str-exported through index.
+export const plainFloatStr = '[+-]?(0(\\.[0-9]+)?|[1-9][0-9]*(\\.[0-9]+)?)'
+export const scientificFloatStr = `${plainFloatStr}[eE]${plainFloatStr}`
+export const floatStr = `${plainFloatStr}([eE]${plainFloatStr})?`
+export const zeroTo1FloatStr = '(0|0?\\.[0-9]+|1(\\.0+)?)'
+export const zeroTo100PercentStr = '([0-9]|[1-9][0-9]|100)\\%'
+export const zeroTo100FloatPercentStr =
+  '(([0-9]|[1-9][0-9])(\\.[0-9]+)?|100(\\.0+)?)\\%'
+export const zeroTo255Str = '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
+export const zeroTo255FloatStr =
+  '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])(\\.[0-9]+)?|255(\\.0+)?)'
+export const zeroTo360Str = '([0-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|360)'
+export const zeroTo360FloatStr =
+  '(([0-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9])(\\.[0-9]+)?|360(\\.0+)?)'
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/src/npm.js.html b/qa/coverage/src/npm.js.html new file mode 100644 index 0000000..ab6703e --- /dev/null +++ b/qa/coverage/src/npm.js.html @@ -0,0 +1,148 @@ + + + + + + Code coverage report for src/npm.js + + + + + + + + + +
+
+

All files / src npm.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +1x +  +1x + 
/*
+Copyright 2023 Liquid Labs LLC
+ 
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ 
+    http://www.apache.org/licenses/LICENSE-2.0
+ 
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+ 
+import { lockdownRE } from './lib/lockdown-re'
+ 
+export const npmPackageNameREString = '(@[a-z0-9-~][a-z0-9-._~]*/)?([a-z0-9-~][a-z0-9-._~]*)'
+// NPM: Matches an NPM package name. Provides matching groups 1 (org name, if any) and 2 (package basename).
+export const npmPackageNameRE = lockdownRE(npmPackageNameREString)
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/src/numbers.js.html b/qa/coverage/src/numbers.js.html new file mode 100644 index 0000000..1e229f1 --- /dev/null +++ b/qa/coverage/src/numbers.js.html @@ -0,0 +1,271 @@ + + + + + + Code coverage report for src/numbers.js + + + + + + + + + +
+
+

All files / src numbers.js

+
+ +
+ 100% + Statements + 25/25 +
+ + +
+ 66.66% + Branches + 4/6 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 24/24 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +2x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x +  +1x + 
/*
+Copyright 2023 Liquid Labs LLC
+ 
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ 
+    http://www.apache.org/licenses/LICENSE-2.0
+ 
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+ 
+import * as numStrs from './lib/numbers-strings'
+import { lockdownRE } from './lib/lockdown-re'
+ 
+export const integerREString = '-?(?:0|[1-9]\\d*)'
+// Numbers: Matches an integer.
+export const integerRE = lockdownRE(integerREString)
+ 
+export const plainFloatREString = numStrs.plainFloatStr
+// Numbers: Matches a plain (non-scientific notation) float.
+export const plainFloatRE = lockdownRE(plainFloatREString)
+ 
+export const scientificFloatREString = numStrs.scientificFloatStr
+// Numbers: Matches a scientific notation float.
+export const scientificFloatRE = lockdownRE(scientificFloatREString)
+ 
+export const floatREString = numStrs.floatStr
+// Numbers: Matches a float in either plan or scientific format.
+export const floatRE = lockdownRE(floatREString)
+ 
+export const zeroTo1FloatREString = numStrs.zeroTo1FloatStr
+// CSS numbers: Matches a 0 to 1 float as used in CSS color specifications.
+export const zeroTo1FloatRE = lockdownRE(zeroTo1FloatREString)
+ 
+export const zeroTo100PercentREString = numStrs.zeroTo100PercentStr
+// CSS numbers: Matches a 0 to 100% integer as used in CSS color specifications.
+export const zeroTo100PercentRE = lockdownRE(zeroTo100PercentREString)
+ 
+export const zeroTo100FloatPercentREString = numStrs.zeroTo100FloatPercentStr
+// CSS numbers: Matches a 0 to 100% float as used in CSS color specifications.
+export const zeroTo100FloatPercentRE = lockdownRE(zeroTo100FloatPercentREString)
+ 
+export const zeroTo255REString = numStrs.zeroTo255Str
+// CSS numbers: Matches a 0 to 255 integer as used in CSS color specifications.
+export const zeroTo255RE = lockdownRE(zeroTo255REString)
+ 
+export const zeroTo255FloatREString = numStrs.zeroTo255FloatStr
+// CSS numbers: Matches a 0 to 255 float as used in CSS color specifications.
+export const zeroTo255FloatRE = lockdownRE(zeroTo255FloatREString)
+ 
+export const zeroTo360REString = numStrs.zeroTo360Str
+// CSS numbers: Matches a 0 to 360 integer as used in CSS color specifications.
+export const zeroTo360RE = lockdownRE(zeroTo360REString)
+ 
+export const zeroTo360FloatREString = numStrs.zeroTo360FloatStr
+// CSS numbers: Matches a 0 to 360 float as used in CSS color specifications.
+export const zeroTo360FloatRE = lockdownRE(zeroTo360FloatREString)
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/coverage/src/web.js.html b/qa/coverage/src/web.js.html new file mode 100644 index 0000000..7ffb6f3 --- /dev/null +++ b/qa/coverage/src/web.js.html @@ -0,0 +1,286 @@ + + + + + + Code coverage report for src/web.js + + + + + + + + + +
+
+

All files / src web.js

+
+ +
+ 100% + Statements + 18/18 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 18/18 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +2x +  +  +  +2x +  +2x +2x +  +2x +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +2x +  +2x +  +2x +  +2x +  +2x +  +2x +  +2x +  +2x +  +  +  +2x +  +2x + 
/*
+Copyright 2023 Liquid Labs LLC
+ 
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ 
+    http://www.apache.org/licenses/LICENSE-2.0
+ 
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+ 
+import { lockdownRE } from './lib/lockdown-re'
+ 
+export const ipREString = '(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])' +
+  '(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}' +
+  '(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))'
+// Web: Matches a valid, non-localhost IP address.
+export const ipRE = lockdownRE(ipREString)
+ 
+const ipTuple = '(?:0|1?\\d{1,2}|2[0-4]\\d|25[0-5])'
+export const ipFormatREString = `(?:${ipTuple}\\.){3}${ipTuple}`
+// Web: Matches a string in IP address format. Use 'ipRE' to match actually valid IP addresses.
+export const ipFormatRE = lockdownRE(ipFormatREString)
+ 
+/* Base RE cribbed from: https://github.com/chriso/validator.js via https://stackoverflow.com/a/22648406/929494
+   Annotations cribbed from https://gist.github.com/dperini/729294 */
+export const urlREString =
+  // protocol ID
+  '(?!mailto:)(?:(?:http|https|ftp)://)' +
+  // user + pass
+  '(?:\\S+(?::\\S*)?@)?' +
+  // IP address dotted notation octets
+  // excludes loopback network 0.0.0.0
+  // excludes reserved space >= 224.0.0.0
+  // excludes network & broacast addresses
+  // (first & last IP address of each class)
+  '(?:(?:' + ipREString +
+  '|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?'
+// Web: Matches a valid URL.
+export const urlRE = lockdownRE(urlREString, 'i')
+ 
+export const tldNameREString = '[a-zA-Z]{2,63}'
+// Web: Matches a Top Level Domain (TLD). See [domain name rules](#domain-name-rules).
+export const tldNameRE = lockdownRE(tldNameREString)
+ 
+export const domainNameREString = '[a-zA-Z0-9](?:[a-zA-Z0-9]|[a-zA-Z0-9-][a-zA-Z0-9]|[a-zA-Z0-9-][a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]|[a-zA-Z0-9-][a-zA-Z0-9-][a-zA-Z0-9]|[a-zA-Z0-9-][a-zA-Z0-9-][a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])'
+// Web: Matches a registerable domain name. See [domain name rules](#domain-name-rules).
+export const domainNameRE = lockdownRE(domainNameREString)
+ 
+export const subDomainREString = '[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]'
+// Web: Matches a valid sub-domain label. See [domain name rules](#domain-name-rules).
+export const subDomainRE = lockdownRE(subDomainREString)
+ 
+export const fqDomainNameREString = `(?:${subDomainREString}\\.)*(?:${domainNameREString}\\.)+${tldNameREString}`
+// Web: Matches fully qualified domain name (zero or more sub-domains + registerable domain + TLD). Does not enforce 63 character domain label limit or 255 character FQN domain limit.
+export const fqDomainNameRE = lockdownRE(fqDomainNameREString)
+ 
+// based on https://stackoverflow.com/a/201378/929494; modified to allow uppercase characters and restrict to valid DNS
+// names in the domain portion
+export const emailREString = `([a-zA-Z0-9!#$%&'*+/=?^_\`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_\`{|}~-]+)*|"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*")@(${fqDomainNameREString})`
+// Contact info: Match a valid email. Provides matching groups 1 (user name) and 2 (domain).
+export const emailRE = lockdownRE(emailREString)
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/qa/lint.txt b/qa/lint.txt new file mode 100644 index 0000000..f16c7f3 --- /dev/null +++ b/qa/lint.txt @@ -0,0 +1 @@ +Test git rev: 07014b5621171f48dcfc89b33ab7e84e83d60461 diff --git a/qa/unit-test.txt b/qa/unit-test.txt new file mode 100644 index 0000000..652f475 --- /dev/null +++ b/qa/unit-test.txt @@ -0,0 +1,35 @@ +Test git rev: 07014b5621171f48dcfc89b33ab7e84e83d60461 +PASS test/date-time.test.js +PASS test/web.test.js +PASS test/css.test.js +PASS test/numbers.test.js +PASS test/javascript.test.js +PASS test/contacts.test.js +PASS test/aws.test.js +PASS test/npm.test.js +PASS test/ids.test.js +---------------------|---------|----------|---------|---------|------------------- +File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s +---------------------|---------|----------|---------|---------|------------------- +All files | 100 | 66.66 | 100 | 100 | + src | 100 | 66.66 | 100 | 100 | + aws.js | 100 | 100 | 100 | 100 | + contacts.js | 100 | 100 | 100 | 100 | + css.js | 100 | 66.66 | 100 | 100 | 27 + date-times.mjs | 100 | 100 | 100 | 100 | + ids.js | 100 | 100 | 100 | 100 | + javascript.js | 100 | 100 | 100 | 100 | + npm.js | 100 | 100 | 100 | 100 | + numbers.js | 100 | 66.66 | 100 | 100 | 18 + web.js | 100 | 100 | 100 | 100 | + src/lib | 100 | 100 | 100 | 100 | + css-color-data.js | 100 | 100 | 100 | 100 | + lockdown-re.js | 100 | 100 | 100 | 100 | + numbers-strings.js | 100 | 100 | 100 | 100 | +---------------------|---------|----------|---------|---------|------------------- + +Test Suites: 9 passed, 9 total +Tests: 2084 passed, 2084 total +Snapshots: 0 total +Time: 0.535 s, estimated 1 s +Ran all test suites. From be2e472d5b5bbfdb8071e4476442f1e3fae05b50 Mon Sep 17 00:00:00 2001 From: Zane Rockenbaugh Date: Wed, 17 Jul 2024 09:22:26 -0500 Subject: [PATCH 3/3] removed QA files --- qa/coverage/base.css | 224 ------- qa/coverage/block-navigation.js | 87 --- qa/coverage/clover.xml | 198 ------- qa/coverage/coverage-final.json | 13 - qa/coverage/favicon.png | Bin 445 -> 0 bytes qa/coverage/index.html | 131 ----- qa/coverage/prettify.css | 1 - qa/coverage/prettify.js | 2 - qa/coverage/sort-arrow-sprite.png | Bin 138 -> 0 bytes qa/coverage/sorter.js | 196 ------- qa/coverage/src/aws.js.html | 169 ------ qa/coverage/src/contacts.js.html | 160 ----- qa/coverage/src/css.js.html | 409 ------------- qa/coverage/src/date-times.mjs.html | 304 ---------- qa/coverage/src/ids.js.html | 148 ----- qa/coverage/src/index.html | 236 -------- qa/coverage/src/javascript.js.html | 163 ------ qa/coverage/src/lib/css-color-data.js.html | 610 -------------------- qa/coverage/src/lib/index.html | 146 ----- qa/coverage/src/lib/lockdown-re.js.html | 136 ----- qa/coverage/src/lib/numbers-strings.js.html | 178 ------ qa/coverage/src/npm.js.html | 148 ----- qa/coverage/src/numbers.js.html | 271 --------- qa/coverage/src/web.js.html | 286 --------- qa/lint.txt | 1 - qa/unit-test.txt | 35 -- 26 files changed, 4252 deletions(-) delete mode 100644 qa/coverage/base.css delete mode 100644 qa/coverage/block-navigation.js delete mode 100644 qa/coverage/clover.xml delete mode 100644 qa/coverage/coverage-final.json delete mode 100644 qa/coverage/favicon.png delete mode 100644 qa/coverage/index.html delete mode 100644 qa/coverage/prettify.css delete mode 100644 qa/coverage/prettify.js delete mode 100644 qa/coverage/sort-arrow-sprite.png delete mode 100644 qa/coverage/sorter.js delete mode 100644 qa/coverage/src/aws.js.html delete mode 100644 qa/coverage/src/contacts.js.html delete mode 100644 qa/coverage/src/css.js.html delete mode 100644 qa/coverage/src/date-times.mjs.html delete mode 100644 qa/coverage/src/ids.js.html delete mode 100644 qa/coverage/src/index.html delete mode 100644 qa/coverage/src/javascript.js.html delete mode 100644 qa/coverage/src/lib/css-color-data.js.html delete mode 100644 qa/coverage/src/lib/index.html delete mode 100644 qa/coverage/src/lib/lockdown-re.js.html delete mode 100644 qa/coverage/src/lib/numbers-strings.js.html delete mode 100644 qa/coverage/src/npm.js.html delete mode 100644 qa/coverage/src/numbers.js.html delete mode 100644 qa/coverage/src/web.js.html delete mode 100644 qa/lint.txt delete mode 100644 qa/unit-test.txt diff --git a/qa/coverage/base.css b/qa/coverage/base.css deleted file mode 100644 index f418035..0000000 --- a/qa/coverage/base.css +++ /dev/null @@ -1,224 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* yellow */ -.cbranch-no { background: yellow !important; color: #111; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -.highlighted, -.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ - background: #C21F39 !important; -} -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -.medium .chart { border:1px solid #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - -span.cline-neutral { background: #eaeaea; } - -.coverage-summary td.empty { - opacity: .5; - padding-top: 4px; - padding-bottom: 4px; - line-height: 1; - color: #888; -} - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/qa/coverage/block-navigation.js b/qa/coverage/block-navigation.js deleted file mode 100644 index cc12130..0000000 --- a/qa/coverage/block-navigation.js +++ /dev/null @@ -1,87 +0,0 @@ -/* eslint-disable */ -var jumpToCode = (function init() { - // Classes of code we would like to highlight in the file view - var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; - - // Elements to highlight in the file listing view - var fileListingElements = ['td.pct.low']; - - // We don't want to select elements that are direct descendants of another match - var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` - - // Selecter that finds elements on the page to which we can jump - var selector = - fileListingElements.join(', ') + - ', ' + - notSelector + - missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` - - // The NodeList of matching elements - var missingCoverageElements = document.querySelectorAll(selector); - - var currentIndex; - - function toggleClass(index) { - missingCoverageElements - .item(currentIndex) - .classList.remove('highlighted'); - missingCoverageElements.item(index).classList.add('highlighted'); - } - - function makeCurrent(index) { - toggleClass(index); - currentIndex = index; - missingCoverageElements.item(index).scrollIntoView({ - behavior: 'smooth', - block: 'center', - inline: 'center' - }); - } - - function goToPrevious() { - var nextIndex = 0; - if (typeof currentIndex !== 'number' || currentIndex === 0) { - nextIndex = missingCoverageElements.length - 1; - } else if (missingCoverageElements.length > 1) { - nextIndex = currentIndex - 1; - } - - makeCurrent(nextIndex); - } - - function goToNext() { - var nextIndex = 0; - - if ( - typeof currentIndex === 'number' && - currentIndex < missingCoverageElements.length - 1 - ) { - nextIndex = currentIndex + 1; - } - - makeCurrent(nextIndex); - } - - return function jump(event) { - if ( - document.getElementById('fileSearch') === document.activeElement && - document.activeElement != null - ) { - // if we're currently focused on the search input, we don't want to navigate - return; - } - - switch (event.which) { - case 78: // n - case 74: // j - goToNext(); - break; - case 66: // b - case 75: // k - case 80: // p - goToPrevious(); - break; - } - }; -})(); -window.addEventListener('keydown', jumpToCode); diff --git a/qa/coverage/clover.xml b/qa/coverage/clover.xml deleted file mode 100644 index c82fd0d..0000000 --- a/qa/coverage/clover.xml +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/qa/coverage/coverage-final.json b/qa/coverage/coverage-final.json deleted file mode 100644 index 8ecd767..0000000 --- a/qa/coverage/coverage-final.json +++ /dev/null @@ -1,13 +0,0 @@ -{"/Users/zane/playground/regex-repo/src/aws.js": {"path":"/Users/zane/playground/regex-repo/src/aws.js","statementMap":{"0":{"start":{"line":16,"column":0},"end":{"line":16,"column":null}},"1":{"start":{"line":18,"column":27},"end":{"line":18,"column":90}},"2":{"start":{"line":21,"column":38},"end":{"line":21,"column":96}},"3":{"start":{"line":23,"column":32},"end":{"line":23,"column":72}},"4":{"start":{"line":25,"column":36},"end":{"line":25,"column":98}},"5":{"start":{"line":28,"column":30},"end":{"line":28,"column":68}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1},"f":{},"b":{}} -,"/Users/zane/playground/regex-repo/src/contacts.js": {"path":"/Users/zane/playground/regex-repo/src/contacts.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":19,"column":28},"end":{"line":19,"column":95}},"2":{"start":{"line":21,"column":22},"end":{"line":21,"column":52}},"3":{"start":{"line":23,"column":28},"end":{"line":23,"column":55}},"4":{"start":{"line":25,"column":22},"end":{"line":25,"column":52}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1},"f":{},"b":{}} -,"/Users/zane/playground/regex-repo/src/css.js": {"path":"/Users/zane/playground/regex-repo/src/css.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":18,"column":0},"end":{"line":18,"column":null}},"2":{"start":{"line":19,"column":0},"end":{"line":19,"column":null}},"3":{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},"4":{"start":{"line":29,"column":36},"end":{"line":29,"column":73}},"5":{"start":{"line":31,"column":30},"end":{"line":31,"column":68}},"6":{"start":{"line":34,"column":34},"end":{"line":34,"column":88}},"7":{"start":{"line":36,"column":28},"end":{"line":36,"column":64}},"8":{"start":{"line":38,"column":34},"end":{"line":38,"column":91}},"9":{"start":{"line":40,"column":28},"end":{"line":40,"column":64}},"10":{"start":{"line":42,"column":34},"end":{"line":42,"column":91}},"11":{"start":{"line":44,"column":28},"end":{"line":44,"column":64}},"12":{"start":{"line":46,"column":34},"end":{"line":46,"column":91}},"13":{"start":{"line":48,"column":28},"end":{"line":48,"column":64}},"14":{"start":{"line":50,"column":33},"end":{"line":50,"column":89}},"15":{"start":{"line":52,"column":27},"end":{"line":52,"column":62}},"16":{"start":{"line":54,"column":18},"end":{"line":54,"column":62}},"17":{"start":{"line":55,"column":20},"end":{"line":55,"column":82}},"18":{"start":{"line":56,"column":21},"end":{"line":56,"column":97}},"19":{"start":{"line":57,"column":21},"end":{"line":57,"column":80}},"20":{"start":{"line":58,"column":22},"end":{"line":58,"column":88}},"21":{"start":{"line":60,"column":28},"end":{"line":60,"column":80}},"22":{"start":{"line":62,"column":22},"end":{"line":62,"column":52}},"23":{"start":{"line":64,"column":29},"end":{"line":64,"column":83}},"24":{"start":{"line":66,"column":23},"end":{"line":66,"column":54}},"25":{"start":{"line":71,"column":23},"end":{"line":71,"column":72}},"26":{"start":{"line":72,"column":23},"end":{"line":72,"column":114}},"27":{"start":{"line":73,"column":24},"end":{"line":73,"column":129}},"28":{"start":{"line":74,"column":24},"end":{"line":74,"column":110}},"29":{"start":{"line":75,"column":25},"end":{"line":75,"column":125}},"30":{"start":{"line":77,"column":24},"end":{"line":77,"column":117}},"31":{"start":{"line":79,"column":18},"end":{"line":79,"column":44}},"32":{"start":{"line":81,"column":21},"end":{"line":81,"column":84}},"33":{"start":{"line":82,"column":17},"end":{"line":82,"column":78}},"34":{"start":{"line":84,"column":25},"end":{"line":84,"column":60}},"35":{"start":{"line":86,"column":19},"end":{"line":86,"column":46}},"36":{"start":{"line":88,"column":24},"end":{"line":89,"column":97}},"37":{"start":{"line":91,"column":18},"end":{"line":91,"column":44}},"38":{"start":{"line":93,"column":30},"end":{"line":98,"column":5}},"39":{"start":{"line":100,"column":24},"end":{"line":100,"column":56}},"40":{"start":{"line":102,"column":29},"end":{"line":106,"column":5}},"41":{"start":{"line":108,"column":23},"end":{"line":108,"column":54}}},"fnMap":{"0":{"name":"_getRequireWildcardCache","decl":{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},"loc":{"start":{"line":27,"column":30},"end":{"line":27,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},"type":"if","locations":[{"start":{"line":27,"column":30},"end":{"line":27,"column":null}}]},"1":{"loc":{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},"type":"cond-expr","locations":[{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},{"start":{"line":27,"column":30},"end":{"line":27,"column":null}}]},"2":{"loc":{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},"type":"binary-expr","locations":[{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},{"start":{"line":27,"column":30},"end":{"line":27,"column":null}},{"start":{"line":27,"column":30},"end":{"line":27,"column":null}}]}},"s":{"0":1,"1":1,"2":1,"3":2,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1},"f":{"0":1},"b":{"0":[1],"1":[0,0],"2":[1,1,1]}} -,"/Users/zane/playground/regex-repo/src/date-times.mjs": {"path":"/Users/zane/playground/regex-repo/src/date-times.mjs","statementMap":{"0":{"start":{"line":16,"column":0},"end":{"line":16,"column":null}},"1":{"start":{"line":22,"column":31},"end":{"line":22,"column":195}},"2":{"start":{"line":24,"column":12},"end":{"line":24,"column":46}},"3":{"start":{"line":25,"column":13},"end":{"line":25,"column":29}},"4":{"start":{"line":26,"column":12},"end":{"line":26,"column":41}},"5":{"start":{"line":27,"column":13},"end":{"line":27,"column":36}},"6":{"start":{"line":28,"column":13},"end":{"line":28,"column":39}},"7":{"start":{"line":29,"column":11},"end":{"line":29,"column":76}},"8":{"start":{"line":32,"column":32},"end":{"line":32,"column":111}},"9":{"start":{"line":34,"column":32},"end":{"line":34,"column":86}},"10":{"start":{"line":36,"column":26},"end":{"line":36,"column":60}},"11":{"start":{"line":38,"column":36},"end":{"line":38,"column":85}},"12":{"start":{"line":40,"column":30},"end":{"line":40,"column":68}},"13":{"start":{"line":43,"column":31},"end":{"line":43,"column":172}},"14":{"start":{"line":45,"column":29},"end":{"line":45,"column":89}},"15":{"start":{"line":47,"column":32},"end":{"line":47,"column":122}},"16":{"start":{"line":49,"column":32},"end":{"line":49,"column":84}},"17":{"start":{"line":51,"column":26},"end":{"line":51,"column":60}},"18":{"start":{"line":53,"column":13},"end":{"line":53,"column":20}},"19":{"start":{"line":55,"column":27},"end":{"line":55,"column":105}},"20":{"start":{"line":57,"column":21},"end":{"line":57,"column":50}},"21":{"start":{"line":59,"column":29},"end":{"line":59,"column":107}},"22":{"start":{"line":61,"column":23},"end":{"line":61,"column":54}},"23":{"start":{"line":63,"column":33},"end":{"line":63,"column":78}},"24":{"start":{"line":65,"column":27},"end":{"line":65,"column":62}},"25":{"start":{"line":67,"column":25},"end":{"line":67,"column":112}},"26":{"start":{"line":69,"column":19},"end":{"line":69,"column":46}},"27":{"start":{"line":71,"column":39},"end":{"line":71,"column":133}},"28":{"start":{"line":73,"column":33},"end":{"line":73,"column":74}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1},"f":{},"b":{}} -,"/Users/zane/playground/regex-repo/src/ids.js": {"path":"/Users/zane/playground/regex-repo/src/ids.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":19,"column":25},"end":{"line":19,"column":118}},"2":{"start":{"line":21,"column":19},"end":{"line":21,"column":46}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1},"f":{},"b":{}} -,"/Users/zane/playground/regex-repo/src/javascript.js": {"path":"/Users/zane/playground/regex-repo/src/javascript.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":19,"column":35},"end":{"line":19,"column":346}},"2":{"start":{"line":21,"column":29},"end":{"line":21,"column":66}},"3":{"start":{"line":24,"column":31},"end":{"line":24,"column":12997}},"4":{"start":{"line":26,"column":25},"end":{"line":26,"column":58}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1},"f":{},"b":{}} -,"/Users/zane/playground/regex-repo/src/npm.js": {"path":"/Users/zane/playground/regex-repo/src/npm.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":19,"column":35},"end":{"line":19,"column":93}},"2":{"start":{"line":21,"column":29},"end":{"line":21,"column":66}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1},"f":{},"b":{}} -,"/Users/zane/playground/regex-repo/src/numbers.js": {"path":"/Users/zane/playground/regex-repo/src/numbers.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":18,"column":0},"end":{"line":18,"column":46}},"2":{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},"3":{"start":{"line":20,"column":28},"end":{"line":20,"column":50}},"4":{"start":{"line":22,"column":22},"end":{"line":22,"column":52}},"5":{"start":{"line":24,"column":31},"end":{"line":24,"column":55}},"6":{"start":{"line":26,"column":25},"end":{"line":26,"column":58}},"7":{"start":{"line":28,"column":36},"end":{"line":28,"column":65}},"8":{"start":{"line":30,"column":30},"end":{"line":30,"column":68}},"9":{"start":{"line":32,"column":26},"end":{"line":32,"column":45}},"10":{"start":{"line":34,"column":20},"end":{"line":34,"column":48}},"11":{"start":{"line":36,"column":33},"end":{"line":36,"column":59}},"12":{"start":{"line":38,"column":27},"end":{"line":38,"column":62}},"13":{"start":{"line":40,"column":37},"end":{"line":40,"column":67}},"14":{"start":{"line":42,"column":31},"end":{"line":42,"column":70}},"15":{"start":{"line":44,"column":42},"end":{"line":44,"column":77}},"16":{"start":{"line":46,"column":36},"end":{"line":46,"column":80}},"17":{"start":{"line":48,"column":30},"end":{"line":48,"column":53}},"18":{"start":{"line":50,"column":24},"end":{"line":50,"column":56}},"19":{"start":{"line":52,"column":35},"end":{"line":52,"column":63}},"20":{"start":{"line":54,"column":29},"end":{"line":54,"column":66}},"21":{"start":{"line":56,"column":30},"end":{"line":56,"column":53}},"22":{"start":{"line":58,"column":24},"end":{"line":58,"column":56}},"23":{"start":{"line":60,"column":35},"end":{"line":60,"column":63}},"24":{"start":{"line":62,"column":29},"end":{"line":62,"column":66}}},"fnMap":{"0":{"name":"_getRequireWildcardCache","decl":{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},"loc":{"start":{"line":18,"column":46},"end":{"line":18,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},"type":"if","locations":[{"start":{"line":18,"column":46},"end":{"line":18,"column":null}}]},"1":{"loc":{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},"type":"cond-expr","locations":[{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},{"start":{"line":18,"column":46},"end":{"line":18,"column":null}}]},"2":{"loc":{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},"type":"binary-expr","locations":[{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},{"start":{"line":18,"column":46},"end":{"line":18,"column":null}},{"start":{"line":18,"column":46},"end":{"line":18,"column":null}}]}},"s":{"0":1,"1":1,"2":2,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1},"f":{"0":1},"b":{"0":[1],"1":[0,0],"2":[1,1,1]}} -,"/Users/zane/playground/regex-repo/src/web.js": {"path":"/Users/zane/playground/regex-repo/src/web.js","statementMap":{"0":{"start":{"line":17,"column":0},"end":{"line":17,"column":null}},"1":{"start":{"line":19,"column":23},"end":{"line":21,"column":50}},"2":{"start":{"line":23,"column":17},"end":{"line":23,"column":42}},"3":{"start":{"line":25,"column":16},"end":{"line":25,"column":52}},"4":{"start":{"line":26,"column":29},"end":{"line":26,"column":64}},"5":{"start":{"line":28,"column":23},"end":{"line":28,"column":54}},"6":{"start":{"line":32,"column":24},"end":{"line":43,"column":209}},"7":{"start":{"line":45,"column":18},"end":{"line":45,"column":49}},"8":{"start":{"line":47,"column":28},"end":{"line":47,"column":47}},"9":{"start":{"line":49,"column":22},"end":{"line":49,"column":52}},"10":{"start":{"line":51,"column":31},"end":{"line":51,"column":230}},"11":{"start":{"line":53,"column":25},"end":{"line":53,"column":58}},"12":{"start":{"line":55,"column":30},"end":{"line":55,"column":70}},"13":{"start":{"line":57,"column":24},"end":{"line":57,"column":56}},"14":{"start":{"line":59,"column":33},"end":{"line":59,"column":113}},"15":{"start":{"line":61,"column":27},"end":{"line":61,"column":62}},"16":{"start":{"line":65,"column":26},"end":{"line":65,"column":239}},"17":{"start":{"line":67,"column":20},"end":{"line":67,"column":48}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2},"f":{},"b":{}} -,"/Users/zane/playground/regex-repo/src/lib/css-color-data.js": {"path":"/Users/zane/playground/regex-repo/src/lib/css-color-data.js","statementMap":{"0":{"start":{"line":17,"column":26},"end":{"line":34,"column":1}},"1":{"start":{"line":36,"column":26},"end":{"line":38,"column":17}},"2":{"start":{"line":40,"column":26},"end":{"line":171,"column":17}},"3":{"start":{"line":173,"column":25},"end":{"line":175,"column":17}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1},"f":{},"b":{}} -,"/Users/zane/playground/regex-repo/src/lib/lockdown-re.js": {"path":"/Users/zane/playground/regex-repo/src/lib/lockdown-re.js","statementMap":{"0":{"start":{"line":17,"column":26},"end":{"line":17,"column":71}},"1":{"start":{"line":17,"column":42},"end":{"line":17,"column":71}},"2":{"start":{"line":17,"column":71},"end":{"line":17,"column":null}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":17,"column":26},"end":{"line":17,"column":27}},"loc":{"start":{"line":17,"column":42},"end":{"line":17,"column":71}}}},"branchMap":{},"s":{"0":9,"1":54,"2":9},"f":{"0":54},"b":{}} -,"/Users/zane/playground/regex-repo/src/lib/numbers-strings.js": {"path":"/Users/zane/playground/regex-repo/src/lib/numbers-strings.js","statementMap":{"0":{"start":{"line":19,"column":26},"end":{"line":19,"column":75}},"1":{"start":{"line":20,"column":31},"end":{"line":20,"column":72}},"2":{"start":{"line":21,"column":21},"end":{"line":21,"column":65}},"3":{"start":{"line":22,"column":28},"end":{"line":22,"column":58}},"4":{"start":{"line":23,"column":32},"end":{"line":23,"column":62}},"5":{"start":{"line":24,"column":37},"end":{"line":25,"column":51}},"6":{"start":{"line":26,"column":25},"end":{"line":26,"column":80}},"7":{"start":{"line":27,"column":30},"end":{"line":28,"column":80}},"8":{"start":{"line":29,"column":25},"end":{"line":29,"column":80}},"9":{"start":{"line":30,"column":30},"end":{"line":31,"column":76}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2},"f":{},"b":{}} -} diff --git a/qa/coverage/favicon.png b/qa/coverage/favicon.png deleted file mode 100644 index c1525b811a167671e9de1fa78aab9f5c0b61cef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmV;u0Yd(XP))rP{nL}Ln%S7`m{0DjX9TLF* zFCb$4Oi7vyLOydb!7n&^ItCzb-%BoB`=x@N2jll2Nj`kauio%aw_@fe&*}LqlFT43 z8doAAe))z_%=P%v^@JHp3Hjhj^6*Kr_h|g_Gr?ZAa&y>wxHE99Gk>A)2MplWz2xdG zy8VD2J|Uf#EAw*bo5O*PO_}X2Tob{%bUoO2G~T`@%S6qPyc}VkhV}UifBuRk>%5v( z)x7B{I~z*k<7dv#5tC+m{km(D087J4O%+<<;K|qwefb6@GSX45wCK}Sn*> - - - - Code coverage report for All files - - - - - - - - - -
-
-

All files

-
- -
- 100% - Statements - 153/153 -
- - -
- 66.66% - Branches - 8/12 -
- - -
- 100% - Functions - 3/3 -
- - -
- 100% - Lines - 150/150 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
src -
-
100%136/13666.66%8/12100%2/2100%135/135
src/lib -
-
100%17/17100%0/0100%1/1100%15/15
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/prettify.css b/qa/coverage/prettify.css deleted file mode 100644 index b317a7c..0000000 --- a/qa/coverage/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/qa/coverage/prettify.js b/qa/coverage/prettify.js deleted file mode 100644 index b322523..0000000 --- a/qa/coverage/prettify.js +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-disable */ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/qa/coverage/sort-arrow-sprite.png b/qa/coverage/sort-arrow-sprite.png deleted file mode 100644 index 6ed68316eb3f65dec9063332d2f69bf3093bbfab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qh}Z>jv*C{$p!i!8j}?a+@3A= zIAGwzjijN=FBi!|L1t?LM;Q;gkwn>2cAy-KV{dn nf0J1DIvEHQu*n~6U}x}qyky7vi4|9XhBJ7&`njxgN@xNA8m%nc diff --git a/qa/coverage/sorter.js b/qa/coverage/sorter.js deleted file mode 100644 index 2bb296a..0000000 --- a/qa/coverage/sorter.js +++ /dev/null @@ -1,196 +0,0 @@ -/* eslint-disable */ -var addSorting = (function() { - 'use strict'; - var cols, - currentSort = { - index: 0, - desc: false - }; - - // returns the summary table element - function getTable() { - return document.querySelector('.coverage-summary'); - } - // returns the thead element of the summary table - function getTableHeader() { - return getTable().querySelector('thead tr'); - } - // returns the tbody element of the summary table - function getTableBody() { - return getTable().querySelector('tbody'); - } - // returns the th element for nth column - function getNthColumn(n) { - return getTableHeader().querySelectorAll('th')[n]; - } - - function onFilterInput() { - const searchValue = document.getElementById('fileSearch').value; - const rows = document.getElementsByTagName('tbody')[0].children; - for (let i = 0; i < rows.length; i++) { - const row = rows[i]; - if ( - row.textContent - .toLowerCase() - .includes(searchValue.toLowerCase()) - ) { - row.style.display = ''; - } else { - row.style.display = 'none'; - } - } - } - - // loads the search box - function addSearchBox() { - var template = document.getElementById('filterTemplate'); - var templateClone = template.content.cloneNode(true); - templateClone.getElementById('fileSearch').oninput = onFilterInput; - template.parentElement.appendChild(templateClone); - } - - // loads all columns - function loadColumns() { - var colNodes = getTableHeader().querySelectorAll('th'), - colNode, - cols = [], - col, - i; - - for (i = 0; i < colNodes.length; i += 1) { - colNode = colNodes[i]; - col = { - key: colNode.getAttribute('data-col'), - sortable: !colNode.getAttribute('data-nosort'), - type: colNode.getAttribute('data-type') || 'string' - }; - cols.push(col); - if (col.sortable) { - col.defaultDescSort = col.type === 'number'; - colNode.innerHTML = - colNode.innerHTML + ''; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function(a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function(a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc - ? ' sorted-desc' - : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function() { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i = 0; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function() { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(); - addSearchBox(); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/qa/coverage/src/aws.js.html b/qa/coverage/src/aws.js.html deleted file mode 100644 index ac97b54..0000000 --- a/qa/coverage/src/aws.js.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - Code coverage report for src/aws.js - - - - - - - - - -
-
-

All files / src aws.js

-
- -
- 100% - Statements - 6/6 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 0/0 -
- - -
- 100% - Lines - 6/6 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -1x -  -  -1x -  -1x -  -1x -  -  -1x - 
/*
-Copyright 2023 Liquid Labs LLC
- 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
- 
-    http://www.apache.org/licenses/LICENSE-2.0
- 
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-import { ipFormatREString } from './web'
- 
-const invalidS3Partials = `(?!^${ipFormatREString}|^xn--|^sthree-|.+-s3alias$|.+--ol-s3$)`
-// const invalidS3Partials = `(?!^${ipFormatREString}|^xn--|^sthree-)`
- 
-export const awsS3TABucketNameREString = invalidS3Partials + '^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$'
-// AWS: Matches (most) S3 Transfer Acceleration compatible S3 bucket name. Note `awsS3TABucketNameREString` cannot be used for partial matches.
-export const awsS3TABucketNameRE = new RegExp(awsS3TABucketNameREString)
- 
-export const awsS3BucketNameREString = invalidS3Partials + '^[a-z0-9](?:\\.?[a-z0-9-]+)+[a-z0-9]$'
-// export const awsS3BucketNameREString = '^[a-z0-9](?:\\.?[a-z0-9-]+)+[a-z0-9]$'
-// AWS: Matches (most) valid S3 bucket name. Note `awsS3BucketNameREString` cannot be used for partial matches. Does not enforce 63 character limit.
-export const awsS3BucketNameRE = new RegExp(awsS3BucketNameREString)
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/src/contacts.js.html b/qa/coverage/src/contacts.js.html deleted file mode 100644 index 69ced74..0000000 --- a/qa/coverage/src/contacts.js.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - Code coverage report for src/contacts.js - - - - - - - - - -
-
-

All files / src contacts.js

-
- -
- 100% - Statements - 5/5 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 0/0 -
- - -
- 100% - Lines - 5/5 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -1x -  -1x -  -1x -  -1x - 
/*
-Copyright 2023 Liquid Labs LLC
- 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
- 
-    http://www.apache.org/licenses/LICENSE-2.0
- 
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
- 
-import { lockdownRE } from './lib/lockdown-re'
- 
-export const usPhoneREString = '(\\+?1[._ -]?)?(\\(\\d{3}\\)|\\d{3})[._ -]?\\d{3}[._ -]?\\d{4}'
-// Contact info: Matches US phone numbers with optional country code and area code.
-export const usPhoneRE = lockdownRE(usPhoneREString)
- 
-export const zipCodeREString = '\\d{5}([._ -]?\\d{4})?'
-// Contact info: Matches 5 or 9 digit US zip codes.
-export const zipCodeRE = lockdownRE(zipCodeREString)
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/src/css.js.html b/qa/coverage/src/css.js.html deleted file mode 100644 index 8556e58..0000000 --- a/qa/coverage/src/css.js.html +++ /dev/null @@ -1,409 +0,0 @@ - - - - - - Code coverage report for src/css.js - - - - - - - - - -
-
-

All files / src css.js

-
- -
- 100% - Statements - 42/42 -
- - -
- 66.66% - Branches - 4/6 -
- - -
- 100% - Functions - 1/1 -
- - -
- 100% - Lines - 42/42 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -1x -1x -  -  -  -  -  -  -  -2x -  -1x -  -1x -  -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -1x -1x -1x -1x -  -1x -  -1x -  -1x -  -1x -  -  -  -  -1x -1x -1x -1x -1x -  -1x -  -1x -  -1x -1x -  -1x -  -1x -  -1x -  -  -1x -  -1x -  -  -  -  -  -  -1x -  -1x -  -  -  -  -  -1x - 
/*
-Copyright 2023 Liquid Labs LLC
- 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
- 
-    http://www.apache.org/licenses/LICENSE-2.0
- 
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
- 
-import * as pre from './lib/css-color-data'
-import { lockdownRE } from './lib/lockdown-re'
-import {
-  floatStr,
-  zeroTo255Str,
-  zeroTo1FloatStr,
-  zeroTo100PercentStr,
-  zeroTo100FloatPercentStr,
-  zeroTo255FloatStr,
-  zeroTo360Str
-} from './lib/numbers-strings'
- 
-export const hexColorNoAlphaREString = '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'
-// Colors/CSS: Matches hex specified RGB colors with no alpha channel.
-export const hexColorNoAlphaRE = lockdownRE(hexColorNoAlphaREString)
- 
-// level 4 adds alpha hex support
-export const hexColorAlphaREString = '#([a-fA-F0-9]{6}|[a-fA-F0-9]{8}|[a-fA-F0-9]{3,4})'
-// Colors/CSS: Matches hex specified RGBA colors with an alpha channel.
-export const hexColorAlphaRE = lockdownRE(hexColorAlphaREString)
- 
-export const cssPreColors1REString = '(?:' + Object.keys(pre.cssPreColors1).join('|') + ')'
-// Colors/CSS: Matches CSS1 predefined color names.
-export const cssPreColors1RE = lockdownRE(cssPreColors1REString)
- 
-export const cssPreColors2REString = '(?:' + Object.keys(pre.cssPreColors2).join('|') + ')'
-// Colors/CSS: Matches CSS2 predefined color names.
-export const cssPreColors2RE = lockdownRE(cssPreColors2REString)
- 
-export const cssPreColors3REString = '(?:' + Object.keys(pre.cssPreColors3).join('|') + ')'
-// Colors/CSS: Matches CSS3 predefined color names.
-export const cssPreColors3RE = lockdownRE(cssPreColors3REString)
- 
-export const cssPreColorsREString = '(?:' + Object.keys(pre.cssPreColors).join('|') + ')'
-// Colors/CSS: Matches CSS4 predefined color names.
-export const cssPreColorsRE = lockdownRE(cssPreColorsREString)
- 
-const alphaStr = `(${zeroTo1FloatStr}|${zeroTo100PercentStr})`
-const rgb1IntStr = `rgb\\((\\s*${zeroTo255Str}\\s*,){2}\\s*${zeroTo255Str}\\s*\\)`
-const rgb1PercStr = `rgb\\((\\s*${zeroTo100PercentStr}\\s*,){2}\\s*${zeroTo100PercentStr}\\s*\\)`
-const rgba3IntStr = `rgba\\((\\s*${zeroTo255Str}\\s*,){3}\\s*${alphaStr}\\s*\\)`
-const rgba3PercStr = `rgba\\((\\s*${zeroTo100PercentStr}\\s*,){3}\\s*${alphaStr}\\s*\\)`
- 
-export const rgbFuncREString = '(?:' + [rgb1IntStr, rgb1PercStr].join('|') + ')'
-// Colors/CSS: Matches CSS1 'rgb(...) using '0...255 and percent (integer) notation.
-export const rgbFuncRE = lockdownRE(rgbFuncREString)
- 
-export const rgbaFuncREString = '(?:' + [rgba3IntStr, rgba3PercStr].join('|') + ')'
-// Colors/CSS: Matches CSS3 'rgba(...) using '0...255 and percent (integer) notation.
-export const rgbaFuncRE = lockdownRE(rgbaFuncREString)
- 
-// In level 4, rgba is an alias for rgb, supports floats, and space notation
-// NOTE: The spec allows float values like '+.25e2%', which cannot be recognized
-// via RE and are not supported.
-const alphaFloatStr = `(${zeroTo1FloatStr}|${zeroTo100FloatPercentStr})`
-const rgbDecFuncStr = `(\\s*${zeroTo255FloatStr}\\s*,){2}\\s*${zeroTo255FloatStr}\\s*(,\\s*${alphaFloatStr}\\s*)?`
-const rgbPercFuncStr = `(\\s*${zeroTo100FloatPercentStr}\\s*,){2}\\s*${zeroTo100FloatPercentStr}\\s*(,\\s*${alphaFloatStr}\\s*)?`
-const rgbDecSpaceStr = `(\\s*${zeroTo255FloatStr}\\s+){2}${zeroTo255FloatStr}\\s*(/\\s*${alphaFloatStr}\\s*)?`
-const rgbPercSpaceStr = `(\\s*${zeroTo100FloatPercentStr}\\s+){2}${zeroTo100FloatPercentStr}\\s*(/\\s*${alphaFloatStr}\\s*)?`
- 
-export const rgbREString = `rgba?\\((${rgbDecFuncStr}|${rgbPercFuncStr}|${rgbDecSpaceStr}|${rgbPercSpaceStr})\\s*\\)`
-// Colors/CSS: Matches CSS4 'rgb(...) and rgba(...) functios  using '0...255 and percent (float) notation.
-export const rgbRE = lockdownRE(rgbREString)
- 
-const hsl3BaseStr = `\\s*${zeroTo360Str}(deg)?\\s*(,\\s*${zeroTo100PercentStr}\\s*)`
-const hsl3Opts = [`hsl\\(${hsl3BaseStr}{2}\\)`, `hsla\\(${hsl3BaseStr}{3}\\)`]
- 
-export const hsl3REString = '(?:' + hsl3Opts.join('|') + ')'
-// Colors/CSS: Matches CSS3 'hsl(...) and hsla(...) deg and percent notation.
-export const hsl3RE = lockdownRE(hsl3REString)
- 
-export const hslREString =
-  `hsla?\\(\\s*${floatStr}(deg|grad|rad|turn)?\\s*(,\\s*${zeroTo100FloatPercentStr}\\s*){2,3}\\)`
-// Colors/CSS: Matches CSS4 'hsl(...) and hsla(...) deg, grad, rad, turn and percent notation.
-export const hslRE = lockdownRE(hslREString)
- 
-export const cssColor3REString = '(?:' +
-  [hexColorNoAlphaREString, rgb1IntStr, rgb1PercStr, rgba3IntStr, rgba3PercStr]
-    .concat(Object.keys(pre.cssPreColors3))
-    .concat(hsl3Opts)
-    .join('|') +
-  ')'
-// Colors/CSS: Matches CSS3 'hex, rgb, rgba, hsl, and predefined colors.
-export const cssColor3RE = lockdownRE(cssColor3REString)
- 
-export const cssColorREString = '(?:' +
-  [hexColorAlphaREString, rgbREString, hslREString]
-    .concat(Object.keys(pre.cssPreColors))
-    .join('|') +
-  ')'
-// Colors/CSS: Matches CSS4 'hex, rgb, rgba, hsl, and predefined colors.
-export const cssColorRE = lockdownRE(cssColorREString)
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/src/date-times.mjs.html b/qa/coverage/src/date-times.mjs.html deleted file mode 100644 index ec0fcec..0000000 --- a/qa/coverage/src/date-times.mjs.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - Code coverage report for src/date-times.mjs - - - - - - - - - -
-
-

All files / src date-times.mjs

-
- -
- 100% - Statements - 29/29 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 0/0 -
- - -
- 100% - Lines - 29/29 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -  -  -  -  -1x -  -1x -1x -1x -1x -1x -1x -  -  -1x -  -1x -  -1x -  -1x -  -1x -  -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x - 
/*
-Copyright 2023 Liquid Labs LLC
- 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
- 
-    http://www.apache.org/licenses/LICENSE-2.0
- 
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-import { lockdownRE } from './lib/lockdown-re'
- 
-// Started RE based on https://www.myintervals.com/blog/2009/05/20/iso-8601-date-validation-that-doesnt-suck/
-// Made some corrections, rearranged capture groups.
- 
-// Date/Time: (string only) Matches the day designation portion of an ISO 8601 date+time. Provides matching groups 1 (year), 3 (month), and 4 (day of month), 5 (week of year), 6 (day of week date), and 7 (ordinal or Julian date).
-export const iso8601DayREString = '(?:([+-]?\\d{4})(?:(-?)(?:(0[1-9]|1[0-2])(?:\\2([12]\\d|0[1-9]|3[01])?)?|W([0-4]\\d|5[0-3])\\2([1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3(?:[0-5]\\d|6[1-6])))?)?)'
- 
-const eod = '(24(?<endSep>:?)00\\k<endSep>00)'
-const frac = '(?:[.,](\\d+))'
-const hr = `(?:([01]\\d|2[0-3])${frac}?)`
-const min = `(?:([0-5]\\d)${frac}?)`
-const sec = `(?:([0-5]\\d|60)${frac}?)`
-const tz = '([zZ]|(?:[+-](?!00(?::?00)?)(?:[01]\\d|2[0-3])(?::?[0-5]\\d)?))'
- 
-// Date/Time: (string only) Matches the time designation portion of an ISO 8601 date+time. Provides matching groups 1 (special end of day time), 3 (hours), 3 (fraction of hour), 5 (minutes), 6 (fraction of minute), 7 (seconds), and 8 (fraction of seconds).
-export const iso8601TimeREString = `(?:(?:${eod}|${hr}(?:(?<timeSep>:?)${min}(?:\\k<timeSep>${sec})?)?)${tz}?)`
- 
-export const iso8601DateREString = `${iso8601DayREString}(?:T${iso8601TimeREString})?`
-// Date/Time: Matches an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date time like '20240101T1212Z. Provides matching groups 1 (year), 3 (month), and 4 (day of month), 5 (week of year), 6 (day of week date), and 7 (ordinal or Julian date), 8 (special end of day time), 10 (hour), 11 (decimal fraction of hour), 13 (minute), 14 (decimal fraction of minute), 15 (seconds), 16 (decimal fraction of a second), and 17 (timezone designation). (Groups 2, 11, and 13 are internal back references.)
-export const iso8601DateRE = lockdownRE(iso8601DateREString)
- 
-export const iso8601DateTimeREString = `${iso8601DayREString}T${iso8601TimeREString}`
-// Date/Time: Matches an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) _requiring_ both date and time components. See [`iso8601DateRE`](#iso8601datere) for matching groups.
-export const iso8601DateTimeRE = lockdownRE(iso8601DateTimeREString)
- 
-// Date/Time: (string only) Matches the day designation portion of an RFC 2822 date+time. Provides matching groups 1 (day of week name), 2 (day of month), 3 (year).
-export const rfc2822DayREString = '(?:(?:(Sun|Mon|Tue|Wed|Thu|Fri|Sat),\\s+)?(0[1-9]|[1-2]?[0-9]|3[01])\\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s+(\\d{2,4}))'
-// Date/Time: (string only) Matches a general timezone designation; compliant with RFC 2822 timezone portion. Provides matching groups 1 (timezone).
-export const timezoneREString = '([+-][0-9]{2}[0-5][0-9]|(?:UT|GMT|[A-Z]{3,5}|[A-IK-Z]))'
-// Date/Time: (string only) Matches the time designation portion of an RFC 2822 date+time. Provides matching groups 1 (hour), 2 (minutes), 3 (seconds), and 4 (timezone).
-export const rfc2822TimeREString = `(?:(2[0-3]|[0-1][0-9]):([0-5][0-9])(?::(60|[0-5][0-9]))?(?:\\s+${timezoneREString})?)`
- 
-export const rfc2822DateREString = `${rfc2822DayREString}\\s+${rfc2822TimeREString}`
-// Date/Tmie: Matches an [RFC 2822](https://datatracker.ietf.org/doc/html/rfc2822#section-3.3) style date like 'Mon, 6 Jan 1992 12:12 UTC'. Provides matching groups 1 (day of week), 2 (day of month), 3 (month), and 4 (year), 5 (hour), 6 (min), 7 (second), and 8 (time zone).
-export const rfc2822DateRE = lockdownRE(rfc2822DateREString)
- 
-const seps = '[./-]'
- 
-export const usDateREString = `(0?[1-9]|1[0-2])${seps}(0?[1-9]|[1-2][0-9]|3[0-1])${seps}([+-])?(\\d{1,})`
-// Date/Time: Matches a US style 'MM/DD/YYYY' string. Accepts separators '.', '/', '-'. Will except 1 or 2 digits for month and day and 1-4 digits for the year. Also accepts a + or - before the year. Provides capture groups 1 (month), 2 (day of month), 3 (BCE/CE indicator), and 4 (year).
-export const usDateRE = lockdownRE(usDateREString)
- 
-export const intlDateREString = `([+-])?(\\d{1,})${seps}(0?[1-9]|1[0-2])${seps}(0?[1-9]|[1-2][0-9]|3[0-1])`
-// Date/Time: Matches an international style 'YYYY/MM/DD' string. Accepts separators '.', '/', '-'. Will except 1 or 2 digits for month and day and 1-4 digits for the year. Also accepts a + or - before the year. Provides capture groups 1 (BCE/CE indicator), 2 (year), 3 (month), 4 (day).
-export const intlDateRE = lockdownRE(intlDateREString)
- 
-export const militaryTimeREString = '(?:(2400)|([0-1][0-9]|2[0-3])([0-5]\\d))'
-// Date/Time: Matches military time style 'HHMM' string. Provides capture groups 1 (special 2400 time), 2 (hour), and 3 (minutes).
-export const militaryTimeRE = lockdownRE(militaryTimeREString)
- 
-export const timeREString = '(?:(0?[1-9]|1[0-2]):([0-5][0-9])(?::([0-5][0-9])(?:[.,](\\d+))?)?\\s*([aApP][mM]))'
-// Date/Time: Matches a twelve hour time designation, requires AM or PM designation. Allows optional leading 0 in hour. Provides matching groups 1 (hour), 2 (minutes), 3 (seconds, without decimal fractions), 4 (decimal fraction seconds), and 5 (AM/PM indicator).
-export const timeRE = lockdownRE(timeREString)
- 
-export const twentyFourHourTimeREString = '(?:(24:00(?::00)?)|(0?[1-9]|1[0-9]|2[0-3]):([0-5][0-9])(?::([0-5][0-9])(?:[.,](\\d+))?)?)'
-// Date/Time: Matches a twenty-four hour time designationAllows optional leading 0 in hour. Provides matching groups 1 (special 24:00 designation with optional seconds), 2 (hour), 3 (minutes), 4 (seconds, without decimal fractions), 5 (decimal fraction seconds).
-export const twentyFourHourTimeRE = lockdownRE(twentyFourHourTimeREString)
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/src/ids.js.html b/qa/coverage/src/ids.js.html deleted file mode 100644 index 877f92a..0000000 --- a/qa/coverage/src/ids.js.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - Code coverage report for src/ids.js - - - - - - - - - -
-
-

All files / src ids.js

-
- -
- 100% - Statements - 3/3 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 0/0 -
- - -
- 100% - Lines - 3/3 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -1x -  -1x - 
/*
-Copyright 2023 Liquid Labs LLC
- 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
- 
-    http://www.apache.org/licenses/LICENSE-2.0
- 
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
- 
-import { lockdownRE } from './lib/lockdown-re'
- 
-export const uuidREString = '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}'
-// Identifiers: Matches a UUID.
-export const uuidRE = lockdownRE(uuidREString)
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/src/index.html b/qa/coverage/src/index.html deleted file mode 100644 index 16a5b47..0000000 --- a/qa/coverage/src/index.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - Code coverage report for src - - - - - - - - - -
-
-

All files src

-
- -
- 100% - Statements - 136/136 -
- - -
- 66.66% - Branches - 8/12 -
- - -
- 100% - Functions - 2/2 -
- - -
- 100% - Lines - 135/135 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
aws.js -
-
100%6/6100%0/0100%0/0100%6/6
contacts.js -
-
100%5/5100%0/0100%0/0100%5/5
css.js -
-
100%42/4266.66%4/6100%1/1100%42/42
date-times.mjs -
-
100%29/29100%0/0100%0/0100%29/29
ids.js -
-
100%3/3100%0/0100%0/0100%3/3
javascript.js -
-
100%5/5100%0/0100%0/0100%5/5
npm.js -
-
100%3/3100%0/0100%0/0100%3/3
numbers.js -
-
100%25/2566.66%4/6100%1/1100%24/24
web.js -
-
100%18/18100%0/0100%0/0100%18/18
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/src/javascript.js.html b/qa/coverage/src/javascript.js.html deleted file mode 100644 index 9824077..0000000 --- a/qa/coverage/src/javascript.js.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - Code coverage report for src/javascript.js - - - - - - - - - -
-
-

All files / src javascript.js

-
- -
- 100% - Statements - 5/5 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 0/0 -
- - -
- 100% - Lines - 5/5 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -1x -  -1x -  -  -1x -  -1x - 
/*
-Copyright 2023 Liquid Labs LLC
- 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
- 
-    http://www.apache.org/licenses/LICENSE-2.0
- 
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
- 
-import { lockdownRE } from './lib/lockdown-re'
- 
-export const jsReservedWordREString = '(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)'
-// JavaScript: Matches a JS resereved word.
-export const jsReservedWordRE = lockdownRE(jsReservedWordREString)
- 
-/* credit to: https://stackoverflow.com/questions/1661197/what-characters-are-valid-for-javascript-variable-names */
-export const jsVariableREString = '(?!(?:(?:^| |;)do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)(?: |;|$))[$A-Z_a-z\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc][$A-Z_a-z\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc0-9\\u0300-\\u036f\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08e4-\\u08fe\\u0900-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c01-\\u0c03\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c82\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d02\\u0d03\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19b0-\\u19c0\\u19c8\\u19c9\\u19d0-\\u19d9\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf2-\\u1cf4\\u1dc0-\\u1de6\\u1dfc-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua880\\ua881\\ua8b4-\\ua8c4\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua900-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f]*'
-// JavaScript: Matches a valid JS variable name.
-export const jsVariableRE = lockdownRE(jsVariableREString)
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/src/lib/css-color-data.js.html b/qa/coverage/src/lib/css-color-data.js.html deleted file mode 100644 index eea5d7a..0000000 --- a/qa/coverage/src/lib/css-color-data.js.html +++ /dev/null @@ -1,610 +0,0 @@ - - - - - - Code coverage report for src/lib/css-color-data.js - - - - - - - - - -
-
-

All files / src/lib css-color-data.js

-
- -
- 100% - Statements - 4/4 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 0/0 -
- - -
- 100% - Lines - 4/4 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -  -  -1x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -  - 
/*
-Copyright 2023 Liquid Labs LLC
- 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
- 
-    http://www.apache.org/licenses/LICENSE-2.0
- 
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
- 
-export const cssPreColors1 = {
-  black   : '#000000',
-  silver  : '#c0c0c0',
-  gray    : '#808080',
-  white   : '#ffffff',
-  maroon  : '#800000',
-  red     : '#ff0000',
-  purple  : '#800080',
-  fuchsia : '#ff00ff',
-  green   : '#008000',
-  lime    : '#00ff00',
-  olive   : '#808000',
-  yellow  : '#ffff00',
-  navy    : '#000080',
-  blue    : '#0000ff',
-  teal    : '#008080',
-  aqua    : '#00ffff'
-}
- 
-export const cssPreColors2 = Object.assign({
-  orange : '#ffa500'
-}, cssPreColors1)
- 
-export const cssPreColors3 = Object.assign({
-  aliceblue            : '#f0f8ff',
-  antiquewhite         : '#faebd7',
-  aquamarine           : '#7fffd4',
-  azure                : '#f0ffff',
-  beige                : '#f5f5dc',
-  bisque               : '#ffe4c4',
-  blanchedalmond       : '#ffebcd',
-  blueviolet           : '#8a2be2',
-  brown                : '#a52a2a',
-  burlywood            : '#deb887',
-  cadetblue            : '#5f9ea0',
-  chartreuse           : '#7fff00',
-  chocolate            : '#d2691e',
-  coral                : '#ff7f50',
-  cornflowerblue       : '#6495ed',
-  cornsilk             : '#fff8dc',
-  crimson              : '#dc143c',
-  cyan                 : 'aqua',
-  darkblue             : '#00008b',
-  darkcyan             : '#008b8b',
-  darkgoldenrod        : '#b8860b',
-  darkgray             : '#a9a9a9',
-  darkgreen            : '#006400',
-  darkgrey             : '#a9a9a9',
-  darkkhaki            : '#bdb76b',
-  darkmagenta          : '#8b008b',
-  darkolivegreen       : '#556b2f',
-  darkorange           : '#ff8c00',
-  darkorchid           : '#9932cc',
-  darkred              : '#8b0000',
-  darksalmon           : '#e9967a',
-  darkseagreen         : '#8fbc8f',
-  darkslateblue        : '#483d8b',
-  darkslategray        : '#2f4f4f',
-  darkslategrey        : '#2f4f4f',
-  darkturquoise        : '#00ced1',
-  darkviolet           : '#9400d3',
-  deeppink             : '#ff1493',
-  deepskyblue          : '#00bfff',
-  dimgray              : '#696969',
-  dimgrey              : '#696969',
-  dodgerblue           : '#1e90ff',
-  firebrick            : '#b22222',
-  floralwhite          : '#fffaf0',
-  forestgreen          : '#228b22',
-  gainsboro            : '#dcdcdc',
-  ghostwhite           : '#f8f8ff',
-  gold                 : '#ffd700',
-  goldenrod            : '#daa520',
-  greenyellow          : '#adff2f',
-  grey                 : '#808080',
-  honeydew             : '#f0fff0',
-  hotpink              : '#ff69b4',
-  indianred            : '#cd5c5c',
-  indigo               : '#4b0082',
-  ivory                : '#fffff0',
-  khaki                : '#f0e68c',
-  lavender             : '#e6e6fa',
-  lavenderblush        : '#fff0f5',
-  lawngreen            : '#7cfc00',
-  lemonchiffon         : '#fffacd',
-  lightblue            : '#add8e6',
-  lightcoral           : '#f08080',
-  lightcyan            : '#e0ffff',
-  lightgoldenrodyellow : '#fafad2',
-  lightgray            : '#d3d3d3',
-  lightgreen           : '#90ee90',
-  lightgrey            : '#d3d3d3',
-  lightpink            : '#ffb6c1',
-  lightsalmon          : '#ffa07a',
-  lightseagreen        : '#20b2aa',
-  lightskyblue         : '#87cefa',
-  lightslategray       : '#778899',
-  lightslategrey       : '#778899',
-  lightsteelblue       : '#b0c4de',
-  lightyellow          : '#ffffe0',
-  limegreen            : '#32cd32',
-  linen                : '#faf0e6',
-  magenta              : 'fuchsia',
-  mediumaquamarine     : '#66cdaa',
-  mediumblue           : '#0000cd',
-  mediumorchid         : '#ba55d3',
-  mediumpurple         : '#9370db',
-  mediumseagreen       : '#3cb371',
-  mediumslateblue      : '#7b68ee',
-  mediumspringgreen    : '#00fa9a',
-  mediumturquoise      : '#48d1cc',
-  mediumvioletred      : '#c71585',
-  midnightblue         : '#191970',
-  mintcream            : '#f5fffa',
-  mistyrose            : '#ffe4e1',
-  moccasin             : '#ffe4b5',
-  navajowhite          : '#ffdead',
-  oldlace              : '#fdf5e6',
-  olivedrab            : '#6b8e23',
-  orangered            : '#ff4500',
-  orchid               : '#da70d6',
-  palegoldenrod        : '#eee8aa',
-  palegreen            : '#98fb98',
-  paleturquoise        : '#afeeee',
-  palevioletred        : '#db7093',
-  papayawhip           : '#ffefd5',
-  peachpuff            : '#ffdab9',
-  peru                 : '#cd853f',
-  pink                 : '#ffc0cb',
-  plum                 : '#dda0dd',
-  powderblue           : '#b0e0e6',
-  rosybrown            : '#bc8f8f',
-  royalblue            : '#4169e1',
-  saddlebrown          : '#8b4513',
-  salmon               : '#fa8072',
-  sandybrown           : '#f4a460',
-  seagreen             : '#2e8b57',
-  seashell             : '#fff5ee',
-  sienna               : '#a0522d',
-  skyblue              : '#87ceeb',
-  slateblue            : '#6a5acd',
-  slategray            : '#708090',
-  slategrey            : '#708090',
-  snow                 : '#fffafa',
-  springgreen          : '#00ff7f',
-  steelblue            : '#4682b4',
-  tan                  : '#d2b48c',
-  thistle              : '#d8bfd8',
-  tomato               : '#ff6347',
-  turquoise            : '#40e0d0',
-  violet               : '#ee82ee',
-  wheat                : '#f5deb3',
-  whitesmoke           : '#f5f5f5',
-  yellowgreen          : '#9acd32'
-}, cssPreColors2)
- 
-export const cssPreColors = Object.assign({
-  rebeccapurple : '#663399'
-}, cssPreColors3)
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/src/lib/index.html b/qa/coverage/src/lib/index.html deleted file mode 100644 index 939ff6e..0000000 --- a/qa/coverage/src/lib/index.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - Code coverage report for src/lib - - - - - - - - - -
-
-

All files src/lib

-
- -
- 100% - Statements - 17/17 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 1/1 -
- - -
- 100% - Lines - 15/15 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
css-color-data.js -
-
100%4/4100%0/0100%0/0100%4/4
lockdown-re.js -
-
100%3/3100%0/0100%1/1100%1/1
numbers-strings.js -
-
100%10/10100%0/0100%0/0100%10/10
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/src/lib/lockdown-re.js.html b/qa/coverage/src/lib/lockdown-re.js.html deleted file mode 100644 index 5ec4d25..0000000 --- a/qa/coverage/src/lib/lockdown-re.js.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - Code coverage report for src/lib/lockdown-re.js - - - - - - - - - -
-
-

All files / src/lib lockdown-re.js

-
- -
- 100% - Statements - 3/3 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 1/1 -
- - -
- 100% - Lines - 1/1 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -54x - 
/*
-Copyright 2023 Liquid Labs LLC
- 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
- 
-    http://www.apache.org/licenses/LICENSE-2.0
- 
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
- 
-export const lockdownRE = (str, flags) => new RegExp(`^${str}$`, flags)
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/src/lib/numbers-strings.js.html b/qa/coverage/src/lib/numbers-strings.js.html deleted file mode 100644 index 6cf4bca..0000000 --- a/qa/coverage/src/lib/numbers-strings.js.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - Code coverage report for src/lib/numbers-strings.js - - - - - - - - - -
-
-

All files / src/lib numbers-strings.js

-
- -
- 100% - Statements - 10/10 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 0/0 -
- - -
- 100% - Lines - 10/10 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -2x -2x -2x -2x -2x -  -2x -2x -  -2x -2x -  - 
/*
-Copyright 2023 Liquid Labs LLC
- 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
- 
-    http://www.apache.org/licenses/LICENSE-2.0
- 
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
- 
-// Note, this module is used internally, so these aStr exported to for other
-// modules to use, but the file is not Str-exported through index.
-export const plainFloatStr = '[+-]?(0(\\.[0-9]+)?|[1-9][0-9]*(\\.[0-9]+)?)'
-export const scientificFloatStr = `${plainFloatStr}[eE]${plainFloatStr}`
-export const floatStr = `${plainFloatStr}([eE]${plainFloatStr})?`
-export const zeroTo1FloatStr = '(0|0?\\.[0-9]+|1(\\.0+)?)'
-export const zeroTo100PercentStr = '([0-9]|[1-9][0-9]|100)\\%'
-export const zeroTo100FloatPercentStr =
-  '(([0-9]|[1-9][0-9])(\\.[0-9]+)?|100(\\.0+)?)\\%'
-export const zeroTo255Str = '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-export const zeroTo255FloatStr =
-  '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])(\\.[0-9]+)?|255(\\.0+)?)'
-export const zeroTo360Str = '([0-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|360)'
-export const zeroTo360FloatStr =
-  '(([0-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9])(\\.[0-9]+)?|360(\\.0+)?)'
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/src/npm.js.html b/qa/coverage/src/npm.js.html deleted file mode 100644 index ab6703e..0000000 --- a/qa/coverage/src/npm.js.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - Code coverage report for src/npm.js - - - - - - - - - -
-
-

All files / src npm.js

-
- -
- 100% - Statements - 3/3 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 0/0 -
- - -
- 100% - Lines - 3/3 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -1x -  -1x - 
/*
-Copyright 2023 Liquid Labs LLC
- 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
- 
-    http://www.apache.org/licenses/LICENSE-2.0
- 
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
- 
-import { lockdownRE } from './lib/lockdown-re'
- 
-export const npmPackageNameREString = '(@[a-z0-9-~][a-z0-9-._~]*/)?([a-z0-9-~][a-z0-9-._~]*)'
-// NPM: Matches an NPM package name. Provides matching groups 1 (org name, if any) and 2 (package basename).
-export const npmPackageNameRE = lockdownRE(npmPackageNameREString)
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/src/numbers.js.html b/qa/coverage/src/numbers.js.html deleted file mode 100644 index 1e229f1..0000000 --- a/qa/coverage/src/numbers.js.html +++ /dev/null @@ -1,271 +0,0 @@ - - - - - - Code coverage report for src/numbers.js - - - - - - - - - -
-
-

All files / src numbers.js

-
- -
- 100% - Statements - 25/25 -
- - -
- 66.66% - Branches - 4/6 -
- - -
- 100% - Functions - 1/1 -
- - -
- 100% - Lines - 24/24 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -2x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x -  -1x - 
/*
-Copyright 2023 Liquid Labs LLC
- 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
- 
-    http://www.apache.org/licenses/LICENSE-2.0
- 
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
- 
-import * as numStrs from './lib/numbers-strings'
-import { lockdownRE } from './lib/lockdown-re'
- 
-export const integerREString = '-?(?:0|[1-9]\\d*)'
-// Numbers: Matches an integer.
-export const integerRE = lockdownRE(integerREString)
- 
-export const plainFloatREString = numStrs.plainFloatStr
-// Numbers: Matches a plain (non-scientific notation) float.
-export const plainFloatRE = lockdownRE(plainFloatREString)
- 
-export const scientificFloatREString = numStrs.scientificFloatStr
-// Numbers: Matches a scientific notation float.
-export const scientificFloatRE = lockdownRE(scientificFloatREString)
- 
-export const floatREString = numStrs.floatStr
-// Numbers: Matches a float in either plan or scientific format.
-export const floatRE = lockdownRE(floatREString)
- 
-export const zeroTo1FloatREString = numStrs.zeroTo1FloatStr
-// CSS numbers: Matches a 0 to 1 float as used in CSS color specifications.
-export const zeroTo1FloatRE = lockdownRE(zeroTo1FloatREString)
- 
-export const zeroTo100PercentREString = numStrs.zeroTo100PercentStr
-// CSS numbers: Matches a 0 to 100% integer as used in CSS color specifications.
-export const zeroTo100PercentRE = lockdownRE(zeroTo100PercentREString)
- 
-export const zeroTo100FloatPercentREString = numStrs.zeroTo100FloatPercentStr
-// CSS numbers: Matches a 0 to 100% float as used in CSS color specifications.
-export const zeroTo100FloatPercentRE = lockdownRE(zeroTo100FloatPercentREString)
- 
-export const zeroTo255REString = numStrs.zeroTo255Str
-// CSS numbers: Matches a 0 to 255 integer as used in CSS color specifications.
-export const zeroTo255RE = lockdownRE(zeroTo255REString)
- 
-export const zeroTo255FloatREString = numStrs.zeroTo255FloatStr
-// CSS numbers: Matches a 0 to 255 float as used in CSS color specifications.
-export const zeroTo255FloatRE = lockdownRE(zeroTo255FloatREString)
- 
-export const zeroTo360REString = numStrs.zeroTo360Str
-// CSS numbers: Matches a 0 to 360 integer as used in CSS color specifications.
-export const zeroTo360RE = lockdownRE(zeroTo360REString)
- 
-export const zeroTo360FloatREString = numStrs.zeroTo360FloatStr
-// CSS numbers: Matches a 0 to 360 float as used in CSS color specifications.
-export const zeroTo360FloatRE = lockdownRE(zeroTo360FloatREString)
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/qa/coverage/src/web.js.html b/qa/coverage/src/web.js.html deleted file mode 100644 index 7ffb6f3..0000000 --- a/qa/coverage/src/web.js.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - Code coverage report for src/web.js - - - - - - - - - -
-
-

All files / src web.js

-
- -
- 100% - Statements - 18/18 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 0/0 -
- - -
- 100% - Lines - 18/18 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -  -2x -  -  -  -2x -  -2x -2x -  -2x -  -  -  -2x -  -  -  -  -  -  -  -  -  -  -  -  -2x -  -2x -  -2x -  -2x -  -2x -  -2x -  -2x -  -2x -  -2x -  -  -  -2x -  -2x - 
/*
-Copyright 2023 Liquid Labs LLC
- 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
- 
-    http://www.apache.org/licenses/LICENSE-2.0
- 
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
- 
-import { lockdownRE } from './lib/lockdown-re'
- 
-export const ipREString = '(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])' +
-  '(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}' +
-  '(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))'
-// Web: Matches a valid, non-localhost IP address.
-export const ipRE = lockdownRE(ipREString)
- 
-const ipTuple = '(?:0|1?\\d{1,2}|2[0-4]\\d|25[0-5])'
-export const ipFormatREString = `(?:${ipTuple}\\.){3}${ipTuple}`
-// Web: Matches a string in IP address format. Use 'ipRE' to match actually valid IP addresses.
-export const ipFormatRE = lockdownRE(ipFormatREString)
- 
-/* Base RE cribbed from: https://github.com/chriso/validator.js via https://stackoverflow.com/a/22648406/929494
-   Annotations cribbed from https://gist.github.com/dperini/729294 */
-export const urlREString =
-  // protocol ID
-  '(?!mailto:)(?:(?:http|https|ftp)://)' +
-  // user + pass
-  '(?:\\S+(?::\\S*)?@)?' +
-  // IP address dotted notation octets
-  // excludes loopback network 0.0.0.0
-  // excludes reserved space >= 224.0.0.0
-  // excludes network & broacast addresses
-  // (first & last IP address of each class)
-  '(?:(?:' + ipREString +
-  '|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?'
-// Web: Matches a valid URL.
-export const urlRE = lockdownRE(urlREString, 'i')
- 
-export const tldNameREString = '[a-zA-Z]{2,63}'
-// Web: Matches a Top Level Domain (TLD). See [domain name rules](#domain-name-rules).
-export const tldNameRE = lockdownRE(tldNameREString)
- 
-export const domainNameREString = '[a-zA-Z0-9](?:[a-zA-Z0-9]|[a-zA-Z0-9-][a-zA-Z0-9]|[a-zA-Z0-9-][a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]|[a-zA-Z0-9-][a-zA-Z0-9-][a-zA-Z0-9]|[a-zA-Z0-9-][a-zA-Z0-9-][a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])'
-// Web: Matches a registerable domain name. See [domain name rules](#domain-name-rules).
-export const domainNameRE = lockdownRE(domainNameREString)
- 
-export const subDomainREString = '[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]'
-// Web: Matches a valid sub-domain label. See [domain name rules](#domain-name-rules).
-export const subDomainRE = lockdownRE(subDomainREString)
- 
-export const fqDomainNameREString = `(?:${subDomainREString}\\.)*(?:${domainNameREString}\\.)+${tldNameREString}`
-// Web: Matches fully qualified domain name (zero or more sub-domains + registerable domain + TLD). Does not enforce 63 character domain label limit or 255 character FQN domain limit.
-export const fqDomainNameRE = lockdownRE(fqDomainNameREString)
- 
-// based on https://stackoverflow.com/a/201378/929494; modified to allow uppercase characters and restrict to valid DNS
-// names in the domain portion
-export const emailREString = `([a-zA-Z0-9!#$%&'*+/=?^_\`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_\`{|}~-]+)*|"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*")@(${fqDomainNameREString})`
-// Contact info: Match a valid email. Provides matching groups 1 (user name) and 2 (domain).
-export const emailRE = lockdownRE(emailREString)
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/qa/lint.txt b/qa/lint.txt deleted file mode 100644 index f16c7f3..0000000 --- a/qa/lint.txt +++ /dev/null @@ -1 +0,0 @@ -Test git rev: 07014b5621171f48dcfc89b33ab7e84e83d60461 diff --git a/qa/unit-test.txt b/qa/unit-test.txt deleted file mode 100644 index 652f475..0000000 --- a/qa/unit-test.txt +++ /dev/null @@ -1,35 +0,0 @@ -Test git rev: 07014b5621171f48dcfc89b33ab7e84e83d60461 -PASS test/date-time.test.js -PASS test/web.test.js -PASS test/css.test.js -PASS test/numbers.test.js -PASS test/javascript.test.js -PASS test/contacts.test.js -PASS test/aws.test.js -PASS test/npm.test.js -PASS test/ids.test.js ----------------------|---------|----------|---------|---------|------------------- -File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s ----------------------|---------|----------|---------|---------|------------------- -All files | 100 | 66.66 | 100 | 100 | - src | 100 | 66.66 | 100 | 100 | - aws.js | 100 | 100 | 100 | 100 | - contacts.js | 100 | 100 | 100 | 100 | - css.js | 100 | 66.66 | 100 | 100 | 27 - date-times.mjs | 100 | 100 | 100 | 100 | - ids.js | 100 | 100 | 100 | 100 | - javascript.js | 100 | 100 | 100 | 100 | - npm.js | 100 | 100 | 100 | 100 | - numbers.js | 100 | 66.66 | 100 | 100 | 18 - web.js | 100 | 100 | 100 | 100 | - src/lib | 100 | 100 | 100 | 100 | - css-color-data.js | 100 | 100 | 100 | 100 | - lockdown-re.js | 100 | 100 | 100 | 100 | - numbers-strings.js | 100 | 100 | 100 | 100 | ----------------------|---------|----------|---------|---------|------------------- - -Test Suites: 9 passed, 9 total -Tests: 2084 passed, 2084 total -Snapshots: 0 total -Time: 0.535 s, estimated 1 s -Ran all test suites.