{"version":3,"file":"ephemeral_value.cjs","names":["BaseChannel","InvalidUpdateError","EmptyChannelError"],"sources":["../../src/channels/ephemeral_value.ts"],"sourcesContent":["import { EmptyChannelError, InvalidUpdateError } from \"../errors.js\";\nimport { BaseChannel } from \"./base.js\";\n\n/**\n * Stores the value received in the step immediately preceding, clears after.\n */\nexport class EphemeralValue<Value> extends BaseChannel<Value, Value, Value> {\n  lc_graph_name = \"EphemeralValue\";\n\n  guard: boolean;\n\n  // value is an array so we don't misinterpret an update to undefined as no write\n  value: [Value] | [] = [];\n\n  constructor(guard: boolean = true) {\n    super();\n    this.guard = guard;\n  }\n\n  fromCheckpoint(checkpoint?: Value) {\n    const empty = new EphemeralValue<Value>(this.guard);\n    if (typeof checkpoint !== \"undefined\") {\n      empty.value = [checkpoint];\n    }\n    return empty as this;\n  }\n\n  update(values: Value[]): boolean {\n    if (values.length === 0) {\n      const updated = this.value.length > 0;\n      // If there are no updates for this specific channel at the end of the step, wipe it.\n      this.value = [];\n      return updated;\n    }\n    if (values.length !== 1 && this.guard) {\n      throw new InvalidUpdateError(\n        \"EphemeralValue can only receive one value per step.\"\n      );\n    }\n\n    // eslint-disable-next-line prefer-destructuring\n    this.value = [values[values.length - 1]];\n    return true;\n  }\n\n  get(): Value {\n    if (this.value.length === 0) {\n      throw new EmptyChannelError();\n    }\n    return this.value[0];\n  }\n\n  checkpoint(): Value {\n    if (this.value.length === 0) {\n      throw new EmptyChannelError();\n    }\n    return this.value[0];\n  }\n\n  isAvailable(): boolean {\n    return this.value.length !== 0;\n  }\n}\n"],"mappings":";;;;;;AAMA,IAAa,iBAAb,MAAa,uBAA8BA,aAAAA,YAAiC;CAC1E,gBAAgB;CAEhB;CAGA,QAAsB,EAAE;CAExB,YAAY,QAAiB,MAAM;AACjC,SAAO;AACP,OAAK,QAAQ;;CAGf,eAAe,YAAoB;EACjC,MAAM,QAAQ,IAAI,eAAsB,KAAK,MAAM;AACnD,MAAI,OAAO,eAAe,YACxB,OAAM,QAAQ,CAAC,WAAW;AAE5B,SAAO;;CAGT,OAAO,QAA0B;AAC/B,MAAI,OAAO,WAAW,GAAG;GACvB,MAAM,UAAU,KAAK,MAAM,SAAS;AAEpC,QAAK,QAAQ,EAAE;AACf,UAAO;;AAET,MAAI,OAAO,WAAW,KAAK,KAAK,MAC9B,OAAM,IAAIC,eAAAA,mBACR,sDACD;AAIH,OAAK,QAAQ,CAAC,OAAO,OAAO,SAAS,GAAG;AACxC,SAAO;;CAGT,MAAa;AACX,MAAI,KAAK,MAAM,WAAW,EACxB,OAAM,IAAIC,eAAAA,mBAAmB;AAE/B,SAAO,KAAK,MAAM;;CAGpB,aAAoB;AAClB,MAAI,KAAK,MAAM,WAAW,EACxB,OAAM,IAAIA,eAAAA,mBAAmB;AAE/B,SAAO,KAAK,MAAM;;CAGpB,cAAuB;AACrB,SAAO,KAAK,MAAM,WAAW"}