locutus 2.0.15 → 2.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,18 +41,17 @@ module.exports = function version_compare(v1, v2, operator) {
41
41
  '#': -2,
42
42
  p: 1,
43
43
  pl: 1
44
- };
45
44
 
46
- // This function will be called to prepare each version argument.
47
- // It replaces every _, -, and + with a dot.
48
- // It surrounds any nonsequence of numbers/dots with dots.
49
- // It replaces sequences of dots with a single dot.
50
- // version_compare('4..0', '4.0') === 0
51
- // Important: A string of 0 length needs to be converted into a value
52
- // even less than an unexisting value in vm (-7), hence [-8].
53
- // It's also important to not strip spaces because of this.
54
- // version_compare('', ' ') === 1
55
- var _prepVersion = function _prepVersion(v) {
45
+ // This function will be called to prepare each version argument.
46
+ // It replaces every _, -, and + with a dot.
47
+ // It surrounds any nonsequence of numbers/dots with dots.
48
+ // It replaces sequences of dots with a single dot.
49
+ // version_compare('4..0', '4.0') === 0
50
+ // Important: A string of 0 length needs to be converted into a value
51
+ // even less than an unexisting value in vm (-7), hence [-8].
52
+ // It's also important to not strip spaces because of this.
53
+ // version_compare('', ' ') === 1
54
+ };var _prepVersion = function _prepVersion(v) {
56
55
  v = ('' + v).replace(/[_\-+]/g, '.');
57
56
  v = v.replace(/([^.\d]+)/g, '.$1.').replace(/\.{2,}/g, '.');
58
57
  return !v.length ? [-8] : v.split('.');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/info/version_compare.js"],"names":["module","exports","version_compare","v1","v2","operator","i","x","compare","vm","dev","alpha","a","beta","b","RC","rc","p","pl","_prepVersion","v","replace","length","split","_numVersion","isNaN","parseInt","Math","max"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,eAAT,CAA0BC,EAA1B,EAA8BC,EAA9B,EAAkCC,QAAlC,EAA4C;AAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAIC,UAAJ;AACA,MAAIC,UAAJ;AACA,MAAIC,UAAU,CAAd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,KAAK;AACTC,SAAK,CAAC,CADG;AAETC,WAAO,CAAC,CAFC;AAGTC,OAAG,CAAC,CAHK;AAITC,UAAM,CAAC,CAJE;AAKTC,OAAG,CAAC,CALK;AAMTC,QAAI,CAAC,CANI;AAOTC,QAAI,CAAC,CAPI;AAQT,SAAK,CAAC,CARG;AASTC,OAAG,CATM;AAUTC,QAAI;AAVK,GAAX;;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,eAAe,SAAfA,YAAe,CAAUC,CAAV,EAAa;AAChCA,QAAI,CAAC,KAAKA,CAAN,EAASC,OAAT,CAAiB,SAAjB,EAA4B,GAA5B,CAAJ;AACAD,QAAIA,EAAEC,OAAF,CAAU,YAAV,EAAwB,MAAxB,EAAgCA,OAAhC,CAAwC,SAAxC,EAAmD,GAAnD,CAAJ;AACA,WAAQ,CAACD,EAAEE,MAAH,GAAY,CAAC,CAAC,CAAF,CAAZ,GAAmBF,EAAEG,KAAF,CAAQ,GAAR,CAA3B;AACD,GAJD;AAKA;AACA;AACA;AACA;AACA,MAAMC,cAAc,SAAdA,WAAc,CAAUJ,CAAV,EAAa;AAC/B,WAAO,CAACA,CAAD,GAAK,CAAL,GAAUK,MAAML,CAAN,IAAWX,GAAGW,CAAH,KAAS,CAAC,CAArB,GAAyBM,SAASN,CAAT,EAAY,EAAZ,CAA1C;AACD,GAFD;;AAIAjB,OAAKgB,aAAahB,EAAb,CAAL;AACAC,OAAKe,aAAaf,EAAb,CAAL;AACAG,MAAIoB,KAAKC,GAAL,CAASzB,GAAGmB,MAAZ,EAAoBlB,GAAGkB,MAAvB,CAAJ;AACA,OAAKhB,IAAI,CAAT,EAAYA,IAAIC,CAAhB,EAAmBD,GAAnB,EAAwB;AACtB,QAAIH,GAAGG,CAAH,MAAUF,GAAGE,CAAH,CAAd,EAAqB;AACnB;AACD;AACDH,OAAGG,CAAH,IAAQkB,YAAYrB,GAAGG,CAAH,CAAZ,CAAR;AACAF,OAAGE,CAAH,IAAQkB,YAAYpB,GAAGE,CAAH,CAAZ,CAAR;AACA,QAAIH,GAAGG,CAAH,IAAQF,GAAGE,CAAH,CAAZ,EAAmB;AACjBE,gBAAU,CAAC,CAAX;AACA;AACD,KAHD,MAGO,IAAIL,GAAGG,CAAH,IAAQF,GAAGE,CAAH,CAAZ,EAAmB;AACxBE,gBAAU,CAAV;AACA;AACD;AACF;AACD,MAAI,CAACH,QAAL,EAAe;AACb,WAAOG,OAAP;AACD;;AAED;AACA;AACA;AACA,UAAQH,QAAR;AACE,SAAK,GAAL;AACA,SAAK,IAAL;AACE,aAAQG,UAAU,CAAlB;AACF,SAAK,IAAL;AACA,SAAK,IAAL;AACE,aAAQA,WAAW,CAAnB;AACF,SAAK,IAAL;AACA,SAAK,IAAL;AACE,aAAQA,WAAW,CAAnB;AACF,SAAK,KAAL;AACA,SAAK,GAAL;AACA,SAAK,IAAL;AACE,aAAQA,YAAY,CAApB;AACF,SAAK,IAAL;AACA,SAAK,KAAL;AACA,SAAK,IAAL;AACE,aAAQA,YAAY,CAApB;AACF,SAAK,EAAL;AACA,SAAK,GAAL;AACA,SAAK,IAAL;AACE,aAAQA,UAAU,CAAlB;AACF;AACE,aAAO,IAAP;AAvBJ;AAyBD,CAjHD","file":"version_compare.js","sourcesContent":["module.exports = function version_compare (v1, v2, operator) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/version_compare/\n // original by: Philippe Jausions (https://pear.php.net/user/jausions)\n // original by: Aidan Lister (https://aidanlister.com/)\n // reimplemented by: Kankrelune (https://www.webfaktory.info/)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // improved by: Scott Baker\n // improved by: Theriault (https://github.com/Theriault)\n // example 1: version_compare('8.2.5rc', '8.2.5a')\n // returns 1: 1\n // example 2: version_compare('8.2.50', '8.2.52', '<')\n // returns 2: true\n // example 3: version_compare('5.3.0-dev', '5.3.0')\n // returns 3: -1\n // example 4: version_compare('4.1.0.52','4.01.0.51')\n // returns 4: 1\n\n // Important: compare must be initialized at 0.\n let i\n let x\n let compare = 0\n\n // vm maps textual PHP versions to negatives so they're less than 0.\n // PHP currently defines these as CASE-SENSITIVE. It is important to\n // leave these as negatives so that they can come before numerical versions\n // and as if no letters were there to begin with.\n // (1alpha is < 1 and < 1.1 but > 1dev1)\n // If a non-numerical value can't be mapped to this table, it receives\n // -7 as its value.\n const vm = {\n dev: -6,\n alpha: -5,\n a: -5,\n beta: -4,\n b: -4,\n RC: -3,\n rc: -3,\n '#': -2,\n p: 1,\n pl: 1\n }\n\n // This function will be called to prepare each version argument.\n // It replaces every _, -, and + with a dot.\n // It surrounds any nonsequence of numbers/dots with dots.\n // It replaces sequences of dots with a single dot.\n // version_compare('4..0', '4.0') === 0\n // Important: A string of 0 length needs to be converted into a value\n // even less than an unexisting value in vm (-7), hence [-8].\n // It's also important to not strip spaces because of this.\n // version_compare('', ' ') === 1\n const _prepVersion = function (v) {\n v = ('' + v).replace(/[_\\-+]/g, '.')\n v = v.replace(/([^.\\d]+)/g, '.$1.').replace(/\\.{2,}/g, '.')\n return (!v.length ? [-8] : v.split('.'))\n }\n // This converts a version component to a number.\n // Empty component becomes 0.\n // Non-numerical component becomes a negative number.\n // Numerical component becomes itself as an integer.\n const _numVersion = function (v) {\n return !v ? 0 : (isNaN(v) ? vm[v] || -7 : parseInt(v, 10))\n }\n\n v1 = _prepVersion(v1)\n v2 = _prepVersion(v2)\n x = Math.max(v1.length, v2.length)\n for (i = 0; i < x; i++) {\n if (v1[i] === v2[i]) {\n continue\n }\n v1[i] = _numVersion(v1[i])\n v2[i] = _numVersion(v2[i])\n if (v1[i] < v2[i]) {\n compare = -1\n break\n } else if (v1[i] > v2[i]) {\n compare = 1\n break\n }\n }\n if (!operator) {\n return compare\n }\n\n // Important: operator is CASE-SENSITIVE.\n // \"No operator\" seems to be treated as \"<.\"\n // Any other values seem to make the function return null.\n switch (operator) {\n case '>':\n case 'gt':\n return (compare > 0)\n case '>=':\n case 'ge':\n return (compare >= 0)\n case '<=':\n case 'le':\n return (compare <= 0)\n case '===':\n case '=':\n case 'eq':\n return (compare === 0)\n case '<>':\n case '!==':\n case 'ne':\n return (compare !== 0)\n case '':\n case '<':\n case 'lt':\n return (compare < 0)\n default:\n return null\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/info/version_compare.js"],"names":["module","exports","version_compare","v1","v2","operator","i","x","compare","vm","dev","alpha","a","beta","b","RC","rc","p","pl","_prepVersion","v","replace","length","split","_numVersion","isNaN","parseInt","Math","max"],"mappings":"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","file":"version_compare.js","sourcesContent":["module.exports = function version_compare (v1, v2, operator) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/version_compare/\n // original by: Philippe Jausions (https://pear.php.net/user/jausions)\n // original by: Aidan Lister (https://aidanlister.com/)\n // reimplemented by: Kankrelune (https://www.webfaktory.info/)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // improved by: Scott Baker\n // improved by: Theriault (https://github.com/Theriault)\n // example 1: version_compare('8.2.5rc', '8.2.5a')\n // returns 1: 1\n // example 2: version_compare('8.2.50', '8.2.52', '<')\n // returns 2: true\n // example 3: version_compare('5.3.0-dev', '5.3.0')\n // returns 3: -1\n // example 4: version_compare('4.1.0.52','4.01.0.51')\n // returns 4: 1\n\n // Important: compare must be initialized at 0.\n let i\n let x\n let compare = 0\n\n // vm maps textual PHP versions to negatives so they're less than 0.\n // PHP currently defines these as CASE-SENSITIVE. It is important to\n // leave these as negatives so that they can come before numerical versions\n // and as if no letters were there to begin with.\n // (1alpha is < 1 and < 1.1 but > 1dev1)\n // If a non-numerical value can't be mapped to this table, it receives\n // -7 as its value.\n const vm = {\n dev: -6,\n alpha: -5,\n a: -5,\n beta: -4,\n b: -4,\n RC: -3,\n rc: -3,\n '#': -2,\n p: 1,\n pl: 1\n }\n\n // This function will be called to prepare each version argument.\n // It replaces every _, -, and + with a dot.\n // It surrounds any nonsequence of numbers/dots with dots.\n // It replaces sequences of dots with a single dot.\n // version_compare('4..0', '4.0') === 0\n // Important: A string of 0 length needs to be converted into a value\n // even less than an unexisting value in vm (-7), hence [-8].\n // It's also important to not strip spaces because of this.\n // version_compare('', ' ') === 1\n const _prepVersion = function (v) {\n v = ('' + v).replace(/[_\\-+]/g, '.')\n v = v.replace(/([^.\\d]+)/g, '.$1.').replace(/\\.{2,}/g, '.')\n return (!v.length ? [-8] : v.split('.'))\n }\n // This converts a version component to a number.\n // Empty component becomes 0.\n // Non-numerical component becomes a negative number.\n // Numerical component becomes itself as an integer.\n const _numVersion = function (v) {\n return !v ? 0 : (isNaN(v) ? vm[v] || -7 : parseInt(v, 10))\n }\n\n v1 = _prepVersion(v1)\n v2 = _prepVersion(v2)\n x = Math.max(v1.length, v2.length)\n for (i = 0; i < x; i++) {\n if (v1[i] === v2[i]) {\n continue\n }\n v1[i] = _numVersion(v1[i])\n v2[i] = _numVersion(v2[i])\n if (v1[i] < v2[i]) {\n compare = -1\n break\n } else if (v1[i] > v2[i]) {\n compare = 1\n break\n }\n }\n if (!operator) {\n return compare\n }\n\n // Important: operator is CASE-SENSITIVE.\n // \"No operator\" seems to be treated as \"<.\"\n // Any other values seem to make the function return null.\n switch (operator) {\n case '>':\n case 'gt':\n return (compare > 0)\n case '>=':\n case 'ge':\n return (compare >= 0)\n case '<=':\n case 'le':\n return (compare <= 0)\n case '===':\n case '=':\n case 'eq':\n return (compare === 0)\n case '<>':\n case '!==':\n case 'ne':\n return (compare !== 0)\n case '':\n case '<':\n case 'lt':\n return (compare < 0)\n default:\n return null\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/json/json_encode.js"],"names":["module","exports","json_encode","mixedVal","$global","window","global","$locutus","php","json","JSON","retVal","stringify","undefined","SyntaxError","value","quote","string","escapeChars","join","escapable","RegExp","meta","lastIndex","test","replace","a","c","charCodeAt","toString","slice","_str","key","holder","gap","indent","i","k","v","length","mind","partial","toJSON","isFinite","String","Object","prototype","apply","hasOwnProperty","call","push","err","Error","last_error_json"],"mappings":"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","file":"json_encode.js","sourcesContent":["module.exports = function json_encode (mixedVal) { // eslint-disable-line camelcase\n // discuss at: https://phpjs.org/functions/json_encode/\n // original by: Public Domain (https://www.json.org/json2.js)\n // reimplemented by: Kevin van Zonneveld (https://kevin.vanzonneveld.net)\n // improved by: Michael White\n // input by: felix\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // example 1: json_encode('Kevin')\n // returns 1: '\"Kevin\"'\n\n /*\n https://www.JSON.org/json2.js\n 2008-11-19\n Public Domain.\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n See https://www.JSON.org/js.html\n */\n\n const $global = (typeof window !== 'undefined' ? window : global)\n $global.$locutus = $global.$locutus || {}\n const $locutus = $global.$locutus\n $locutus.php = $locutus.php || {}\n\n const json = $global.JSON\n let retVal\n try {\n if (typeof json === 'object' && typeof json.stringify === 'function') {\n // Errors will not be caught here if our own equivalent to resource\n retVal = json.stringify(mixedVal)\n if (retVal === undefined) {\n throw new SyntaxError('json_encode')\n }\n return retVal\n }\n\n const value = mixedVal\n\n const quote = function (string) {\n const escapeChars = [\n '\\u0000-\\u001f',\n '\\u007f-\\u009f',\n '\\u00ad',\n '\\u0600-\\u0604',\n '\\u070f',\n '\\u17b4',\n '\\u17b5',\n '\\u200c-\\u200f',\n '\\u2028-\\u202f',\n '\\u2060-\\u206f',\n '\\ufeff',\n '\\ufff0-\\uffff'\n ].join('')\n const escapable = new RegExp('[\\\\\"' + escapeChars + ']', 'g')\n const meta = {\n // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n }\n\n escapable.lastIndex = 0\n return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n const c = meta[a]\n return typeof c === 'string' ? c : '\\\\u' + ('0000' + a.charCodeAt(0)\n .toString(16))\n .slice(-4)\n }) + '\"' : '\"' + string + '\"'\n }\n\n var _str = function (key, holder) {\n let gap = ''\n const indent = ' '\n // The loop counter.\n let i = 0\n // The member key.\n let k = ''\n // The member value.\n let v = ''\n let length = 0\n const mind = gap\n let partial = []\n let value = holder[key]\n\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (value && typeof value === 'object' && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n\n // What happens next depends on the value's type.\n switch (typeof value) {\n case 'string':\n return quote(value)\n\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : 'null'\n\n case 'boolean':\n // If the value is a boolean or null, convert it to a string.\n return String(value)\n\n case 'object':\n // If the type is 'object', we might be dealing with an object or an array or\n // null.\n // Due to a specification blunder in ECMAScript, typeof null is 'object',\n // so watch out for that case.\n if (!value) {\n return 'null'\n }\n\n // Make an array to hold the partial results of stringifying this object value.\n gap += indent\n partial = []\n\n // Is the value an array?\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n // The value is an array. Stringify every element. Use null as a placeholder\n // for non-JSON values.\n length = value.length\n for (i = 0; i < length; i += 1) {\n partial[i] = _str(i, value) || 'null'\n }\n\n // Join all of the elements together, separated with commas, and wrap them in\n // brackets.\n v = partial.length === 0 ? '[]' : gap\n ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\n : '[' + partial.join(',') + ']'\n // gap = mind // not used\n return v\n }\n\n // Iterate through all of the keys in the object.\n for (k in value) {\n if (Object.hasOwnProperty.call(value, k)) {\n v = _str(k, value)\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v)\n }\n }\n }\n\n // Join all of the member texts together, separated with commas,\n // and wrap them in braces.\n v = partial.length === 0 ? '{}' : gap\n ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\n : '{' + partial.join(',') + '}'\n // gap = mind // Not used\n return v\n case 'undefined':\n case 'function':\n default:\n throw new SyntaxError('json_encode')\n }\n }\n\n // Make a fake root object containing our value under the key of ''.\n // Return the result of stringifying the value.\n return _str('', {\n '': value\n })\n } catch (err) {\n // @todo: ensure error handling above throws a SyntaxError in all cases where it could\n // (i.e., when the JSON global is not available and there is an error)\n if (!(err instanceof SyntaxError)) {\n throw new Error('Unexpected error type in json_encode()')\n }\n // usable by json_last_error()\n $locutus.php.last_error_json = 4\n return null\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/json/json_encode.js"],"names":["module","exports","json_encode","mixedVal","$global","window","global","$locutus","php","json","JSON","retVal","stringify","undefined","SyntaxError","value","quote","string","escapeChars","join","escapable","RegExp","meta","lastIndex","test","replace","a","c","charCodeAt","toString","slice","_str","key","holder","gap","indent","i","k","v","length","mind","partial","toJSON","isFinite","String","Object","prototype","apply","hasOwnProperty","call","push","err","Error","last_error_json"],"mappings":"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","file":"json_encode.js","sourcesContent":["module.exports = function json_encode (mixedVal) { // eslint-disable-line camelcase\n // discuss at: https://phpjs.org/functions/json_encode/\n // original by: Public Domain (https://www.json.org/json2.js)\n // reimplemented by: Kevin van Zonneveld (https://kevin.vanzonneveld.net)\n // improved by: Michael White\n // input by: felix\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // example 1: json_encode('Kevin')\n // returns 1: '\"Kevin\"'\n\n /*\n https://www.JSON.org/json2.js\n 2008-11-19\n Public Domain.\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n See https://www.JSON.org/js.html\n */\n\n const $global = (typeof window !== 'undefined' ? window : global)\n $global.$locutus = $global.$locutus || {}\n const $locutus = $global.$locutus\n $locutus.php = $locutus.php || {}\n\n const json = $global.JSON\n let retVal\n try {\n if (typeof json === 'object' && typeof json.stringify === 'function') {\n // Errors will not be caught here if our own equivalent to resource\n retVal = json.stringify(mixedVal)\n if (retVal === undefined) {\n throw new SyntaxError('json_encode')\n }\n return retVal\n }\n\n const value = mixedVal\n\n const quote = function (string) {\n const escapeChars = [\n '\\u0000-\\u001f',\n '\\u007f-\\u009f',\n '\\u00ad',\n '\\u0600-\\u0604',\n '\\u070f',\n '\\u17b4',\n '\\u17b5',\n '\\u200c-\\u200f',\n '\\u2028-\\u202f',\n '\\u2060-\\u206f',\n '\\ufeff',\n '\\ufff0-\\uffff'\n ].join('')\n const escapable = new RegExp('[\\\\\"' + escapeChars + ']', 'g')\n const meta = {\n // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n }\n\n escapable.lastIndex = 0\n return escapable.test(string)\n ? '\"' + string.replace(escapable, function (a) {\n const c = meta[a]\n return typeof c === 'string' ? c : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4)\n }) + '\"'\n : '\"' + string + '\"'\n }\n\n var _str = function (key, holder) {\n let gap = ''\n const indent = ' '\n // The loop counter.\n let i = 0\n // The member key.\n let k = ''\n // The member value.\n let v = ''\n let length = 0\n const mind = gap\n let partial = []\n let value = holder[key]\n\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (value && typeof value === 'object' && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n\n // What happens next depends on the value's type.\n switch (typeof value) {\n case 'string':\n return quote(value)\n\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : 'null'\n\n case 'boolean':\n // If the value is a boolean or null, convert it to a string.\n return String(value)\n\n case 'object':\n // If the type is 'object', we might be dealing with an object or an array or\n // null.\n // Due to a specification blunder in ECMAScript, typeof null is 'object',\n // so watch out for that case.\n if (!value) {\n return 'null'\n }\n\n // Make an array to hold the partial results of stringifying this object value.\n gap += indent\n partial = []\n\n // Is the value an array?\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n // The value is an array. Stringify every element. Use null as a placeholder\n // for non-JSON values.\n length = value.length\n for (i = 0; i < length; i += 1) {\n partial[i] = _str(i, value) || 'null'\n }\n\n // Join all of the elements together, separated with commas, and wrap them in\n // brackets.\n v = partial.length === 0\n ? '[]'\n : gap\n ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\n : '[' + partial.join(',') + ']'\n // gap = mind // not used\n return v\n }\n\n // Iterate through all of the keys in the object.\n for (k in value) {\n if (Object.hasOwnProperty.call(value, k)) {\n v = _str(k, value)\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v)\n }\n }\n }\n\n // Join all of the member texts together, separated with commas,\n // and wrap them in braces.\n v = partial.length === 0\n ? '{}'\n : gap\n ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\n : '{' + partial.join(',') + '}'\n // gap = mind // Not used\n return v\n case 'undefined':\n case 'function':\n default:\n throw new SyntaxError('json_encode')\n }\n }\n\n // Make a fake root object containing our value under the key of ''.\n // Return the result of stringifying the value.\n return _str('', {\n '': value\n })\n } catch (err) {\n // @todo: ensure error handling above throws a SyntaxError in all cases where it could\n // (i.e., when the JSON global is not available and there is an error)\n if (!(err instanceof SyntaxError)) {\n throw new Error('Unexpected error type in json_encode()')\n }\n // usable by json_last_error()\n $locutus.php.last_error_json = 4\n return null\n }\n}\n"]}
