{"version":3,"sources":["../../node_modules/.pnpm/tsup@8.3.6_@swc+core@1.10.15_tsx@4.19.2_typescript@5.7.3_yaml@2.7.0/node_modules/tsup/assets/cjs_shims.js","../../src/serializer/serializer.ts"],"names":["getImportMetaUrl","document","URL","__filename","href","currentScript","src","baseURI","importMetaUrl","createRequire","serializeError","error","serialized","name","message","stack","key","Object","keys","deserializeError","errorObject","Error","Serializer","factories","Map","registerSerializable","ref","processors","aliases","register","toPlain","value","createSnapshot","fromPlain","fromSnapshot","createEmpty","create","prototype","updateInstance","instance","update","loadSnapshot","R","pickBy","isDefined","deregister","className","extractClassName","delete","oldFactory","get","newFactory","SerializerError","entries","set","forEach","alias","aliasTarget","getFactory","clsName","factory","findFactory","targetClass","hasFactory","isFunction","Function","isSelfRef","excluded","Set","proto","traversePrototypeChain","has","serialize","rawData","output","_createOutputBuilder","getRefId","id","seen","SafeWeakMap","assertValidSnapshot","allowedTypes","snapshot","Array","from","values","join","toSerializable","rawValue","Serializable","Class","constructor","isSerializationRequired","SerializerSelfRefIdentifier","result","__serializer","__class","__ref","toString","__value","node","traverseWithUpdate","newValue","root","__version","Version","__root","traverseObject","path","content","toJSON","deserializeWithMeta","raw","extraClasses","instances","toDeserialize","contentRaw","isSerializerNode","String","SerializerRefIdentifier","data","RefPlaceholder","traverseNested","placeholder","final","JSON","parse","isRootNode","_obj","deserialize","response","_container","setProp","SafeWeakSet","stringify","updated","add","Task","task","resolvedValue","state","TaskState","RESOLVED","resolve","REJECTED","reject","SlidingTaskMap","config","windowSize","ttl","filter","_","newInstance","assign","slice","push","Number","Boolean","BigInt","Symbol","description","Date","toISOString","CacheFn","fn","options","isNative","getProp","global","isConstructor","obj","binds","getFunctionBinds","map","bound","toParsableForm","match","a","b","c","indexOf","p","p2","halveString","replace","trim","includes","arrowStart","bracketStart","fnPrefix","fnContent","nonReservedSymbols","split","x","every","parameters","startsWith","defineProperty","getOwnPropertyDescriptor","getPrototypeOf","hasMinLength","toBoundedFunction","RegExp","source","flags","WeakSet","WeakMap","WeakRef","primitiveToSerializableClass","undefined","ZodType","toJsonSchema","Buffer","AbortSignal","aborted","reason","controller","createAbortController","abort","signal","AbortController"],"mappings":"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","file":"serializer.cjs","sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n  typeof document === 'undefined'\n    ? new URL(`file:${__filename}`).href\n    : (document.currentScript && document.currentScript.src) ||\n      new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","/**\n * Copyright 2025 IBM Corp.\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\nimport * as R from \"remeda\";\nimport { Serializable, SerializableClass } from \"@/internals/serializable.js\";\nimport { AnyConstructable, ClassConstructor, NamedFunction } from \"@/internals/types.js\";\nimport { SafeWeakMap, SafeWeakSet } from \"@/internals/helpers/weakRef.js\";\nimport { Version } from \"@/version.js\";\nimport {\n  extractClassName,\n  getFunctionBinds,\n  isRootNode,\n  isSerializationRequired,\n  isSerializerNode,\n  primitiveToSerializableClass,\n  RefPlaceholder,\n  RootNode,\n  SerializerNode,\n  SerializerRefIdentifier,\n  SerializerSelfRefIdentifier,\n  toBoundedFunction,\n  traverseObject,\n  traverseWithUpdate,\n} from \"@/serializer/utils.js\";\nimport { SlidingTaskMap, Task, TaskState } from \"promise-based-task\";\nimport { getProp, setProp } from \"@/internals/helpers/object.js\";\nimport { halveString } from \"@/internals/helpers/string.js\";\nimport { traversePrototypeChain } from \"@/internals/helpers/prototype.js\";\nimport { CacheFn } from \"@/cache/decoratorCache.js\";\nimport { SerializerError } from \"@/serializer/error.js\";\nimport { ZodType } from \"zod\";\nimport { toJsonSchema } from \"@/internals/helpers/schema.js\";\nimport { createAbortController } from \"@/internals/helpers/cancellation.js\";\nimport { hasMinLength } from \"@/internals/helpers/array.js\";\nimport { createRequire } from 'module';\nconst require = createRequire(import.meta.url);\n\n// Custom error serialization\nfunction serializeError(error: Error): Record<string, any> {\n  const serialized: Record<string, any> = {\n    name: error.name,\n    message: error.message,\n    stack: error.stack,\n  };\n\n  // Copy all enumerable properties\n  for (const key of Object.keys(error)) {\n    if (key !== 'name' && key !== 'message' && key !== 'stack') {\n      serialized[key] = (error as any)[key];\n    }\n  }\n\n  return serialized;\n}\n\nfunction deserializeError(errorObject: Record<string, any>): Error {\n  const error = new Error(errorObject.message);\n  error.name = errorObject.name;\n  error.stack = errorObject.stack;\n\n  // Copy all additional properties\n  for (const key of Object.keys(errorObject)) {\n    if (key !== 'name' && key !== 'message' && key !== 'stack') {\n      (error as any)[key] = errorObject[key];\n    }\n  }\n\n  return error;\n}\n\n// Initialize the module synchronously\n\nexport interface SerializeFactory<A = unknown, B = unknown> {\n  ref: ClassConstructor<A> | NamedFunction<A>;\n  createEmpty?: () => A;\n  updateInstance?: (instance: A, update: A) => void;\n  toPlain: (value: A) => B;\n  fromPlain: (value: B) => A;\n}\n\nexport class Serializer {\n  private static factories = new Map<string, SerializeFactory<any, any>>();\n\n  static registerSerializable<A>(\n    ref: SerializableClass<A>,\n    processors?: Partial<Omit<SerializeFactory<Serializable<A>, A>, \"ref\">>,\n    aliases?: string[],\n  ) {\n    return Serializer.register(\n      ref,\n      {\n        toPlain: (value) => value.createSnapshot(),\n        fromPlain: (value) => ref.fromSnapshot(value),\n        createEmpty: () => Object.create(ref.prototype),\n        updateInstance: (instance, update) => instance.loadSnapshot(update),\n        ...R.pickBy(processors ?? {}, R.isDefined),\n      },\n      aliases,\n    );\n  }\n\n  static deregister(ref: ClassConstructor | NamedFunction) {\n    const className = extractClassName(ref);\n    Serializer.factories.delete(className);\n  }\n\n  static register<A, B = unknown>(\n    ref: ClassConstructor<A> | NamedFunction<A>,\n    processors: Omit<SerializeFactory<A, B>, \"ref\">,\n    aliases?: string[],\n  ): void {\n    const className = extractClassName(ref);\n    const oldFactory = Serializer.factories.get(className);\n    const newFactory: SerializeFactory<A, B> = {\n      ref,\n      ...processors,\n    };\n\n    if (oldFactory) {\n      if (oldFactory.ref !== ref) {\n        throw new SerializerError(`Factory for class \"${className}\" already exists!`);\n      }\n\n      for (const [key, value] of Serializer.factories.entries()) {\n        if (value === oldFactory) {\n          Serializer.factories.set(key, newFactory);\n        }\n      }\n    }\n    Serializer.factories.set(className, newFactory);\n\n    aliases?.forEach((alias) => {\n      const aliasTarget = Serializer.factories.get(alias);\n      if (!aliasTarget) {\n        this.factories.set(alias, newFactory);\n      } else if (aliasTarget !== newFactory) {\n        throw new SerializerError(\n          `Factory for class \"${className}\" already exists! Cannot add alias.`,\n        );\n      }\n    });\n  }\n\n  static getFactory(clsName: string): SerializeFactory {\n    const factory = Serializer.factories.get(clsName);\n    if (!factory) {\n      throw new SerializerError(`Class \"${clsName}\" was not found!`);\n    }\n    return factory;\n  }\n\n  static findFactory(value: unknown) {\n    let targetClass = extractClassName(value);\n    if (!Serializer.hasFactory(targetClass) && R.isFunction(value)) {\n      targetClass = Function.name;\n    }\n\n    if (Serializer.hasFactory(targetClass)) {\n      const factory = Serializer.getFactory(targetClass);\n      return { targetClass, factory, isSelfRef: factory.ref === value };\n    }\n\n    const excluded = new Set([null, Object.prototype]);\n    for (const proto of traversePrototypeChain(value, excluded)) {\n      const targetClass = extractClassName(proto);\n\n      const factory = this.factories.get(targetClass);\n      if (factory) {\n        return { targetClass, factory, isSelfRef: false };\n      }\n    }\n\n    throw new SerializerError(`Class \"${targetClass}\" was not found!`);\n  }\n\n  static hasFactory(clsName: string) {\n    return Serializer.factories.has(clsName);\n  }\n\n  static serialize<T>(rawData: T): string {\n    const output = Serializer._createOutputBuilder();\n    const getRefId = (() => {\n      let id = 0;\n      return () => {\n        id += 1;\n        return id;\n      };\n    })();\n\n    const seen = new SafeWeakMap<SerializerNode>();\n\n    const assertValidSnapshot = (() => {\n      const allowedTypes = new Set([\n        \"Number\",\n        \"String\",\n        \"Object\",\n        \"Array\",\n        \"Undefined\",\n        \"Null\",\n        \"Boolean\",\n      ]);\n      return (snapshot: unknown, factory: SerializeFactory) => {\n        const className = extractClassName(snapshot);\n\n        if (!allowedTypes.has(className)) {\n          throw new SerializerError(\n            `Cannot serialize '${className}' as a top level property. \"toPlain\" function in \"${extractClassName(factory.ref)}\" should return an ${Array.from(allowedTypes.values()).join(\",\")}.`,\n          );\n        }\n      };\n    })();\n\n    const toSerializable = (rawValue: unknown): SerializerNode | unknown => {\n      if (seen.has(rawValue)) {\n        return seen.get(rawValue);\n      }\n\n      if (rawValue instanceof Serializable && !this.hasFactory(extractClassName(rawValue))) {\n        const Class = rawValue.constructor as SerializableClass<T>;\n        Serializer.registerSerializable(Class);\n      }\n\n      const { targetClass, factory, isSelfRef } = Serializer.findFactory(rawValue);\n      if (!isSerializationRequired(factory.ref)) {\n        return rawValue;\n      }\n\n      const snapshot = isSelfRef ? SerializerSelfRefIdentifier : factory.toPlain(rawValue);\n      assertValidSnapshot(snapshot, factory);\n\n      const result: SerializerNode = {\n        __serializer: true,\n        __class: targetClass,\n        __ref: getRefId().toString(),\n        __value: snapshot,\n      };\n      seen.set(rawValue, result);\n\n      for (const node of traverseWithUpdate(snapshot)) {\n        const newValue = toSerializable(node.value);\n        if (newValue !== node.value) {\n          node.update(newValue);\n        }\n      }\n      return result;\n    };\n\n    const root: RootNode<T> = { __version: Version, __root: rawData };\n    traverseObject(root, ({ value, path }) => {\n      const content = toSerializable(value);\n      output.update(path, content);\n    });\n    return output.toJSON();\n  }\n\n  /** @internal */\n  static deserializeWithMeta<T = any>(\n    raw: string,\n    extraClasses?: SerializableClass<unknown>[],\n  ): RootNode<T> {\n    extraClasses?.forEach((ref) => Serializer.registerSerializable(ref));\n\n    const output = Serializer._createOutputBuilder<RootNode<T>>();\n    const instances = new Map<string, unknown>();\n\n    const toDeserialize = (contentRaw: unknown) => {\n      if (isSerializerNode(contentRaw)) {\n        const clsName = String(contentRaw.__class);\n        const factory = Serializer.getFactory(clsName);\n        const rawData = contentRaw.__value;\n\n        if (rawData === SerializerSelfRefIdentifier) {\n          return factory.ref;\n        }\n\n        if (rawData === SerializerRefIdentifier) {\n          if (!instances.has(contentRaw.__ref!)) {\n            throw new SerializerError(`Missing reference \"${contentRaw.__ref}\"!`);\n          }\n\n          const data = instances.get(contentRaw.__ref!)!;\n          if (data instanceof RefPlaceholder) {\n            return data.value;\n          }\n          return data;\n        }\n\n        const traverseNested = () => {\n          for (const node of traverseWithUpdate(rawData)) {\n            const newValue = toDeserialize(node.value);\n            if (newValue !== node.value) {\n              node.update(newValue);\n            }\n          }\n        };\n\n        // Handle circular dependencies\n        const placeholder = new RefPlaceholder<any>(contentRaw, factory);\n        instances.set(contentRaw.__ref!, placeholder);\n        traverseNested();\n        instances.set(contentRaw.__ref!, placeholder.final);\n        return placeholder.final;\n      }\n      return contentRaw;\n    };\n\n    const root = JSON.parse(raw);\n    if (!isRootNode(root)) {\n      throw new SerializerError(\"Provided data cannot be deserialized due to malformed format!\");\n    }\n\n    traverseObject(\n      root,\n      ({ value: contentRaw, path }) => {\n        output.update(path, toDeserialize(contentRaw));\n      },\n      (_obj) => isSerializerNode(_obj),\n    );\n    return output.get();\n  }\n\n  static deserialize<T = any>(raw: string, extraClasses?: SerializableClass<unknown>[]): T {\n    const response = Serializer.deserializeWithMeta(raw, extraClasses);\n    return response.__root;\n  }\n\n  protected static _createOutputBuilder<T>() {\n    return {\n      _container: {} as T,\n      get() {\n        return this._container;\n      },\n      update(path: readonly string[], value: any) {\n        setProp(this._container, path, value);\n      },\n      toJSON() {\n        const seen = new SafeWeakSet();\n\n        return JSON.stringify(this._container, (key, value) => {\n          if (seen.has(value) && isSerializerNode(value)) {\n            const updated: SerializerNode = {\n              ...value,\n              __value: SerializerRefIdentifier,\n            };\n            return updated;\n          }\n\n          seen.add(value);\n          return value;\n        });\n      },\n    };\n  }\n}\n\nSerializer.register(Task<any>, {\n  toPlain: (task) => ({ value: task.resolvedValue(), state: task.state }),\n  fromPlain: ({ state, value }) => {\n    const task = new Task();\n    if (state === TaskState.RESOLVED) {\n      task.resolve(value);\n    } else if (state === TaskState.REJECTED) {\n      task.reject(value);\n    } else {\n      task.reject(new SerializerError(\"Task cannot be solved due to serialization.\"));\n    }\n    task.resolve(value);\n    return task;\n  },\n  createEmpty: () => new Task(),\n  updateInstance: (instance, value) => {\n    instance.resolve(value);\n  },\n});\nSerializer.register(SlidingTaskMap, {\n  toPlain: (value) => ({\n    config: {\n      windowSize: value.windowSize,\n      ttl: value.ttl,\n    },\n    entries: Array.from(value.entries()).filter(([_, task]) => {\n      if (task instanceof Task) {\n        return task.state === TaskState.RESOLVED;\n      }\n      return true;\n    }),\n  }),\n  fromPlain: ({ entries, config }) => {\n    const instance = new SlidingTaskMap(config.windowSize, config.ttl);\n    for (const [key, value] of entries) {\n      instance.set(key, value);\n    }\n    return instance;\n  },\n  createEmpty: () => new SlidingTaskMap(1, 1000),\n  updateInstance: (instance, newInstance) => {\n    Object.assign(instance, { windowSize: newInstance.windowSize, ttl: newInstance.ttl });\n    newInstance.forEach((value, key) => instance.set(key, value));\n  },\n});\nSerializer.register(Map, {\n  toPlain: (value) => Array.from(value.entries()),\n  fromPlain: (value) => new Map(value),\n  createEmpty: () => new Map(),\n  updateInstance: (instance, update) => {\n    update.forEach(([key, value]) => instance.set(key, value));\n  },\n});\nSerializer.register(Set, {\n  toPlain: (value) => Array.from(value.values()),\n  fromPlain: (value) => new Set(value),\n  createEmpty: () => new Set(),\n  updateInstance: (instance, update) => {\n    update.forEach((value) => instance.add(value));\n  },\n});\nSerializer.register(Array, {\n  toPlain: (value) => value.slice(),\n  fromPlain: (value) => value.slice(),\n  createEmpty: () => [],\n  updateInstance: (value, update) => {\n    value.push(...update);\n  },\n});\nSerializer.register(Object, {\n  toPlain: (value) => Object.assign({}, value),\n  fromPlain: (value) => Object.assign({}, value),\n  createEmpty: () => ({}),\n  updateInstance: (value, update) => Object.assign(value, update),\n});\nSerializer.register(Number, {\n  toPlain: (value) => Number(value).toString(),\n  fromPlain: (value) => Number(value),\n});\nSerializer.register(String, {\n  toPlain: (value) => String(value),\n  fromPlain: (value) => String(value),\n});\nSerializer.register(Boolean, {\n  toPlain: (value) => Boolean(value),\n  fromPlain: (value) => Boolean(value),\n});\nSerializer.register(BigInt, {\n  toPlain: (value) => String(value),\n  fromPlain: (value) => BigInt(value),\n});\nSerializer.register(Symbol, {\n  toPlain: (value) => value.description,\n  fromPlain: (value) => Symbol(value),\n});\nSerializer.register(Date, {\n  toPlain: (value) => value.toISOString(),\n  fromPlain: (value) => new Date(value),\n});\nSerializer.register(CacheFn, {\n  toPlain: (value) => value.createSnapshot(),\n  fromPlain: (value) => CacheFn.create(value.fn, value.options),\n});\nSerializer.register(Function, {\n  toPlain: (value) => {\n    const isNative = getProp(global, [value.name]) === value;\n\n    function isConstructor(obj: any): obj is AnyConstructable {\n      return obj && !!obj.prototype && !!obj.prototype.constructor.name;\n    }\n\n    return {\n      name: value.name,\n      binds: getFunctionBinds(value).map((bound) => ({\n        name: isConstructor(bound) ? Serializer.findFactory(bound).targetClass : bound.name,\n        value: \"value\" in bound ? bound.value : null,\n      })),\n      fn: isNative ? \"\" : String(value),\n      isNative,\n    };\n  },\n  fromPlain: (value) => {\n    if (value.isNative) {\n      return getProp(global, [value.name])!;\n    }\n\n    const toParsableForm = (): string => {\n      let fn = value.fn;\n\n      if (fn.match(/^\\s*function.*?\\(/)) {\n        return fn;\n      }\n\n      const [a, b, c] = [fn.indexOf(\"=>\"), fn.indexOf(\"(\"), fn.indexOf(\"{\")];\n      if (a > -1) {\n        if (b === -1 || b > a || (c === -1 && c > a)) {\n          const [p, p2] = halveString(fn, \"=>\", false);\n          fn = `(${p.replace(\"async\", \"\").replace(\"*\", \"\").trim()})=>${p2}`;\n          fn = [p.includes(\"async\") && \"async \", p.includes(\"*\") && \"*\", fn]\n            .filter(Boolean)\n            .join(\" \");\n        }\n      }\n\n      const arrowStart = fn.indexOf(\"=>\");\n      const bracketStart = fn.indexOf(\"(\");\n\n      const [fnPrefix, fnContent = \"\"] =\n        bracketStart === -1 || bracketStart > arrowStart\n          ? halveString(fn, \"{\", true)\n          : halveString(fn, \"(\", true);\n\n      const nonReservedSymbols = fnPrefix\n        .trim()\n        .split(\" \")\n        .map((x) => x.trim())\n        .filter(Boolean)\n        .every((content) => [\"async\", \"*\"].includes(content));\n\n      if (nonReservedSymbols) {\n        return fn;\n      }\n\n      const name = value.name && fnPrefix.includes(value.name) ? value.name : \"\";\n      let parameters = \"\";\n      if (!fnContent.startsWith(\"(\")) {\n        if (fnPrefix.includes(\"(\")) {\n          parameters = (fnPrefix.match(/\\((.+)\\)/) ?? [null, \"\"])[1];\n        } else {\n          parameters = fnPrefix.replace(\"=>\", \"\").replace(\"async\", \"\").replace(\"*\", \"\");\n        }\n      }\n\n      return [\n        fnPrefix.includes(\"async\") && \"async \",\n        \"function\",\n        fnPrefix.includes(\"*\") && \"*\",\n        name && ` ${name}`,\n        parameters && `(${parameters})`,\n        fnContent,\n      ]\n        .filter(Boolean)\n        .join(\"\");\n    };\n\n    const binds = value?.binds ?? [];\n    const fn = Function(\n      ...binds.map((b) => b.name),\n      `return ${toParsableForm()}`,\n    )(...binds.map((b) => (b.value ? b.value : Serializer.getFactory(b.name)!.ref)));\n\n    if (value.name) {\n      Object.defineProperty(\n        fn,\n        \"name\",\n        Object.assign({}, Object.getOwnPropertyDescriptor(Object.getPrototypeOf(fn), \"name\"), {\n          value: value.name,\n        }),\n      );\n    }\n    Object.defineProperty(\n      fn,\n      \"toString\",\n      Object.assign({}, Object.getOwnPropertyDescriptor(Object.getPrototypeOf(fn), \"name\"), {\n        value: () => value.fn,\n      }),\n    );\n    return hasMinLength(binds, 1) ? toBoundedFunction(fn, binds) : fn;\n  },\n});\n\nSerializer.register(Error, {\n  toPlain: (value) => serializeError(value),\n  fromPlain: (value) => deserializeError(value),\n});\nSerializer.register(RegExp, {\n  toPlain: (value) => ({ source: value.source, flags: value.flags }),\n  fromPlain: (value) => new RegExp(value.source, value.flags),\n});\nSerializer.register(WeakSet, {\n  toPlain: () => {},\n  fromPlain: () => new WeakSet(),\n  createEmpty: () => new WeakSet(),\n  updateInstance: () => {},\n});\nSerializer.register(WeakMap, {\n  toPlain: () => {},\n  fromPlain: () => new WeakMap(),\n  createEmpty: () => new WeakMap(),\n  updateInstance: () => {},\n});\nSerializer.register(WeakRef, {\n  toPlain: () => {},\n  fromPlain: () => new WeakRef({}),\n});\nSerializer.register(primitiveToSerializableClass(undefined), {\n  toPlain: () => undefined,\n  fromPlain: () => undefined,\n});\nSerializer.register(primitiveToSerializableClass(null), {\n  toPlain: () => null,\n  fromPlain: () => null,\n});\n// @ts-expect-error\nSerializer.register(ZodType, {\n  toPlain: (value) => toJsonSchema(value),\n  fromPlain: () => {\n    throw new Error(\"JSONSchema cannot be converted to zod!\");\n  },\n});\nSerializer.register(Buffer, {\n  toPlain: (value: Buffer) => value.toString(\"base64\"),\n  fromPlain: (data) => Buffer.from(data, \"base64\"),\n});\nSerializer.register(AbortSignal, {\n  toPlain: (value: AbortSignal) => ({\n    aborted: value.aborted,\n    reason: value.reason,\n  }),\n  fromPlain: (data) => {\n    const controller = createAbortController();\n    if (data.aborted) {\n      controller.abort(data.reason);\n    }\n    return controller.signal;\n  },\n});\nSerializer.register(AbortController, {\n  toPlain: (value: AbortController) => ({\n    signal: value.signal,\n  }),\n  fromPlain: (data) => createAbortController(data.signal),\n});\n"]}