{"version":3,"sources":["jsdelivr-header.js","/npm/pg-hstore@2.3.4/lib/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,CCNA,WACE,IAAI,EAAI,QAAQ,cAahB,SAAS,EAAU,EAAO,GACxB,cAAc,GACZ,IAAK,UACL,IAAK,SACL,IAAK,SACH,OAAO,OAAO,GAChB,IAAK,SACH,OAAO,EAlBb,SAAwB,GAQtB,OAHA,GAFA,EAAQ,EAAM,QAAQ,KAAM,OAEd,QAAQ,MAAO,SAEf,QAAQ,KAAM,MAE9B,CASwB,CAAe,GAAS,EAC5C,QACE,MAAO,GAEb,CAEA,OAAO,QAAU,SAAU,GAGzB,OAFA,EAAU,EAAE,SAAS,CAAC,EAAG,EAAS,CAAE,UAAU,IAEvC,CACL,UAAW,SAAU,EAAM,GACzB,IAOI,EAPS,OAAO,KAAK,GAAM,KAAI,SAAU,GAC3C,OAAkB,OAAd,EAAK,GACA,IAAI,EAAU,EAAK,EAAQ,UAAU,UAErC,IAAI,EAAU,EAAK,EAAQ,UAAU,OAAO,EAAU,EAAK,GAAM,EAAQ,UAAU,GAE9F,IACoB,OACpB,IAAK,GAAyB,OAAb,EAAmB,OAAO,EAC3C,EAAS,EACX,EAEA,MAAO,SAAS,EAAQ,GACtB,IAII,EACA,EALA,EAAS,CAAC,EAGV,EAAU,EAAO,MADb,uCAIJ,EAAQ,SAAU,GAUd,OAFA,GAFA,GAFA,GAFA,EAAQ,EAAM,QAAQ,WAAY,KAEpB,QAAQ,OAAQ,MAEhB,QAAQ,QAAQ,OAEhB,QAAQ,MAAM,IAGhC,EAEJ,GAAG,EACD,IAAK,EAAI,EAAG,EAAI,EAAQ,OAAQ,EAAI,EAAG,GAAI,EACzC,GAAI,EAAQ,IAAM,EAAQ,EAAI,GAAI,CAChC,IAAI,EAAM,EAAM,EAAQ,IACpB,EAAQ,EAAQ,EAAI,GACxB,EAAO,GAAc,QAAP,EAAc,KAAK,EAAM,EACzC,CAGJ,IAAK,GAAyB,OAAb,EAAmB,OAAO,EAC3C,EAAS,EACX,EAEJ,CACD,CA9ED","file":"/npm/pg-hstore@2.3.4/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/pg-hstore@2.3.4/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function () {\r\n  var _ = require('underscore');\r\n\r\n  function sanitize_input(input) {\r\n    // http://www.postgresql.org/docs/9.0/static/sql-syntax-lexical.html [4.1.2.1-4.1.2.2]\r\n    // single quotes (') must be replaced with double single quotes ('')\r\n    input = input.replace(/'/g, '\\'\\'');\r\n    // backslashes (\\) must be replaced with double backslashes (\\\\)\r\n    input = input.replace(/\\\\/g, '\\\\\\\\');\r\n    // double quotes (\") must be replaced with escaped quotes (\\\\\")\r\n    input = input.replace(/\"/g, '\\\\\"');\r\n    return input;\r\n  }\r\n\r\n  function to_string(input, sanitize) {\r\n    switch(typeof input) {\r\n      case 'boolean':\r\n      case 'number':\r\n      case 'object':\r\n        return String(input);\r\n      case 'string':\r\n        return sanitize ? sanitize_input(input) : input;\r\n      default:\r\n        return '';\r\n    }\r\n  }\r\n\r\n  module.exports = function (options) {\r\n    options = _.defaults({}, options, { sanitize: false });\r\n\r\n    return {\r\n      stringify: function (data, callback) {\r\n        var hstore = Object.keys(data).map(function (key) {\r\n          if (data[key] === null) {\r\n            return '\"'+to_string(key, options.sanitize)+'\"=>NULL';\r\n          } else {\r\n            return '\"'+to_string(key, options.sanitize)+'\"=>\"'+to_string(data[key], options.sanitize)+'\"';\r\n          }\r\n        });\r\n        var joined = hstore.join();\r\n        if (!callback || callback === null) return joined;\r\n        callback(joined);\r\n      },\r\n\r\n      parse: function(string, callback) {\r\n        var result = {},\r\n        //using [\\s\\S] to match any character, including line feed and carriage return,\r\n            r = /([\"])(?:\\\\\\1|\\\\\\\\|[\\s\\S])*?\\1|NULL/g,\r\n            matches = string.match(r),\r\n            i,\r\n            l,\r\n            clean = function (value) {\r\n                // Remove leading double quotes\r\n                value = value.replace(/^\\\"|\\\"$/g, \"\");\r\n                // Unescape quotes\r\n                value = value.replace(/\\\\\"/g, \"\\\"\");\r\n                //Unescape backslashes\r\n                value = value.replace(/\\\\\\\\/g,\"\\\\\");\r\n                //Unescape single quotes\r\n                value = value.replace(/''/g,\"'\");\r\n\r\n                return value;\r\n            };\r\n\r\n        if(matches) {\r\n          for (i = 0, l = matches.length; i < l; i+= 2) {\r\n            if (matches[i] && matches[i + 1]) {\r\n              var key = clean(matches[i]);\r\n              var value = matches[i + 1];\r\n              result[key] = value==\"NULL\"?null:clean(value);\r\n            }\r\n          }\r\n        }\r\n        if (!callback || callback === null) return result;\r\n        callback(result);\r\n      }\r\n    };\r\n  };\r\n})();\r\n"]}