UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

133 lines (131 loc) 14.4 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/cbor/writer.ts var writer_exports = {}; __export(writer_exports, { Writer: () => Writer }); module.exports = __toCommonJS(writer_exports); var _Writer = class _Writer { constructor(memory, options = {}) { const { maxDepth = 64 } = options; this.maxDepth = maxDepth; this.data = memory.data; this.view = memory.view; this.depth = 0; this.total = 0; this.offset = 0; this.chunks = [memory.data]; this.memory = memory; } datacopy() { return this.offset >= this.data.length ? this.data.slice() : this.data.slice(0, this.offset); } dataref() { if (this.offset <= this.data.length) { return this.data.subarray(0, this.offset); } return this.data; } claim(size) { if (size > this.memory.size) { let last = this.chunks.length - 1; if (this.offset > 0) { this.chunks[last++] = this.datacopy(); } this.data = this.chunks[last] = new Uint8Array(size); this.view = new DataView(this.data.buffer, 0, size); this.total += this.offset; this.offset = 0; } else if (size > this.data.length - this.offset) { const last = this.chunks.length - 1; if (this.data === this.memory.data) { this.chunks[last] = this.datacopy(); } else if (this.data.length < this.offset) { this.chunks[last] = this.dataref(); } this.data = this.chunks[last + 1] = this.memory.data; this.view = this.memory.view; this.total += this.offset; this.offset = 0; } } output() { if (this.chunks.length < 2) { if (this.data === this.memory.data) { return this.datacopy(); } return this.data; } const last = this.chunks.length - 1; this.chunks[last] = this.dataref(); const acc = new Uint8Array(this.total + this.offset); for (let offset = 0, chunk; chunk = this.chunks.shift(); ) { acc.set(chunk, offset); offset += chunk.length; } return acc; } writeBytes(value) { this.claim(value.length); this.data.set(value, this.offset); this.offset += value.length; } writeUint8(value) { this.claim(1); this.view.setUint8(this.offset, value); this.offset += 1; } writeUint16(value) { this.claim(2); this.view.setUint16(this.offset, value); this.offset += 2; } writeUint32(value) { this.claim(4); this.view.setUint32(this.offset, value); this.offset += 4; } writeBigUint64(value) { this.claim(8); this.view.setBigUint64(this.offset, value); this.offset += 8; } // writeFloat16(value: number): void { // this.claim(2); // setFloat16(this.view, this.offset, value); // this.offset += 2; // } writeFloat32(value) { this.claim(4); this.view.setFloat32(this.offset, value); this.offset += 4; } writeFloat64(value) { this.claim(8); this.view.setFloat64(this.offset, value); this.offset += 8; } }; __name(_Writer, "Writer"); var Writer = _Writer; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2Nib3Ivd3JpdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgdHlwZSB7IFVpbnQ4QXJyYXlMaWtlIH0gZnJvbSBcIkB0YWkta3VuL3N1cnJlYWxkYi90eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBBbGxvY2F0ZWRNZW1vcnlCbG9jayB9IGZyb20gXCIuL19tZW1vcnlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBXcml0ZXJPcHRpb25zIHtcbiAgcmVhZG9ubHkgbWF4RGVwdGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBXcml0ZXIge1xuICByZWFkb25seSBtYXhEZXB0aDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lbW9yeTogQWxsb2NhdGVkTWVtb3J5QmxvY2ssXG4gICAgb3B0aW9uczogV3JpdGVyT3B0aW9ucyB8IHVuZGVmaW5lZCA9IHt9LFxuICApIHtcbiAgICBjb25zdCB7XG4gICAgICBtYXhEZXB0aCA9IDY0LFxuICAgIH0gPSBvcHRpb25zO1xuICAgIHRoaXMubWF4RGVwdGggPSBtYXhEZXB0aDtcblxuICAgIHRoaXMuZGF0YSA9IG1lbW9yeS5kYXRhO1xuICAgIHRoaXMudmlldyA9IG1lbW9yeS52aWV3O1xuICAgIHRoaXMuZGVwdGggPSAwO1xuICAgIHRoaXMudG90YWwgPSAwO1xuICAgIHRoaXMub2Zmc2V0ID0gMDtcbiAgICB0aGlzLmNodW5rcyA9IFttZW1vcnkuZGF0YV07XG4gICAgdGhpcy5tZW1vcnkgPSBtZW1vcnk7XG4gIH1cblxuICBkYXRhOiBVaW50OEFycmF5O1xuICB2aWV3OiBEYXRhVmlldztcbiAgZGVwdGg6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbiAgb2Zmc2V0OiBudW1iZXI7XG4gIHByb3RlY3RlZCBjaHVua3M6IFtVaW50OEFycmF5LCAuLi5VaW50OEFycmF5W11dO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWVtb3J5OiBBbGxvY2F0ZWRNZW1vcnlCbG9jaztcblxuICBwcm90ZWN0ZWQgZGF0YWNvcHkoKTogVWludDhBcnJheSB7XG4gICAgcmV0dXJuIHRoaXMub2Zmc2V0ID49IHRoaXMuZGF0YS5sZW5ndGhcbiAgICAgID8gdGhpcy5kYXRhLnNsaWNlKClcbiAgICAgIDogdGhpcy5kYXRhLnNsaWNlKDAsIHRoaXMub2Zmc2V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkYXRhcmVmKCk6IFVpbnQ4QXJyYXkge1xuICAgIGlmICh0aGlzLm9mZnNldCA8PSB0aGlzLmRhdGEubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhLnN1YmFycmF5KDAsIHRoaXMub2Zmc2V0KTsgLy8gdHJpbVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRhdGE7XG4gIH1cblxuICBjbGFpbShzaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoc2l6ZSA+IHRoaXMubWVtb3J5LnNpemUpIHtcbiAgICAgIC8vIFx1NEU4Qlx1NTI0RFx1MzA2Qlx1NzUyOFx1NjEwRlx1MzA1NVx1MzA4Q1x1MzA1Rlx1MzBFMVx1MzBFMlx1MzBFQVx1MzBGQ1x1MzBCNVx1MzBBNFx1MzBCQVx1MzA5Mlx1OEQ4NVx1MzA0OFx1MzA4Qlx1ODk4MVx1NkM0Mlx1MzA0Q1x1MzA0Mlx1MzA4Q1x1MzA3MDpcbiAgICAgIC8vICgxKSBcdTczRkVcdTMwQzFcdTMwRTNcdTMwRjNcdTMwQUZcdTMwNkJcdTUxODVcdTVCQjlcdTMwNENcdTMwNDJcdTMwOENcdTMwNzBcdTVGQzVcdTg5ODFcdTMwNkFcdTMwNjBcdTMwNTFcdTg5MDdcdTg4RkRcdTMwOTJcdThBMThcdTkzMzJcdTMwNTlcdTMwOEJcdTMwMDJcbiAgICAgIC8vICgyKSBcdTg5ODFcdTZDNDJcdTMwQjVcdTMwQTRcdTMwQkFcdTMwNjFcdTMwODdcdTMwNDZcdTMwNjlcdTMwNkVcdTMwQzdcdTMwRkNcdTMwQkZcdTMwOTJcdTRGNUNcdTYyMTBcdTMwNTlcdTMwOEJcdTMwMDJcbiAgICAgIC8vICgzKSBcdTdEQ0ZcdTVCQjlcdTkxQ0ZcdTMwOTJcdTY2RjRcdTY1QjBcdTMwNTlcdTMwOEJcdTMwMDJcbiAgICAgIC8vICg0KSBcdTMwQUFcdTMwRDVcdTMwQkJcdTMwQzNcdTMwQzhcdTMwOTIgMCBcdTMwNkJcdTYyM0JcdTMwNTlcdTMwMDJcblxuICAgICAgbGV0IGxhc3QgPSB0aGlzLmNodW5rcy5sZW5ndGggLSAxO1xuXG4gICAgICAvLyAoMSlcbiAgICAgIGlmICh0aGlzLm9mZnNldCA+IDApIHtcbiAgICAgICAgdGhpcy5jaHVua3NbbGFzdCsrXSA9IHRoaXMuZGF0YWNvcHkoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kYXRhID0gdGhpcy5jaHVua3NbbGFzdF0gPSBuZXcgVWludDhBcnJheShzaXplKTsgLy8gKDIpXG4gICAgICB0aGlzLnZpZXcgPSBuZXcgRGF0YVZpZXcodGhpcy5kYXRhLmJ1ZmZlciwgMCwgc2l6ZSk7IC8vICgyKVxuICAgICAgdGhpcy50b3RhbCArPSB0aGlzLm9mZnNldDsgLy8gKDMpXG4gICAgICB0aGlzLm9mZnNldCA9IDA7IC8vICg0KVxuICAgIH0gZWxzZSBpZiAoc2l6ZSA+ICh0aGlzLmRhdGEubGVuZ3RoIC0gdGhpcy5vZmZzZXQpKSB7XG4gICAgICAvLyBcdTg5ODFcdTZDNDJcdTMwQjVcdTMwQTRcdTMwQkFcdTMwNENcdTMwQzFcdTMwRTNcdTMwRjNcdTMwQUZcdTMwNkJcdTUzQ0VcdTMwN0VcdTMwODlcdTMwNkFcdTMwNDRcdTU4MzRcdTU0MDg6XG4gICAgICAvLyAoMSkgXHU3M0ZFXHUzMEMxXHUzMEUzXHUzMEYzXHUzMEFGXHUzMDRDXHU0RThCXHU1MjREXHUzMDZCXHU3NTI4XHU2MTBGXHUzMDU1XHUzMDhDXHUzMDVGXHUzMEUxXHUzMEUyXHUzMEVBXHUzMEZDXHUzMDZBXHUzMDg5XHU1RkM1XHU4OTgxXHUzMDZBXHUzMDYwXHUzMDUxXHU4OTA3XHU4OEZEXHUzMDkyXHU4QTE4XHU5MzMyXHUzMDU5XHUzMDhCXHUzMDAyXG4gICAgICAvLyAoMikgXHU3M0ZFXHUzMEMxXHUzMEUzXHUzMEYzXHUzMEFGXHUzMDRDXHUzMEFCXHUzMEI5XHUzMEJGXHUzMEUwXHUzMEI1XHUzMEE0XHUzMEJBXHUzMDZFXHUzMEUxXHUzMEUyXHUzMEVBXHUzMEZDXHUzMDZBXHUzMDg5XHU1RkM1XHU4OTgxXHUzMDZBXHUzMDYwXHUzMDUxXHU1M0MyXHU3MTY3XHUzMDkyXHU4QTE4XHU5MzMyXHUzMDU5XHUzMDhCXHUzMDAyXG4gICAgICAvLyAoMykgXHU3M0ZFXHUzMEMxXHUzMEUzXHUzMEYzXHUzMEFGXHUzMDkyXHU0RThCXHU1MjREXHUzMDZCXHU3NTI4XHU2MTBGXHUzMDU1XHUzMDhDXHUzMDVGXHUzMEUxXHUzMEUyXHUzMEVBXHUzMEZDXHUzMDZCXHUzMDU5XHUzMDhCXHUzMDAyXG4gICAgICAvLyAoNCkgXHU3RENGXHU1QkI5XHU5MUNGXHUzMDkyXHU2NkY0XHU2NUIwXHUzMDU5XHUzMDhCXHUzMDAyXG4gICAgICAvLyAoNSkgXHUzMEFBXHUzMEQ1XHUzMEJCXHUzMEMzXHUzMEM4XHUzMDkyIDAgXHUzMDZCXHU2MjNCXHUzMDU5XHUzMDAyXG5cbiAgICAgIGNvbnN0IGxhc3QgPSB0aGlzLmNodW5rcy5sZW5ndGggLSAxO1xuXG4gICAgICAvLyAoMSlcbiAgICAgIGlmICh0aGlzLmRhdGEgPT09IHRoaXMubWVtb3J5LmRhdGEpIHtcbiAgICAgICAgdGhpcy5jaHVua3NbbGFzdF0gPSB0aGlzLmRhdGFjb3B5KCk7XG4gICAgICB9IC8vXG4gICAgICAvLyAoMilcbiAgICAgIGVsc2UgaWYgKHRoaXMuZGF0YS5sZW5ndGggPCB0aGlzLm9mZnNldCkge1xuICAgICAgICB0aGlzLmNodW5rc1tsYXN0XSA9IHRoaXMuZGF0YXJlZigpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRhdGEgPSB0aGlzLmNodW5rc1tsYXN0ICsgMV0gPSB0aGlzLm1lbW9yeS5kYXRhOyAvLyAoMylcbiAgICAgIHRoaXMudmlldyA9IHRoaXMubWVtb3J5LnZpZXc7IC8vICgzKVxuICAgICAgdGhpcy50b3RhbCArPSB0aGlzLm9mZnNldDsgLy8gKDQpXG4gICAgICB0aGlzLm9mZnNldCA9IDA7IC8vICg1KVxuICAgIH1cbiAgfVxuXG4gIG91dHB1dCgpOiBVaW50OEFycmF5IHtcbiAgICBpZiAodGhpcy5jaHVua3MubGVuZ3RoIDwgMikge1xuICAgICAgaWYgKHRoaXMuZGF0YSA9PT0gdGhpcy5tZW1vcnkuZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhY29weSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5kYXRhO1xuICAgIH1cblxuICAgIGNvbnN0IGxhc3QgPSB0aGlzLmNodW5rcy5sZW5ndGggLSAxO1xuICAgIHRoaXMuY2h1bmtzW2xhc3RdID0gdGhpcy5kYXRhcmVmKCk7IC8vIFx1MzBCM1x1MzBENFx1MzBGQ1x1MzA1NVx1MzA4Q1x1MzA4Qlx1MzA2RVx1MzA2N1x1NTNDMlx1NzE2N1x1MzA2N1x1NjlDQlx1MzA4Rlx1MzA2QVx1MzA0NFx1MzAwMlxuXG4gICAgY29uc3QgYWNjID0gbmV3IFVpbnQ4QXJyYXkodGhpcy50b3RhbCArIHRoaXMub2Zmc2V0KTtcblxuICAgIGZvciAoXG4gICAgICBsZXQgb2Zmc2V0ID0gMCwgY2h1bms6IFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQ7XG4gICAgICAoY2h1bmsgPSB0aGlzLmNodW5rcy5zaGlmdCgpKTtcbiAgICApIHtcbiAgICAgIGFjYy5zZXQoY2h1bmssIG9mZnNldCk7XG4gICAgICBvZmZzZXQgKz0gY2h1bmsubGVuZ3RoO1xuICAgIH1cblxuICAgIHJldHVybiBhY2M7XG4gIH1cblxuICB3cml0ZUJ5dGVzKHZhbHVlOiBVaW50OEFycmF5TGlrZSk6IHZvaWQge1xuICAgIHRoaXMuY2xhaW0odmFsdWUubGVuZ3RoKTtcbiAgICB0aGlzLmRhdGEuc2V0KHZhbHVlLCB0aGlzLm9mZnNldCk7XG4gICAgdGhpcy5vZmZzZXQgKz0gdmFsdWUubGVuZ3RoO1xuICB9XG5cbiAgd3JpdGVVaW50OCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jbGFpbSgxKTtcbiAgICB0aGlzLnZpZXcuc2V0VWludDgodGhpcy5vZmZzZXQsIHZhbHVlKTtcbiAgICB0aGlzLm9mZnNldCArPSAxO1xuICB9XG5cbiAgd3JpdGVVaW50MTYodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY2xhaW0oMik7XG4gICAgdGhpcy52aWV3LnNldFVpbnQxNih0aGlzLm9mZnNldCwgdmFsdWUpO1xuICAgIHRoaXMub2Zmc2V0ICs9IDI7XG4gIH1cblxuICB3cml0ZVVpbnQzMih2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jbGFpbSg0KTtcbiAgICB0aGlzLnZpZXcuc2V0VWludDMyKHRoaXMub2Zmc2V0LCB2YWx1ZSk7XG4gICAgdGhpcy5vZmZzZXQgKz0gNDtcbiAgfVxuXG4gIHdyaXRlQmlnVWludDY0KHZhbHVlOiBiaWdpbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNsYWltKDgpO1xuICAgIHRoaXMudmlldy5zZXRCaWdVaW50NjQodGhpcy5vZmZzZXQsIHZhbHVlKTtcbiAgICB0aGlzLm9mZnNldCArPSA4O1xuICB9XG5cbiAgLy8gd3JpdGVGbG9hdDE2KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgLy8gICB0aGlzLmNsYWltKDIpO1xuICAvLyAgIHNldEZsb2F0MTYodGhpcy52aWV3LCB0aGlzLm9mZnNldCwgdmFsdWUpO1xuICAvLyAgIHRoaXMub2Zmc2V0ICs9IDI7XG4gIC8vIH1cblxuICB3cml0ZUZsb2F0MzIodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY2xhaW0oNCk7XG4gICAgdGhpcy52aWV3LnNldEZsb2F0MzIodGhpcy5vZmZzZXQsIHZhbHVlKTtcbiAgICB0aGlzLm9mZnNldCArPSA0O1xuICB9XG5cbiAgd3JpdGVGbG9hdDY0KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNsYWltKDgpO1xuICAgIHRoaXMudmlldy5zZXRGbG9hdDY0KHRoaXMub2Zmc2V0LCB2YWx1ZSk7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