{"version":3,"file":"values.cjs","names":["StreamChannel","hasPrefix"],"sources":["../../../src/stream/transformers/values.ts"],"sourcesContent":["import { hasPrefix } from \"../mux.js\";\nimport { StreamChannel } from \"../stream-channel.js\";\nimport type { Namespace, ProtocolEvent, StreamTransformer } from \"../types.js\";\nimport type { ValuesTransformerProjection } from \"./types.js\";\n\n/**\n * Creates a {@link StreamTransformer} that captures `values` channel events\n * into a local {@link StreamChannel}. Only events whose namespace exactly\n * matches {@link path} are recorded; events from child or sibling namespaces\n * are ignored.\n *\n * The final snapshot is resolved by {@link StreamMux.close} directly;\n * this transformer only accumulates intermediate values.\n *\n * @param path - Namespace prefix to match against incoming events.\n * @returns A `StreamTransformer` whose projection contains the internal\n *   `_valuesLog` local channel.\n */\nexport function createValuesTransformer(\n  path: Namespace\n): StreamTransformer<ValuesTransformerProjection> {\n  const valuesLog = StreamChannel.local<Record<string, unknown>>();\n\n  return {\n    init: () => ({ _valuesLog: valuesLog }),\n\n    process(event: ProtocolEvent): boolean {\n      if (event.method !== \"values\") return true;\n      if (event.params.namespace.length !== path.length) return true;\n      if (!hasPrefix(event.params.namespace, path)) return true;\n      valuesLog.push(event.params.data as Record<string, unknown>);\n      return true;\n    },\n\n    finalize(): void {\n      valuesLog.close();\n    },\n\n    fail(err: unknown): void {\n      valuesLog.fail(err);\n    },\n  };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAkBA,SAAgB,wBACd,MACgD;CAChD,MAAM,YAAYA,uBAAAA,cAAc,OAAgC;AAEhE,QAAO;EACL,aAAa,EAAE,YAAY,WAAW;EAEtC,QAAQ,OAA+B;AACrC,OAAI,MAAM,WAAW,SAAU,QAAO;AACtC,OAAI,MAAM,OAAO,UAAU,WAAW,KAAK,OAAQ,QAAO;AAC1D,OAAI,CAACC,YAAAA,UAAU,MAAM,OAAO,WAAW,KAAK,CAAE,QAAO;AACrD,aAAU,KAAK,MAAM,OAAO,KAAgC;AAC5D,UAAO;;EAGT,WAAiB;AACf,aAAU,OAAO;;EAGnB,KAAK,KAAoB;AACvB,aAAU,KAAK,IAAI;;EAEtB"}