{"version":3,"file":"helpers.cjs","sources":["@gensx/core/../../../../src/utils/fast-json-patch/helpers.ts"],"sourcesContent":["/* eslint-disable */\n// @ts-nocheck\n// We have a copy of fast-json-patch here because there are es related issues in certain build environments.\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"],"names":[],"mappings":"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"}