UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

103 lines (101 loc) 9.44 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/formatters/json/formatter.ts var formatter_exports = {}; __export(formatter_exports, { default: () => JsonFormatter }); module.exports = __toCommonJS(formatter_exports); var import_errors = require("../../errors/index.cjs"); var import_formatter = require("../../formatter/index.cjs"); var import_utils = require("../../utils/index.cjs"); var __PROTO__REGEX = /"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/; var CONSTRUCTOR_REGEX = /"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/; var _JsonFormatter = class _JsonFormatter { constructor() { this.contentType = "application/json"; this.wsProtocols = ["json"]; } encodeSync(data) { return JSON.stringify(data); } decodeSync(data) { const json = toString(data); if (__PROTO__REGEX.test(json)) { throw new import_errors.JsonUnsafeMapKeyError("__proto__"); } if (CONSTRUCTOR_REGEX.test(json)) { throw new import_errors.JsonUnsafeMapKeyError("constructor"); } return JSON.parse(json); } cloneSync(data) { switch (typeof data) { case "string": case "number": case "boolean": return data; default: switch (data) { case null: case void 0: return data; default: return (0, import_formatter.cloneSync)(this, data); } } } toEncoded(data) { if (data instanceof import_formatter.EncodedJSON) { return data; } return new import_formatter.EncodedJSON( { data: this.cloneSync(data) }, /* @__PURE__ */ __name(function toJSON() { return this.data; }, "toJSON") // TODO(tai-kun): JSON フォーマッターの事前エンコーディングを実装する。 // function toRawJSON() { // return (this.json ??= JSON.stringify(this.data)); // }, ); } }; __name(_JsonFormatter, "JsonFormatter"); var JsonFormatter = _JsonFormatter; function toString(data) { switch (true) { case typeof data === "string": return data; case (data instanceof Uint8Array || (0, import_utils.isArrayBuffer)(data)): return import_utils.utf8.decode(data); case (typeof Buffer !== "undefined" && Array.isArray(data) && data.every((b) => Buffer.isBuffer(b))): return import_utils.utf8.decode(Buffer.concat(data)); default: throw new import_errors.SurrealTypeError( ["String", "Buffer", "ArrayBuffer", "Uint8Array", "Buffer[]"], data ); } } __name(toString, "toString"); //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Zvcm1hdHRlcnMvanNvbi9mb3JtYXR0ZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7XG4gIEpzb25VbnNhZmVNYXBLZXlFcnJvcixcbiAgU3VycmVhbFR5cGVFcnJvcixcbn0gZnJvbSBcIkB0YWkta3VuL3N1cnJlYWxkYi9lcnJvcnNcIjtcbmltcG9ydCB7XG4gIGNsb25lU3luYyxcbiAgdHlwZSBEYXRhLFxuICBFbmNvZGVkSlNPTixcbiAgdHlwZSBGb3JtYXR0ZXIsXG59IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZm9ybWF0dGVyXCI7XG5pbXBvcnQgeyBpc0FycmF5QnVmZmVyLCB1dGY4IH0gZnJvbSBcIkB0YWkta3VuL3N1cnJlYWxkYi91dGlsc1wiO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFzdGlmeS9zZWN1cmUtanNvbi1wYXJzZVxuY29uc3QgX19QUk9UT19fUkVHRVggPVxuICAvXCIoPzpffFxcXFx1MDA1W0ZmXSkoPzpffFxcXFx1MDA1W0ZmXSkoPzpwfFxcXFx1MDA3MCkoPzpyfFxcXFx1MDA3MikoPzpvfFxcXFx1MDA2W0ZmXSkoPzp0fFxcXFx1MDA3NCkoPzpvfFxcXFx1MDA2W0ZmXSkoPzpffFxcXFx1MDA1W0ZmXSkoPzpffFxcXFx1MDA1W0ZmXSlcIlxccyo6LztcbmNvbnN0IENPTlNUUlVDVE9SX1JFR0VYID1cbiAgL1wiKD86Y3xcXFxcdTAwNjMpKD86b3xcXFxcdTAwNltGZl0pKD86bnxcXFxcdTAwNltFZV0pKD86c3xcXFxcdTAwNzMpKD86dHxcXFxcdTAwNzQpKD86cnxcXFxcdTAwNzIpKD86dXxcXFxcdTAwNzUpKD86Y3xcXFxcdTAwNjMpKD86dHxcXFxcdTAwNzQpKD86b3xcXFxcdTAwNltGZl0pKD86cnxcXFxcdTAwNzIpXCJcXHMqOi87XG5cbi8vIFRPRE8odGFpLWt1bik6IGlzU2FmZU1hcEtleSwgaXNTYWZlT2JqZWN0S2V5IFx1MzA5Mlx1MzBBQVx1MzBEN1x1MzBCN1x1MzBFN1x1MzBGM1x1MzA2Qlx1OEZGRFx1NTJBMFxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSnNvbkZvcm1hdHRlciBpbXBsZW1lbnRzIEZvcm1hdHRlciB7XG4gIGNvbnRlbnRUeXBlID0gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gIHdzUHJvdG9jb2xzID0gW1wianNvblwiXTtcblxuICBlbmNvZGVTeW5jKGRhdGE6IHVua25vd24pOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgfVxuXG4gIGRlY29kZVN5bmMoZGF0YTogRGF0YSk6IHVua25vd24ge1xuICAgIGNvbnN0IGpzb24gPSB0b1N0cmluZyhkYXRhKTtcblxuICAgIGlmIChfX1BST1RPX19SRUdFWC50ZXN0KGpzb24pKSB7XG4gICAgICB0aHJvdyBuZXcgSnNvblVuc2FmZU1hcEtleUVycm9yKFwiX19wcm90b19fXCIpO1xuICAgIH1cblxuICAgIGlmIChDT05TVFJVQ1RPUl9SRUdFWC50ZXN0KGpzb24pKSB7XG4gICAgICB0aHJvdyBuZXcgSnNvblVuc2FmZU1hcEtleUVycm9yKFwiY29uc3RydWN0b3JcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoanNvbik7XG4gIH1cblxuICBjbG9uZVN5bmM8VD4oZGF0YTogVCk6IFQge1xuICAgIHN3aXRjaCAodHlwZW9mIGRhdGEpIHtcbiAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgIHJldHVybiBkYXRhO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBzd2l0Y2ggKGRhdGEpIHtcbiAgICAgICAgICBjYXNlIG51bGw6XG4gICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gY2xvbmVTeW5jKHRoaXMsIGRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgdG9FbmNvZGVkPFREYXRhPihkYXRhOiBURGF0YSk6IEVuY29kZWRKU09OPFREYXRhPiB7XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBFbmNvZGVkSlNPTikge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBFbmNvZGVkSlNPTihcbiAgICAgIHtcbiAgICAgICAgZGF0YTogdGhpcy5jbG9uZVN5bmMoZGF0YSksXG4gICAgICB9LFxuICAgICAgZnVuY3Rpb24gdG9KU09OKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhO1xuICAgICAgfSxcbiAgICAgIC8vIFRPRE8odGFpLWt1bik6IEpTT04gXHUzMEQ1XHUzMEE5XHUzMEZDXHUzMERFXHUzMEMzXHUzMEJGXHUzMEZDXHUzMDZFXHU0RThCXHU1MjREXHUzMEE4XHUzMEYzXHUzMEIzXHUzMEZDXHUzMEM3XHUzMEEzXHUzMEYzXHUzMEIwXHUzMDkyXHU1QjlGXHU4OEM1XHUzMDU5XHUzMDhCXHUzMDAyXG4gICAgICAvLyBmdW5jdGlvbiB0b1Jhd0pTT04oKSB7XG4gICAgICAvLyAgIHJldHVybiAodGhpcy5qc29uID8/PSBKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEpKTtcbiAgICAgIC8vIH0sXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0b1N0cmluZyhkYXRhOiBEYXRhKTogc3RyaW5nIHtcbiAgc3dpdGNoICh0cnVlKSB7XG4gICAgY2FzZSB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIjpcbiAgICAgIHJldHVybiBkYXRhO1xuXG4gICAgY2FzZSBkYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSB8fCBpc0FycmF5QnVmZmVyKGRhdGEpOlxuICAgICAgcmV0dXJuIHV0ZjguZGVjb2RlKGRhdGEpO1xuXG4gICAgY2FzZSB0eXBlb2YgQnVmZmVyICE9PSBcInVuZGVmaW5lZFwiXG4gICAgICAmJiBBcnJheS5pc0FycmF5KGRhdGEpXG4gICAgICAmJiBkYXRhLmV2ZXJ5KGIgPT4gQnVmZmVyLmlzQnVmZmVyKGIpKTpcbiAgICAgIHJldHVybiB1dGY4LmRlY29kZShCdWZmZXIuY29uY2F0KGRhdGEpKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgU3VycmVhbFR5cGVFcnJvcihcbiAgICAgICAgW1wiU3RyaW5nXCIsIFwiQnVmZmVyXCIsIFwiQXJyYXlCdWZmZXJcIiwgXCJVaW50OEFycmF5XCIsIFwiQnVmZmVyW11cIl0sXG4gICAgICAgIGRhdGEsXG4gICAgICApO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsb0JBR087QUFDUCx1QkFLTztBQUNQLG1CQUFvQztBQUdwQyxJQUFNLGlCQUNKO0FBQ0YsSUFBTSxvQkFDSjtBQUdGLElBQXFCLGlCQUFyQixNQUFxQixlQUFtQztBQUFBLEVBQXhEO0FBQ0UsdUJBQWM7QUFDZCx1QkFBYyxDQUFDLE1BQU07QUFBQTtBQUFBLEVBRXJCLFdBQVcsTUFBdUI7QUFDaEMsV0FBTyxLQUFLLFVBQVUsSUFBSTtBQUFBLEVBQzVCO0FBQUEsRUFFQSxXQUFXLE1BQXFCO0FBQzlCLFVBQU0sT0FBTyxTQUFTLElBQUk7QUFFMUIsUUFBSSxlQUFlLEtBQUssSUFBSSxHQUFHO0FBQzdCLFlBQU0sSUFBSSxvQ0FBc0IsV0FBVztBQUFBLElBQzdDO0FBRUEsUUFBSSxrQkFBa0IsS0FBSyxJQUFJLEdBQUc7QUFDaEMsWUFBTSxJQUFJLG9DQUFzQixhQUFhO0FBQUEsSUFDL0M7QUFFQSxXQUFPLEtBQUssTUFBTSxJQUFJO0FBQUEsRUFDeEI7QUFBQSxFQUVBLFVBQWEsTUFBWTtBQUN2QixZQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ25CLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFDSCxlQUFPO0FBQUEsTUFFVDtBQUNFLGdCQUFRLE1BQU07QUFBQSxVQUNaLEtBQUs7QUFBQSxVQUNMLEtBQUs7QUFDSCxtQkFBTztBQUFBLFVBRVQ7QUFDRSx1QkFBTyw0QkFBVSxNQUFNLElBQUk7QUFBQSxRQUMvQjtBQUFBLElBQ0o7QUFBQSxFQUNGO0FBQUEsRUFFQSxVQUFpQixNQUFpQztBQUNoRCxRQUFJLGdCQUFnQiw4QkFBYTtBQUMvQixhQUFPO0FBQUEsSUFDVDtBQUVBLFdBQU8sSUFBSTtBQUFBLE1BQ1Q7QUFBQSxRQUNFLE1BQU0sS0FBSyxVQUFVLElBQUk7QUFBQSxNQUMzQjtBQUFBLE1BQ0EsZ0NBQVMsU0FBUztBQUNoQixlQUFPLEtBQUs7QUFBQSxNQUNkLEdBRkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBT0Y7QUFBQSxFQUNGO0FBQ0Y7QUEzRHdEO0FBQXhELElBQXFCLGdCQUFyQjtBQTZEQSxTQUFTLFNBQVMsTUFBb0I7QUFDcEMsVUFBUSxNQUFNO0FBQUEsSUFDWixLQUFLLE9BQU8sU0FBUztBQUNuQixhQUFPO0FBQUEsSUFFVCxNQUFLLGdCQUFnQixrQkFBYyw0QkFBYyxJQUFJO0FBQ25ELGFBQU8sa0JBQUssT0FBTyxJQUFJO0FBQUEsSUFFekIsTUFBSyxPQUFPLFdBQVcsZUFDbEIsTUFBTSxRQUFRLElBQUksS0FDbEIsS0FBSyxNQUFNLE9BQUssT0FBTyxTQUFTLENBQUMsQ0FBQztBQUNyQyxhQUFPLGtCQUFLLE9BQU8sT0FBTyxPQUFPLElBQUksQ0FBQztBQUFBLElBRXhDO0FBQ0UsWUFBTSxJQUFJO0FBQUEsUUFDUixDQUFDLFVBQVUsVUFBVSxlQUFlLGNBQWMsVUFBVTtBQUFBLFFBQzVEO0FBQUEsTUFDRjtBQUFBLEVBQ0o7QUFDRjtBQW5CUzsiLAogICJuYW1lcyI6IFtdCn0K