UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

100 lines (98 loc) 10.4 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); // src/utils/escape.ts var BRACKET_L = "\u27E8"; var BRACKET_R = "\u27E9"; var BRACKET_ESC = "\\\u27E9"; var BACKTICK = "`"; var BACKTICK_ESC = "\\`"; var SINGLE_QUOTE = "'"; var DOUBLE_QUOTE = '"'; var DOUBLE_QUOTE_ESC = '\\"'; var UNDERSCORE = 95; var isAsciiDigit = /* @__PURE__ */ __name((code) => 48 <= code && code <= 57, "isAsciiDigit"); var isAsciiAlpha = /* @__PURE__ */ __name((code) => 65 <= code && code <= 90 || 97 <= code && code <= 122, "isAsciiAlpha"); var isAsciiAlphaNumeric = /* @__PURE__ */ __name((code) => isAsciiDigit(code) || isAsciiAlpha(code), "isAsciiAlphaNumeric"); function escape(str, left, right, escaped) { return left + str.replaceAll(right, escaped) + right; } __name(escape, "escape"); function escapeNormal(str, left, right, escaped) { return escapeStartsNumeric(str, left, right, escaped); } __name(escapeNormal, "escapeNormal"); function escapeStartsNumeric(str, left, right, escaped) { for (let i = 0, len = str.length, code; i < len; i++) { code = str.charCodeAt(i); if (i <= 0 && isAsciiDigit(code)) { return escape(str, left, right, escaped); } if (!(isAsciiAlphaNumeric(code) || code === UNDERSCORE)) { return escape(str, left, right, escaped); } } return str; } __name(escapeStartsNumeric, "escapeStartsNumeric"); function escapeFullNumeric(str, left, right, escaped) { let numeric = true; for (let i = 0, len = str.length, code; i < len; i++) { code = str.charCodeAt(i); if (!(isAsciiAlphaNumeric(code) || code === UNDERSCORE)) { return escape(str, left, right, escaped); } if (numeric && !isAsciiDigit(code)) { numeric = false; } } if (numeric) { return escape(str, left, right, escaped); } return str; } __name(escapeFullNumeric, "escapeFullNumeric"); function quoteStr(str) { if (!str) { return SINGLE_QUOTE + SINGLE_QUOTE; } str = str.replaceAll("\\", "\\\\"); if (str.indexOf(SINGLE_QUOTE) === -1) { return SINGLE_QUOTE + str + SINGLE_QUOTE; } else { return DOUBLE_QUOTE + str.replaceAll(DOUBLE_QUOTE, DOUBLE_QUOTE_ESC) + DOUBLE_QUOTE; } } __name(quoteStr, "quoteStr"); function escapeKey(key) { if (!key) { return DOUBLE_QUOTE + DOUBLE_QUOTE; } return escapeNormal(key, DOUBLE_QUOTE, DOUBLE_QUOTE, DOUBLE_QUOTE_ESC); } __name(escapeKey, "escapeKey"); function escapeRid(rid) { if (!rid) { return BRACKET_L + BRACKET_R; } return escapeFullNumeric(rid, BRACKET_L, BRACKET_R, BRACKET_ESC); } __name(escapeRid, "escapeRid"); function escapeIdent(ident) { if (!ident) { return BACKTICK + BACKTICK; } return escapeStartsNumeric(ident, BACKTICK, BACKTICK, BACKTICK_ESC); } __name(escapeIdent, "escapeIdent"); export { BACKTICK, BRACKET_L, BRACKET_R, DOUBLE_QUOTE, SINGLE_QUOTE, escapeIdent, escapeKey, escapeRid, quoteStr }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2VzY2FwZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLy8gaHR0cHM6Ly9naXRodWIuY29tL3N1cnJlYWxkYmRiL3N1cnJlYWxkYmRiL2Jsb2IvdjIuMC4wLWFscGhhLjcvY29yZS9zcmMvc3FsL2VzY2FwZS5yc1xuXG5leHBvcnQgY29uc3QgQlJBQ0tFVF9MID0gXCJcdTI3RThcIjtcbmV4cG9ydCBjb25zdCBCUkFDS0VUX1IgPSBcIlx1MjdFOVwiO1xuY29uc3QgQlJBQ0tFVF9FU0MgPSBcIlxcXFxcdTI3RTlcIjtcblxuZXhwb3J0IGNvbnN0IEJBQ0tUSUNLID0gXCJgXCI7XG5jb25zdCBCQUNLVElDS19FU0MgPSBcIlxcXFxgXCI7XG5cbmV4cG9ydCBjb25zdCBTSU5HTEVfUVVPVEUgPSBcIidcIjtcblxuLy8gZHByaW50LWlnbm9yZVxuZXhwb3J0IGNvbnN0IERPVUJMRV9RVU9URSA9ICdcIic7XG4vLyBkcHJpbnQtaWdub3JlXG5jb25zdCBET1VCTEVfUVVPVEVfRVNDID0gJ1xcXFxcIic7XG5cbmNvbnN0IFVOREVSU0NPUkUgPSA5NTsgLy8gX1xuXG5jb25zdCBpc0FzY2lpRGlnaXQgPSAoY29kZTogbnVtYmVyKSA9PiA0OCA8PSBjb2RlICYmIGNvZGUgPD0gNTc7IC8vIDAtOVxuXG5jb25zdCBpc0FzY2lpQWxwaGEgPSAoY29kZTogbnVtYmVyKSA9PlxuICAoNjUgPD0gY29kZSAmJiBjb2RlIDw9IDkwKSAvLyBBLVpcbiAgfHwgKDk3IDw9IGNvZGUgJiYgY29kZSA8PSAxMjIpOyAvLyBhLXpcblxuY29uc3QgaXNBc2NpaUFscGhhTnVtZXJpYyA9IChjb2RlOiBudW1iZXIpID0+XG4gIGlzQXNjaWlEaWdpdChjb2RlKVxuICB8fCBpc0FzY2lpQWxwaGEoY29kZSk7XG5cbmZ1bmN0aW9uIGVzY2FwZShcbiAgc3RyOiBzdHJpbmcsXG4gIGxlZnQ6IHN0cmluZyxcbiAgcmlnaHQ6IHN0cmluZyxcbiAgZXNjYXBlZDogc3RyaW5nLFxuKSB7XG4gIHJldHVybiBsZWZ0ICsgc3RyLnJlcGxhY2VBbGwocmlnaHQsIGVzY2FwZWQpICsgcmlnaHQ7XG59XG5cbi8vIHYyLjAuM1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3N1cnJlYWxkYi9zdXJyZWFsZGIvYmxvYi81NjY3MjA3N2FjM2JhN2I4OGNhZDc3NmM4MWQzOWZjZDY4YTk0MTU3L2NvcmUvc3JjL3NxbC9lc2NhcGUucnMjTDgxLUw5NFxuLy8gXHUzMDgyXHUzMDZGXHUzMDg0IGVzY2FwZV9zdGFydHNfbnVtZXJpYyBcdTMwNjhcdTMwNkVcdTkwNTVcdTMwNDRcdTMwNkZcdTcxMjFcdTMwNEZcdTMwNkFcdTMwNjNcdTMwNUZcdTMwMDJcbmZ1bmN0aW9uIGVzY2FwZU5vcm1hbChcbiAgc3RyOiBzdHJpbmcsXG4gIGxlZnQ6IHN0cmluZyxcbiAgcmlnaHQ6IHN0cmluZyxcbiAgZXNjYXBlZDogc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIGVzY2FwZVN0YXJ0c051bWVyaWMoc3RyLCBsZWZ0LCByaWdodCwgZXNjYXBlZCk7XG59XG5cbmZ1bmN0aW9uIGVzY2FwZVN0YXJ0c051bWVyaWMoXG4gIHN0cjogc3RyaW5nLFxuICBsZWZ0OiBzdHJpbmcsXG4gIHJpZ2h0OiBzdHJpbmcsXG4gIGVzY2FwZWQ6IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBzdHIubGVuZ3RoLCBjb2RlOiBudW1iZXI7IGkgPCBsZW47IGkrKykge1xuICAgIGNvZGUgPSBzdHIuY2hhckNvZGVBdChpKTtcblxuICAgIGlmIChpIDw9IDAgJiYgaXNBc2NpaURpZ2l0KGNvZGUpKSB7XG4gICAgICByZXR1cm4gZXNjYXBlKHN0ciwgbGVmdCwgcmlnaHQsIGVzY2FwZWQpO1xuICAgIH1cblxuICAgIGlmICghKGlzQXNjaWlBbHBoYU51bWVyaWMoY29kZSkgfHwgY29kZSA9PT0gVU5ERVJTQ09SRSkpIHtcbiAgICAgIHJldHVybiBlc2NhcGUoc3RyLCBsZWZ0LCByaWdodCwgZXNjYXBlZCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0cjtcbn1cblxuZnVuY3Rpb24gZXNjYXBlRnVsbE51bWVyaWMoXG4gIHN0cjogc3RyaW5nLFxuICBsZWZ0OiBzdHJpbmcsXG4gIHJpZ2h0OiBzdHJpbmcsXG4gIGVzY2FwZWQ6IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGxldCBudW1lcmljID0gdHJ1ZTtcblxuICBmb3IgKGxldCBpID0gMCwgbGVuID0gc3RyLmxlbmd0aCwgY29kZTogbnVtYmVyOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XG5cbiAgICBpZiAoIShpc0FzY2lpQWxwaGFOdW1lcmljKGNvZGUpIHx8IGNvZGUgPT09IFVOREVSU0NPUkUpKSB7XG4gICAgICByZXR1cm4gZXNjYXBlKHN0ciwgbGVmdCwgcmlnaHQsIGVzY2FwZWQpO1xuICAgIH1cblxuICAgIGlmIChudW1lcmljICYmICFpc0FzY2lpRGlnaXQoY29kZSkpIHtcbiAgICAgIG51bWVyaWMgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBpZiAobnVtZXJpYykge1xuICAgIHJldHVybiBlc2NhcGUoc3RyLCBsZWZ0LCByaWdodCwgZXNjYXBlZCk7XG4gIH1cblxuICByZXR1cm4gc3RyO1xufVxuXG4vKipcbiAqIFtBUEkgUmVmZXJlbmNlXShodHRwczovL3RhaS1rdW4uZ2l0aHViLmlvL3N1cnJlYWxkYi5qcy92Mi9hcGkvdXRpbHMvZXNjYXBlLyNxdW90ZXN0cilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHF1b3RlU3RyKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFzdHIpIHtcbiAgICByZXR1cm4gU0lOR0xFX1FVT1RFICsgU0lOR0xFX1FVT1RFO1xuICB9XG5cbiAgc3RyID0gc3RyLnJlcGxhY2VBbGwoXCJcXFxcXCIsIFwiXFxcXFxcXFxcIik7XG5cbiAgaWYgKHN0ci5pbmRleE9mKFNJTkdMRV9RVU9URSkgPT09IC0xKSB7XG4gICAgcmV0dXJuIFNJTkdMRV9RVU9URVxuICAgICAgKyBzdHJcbiAgICAgICsgU0lOR0xFX1FVT1RFO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBET1VCTEVfUVVPVEVcbiAgICAgICsgc3RyLnJlcGxhY2VBbGwoRE9VQkxFX1FVT1RFLCBET1VCTEVfUVVPVEVfRVNDKVxuICAgICAgKyBET1VCTEVfUVVPVEU7XG4gIH1cbn1cblxuLyoqXG4gKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvYXBpL3V0aWxzL2VzY2FwZS8jZXNjYXBla2V5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFrZXkpIHtcbiAgICByZXR1cm4gRE9VQkxFX1FVT1RFICsgRE9VQkxFX1FVT1RFO1xuICB9XG5cbiAgcmV0dXJuIGVzY2FwZU5vcm1hbChrZXksIERPVUJMRV9RVU9URSwgRE9VQkxFX1FVT1RFLCBET1VCTEVfUVVPVEVfRVNDKTtcbn1cblxuLyoqXG4gKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvYXBpL3V0aWxzL2VzY2FwZS8jZXNjYXBlcmlkKVxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlUmlkKHJpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFyaWQpIHtcbiAgICByZXR1cm4gQlJBQ0tFVF9MICsgQlJBQ0tFVF9SO1xuICB9XG5cbiAgcmV0dXJuIGVzY2FwZUZ1bGxOdW1lcmljKHJpZCwgQlJBQ0tFVF9MLCBCUkFDS0VUX1IsIEJSQUNLRVRfRVNDKTtcbn1cblxuLyoqXG4gKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvYXBpL3V0aWxzL2VzY2FwZS8jZXNjYXBlaWRlbnQpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVJZGVudChpZGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFpZGVudCkge1xuICAgIHJldHVybiBCQUNLVElDSyArIEJBQ0tUSUNLO1xuICB9XG5cbiAgcmV0dXJuIGVzY2FwZVN0YXJ0c051bWVyaWMoaWRlbnQsIEJBQ0tUSUNLLCBCQUNLVElDSywgQkFDS1RJQ0tfRVNDKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7QUFFTyxJQUFNLFlBQVk7QUFDbEIsSUFBTSxZQUFZO0FBQ3pCLElBQU0sY0FBYztBQUViLElBQU0sV0FBVztBQUN4QixJQUFNLGVBQWU7QUFFZCxJQUFNLGVBQWU7QUFHckIsSUFBTSxlQUFlO0FBRTVCLElBQU0sbUJBQW1CO0FBRXpCLElBQU0sYUFBYTtBQUVuQixJQUFNLGVBQWUsd0JBQUMsU0FBaUIsTUFBTSxRQUFRLFFBQVEsSUFBeEM7QUFFckIsSUFBTSxlQUFlLHdCQUFDLFNBQ25CLE1BQU0sUUFBUSxRQUFRLE1BQ25CLE1BQU0sUUFBUSxRQUFRLEtBRlA7QUFJckIsSUFBTSxzQkFBc0Isd0JBQUMsU0FDM0IsYUFBYSxJQUFJLEtBQ2QsYUFBYSxJQUFJLEdBRk07QUFJNUIsU0FBUyxPQUNQLEtBQ0EsTUFDQSxPQUNBLFNBQ0E7QUFDQSxTQUFPLE9BQU8sSUFBSSxXQUFXLE9BQU8sT0FBTyxJQUFJO0FBQ2pEO0FBUFM7QUFZVCxTQUFTLGFBQ1AsS0FDQSxNQUNBLE9BQ0EsU0FDUTtBQUNSLFNBQU8sb0JBQW9CLEtBQUssTUFBTSxPQUFPLE9BQU87QUFDdEQ7QUFQUztBQVNULFNBQVMsb0JBQ1AsS0FDQSxNQUNBLE9BQ0EsU0FDUTtBQUNSLFdBQVMsSUFBSSxHQUFHLE1BQU0sSUFBSSxRQUFRLE1BQWMsSUFBSSxLQUFLLEtBQUs7QUFDNUQsV0FBTyxJQUFJLFdBQVcsQ0FBQztBQUV2QixRQUFJLEtBQUssS0FBSyxhQUFhLElBQUksR0FBRztBQUNoQyxhQUFPLE9BQU8sS0FBSyxNQUFNLE9BQU8sT0FBTztBQUFBLElBQ3pDO0FBRUEsUUFBSSxFQUFFLG9CQUFvQixJQUFJLEtBQUssU0FBUyxhQUFhO0FBQ3ZELGFBQU8sT0FBTyxLQUFLLE1BQU0sT0FBTyxPQUFPO0FBQUEsSUFDekM7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUNUO0FBbkJTO0FBcUJULFNBQVMsa0JBQ1AsS0FDQSxNQUNBLE9BQ0EsU0FDUTtBQUNSLE1BQUksVUFBVTtBQUVkLFdBQVMsSUFBSSxHQUFHLE1BQU0sSUFBSSxRQUFRLE1BQWMsSUFBSSxLQUFLLEtBQUs7QUFDNUQsV0FBTyxJQUFJLFdBQVcsQ0FBQztBQUV2QixRQUFJLEVBQUUsb0JBQW9CLElBQUksS0FBSyxTQUFTLGFBQWE7QUFDdkQsYUFBTyxPQUFPLEtBQUssTUFBTSxPQUFPLE9BQU87QUFBQSxJQUN6QztBQUVBLFFBQUksV0FBVyxDQUFDLGFBQWEsSUFBSSxHQUFHO0FBQ2xDLGdCQUFVO0FBQUEsSUFDWjtBQUFBLEVBQ0Y7QUFFQSxNQUFJLFNBQVM7QUFDWCxXQUFPLE9BQU8sS0FBSyxNQUFNLE9BQU8sT0FBTztBQUFBLEVBQ3pDO0FBRUEsU0FBTztBQUNUO0FBekJTO0FBOEJGLFNBQVMsU0FBUyxLQUFxQjtBQUM1QyxNQUFJLENBQUMsS0FBSztBQUNSLFdBQU8sZUFBZTtBQUFBLEVBQ3hCO0FBRUEsUUFBTSxJQUFJLFdBQVcsTUFBTSxNQUFNO0FBRWpDLE1BQUksSUFBSSxRQUFRLFlBQVksTUFBTSxJQUFJO0FBQ3BDLFdBQU8sZUFDSCxNQUNBO0FBQUEsRUFDTixPQUFPO0FBQ0wsV0FBTyxlQUNILElBQUksV0FBVyxjQUFjLGdCQUFnQixJQUM3QztBQUFBLEVBQ047QUFDRjtBQWhCZ0I7QUFxQlQsU0FBUyxVQUFVLEtBQXFCO0FBQzdDLE1BQUksQ0FBQyxLQUFLO0FBQ1IsV0FBTyxlQUFlO0FBQUEsRUFDeEI7QUFFQSxTQUFPLGFBQWEsS0FBSyxjQUFjLGNBQWMsZ0JBQWdCO0FBQ3ZFO0FBTmdCO0FBV1QsU0FBUyxVQUFVLEtBQXFCO0FBQzdDLE1BQUksQ0FBQyxLQUFLO0FBQ1IsV0FBTyxZQUFZO0FBQUEsRUFDckI7QUFFQSxTQUFPLGtCQUFrQixLQUFLLFdBQVcsV0FBVyxXQUFXO0FBQ2pFO0FBTmdCO0FBV1QsU0FBUyxZQUFZLE9BQXVCO0FBQ2pELE1BQUksQ0FBQyxPQUFPO0FBQ1YsV0FBTyxXQUFXO0FBQUEsRUFDcEI7QUFFQSxTQUFPLG9CQUFvQixPQUFPLFVBQVUsVUFBVSxZQUFZO0FBQ3BFO0FBTmdCOyIsCiAgIm5hbWVzIjogW10KfQo=