@@ -70,9 +70,8 @@ module.exports = function gopher_parsedir(dirent) {
70
70
  default:
71
71
  return {
72
72
  type: -1,
73
- data: dirent
74
- }; // GOPHER_UNKNOWN
75
- }
73
+ data: dirent // GOPHER_UNKNOWN
74
+ };}
76
75
  return {
77
76
  type: type,
78
77
  title: entry[2],
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/net-gopher/gopher_parsedir.js"],"names":["module","exports","gopher_parsedir","dirent","entryPattern","entry","match","Error","type","data","title","path","host","port"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,eAAT,CAA0BC,MAA1B,EAAkC;AAAE;AACnD;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;AAiBA,MAAMC,eAAe,iDAArB;AACA,MAAMC,QAAQF,OAAOG,KAAP,CAAaF,YAAb,CAAd;;AAEA,MAAIC,UAAU,IAAd,EAAoB;AAClB,UAAM,IAAIE,KAAJ,CAAU,qCAAV,CAAN;AACA;AACD;;AAED,MAAIC,OAAOH,MAAM,CAAN,CAAX;AACA,UAAQG,IAAR;AACE,SAAK,GAAL;AACA;AACEA,aAAO,GAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,CAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,CAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,CAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,CAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,CAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,CAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,GAAP;AACA;AACF;AACE,aAAO;AACLA,cAAM,CAAC,CADF;AAELC,cAAMN;AAFD,OAAP,CAlCJ,CAqCM;AArCN;AAuCA,SAAO;AACLK,UAAMA,IADD;AAELE,WAAOL,MAAM,CAAN,CAFF;AAGLM,UAAMN,MAAM,CAAN,CAHD;AAILO,UAAMP,MAAM,CAAN,CAJD;AAKLQ,UAAMR,MAAM,CAAN;AALD,GAAP;AAOD,CA/ED","file":"gopher_parsedir.js","sourcesContent":["module.exports = function gopher_parsedir (dirent) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/gopher_parsedir/\n // original by: Brett Zamir (https://brett-zamir.me)\n // example 1: var entry = gopher_parsedir('0All about my gopher site.\\t/allabout.txt\\tgopher.example.com\\t70\\u000d\\u000a')\n // example 1: entry.title\n // returns 1: 'All about my gopher site.'\n\n /* Types\n * 0 = plain text file\n * 1 = directory menu listing\n * 2 = CSO search query\n * 3 = error message\n * 4 = BinHex encoded text file\n * 5 = binary archive file\n * 6 = UUEncoded text file\n * 7 = search engine query\n * 8 = telnet session pointer\n * 9 = binary file\n * g = Graphics file format, primarily a GIF file\n * h = HTML file\n * i = informational message\n * s = Audio file format, primarily a WAV file\n */\n\n const entryPattern = /^(.)([^\\t]*)\\t([^\\t]*)\\t([^\\t]*)\\t([^\\t]*)\\r\\n$/\n const entry = dirent.match(entryPattern)\n\n if (entry === null) {\n throw new Error('Could not parse the directory entry')\n // return false;\n }\n\n let type = entry[1]\n switch (type) {\n case 'i':\n // GOPHER_INFO\n type = 255\n break\n case '1':\n // GOPHER_DIRECTORY\n type = 1\n break\n case '0':\n // GOPHER_DOCUMENT\n type = 0\n break\n case '4':\n // GOPHER_BINHEX\n type = 4\n break\n case '5':\n // GOPHER_DOSBINARY\n type = 5\n break\n case '6':\n // GOPHER_UUENCODED\n type = 6\n break\n case '9':\n // GOPHER_BINARY\n type = 9\n break\n case 'h':\n // GOPHER_HTTP\n type = 254\n break\n default:\n return {\n type: -1,\n data: dirent\n } // GOPHER_UNKNOWN\n }\n return {\n type: type,\n title: entry[2],\n path: entry[3],\n host: entry[4],\n port: entry[5]\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/net-gopher/gopher_parsedir.js"],"names":["module","exports","gopher_parsedir","dirent","entryPattern","entry","match","Error","type","data","title","path","host","port"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,eAAT,CAA0BC,MAA1B,EAAkC;AAAE;AACnD;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;AAiBA,MAAMC,eAAe,iDAArB;AACA,MAAMC,QAAQF,OAAOG,KAAP,CAAaF,YAAb,CAAd;;AAEA,MAAIC,UAAU,IAAd,EAAoB;AAClB,UAAM,IAAIE,KAAJ,CAAU,qCAAV,CAAN;AACA;AACD;;AAED,MAAIC,OAAOH,MAAM,CAAN,CAAX;AACA,UAAQG,IAAR;AACE,SAAK,GAAL;AACA;AACEA,aAAO,GAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,CAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,CAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,CAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,CAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,CAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,CAAP;AACA;AACF,SAAK,GAAL;AACA;AACEA,aAAO,GAAP;AACA;AACF;AACE,aAAO;AACLA,cAAM,CAAC,CADF;AAELC,cAAMN,MAFD,CAGL;AAHK,OAAP,CAlCJ;AAuCA,SAAO;AACLK,UAAMA,IADD;AAELE,WAAOL,MAAM,CAAN,CAFF;AAGLM,UAAMN,MAAM,CAAN,CAHD;AAILO,UAAMP,MAAM,CAAN,CAJD;AAKLQ,UAAMR,MAAM,CAAN;AALD,GAAP;AAOD,CA/ED","file":"gopher_parsedir.js","sourcesContent":["module.exports = function gopher_parsedir (dirent) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/gopher_parsedir/\n // original by: Brett Zamir (https://brett-zamir.me)\n // example 1: var entry = gopher_parsedir('0All about my gopher site.\\t/allabout.txt\\tgopher.example.com\\t70\\u000d\\u000a')\n // example 1: entry.title\n // returns 1: 'All about my gopher site.'\n\n /* Types\n * 0 = plain text file\n * 1 = directory menu listing\n * 2 = CSO search query\n * 3 = error message\n * 4 = BinHex encoded text file\n * 5 = binary archive file\n * 6 = UUEncoded text file\n * 7 = search engine query\n * 8 = telnet session pointer\n * 9 = binary file\n * g = Graphics file format, primarily a GIF file\n * h = HTML file\n * i = informational message\n * s = Audio file format, primarily a WAV file\n */\n\n const entryPattern = /^(.)([^\\t]*)\\t([^\\t]*)\\t([^\\t]*)\\t([^\\t]*)\\r\\n$/\n const entry = dirent.match(entryPattern)\n\n if (entry === null) {\n throw new Error('Could not parse the directory entry')\n // return false;\n }\n\n let type = entry[1]\n switch (type) {\n case 'i':\n // GOPHER_INFO\n type = 255\n break\n case '1':\n // GOPHER_DIRECTORY\n type = 1\n break\n case '0':\n // GOPHER_DOCUMENT\n type = 0\n break\n case '4':\n // GOPHER_BINHEX\n type = 4\n break\n case '5':\n // GOPHER_DOSBINARY\n type = 5\n break\n case '6':\n // GOPHER_UUENCODED\n type = 6\n break\n case '9':\n // GOPHER_BINARY\n type = 9\n break\n case 'h':\n // GOPHER_HTTP\n type = 254\n break\n default:\n return {\n type: -1,\n data: dirent\n } // GOPHER_UNKNOWN\n }\n return {\n type: type,\n title: entry[2],\n path: entry[3],\n host: entry[4],\n port: entry[5]\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/strings/ltrim.js"],"names":["module","exports","ltrim","str","charlist","replace","re","RegExp"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,KAAT,CAAgBC,GAAhB,EAAqBC,QAArB,EAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEAA,aAAW,CAACA,QAAD,GAAY,UAAZ,GAA2B,CAACA,WAAW,EAAZ,EACnCC,OADmC,CAC3B,sBAD2B,EACH,IADG,CAAtC;;AAGA,MAAMC,KAAK,IAAIC,MAAJ,CAAW,OAAOH,QAAP,GAAkB,IAA7B,EAAmC,GAAnC,CAAX;;AAEA,SAAO,CAACD,MAAM,EAAP,EACJE,OADI,CACIC,EADJ,EACQ,EADR,CAAP;AAED,CAhBD","file":"ltrim.js","sourcesContent":["module.exports = function ltrim (str, charlist) {\n // discuss at: https://locutus.io/php/ltrim/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // input by: Erkekjetter\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // example 1: ltrim(' Kevin van Zonneveld ')\n // returns 1: 'Kevin van Zonneveld '\n\n charlist = !charlist ? ' \\\\s\\u00A0' : (charlist + '')\n .replace(/([[\\]().?/*{}+$^:])/g, '$1')\n\n const re = new RegExp('^[' + charlist + ']+', 'g')\n\n return (str + '')\n .replace(re, '')\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/strings/ltrim.js"],"names":["module","exports","ltrim","str","charlist","replace","re","RegExp"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,KAAT,CAAgBC,GAAhB,EAAqBC,QAArB,EAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEAA,aAAW,CAACA,QAAD,GACP,UADO,GAEP,CAACA,WAAW,EAAZ,EAAgBC,OAAhB,CAAwB,sBAAxB,EAAgD,IAAhD,CAFJ;;AAIA,MAAMC,KAAK,IAAIC,MAAJ,CAAW,OAAOH,QAAP,GAAkB,IAA7B,EAAmC,GAAnC,CAAX;;AAEA,SAAO,CAACD,MAAM,EAAP,EACJE,OADI,CACIC,EADJ,EACQ,EADR,CAAP;AAED,CAjBD","file":"ltrim.js","sourcesContent":["module.exports = function ltrim (str, charlist) {\n // discuss at: https://locutus.io/php/ltrim/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // input by: Erkekjetter\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // example 1: ltrim(' Kevin van Zonneveld ')\n // returns 1: 'Kevin van Zonneveld '\n\n charlist = !charlist\n ? ' \\\\s\\u00A0'\n : (charlist + '').replace(/([[\\]().?/*{}+$^:])/g, '$1')\n\n const re = new RegExp('^[' + charlist + ']+', 'g')\n\n return (str + '')\n .replace(re, '')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/strings/money_format.js"],"names":["module","exports","money_format","format","number","setlocale","require","regex","$global","window","global","$locutus","php","monetary","locales","localeCategories","LC_MONETARY","doReplace","n0","flags","n2","width","n4","left","n6","right","conversion","value","repl","fill","test","match","showCurrSymbol","indexOf","parseInt","neg","slice","decpos","integer","fraction","_strSplice","integerStr","idx","thouSep","integerArr","split","splice","join","intLen","length","filler","fillnum","Array","mon_thousands_sep","monGrouping","mon_grouping","i","decPt","mon_decimal_point","undefined","int_frac_digits","frac_digits","Math","round","parseFloat","substr","symbol","int_curr_symbol","currency_symbol","signPosn","n_sign_posn","p_sign_posn","sepBySpace","n_sep_by_space","p_sep_by_space","csPrecedes","n_cs_precedes","p_cs_precedes","posSign","positive_sign","negSign","negative_sign","sign","otherSign","signPadding","valueAndCS","padding","replace"],"mappings":"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","file":"money_format.js","sourcesContent":["module.exports = function money_format (format, number) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/money_format/\n // original by: Brett Zamir (https://brett-zamir.me)\n // input by: daniel airton wermann (https://wermann.com.br)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // note 1: This depends on setlocale having the appropriate\n // note 1: locale (these examples use 'en_US')\n // example 1: money_format('%i', 1234.56)\n // returns 1: ' USD 1,234.56'\n // example 2: money_format('%14#8.2n', 1234.5678)\n // returns 2: ' $ 1,234.57'\n // example 3: money_format('%14#8.2n', -1234.5678)\n // returns 3: '-$ 1,234.57'\n // example 4: money_format('%(14#8.2n', 1234.5678)\n // returns 4: ' $ 1,234.57 '\n // example 5: money_format('%(14#8.2n', -1234.5678)\n // returns 5: '($ 1,234.57)'\n // example 6: money_format('%=014#8.2n', 1234.5678)\n // returns 6: ' $000001,234.57'\n // example 7: money_format('%=014#8.2n', -1234.5678)\n // returns 7: '-$000001,234.57'\n // example 8: money_format('%=*14#8.2n', 1234.5678)\n // returns 8: ' $*****1,234.57'\n // example 9: money_format('%=*14#8.2n', -1234.5678)\n // returns 9: '-$*****1,234.57'\n // example 10: money_format('%=*^14#8.2n', 1234.5678)\n // returns 10: ' $****1234.57'\n // example 11: money_format('%=*^14#8.2n', -1234.5678)\n // returns 11: ' -$****1234.57'\n // example 12: money_format('%=*!14#8.2n', 1234.5678)\n // returns 12: ' *****1,234.57'\n // example 13: money_format('%=*!14#8.2n', -1234.5678)\n // returns 13: '-*****1,234.57'\n // example 14: money_format('%i', 3590)\n // returns 14: ' USD 3,590.00'\n\n const setlocale = require('../strings/setlocale')\n\n // Per PHP behavior, there seems to be no extra padding\n // for sign when there is a positive number, though my\n // understanding of the description is that there should be padding;\n // need to revisit examples\n\n // Helpful info at https://ftp.gnu.org/pub/pub/old-gnu/Manuals/glibc-2.2.3/html_chapter/libc_7.html\n // and https://publib.boulder.ibm.com/infocenter/zos/v1r10/index.jsp?topic=/com.ibm.zos.r10.bpxbd00/strfmp.htm\n\n if (typeof number !== 'number') {\n return null\n }\n // 1: flags, 3: width, 5: left, 7: right, 8: conversion\n const regex = /%((=.|[+^(!-])*?)(\\d*?)(#(\\d+))?(\\.(\\d+))?([in%])/g\n\n // Ensure the locale data we need is set up\n setlocale('LC_ALL', 0)\n\n const $global = (typeof window !== 'undefined' ? window : global)\n $global.$locutus = $global.$locutus || {}\n const $locutus = $global.$locutus\n $locutus.php = $locutus.php || {}\n\n const monetary = $locutus.php.locales[$locutus.php.localeCategories.LC_MONETARY].LC_MONETARY\n\n const doReplace = function (n0, flags, n2, width, n4, left, n6, right, conversion) {\n let value = ''\n let repl = ''\n if (conversion === '%') {\n // Percent does not seem to be allowed with intervening content\n return '%'\n }\n const fill = flags && (/=./).test(flags) ? flags.match(/=(.)/)[1] : ' ' // flag: =f (numeric fill)\n // flag: ! (suppress currency symbol)\n const showCurrSymbol = !flags || flags.indexOf('!') === -1\n // field width: w (minimum field width)\n width = parseInt(width, 10) || 0\n\n const neg = number < 0\n // Convert to string\n number = number + ''\n // We don't want negative symbol represented here yet\n number = neg ? number.slice(1) : number\n\n const decpos = number.indexOf('.')\n // Get integer portion\n let integer = decpos !== -1 ? number.slice(0, decpos) : number\n // Get decimal portion\n let fraction = decpos !== -1 ? number.slice(decpos + 1) : ''\n\n const _strSplice = function (integerStr, idx, thouSep) {\n const integerArr = integerStr.split('')\n integerArr.splice(idx, 0, thouSep)\n return integerArr.join('')\n }\n\n const intLen = integer.length\n left = parseInt(left, 10)\n const filler = intLen < left\n if (filler) {\n var fillnum = left - intLen\n integer = new Array(fillnum + 1).join(fill) + integer\n }\n if (flags.indexOf('^') === -1) {\n // flag: ^ (disable grouping characters (of locale))\n // use grouping characters\n // ','\n let thouSep = monetary.mon_thousands_sep\n // [3] (every 3 digits in U.S.A. locale)\n const monGrouping = monetary.mon_grouping\n\n if (monGrouping[0] < integer.length) {\n for (var i = 0, idx = integer.length; i < monGrouping.length; i++) {\n // e.g., 3\n idx -= monGrouping[i]\n if (idx <= 0) {\n break\n }\n if (filler && idx < fillnum) {\n thouSep = fill\n }\n integer = _strSplice(integer, idx, thouSep)\n }\n }\n if (monGrouping[i - 1] > 0) {\n // Repeating last grouping (may only be one) until highest portion of integer reached\n while (idx > monGrouping[i - 1]) {\n idx -= monGrouping[i - 1]\n if (filler && idx < fillnum) {\n thouSep = fill\n }\n integer = _strSplice(integer, idx, thouSep)\n }\n }\n }\n\n // left, right\n if (right === '0') {\n // No decimal or fractional digits\n value = integer\n } else {\n // '.'\n let decPt = monetary.mon_decimal_point\n if (right === '' || right === undefined) {\n right = conversion === 'i' ? monetary.int_frac_digits : monetary.frac_digits\n }\n right = parseInt(right, 10)\n\n if (right === 0) {\n // Only remove fractional portion if explicitly set to zero digits\n fraction = ''\n decPt = ''\n } else if (right < fraction.length) {\n fraction = Math.round(parseFloat(\n fraction.slice(0, right) + '.' + fraction.substr(right, 1)\n ))\n if (right > fraction.length) {\n fraction = new Array(right - fraction.length + 1).join('0') + fraction // prepend with 0's\n }\n } else if (right > fraction.length) {\n fraction += new Array(right - fraction.length + 1).join('0') // pad with 0's\n }\n value = integer + decPt + fraction\n }\n\n let symbol = ''\n if (showCurrSymbol) {\n // 'i' vs. 'n' ('USD' vs. '$')\n symbol = conversion === 'i' ? monetary.int_curr_symbol : monetary.currency_symbol\n }\n const signPosn = neg ? monetary.n_sign_posn : monetary.p_sign_posn\n\n // 0: no space between curr. symbol and value\n // 1: space sep. them unless symb. and sign are adjacent then space sep. them from value\n // 2: space sep. sign and value unless symb. and sign are adjacent then space separates\n const sepBySpace = neg ? monetary.n_sep_by_space : monetary.p_sep_by_space\n\n // p_cs_precedes, n_cs_precedes\n // positive currency symbol follows value = 0; precedes value = 1\n const csPrecedes = neg ? monetary.n_cs_precedes : monetary.p_cs_precedes\n\n // Assemble symbol/value/sign and possible space as appropriate\n if (flags.indexOf('(') !== -1) {\n // flag: parenth. for negative\n // @todo: unclear on whether and how sepBySpace, signPosn, or csPrecedes have\n // an impact here (as they do below), but assuming for now behaves as signPosn 0 as\n // far as localized sepBySpace and signPosn behavior\n repl = (csPrecedes ? symbol + (sepBySpace === 1 ? ' ' : '') : '') + value + (!csPrecedes ? (\n sepBySpace === 1 ? ' ' : '') + symbol : '')\n if (neg) {\n repl = '(' + repl + ')'\n } else {\n repl = ' ' + repl + ' '\n }\n } else {\n // '+' is default\n // ''\n const posSign = monetary.positive_sign\n // '-'\n const negSign = monetary.negative_sign\n const sign = neg ? (negSign) : (posSign)\n const otherSign = neg ? (posSign) : (negSign)\n let signPadding = ''\n if (signPosn) {\n // has a sign\n signPadding = new Array(otherSign.length - sign.length + 1).join(' ')\n }\n\n let valueAndCS = ''\n switch (signPosn) {\n // 0: parentheses surround value and curr. symbol;\n // 1: sign precedes them;\n // 2: sign follows them;\n // 3: sign immed. precedes curr. symbol; (but may be space between)\n // 4: sign immed. succeeds curr. symbol; (but may be space between)\n case 0:\n valueAndCS = csPrecedes\n ? symbol + (sepBySpace === 1 ? ' ' : '') + value\n : value + (sepBySpace === 1 ? ' ' : '') + symbol\n repl = '(' + valueAndCS + ')'\n break\n case 1:\n valueAndCS = csPrecedes\n ? symbol + (sepBySpace === 1 ? ' ' : '') + value\n : value + (sepBySpace === 1 ? ' ' : '') + symbol\n repl = signPadding + sign + (sepBySpace === 2 ? ' ' : '') + valueAndCS\n break\n case 2:\n valueAndCS = csPrecedes\n ? symbol + (sepBySpace === 1 ? ' ' : '') + value\n : value + (sepBySpace === 1 ? ' ' : '') + symbol\n repl = valueAndCS + (sepBySpace === 2 ? ' ' : '') + sign + signPadding\n break\n case 3:\n repl = csPrecedes\n ? signPadding + sign + (sepBySpace === 2 ? ' ' : '') + symbol +\n (sepBySpace === 1 ? ' ' : '') + value\n : value + (sepBySpace === 1 ? ' ' : '') + sign + signPadding +\n (sepBySpace === 2 ? ' ' : '') + symbol\n break\n case 4:\n repl = csPrecedes\n ? symbol + (sepBySpace === 2 ? ' ' : '') + signPadding + sign +\n (sepBySpace === 1 ? ' ' : '') + value\n : value + (sepBySpace === 1 ? ' ' : '') + symbol +\n (sepBySpace === 2 ? ' ' : '') + sign + signPadding\n break\n }\n }\n\n let padding = width - repl.length\n if (padding > 0) {\n padding = new Array(padding + 1).join(' ')\n // @todo: How does p_sep_by_space affect the count if there is a space?\n // Included in count presumably?\n if (flags.indexOf('-') !== -1) {\n // left-justified (pad to right)\n repl += padding\n } else {\n // right-justified (pad to left)\n repl = padding + repl\n }\n }\n return repl\n }\n\n return format.replace(regex, doReplace)\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/strings/money_format.js"],"names":["module","exports","money_format","format","number","setlocale","require","regex","$global","window","global","$locutus","php","monetary","locales","localeCategories","LC_MONETARY","doReplace","n0","flags","n2","width","n4","left","n6","right","conversion","value","repl","fill","test","match","showCurrSymbol","indexOf","parseInt","neg","slice","decpos","integer","fraction","_strSplice","integerStr","idx","thouSep","integerArr","split","splice","join","intLen","length","filler","fillnum","Array","mon_thousands_sep","monGrouping","mon_grouping","i","decPt","mon_decimal_point","undefined","int_frac_digits","frac_digits","Math","round","parseFloat","substr","symbol","int_curr_symbol","currency_symbol","signPosn","n_sign_posn","p_sign_posn","sepBySpace","n_sep_by_space","p_sep_by_space","csPrecedes","n_cs_precedes","p_cs_precedes","posSign","positive_sign","negSign","negative_sign","sign","otherSign","signPadding","valueAndCS","padding","replace"],"mappings":"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","file":"money_format.js","sourcesContent":["module.exports = function money_format (format, number) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/money_format/\n // original by: Brett Zamir (https://brett-zamir.me)\n // input by: daniel airton wermann (https://wermann.com.br)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // note 1: This depends on setlocale having the appropriate\n // note 1: locale (these examples use 'en_US')\n // example 1: money_format('%i', 1234.56)\n // returns 1: ' USD 1,234.56'\n // example 2: money_format('%14#8.2n', 1234.5678)\n // returns 2: ' $ 1,234.57'\n // example 3: money_format('%14#8.2n', -1234.5678)\n // returns 3: '-$ 1,234.57'\n // example 4: money_format('%(14#8.2n', 1234.5678)\n // returns 4: ' $ 1,234.57 '\n // example 5: money_format('%(14#8.2n', -1234.5678)\n // returns 5: '($ 1,234.57)'\n // example 6: money_format('%=014#8.2n', 1234.5678)\n // returns 6: ' $000001,234.57'\n // example 7: money_format('%=014#8.2n', -1234.5678)\n // returns 7: '-$000001,234.57'\n // example 8: money_format('%=*14#8.2n', 1234.5678)\n // returns 8: ' $*****1,234.57'\n // example 9: money_format('%=*14#8.2n', -1234.5678)\n // returns 9: '-$*****1,234.57'\n // example 10: money_format('%=*^14#8.2n', 1234.5678)\n // returns 10: ' $****1234.57'\n // example 11: money_format('%=*^14#8.2n', -1234.5678)\n // returns 11: ' -$****1234.57'\n // example 12: money_format('%=*!14#8.2n', 1234.5678)\n // returns 12: ' *****1,234.57'\n // example 13: money_format('%=*!14#8.2n', -1234.5678)\n // returns 13: '-*****1,234.57'\n // example 14: money_format('%i', 3590)\n // returns 14: ' USD 3,590.00'\n\n const setlocale = require('../strings/setlocale')\n\n // Per PHP behavior, there seems to be no extra padding\n // for sign when there is a positive number, though my\n // understanding of the description is that there should be padding;\n // need to revisit examples\n\n // Helpful info at https://ftp.gnu.org/pub/pub/old-gnu/Manuals/glibc-2.2.3/html_chapter/libc_7.html\n // and https://publib.boulder.ibm.com/infocenter/zos/v1r10/index.jsp?topic=/com.ibm.zos.r10.bpxbd00/strfmp.htm\n\n if (typeof number !== 'number') {\n return null\n }\n // 1: flags, 3: width, 5: left, 7: right, 8: conversion\n const regex = /%((=.|[+^(!-])*?)(\\d*?)(#(\\d+))?(\\.(\\d+))?([in%])/g\n\n // Ensure the locale data we need is set up\n setlocale('LC_ALL', 0)\n\n const $global = (typeof window !== 'undefined' ? window : global)\n $global.$locutus = $global.$locutus || {}\n const $locutus = $global.$locutus\n $locutus.php = $locutus.php || {}\n\n const monetary = $locutus.php.locales[$locutus.php.localeCategories.LC_MONETARY].LC_MONETARY\n\n const doReplace = function (n0, flags, n2, width, n4, left, n6, right, conversion) {\n let value = ''\n let repl = ''\n if (conversion === '%') {\n // Percent does not seem to be allowed with intervening content\n return '%'\n }\n const fill = flags && (/=./).test(flags) ? flags.match(/=(.)/)[1] : ' ' // flag: =f (numeric fill)\n // flag: ! (suppress currency symbol)\n const showCurrSymbol = !flags || flags.indexOf('!') === -1\n // field width: w (minimum field width)\n width = parseInt(width, 10) || 0\n\n const neg = number < 0\n // Convert to string\n number = number + ''\n // We don't want negative symbol represented here yet\n number = neg ? number.slice(1) : number\n\n const decpos = number.indexOf('.')\n // Get integer portion\n let integer = decpos !== -1 ? number.slice(0, decpos) : number\n // Get decimal portion\n let fraction = decpos !== -1 ? number.slice(decpos + 1) : ''\n\n const _strSplice = function (integerStr, idx, thouSep) {\n const integerArr = integerStr.split('')\n integerArr.splice(idx, 0, thouSep)\n return integerArr.join('')\n }\n\n const intLen = integer.length\n left = parseInt(left, 10)\n const filler = intLen < left\n if (filler) {\n var fillnum = left - intLen\n integer = new Array(fillnum + 1).join(fill) + integer\n }\n if (flags.indexOf('^') === -1) {\n // flag: ^ (disable grouping characters (of locale))\n // use grouping characters\n // ','\n let thouSep = monetary.mon_thousands_sep\n // [3] (every 3 digits in U.S.A. locale)\n const monGrouping = monetary.mon_grouping\n\n if (monGrouping[0] < integer.length) {\n for (var i = 0, idx = integer.length; i < monGrouping.length; i++) {\n // e.g., 3\n idx -= monGrouping[i]\n if (idx <= 0) {\n break\n }\n if (filler && idx < fillnum) {\n thouSep = fill\n }\n integer = _strSplice(integer, idx, thouSep)\n }\n }\n if (monGrouping[i - 1] > 0) {\n // Repeating last grouping (may only be one) until highest portion of integer reached\n while (idx > monGrouping[i - 1]) {\n idx -= monGrouping[i - 1]\n if (filler && idx < fillnum) {\n thouSep = fill\n }\n integer = _strSplice(integer, idx, thouSep)\n }\n }\n }\n\n // left, right\n if (right === '0') {\n // No decimal or fractional digits\n value = integer\n } else {\n // '.'\n let decPt = monetary.mon_decimal_point\n if (right === '' || right === undefined) {\n right = conversion === 'i' ? monetary.int_frac_digits : monetary.frac_digits\n }\n right = parseInt(right, 10)\n\n if (right === 0) {\n // Only remove fractional portion if explicitly set to zero digits\n fraction = ''\n decPt = ''\n } else if (right < fraction.length) {\n fraction = Math.round(parseFloat(\n fraction.slice(0, right) + '.' + fraction.substr(right, 1)\n ))\n if (right > fraction.length) {\n fraction = new Array(right - fraction.length + 1).join('0') + fraction // prepend with 0's\n }\n } else if (right > fraction.length) {\n fraction += new Array(right - fraction.length + 1).join('0') // pad with 0's\n }\n value = integer + decPt + fraction\n }\n\n let symbol = ''\n if (showCurrSymbol) {\n // 'i' vs. 'n' ('USD' vs. '$')\n symbol = conversion === 'i' ? monetary.int_curr_symbol : monetary.currency_symbol\n }\n const signPosn = neg ? monetary.n_sign_posn : monetary.p_sign_posn\n\n // 0: no space between curr. symbol and value\n // 1: space sep. them unless symb. and sign are adjacent then space sep. them from value\n // 2: space sep. sign and value unless symb. and sign are adjacent then space separates\n const sepBySpace = neg ? monetary.n_sep_by_space : monetary.p_sep_by_space\n\n // p_cs_precedes, n_cs_precedes\n // positive currency symbol follows value = 0; precedes value = 1\n const csPrecedes = neg ? monetary.n_cs_precedes : monetary.p_cs_precedes\n\n // Assemble symbol/value/sign and possible space as appropriate\n if (flags.indexOf('(') !== -1) {\n // flag: parenth. for negative\n // @todo: unclear on whether and how sepBySpace, signPosn, or csPrecedes have\n // an impact here (as they do below), but assuming for now behaves as signPosn 0 as\n // far as localized sepBySpace and signPosn behavior\n repl = (csPrecedes ? symbol + (sepBySpace === 1 ? ' ' : '') : '') + value + (!csPrecedes\n ? (sepBySpace === 1 ? ' ' : '') + symbol\n : '')\n if (neg) {\n repl = '(' + repl + ')'\n } else {\n repl = ' ' + repl + ' '\n }\n } else {\n // '+' is default\n // ''\n const posSign = monetary.positive_sign\n // '-'\n const negSign = monetary.negative_sign\n const sign = neg ? (negSign) : (posSign)\n const otherSign = neg ? (posSign) : (negSign)\n let signPadding = ''\n if (signPosn) {\n // has a sign\n signPadding = new Array(otherSign.length - sign.length + 1).join(' ')\n }\n\n let valueAndCS = ''\n switch (signPosn) {\n // 0: parentheses surround value and curr. symbol;\n // 1: sign precedes them;\n // 2: sign follows them;\n // 3: sign immed. precedes curr. symbol; (but may be space between)\n // 4: sign immed. succeeds curr. symbol; (but may be space between)\n case 0:\n valueAndCS = csPrecedes\n ? symbol + (sepBySpace === 1 ? ' ' : '') + value\n : value + (sepBySpace === 1 ? ' ' : '') + symbol\n repl = '(' + valueAndCS + ')'\n break\n case 1:\n valueAndCS = csPrecedes\n ? symbol + (sepBySpace === 1 ? ' ' : '') + value\n : value + (sepBySpace === 1 ? ' ' : '') + symbol\n repl = signPadding + sign + (sepBySpace === 2 ? ' ' : '') + valueAndCS\n break\n case 2:\n valueAndCS = csPrecedes\n ? symbol + (sepBySpace === 1 ? ' ' : '') + value\n : value + (sepBySpace === 1 ? ' ' : '') + symbol\n repl = valueAndCS + (sepBySpace === 2 ? ' ' : '') + sign + signPadding\n break\n case 3:\n repl = csPrecedes\n ? signPadding + sign + (sepBySpace === 2 ? ' ' : '') + symbol +\n (sepBySpace === 1 ? ' ' : '') + value\n : value + (sepBySpace === 1 ? ' ' : '') + sign + signPadding +\n (sepBySpace === 2 ? ' ' : '') + symbol\n break\n case 4:\n repl = csPrecedes\n ? symbol + (sepBySpace === 2 ? ' ' : '') + signPadding + sign +\n (sepBySpace === 1 ? ' ' : '') + value\n : value + (sepBySpace === 1 ? ' ' : '') + symbol +\n (sepBySpace === 2 ? ' ' : '') + sign + signPadding\n break\n }\n }\n\n let padding = width - repl.length\n if (padding > 0) {\n padding = new Array(padding + 1).join(' ')\n // @todo: How does p_sep_by_space affect the count if there is a space?\n // Included in count presumably?\n if (flags.indexOf('-') !== -1) {\n // left-justified (pad to right)\n repl += padding\n } else {\n // right-justified (pad to left)\n repl = padding + repl\n }\n }\n return repl\n }\n\n return format.replace(regex, doReplace)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/strings/rtrim.js"],"names":["module","exports","rtrim","str","charlist","replace","re","RegExp"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,KAAT,CAAgBC,GAAhB,EAAqBC,QAArB,EAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEAA,aAAW,CAACA,QAAD,GAAY,UAAZ,GAA2B,CAACA,WAAW,EAAZ,EACnCC,OADmC,CAC3B,sBAD2B,EACH,MADG,CAAtC;;AAGA,MAAMC,KAAK,IAAIC,MAAJ,CAAW,MAAMH,QAAN,GAAiB,KAA5B,EAAmC,GAAnC,CAAX;;AAEA,SAAO,CAACD,MAAM,EAAP,EAAWE,OAAX,CAAmBC,EAAnB,EAAuB,EAAvB,CAAP;AACD,CAjBD","file":"rtrim.js","sourcesContent":["module.exports = function rtrim (str, charlist) {\n // discuss at: https://locutus.io/php/rtrim/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // input by: Erkekjetter\n // input by: rem\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // example 1: rtrim(' Kevin van Zonneveld ')\n // returns 1: ' Kevin van Zonneveld'\n\n charlist = !charlist ? ' \\\\s\\u00A0' : (charlist + '')\n .replace(/([[\\]().?/*{}+$^:])/g, '\\\\$1')\n\n const re = new RegExp('[' + charlist + ']+$', 'g')\n\n return (str + '').replace(re, '')\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/strings/rtrim.js"],"names":["module","exports","rtrim","str","charlist","replace","re","RegExp"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,KAAT,CAAgBC,GAAhB,EAAqBC,QAArB,EAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEAA,aAAW,CAACA,QAAD,GACP,UADO,GAEP,CAACA,WAAW,EAAZ,EAAgBC,OAAhB,CAAwB,sBAAxB,EAAgD,MAAhD,CAFJ;;AAIA,MAAMC,KAAK,IAAIC,MAAJ,CAAW,MAAMH,QAAN,GAAiB,KAA5B,EAAmC,GAAnC,CAAX;;AAEA,SAAO,CAACD,MAAM,EAAP,EAAWE,OAAX,CAAmBC,EAAnB,EAAuB,EAAvB,CAAP;AACD,CAlBD","file":"rtrim.js","sourcesContent":["module.exports = function rtrim (str, charlist) {\n // discuss at: https://locutus.io/php/rtrim/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // input by: Erkekjetter\n // input by: rem\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // example 1: rtrim(' Kevin van Zonneveld ')\n // returns 1: ' Kevin van Zonneveld'\n\n charlist = !charlist\n ? ' \\\\s\\u00A0'\n : (charlist + '').replace(/([[\\]().?/*{}+$^:])/g, '\\\\$1')\n\n const re = new RegExp('[' + charlist + ']+$', 'g')\n\n return (str + '').replace(re, '')\n}\n"]}
@@ -218,9 +218,8 @@ module.exports = function setlocale(category, locale) {
218
218
  decimal_point: '.',
219
219
  thousands_sep: '',
220
220
  grouping: []
221
- };
222
- // D_T_FMT
223
- $locutus.php.locales.C.LC_TIME.c = '%a %b %e %H:%M:%S %Y';
221
+ // D_T_FMT
222
+ };$locutus.php.locales.C.LC_TIME.c = '%a %b %e %H:%M:%S %Y';
224
223
  // D_FMT
225
224
  $locutus.php.locales.C.LC_TIME.x = '%m/%d/%y';
226
225
  // T_FMT
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/strings/setlocale.js"],"names":["module","exports","setlocale","category","locale","getenv","require","categ","cats","i","_copy","orig","RegExp","Date","newObj","_nplurals2a","n","_nplurals2b","$global","window","global","$locutus","php","locales","fr_CA","LC_TIME","x","en","LC_COLLATE","str1","str2","LC_CTYPE","an","al","ct","dg","gr","lw","pr","pu","sp","up","xd","CODESET","lower","upper","a","A","b","B","c","p","P","r","X","alt_digits","ERA","ERA_YEAR","ERA_D_T_FMT","ERA_D_FMT","ERA_T_FMT","LC_MONETARY","int_curr_symbol","currency_symbol","mon_decimal_point","mon_thousands_sep","mon_grouping","positive_sign","negative_sign","int_frac_digits","frac_digits","p_cs_precedes","p_sep_by_space","n_cs_precedes","n_sep_by_space","p_sign_posn","n_sign_posn","LC_NUMERIC","decimal_point","thousands_sep","grouping","LC_MESSAGES","YESEXPR","NOEXPR","YESSTR","NOSTR","nplurals","en_US","en_GB","en_AU","C","fr","document","d","NS_XHTML","NS_XML","getElementsByTagNameNS","getAttributeNS","getElementsByTagName","lang","replace","localeCategories","Object","prototype","toString","call","length","push","join"],"mappings":"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","file":"setlocale.js","sourcesContent":["module.exports = function setlocale (category, locale) {\n // discuss at: https://locutus.io/php/setlocale/\n // original by: Brett Zamir (https://brett-zamir.me)\n // original by: Blues (https://hacks.bluesmoon.info/strftime/strftime.js)\n // original by: YUI Library (https://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html)\n // note 1: Is extensible, but currently only implements locales en,\n // note 1: en_US, en_GB, en_AU, fr, and fr_CA for LC_TIME only; C for LC_CTYPE;\n // note 1: C and en for LC_MONETARY/LC_NUMERIC; en for LC_COLLATE\n // note 1: Uses global: locutus to store locale info\n // note 1: Consider using https://demo.icu-project.org/icu-bin/locexp as basis for localization (as in i18n_loc_set_default())\n // note 2: This function tries to establish the locale via the `window` global.\n // note 2: This feature will not work in Node and hence is Browser-only\n // example 1: setlocale('LC_ALL', 'en_US')\n // returns 1: 'en_US'\n\n const getenv = require('../info/getenv')\n\n let categ = ''\n const cats = []\n let i = 0\n\n const _copy = function _copy (orig) {\n if (orig instanceof RegExp) {\n return new RegExp(orig)\n } else if (orig instanceof Date) {\n return new Date(orig)\n }\n const newObj = {}\n for (const i in orig) {\n if (typeof orig[i] === 'object') {\n newObj[i] = _copy(orig[i])\n } else {\n newObj[i] = orig[i]\n }\n }\n return newObj\n }\n\n // Function usable by a ngettext implementation (apparently not an accessible part of setlocale(),\n // but locale-specific) See https://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms\n // though amended with others from https://developer.mozilla.org/En/Localization_and_Plurals (new\n // categories noted with \"MDC\" below, though not sure of whether there is a convention for the\n // relative order of these newer groups as far as ngettext) The function name indicates the number\n // of plural forms (nplural) Need to look into https://cldr.unicode.org/ (maybe future JavaScript);\n // Dojo has some functions (under new BSD), including JSON conversions of LDML XML from CLDR:\n // https://bugs.dojotoolkit.org/browser/dojo/trunk/cldr and docs at\n // https://api.dojotoolkit.org/jsdoc/HEAD/dojo.cldr\n\n // var _nplurals1 = function (n) {\n // // e.g., Japanese\n // return 0\n // }\n const _nplurals2a = function (n) {\n // e.g., English\n return n !== 1 ? 1 : 0\n }\n const _nplurals2b = function (n) {\n // e.g., French\n return n > 1 ? 1 : 0\n }\n\n const $global = (typeof window !== 'undefined' ? window : global)\n $global.$locutus = $global.$locutus || {}\n const $locutus = $global.$locutus\n $locutus.php = $locutus.php || {}\n\n // Reconcile Windows vs. *nix locale names?\n // Allow different priority orders of languages, esp. if implement gettext as in\n // LANGUAGE env. var.? (e.g., show German if French is not available)\n if (!$locutus.php.locales ||\n !$locutus.php.locales.fr_CA ||\n !$locutus.php.locales.fr_CA.LC_TIME ||\n !$locutus.php.locales.fr_CA.LC_TIME.x) {\n // Can add to the locales\n $locutus.php.locales = {}\n\n $locutus.php.locales.en = {\n LC_COLLATE: function (str1, str2) {\n // @todo: This one taken from strcmp, but need for other locales; we don't use localeCompare\n // since its locale is not settable\n return (str1 === str2) ? 0 : ((str1 > str2) ? 1 : -1)\n },\n LC_CTYPE: {\n // Need to change any of these for English as opposed to C?\n an: /^[A-Za-z\\d]+$/g,\n al: /^[A-Za-z]+$/g,\n ct: /^[\\u0000-\\u001F\\u007F]+$/g,\n dg: /^[\\d]+$/g,\n gr: /^[\\u0021-\\u007E]+$/g,\n lw: /^[a-z]+$/g,\n pr: /^[\\u0020-\\u007E]+$/g,\n pu: /^[\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E]+$/g,\n sp: /^[\\f\\n\\r\\t\\v ]+$/g,\n up: /^[A-Z]+$/g,\n xd: /^[A-Fa-f\\d]+$/g,\n CODESET: 'UTF-8',\n // Used by sql_regcase\n lower: 'abcdefghijklmnopqrstuvwxyz',\n upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n },\n LC_TIME: {\n // Comments include nl_langinfo() constant equivalents and any\n // changes from Blues' implementation\n a: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n // ABDAY_\n A: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n // DAY_\n b: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n // ABMON_\n B: ['January', 'February', 'March', 'April', 'May', 'June', 'July',\n 'August', 'September', 'October',\n 'November', 'December'\n ],\n // MON_\n c: '%a %d %b %Y %r %Z',\n // D_T_FMT // changed %T to %r per results\n p: ['AM', 'PM'],\n // AM_STR/PM_STR\n P: ['am', 'pm'],\n // Not available in nl_langinfo()\n r: '%I:%M:%S %p',\n // T_FMT_AMPM (Fixed for all locales)\n x: '%m/%d/%Y',\n // D_FMT // switched order of %m and %d; changed %y to %Y (C uses %y)\n X: '%r',\n // T_FMT // changed from %T to %r (%T is default for C, not English US)\n // Following are from nl_langinfo() or https://www.cptec.inpe.br/sx4/sx4man2/g1ab02e/strftime.4.html\n alt_digits: '',\n // e.g., ordinal\n ERA: '',\n ERA_YEAR: '',\n ERA_D_T_FMT: '',\n ERA_D_FMT: '',\n ERA_T_FMT: ''\n },\n // Assuming distinction between numeric and monetary is thus:\n // See below for C locale\n LC_MONETARY: {\n // based on Windows \"english\" (English_United States.1252) locale\n int_curr_symbol: 'USD',\n currency_symbol: '$',\n mon_decimal_point: '.',\n mon_thousands_sep: ',',\n mon_grouping: [3],\n // use mon_thousands_sep; \"\" for no grouping; additional array members\n // indicate successive group lengths after first group\n // (e.g., if to be 1,23,456, could be [3, 2])\n positive_sign: '',\n negative_sign: '-',\n int_frac_digits: 2,\n // Fractional digits only for money defaults?\n frac_digits: 2,\n p_cs_precedes: 1,\n // positive currency symbol follows value = 0; precedes value = 1\n p_sep_by_space: 0,\n // 0: no space between curr. symbol and value; 1: space sep. them unless symb.\n // and sign are adjacent then space sep. them from value; 2: space sep. sign\n // and value unless symb. and sign are adjacent then space separates\n n_cs_precedes: 1,\n // see p_cs_precedes\n n_sep_by_space: 0,\n // see p_sep_by_space\n p_sign_posn: 3,\n // 0: parentheses surround quantity and curr. symbol; 1: sign precedes them;\n // 2: sign follows them; 3: sign immed. precedes curr. symbol; 4: sign immed.\n // succeeds curr. symbol\n n_sign_posn: 0 // see p_sign_posn\n },\n LC_NUMERIC: {\n // based on Windows \"english\" (English_United States.1252) locale\n decimal_point: '.',\n thousands_sep: ',',\n grouping: [3] // see mon_grouping, but for non-monetary values (use thousands_sep)\n },\n LC_MESSAGES: {\n YESEXPR: '^[yY].*',\n NOEXPR: '^[nN].*',\n YESSTR: '',\n NOSTR: ''\n },\n nplurals: _nplurals2a\n }\n $locutus.php.locales.en_US = _copy($locutus.php.locales.en)\n $locutus.php.locales.en_US.LC_TIME.c = '%a %d %b %Y %r %Z'\n $locutus.php.locales.en_US.LC_TIME.x = '%D'\n $locutus.php.locales.en_US.LC_TIME.X = '%r'\n // The following are based on *nix settings\n $locutus.php.locales.en_US.LC_MONETARY.int_curr_symbol = 'USD '\n $locutus.php.locales.en_US.LC_MONETARY.p_sign_posn = 1\n $locutus.php.locales.en_US.LC_MONETARY.n_sign_posn = 1\n $locutus.php.locales.en_US.LC_MONETARY.mon_grouping = [3, 3]\n $locutus.php.locales.en_US.LC_NUMERIC.thousands_sep = ''\n $locutus.php.locales.en_US.LC_NUMERIC.grouping = []\n\n $locutus.php.locales.en_GB = _copy($locutus.php.locales.en)\n $locutus.php.locales.en_GB.LC_TIME.r = '%l:%M:%S %P %Z'\n\n $locutus.php.locales.en_AU = _copy($locutus.php.locales.en_GB)\n // Assume C locale is like English (?) (We need C locale for LC_CTYPE)\n $locutus.php.locales.C = _copy($locutus.php.locales.en)\n $locutus.php.locales.C.LC_CTYPE.CODESET = 'ANSI_X3.4-1968'\n $locutus.php.locales.C.LC_MONETARY = {\n int_curr_symbol: '',\n currency_symbol: '',\n mon_decimal_point: '',\n mon_thousands_sep: '',\n mon_grouping: [],\n p_cs_precedes: 127,\n p_sep_by_space: 127,\n n_cs_precedes: 127,\n n_sep_by_space: 127,\n p_sign_posn: 127,\n n_sign_posn: 127,\n positive_sign: '',\n negative_sign: '',\n int_frac_digits: 127,\n frac_digits: 127\n }\n $locutus.php.locales.C.LC_NUMERIC = {\n decimal_point: '.',\n thousands_sep: '',\n grouping: []\n }\n // D_T_FMT\n $locutus.php.locales.C.LC_TIME.c = '%a %b %e %H:%M:%S %Y'\n // D_FMT\n $locutus.php.locales.C.LC_TIME.x = '%m/%d/%y'\n // T_FMT\n $locutus.php.locales.C.LC_TIME.X = '%H:%M:%S'\n $locutus.php.locales.C.LC_MESSAGES.YESEXPR = '^[yY]'\n $locutus.php.locales.C.LC_MESSAGES.NOEXPR = '^[nN]'\n\n $locutus.php.locales.fr = _copy($locutus.php.locales.en)\n $locutus.php.locales.fr.nplurals = _nplurals2b\n $locutus.php.locales.fr.LC_TIME.a = ['dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam']\n $locutus.php.locales.fr.LC_TIME.A = ['dimanche', 'lundi', 'mardi', 'mercredi',\n 'jeudi', 'vendredi', 'samedi']\n $locutus.php.locales.fr.LC_TIME.b = ['jan', 'f\\u00E9v', 'mar', 'avr', 'mai',\n 'jun', 'jui', 'ao\\u00FB', 'sep', 'oct',\n 'nov', 'd\\u00E9c'\n ]\n $locutus.php.locales.fr.LC_TIME.B = ['janvier', 'f\\u00E9vrier', 'mars',\n 'avril', 'mai', 'juin', 'juillet', 'ao\\u00FBt',\n 'septembre', 'octobre', 'novembre', 'd\\u00E9cembre'\n ]\n $locutus.php.locales.fr.LC_TIME.c = '%a %d %b %Y %T %Z'\n $locutus.php.locales.fr.LC_TIME.p = ['', '']\n $locutus.php.locales.fr.LC_TIME.P = ['', '']\n $locutus.php.locales.fr.LC_TIME.x = '%d.%m.%Y'\n $locutus.php.locales.fr.LC_TIME.X = '%T'\n\n $locutus.php.locales.fr_CA = _copy($locutus.php.locales.fr)\n $locutus.php.locales.fr_CA.LC_TIME.x = '%Y-%m-%d'\n }\n if (!$locutus.php.locale) {\n $locutus.php.locale = 'en_US'\n // Try to establish the locale via the `window` global\n if (typeof window !== 'undefined' && window.document) {\n const d = window.document\n const NS_XHTML = 'https://www.w3.org/1999/xhtml'\n const NS_XML = 'https://www.w3.org/XML/1998/namespace'\n if (d.getElementsByTagNameNS &&\n d.getElementsByTagNameNS(NS_XHTML, 'html')[0]) {\n if (d.getElementsByTagNameNS(NS_XHTML, 'html')[0].getAttributeNS &&\n d.getElementsByTagNameNS(NS_XHTML, 'html')[0].getAttributeNS(NS_XML, 'lang')) {\n $locutus.php.locale = d.getElementsByTagName(NS_XHTML, 'html')[0]\n .getAttributeNS(NS_XML, 'lang')\n } else if (d.getElementsByTagNameNS(NS_XHTML, 'html')[0].lang) {\n // XHTML 1.0 only\n $locutus.php.locale = d.getElementsByTagNameNS(NS_XHTML, 'html')[0].lang\n }\n } else if (d.getElementsByTagName('html')[0] &&\n d.getElementsByTagName('html')[0].lang) {\n $locutus.php.locale = d.getElementsByTagName('html')[0].lang\n }\n }\n }\n // PHP-style\n $locutus.php.locale = $locutus.php.locale.replace('-', '_')\n // @todo: locale if declared locale hasn't been defined\n if (!($locutus.php.locale in $locutus.php.locales)) {\n if ($locutus.php.locale.replace(/_[a-zA-Z]+$/, '') in $locutus.php.locales) {\n $locutus.php.locale = $locutus.php.locale.replace(/_[a-zA-Z]+$/, '')\n }\n }\n\n if (!$locutus.php.localeCategories) {\n $locutus.php.localeCategories = {\n LC_COLLATE: $locutus.php.locale,\n // for string comparison, see strcoll()\n LC_CTYPE: $locutus.php.locale,\n // for character classification and conversion, for example strtoupper()\n LC_MONETARY: $locutus.php.locale,\n // for localeconv()\n LC_NUMERIC: $locutus.php.locale,\n // for decimal separator (See also localeconv())\n LC_TIME: $locutus.php.locale,\n // for date and time formatting with strftime()\n // for system responses (available if PHP was compiled with libintl):\n LC_MESSAGES: $locutus.php.locale\n }\n }\n\n if (locale === null || locale === '') {\n locale = getenv(category) || getenv('LANG')\n } else if (Object.prototype.toString.call(locale) === '[object Array]') {\n for (i = 0; i < locale.length; i++) {\n if (!(locale[i] in $locutus.php.locales)) {\n if (i === locale.length - 1) {\n // none found\n return false\n }\n continue\n }\n locale = locale[i]\n break\n }\n }\n\n // Just get the locale\n if (locale === '0' || locale === 0) {\n if (category === 'LC_ALL') {\n for (categ in $locutus.php.localeCategories) {\n // Add \".UTF-8\" or allow \".@latint\", etc. to the end?\n cats.push(categ + '=' + $locutus.php.localeCategories[categ])\n }\n return cats.join(';')\n }\n return $locutus.php.localeCategories[category]\n }\n\n if (!(locale in $locutus.php.locales)) {\n // Locale not found\n return false\n }\n\n // Set and get locale\n if (category === 'LC_ALL') {\n for (categ in $locutus.php.localeCategories) {\n $locutus.php.localeCategories[categ] = locale\n }\n } else {\n $locutus.php.localeCategories[category] = locale\n }\n\n return locale\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/strings/setlocale.js"],"names":["module","exports","setlocale","category","locale","getenv","require","categ","cats","i","_copy","orig","RegExp","Date","newObj","_nplurals2a","n","_nplurals2b","$global","window","global","$locutus","php","locales","fr_CA","LC_TIME","x","en","LC_COLLATE","str1","str2","LC_CTYPE","an","al","ct","dg","gr","lw","pr","pu","sp","up","xd","CODESET","lower","upper","a","A","b","B","c","p","P","r","X","alt_digits","ERA","ERA_YEAR","ERA_D_T_FMT","ERA_D_FMT","ERA_T_FMT","LC_MONETARY","int_curr_symbol","currency_symbol","mon_decimal_point","mon_thousands_sep","mon_grouping","positive_sign","negative_sign","int_frac_digits","frac_digits","p_cs_precedes","p_sep_by_space","n_cs_precedes","n_sep_by_space","p_sign_posn","n_sign_posn","LC_NUMERIC","decimal_point","thousands_sep","grouping","LC_MESSAGES","YESEXPR","NOEXPR","YESSTR","NOSTR","nplurals","en_US","en_GB","en_AU","C","fr","document","d","NS_XHTML","NS_XML","getElementsByTagNameNS","getAttributeNS","getElementsByTagName","lang","replace","localeCategories","Object","prototype","toString","call","length","push","join"],"mappings":"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","file":"setlocale.js","sourcesContent":["module.exports = function setlocale (category, locale) {\n // discuss at: https://locutus.io/php/setlocale/\n // original by: Brett Zamir (https://brett-zamir.me)\n // original by: Blues (https://hacks.bluesmoon.info/strftime/strftime.js)\n // original by: YUI Library (https://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html)\n // note 1: Is extensible, but currently only implements locales en,\n // note 1: en_US, en_GB, en_AU, fr, and fr_CA for LC_TIME only; C for LC_CTYPE;\n // note 1: C and en for LC_MONETARY/LC_NUMERIC; en for LC_COLLATE\n // note 1: Uses global: locutus to store locale info\n // note 1: Consider using https://demo.icu-project.org/icu-bin/locexp as basis for localization (as in i18n_loc_set_default())\n // note 2: This function tries to establish the locale via the `window` global.\n // note 2: This feature will not work in Node and hence is Browser-only\n // example 1: setlocale('LC_ALL', 'en_US')\n // returns 1: 'en_US'\n\n const getenv = require('../info/getenv')\n\n let categ = ''\n const cats = []\n let i = 0\n\n const _copy = function _copy (orig) {\n if (orig instanceof RegExp) {\n return new RegExp(orig)\n } else if (orig instanceof Date) {\n return new Date(orig)\n }\n const newObj = {}\n for (const i in orig) {\n if (typeof orig[i] === 'object') {\n newObj[i] = _copy(orig[i])\n } else {\n newObj[i] = orig[i]\n }\n }\n return newObj\n }\n\n // Function usable by a ngettext implementation (apparently not an accessible part of setlocale(),\n // but locale-specific) See https://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms\n // though amended with others from https://developer.mozilla.org/En/Localization_and_Plurals (new\n // categories noted with \"MDC\" below, though not sure of whether there is a convention for the\n // relative order of these newer groups as far as ngettext) The function name indicates the number\n // of plural forms (nplural) Need to look into https://cldr.unicode.org/ (maybe future JavaScript);\n // Dojo has some functions (under new BSD), including JSON conversions of LDML XML from CLDR:\n // https://bugs.dojotoolkit.org/browser/dojo/trunk/cldr and docs at\n // https://api.dojotoolkit.org/jsdoc/HEAD/dojo.cldr\n\n // var _nplurals1 = function (n) {\n // // e.g., Japanese\n // return 0\n // }\n const _nplurals2a = function (n) {\n // e.g., English\n return n !== 1 ? 1 : 0\n }\n const _nplurals2b = function (n) {\n // e.g., French\n return n > 1 ? 1 : 0\n }\n\n const $global = (typeof window !== 'undefined' ? window : global)\n $global.$locutus = $global.$locutus || {}\n const $locutus = $global.$locutus\n $locutus.php = $locutus.php || {}\n\n // Reconcile Windows vs. *nix locale names?\n // Allow different priority orders of languages, esp. if implement gettext as in\n // LANGUAGE env. var.? (e.g., show German if French is not available)\n if (!$locutus.php.locales ||\n !$locutus.php.locales.fr_CA ||\n !$locutus.php.locales.fr_CA.LC_TIME ||\n !$locutus.php.locales.fr_CA.LC_TIME.x) {\n // Can add to the locales\n $locutus.php.locales = {}\n\n $locutus.php.locales.en = {\n LC_COLLATE: function (str1, str2) {\n // @todo: This one taken from strcmp, but need for other locales; we don't use localeCompare\n // since its locale is not settable\n return (str1 === str2) ? 0 : ((str1 > str2) ? 1 : -1)\n },\n LC_CTYPE: {\n // Need to change any of these for English as opposed to C?\n an: /^[A-Za-z\\d]+$/g,\n al: /^[A-Za-z]+$/g,\n ct: /^[\\u0000-\\u001F\\u007F]+$/g,\n dg: /^[\\d]+$/g,\n gr: /^[\\u0021-\\u007E]+$/g,\n lw: /^[a-z]+$/g,\n pr: /^[\\u0020-\\u007E]+$/g,\n pu: /^[\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E]+$/g,\n sp: /^[\\f\\n\\r\\t\\v ]+$/g,\n up: /^[A-Z]+$/g,\n xd: /^[A-Fa-f\\d]+$/g,\n CODESET: 'UTF-8',\n // Used by sql_regcase\n lower: 'abcdefghijklmnopqrstuvwxyz',\n upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n },\n LC_TIME: {\n // Comments include nl_langinfo() constant equivalents and any\n // changes from Blues' implementation\n a: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n // ABDAY_\n A: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n // DAY_\n b: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n // ABMON_\n B: ['January', 'February', 'March', 'April', 'May', 'June', 'July',\n 'August', 'September', 'October',\n 'November', 'December'\n ],\n // MON_\n c: '%a %d %b %Y %r %Z',\n // D_T_FMT // changed %T to %r per results\n p: ['AM', 'PM'],\n // AM_STR/PM_STR\n P: ['am', 'pm'],\n // Not available in nl_langinfo()\n r: '%I:%M:%S %p',\n // T_FMT_AMPM (Fixed for all locales)\n x: '%m/%d/%Y',\n // D_FMT // switched order of %m and %d; changed %y to %Y (C uses %y)\n X: '%r',\n // T_FMT // changed from %T to %r (%T is default for C, not English US)\n // Following are from nl_langinfo() or https://www.cptec.inpe.br/sx4/sx4man2/g1ab02e/strftime.4.html\n alt_digits: '',\n // e.g., ordinal\n ERA: '',\n ERA_YEAR: '',\n ERA_D_T_FMT: '',\n ERA_D_FMT: '',\n ERA_T_FMT: ''\n },\n // Assuming distinction between numeric and monetary is thus:\n // See below for C locale\n LC_MONETARY: {\n // based on Windows \"english\" (English_United States.1252) locale\n int_curr_symbol: 'USD',\n currency_symbol: '$',\n mon_decimal_point: '.',\n mon_thousands_sep: ',',\n mon_grouping: [3],\n // use mon_thousands_sep; \"\" for no grouping; additional array members\n // indicate successive group lengths after first group\n // (e.g., if to be 1,23,456, could be [3, 2])\n positive_sign: '',\n negative_sign: '-',\n int_frac_digits: 2,\n // Fractional digits only for money defaults?\n frac_digits: 2,\n p_cs_precedes: 1,\n // positive currency symbol follows value = 0; precedes value = 1\n p_sep_by_space: 0,\n // 0: no space between curr. symbol and value; 1: space sep. them unless symb.\n // and sign are adjacent then space sep. them from value; 2: space sep. sign\n // and value unless symb. and sign are adjacent then space separates\n n_cs_precedes: 1,\n // see p_cs_precedes\n n_sep_by_space: 0,\n // see p_sep_by_space\n p_sign_posn: 3,\n // 0: parentheses surround quantity and curr. symbol; 1: sign precedes them;\n // 2: sign follows them; 3: sign immed. precedes curr. symbol; 4: sign immed.\n // succeeds curr. symbol\n n_sign_posn: 0 // see p_sign_posn\n },\n LC_NUMERIC: {\n // based on Windows \"english\" (English_United States.1252) locale\n decimal_point: '.',\n thousands_sep: ',',\n grouping: [3] // see mon_grouping, but for non-monetary values (use thousands_sep)\n },\n LC_MESSAGES: {\n YESEXPR: '^[yY].*',\n NOEXPR: '^[nN].*',\n YESSTR: '',\n NOSTR: ''\n },\n nplurals: _nplurals2a\n }\n $locutus.php.locales.en_US = _copy($locutus.php.locales.en)\n $locutus.php.locales.en_US.LC_TIME.c = '%a %d %b %Y %r %Z'\n $locutus.php.locales.en_US.LC_TIME.x = '%D'\n $locutus.php.locales.en_US.LC_TIME.X = '%r'\n // The following are based on *nix settings\n $locutus.php.locales.en_US.LC_MONETARY.int_curr_symbol = 'USD '\n $locutus.php.locales.en_US.LC_MONETARY.p_sign_posn = 1\n $locutus.php.locales.en_US.LC_MONETARY.n_sign_posn = 1\n $locutus.php.locales.en_US.LC_MONETARY.mon_grouping = [3, 3]\n $locutus.php.locales.en_US.LC_NUMERIC.thousands_sep = ''\n $locutus.php.locales.en_US.LC_NUMERIC.grouping = []\n\n $locutus.php.locales.en_GB = _copy($locutus.php.locales.en)\n $locutus.php.locales.en_GB.LC_TIME.r = '%l:%M:%S %P %Z'\n\n $locutus.php.locales.en_AU = _copy($locutus.php.locales.en_GB)\n // Assume C locale is like English (?) (We need C locale for LC_CTYPE)\n $locutus.php.locales.C = _copy($locutus.php.locales.en)\n $locutus.php.locales.C.LC_CTYPE.CODESET = 'ANSI_X3.4-1968'\n $locutus.php.locales.C.LC_MONETARY = {\n int_curr_symbol: '',\n currency_symbol: '',\n mon_decimal_point: '',\n mon_thousands_sep: '',\n mon_grouping: [],\n p_cs_precedes: 127,\n p_sep_by_space: 127,\n n_cs_precedes: 127,\n n_sep_by_space: 127,\n p_sign_posn: 127,\n n_sign_posn: 127,\n positive_sign: '',\n negative_sign: '',\n int_frac_digits: 127,\n frac_digits: 127\n }\n $locutus.php.locales.C.LC_NUMERIC = {\n decimal_point: '.',\n thousands_sep: '',\n grouping: []\n }\n // D_T_FMT\n $locutus.php.locales.C.LC_TIME.c = '%a %b %e %H:%M:%S %Y'\n // D_FMT\n $locutus.php.locales.C.LC_TIME.x = '%m/%d/%y'\n // T_FMT\n $locutus.php.locales.C.LC_TIME.X = '%H:%M:%S'\n $locutus.php.locales.C.LC_MESSAGES.YESEXPR = '^[yY]'\n $locutus.php.locales.C.LC_MESSAGES.NOEXPR = '^[nN]'\n\n $locutus.php.locales.fr = _copy($locutus.php.locales.en)\n $locutus.php.locales.fr.nplurals = _nplurals2b\n $locutus.php.locales.fr.LC_TIME.a = ['dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam']\n $locutus.php.locales.fr.LC_TIME.A = ['dimanche', 'lundi', 'mardi', 'mercredi',\n 'jeudi', 'vendredi', 'samedi']\n $locutus.php.locales.fr.LC_TIME.b = ['jan', 'f\\u00E9v', 'mar', 'avr', 'mai',\n 'jun', 'jui', 'ao\\u00FB', 'sep', 'oct',\n 'nov', 'd\\u00E9c'\n ]\n $locutus.php.locales.fr.LC_TIME.B = ['janvier', 'f\\u00E9vrier', 'mars',\n 'avril', 'mai', 'juin', 'juillet', 'ao\\u00FBt',\n 'septembre', 'octobre', 'novembre', 'd\\u00E9cembre'\n ]\n $locutus.php.locales.fr.LC_TIME.c = '%a %d %b %Y %T %Z'\n $locutus.php.locales.fr.LC_TIME.p = ['', '']\n $locutus.php.locales.fr.LC_TIME.P = ['', '']\n $locutus.php.locales.fr.LC_TIME.x = '%d.%m.%Y'\n $locutus.php.locales.fr.LC_TIME.X = '%T'\n\n $locutus.php.locales.fr_CA = _copy($locutus.php.locales.fr)\n $locutus.php.locales.fr_CA.LC_TIME.x = '%Y-%m-%d'\n }\n if (!$locutus.php.locale) {\n $locutus.php.locale = 'en_US'\n // Try to establish the locale via the `window` global\n if (typeof window !== 'undefined' && window.document) {\n const d = window.document\n const NS_XHTML = 'https://www.w3.org/1999/xhtml'\n const NS_XML = 'https://www.w3.org/XML/1998/namespace'\n if (d.getElementsByTagNameNS &&\n d.getElementsByTagNameNS(NS_XHTML, 'html')[0]) {\n if (d.getElementsByTagNameNS(NS_XHTML, 'html')[0].getAttributeNS &&\n d.getElementsByTagNameNS(NS_XHTML, 'html')[0].getAttributeNS(NS_XML, 'lang')) {\n $locutus.php.locale = d.getElementsByTagName(NS_XHTML, 'html')[0]\n .getAttributeNS(NS_XML, 'lang')\n } else if (d.getElementsByTagNameNS(NS_XHTML, 'html')[0].lang) {\n // XHTML 1.0 only\n $locutus.php.locale = d.getElementsByTagNameNS(NS_XHTML, 'html')[0].lang\n }\n } else if (d.getElementsByTagName('html')[0] &&\n d.getElementsByTagName('html')[0].lang) {\n $locutus.php.locale = d.getElementsByTagName('html')[0].lang\n }\n }\n }\n // PHP-style\n $locutus.php.locale = $locutus.php.locale.replace('-', '_')\n // @todo: locale if declared locale hasn't been defined\n if (!($locutus.php.locale in $locutus.php.locales)) {\n if ($locutus.php.locale.replace(/_[a-zA-Z]+$/, '') in $locutus.php.locales) {\n $locutus.php.locale = $locutus.php.locale.replace(/_[a-zA-Z]+$/, '')\n }\n }\n\n if (!$locutus.php.localeCategories) {\n $locutus.php.localeCategories = {\n LC_COLLATE: $locutus.php.locale,\n // for string comparison, see strcoll()\n LC_CTYPE: $locutus.php.locale,\n // for character classification and conversion, for example strtoupper()\n LC_MONETARY: $locutus.php.locale,\n // for localeconv()\n LC_NUMERIC: $locutus.php.locale,\n // for decimal separator (See also localeconv())\n LC_TIME: $locutus.php.locale,\n // for date and time formatting with strftime()\n // for system responses (available if PHP was compiled with libintl):\n LC_MESSAGES: $locutus.php.locale\n }\n }\n\n if (locale === null || locale === '') {\n locale = getenv(category) || getenv('LANG')\n } else if (Object.prototype.toString.call(locale) === '[object Array]') {\n for (i = 0; i < locale.length; i++) {\n if (!(locale[i] in $locutus.php.locales)) {\n if (i === locale.length - 1) {\n // none found\n return false\n }\n continue\n }\n locale = locale[i]\n break\n }\n }\n\n // Just get the locale\n if (locale === '0' || locale === 0) {\n if (category === 'LC_ALL') {\n for (categ in $locutus.php.localeCategories) {\n // Add \".UTF-8\" or allow \".@latint\", etc. to the end?\n cats.push(categ + '=' + $locutus.php.localeCategories[categ])\n }\n return cats.join(';')\n }\n return $locutus.php.localeCategories[category]\n }\n\n if (!(locale in $locutus.php.locales)) {\n // Locale not found\n return false\n }\n\n // Set and get locale\n if (category === 'LC_ALL') {\n for (categ in $locutus.php.localeCategories) {\n $locutus.php.localeCategories[categ] = locale\n }\n } else {\n $locutus.php.localeCategories[category] = locale\n }\n\n return locale\n}\n"]}
@@ -89,7 +89,7 @@ module.exports = function sscanf(str, format) {
89
89
  // CHARACTER FOLLOWING PERCENT IS NOT A PERCENT
90
90
 
91
91
  // We need 'g' set to get lastIndex
92
- var prePattern = new RegExp('^(?:(\\d+)\\$)?(\\*)?(\\d*)([hlL]?)', 'g');
92
+ var prePattern = /^(?:(\d+)\$)?(\*)?(\d*)([hlL]?)/g;
93
93
 
94
94
  var preConvs = prePattern.exec(format.slice(i + 1));
95
95
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/strings/sscanf.js"],"names":["module","exports","sscanf","str","format","retArr","_NWS","args","arguments","digit","_setExtraConversionSpecs","offset","matches","slice","match","lgth","length","push","_finish","i","value","_addNext","j","regex","cb","assign","remaining","check","width","substr","exec","key","undefined","testNull","apply","Error","charAt","prePattern","RegExp","preConvs","tmpDigit","msg","parseInt","sizeCode","lastIndex","pattern","num","sign","hex","oct","dec","decInt","parseFloat","e","test"],"mappings":"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","file":"sscanf.js","sourcesContent":["module.exports = function sscanf (str, format) {\n // discuss at: https://locutus.io/php/sscanf/\n // original by: Brett Zamir (https://brett-zamir.me)\n // example 1: sscanf('SN/2350001', 'SN/%d')\n // returns 1: [2350001]\n // example 2: var myVar = {}\n // example 2: sscanf('SN/2350001', 'SN/%d', myVar)\n // example 2: var $result = myVar.value\n // returns 2: 2350001\n // example 3: sscanf(\"10--20\", \"%2$d--%1$d\") // Must escape '$' in PHP, but not JS\n // returns 3: [20, 10]\n\n const retArr = []\n const _NWS = /\\S/\n const args = arguments\n let digit\n\n const _setExtraConversionSpecs = function (offset) {\n // Since a mismatched character sets us off track from future\n // legitimate finds, we just scan\n // to the end for any other conversion specifications (besides a percent literal),\n // setting them to null\n // sscanf seems to disallow all conversion specification components (of sprintf)\n // except for type specifiers\n // Do not allow % in last char. class\n // var matches = format.match(/%[+-]?([ 0]|'.)?-?\\d*(\\.\\d+)?[bcdeufFosxX]/g);\n // Do not allow % in last char. class:\n const matches = format.slice(offset).match(/%[cdeEufgosxX]/g)\n // b, F,G give errors in PHP, but 'g', though also disallowed, doesn't\n if (matches) {\n let lgth = matches.length\n while (lgth--) {\n retArr.push(null)\n }\n }\n return _finish()\n }\n\n var _finish = function () {\n if (args.length === 2) {\n return retArr\n }\n for (var i = 0; i < retArr.length; ++i) {\n args[i + 2].value = retArr[i]\n }\n return i\n }\n\n const _addNext = function (j, regex, cb) {\n if (assign) {\n const remaining = str.slice(j)\n const check = width ? remaining.substr(0, width) : remaining\n const match = regex.exec(check)\n // @todo: Make this more readable\n const key = digit !== undefined\n ? digit\n : retArr.length\n const testNull = retArr[key] = match\n ? (cb\n ? cb.apply(null, match)\n : match[0])\n : null\n if (testNull === null) {\n throw new Error('No match in string')\n }\n return j + match[0].length\n }\n return j\n }\n\n if (arguments.length < 2) {\n throw new Error('Not enough arguments passed to sscanf')\n }\n\n // PROCESS\n for (let i = 0, j = 0; i < format.length; i++) {\n var width = 0\n var assign = true\n\n if (format.charAt(i) === '%') {\n if (format.charAt(i + 1) === '%') {\n if (str.charAt(j) === '%') {\n // a matched percent literal\n // skip beyond duplicated percent\n ++i\n ++j\n continue\n }\n // Format indicated a percent literal, but not actually present\n return _setExtraConversionSpecs(i + 2)\n }\n\n // CHARACTER FOLLOWING PERCENT IS NOT A PERCENT\n\n // We need 'g' set to get lastIndex\n const prePattern = new RegExp('^(?:(\\\\d+)\\\\$)?(\\\\*)?(\\\\d*)([hlL]?)', 'g')\n\n const preConvs = prePattern.exec(format.slice(i + 1))\n\n const tmpDigit = digit\n if (tmpDigit && preConvs[1] === undefined) {\n let msg = 'All groups in sscanf() must be expressed as numeric if '\n msg += 'any have already been used'\n throw new Error(msg)\n }\n digit = preConvs[1] ? parseInt(preConvs[1], 10) - 1 : undefined\n\n assign = !preConvs[2]\n width = parseInt(preConvs[3], 10)\n const sizeCode = preConvs[4]\n i += prePattern.lastIndex\n\n // @todo: Does PHP do anything with these? Seems not to matter\n if (sizeCode) {\n // This would need to be processed later\n switch (sizeCode) {\n case 'h':\n case 'l':\n case 'L':\n // Treats subsequent as short int (for d,i,n) or unsigned short int (for o,u,x)\n // Treats subsequent as long int (for d,i,n), or unsigned long int (for o,u,x);\n // or as double (for e,f,g) instead of float or wchar_t instead of char\n // Treats subsequent as long double (for e,f,g)\n break\n default:\n throw new Error('Unexpected size specifier in sscanf()!')\n }\n }\n // PROCESS CHARACTER\n try {\n // For detailed explanations, see https://web.archive.org/web/20031128125047/https://www.uwm.edu/cgi-bin/IMT/wwwman?topic=scanf%283%29&msection=\n // Also https://www.mathworks.com/access/helpdesk/help/techdoc/ref/sscanf.html\n // p, S, C arguments in C function not available\n // DOCUMENTED UNDER SSCANF\n switch (format.charAt(i + 1)) {\n case 'F':\n // Not supported in PHP sscanf; the argument is treated as a float, and\n // presented as a floating-point number (non-locale aware)\n // sscanf doesn't support locales, so no need for two (see %f)\n break\n case 'g':\n // Not supported in PHP sscanf; shorter of %e and %f\n // Irrelevant to input conversion\n break\n case 'G':\n // Not supported in PHP sscanf; shorter of %E and %f\n // Irrelevant to input conversion\n break\n case 'b':\n // Not supported in PHP sscanf; the argument is treated as an integer,\n // and presented as a binary number\n // Not supported - couldn't distinguish from other integers\n break\n case 'i':\n // Integer with base detection (Equivalent of 'd', but base 0 instead of 10)\n var pattern = /([+-])?(?:(?:0x([\\da-fA-F]+))|(?:0([0-7]+))|(\\d+))/\n j = _addNext(j, pattern, function (num, sign, hex,\n oct, dec) {\n return hex ? parseInt(num, 16) : oct ? parseInt(num, 8) : parseInt(num, 10)\n })\n break\n case 'n':\n // Number of characters processed so far\n retArr[digit !== undefined ? digit : retArr.length - 1] = j\n break\n // DOCUMENTED UNDER SPRINTF\n case 'c':\n // Get character; suppresses skipping over whitespace!\n // (but shouldn't be whitespace in format anyways, so no difference here)\n // Non-greedy match\n j = _addNext(j, new RegExp('.{1,' + (width || 1) + '}'))\n break\n case 'D':\n case 'd':\n // sscanf documented decimal number; equivalent of 'd';\n // Optionally signed decimal integer\n j = _addNext(j, /([+-])?(?:0*)(\\d+)/, function (num, sign, dec) {\n // Ignores initial zeroes, unlike %i and parseInt()\n const decInt = parseInt((sign || '') + dec, 10)\n if (decInt < 0) {\n // PHP also won't allow less than -2147483648\n // integer overflow with negative\n return decInt < -2147483648 ? -2147483648 : decInt\n } else {\n // PHP also won't allow greater than -2147483647\n return decInt < 2147483647 ? decInt : 2147483647\n }\n })\n break\n case 'f':\n case 'E':\n case 'e':\n // Although sscanf doesn't support locales,\n // this is used instead of '%F'; seems to be same as %e\n // These don't discriminate here as both allow exponential float of either case\n j = _addNext(j, /([+-])?(?:0*)(\\d*\\.?\\d*(?:[eE]?\\d+)?)/, function (num, sign, dec) {\n if (dec === '.') {\n return null\n }\n // Ignores initial zeroes, unlike %i and parseFloat()\n return parseFloat((sign || '') + dec)\n })\n break\n case 'u':\n // unsigned decimal integer\n // We won't deal with integer overflows due to signs\n j = _addNext(j, /([+-])?(?:0*)(\\d+)/, function (num, sign, dec) {\n // Ignores initial zeroes, unlike %i and parseInt()\n const decInt = parseInt(dec, 10)\n if (sign === '-') {\n // PHP also won't allow greater than 4294967295\n // integer overflow with negative\n return 4294967296 - decInt\n } else {\n return decInt < 4294967295 ? decInt : 4294967295\n }\n })\n break\n case 'o':\n // Octal integer // @todo: add overflows as above?\n j = _addNext(j, /([+-])?(?:0([0-7]+))/, function (num, sign, oct) {\n return parseInt(num, 8)\n })\n break\n case 's':\n // Greedy match\n j = _addNext(j, /\\S+/)\n break\n case 'X':\n case 'x':\n // Same as 'x'?\n // @todo: add overflows as above?\n // Initial 0x not necessary here\n j = _addNext(j, /([+-])?(?:(?:0x)?([\\da-fA-F]+))/, function (num, sign, hex) {\n return parseInt(num, 16)\n })\n break\n case '':\n // If no character left in expression\n throw new Error('Missing character after percent mark in sscanf() format argument')\n default:\n throw new Error('Unrecognized character after percent mark in sscanf() format argument')\n }\n } catch (e) {\n if (e === 'No match in string') {\n // Allow us to exit\n return _setExtraConversionSpecs(i + 2)\n }\n // Calculate skipping beyond initial percent too\n }\n ++i\n } else if (format.charAt(i) !== str.charAt(j)) {\n // @todo: Double-check i whitespace ignored in string and/or formats\n _NWS.lastIndex = 0\n if ((_NWS)\n .test(str.charAt(j)) || str.charAt(j) === '') {\n // Whitespace doesn't need to be an exact match)\n return _setExtraConversionSpecs(i + 1)\n } else {\n // Adjust strings when encounter non-matching whitespace,\n // so they align in future checks above\n // Ok to replace with j++;?\n str = str.slice(0, j) + str.slice(j + 1)\n i--\n }\n } else {\n j++\n }\n }\n\n // POST-PROCESSING\n return _finish()\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/strings/sscanf.js"],"names":["module","exports","sscanf","str","format","retArr","_NWS","args","arguments","digit","_setExtraConversionSpecs","offset","matches","slice","match","lgth","length","push","_finish","i","value","_addNext","j","regex","cb","assign","remaining","check","width","substr","exec","key","undefined","testNull","apply","Error","charAt","prePattern","preConvs","tmpDigit","msg","parseInt","sizeCode","lastIndex","pattern","num","sign","hex","oct","dec","RegExp","decInt","parseFloat","e","test"],"mappings":"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","file":"sscanf.js","sourcesContent":["module.exports = function sscanf (str, format) {\n // discuss at: https://locutus.io/php/sscanf/\n // original by: Brett Zamir (https://brett-zamir.me)\n // example 1: sscanf('SN/2350001', 'SN/%d')\n // returns 1: [2350001]\n // example 2: var myVar = {}\n // example 2: sscanf('SN/2350001', 'SN/%d', myVar)\n // example 2: var $result = myVar.value\n // returns 2: 2350001\n // example 3: sscanf(\"10--20\", \"%2$d--%1$d\") // Must escape '$' in PHP, but not JS\n // returns 3: [20, 10]\n\n const retArr = []\n const _NWS = /\\S/\n const args = arguments\n let digit\n\n const _setExtraConversionSpecs = function (offset) {\n // Since a mismatched character sets us off track from future\n // legitimate finds, we just scan\n // to the end for any other conversion specifications (besides a percent literal),\n // setting them to null\n // sscanf seems to disallow all conversion specification components (of sprintf)\n // except for type specifiers\n // Do not allow % in last char. class\n // var matches = format.match(/%[+-]?([ 0]|'.)?-?\\d*(\\.\\d+)?[bcdeufFosxX]/g);\n // Do not allow % in last char. class:\n const matches = format.slice(offset).match(/%[cdeEufgosxX]/g)\n // b, F,G give errors in PHP, but 'g', though also disallowed, doesn't\n if (matches) {\n let lgth = matches.length\n while (lgth--) {\n retArr.push(null)\n }\n }\n return _finish()\n }\n\n var _finish = function () {\n if (args.length === 2) {\n return retArr\n }\n for (var i = 0; i < retArr.length; ++i) {\n args[i + 2].value = retArr[i]\n }\n return i\n }\n\n const _addNext = function (j, regex, cb) {\n if (assign) {\n const remaining = str.slice(j)\n const check = width ? remaining.substr(0, width) : remaining\n const match = regex.exec(check)\n // @todo: Make this more readable\n const key = digit !== undefined\n ? digit\n : retArr.length\n const testNull = retArr[key] = match\n ? (cb\n ? cb.apply(null, match)\n : match[0])\n : null\n if (testNull === null) {\n throw new Error('No match in string')\n }\n return j + match[0].length\n }\n return j\n }\n\n if (arguments.length < 2) {\n throw new Error('Not enough arguments passed to sscanf')\n }\n\n // PROCESS\n for (let i = 0, j = 0; i < format.length; i++) {\n var width = 0\n var assign = true\n\n if (format.charAt(i) === '%') {\n if (format.charAt(i + 1) === '%') {\n if (str.charAt(j) === '%') {\n // a matched percent literal\n // skip beyond duplicated percent\n ++i\n ++j\n continue\n }\n // Format indicated a percent literal, but not actually present\n return _setExtraConversionSpecs(i + 2)\n }\n\n // CHARACTER FOLLOWING PERCENT IS NOT A PERCENT\n\n // We need 'g' set to get lastIndex\n const prePattern = /^(?:(\\d+)\\$)?(\\*)?(\\d*)([hlL]?)/g\n\n const preConvs = prePattern.exec(format.slice(i + 1))\n\n const tmpDigit = digit\n if (tmpDigit && preConvs[1] === undefined) {\n let msg = 'All groups in sscanf() must be expressed as numeric if '\n msg += 'any have already been used'\n throw new Error(msg)\n }\n digit = preConvs[1] ? parseInt(preConvs[1], 10) - 1 : undefined\n\n assign = !preConvs[2]\n width = parseInt(preConvs[3], 10)\n const sizeCode = preConvs[4]\n i += prePattern.lastIndex\n\n // @todo: Does PHP do anything with these? Seems not to matter\n if (sizeCode) {\n // This would need to be processed later\n switch (sizeCode) {\n case 'h':\n case 'l':\n case 'L':\n // Treats subsequent as short int (for d,i,n) or unsigned short int (for o,u,x)\n // Treats subsequent as long int (for d,i,n), or unsigned long int (for o,u,x);\n // or as double (for e,f,g) instead of float or wchar_t instead of char\n // Treats subsequent as long double (for e,f,g)\n break\n default:\n throw new Error('Unexpected size specifier in sscanf()!')\n }\n }\n // PROCESS CHARACTER\n try {\n // For detailed explanations, see https://web.archive.org/web/20031128125047/https://www.uwm.edu/cgi-bin/IMT/wwwman?topic=scanf%283%29&msection=\n // Also https://www.mathworks.com/access/helpdesk/help/techdoc/ref/sscanf.html\n // p, S, C arguments in C function not available\n // DOCUMENTED UNDER SSCANF\n switch (format.charAt(i + 1)) {\n case 'F':\n // Not supported in PHP sscanf; the argument is treated as a float, and\n // presented as a floating-point number (non-locale aware)\n // sscanf doesn't support locales, so no need for two (see %f)\n break\n case 'g':\n // Not supported in PHP sscanf; shorter of %e and %f\n // Irrelevant to input conversion\n break\n case 'G':\n // Not supported in PHP sscanf; shorter of %E and %f\n // Irrelevant to input conversion\n break\n case 'b':\n // Not supported in PHP sscanf; the argument is treated as an integer,\n // and presented as a binary number\n // Not supported - couldn't distinguish from other integers\n break\n case 'i':\n // Integer with base detection (Equivalent of 'd', but base 0 instead of 10)\n var pattern = /([+-])?(?:(?:0x([\\da-fA-F]+))|(?:0([0-7]+))|(\\d+))/\n j = _addNext(j, pattern, function (num, sign, hex,\n oct, dec) {\n return hex ? parseInt(num, 16) : oct ? parseInt(num, 8) : parseInt(num, 10)\n })\n break\n case 'n':\n // Number of characters processed so far\n retArr[digit !== undefined ? digit : retArr.length - 1] = j\n break\n // DOCUMENTED UNDER SPRINTF\n case 'c':\n // Get character; suppresses skipping over whitespace!\n // (but shouldn't be whitespace in format anyways, so no difference here)\n // Non-greedy match\n j = _addNext(j, new RegExp('.{1,' + (width || 1) + '}'))\n break\n case 'D':\n case 'd':\n // sscanf documented decimal number; equivalent of 'd';\n // Optionally signed decimal integer\n j = _addNext(j, /([+-])?(?:0*)(\\d+)/, function (num, sign, dec) {\n // Ignores initial zeroes, unlike %i and parseInt()\n const decInt = parseInt((sign || '') + dec, 10)\n if (decInt < 0) {\n // PHP also won't allow less than -2147483648\n // integer overflow with negative\n return decInt < -2147483648 ? -2147483648 : decInt\n } else {\n // PHP also won't allow greater than -2147483647\n return decInt < 2147483647 ? decInt : 2147483647\n }\n })\n break\n case 'f':\n case 'E':\n case 'e':\n // Although sscanf doesn't support locales,\n // this is used instead of '%F'; seems to be same as %e\n // These don't discriminate here as both allow exponential float of either case\n j = _addNext(j, /([+-])?(?:0*)(\\d*\\.?\\d*(?:[eE]?\\d+)?)/, function (num, sign, dec) {\n if (dec === '.') {\n return null\n }\n // Ignores initial zeroes, unlike %i and parseFloat()\n return parseFloat((sign || '') + dec)\n })\n break\n case 'u':\n // unsigned decimal integer\n // We won't deal with integer overflows due to signs\n j = _addNext(j, /([+-])?(?:0*)(\\d+)/, function (num, sign, dec) {\n // Ignores initial zeroes, unlike %i and parseInt()\n const decInt = parseInt(dec, 10)\n if (sign === '-') {\n // PHP also won't allow greater than 4294967295\n // integer overflow with negative\n return 4294967296 - decInt\n } else {\n return decInt < 4294967295 ? decInt : 4294967295\n }\n })\n break\n case 'o':\n // Octal integer // @todo: add overflows as above?\n j = _addNext(j, /([+-])?(?:0([0-7]+))/, function (num, sign, oct) {\n return parseInt(num, 8)\n })\n break\n case 's':\n // Greedy match\n j = _addNext(j, /\\S+/)\n break\n case 'X':\n case 'x':\n // Same as 'x'?\n // @todo: add overflows as above?\n // Initial 0x not necessary here\n j = _addNext(j, /([+-])?(?:(?:0x)?([\\da-fA-F]+))/, function (num, sign, hex) {\n return parseInt(num, 16)\n })\n break\n case '':\n // If no character left in expression\n throw new Error('Missing character after percent mark in sscanf() format argument')\n default:\n throw new Error('Unrecognized character after percent mark in sscanf() format argument')\n }\n } catch (e) {\n if (e === 'No match in string') {\n // Allow us to exit\n return _setExtraConversionSpecs(i + 2)\n }\n // Calculate skipping beyond initial percent too\n }\n ++i\n } else if (format.charAt(i) !== str.charAt(j)) {\n // @todo: Double-check i whitespace ignored in string and/or formats\n _NWS.lastIndex = 0\n if ((_NWS)\n .test(str.charAt(j)) || str.charAt(j) === '') {\n // Whitespace doesn't need to be an exact match)\n return _setExtraConversionSpecs(i + 1)\n } else {\n // Adjust strings when encounter non-matching whitespace,\n // so they align in future checks above\n // Ok to replace with j++;?\n str = str.slice(0, j) + str.slice(j + 1)\n i--\n }\n } else {\n j++\n }\n }\n\n // POST-PROCESSING\n return _finish()\n}\n"]}
@@ -124,7 +124,7 @@ module.exports = function var_export(mixedExpression, boolReturn) {
124
124
  // variables in JavaScript); if using instead in JavaScript and you
125
125
  // are using the namespaced version, note that create_function() will
126
126
  // not be available as a global
127
- retstr = "create_function ('" + funcParts[1] + "', '" + funcParts[2].replace(new RegExp("'", 'g'), "\\'") + "')";
127
+ retstr = "create_function ('" + funcParts[1] + "', '" + funcParts[2].replace(/'/g, "\\'") + "')";
128
128
  } else if (type === 'resource') {
129
129
  // Resources treated as null for var_export
130
130
  retstr = 'NULL';