untiktok-api 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- export declare const utils_script = "\nconst utils = {}\nutils.stripProxyFromErrors = (handler = {}) => {\n const newHandler = {}\n const traps = Object.getOwnPropertyNames(handler)\n traps.forEach(trap => {\n newHandler[trap] = function() {\n try { return handler[trap].apply(this, arguments || []) } catch (err) {\n if (!err || !err.stack || !err.stack.includes('at ')) { throw err }\n const stripWithBlacklist = stack => {\n const blacklist = ['at Reflect.' + trap + ' ', 'at Object.' + trap + ' ', 'at Object.newHandler.<computed> [as ' + trap + '] ']\n return err.stack.split('\\n').filter((line, index) => index !== 1).filter(line => !blacklist.some(bl => line.trim().startsWith(bl))).join('\\n')\n }\n const stripWithAnchor = stack => {\n const stackArr = stack.split('\\n')\n const anchor = 'at Object.newHandler.<computed> [as ' + trap + '] '\n const anchorIndex = stackArr.findIndex(line => line.trim().startsWith(anchor))\n if (anchorIndex === -1) return false\n stackArr.splice(1, anchorIndex)\n return stackArr.join('\\n')\n }\n err.stack = stripWithAnchor(err.stack) || stripWithBlacklist(err.stack)\n throw err\n }\n }\n })\n return newHandler\n}\nutils.stripErrorWithAnchor = (err, anchor) => {\n const stackArr = err.stack.split('\\n')\n const anchorIndex = stackArr.findIndex(line => line.trim().startsWith(anchor))\n if (anchorIndex === -1) return err\n stackArr.splice(1, anchorIndex)\n err.stack = stackArr.join('\\n')\n return err\n}\nutils.replaceProperty = (obj, propName, descriptorOverrides = {}) => {\n return Object.defineProperty(obj, propName, { ...(Object.getOwnPropertyDescriptor(obj, propName) || {}), ...descriptorOverrides })\n}\nutils.preloadCache = () => {\n if (utils.cache) return\n utils.cache = { Reflect: { get: Reflect.get.bind(Reflect), apply: Reflect.apply.bind(Reflect) }, nativeToStringStr: Function.toString + '' }\n}\nutils.makeNativeString = (name = '') => { utils.preloadCache(); return utils.cache.nativeToStringStr.replace('toString', name || '') }\nutils.patchToString = (obj, str = '') => {\n utils.preloadCache()\n const toStringProxy = new Proxy(Function.prototype.toString, {\n apply: function(target, ctx) {\n if (ctx === Function.prototype.toString) return utils.makeNativeString('toString')\n if (ctx === obj) return str || utils.makeNativeString(obj.name)\n const hasSameProto = Object.getPrototypeOf(Function.prototype.toString).isPrototypeOf(ctx.toString)\n if (!hasSameProto) return ctx.toString()\n return target.call(ctx)\n }\n })\n utils.replaceProperty(Function.prototype, 'toString', { value: toStringProxy })\n}\nutils.patchToStringNested = (obj = {}) => { return utils.execRecursively(obj, ['function'], utils.patchToString) }\nutils.redirectToString = (proxyObj, originalObj) => {\n utils.preloadCache()\n const toStringProxy = new Proxy(Function.prototype.toString, {\n apply: function(target, ctx) {\n if (ctx === Function.prototype.toString) return utils.makeNativeString('toString')\n if (ctx === proxyObj) {\n const fallback = () => originalObj && originalObj.name ? utils.makeNativeString(originalObj.name) : utils.makeNativeString(proxyObj.name)\n return originalObj + '' || fallback()\n }\n const hasSameProto = Object.getPrototypeOf(Function.prototype.toString).isPrototypeOf(ctx.toString)\n if (!hasSameProto) return ctx.toString()\n return target.call(ctx)\n }\n })\n utils.replaceProperty(Function.prototype, 'toString', { value: toStringProxy })\n}\nutils.replaceWithProxy = (obj, propName, handler) => {\n utils.preloadCache()\n const originalObj = obj[propName]\n const proxyObj = new Proxy(obj[propName], utils.stripProxyFromErrors(handler))\n utils.replaceProperty(obj, propName, { value: proxyObj })\n utils.redirectToString(proxyObj, originalObj)\n return true\n}\nutils.mockWithProxy = (obj, propName, pseudoTarget, handler) => {\n utils.preloadCache()\n const proxyObj = new Proxy(pseudoTarget, utils.stripProxyFromErrors(handler))\n utils.replaceProperty(obj, propName, { value: proxyObj })\n utils.patchToString(proxyObj)\n return true\n}\nutils.createProxy = (pseudoTarget, handler) => {\n utils.preloadCache()\n const proxyObj = new Proxy(pseudoTarget, utils.stripProxyFromErrors(handler))\n utils.patchToString(proxyObj)\n return proxyObj\n}\nutils.splitObjPath = objPath => ({\n objName: objPath.split('.').slice(0, -1).join('.'),\n propName: objPath.split('.').slice(-1)[0]\n})\nutils.replaceObjPathWithProxy = (objPath, handler) => {\n const { objName, propName } = utils.splitObjPath(objPath)\n const obj = eval(objName)\n return utils.replaceWithProxy(obj, propName, handler)\n}\nutils.execRecursively = (obj = {}, typeFilter = [], fn) => {\n function recurse(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) continue\n if (obj[key] && typeof obj[key] === 'object') recurse(obj[key])\n else if (obj[key] && typeFilter.includes(typeof obj[key])) fn.call(this, obj[key])\n }\n }\n recurse(obj)\n return obj\n}\n";
1
+ export declare const utils_script = "\nconst utils = {}\nutils.stripProxyFromErrors = (handler = {}) => {\n const newHandler = {}\n const traps = Object.getOwnPropertyNames(handler)\n traps.forEach(trap => {\n newHandler[trap] = function() {\n try { return handler[trap].apply(this, arguments || []) } catch (err) {\n if (!err || !err.stack || !err.stack.includes('at ')) { throw err }\n const stripWithBlacklist = stack => {\n const blacklist = ['at Reflect.' + trap + ' ', 'at Object.' + trap + ' ', 'at Object.newHandler.<computed> [as ' + trap + '] ']\n return err.stack.split('\\n').filter((line, index) => index !== 1).filter(line => !blacklist.some(bl => line.trim().startsWith(bl))).join('\\n')\n }\n const stripWithAnchor = stack => {\n const stackArr = stack.split('\\n')\n const anchor = 'at Object.newHandler.<computed> [as ' + trap + '] '\n const anchorIndex = stackArr.findIndex(line => line.trim().startsWith(anchor))\n if (anchorIndex === -1) return false\n stackArr.splice(1, anchorIndex)\n return stackArr.join('\\n')\n }\n err.stack = stripWithAnchor(err.stack) || stripWithBlacklist(err.stack)\n throw err\n }\n }\n })\n return newHandler\n}\nutils.stripErrorWithAnchor = (err, anchor) => {\n const stackArr = err.stack.split('\\n')\n const anchorIndex = stackArr.findIndex(line => line.trim().startsWith(anchor))\n if (anchorIndex === -1) return err\n stackArr.splice(1, anchorIndex)\n err.stack = stackArr.join('\\n')\n return err\n}\nutils.replaceProperty = (obj, propName, descriptorOverrides = {}) => {\n return Object.defineProperty(obj, propName, { ...(Object.getOwnPropertyDescriptor(obj, propName) || {}), ...descriptorOverrides })\n}\nutils.preloadCache = () => {\n if (utils.cache) return\n utils.cache = { Reflect: { get: Reflect.get.bind(Reflect), apply: Reflect.apply.bind(Reflect) }, nativeToStringStr: Function.toString + '' }\n}\nutils.makeNativeString = (name = '') => { utils.preloadCache(); return utils.cache.nativeToStringStr.replace('toString', name || '') }\nutils.patchToString = (obj, str = '') => {\n utils.preloadCache()\n const toStringProxy = new Proxy(Function.prototype.toString, {\n apply: function(target, ctx) {\n if (ctx === Function.prototype.toString) return utils.makeNativeString('toString')\n if (ctx === obj) return str || utils.makeNativeString(obj.name)\n const hasSameProto = Object.getPrototypeOf(Function.prototype.toString).isPrototypeOf(ctx.toString)\n if (!hasSameProto) return ctx.toString()\n return target.call(ctx)\n }\n })\n utils.replaceProperty(Function.prototype, 'toString', { value: toStringProxy })\n}\nutils.patchToStringNested = (obj = {}) => { return utils.execRecursively(obj, ['function'], utils.patchToString) }\nutils.redirectToString = (proxyObj, originalObj) => {\n utils.preloadCache()\n const toStringProxy = new Proxy(Function.prototype.toString, {\n apply: function(target, ctx) {\n if (ctx === Function.prototype.toString) return utils.makeNativeString('toString')\n if (ctx === proxyObj) {\n const fallback = () => originalObj && originalObj.name ? utils.makeNativeString(originalObj.name) : utils.makeNativeString(proxyObj.name)\n return originalObj + '' || fallback()\n }\n const hasSameProto = Object.getPrototypeOf(Function.prototype.toString).isPrototypeOf(ctx.toString)\n if (!hasSameProto) return ctx.toString()\n return target.call(ctx)\n }\n })\n utils.replaceProperty(Function.prototype, 'toString', { value: toStringProxy })\n}\nutils.replaceWithProxy = (obj, propName, handler) => {\n utils.preloadCache()\n const originalObj = obj[propName]\n const proxyObj = new Proxy(obj[propName], utils.stripProxyFromErrors(handler))\n utils.replaceProperty(obj, propName, { value: proxyObj })\n utils.redirectToString(proxyObj, originalObj)\n return true\n}\nutils.mockWithProxy = (obj, propName, pseudoTarget, handler) => {\n utils.preloadCache()\n const proxyObj = new Proxy(pseudoTarget, utils.stripProxyFromErrors(handler))\n utils.replaceProperty(obj, propName, { value: proxyObj })\n utils.patchToString(proxyObj)\n return true\n}\nutils.createProxy = (pseudoTarget, handler) => {\n utils.preloadCache()\n const proxyObj = new Proxy(pseudoTarget, utils.stripProxyFromErrors(handler))\n utils.patchToString(proxyObj)\n return proxyObj\n}\nutils.splitObjPath = objPath => ({\n objName: objPath.split('.').slice(0, -1).join('.'),\n propName: objPath.split('.').slice(-1)[0]\n})\nutils.replaceObjPathWithProxy = (objPath, handler) => {\n const { objName, propName } = utils.splitObjPath(objPath)\n const obj = objName.split('.').reduce((o, i) => o ? o[i] : undefined, window)\n return utils.replaceWithProxy(obj, propName, handler)\n}\nutils.execRecursively = (obj = {}, typeFilter = [], fn) => {\n function recurse(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) continue\n if (obj[key] && typeof obj[key] === 'object') recurse(obj[key])\n else if (obj[key] && typeFilter.includes(typeof obj[key])) fn.call(this, obj[key])\n }\n }\n recurse(obj)\n return obj\n}\n";
@@ -102,7 +102,7 @@ utils.splitObjPath = objPath => ({
102
102
  })
103
103
  utils.replaceObjPathWithProxy = (objPath, handler) => {
104
104
  const { objName, propName } = utils.splitObjPath(objPath)
105
- const obj = eval(objName)
105
+ const obj = objName.split('.').reduce((o, i) => o ? o[i] : undefined, window)
106
106
  return utils.replaceWithProxy(obj, propName, handler)
107
107
  }
108
108
  utils.execRecursively = (obj = {}, typeFilter = [], fn) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "untiktok-api",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "Unofficial TikTok API wrapper in TypeScript (ported from Python)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",