{"version":3,"sources":["../../src/backend/client.ts"],"names":["BackendClient","Serializable","instance","settings","create","createSnapshot","shallowCopy","loadSnapshot","snapshot","Object","assign","ensure"],"mappings":";;;;;;;AAQO,MAAeA,sBAA4BC,6BAAAA,CAAAA;EARlD;;;AASkBC,EAAAA,QAAAA;AACGC,EAAAA,QAAAA;AAEnB,EAAA,WAAA,CAAYA,QAAAA,EAAa;AACvB,IAAA,KAAA,EAAK;AACL,IAAA,IAAA,CAAKA,QAAAA,GAAWA,YAAa,EAAC;AAC9B,IAAA,IAAA,CAAKD,QAAAA,GAAW,KAAKE,MAAAA,EAAM;AAC7B,EAAA;EAIAC,cAAAA,GAAiB;AACf,IAAA,OAAO;MACLF,QAAAA,EAAUG,qBAAAA,CAAY,KAAKH,QAAQ;AACrC,KAAA;AACF,EAAA;AAEAI,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACpBC,IAAAA,MAAAA,CAAOC,OAAO,IAAA,EAAM;AAAER,MAAAA,QAAAA,EAAU,KAAKE,MAAAA;KAAS,CAAA;AAChD,EAAA;AAEA,EAAA,OAAOO,OAELR,QAAAA,EACG;AACH,IAAA,IAAIA,QAAAA,IAAYA,oBAAoB,IAAA,EAAM;AACxC,MAAA,OAAOA,QAAAA;AACT,IAAA;AACA,IAAA,OAAO,IAAI,KAAKA,QAAAA,CAAAA;AAClB,EAAA;AACF","file":"client.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\n\nexport abstract class BackendClient<P, T> extends Serializable {\n  public readonly instance: T;\n  protected readonly settings: P;\n\n  constructor(settings: P) {\n    super();\n    this.settings = settings ?? ({} as P);\n    this.instance = this.create();\n  }\n\n  protected abstract create(): T;\n\n  createSnapshot() {\n    return {\n      settings: shallowCopy(this.settings),\n    };\n  }\n\n  loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n    Object.assign(this, snapshot);\n    Object.assign(this, { instance: this.create() });\n  }\n\n  static ensure<P2, T2, R extends BackendClient<P2, T2>>(\n    this: new (settings: P2) => R,\n    settings?: P2 | R,\n  ): R {\n    if (settings && settings instanceof this) {\n      return settings;\n    }\n    return new this(settings as P2);\n  }\n}\n"]}