tfcconnection/.shadow-cljs/builds/app/dev/goog-js/com.cognitect.transit.js

1 line
74 KiB
JavaScript

["^ ","~:resource-id",["~:shadow.build.classpath/resource","com/cognitect/transit.js"],"~:js","goog.provide(\"com.cognitect.transit\");\ngoog.require(\"com.cognitect.transit.util\");\ngoog.require(\"com.cognitect.transit.impl.reader\");\ngoog.require(\"com.cognitect.transit.impl.writer\");\ngoog.require(\"com.cognitect.transit.types\");\ngoog.require(\"com.cognitect.transit.eq\");\ngoog.require(\"com.cognitect.transit.impl.decoder\");\ngoog.require(\"com.cognitect.transit.caching\");\nvar TRANSIT_DEV = true;\nvar TRANSIT_NODE_TARGET = false;\nvar TRANSIT_BROWSER_TARGET = false;\nvar TRANSIT_BROWSER_AMD_TARGET = false;\ngoog.scope(function() {\n var transit = com.cognitect.transit;\n var util = com.cognitect.transit.util, reader = com.cognitect.transit.impl.reader, writer = com.cognitect.transit.impl.writer, decoder = com.cognitect.transit.impl.decoder, types = com.cognitect.transit.types, eq = com.cognitect.transit.eq, caching = com.cognitect.transit.caching;\n transit.MapLike;\n transit.SetLike;\n transit.reader = function(type, opts) {\n if (type === \"json\" || type === \"json-verbose\" || type == null) {\n type = \"json\";\n var unmarshaller = new reader.JSONUnmarshaller(opts);\n return new reader.Reader(unmarshaller, opts);\n } else {\n throw new Error(\"Cannot create reader of type \" + type);\n }\n };\n transit.writer = function(type, opts) {\n if (type === \"json\" || type === \"json-verbose\" || type == null) {\n if (type === \"json-verbose\") {\n if (opts == null) {\n opts = {};\n }\n opts[\"verbose\"] = true;\n }\n var marshaller = new writer.JSONMarshaller(opts);\n return new writer.Writer(marshaller, opts);\n } else {\n var err = new Error('Type must be \"json\"');\n err.data = {type:type};\n throw err;\n }\n };\n transit.makeWriteHandler = function(obj) {\n var Handler = function() {\n };\n Handler.prototype.tag = obj[\"tag\"];\n Handler.prototype.rep = obj[\"rep\"];\n Handler.prototype.stringRep = obj[\"stringRep\"];\n Handler.prototype.getVerboseHandler = obj[\"getVerboseHandler\"];\n return new Handler();\n };\n transit.makeBuilder = function(obj) {\n var Builder = function() {\n };\n Builder.prototype.init = obj[\"init\"];\n Builder.prototype.add = obj[\"add\"];\n Builder.prototype.finalize = obj[\"finalize\"];\n Builder.prototype.fromArray = obj[\"fromArray\"];\n return new Builder();\n };\n transit.date = types.date;\n transit.integer = types.intValue;\n transit.isInteger = types.isInteger;\n transit.uuid = types.uuid;\n transit.isUUID = types.isUUID;\n transit.bigInt = types.bigInteger;\n transit.isBigInt = types.isBigInteger;\n transit.bigDec = types.bigDecimalValue;\n transit.isBigDec = types.isBigDecimal;\n transit.keyword = types.keyword;\n transit.isKeyword = types.isKeyword;\n transit.symbol = types.symbol;\n transit.isSymbol = types.isSymbol;\n transit.binary = types.binary;\n transit.isBinary = types.isBinary;\n transit.uri = types.uri;\n transit.isURI = types.isURI;\n transit.map = types.map;\n transit.isMap = types.isMap;\n transit.set = types.set;\n transit.isSet = types.isSet;\n transit.list = types.list;\n transit.isList = types.isList;\n transit.quoted = types.quoted;\n transit.isQuoted = types.isQuoted;\n transit.tagged = types.taggedValue;\n transit.isTaggedValue = types.isTaggedValue;\n transit.link = types.link;\n transit.isLink = types.isLink;\n transit.hash = eq.hashCode;\n transit.hashMapLike = eq.hashMapLike;\n transit.hashArrayLike = eq.hashArrayLike;\n transit.equals = eq.equals;\n transit.extendToEQ = eq.extendToEQ;\n transit.mapToObject = function(m) {\n var ret = {};\n m.forEach(function(v, k) {\n if (typeof k !== \"string\") {\n throw Error(\"Cannot convert map with non-string keys\");\n } else {\n ret[k] = v;\n }\n });\n return ret;\n };\n transit.objectToMap = function(obj) {\n var ret = transit.map();\n for (var p in obj) {\n if (obj.hasOwnProperty(p)) {\n ret.set(p, obj[p]);\n }\n }\n return ret;\n };\n transit.decoder = decoder.decoder;\n transit.readCache = caching.readCache;\n transit.writeCache = caching.writeCache;\n transit.UUIDfromString = types.UUIDfromString;\n transit.randomUUID = util.randomUUID;\n transit.stringableKeys = writer.stringableKeys;\n if (TRANSIT_BROWSER_TARGET) {\n goog.exportSymbol(\"transit.reader\", transit.reader);\n goog.exportSymbol(\"transit.writer\", transit.writer);\n goog.exportSymbol(\"transit.makeBuilder\", transit.makeBuilder);\n goog.exportSymbol(\"transit.makeWriteHandler\", transit.makeWriteHandler);\n goog.exportSymbol(\"transit.date\", types.date);\n goog.exportSymbol(\"transit.integer\", types.intValue);\n goog.exportSymbol(\"transit.isInteger\", types.isInteger);\n goog.exportSymbol(\"transit.uuid\", types.uuid);\n goog.exportSymbol(\"transit.isUUID\", types.isUUID);\n goog.exportSymbol(\"transit.bigInt\", types.bigInteger);\n goog.exportSymbol(\"transit.isBigInt\", types.isBigInteger);\n goog.exportSymbol(\"transit.bigDec\", types.bigDecimalValue);\n goog.exportSymbol(\"transit.isBigDec\", types.isBigDecimal);\n goog.exportSymbol(\"transit.keyword\", types.keyword);\n goog.exportSymbol(\"transit.isKeyword\", types.isKeyword);\n goog.exportSymbol(\"transit.symbol\", types.symbol);\n goog.exportSymbol(\"transit.isSymbol\", types.isSymbol);\n goog.exportSymbol(\"transit.binary\", types.binary);\n goog.exportSymbol(\"transit.isBinary\", types.isBinary);\n goog.exportSymbol(\"transit.uri\", types.uri);\n goog.exportSymbol(\"transit.isURI\", types.isURI);\n goog.exportSymbol(\"transit.map\", types.map);\n goog.exportSymbol(\"transit.isMap\", types.isMap);\n goog.exportSymbol(\"transit.set\", types.set);\n goog.exportSymbol(\"transit.isSet\", types.isSet);\n goog.exportSymbol(\"transit.list\", types.list);\n goog.exportSymbol(\"transit.isList\", types.isList);\n goog.exportSymbol(\"transit.quoted\", types.quoted);\n goog.exportSymbol(\"transit.isQuoted\", types.isQuoted);\n goog.exportSymbol(\"transit.tagged\", types.taggedValue);\n goog.exportSymbol(\"transit.isTaggedValue\", types.isTaggedValue);\n goog.exportSymbol(\"transit.link\", types.link);\n goog.exportSymbol(\"transit.isLink\", types.isLink);\n goog.exportSymbol(\"transit.hash\", eq.hashCode);\n goog.exportSymbol(\"transit.hashMapLike\", eq.hashMapLike);\n goog.exportSymbol(\"transit.hashArrayLike\", eq.hashArrayLike);\n goog.exportSymbol(\"transit.equals\", eq.equals);\n goog.exportSymbol(\"transit.extendToEQ\", eq.extendToEQ);\n goog.exportSymbol(\"transit.mapToObject\", transit.mapToObject);\n goog.exportSymbol(\"transit.objectToMap\", transit.objectToMap);\n goog.exportSymbol(\"transit.decoder\", decoder.decoder);\n goog.exportSymbol(\"transit.UUIDfromString\", types.UUIDfromString);\n goog.exportSymbol(\"transit.randomUUID\", util.randomUUID);\n goog.exportSymbol(\"transit.stringableKeys\", writer.stringableKeys);\n goog.exportSymbol(\"transit.readCache\", caching.readCache);\n goog.exportSymbol(\"transit.writeCache\", caching.writeCache);\n }\n if (TRANSIT_NODE_TARGET) {\n module.exports = {reader:transit.reader, writer:transit.writer, makeBuilder:transit.makeBuilder, makeWriteHandler:transit.makeWriteHandler, date:types.date, integer:types.intValue, isInteger:types.isInteger, uuid:types.uuid, isUUID:types.isUUID, bigInt:types.bigInteger, isBigInt:types.isBigInteger, bigDec:types.bigDecimalValue, isBigDec:types.isBigDecimal, keyword:types.keyword, isKeyword:types.isKeyword, symbol:types.symbol, isSymbol:types.isSymbol, binary:types.binary, isBinary:types.isBinary, \n uri:types.uri, isURI:types.isURI, map:types.map, isMap:types.isMap, set:types.set, isSet:types.isSet, list:types.list, isList:types.isList, quoted:types.quoted, isQuoted:types.isQuoted, tagged:types.taggedValue, isTaggedValue:types.isTaggedValue, link:types.link, isLink:types.isLink, hash:eq.hashCode, hashArrayLike:eq.hashArrayLike, hashMapLike:eq.hashMapLike, equals:eq.equals, extendToEQ:eq.extendToEQ, mapToObject:transit.mapToObject, objectToMap:transit.objectToMap, decoder:decoder.decoder, \n UUIDfromString:types.UUIDfromString, randomUUID:util.randomUUID, stringableKeys:writer.stringableKeys, readCache:caching.readCache, writeCache:caching.writeCache};\n }\n});\n","~:source","// Copyright 2014 Cognitect. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS-IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\"use strict\";\n\ngoog.provide(\"com.cognitect.transit\");\ngoog.require(\"com.cognitect.transit.util\");\ngoog.require(\"com.cognitect.transit.impl.reader\");\ngoog.require(\"com.cognitect.transit.impl.writer\");\ngoog.require(\"com.cognitect.transit.types\");\ngoog.require(\"com.cognitect.transit.eq\");\ngoog.require(\"com.cognitect.transit.impl.decoder\");\ngoog.require(\"com.cognitect.transit.caching\");\n\n/** @define {boolean} */\nvar TRANSIT_DEV = true;\n\n/** @define {boolean} */\nvar TRANSIT_NODE_TARGET = false;\n\n/** @define {boolean} */\nvar TRANSIT_BROWSER_TARGET = false;\n\n/** @define {boolean} */\nvar TRANSIT_BROWSER_AMD_TARGET = false;\n\ngoog.scope(function() {\n\n /**\n * @class transit\n */\n var transit = com.cognitect.transit;\n\n var util = com.cognitect.transit.util,\n reader = com.cognitect.transit.impl.reader,\n writer = com.cognitect.transit.impl.writer,\n decoder = com.cognitect.transit.impl.decoder,\n types = com.cognitect.transit.types,\n eq = com.cognitect.transit.eq,\n caching = com.cognitect.transit.caching;\n\n /**\n * @typedef {Map|com.cognitect.transit.types.TransitArrayMap|com.cognitect.transit.types.TransitMap}\n */\n transit.MapLike;\n\n /**\n * @typedef {Set|com.cognitect.transit.types.TransitSet}\n */\n transit.SetLike;\n\n /**\n * Create a transit reader instance.\n * @method transit.reader\n * @param {string=} type\n * type of reader to construct. Default to \"json\". For verbose mode\n * supply \"json-verbose\".\n * @param {Object=} opts\n * reader options. A JavaScript object to customize the writer Valid\n * entries include \"defaultHandler\", and \"handler\". \"defaultHandler\"\n * should be JavaScript function taking two arguments, the first is the\n * tag, the second the value. \"handlers\" should be an object of tags to\n * handle. The values are functions that will receive the value of matched\n * tag. \"preferBuffers\" may be supplied to customize binary\n * decoding. If available binary data will read as Node.js Buffers,\n * If Buffer is not available or \"prefersBuffers\" is set to false\n * data will be read as Uint8Array. If neither Buffer nor Uint8Array is\n * available - defaults to tagged value that simply wraps the\n * base64 encoded string.\n * @return {com.cognitect.transit.impl.reader.Reader} A transit reader.\n * @example\n * var r = transit.reader(\"json\", {\n * handlers: {\n * \"point\": function(v) { return new Point(v[0], v[1]); }\n * }\n * });\n */\n transit.reader = function(type, opts) {\n if(type === \"json\" || type === \"json-verbose\" || type == null) {\n type = \"json\";\n var unmarshaller = new reader.JSONUnmarshaller(opts);\n return new reader.Reader(unmarshaller, opts);\n } else {\n throw new Error(\"Cannot create reader of type \" + type);\n }\n };\n\n /**\n * Create a transit writer instance.\n * @method transit.writer\n * @param {string=} type\n * type of writer to construct. Defaults to \"json\". For verbose mode\n * supply \"json-verbose\".\n * @param {Object=} opts\n * writer options. A JavaScript object to customize the writer.\n * \"handlers\" options, a transit.map of JavaScript constructor and\n * transit writer handler instance entries. \"handlerForForeign\" option,\n * for dealing with values from other JavaScript contexts. This function\n * will be passed the unmatchable value and the installed handlers. The\n * function should return the correct handler. Note if this function is\n * provided, special handling for Objects will also be\n * auto-installed to catch plain Objects from the foreign context.\n * @return {com.cognitect.transit.impl.writer.Writer} A transit writer.\n * @example\n * var r = transit.writer(\"json\", {\n * handlers: transit.map([\n * Point, PointHandler\n * ])\n * });\n */\n transit.writer = function(type, opts) {\n if(type === \"json\" || type === \"json-verbose\" || type == null) {\n if(type === \"json-verbose\") {\n if(opts == null) opts = {};\n opts[\"verbose\"] = true;\n }\n var marshaller = new writer.JSONMarshaller(opts);\n return new writer.Writer(marshaller, opts);\n } else {\n var err = new Error(\"Type must be \\\"json\\\"\");\n err.data = {type: type};\n throw err;\n }\n };\n\n /**\n * Create a transit writer handler.\n * @method transit.makeWriteHandler\n * @param {Object} obj\n * An object containing 3 functions, tag, rep and stringRep. \"tag\" should\n * return a string representing the tag to be written on the wire. \"rep\"\n * should return the representation on the wire. \"stringRep\" is should\n * return the string representation of the value. Optional\n * \"getVerboseHandler\" should return a handler for writing verbose output.\n * @return {Object} A transit write handler.\n * @example\n * var PointHandler = transit.makeWriteHandler({\n * tag: function(p) { return \"point\"; },\n * rep: function(p) { return [p.x, p.y]; },\n * stringRep: function(p) { return null; }\n * });\n */\n transit.makeWriteHandler = function(obj) {\n /** @constructor */\n var Handler = function(){};\n Handler.prototype.tag = obj[\"tag\"];\n Handler.prototype.rep = obj[\"rep\"];\n Handler.prototype.stringRep = obj[\"stringRep\"];\n Handler.prototype.getVerboseHandler = obj[\"getVerboseHandler\"];\n return new Handler();\n };\n\n transit.makeBuilder = function(obj) {\n /** @constructor */\n var Builder = function(){};\n Builder.prototype.init = obj[\"init\"];\n Builder.prototype.add = obj[\"add\"];\n Builder.prototype.finalize = obj[\"finalize\"];\n Builder.prototype.fromArray = obj[\"fromArray\"];\n return new Builder();\n };\n\n /**\n * Create a transit date.\n * @method transit.date\n * @param {number|string} x\n * A number or string representing milliseconds since epoch.\n * @return {Date} A JavaScript Date.\n */\n transit.date = types.date;\n\n /**\n * Create an integer. If given a transit integer or a JavaScript\n * number will simply return that value. Given a string will\n * return a JavaScript number if the string represents an integer\n * value in the 53bit range and a transit integer otherwise.\n * @method transit.integer\n * @param {number|string} s\n * A value representing an integer.\n * @return {number|goog.math.Long} A JavaScript number or transit integer.\n */\n transit.integer = types.intValue;\n\n /**\n * Test if an object is a transit integer. Will return true if argument\n * is a 64 bit integer or a JavaScript number that has an interpretation as\n * an integer value, i.e. parseFloat(n) === parseInt(n)\n * @method transit.isInteger\n * @param {*} x\n * Any JavaScript value.\n * @return {boolean} true if the value is a transit integer, false otherwise.\n */\n transit.isInteger = types.isInteger;\n\n /**\n * Create transit UUID from a string\n * @method transit.uuid\n * @param {string} s\n * A string.\n * @return {com.cognitect.transit.types.UUID} A transit UUID.\n */\n transit.uuid = types.uuid;\n\n /**\n * Test if an object is a transit UUID.\n * @method transit.isUUID\n * @param {*} x\n * Any JavaScript value.\n * @return {boolean} true if the vlaue is a transit UUID instance, false otherwise.\n */\n transit.isUUID = types.isUUID;\n\n /**\n * Create a transit big integer.\n * @method transit.bigInt\n * @param {string} s\n * A string representing an arbitrary size integer value.\n * @return {com.cognitect.transit.types.TaggedValue} A transit big integer.\n */\n transit.bigInt = types.bigInteger;\n\n /**\n * Test if an object is a transit big integer.\n * @method transit.isBigInt\n * @param {*} x\n * Any JavaScript value.\n * @return {boolean} true if x is a transit big integer, false otherwise.\n */\n transit.isBigInt = types.isBigInteger;\n\n /**\n * Create a transit big decimal.\n * @method transit.bigDec\n * @param {string} s\n * A string representing an arbitrary precisions decimal value.\n * @return {com.cognitect.transit.types.TaggedValue} A transit big decimal.\n */\n transit.bigDec = types.bigDecimalValue;\n\n /**\n * Test if an object is a transit big decimal.\n * @method transit.isBigDec\n * @param {*} x\n * Any JavaScript value.\n * @return {boolean} true if x is a transit big decimal, false otherwise.\n */\n transit.isBigDec = types.isBigDecimal;\n\n /**\n * Create transit keyword.\n * @method transit.keyword\n * @param {string} name A string.\n * @return {com.cognitect.transit.types.Keyword} A transit keyword.\n * @example\n * transit.keyword(\"foo\");\n */\n transit.keyword = types.keyword;\n\n /**\n * Test if an object is a transit keyword.\n * @method transit.isKeyword\n * @param {*} x\n * Any JavaScript value.\n * @return {boolean} true if x is a transit keyword, false otherwise.\n */\n transit.isKeyword = types.isKeyword;\n\n /**\n * Create a transit symbol.\n * @method transit.symbol\n * @param {string} name\n * A string.\n * @return {com.cognitect.transit.types.Symbol} A transit symbol instance.\n * @example\n * transit.symbol(\"foo\");\n */\n transit.symbol = types.symbol;\n\n /**\n * Test if an object is a transit symbol\n * @method transit.isSymbol\n * @param {*} x\n * Any JavaScript value.\n * @return {boolean} true if x is a transit symbol, false otherwise.\n */\n transit.isSymbol = types.isSymbol;\n\n /**\n * Create transit binary blob.\n * @method transit.binary\n * @param {string} s\n * A base64 encoded string.\n * @param {*=} decoder\n * A Transit compliant decoder\n * @return {com.cognitect.transit.types.TaggedValue|Uint8Array} A transit binary blob instance.\n */\n transit.binary = types.binary;\n\n /**\n * Test if an object is a transit binary blob.\n * @method transit.isBinary\n * @param {*} x\n * Any JavaScript value.\n * @return {Boolean} true if x is a binary value, false otheriwse.\n */\n transit.isBinary = types.isBinary;\n\n /**\n * Create a transit URI.\n * @method transit.uri\n * @param {string} s\n * A string representing a valid URI.\n * @return {com.cognitect.transit.types.TaggedValue} A transit URI.\n */\n transit.uri = types.uri;\n\n /**\n * Test if an object is a transit URI.\n * @method transit.isURI\n * @param {*} x\n * Any JavaScript value.\n * @return {Boolean} true if x is a transit symbol, false otherwise.\n */\n transit.isURI = types.isURI;\n\n /**\n * Create a transit hash map. Transit maps satisfy the current version\n * of the ECMAScript 6 Map specification.\n * @method transit.map\n * @param {Array=} xs\n * A JavaScript array of alternating key value pairs.\n * @return {com.cognitect.transit.MapLike} A transit map.\n * @example\n * transit.map([new Date(), \"foo\", [1,2], 3]);\n */\n transit.map = types.map;\n\n /**\n * Test if an object is a transit map.\n * @method transit.isMap\n * @param {*} x\n * Any JavaScript value.\n * @return {boolean} true if x is a transit map, false otherwise.\n */\n transit.isMap = types.isMap;\n\n /**\n * Create a transit set. Transit sets satisfy the current version of the\n * of the ECMAScript 6 Set specification.\n * @method transit.set\n * @param {Array=} xs\n * A JavaScript array of values.\n * @return {com.cognitect.transit.SetLike} A transit set.\n * @example\n * transit.set([\"foo\", [1,2], 3, {bar: \"baz\"}]);\n */\n transit.set = types.set;\n\n /**\n * Test if an object is a transit set.\n * @method transit.isSet\n * @param {*} x\n * Any JavaScript value.\n * @return {boolean} true if x is a transit set, false otherwise.\n */\n transit.isSet = types.isSet;\n\n /**\n * Create a transit list.\n * @method transit.list\n * @param {Array} xs\n * A JavaScript array.\n * @return {com.cognitect.transit.types.TaggedValue} A transit list.\n */\n transit.list = types.list;\n\n /**\n * Test if an object is a transit list.\n * @method transit.isList\n * @param {*} x\n * Any JavaScript value.\n * @return {boolean} true if x is a transit list, false otherwise.\n */\n transit.isList = types.isList;\n\n /**\n * Create a transit quoted value.\n * @method transit.quoted\n * @param {*} x\n * Any JavaScript value.\n * @return {com.cognitect.transit.types.TaggedValue} A transit quoted value.\n */\n transit.quoted = types.quoted;\n\n /**\n * Test if an object is a transit quoted value.\n * @method transit.isQuoted\n * @param {*} x\n * Any JavaScript value.\n * @return {boolean} true if x is a transit value, false otherwise.\n */\n transit.isQuoted = types.isQuoted;\n\n /**\n * Create a transit tagged value.\n * @method transit.tagged\n * @param {string} tag A tag.\n * @param {*} value\n * A JavaScrpt array, object, or string.\n * @return {com.cognitect.transit.types.TaggedValue} A transit tagged value.\n * @example\n * transit.tagged(\"point\", new Point(1,2));\n */\n transit.tagged = types.taggedValue;\n\n /**\n * Test if an object is a transit tagged value.\n * @method transit.isTaggedValue\n * @param {*} x\n * Any JavaScript value.\n * @return {boolean} true if x is a transit value, false otherwise.\n */\n transit.isTaggedValue = types.isTaggedValue;\n\n /**\n * Create a transit link.\n * @method transit.link\n * @param {com.cognitect.transit.MapLike} m\n * A transit map which must contain at a minimum the following keys:\n * href, rel. It may optionally include name, render, and prompt. href\n * must be a transit.uri, all other values are strings, and render must\n * be either \"image\" or \"link\".\n * @return {Object} A transit link.\n */\n transit.link = types.link;\n\n /**\n * Test if an object is a transit link.\n * @method transit.isLink\n * @param {*} x\n * Any JavaScript object.\n * @return {boolean} true if x is a transit link, false otherwise.\n */\n transit.isLink = types.isLink;\n\n /**\n * Compute the hashCode for any JavaScript object that has been\n * extend to transit's equality and hashing protocol. JavaScript\n * primitives and transit value are already extended to this protocol.\n * Custom types may be extended to the protocol via transit.extenToEQ.\n * @method transit.hash\n * @param {*} x\n * Any JavaScript object that has been extended to transit's equality\n * and hashing protocol.\n * @return {number} Returns JavaScript number - semantically a 32bit integer.\n */\n transit.hash = eq.hashCode;\n\n /**\n * Compute the hashCode for JavaScript map-like types - either a JavaScript\n * object or a JavaScript object that implements ES6 Map forEach.\n * @method transit.hashMapLike\n * @param {Object|com.cognitect.transit.MapLike} x\n * A plain JavaScript Object or Object that implements ES6 Map forEach.\n * @return {number} Returns JavaScript number - semantically a 32bit integer.\n */\n transit.hashMapLike = eq.hashMapLike;\n\n /**\n * Compute the hashCode for JavaScript array-like types - either a JavaScript\n * array or a JavaScript object that implements Array forEach.\n * @method transit.hashArrayLike\n * @param {Object} x\n * A JavaScript Array or Object that implements Array forEach.\n * @return {number} Returns JavaScript number - semantically a 32bit integer.\n */\n transit.hashArrayLike = eq.hashArrayLike;\n\n /**\n * Test whether two JavaScript objects represent equal values. The\n * objects to be tested should be extended to transit's equality\n * and hasing protocol. JavaScript natives and transit value have\n * already been extended to the protocol, including objects and\n * arrays. Also transit maps and JavaScript objects may be\n * compared for equality. Custom types may be extended via\n * transit.extendToEQ.\n * @param {*} x\n * A JavaScript object\n * @param {*} y\n * A JavaScript object\n * @return {Boolean} true if the x and y are equal, false otherwise.\n */\n transit.equals = eq.equals;\n\n /**\n * Extend an object to hashing and equality required by\n * transit maps and sets. Only required for custom\n * types, JavaScript primitive types and transit\n * types are handled.\n * @method transit.extendToEQ\n * @param {*} x\n * A JavaScript object, will be mutated.\n * @param {{hashCode: function(), equals: function(*,*):boolean}}\n * A JavaScript object supplying `hashCode` and `equals`\n * implementations\n * @return {*} x\n * @example\n * transit.extendToEq(Point.protototype, {\n * hashCode: function() {\n * var bits = (this.x | 0) ^ ((this.y | 0) * 31);\n * return bits ^ (bits >>> 32);\n * },\n * equals: function(other) {\n * return this.x == other.x && this.y == other.y;\n * }\n * });\n */\n transit.extendToEQ = eq.extendToEQ;\n\n /**\n * Convert a transit map instance into a JavaScript Object.\n * Throws if the map has keys which have no string representation.\n * @method transit.mapToObject\n * @param {com.cognitect.transit.MapLike} m\n * a transit map\n * @return {Object} a JavaScript Object\n */\n transit.mapToObject = function(m) {\n var ret = {};\n m.forEach(function(v, k) {\n if(typeof k !== \"string\") {\n throw Error(\"Cannot convert map with non-string keys\");\n } else {\n ret[k] = v;\n }\n });\n return ret;\n };\n\n /**\n * Convert a POJO into a transit map.\n * @method transit.objectToMap\n * @param {Object} obj\n * a JavaScript Object\n * @return {com.cognitect.transit.MapLike} a transit map\n */\n transit.objectToMap = function(obj) {\n var ret = transit.map();\n for(var p in obj) {\n if(obj.hasOwnProperty(p)) {\n ret.set(p, obj[p]);\n }\n }\n return ret;\n };\n\n /**\n * Construct a Transit JSON decoder.\n * @method transit.decoder\n * @param {Object} opts\n * options to the decoder. Can include map of\n * handlers.\n * @return {com.cognitect.transit.impl.decoder.Decoder} a Transit JSON decoder\n * @example\n * var decoder = transit.decoder();\n * var x = decoder.decode(json, transit.readCache());\n */\n transit.decoder = decoder.decoder;\n\n /**\n * Construct a Transit read cache\n * @method transit.readCache\n * @return {com.cognitect.transit.caching.ReadCache} a Transit read cache\n */\n transit.readCache = caching.readCache;\n\n /**\n * Construct a Transit write cache\n * @method transit.writeCache\n * @return {com.cognitect.transit.caching.WriteCache} a Transit write cache\n */\n transit.writeCache = caching.writeCache;\n\n transit.UUIDfromString = types.UUIDfromString;\n transit.randomUUID = util.randomUUID;\n transit.stringableKeys = writer.stringableKeys;\n\n if(TRANSIT_BROWSER_TARGET) {\n goog.exportSymbol(\"transit.reader\", transit.reader);\n goog.exportSymbol(\"transit.writer\", transit.writer);\n goog.exportSymbol(\"transit.makeBuilder\", transit.makeBuilder);\n goog.exportSymbol(\"transit.makeWriteHandler\", transit.makeWriteHandler);\n goog.exportSymbol(\"transit.date\", types.date);\n goog.exportSymbol(\"transit.integer\", types.intValue);\n goog.exportSymbol(\"transit.isInteger\", types.isInteger);\n goog.exportSymbol(\"transit.uuid\", types.uuid);\n goog.exportSymbol(\"transit.isUUID\", types.isUUID);\n goog.exportSymbol(\"transit.bigInt\", types.bigInteger);\n goog.exportSymbol(\"transit.isBigInt\", types.isBigInteger);\n goog.exportSymbol(\"transit.bigDec\", types.bigDecimalValue);\n goog.exportSymbol(\"transit.isBigDec\", types.isBigDecimal);\n goog.exportSymbol(\"transit.keyword\", types.keyword);\n goog.exportSymbol(\"transit.isKeyword\", types.isKeyword);\n goog.exportSymbol(\"transit.symbol\", types.symbol);\n goog.exportSymbol(\"transit.isSymbol\", types.isSymbol);\n goog.exportSymbol(\"transit.binary\", types.binary);\n goog.exportSymbol(\"transit.isBinary\", types.isBinary);\n goog.exportSymbol(\"transit.uri\", types.uri);\n goog.exportSymbol(\"transit.isURI\", types.isURI);\n goog.exportSymbol(\"transit.map\", types.map);\n goog.exportSymbol(\"transit.isMap\", types.isMap);\n goog.exportSymbol(\"transit.set\", types.set);\n goog.exportSymbol(\"transit.isSet\", types.isSet);\n goog.exportSymbol(\"transit.list\", types.list);\n goog.exportSymbol(\"transit.isList\", types.isList);\n goog.exportSymbol(\"transit.quoted\", types.quoted);\n goog.exportSymbol(\"transit.isQuoted\", types.isQuoted);\n goog.exportSymbol(\"transit.tagged\", types.taggedValue);\n goog.exportSymbol(\"transit.isTaggedValue\", types.isTaggedValue);\n goog.exportSymbol(\"transit.link\", types.link);\n goog.exportSymbol(\"transit.isLink\", types.isLink);\n goog.exportSymbol(\"transit.hash\", eq.hashCode);\n goog.exportSymbol(\"transit.hashMapLike\", eq.hashMapLike);\n goog.exportSymbol(\"transit.hashArrayLike\", eq.hashArrayLike);\n goog.exportSymbol(\"transit.equals\", eq.equals);\n goog.exportSymbol(\"transit.extendToEQ\", eq.extendToEQ);\n goog.exportSymbol(\"transit.mapToObject\", transit.mapToObject);\n goog.exportSymbol(\"transit.objectToMap\", transit.objectToMap);\n goog.exportSymbol(\"transit.decoder\", decoder.decoder);\n goog.exportSymbol(\"transit.UUIDfromString\", types.UUIDfromString);\n goog.exportSymbol(\"transit.randomUUID\", util.randomUUID);\n goog.exportSymbol(\"transit.stringableKeys\", writer.stringableKeys);\n goog.exportSymbol(\"transit.readCache\", caching.readCache);\n goog.exportSymbol(\"transit.writeCache\", caching.writeCache);\n }\n\n if(TRANSIT_NODE_TARGET) {\n module.exports = {\n reader: transit.reader,\n writer: transit.writer,\n makeBuilder: transit.makeBuilder,\n makeWriteHandler: transit.makeWriteHandler,\n date: types.date,\n integer: types.intValue,\n isInteger: types.isInteger,\n uuid: types.uuid,\n isUUID: types.isUUID,\n bigInt: types.bigInteger,\n isBigInt: types.isBigInteger,\n bigDec: types.bigDecimalValue,\n isBigDec: types.isBigDecimal,\n keyword: types.keyword,\n isKeyword: types.isKeyword,\n symbol: types.symbol,\n isSymbol: types.isSymbol,\n binary: types.binary,\n isBinary: types.isBinary,\n uri: types.uri,\n isURI: types.isURI,\n map: types.map,\n isMap: types.isMap,\n set: types.set,\n isSet: types.isSet,\n list: types.list,\n isList: types.isList,\n quoted: types.quoted,\n isQuoted: types.isQuoted,\n tagged: types.taggedValue,\n isTaggedValue: types.isTaggedValue,\n link: types.link,\n isLink: types.isLink,\n hash: eq.hashCode,\n hashArrayLike: eq.hashArrayLike,\n hashMapLike: eq.hashMapLike,\n equals: eq.equals,\n extendToEQ: eq.extendToEQ,\n mapToObject: transit.mapToObject,\n objectToMap: transit.objectToMap,\n decoder: decoder.decoder,\n UUIDfromString: types.UUIDfromString,\n randomUUID: util.randomUUID,\n stringableKeys: writer.stringableKeys,\n readCache: caching.readCache,\n writeCache: caching.writeCache\n };\n }\n});\n","~:compiled-at",1684858198127,"~:source-map-json","{\n\"version\":3,\n\"file\":\"com.cognitect.transit.js\",\n\"lineCount\":175,\n\"mappings\":\"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\",\n\"sources\":[\"com/cognitect/transit.js\"],\n\"sourcesContent\":[\"// Copyright 2014 Cognitect. All Rights Reserved.\\n//\\n// Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n// you may not use this file except in compliance with the License.\\n// You may obtain a copy of the License at\\n//\\n// http://www.apache.org/licenses/LICENSE-2.0\\n//\\n// Unless required by applicable law or agreed to in writing, software\\n// distributed under the License is distributed on an \\\"AS-IS\\\" BASIS,\\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n// See the License for the specific language governing permissions and\\n// limitations under the License.\\n\\n\\\"use strict\\\";\\n\\ngoog.provide(\\\"com.cognitect.transit\\\");\\ngoog.require(\\\"com.cognitect.transit.util\\\");\\ngoog.require(\\\"com.cognitect.transit.impl.reader\\\");\\ngoog.require(\\\"com.cognitect.transit.impl.writer\\\");\\ngoog.require(\\\"com.cognitect.transit.types\\\");\\ngoog.require(\\\"com.cognitect.transit.eq\\\");\\ngoog.require(\\\"com.cognitect.transit.impl.decoder\\\");\\ngoog.require(\\\"com.cognitect.transit.caching\\\");\\n\\n/** @define {boolean} */\\nvar TRANSIT_DEV = true;\\n\\n/** @define {boolean} */\\nvar TRANSIT_NODE_TARGET = false;\\n\\n/** @define {boolean} */\\nvar TRANSIT_BROWSER_TARGET = false;\\n\\n/** @define {boolean} */\\nvar TRANSIT_BROWSER_AMD_TARGET = false;\\n\\ngoog.scope(function() {\\n\\n /**\\n * @class transit\\n */\\n var transit = com.cognitect.transit;\\n\\n var util = com.cognitect.transit.util,\\n reader = com.cognitect.transit.impl.reader,\\n writer = com.cognitect.transit.impl.writer,\\n decoder = com.cognitect.transit.impl.decoder,\\n types = com.cognitect.transit.types,\\n eq = com.cognitect.transit.eq,\\n caching = com.cognitect.transit.caching;\\n\\n /**\\n * @typedef {Map|com.cognitect.transit.types.TransitArrayMap|com.cognitect.transit.types.TransitMap}\\n */\\n transit.MapLike;\\n\\n /**\\n * @typedef {Set|com.cognitect.transit.types.TransitSet}\\n */\\n transit.SetLike;\\n\\n /**\\n * Create a transit reader instance.\\n * @method transit.reader\\n * @param {string=} type\\n * type of reader to construct. Default to \\\"json\\\". For verbose mode\\n * supply \\\"json-verbose\\\".\\n * @param {Object=} opts\\n * reader options. A JavaScript object to customize the writer Valid\\n * entries include \\\"defaultHandler\\\", and \\\"handler\\\". \\\"defaultHandler\\\"\\n * should be JavaScript function taking two arguments, the first is the\\n * tag, the second the value. \\\"handlers\\\" should be an object of tags to\\n * handle. The values are functions that will receive the value of matched\\n * tag. \\\"preferBuffers\\\" may be supplied to customize binary\\n * decoding. If available binary data will read as Node.js Buffers,\\n * If Buffer is not available or \\\"prefersBuffers\\\" is set to false\\n * data will be read as Uint8Array. If neither Buffer nor Uint8Array is\\n * available - defaults to tagged value that simply wraps the\\n * base64 encoded string.\\n * @return {com.cognitect.transit.impl.reader.Reader} A transit reader.\\n * @example\\n * var r = transit.reader(\\\"json\\\", {\\n * handlers: {\\n * \\\"point\\\": function(v) { return new Point(v[0], v[1]); }\\n * }\\n * });\\n */\\n transit.reader = function(type, opts) {\\n if(type === \\\"json\\\" || type === \\\"json-verbose\\\" || type == null) {\\n type = \\\"json\\\";\\n var unmarshaller = new reader.JSONUnmarshaller(opts);\\n return new reader.Reader(unmarshaller, opts);\\n } else {\\n throw new Error(\\\"Cannot create reader of type \\\" + type);\\n }\\n };\\n\\n /**\\n * Create a transit writer instance.\\n * @method transit.writer\\n * @param {string=} type\\n * type of writer to construct. Defaults to \\\"json\\\". For verbose mode\\n * supply \\\"json-verbose\\\".\\n * @param {Object=} opts\\n * writer options. A JavaScript object to customize the writer.\\n * \\\"handlers\\\" options, a transit.map of JavaScript constructor and\\n * transit writer handler instance entries. \\\"handlerForForeign\\\" option,\\n * for dealing with values from other JavaScript contexts. This function\\n * will be passed the unmatchable value and the installed handlers. The\\n * function should return the correct handler. Note if this function is\\n * provided, special handling for Objects will also be\\n * auto-installed to catch plain Objects from the foreign context.\\n * @return {com.cognitect.transit.impl.writer.Writer} A transit writer.\\n * @example\\n * var r = transit.writer(\\\"json\\\", {\\n * handlers: transit.map([\\n * Point, PointHandler\\n * ])\\n * });\\n */\\n transit.writer = function(type, opts) {\\n if(type === \\\"json\\\" || type === \\\"json-verbose\\\" || type == null) {\\n if(type === \\\"json-verbose\\\") {\\n if(opts == null) opts = {};\\n opts[\\\"verbose\\\"] = true;\\n }\\n var marshaller = new writer.JSONMarshaller(opts);\\n return new writer.Writer(marshaller, opts);\\n } else {\\n var err = new Error(\\\"Type must be \\\\\\\"json\\\\\\\"\\\");\\n err.data = {type: type};\\n throw err;\\n }\\n };\\n\\n /**\\n * Create a transit writer handler.\\n * @method transit.makeWriteHandler\\n * @param {Object} obj\\n * An object containing 3 functions, tag, rep and stringRep. \\\"tag\\\" should\\n * return a string representing the tag to be written on the wire. \\\"rep\\\"\\n * should return the representation on the wire. \\\"stringRep\\\" is should\\n * return the string representation of the value. Optional\\n * \\\"getVerboseHandler\\\" should return a handler for writing verbose output.\\n * @return {Object} A transit write handler.\\n * @example\\n * var PointHandler = transit.makeWriteHandler({\\n * tag: function(p) { return \\\"point\\\"; },\\n * rep: function(p) { return [p.x, p.y]; },\\n * stringRep: function(p) { return null; }\\n * });\\n */\\n transit.makeWriteHandler = function(obj) {\\n /** @constructor */\\n var Handler = function(){};\\n Handler.prototype.tag = obj[\\\"tag\\\"];\\n Handler.prototype.rep = obj[\\\"rep\\\"];\\n Handler.prototype.stringRep = obj[\\\"stringRep\\\"];\\n Handler.prototype.getVerboseHandler = obj[\\\"getVerboseHandler\\\"];\\n return new Handler();\\n };\\n\\n transit.makeBuilder = function(obj) {\\n /** @constructor */\\n var Builder = function(){};\\n Builder.prototype.init = obj[\\\"init\\\"];\\n Builder.prototype.add = obj[\\\"add\\\"];\\n Builder.prototype.finalize = obj[\\\"finalize\\\"];\\n Builder.prototype.fromArray = obj[\\\"fromArray\\\"];\\n return new Builder();\\n };\\n\\n /**\\n * Create a transit date.\\n * @method transit.date\\n * @param {number|string} x\\n * A number or string representing milliseconds since epoch.\\n * @return {Date} A JavaScript Date.\\n */\\n transit.date = types.date;\\n\\n /**\\n * Create an integer. If given a transit integer or a JavaScript\\n * number will simply return that value. Given a string will\\n * return a JavaScript number if the string represents an integer\\n * value in the 53bit range and a transit integer otherwise.\\n * @method transit.integer\\n * @param {number|string} s\\n * A value representing an integer.\\n * @return {number|goog.math.Long} A JavaScript number or transit integer.\\n */\\n transit.integer = types.intValue;\\n\\n /**\\n * Test if an object is a transit integer. Will return true if argument\\n * is a 64 bit integer or a JavaScript number that has an interpretation as\\n * an integer value, i.e. parseFloat(n) === parseInt(n)\\n * @method transit.isInteger\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {boolean} true if the value is a transit integer, false otherwise.\\n */\\n transit.isInteger = types.isInteger;\\n\\n /**\\n * Create transit UUID from a string\\n * @method transit.uuid\\n * @param {string} s\\n * A string.\\n * @return {com.cognitect.transit.types.UUID} A transit UUID.\\n */\\n transit.uuid = types.uuid;\\n\\n /**\\n * Test if an object is a transit UUID.\\n * @method transit.isUUID\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {boolean} true if the vlaue is a transit UUID instance, false otherwise.\\n */\\n transit.isUUID = types.isUUID;\\n\\n /**\\n * Create a transit big integer.\\n * @method transit.bigInt\\n * @param {string} s\\n * A string representing an arbitrary size integer value.\\n * @return {com.cognitect.transit.types.TaggedValue} A transit big integer.\\n */\\n transit.bigInt = types.bigInteger;\\n\\n /**\\n * Test if an object is a transit big integer.\\n * @method transit.isBigInt\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {boolean} true if x is a transit big integer, false otherwise.\\n */\\n transit.isBigInt = types.isBigInteger;\\n\\n /**\\n * Create a transit big decimal.\\n * @method transit.bigDec\\n * @param {string} s\\n * A string representing an arbitrary precisions decimal value.\\n * @return {com.cognitect.transit.types.TaggedValue} A transit big decimal.\\n */\\n transit.bigDec = types.bigDecimalValue;\\n\\n /**\\n * Test if an object is a transit big decimal.\\n * @method transit.isBigDec\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {boolean} true if x is a transit big decimal, false otherwise.\\n */\\n transit.isBigDec = types.isBigDecimal;\\n\\n /**\\n * Create transit keyword.\\n * @method transit.keyword\\n * @param {string} name A string.\\n * @return {com.cognitect.transit.types.Keyword} A transit keyword.\\n * @example\\n * transit.keyword(\\\"foo\\\");\\n */\\n transit.keyword = types.keyword;\\n\\n /**\\n * Test if an object is a transit keyword.\\n * @method transit.isKeyword\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {boolean} true if x is a transit keyword, false otherwise.\\n */\\n transit.isKeyword = types.isKeyword;\\n\\n /**\\n * Create a transit symbol.\\n * @method transit.symbol\\n * @param {string} name\\n * A string.\\n * @return {com.cognitect.transit.types.Symbol} A transit symbol instance.\\n * @example\\n * transit.symbol(\\\"foo\\\");\\n */\\n transit.symbol = types.symbol;\\n\\n /**\\n * Test if an object is a transit symbol\\n * @method transit.isSymbol\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {boolean} true if x is a transit symbol, false otherwise.\\n */\\n transit.isSymbol = types.isSymbol;\\n\\n /**\\n * Create transit binary blob.\\n * @method transit.binary\\n * @param {string} s\\n * A base64 encoded string.\\n * @param {*=} decoder\\n * A Transit compliant decoder\\n * @return {com.cognitect.transit.types.TaggedValue|Uint8Array} A transit binary blob instance.\\n */\\n transit.binary = types.binary;\\n\\n /**\\n * Test if an object is a transit binary blob.\\n * @method transit.isBinary\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {Boolean} true if x is a binary value, false otheriwse.\\n */\\n transit.isBinary = types.isBinary;\\n\\n /**\\n * Create a transit URI.\\n * @method transit.uri\\n * @param {string} s\\n * A string representing a valid URI.\\n * @return {com.cognitect.transit.types.TaggedValue} A transit URI.\\n */\\n transit.uri = types.uri;\\n\\n /**\\n * Test if an object is a transit URI.\\n * @method transit.isURI\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {Boolean} true if x is a transit symbol, false otherwise.\\n */\\n transit.isURI = types.isURI;\\n\\n /**\\n * Create a transit hash map. Transit maps satisfy the current version\\n * of the ECMAScript 6 Map specification.\\n * @method transit.map\\n * @param {Array=} xs\\n * A JavaScript array of alternating key value pairs.\\n * @return {com.cognitect.transit.MapLike} A transit map.\\n * @example\\n * transit.map([new Date(), \\\"foo\\\", [1,2], 3]);\\n */\\n transit.map = types.map;\\n\\n /**\\n * Test if an object is a transit map.\\n * @method transit.isMap\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {boolean} true if x is a transit map, false otherwise.\\n */\\n transit.isMap = types.isMap;\\n\\n /**\\n * Create a transit set. Transit sets satisfy the current version of the\\n * of the ECMAScript 6 Set specification.\\n * @method transit.set\\n * @param {Array=} xs\\n * A JavaScript array of values.\\n * @return {com.cognitect.transit.SetLike} A transit set.\\n * @example\\n * transit.set([\\\"foo\\\", [1,2], 3, {bar: \\\"baz\\\"}]);\\n */\\n transit.set = types.set;\\n\\n /**\\n * Test if an object is a transit set.\\n * @method transit.isSet\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {boolean} true if x is a transit set, false otherwise.\\n */\\n transit.isSet = types.isSet;\\n\\n /**\\n * Create a transit list.\\n * @method transit.list\\n * @param {Array} xs\\n * A JavaScript array.\\n * @return {com.cognitect.transit.types.TaggedValue} A transit list.\\n */\\n transit.list = types.list;\\n\\n /**\\n * Test if an object is a transit list.\\n * @method transit.isList\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {boolean} true if x is a transit list, false otherwise.\\n */\\n transit.isList = types.isList;\\n\\n /**\\n * Create a transit quoted value.\\n * @method transit.quoted\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {com.cognitect.transit.types.TaggedValue} A transit quoted value.\\n */\\n transit.quoted = types.quoted;\\n\\n /**\\n * Test if an object is a transit quoted value.\\n * @method transit.isQuoted\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {boolean} true if x is a transit value, false otherwise.\\n */\\n transit.isQuoted = types.isQuoted;\\n\\n /**\\n * Create a transit tagged value.\\n * @method transit.tagged\\n * @param {string} tag A tag.\\n * @param {*} value\\n * A JavaScrpt array, object, or string.\\n * @return {com.cognitect.transit.types.TaggedValue} A transit tagged value.\\n * @example\\n * transit.tagged(\\\"point\\\", new Point(1,2));\\n */\\n transit.tagged = types.taggedValue;\\n\\n /**\\n * Test if an object is a transit tagged value.\\n * @method transit.isTaggedValue\\n * @param {*} x\\n * Any JavaScript value.\\n * @return {boolean} true if x is a transit value, false otherwise.\\n */\\n transit.isTaggedValue = types.isTaggedValue;\\n\\n /**\\n * Create a transit link.\\n * @method transit.link\\n * @param {com.cognitect.transit.MapLike} m\\n * A transit map which must contain at a minimum the following keys:\\n * href, rel. It may optionally include name, render, and prompt. href\\n * must be a transit.uri, all other values are strings, and render must\\n * be either \\\"image\\\" or \\\"link\\\".\\n * @return {Object} A transit link.\\n */\\n transit.link = types.link;\\n\\n /**\\n * Test if an object is a transit link.\\n * @method transit.isLink\\n * @param {*} x\\n * Any JavaScript object.\\n * @return {boolean} true if x is a transit link, false otherwise.\\n */\\n transit.isLink = types.isLink;\\n\\n /**\\n * Compute the hashCode for any JavaScript object that has been\\n * extend to transit's equality and hashing protocol. JavaScript\\n * primitives and transit value are already extended to this protocol.\\n * Custom types may be extended to the protocol via transit.extenToEQ.\\n * @method transit.hash\\n * @param {*} x\\n * Any JavaScript object that has been extended to transit's equality\\n * and hashing protocol.\\n * @return {number} Returns JavaScript number - semantically a 32bit integer.\\n */\\n transit.hash = eq.hashCode;\\n\\n /**\\n * Compute the hashCode for JavaScript map-like types - either a JavaScript\\n * object or a JavaScript object that implements ES6 Map forEach.\\n * @method transit.hashMapLike\\n * @param {Object|com.cognitect.transit.MapLike} x\\n * A plain JavaScript Object or Object that implements ES6 Map forEach.\\n * @return {number} Returns JavaScript number - semantically a 32bit integer.\\n */\\n transit.hashMapLike = eq.hashMapLike;\\n\\n /**\\n * Compute the hashCode for JavaScript array-like types - either a JavaScript\\n * array or a JavaScript object that implements Array forEach.\\n * @method transit.hashArrayLike\\n * @param {Object} x\\n * A JavaScript Array or Object that implements Array forEach.\\n * @return {number} Returns JavaScript number - semantically a 32bit integer.\\n */\\n transit.hashArrayLike = eq.hashArrayLike;\\n\\n /**\\n * Test whether two JavaScript objects represent equal values. The\\n * objects to be tested should be extended to transit's equality\\n * and hasing protocol. JavaScript natives and transit value have\\n * already been extended to the protocol, including objects and\\n * arrays. Also transit maps and JavaScript objects may be\\n * compared for equality. Custom types may be extended via\\n * transit.extendToEQ.\\n * @param {*} x\\n * A JavaScript object\\n * @param {*} y\\n * A JavaScript object\\n * @return {Boolean} true if the x and y are equal, false otherwise.\\n */\\n transit.equals = eq.equals;\\n\\n /**\\n * Extend an object to hashing and equality required by\\n * transit maps and sets. Only required for custom\\n * types, JavaScript primitive types and transit\\n * types are handled.\\n * @method transit.extendToEQ\\n * @param {*} x\\n * A JavaScript object, will be mutated.\\n * @param {{hashCode: function(), equals: function(*,*):boolean}}\\n * A JavaScript object supplying `hashCode` and `equals`\\n * implementations\\n * @return {*} x\\n * @example\\n * transit.extendToEq(Point.protototype, {\\n * hashCode: function() {\\n * var bits = (this.x | 0) ^ ((this.y | 0) * 31);\\n * return bits ^ (bits >>> 32);\\n * },\\n * equals: function(other) {\\n * return this.x == other.x && this.y == other.y;\\n * }\\n * });\\n */\\n transit.extendToEQ = eq.extendToEQ;\\n\\n /**\\n * Convert a transit map instance into a JavaScript Object.\\n * Throws if the map has keys which have no string representation.\\n * @method transit.mapToObject\\n * @param {com.cognitect.transit.MapLike} m\\n * a transit map\\n * @return {Object} a JavaScript Object\\n */\\n transit.mapToObject = function(m) {\\n var ret = {};\\n m.forEach(function(v, k) {\\n if(typeof k !== \\\"string\\\") {\\n throw Error(\\\"Cannot convert map with non-string keys\\\");\\n } else {\\n ret[k] = v;\\n }\\n });\\n return ret;\\n };\\n\\n /**\\n * Convert a POJO into a transit map.\\n * @method transit.objectToMap\\n * @param {Object} obj\\n * a JavaScript Object\\n * @return {com.cognitect.transit.MapLike} a transit map\\n */\\n transit.objectToMap = function(obj) {\\n var ret = transit.map();\\n for(var p in obj) {\\n if(obj.hasOwnProperty(p)) {\\n ret.set(p, obj[p]);\\n }\\n }\\n return ret;\\n };\\n\\n /**\\n * Construct a Transit JSON decoder.\\n * @method transit.decoder\\n * @param {Object} opts\\n * options to the decoder. Can include map of\\n * handlers.\\n * @return {com.cognitect.transit.impl.decoder.Decoder} a Transit JSON decoder\\n * @example\\n * var decoder = transit.decoder();\\n * var x = decoder.decode(json, transit.readCache());\\n */\\n transit.decoder = decoder.decoder;\\n\\n /**\\n * Construct a Transit read cache\\n * @method transit.readCache\\n * @return {com.cognitect.transit.caching.ReadCache} a Transit read cache\\n */\\n transit.readCache = caching.readCache;\\n\\n /**\\n * Construct a Transit write cache\\n * @method transit.writeCache\\n * @return {com.cognitect.transit.caching.WriteCache} a Transit write cache\\n */\\n transit.writeCache = caching.writeCache;\\n\\n transit.UUIDfromString = types.UUIDfromString;\\n transit.randomUUID = util.randomUUID;\\n transit.stringableKeys = writer.stringableKeys;\\n\\n if(TRANSIT_BROWSER_TARGET) {\\n goog.exportSymbol(\\\"transit.reader\\\", transit.reader);\\n goog.exportSymbol(\\\"transit.writer\\\", transit.writer);\\n goog.exportSymbol(\\\"transit.makeBuilder\\\", transit.makeBuilder);\\n goog.exportSymbol(\\\"transit.makeWriteHandler\\\", transit.makeWriteHandler);\\n goog.exportSymbol(\\\"transit.date\\\", types.date);\\n goog.exportSymbol(\\\"transit.integer\\\", types.intValue);\\n goog.exportSymbol(\\\"transit.isInteger\\\", types.isInteger);\\n goog.exportSymbol(\\\"transit.uuid\\\", types.uuid);\\n goog.exportSymbol(\\\"transit.isUUID\\\", types.isUUID);\\n goog.exportSymbol(\\\"transit.bigInt\\\", types.bigInteger);\\n goog.exportSymbol(\\\"transit.isBigInt\\\", types.isBigInteger);\\n goog.exportSymbol(\\\"transit.bigDec\\\", types.bigDecimalValue);\\n goog.exportSymbol(\\\"transit.isBigDec\\\", types.isBigDecimal);\\n goog.exportSymbol(\\\"transit.keyword\\\", types.keyword);\\n goog.exportSymbol(\\\"transit.isKeyword\\\", types.isKeyword);\\n goog.exportSymbol(\\\"transit.symbol\\\", types.symbol);\\n goog.exportSymbol(\\\"transit.isSymbol\\\", types.isSymbol);\\n goog.exportSymbol(\\\"transit.binary\\\", types.binary);\\n goog.exportSymbol(\\\"transit.isBinary\\\", types.isBinary);\\n goog.exportSymbol(\\\"transit.uri\\\", types.uri);\\n goog.exportSymbol(\\\"transit.isURI\\\", types.isURI);\\n goog.exportSymbol(\\\"transit.map\\\", types.map);\\n goog.exportSymbol(\\\"transit.isMap\\\", types.isMap);\\n goog.exportSymbol(\\\"transit.set\\\", types.set);\\n goog.exportSymbol(\\\"transit.isSet\\\", types.isSet);\\n goog.exportSymbol(\\\"transit.list\\\", types.list);\\n goog.exportSymbol(\\\"transit.isList\\\", types.isList);\\n goog.exportSymbol(\\\"transit.quoted\\\", types.quoted);\\n goog.exportSymbol(\\\"transit.isQuoted\\\", types.isQuoted);\\n goog.exportSymbol(\\\"transit.tagged\\\", types.taggedValue);\\n goog.exportSymbol(\\\"transit.isTaggedValue\\\", types.isTaggedValue);\\n goog.exportSymbol(\\\"transit.link\\\", types.link);\\n goog.exportSymbol(\\\"transit.isLink\\\", types.isLink);\\n goog.exportSymbol(\\\"transit.hash\\\", eq.hashCode);\\n goog.exportSymbol(\\\"transit.hashMapLike\\\", eq.hashMapLike);\\n goog.exportSymbol(\\\"transit.hashArrayLike\\\", eq.hashArrayLike);\\n goog.exportSymbol(\\\"transit.equals\\\", eq.equals);\\n goog.exportSymbol(\\\"transit.extendToEQ\\\", eq.extendToEQ);\\n goog.exportSymbol(\\\"transit.mapToObject\\\", transit.mapToObject);\\n goog.exportSymbol(\\\"transit.objectToMap\\\", transit.objectToMap);\\n goog.exportSymbol(\\\"transit.decoder\\\", decoder.decoder);\\n goog.exportSymbol(\\\"transit.UUIDfromString\\\", types.UUIDfromString);\\n goog.exportSymbol(\\\"transit.randomUUID\\\", util.randomUUID);\\n goog.exportSymbol(\\\"transit.stringableKeys\\\", writer.stringableKeys);\\n goog.exportSymbol(\\\"transit.readCache\\\", caching.readCache);\\n goog.exportSymbol(\\\"transit.writeCache\\\", caching.writeCache);\\n }\\n\\n if(TRANSIT_NODE_TARGET) {\\n module.exports = {\\n reader: transit.reader,\\n writer: transit.writer,\\n makeBuilder: transit.makeBuilder,\\n makeWriteHandler: transit.makeWriteHandler,\\n date: types.date,\\n integer: types.intValue,\\n isInteger: types.isInteger,\\n uuid: types.uuid,\\n isUUID: types.isUUID,\\n bigInt: types.bigInteger,\\n isBigInt: types.isBigInteger,\\n bigDec: types.bigDecimalValue,\\n isBigDec: types.isBigDecimal,\\n keyword: types.keyword,\\n isKeyword: types.isKeyword,\\n symbol: types.symbol,\\n isSymbol: types.isSymbol,\\n binary: types.binary,\\n isBinary: types.isBinary,\\n uri: types.uri,\\n isURI: types.isURI,\\n map: types.map,\\n isMap: types.isMap,\\n set: types.set,\\n isSet: types.isSet,\\n list: types.list,\\n isList: types.isList,\\n quoted: types.quoted,\\n isQuoted: types.isQuoted,\\n tagged: types.taggedValue,\\n isTaggedValue: types.isTaggedValue,\\n link: types.link,\\n isLink: types.isLink,\\n hash: eq.hashCode,\\n hashArrayLike: eq.hashArrayLike,\\n hashMapLike: eq.hashMapLike,\\n equals: eq.equals,\\n extendToEQ: eq.extendToEQ,\\n mapToObject: transit.mapToObject,\\n objectToMap: transit.objectToMap,\\n decoder: decoder.decoder,\\n UUIDfromString: types.UUIDfromString,\\n randomUUID: util.randomUUID,\\n stringableKeys: writer.stringableKeys,\\n readCache: caching.readCache,\\n writeCache: caching.writeCache\\n };\\n }\\n});\\n\"],\n\"names\":[\"goog\",\"provide\",\"require\",\"TRANSIT_DEV\",\"TRANSIT_NODE_TARGET\",\"TRANSIT_BROWSER_TARGET\",\"TRANSIT_BROWSER_AMD_TARGET\",\"scope\",\"transit\",\"com\",\"cognitect\",\"util\",\"reader\",\"impl\",\"writer\",\"decoder\",\"types\",\"eq\",\"caching\",\"MapLike\",\"SetLike\",\"transit.reader\",\"type\",\"opts\",\"unmarshaller\",\"JSONUnmarshaller\",\"Reader\",\"Error\",\"transit.writer\",\"marshaller\",\"JSONMarshaller\",\"Writer\",\"err\",\"data\",\"makeWriteHandler\",\"transit.makeWriteHandler\",\"obj\",\"Handler\",\"prototype\",\"tag\",\"rep\",\"stringRep\",\"getVerboseHandler\",\"makeBuilder\",\"transit.makeBuilder\",\"Builder\",\"init\",\"add\",\"finalize\",\"fromArray\",\"date\",\"integer\",\"intValue\",\"isInteger\",\"uuid\",\"isUUID\",\"bigInt\",\"bigInteger\",\"isBigInt\",\"isBigInteger\",\"bigDec\",\"bigDecimalValue\",\"isBigDec\",\"isBigDecimal\",\"keyword\",\"isKeyword\",\"symbol\",\"isSymbol\",\"binary\",\"isBinary\",\"uri\",\"isURI\",\"map\",\"isMap\",\"set\",\"isSet\",\"list\",\"isList\",\"quoted\",\"isQuoted\",\"tagged\",\"taggedValue\",\"isTaggedValue\",\"link\",\"isLink\",\"hash\",\"hashCode\",\"hashMapLike\",\"hashArrayLike\",\"equals\",\"extendToEQ\",\"mapToObject\",\"transit.mapToObject\",\"m\",\"ret\",\"forEach\",\"v\",\"k\",\"objectToMap\",\"transit.objectToMap\",\"p\",\"hasOwnProperty\",\"readCache\",\"writeCache\",\"UUIDfromString\",\"randomUUID\",\"stringableKeys\",\"exportSymbol\",\"module\",\"exports\"]\n}\n"]