@langchain/core
Version:
Core LangChain.js abstractions and schemas
1 lines • 7.23 kB
Source Map (JSON)
{"version":3,"file":"helpers.cjs","names":["keys","str: string","path: string","obj: any","i","message: String","args: Object","message: string","name: JsonPatchErrorName","index?: number","operation?: any","tree?: any"],"sources":["../../../../src/utils/fast-json-patch/src/helpers.ts"],"sourcesContent":["// @ts-nocheck\n\n// Inlined because of ESM import issues\n\n/*!\n * https://github.com/Starcounter-Jack/JSON-Patch\n * (c) 2017-2022 Joachim Wester\n * MIT licensed\n */\n\nconst _hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function hasOwnProperty(obj, key) {\n return _hasOwnProperty.call(obj, key);\n}\nexport function _objectKeys(obj) {\n if (Array.isArray(obj)) {\n const keys = new Array(obj.length);\n for (let k = 0; k < keys.length; k++) {\n keys[k] = \"\" + k;\n }\n return keys;\n }\n if (Object.keys) {\n return Object.keys(obj);\n }\n let keys = [];\n for (let i in obj) {\n if (hasOwnProperty(obj, i)) {\n keys.push(i);\n }\n }\n return keys;\n}\n/**\n * Deeply clone the object.\n * https://jsperf.com/deep-copy-vs-json-stringify-json-parse/25 (recursiveDeepCopy)\n * @param {any} obj value to clone\n * @return {any} cloned obj\n */\nexport function _deepClone(obj) {\n switch (typeof obj) {\n case \"object\":\n return JSON.parse(JSON.stringify(obj)); //Faster than ES5 clone - http://jsperf.com/deep-cloning-of-objects/5\n case \"undefined\":\n return null; //this is how JSON.stringify behaves for array items\n default:\n return obj; //no need to clone primitives\n }\n}\n//3x faster than cached /^\\d+$/.test(str)\nexport function isInteger(str: string): boolean {\n let i = 0;\n const len = str.length;\n let charCode;\n while (i < len) {\n charCode = str.charCodeAt(i);\n if (charCode >= 48 && charCode <= 57) {\n i++;\n continue;\n }\n return false;\n }\n return true;\n}\n/**\n * Escapes a json pointer path\n * @param path The raw pointer\n * @return the Escaped path\n */\nexport function escapePathComponent(path: string): string {\n if (path.indexOf(\"/\") === -1 && path.indexOf(\"~\") === -1) return path;\n return path.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\n/**\n * Unescapes a json pointer path\n * @param path The escaped pointer\n * @return The unescaped path\n */\nexport function unescapePathComponent(path: string): string {\n return path.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\n\nexport function _getPathRecursive(root: Object, obj: Object): string {\n let found;\n for (let key in root) {\n if (hasOwnProperty(root, key)) {\n if (root[key] === obj) {\n return escapePathComponent(key) + \"/\";\n } else if (typeof root[key] === \"object\") {\n found = _getPathRecursive(root[key], obj);\n if (found != \"\") {\n return escapePathComponent(key) + \"/\" + found;\n }\n }\n }\n }\n return \"\";\n}\n\nexport function getPath(root: Object, obj: Object): string {\n if (root === obj) {\n return \"/\";\n }\n const path = _getPathRecursive(root, obj);\n if (path === \"\") {\n throw new Error(\"Object not found in root\");\n }\n return `/${path}`;\n}\n/**\n * Recursively checks whether an object has any undefined values inside.\n */\nexport function hasUndefined(obj: any): boolean {\n if (obj === undefined) {\n return true;\n }\n if (obj) {\n if (Array.isArray(obj)) {\n for (let i = 0, len = obj.length; i < len; i++) {\n if (hasUndefined(obj[i])) {\n return true;\n }\n }\n } else if (typeof obj === \"object\") {\n const objKeys = _objectKeys(obj);\n const objKeysLength = objKeys.length;\n for (var i = 0; i < objKeysLength; i++) {\n if (hasUndefined(obj[objKeys[i]])) {\n return true;\n }\n }\n }\n }\n return false;\n}\n\nexport type JsonPatchErrorName =\n | \"SEQUENCE_NOT_AN_ARRAY\"\n | \"OPERATION_NOT_AN_OBJECT\"\n | \"OPERATION_OP_INVALID\"\n | \"OPERATION_PATH_INVALID\"\n | \"OPERATION_FROM_REQUIRED\"\n | \"OPERATION_VALUE_REQUIRED\"\n | \"OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED\"\n | \"OPERATION_PATH_CANNOT_ADD\"\n | \"OPERATION_PATH_UNRESOLVABLE\"\n | \"OPERATION_FROM_UNRESOLVABLE\"\n | \"OPERATION_PATH_ILLEGAL_ARRAY_INDEX\"\n | \"OPERATION_VALUE_OUT_OF_BOUNDS\"\n | \"TEST_OPERATION_FAILED\";\n\nfunction patchErrorMessageFormatter(message: String, args: Object): string {\n const messageParts = [message];\n for (const key in args) {\n const value =\n typeof args[key] === \"object\"\n ? JSON.stringify(args[key], null, 2)\n : args[key]; // pretty print\n if (typeof value !== \"undefined\") {\n messageParts.push(`${key}: ${value}`);\n }\n }\n return messageParts.join(\"\\n\");\n}\nexport class PatchError extends Error {\n constructor(\n message: string,\n public name: JsonPatchErrorName,\n public index?: number,\n public operation?: any,\n public tree?: any\n ) {\n super(\n patchErrorMessageFormatter(message, { name, index, operation, tree })\n );\n Object.setPrototypeOf(this, new.target.prototype); // restore prototype chain, see https://stackoverflow.com/a/48342359\n this.message = patchErrorMessageFormatter(message, {\n name,\n index,\n operation,\n tree,\n });\n }\n}\n"],"mappings":";;;;;;;AAUA,MAAM,kBAAkB,OAAO,UAAU;AACzC,SAAgB,eAAe,KAAK,KAAK;AACvC,QAAO,gBAAgB,KAAK,KAAK,IAAI;AACtC;AACD,SAAgB,YAAY,KAAK;AAC/B,KAAI,MAAM,QAAQ,IAAI,EAAE;EACtB,MAAMA,SAAO,IAAI,MAAM,IAAI;AAC3B,OAAK,IAAI,IAAI,GAAG,IAAIA,OAAK,QAAQ,KAC/BA,OAAK,KAAK,KAAK;AAEjB,SAAOA;CACR;AACD,KAAI,OAAO,KACT,QAAO,OAAO,KAAK,IAAI;CAEzB,IAAI,OAAO,CAAE;AACb,MAAK,IAAI,KAAK,IACZ,KAAI,eAAe,KAAK,EAAE,EACxB,KAAK,KAAK,EAAE;AAGhB,QAAO;AACR;;;;;;;AAOD,SAAgB,WAAW,KAAK;AAC9B,SAAQ,OAAO,KAAf;EACE,KAAK,SACH,QAAO,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC;EACxC,KAAK,YACH,QAAO;EACT,QACE,QAAO;CACV;AACF;AAED,SAAgB,UAAUC,KAAsB;CAC9C,IAAI,IAAI;CACR,MAAM,MAAM,IAAI;CAChB,IAAI;AACJ,QAAO,IAAI,KAAK;EACd,WAAW,IAAI,WAAW,EAAE;AAC5B,MAAI,YAAY,MAAM,YAAY,IAAI;GACpC;AACA;EACD;AACD,SAAO;CACR;AACD,QAAO;AACR;;;;;;AAMD,SAAgB,oBAAoBC,MAAsB;AACxD,KAAI,KAAK,QAAQ,IAAI,KAAK,MAAM,KAAK,QAAQ,IAAI,KAAK,GAAI,QAAO;AACjE,QAAO,KAAK,QAAQ,MAAM,KAAK,CAAC,QAAQ,OAAO,KAAK;AACrD;;;;;;AAMD,SAAgB,sBAAsBA,MAAsB;AAC1D,QAAO,KAAK,QAAQ,OAAO,IAAI,CAAC,QAAQ,OAAO,IAAI;AACpD;;;;AAgCD,SAAgB,aAAaC,KAAmB;AAC9C,KAAI,QAAQ,OACV,QAAO;AAET,KAAI,KACF;MAAI,MAAM,QAAQ,IAAI,EACpB;QAAK,IAAIC,MAAI,GAAG,MAAM,IAAI,QAAQA,MAAI,KAAKA,MACzC,KAAI,aAAa,IAAIA,KAAG,CACtB,QAAO;EAEV,WACQ,OAAO,QAAQ,UAAU;GAClC,MAAM,UAAU,YAAY,IAAI;GAChC,MAAM,gBAAgB,QAAQ;AAC9B,QAAK,IAAI,IAAI,GAAG,IAAI,eAAe,IACjC,KAAI,aAAa,IAAI,QAAQ,IAAI,CAC/B,QAAO;EAGZ;;AAEH,QAAO;AACR;AAiBD,SAAS,2BAA2BC,SAAiBC,MAAsB;CACzE,MAAM,eAAe,CAAC,OAAQ;AAC9B,MAAK,MAAM,OAAO,MAAM;EACtB,MAAM,QACJ,OAAO,KAAK,SAAS,WACjB,KAAK,UAAU,KAAK,MAAM,MAAM,EAAE,GAClC,KAAK;AACX,MAAI,OAAO,UAAU,aACnB,aAAa,KAAK,GAAG,IAAI,EAAE,EAAE,OAAO,CAAC;CAExC;AACD,QAAO,aAAa,KAAK,KAAK;AAC/B;AACD,IAAa,aAAb,cAAgC,MAAM;CACpC,YACEC,SACOC,MACAC,OACAC,WACAC,MACP;EACA,MACE,2BAA2B,SAAS;GAAE;GAAM;GAAO;GAAW;EAAM,EAAC,CACtE;EAPM;EACA;EACA;EACA;EAKP,OAAO,eAAe,MAAM,IAAI,OAAO,UAAU;EACjD,KAAK,UAAU,2BAA2B,SAAS;GACjD;GACA;GACA;GACA;EACD,EAAC;CACH;AACF"}