{"version":3,"file":"utils.cjs","sources":["../../../../../../node_modules/borsh/lib/esm/utils.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport { integers } from './types.js';\nexport function isArrayLike(value) {\n    // source: https://stackoverflow.com/questions/24048547/checking-if-an-object-is-array-like\n    return (Array.isArray(value) ||\n        (!!value &&\n            typeof value === 'object' &&\n            'length' in value &&\n            typeof (value.length) === 'number' &&\n            (value.length === 0 ||\n                (value.length > 0 &&\n                    (value.length - 1) in value))));\n}\nexport function expect_type(value, type, fieldPath) {\n    if (typeof (value) !== type) {\n        throw new Error(\"Expected \".concat(type, \" not \").concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n    }\n}\nexport function expect_bigint(value, fieldPath) {\n    var basicType = ['number', 'string', 'bigint', 'boolean'].includes(typeof (value));\n    var strObject = typeof (value) === 'object' && value !== null && 'toString' in value;\n    if (!basicType && !strObject) {\n        throw new Error(\"Expected bigint, number, boolean or string not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n    }\n}\nexport function expect_same_size(length, expected, fieldPath) {\n    if (length !== expected) {\n        throw new Error(\"Array length \".concat(length, \" does not match schema length \").concat(expected, \" at \").concat(fieldPath.join('.')));\n    }\n}\nexport function expect_enum(value, fieldPath) {\n    if (typeof (value) !== 'object' || value === null) {\n        throw new Error(\"Expected object not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n    }\n}\n// Validate Schema\nvar VALID_STRING_TYPES = integers.concat(['bool', 'string']);\nvar VALID_OBJECT_KEYS = ['option', 'enum', 'array', 'set', 'map', 'struct'];\nvar ErrorSchema = /** @class */ (function (_super) {\n    __extends(ErrorSchema, _super);\n    function ErrorSchema(schema, expected) {\n        var message = \"Invalid schema: \".concat(JSON.stringify(schema), \" expected \").concat(expected);\n        return _super.call(this, message) || this;\n    }\n    return ErrorSchema;\n}(Error));\nexport { ErrorSchema };\nexport function validate_schema(schema) {\n    if (typeof (schema) === 'string' && VALID_STRING_TYPES.includes(schema)) {\n        return;\n    }\n    if (schema && typeof (schema) === 'object') {\n        var keys = Object.keys(schema);\n        if (keys.length === 1 && VALID_OBJECT_KEYS.includes(keys[0])) {\n            var key = keys[0];\n            if (key === 'option')\n                return validate_schema(schema[key]);\n            if (key === 'enum')\n                return validate_enum_schema(schema[key]);\n            if (key === 'array')\n                return validate_array_schema(schema[key]);\n            if (key === 'set')\n                return validate_schema(schema[key]);\n            if (key === 'map')\n                return validate_map_schema(schema[key]);\n            if (key === 'struct')\n                return validate_struct_schema(schema[key]);\n        }\n    }\n    throw new ErrorSchema(schema, VALID_OBJECT_KEYS.join(', ') + ' or ' + VALID_STRING_TYPES.join(', '));\n}\nfunction validate_enum_schema(schema) {\n    if (!Array.isArray(schema))\n        throw new ErrorSchema(schema, 'Array');\n    for (var _i = 0, schema_1 = schema; _i < schema_1.length; _i++) {\n        var sch = schema_1[_i];\n        if (typeof sch !== 'object' || !('struct' in sch)) {\n            throw new Error('Missing \"struct\" key in enum schema');\n        }\n        if (typeof sch.struct !== 'object' || Object.keys(sch.struct).length !== 1) {\n            throw new Error('The \"struct\" in each enum must have a single key');\n        }\n        validate_schema({ struct: sch.struct });\n    }\n}\nfunction validate_array_schema(schema) {\n    if (typeof schema !== 'object')\n        throw new ErrorSchema(schema, '{ type, len? }');\n    if (schema.len && typeof schema.len !== 'number') {\n        throw new Error(\"Invalid schema: \".concat(schema));\n    }\n    if ('type' in schema)\n        return validate_schema(schema.type);\n    throw new ErrorSchema(schema, '{ type, len? }');\n}\nfunction validate_map_schema(schema) {\n    if (typeof schema === 'object' && 'key' in schema && 'value' in schema) {\n        validate_schema(schema.key);\n        validate_schema(schema.value);\n    }\n    else {\n        throw new ErrorSchema(schema, '{ key, value }');\n    }\n}\nfunction validate_struct_schema(schema) {\n    if (typeof schema !== 'object')\n        throw new ErrorSchema(schema, 'object');\n    for (var key in schema) {\n        validate_schema(schema[key]);\n    }\n}\n"],"names":["extendStatics","__extends","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","TypeError","String","__","this","constructor","create","VALID_STRING_TYPES","integers","concat","VALID_OBJECT_KEYS","ErrorSchema","_super","schema","expected","message","JSON","stringify","Error","validate_schema","includes","keys","length","key","isArray","_i","schema_1","sch","struct","validate_enum_schema","len","type","validate_array_schema","value","validate_map_schema","validate_struct_schema","join","fieldPath"],"mappings":"iBACQA,2BADJC,GACID,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBI,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,GAAK,EAC9FR,EAAcE,EAAGC,EAC3B,EACM,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIS,UAAU,uBAAyBC,OAAOV,GAAK,iCAE7D,SAASW,IAAOC,KAAKC,YAAcd,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOa,OAAOd,IAAMW,EAAGL,UAAYN,EAAEM,UAAW,IAAIK,EAClF,GAqCL,IAAII,EAAqBC,EAAAA,SAASC,OAAO,CAAC,OAAQ,WAC9CC,EAAoB,CAAC,SAAU,OAAQ,QAAS,MAAO,MAAO,UAC9DC,EAA6B,SAAUC,GAEvC,SAASD,EAAYE,EAAQC,GACzB,IAAIC,EAAU,mBAAmBN,OAAOO,KAAKC,UAAUJ,GAAS,cAAcJ,OAAOK,GACrF,OAAOF,EAAOZ,KAAKI,KAAMW,IAAYX,IACzC,CACA,OALAd,EAAUqB,EAAaC,GAKhBD,CACX,CAPiC,CAO/BO,OAEK,SAASC,EAAgBN,GAC5B,GAAwB,iBAAZA,IAAwBN,EAAmBa,SAASP,GAAhE,CAGA,GAAIA,GAA8B,iBAAZA,EAAsB,CACxC,IAAIQ,EAAO5B,OAAO4B,KAAKR,GACvB,GAAoB,IAAhBQ,EAAKC,QAAgBZ,EAAkBU,SAASC,EAAK,IAAK,CAC1D,IAAIE,EAAMF,EAAK,GACf,GAAY,WAARE,EACA,OAAOJ,EAAgBN,EAAOU,IAClC,GAAY,SAARA,EACA,OAahB,SAA8BV,GAC1B,IAAKjB,MAAM4B,QAAQX,GACf,MAAM,IAAIF,EAAYE,EAAQ,SAClC,IAAK,IAAIY,EAAK,EAAGC,EAAWb,EAAQY,EAAKC,EAASJ,OAAQG,IAAM,CAC5D,IAAIE,EAAMD,EAASD,GACnB,GAAmB,iBAARE,KAAsB,WAAYA,GACzC,MAAM,IAAIT,MAAM,uCAEpB,GAA0B,iBAAfS,EAAIC,QAA0D,IAAnCnC,OAAO4B,KAAKM,EAAIC,QAAQN,OAC1D,MAAM,IAAIJ,MAAM,oDAEpBC,EAAgB,CAAES,OAAQD,EAAIC,QAClC,CACJ,CA1BuBC,CAAqBhB,EAAOU,IACvC,GAAY,UAARA,EACA,OAyBhB,SAA+BV,GAC3B,GAAsB,iBAAXA,EACP,MAAM,IAAIF,EAAYE,EAAQ,kBAClC,GAAIA,EAAOiB,KAA6B,iBAAfjB,EAAOiB,IAC5B,MAAM,IAAIZ,MAAM,mBAAmBT,OAAOI,IAE9C,GAAI,SAAUA,EACV,OAAOM,EAAgBN,EAAOkB,MAClC,MAAM,IAAIpB,EAAYE,EAAQ,iBAClC,CAlCuBmB,CAAsBnB,EAAOU,IACxC,GAAY,QAARA,EACA,OAAOJ,EAAgBN,EAAOU,IAClC,GAAY,QAARA,EACA,OA+BhB,SAA6BV,GACzB,GAAsB,iBAAXA,KAAuB,QAASA,MAAU,UAAWA,GAK5D,MAAM,IAAIF,EAAYE,EAAQ,kBAJ9BM,EAAgBN,EAAOU,KACvBJ,EAAgBN,EAAOoB,MAK/B,CAvCuBC,CAAoBrB,EAAOU,IACtC,GAAY,WAARA,EACA,OAsChB,SAAgCV,GAC5B,GAAsB,iBAAXA,EACP,MAAM,IAAIF,EAAYE,EAAQ,UAClC,IAAK,IAAIU,KAAOV,EACZM,EAAgBN,EAAOU,GAE/B,CA5CuBY,CAAuBtB,EAAOU,GAC7C,CACJ,CACA,MAAM,IAAIZ,EAAYE,EAAQH,EAAkB0B,KAAK,MAAQ,OAAS7B,EAAmB6B,KAAK,MAnB9F,CAoBJ,6CApDO,SAAuBH,EAAOI,GAGjC,IAFgB,CAAC,SAAU,SAAU,SAAU,WAAWjB,gBAAiBa,MACxC,iBAAXA,GAAiC,OAAVA,GAAkB,aAAcA,GAE3E,MAAM,IAAIf,MAAM,kDAAkDT,cAAewB,EAAQ,KAAKxB,OAAOwB,EAAO,SAASxB,OAAO4B,EAAUD,KAAK,MAEnJ,sBAMO,SAAqBH,EAAOI,GAC/B,GAAuB,iBAAXJ,GAAiC,OAAVA,EAC/B,MAAM,IAAIf,MAAM,uBAAuBT,cAAewB,EAAQ,KAAKxB,OAAOwB,EAAO,SAASxB,OAAO4B,EAAUD,KAAK,MAExH,2BATO,SAA0Bd,EAAQR,EAAUuB,GAC/C,GAAIf,IAAWR,EACX,MAAM,IAAII,MAAM,gBAAgBT,OAAOa,EAAQ,kCAAkCb,OAAOK,EAAU,QAAQL,OAAO4B,EAAUD,KAAK,MAExI,sBAhBO,SAAqBH,EAAOF,EAAMM,GACrC,UAAYJ,IAAWF,EACnB,MAAM,IAAIb,MAAM,YAAYT,OAAOsB,EAAM,SAAStB,cAAewB,EAAQ,KAAKxB,OAAOwB,EAAO,SAASxB,OAAO4B,EAAUD,KAAK,MAEnI,sBAfO,SAAqBH,GAExB,OAAQrC,MAAM4B,QAAQS,MACfA,GACkB,iBAAVA,GACP,WAAYA,GACc,iBAAlBA,EAAMX,SACI,IAAjBW,EAAMX,QACFW,EAAMX,OAAS,GACXW,EAAMX,OAAS,KAAMW,EAC1C","x_google_ignoreList":[0]}