{"version":3,"sources":["../../src/envelope/envelope.ts","../../src/pb/wire.ts","../../src/pb/codec.ts","../../src/envelope/codec.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 TrendVidia, LLC.\n/**\n * Standard API response envelope for cross-system communication.\n *\n * Separates transport errors from application errors and carries\n * machine-readable codes with positional format arguments for\n * client-side localization.\n *\n * Wire format mirrors the Go `protowire/envelope` package: field tags\n * 1..N on each struct map to a binary protobuf wire format. The binary\n * codec lives in the `pb` module; this file defines the data shapes,\n * builders, and queries.\n */\n\nexport class FieldError {\n  constructor(\n    public field: string,\n    public code: string,\n    public message: string = \"\",\n    public args: string[] = [],\n  ) {}\n}\n\nexport class AppError {\n  public details: FieldError[] = [];\n  public metadata: Record<string, string> = {};\n\n  constructor(\n    public code: string,\n    public message: string = \"\",\n    public args: string[] = [],\n  ) {}\n\n  withField(\n    field: string,\n    code: string,\n    message: string = \"\",\n    ...args: string[]\n  ): this {\n    this.details.push(new FieldError(field, code, message, args));\n    return this;\n  }\n\n  withMeta(key: string, value: string): this {\n    this.metadata[key] = value;\n    return this;\n  }\n}\n\nexport class Envelope {\n  public status: number;\n  public transportError: string;\n  public data: Uint8Array;\n  public error: AppError | null;\n\n  constructor(opts: {\n    status?: number;\n    transportError?: string;\n    data?: Uint8Array;\n    error?: AppError | null;\n  } = {}) {\n    this.status = opts.status ?? 0;\n    this.transportError = opts.transportError ?? \"\";\n    this.data = opts.data ?? new Uint8Array();\n    this.error = opts.error ?? null;\n  }\n\n  static ok(status: number, data: Uint8Array): Envelope {\n    return new Envelope({ status, data });\n  }\n\n  static err(\n    status: number,\n    code: string,\n    message: string = \"\",\n    ...args: string[]\n  ): Envelope {\n    return new Envelope({ status, error: new AppError(code, message, args) });\n  }\n\n  static transportErr(message: string): Envelope {\n    return new Envelope({ transportError: message });\n  }\n\n  isOk(): boolean {\n    return this.transportError === \"\" && this.error === null;\n  }\n\n  isTransportError(): boolean {\n    return this.transportError !== \"\";\n  }\n\n  isAppError(): boolean {\n    return this.error !== null;\n  }\n\n  errorCode(): string {\n    return this.error?.code ?? \"\";\n  }\n\n  /**\n   * Returns field errors indexed by field name, or null when there are none.\n   *\n   * Mirrors the Go API which returns nil for both \"no app error\" and\n   * \"app error has no details\" — callers should treat null as empty.\n   */\n  fieldErrors(): Record<string, FieldError> | null {\n    if (this.error === null || this.error.details.length === 0) return null;\n    const out: Record<string, FieldError> = {};\n    for (const fe of this.error.details) out[fe.field] = fe;\n    return out;\n  }\n}\n\nexport function newAppError(\n  code: string,\n  message: string = \"\",\n  ...args: string[]\n): AppError {\n  return new AppError(code, message, args);\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 TrendVidia, LLC.\n/**\n * Low-level protobuf wire-format primitives: varint, zigzag, fixed32/64,\n * length-delimited bytes, and tag (field-number + wire-type) encoding.\n *\n * Mirrors `google.golang.org/protobuf/encoding/protowire` at the call sites\n * used by the schema-free `pb` codec.\n */\n\nexport const enum WireType {\n  Varint = 0,\n  Fixed64 = 1,\n  LengthDelimited = 2,\n  StartGroup = 3,\n  EndGroup = 4,\n  Fixed32 = 5,\n}\n\nconst textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder(\"utf-8\", { fatal: false });\n\nexport class Writer {\n  private buf: Uint8Array;\n  private pos = 0;\n\n  constructor(initialCapacity = 64) {\n    this.buf = new Uint8Array(initialCapacity);\n  }\n\n  private grow(n: number): void {\n    if (this.pos + n <= this.buf.length) return;\n    let next = this.buf.length * 2;\n    while (next < this.pos + n) next *= 2;\n    const nb = new Uint8Array(next);\n    nb.set(this.buf.subarray(0, this.pos));\n    this.buf = nb;\n  }\n\n  /** Length so far. */\n  get length(): number {\n    return this.pos;\n  }\n\n  finish(): Uint8Array {\n    return this.buf.slice(0, this.pos);\n  }\n\n  /** Append a single byte. */\n  byte(b: number): void {\n    this.grow(1);\n    this.buf[this.pos++] = b & 0xff;\n  }\n\n  /** Append raw bytes (without a length prefix). */\n  raw(bytes: Uint8Array): void {\n    this.grow(bytes.length);\n    this.buf.set(bytes, this.pos);\n    this.pos += bytes.length;\n  }\n\n  /**\n   * Write an unsigned varint. Accepts a JS number for values up to 2^53,\n   * or a bigint for the full uint64 range.\n   */\n  varint(value: number | bigint): void {\n    if (typeof value === \"bigint\") {\n      this.varintBig(value);\n      return;\n    }\n    if (!Number.isFinite(value) || value < 0) {\n      throw new RangeError(`varint requires a non-negative finite number, got ${value}`);\n    }\n    if (value > Number.MAX_SAFE_INTEGER) {\n      this.varintBig(BigInt(value));\n      return;\n    }\n    this.grow(10);\n    // For values <= 2^28, plain shifts work. Beyond that, use Math.floor division\n    // because JS bitwise operators truncate to int32.\n    let lo = value;\n    while (lo >= 0x80) {\n      this.buf[this.pos++] = (lo & 0x7f) | 0x80;\n      lo = Math.floor(lo / 128);\n    }\n    this.buf[this.pos++] = lo & 0x7f;\n  }\n\n  private varintBig(value: bigint): void {\n    if (value < 0n) {\n      // For negative values, encode as 2's complement uint64 (10-byte varint).\n      value = BigInt.asUintN(64, value);\n    }\n    this.grow(10);\n    while (value >= 0x80n) {\n      this.buf[this.pos++] = Number(value & 0x7fn) | 0x80;\n      value >>= 7n;\n    }\n    this.buf[this.pos++] = Number(value);\n  }\n\n  /** Write a signed varint with zigzag encoding (number variant). */\n  zigzag32(value: number): void {\n    const v = ((value << 1) ^ (value >> 31)) >>> 0;\n    this.varint(v);\n  }\n\n  /** Write a signed varint with zigzag encoding (bigint variant). */\n  zigzag64(value: bigint): void {\n    const v = BigInt.asUintN(64, (value << 1n) ^ (value >> 63n));\n    this.varintBig(v);\n  }\n\n  /** Little-endian fixed 32-bit unsigned integer. */\n  fixed32(value: number): void {\n    this.grow(4);\n    const v = value >>> 0;\n    this.buf[this.pos++] = v & 0xff;\n    this.buf[this.pos++] = (v >>> 8) & 0xff;\n    this.buf[this.pos++] = (v >>> 16) & 0xff;\n    this.buf[this.pos++] = (v >>> 24) & 0xff;\n  }\n\n  /** Little-endian fixed 64-bit unsigned integer. */\n  fixed64(value: bigint): void {\n    this.grow(8);\n    const v = BigInt.asUintN(64, value);\n    const lo = Number(v & 0xffff_ffffn);\n    const hi = Number((v >> 32n) & 0xffff_ffffn);\n    this.buf[this.pos++] = lo & 0xff;\n    this.buf[this.pos++] = (lo >>> 8) & 0xff;\n    this.buf[this.pos++] = (lo >>> 16) & 0xff;\n    this.buf[this.pos++] = (lo >>> 24) & 0xff;\n    this.buf[this.pos++] = hi & 0xff;\n    this.buf[this.pos++] = (hi >>> 8) & 0xff;\n    this.buf[this.pos++] = (hi >>> 16) & 0xff;\n    this.buf[this.pos++] = (hi >>> 24) & 0xff;\n  }\n\n  /** IEEE 754 32-bit float, little-endian. */\n  float(value: number): void {\n    this.grow(4);\n    const dv = new DataView(this.buf.buffer, this.buf.byteOffset + this.pos, 4);\n    dv.setFloat32(0, value, true);\n    this.pos += 4;\n  }\n\n  /** IEEE 754 64-bit double, little-endian. */\n  double(value: number): void {\n    this.grow(8);\n    const dv = new DataView(this.buf.buffer, this.buf.byteOffset + this.pos, 8);\n    dv.setFloat64(0, value, true);\n    this.pos += 8;\n  }\n\n  /** UTF-8 length-prefixed string. */\n  string(value: string): void {\n    const enc = textEncoder.encode(value);\n    this.varint(enc.length);\n    this.raw(enc);\n  }\n\n  /** Length-prefixed byte sequence. */\n  bytes(value: Uint8Array): void {\n    this.varint(value.length);\n    this.raw(value);\n  }\n\n  /** Tag = field_number << 3 | wire_type (encoded as varint). */\n  tag(fieldNumber: number, wireType: WireType): void {\n    if (fieldNumber < 1 || fieldNumber > 0x1fff_ffff) {\n      throw new RangeError(`field number out of range: ${fieldNumber}`);\n    }\n    this.varint(fieldNumber * 8 + wireType);\n  }\n}\n\nexport class Reader {\n  public pos = 0;\n  private dv: DataView;\n\n  constructor(public readonly data: Uint8Array, start = 0, end?: number) {\n    this.pos = start;\n    if (end !== undefined && end !== data.length) {\n      this.data = data.subarray(0, end);\n    }\n    this.dv = new DataView(this.data.buffer, this.data.byteOffset, this.data.byteLength);\n  }\n\n  eof(): boolean {\n    return this.pos >= this.data.length;\n  }\n\n  remaining(): number {\n    return this.data.length - this.pos;\n  }\n\n  /** Read an unsigned varint as bigint (always — caller narrows). */\n  varintBig(): bigint {\n    let result = 0n;\n    let shift = 0n;\n    for (let i = 0; i < 10; i++) {\n      if (this.pos >= this.data.length) throw new Error(\"truncated varint\");\n      const byte = this.data[this.pos++]!;\n      result |= BigInt(byte & 0x7f) << shift;\n      if ((byte & 0x80) === 0) return result;\n      shift += 7n;\n    }\n    throw new Error(\"varint exceeds 10 bytes\");\n  }\n\n  /** Read an unsigned varint as a JS number. Throws if value > 2^53 - 1. */\n  varint(): number {\n    // Fast path for small values.\n    if (this.pos >= this.data.length) throw new Error(\"truncated varint\");\n    const b0 = this.data[this.pos]!;\n    if ((b0 & 0x80) === 0) {\n      this.pos++;\n      return b0;\n    }\n    const big = this.varintBig();\n    if (big > BigInt(Number.MAX_SAFE_INTEGER)) {\n      throw new RangeError(`varint ${big} exceeds Number.MAX_SAFE_INTEGER`);\n    }\n    return Number(big);\n  }\n\n  /** Read a signed zigzag varint as a JS number (32-bit). */\n  zigzag32(): number {\n    const u = this.varint();\n    return (u >>> 1) ^ -(u & 1);\n  }\n\n  /** Read a signed zigzag varint as a bigint (64-bit). */\n  zigzag64(): bigint {\n    const u = this.varintBig();\n    return (u >> 1n) ^ -(u & 1n);\n  }\n\n  /** Read 4 bytes little-endian as unsigned 32-bit. */\n  fixed32(): number {\n    if (this.pos + 4 > this.data.length) throw new Error(\"truncated fixed32\");\n    const v = this.dv.getUint32(this.pos, true);\n    this.pos += 4;\n    return v;\n  }\n\n  /** Read 8 bytes little-endian as bigint (uint64). */\n  fixed64(): bigint {\n    if (this.pos + 8 > this.data.length) throw new Error(\"truncated fixed64\");\n    const v = this.dv.getBigUint64(this.pos, true);\n    this.pos += 8;\n    return v;\n  }\n\n  float(): number {\n    if (this.pos + 4 > this.data.length) throw new Error(\"truncated float\");\n    const v = this.dv.getFloat32(this.pos, true);\n    this.pos += 4;\n    return v;\n  }\n\n  double(): number {\n    if (this.pos + 8 > this.data.length) throw new Error(\"truncated double\");\n    const v = this.dv.getFloat64(this.pos, true);\n    this.pos += 8;\n    return v;\n  }\n\n  /** Length-prefixed bytes — returns a copy. */\n  bytes(): Uint8Array {\n    const len = this.varint();\n    if (this.pos + len > this.data.length) throw new Error(\"truncated bytes\");\n    const out = this.data.slice(this.pos, this.pos + len);\n    this.pos += len;\n    return out;\n  }\n\n  /** Length-prefixed bytes — returns a view into the underlying buffer (no copy). */\n  bytesView(): Uint8Array {\n    const len = this.varint();\n    if (this.pos + len > this.data.length) throw new Error(\"truncated bytes\");\n    const view = this.data.subarray(this.pos, this.pos + len);\n    this.pos += len;\n    return view;\n  }\n\n  /** UTF-8 length-prefixed string. */\n  string(): string {\n    return textDecoder.decode(this.bytesView());\n  }\n\n  /** Decode a tag varint into { fieldNumber, wireType }. */\n  tag(): { fieldNumber: number; wireType: WireType } {\n    const t = this.varint();\n    const wireType = (t & 0x7) as WireType;\n    const fieldNumber = t >>> 3;\n    if (fieldNumber === 0) throw new Error(`invalid tag (field 0) at offset ${this.pos}`);\n    return { fieldNumber, wireType };\n  }\n\n  /** Skip the value of a field with the given wire type. */\n  skip(wireType: WireType): void {\n    switch (wireType) {\n      case WireType.Varint:\n        this.varintBig();\n        return;\n      case WireType.Fixed64:\n        this.pos += 8;\n        if (this.pos > this.data.length) throw new Error(\"truncated fixed64 (skip)\");\n        return;\n      case WireType.LengthDelimited: {\n        const len = this.varint();\n        this.pos += len;\n        if (this.pos > this.data.length) throw new Error(\"truncated length-delim (skip)\");\n        return;\n      }\n      case WireType.Fixed32:\n        this.pos += 4;\n        if (this.pos > this.data.length) throw new Error(\"truncated fixed32 (skip)\");\n        return;\n      case WireType.StartGroup:\n      case WireType.EndGroup:\n        throw new Error(\"group wire types are not supported\");\n      default:\n        throw new Error(`unknown wire type ${wireType}`);\n    }\n  }\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 TrendVidia, LLC.\n/**\n * Schema-driven protobuf binary marshal/unmarshal.\n *\n * Mirrors the Go `encoding/pb` package's struct-tag approach, but with\n * an explicit field schema (TS has no struct tags or runtime field metadata).\n *\n * Wire-format choices match proto3 semantics:\n *   - int32 / int64: plain varint, with negative values sign-extended to a\n *     10-byte uint64 (proto3 `int32` / `int64`).\n *   - sint32 / sint64: zigzag varint (proto3 `sint32` / `sint64`); more\n *     compact for negative values.\n *   - uint32 / uint64: plain varint.\n *   - bool: varint (0/1).\n *   - float: fixed32; double: fixed64.\n *   - string and bytes: length-delimited.\n *   - nested messages: length-delimited.\n *   - repeated fields: one tag+value per element (non-packed).\n *\n * Maps follow the proto3 spec: `repeated MapEntry { key = 1; value = 2; }`.\n */\n\nimport { Reader, Writer, WireType } from \"./wire.js\";\n\nexport type ScalarKind =\n  | \"bool\"\n  | \"int32\"\n  | \"int64\"\n  | \"sint32\"\n  | \"sint64\"\n  | \"uint32\"\n  | \"uint64\"\n  | \"float\"\n  | \"double\"\n  | \"string\"\n  | \"bytes\";\n\n/** Map keys may not be float/double/bytes per the proto3 spec. */\nexport type MapKeyKind =\n  | \"bool\"\n  | \"int32\"\n  | \"int64\"\n  | \"sint32\"\n  | \"sint64\"\n  | \"uint32\"\n  | \"uint64\"\n  | \"string\";\n\nexport type Kind = ScalarKind | { readonly message: CodecBase };\n\nexport interface FieldSpec {\n  readonly number: number;\n  readonly name: string;\n  readonly kind: Kind;\n  /** Mark a non-map field as repeated. Mutually exclusive with `mapKey`. */\n  readonly repeated?: boolean;\n  /** Set to make this field a map. The field's `kind` is the value's kind. */\n  readonly mapKey?: MapKeyKind;\n}\n\n/**\n * Type-erased codec interface used internally for nested-message encoding.\n * Public users see {@link MessageCodec} which preserves the value type.\n */\nexport interface CodecBase {\n  readonly fields: ReadonlyArray<FieldSpec>;\n  readonly byNumber: ReadonlyMap<number, FieldSpec>;\n  create(): unknown;\n  marshalInto(w: Writer, value: unknown): void;\n  unmarshalFrom(r: Reader, end: number, into: unknown): void;\n}\n\nexport interface MessageCodec<T> extends CodecBase {\n  create(): T;\n  marshal(value: T): Uint8Array;\n  unmarshal(data: Uint8Array): T;\n}\n\nexport interface DefineMessageOpts<T> {\n  readonly fields: ReadonlyArray<FieldSpec>;\n  /** Factory invoked by unmarshal to produce a target instance. Defaults to `{}`. */\n  readonly create?: () => T;\n}\n\nexport function defineMessage<T extends object>(\n  opts: DefineMessageOpts<T>,\n): MessageCodec<T> {\n  const byNumber = new Map<number, FieldSpec>();\n  for (const f of opts.fields) {\n    if (f.number < 1) {\n      throw new Error(`field '${f.name}' has invalid number ${f.number}`);\n    }\n    if (byNumber.has(f.number)) {\n      const other = byNumber.get(f.number)!;\n      throw new Error(\n        `duplicate field number ${f.number} ('${other.name}' and '${f.name}')`,\n      );\n    }\n    if (f.repeated && f.mapKey !== undefined) {\n      throw new Error(`field '${f.name}' cannot be both repeated and a map`);\n    }\n    byNumber.set(f.number, f);\n  }\n  const create = opts.create ?? ((): T => ({}) as T);\n\n  const codec: MessageCodec<T> = {\n    fields: opts.fields,\n    byNumber,\n    create,\n    marshalInto(w, value) {\n      marshalMessageInto(w, value, this);\n    },\n    unmarshalFrom(r, end, into) {\n      unmarshalMessageFrom(r, end, into, this);\n    },\n    marshal(value) {\n      const w = new Writer();\n      marshalMessageInto(w, value, this);\n      return w.finish();\n    },\n    unmarshal(data) {\n      const r = new Reader(data);\n      const obj = create();\n      unmarshalMessageFrom(r, data.length, obj, this);\n      return obj;\n    },\n  };\n  return codec;\n}\n\nexport function marshal<T>(value: T, codec: MessageCodec<T>): Uint8Array {\n  return codec.marshal(value);\n}\n\nexport function unmarshal<T>(data: Uint8Array, codec: MessageCodec<T>): T {\n  return codec.unmarshal(data);\n}\n\n// ---------------------------------------------------------------------------\n// Marshal\n// ---------------------------------------------------------------------------\n\nfunction isZero(kind: ScalarKind, v: unknown): boolean {\n  if (v === undefined || v === null) return true;\n  switch (kind) {\n    case \"bool\":\n      return v === false;\n    case \"int32\":\n    case \"sint32\":\n    case \"uint32\":\n    case \"float\":\n    case \"double\":\n      return v === 0;\n    case \"int64\":\n    case \"sint64\":\n    case \"uint64\":\n      return v === 0n;\n    case \"string\":\n      return v === \"\";\n    case \"bytes\":\n      return (v as Uint8Array).length === 0;\n  }\n}\n\nfunction wireTypeOf(kind: ScalarKind | \"message\"): WireType {\n  switch (kind) {\n    case \"bool\":\n    case \"int32\":\n    case \"int64\":\n    case \"sint32\":\n    case \"sint64\":\n    case \"uint32\":\n    case \"uint64\":\n      return WireType.Varint;\n    case \"float\":\n      return WireType.Fixed32;\n    case \"double\":\n      return WireType.Fixed64;\n    case \"string\":\n    case \"bytes\":\n    case \"message\":\n      return WireType.LengthDelimited;\n  }\n}\n\nfunction writeScalarValue(w: Writer, kind: ScalarKind, v: unknown): void {\n  switch (kind) {\n    case \"bool\":\n      w.varint(v ? 1 : 0);\n      return;\n    case \"int32\": {\n      // proto3 int32: plain varint; negative values sign-extend to uint64\n      // and emit a 10-byte varint.\n      const n = v as number;\n      w.varint(n < 0 ? BigInt(n) : n);\n      return;\n    }\n    case \"int64\":\n      w.varint(typeof v === \"bigint\" ? v : BigInt(v as number));\n      return;\n    case \"sint32\":\n      w.zigzag32(v as number);\n      return;\n    case \"sint64\":\n      w.zigzag64(typeof v === \"bigint\" ? v : BigInt(v as number));\n      return;\n    case \"uint32\":\n      w.varint(v as number);\n      return;\n    case \"uint64\":\n      w.varint(typeof v === \"bigint\" ? v : BigInt(v as number));\n      return;\n    case \"float\":\n      w.float(v as number);\n      return;\n    case \"double\":\n      w.double(v as number);\n      return;\n    case \"string\":\n      w.string(v as string);\n      return;\n    case \"bytes\":\n      w.bytes(v as Uint8Array);\n      return;\n  }\n}\n\nfunction writeNestedMessage(w: Writer, codec: CodecBase, value: unknown): void {\n  const inner = new Writer();\n  codec.marshalInto(inner, value);\n  const bytes = inner.finish();\n  w.varint(bytes.length);\n  w.raw(bytes);\n}\n\nfunction marshalMessageInto(w: Writer, value: unknown, codec: CodecBase): void {\n  if (value === undefined || value === null) {\n    throw new TypeError(\"cannot marshal null/undefined message\");\n  }\n  const obj = value as Record<string, unknown>;\n\n  for (const f of codec.fields) {\n    const v = obj[f.name];\n\n    if (f.mapKey !== undefined) {\n      writeMapField(w, f, v);\n      continue;\n    }\n\n    if (f.repeated) {\n      writeRepeatedField(w, f, v);\n      continue;\n    }\n\n    // Singular field.\n    if (typeof f.kind === \"string\") {\n      if (isZero(f.kind, v)) continue;\n      w.tag(f.number, wireTypeOf(f.kind));\n      writeScalarValue(w, f.kind, v);\n    } else {\n      if (v === undefined || v === null) continue;\n      w.tag(f.number, WireType.LengthDelimited);\n      writeNestedMessage(w, f.kind.message, v);\n    }\n  }\n}\n\nfunction writeRepeatedField(w: Writer, f: FieldSpec, v: unknown): void {\n  if (!Array.isArray(v) || v.length === 0) return;\n  if (typeof f.kind === \"string\") {\n    for (const item of v) {\n      w.tag(f.number, wireTypeOf(f.kind));\n      writeScalarValue(w, f.kind, item);\n    }\n  } else {\n    for (const item of v) {\n      if (item === undefined || item === null) continue;\n      w.tag(f.number, WireType.LengthDelimited);\n      writeNestedMessage(w, f.kind.message, item);\n    }\n  }\n}\n\nfunction writeMapField(w: Writer, f: FieldSpec, v: unknown): void {\n  if (v === undefined || v === null) return;\n  const keyKind = f.mapKey!;\n  const valueIsMessage = typeof f.kind !== \"string\";\n  for (const [key, val] of mapEntries(v, keyKind)) {\n    const inner = new Writer();\n    if (!isZero(keyKind, key)) {\n      inner.tag(1, wireTypeOf(keyKind));\n      writeScalarValue(inner, keyKind, key);\n    }\n    if (valueIsMessage) {\n      if (val !== undefined && val !== null) {\n        inner.tag(2, WireType.LengthDelimited);\n        writeNestedMessage(inner, (f.kind as { message: CodecBase }).message, val);\n      }\n    } else {\n      const sk = f.kind as ScalarKind;\n      if (!isZero(sk, val)) {\n        inner.tag(2, wireTypeOf(sk));\n        writeScalarValue(inner, sk, val);\n      }\n    }\n    const blob = inner.finish();\n    w.tag(f.number, WireType.LengthDelimited);\n    w.varint(blob.length);\n    w.raw(blob);\n  }\n}\n\nfunction* mapEntries(\n  v: unknown,\n  keyKind: MapKeyKind,\n): Generator<[unknown, unknown]> {\n  if (v instanceof Map) {\n    for (const [k, val] of v.entries()) yield [k, val];\n    return;\n  }\n  if (typeof v !== \"object\" || v === null) return;\n  for (const [k, val] of Object.entries(v as Record<string, unknown>)) {\n    yield [parseMapKey(k, keyKind), val];\n  }\n}\n\nfunction parseMapKey(k: string, keyKind: MapKeyKind): unknown {\n  switch (keyKind) {\n    case \"bool\":\n      return k === \"true\";\n    case \"int32\":\n    case \"uint32\":\n      return Number(k);\n    case \"int64\":\n    case \"uint64\":\n      return BigInt(k);\n    case \"string\":\n      return k;\n  }\n}\n\n// ---------------------------------------------------------------------------\n// Unmarshal\n// ---------------------------------------------------------------------------\n\nfunction unmarshalMessageFrom(\n  r: Reader,\n  end: number,\n  into: unknown,\n  codec: CodecBase,\n): void {\n  if (into === undefined || into === null) {\n    throw new TypeError(\"cannot unmarshal into null/undefined target\");\n  }\n  const obj = into as Record<string, unknown>;\n\n  // Initialize empty containers for repeated/map fields if not already set,\n  // so wire-absent collections come back as [] / {} rather than undefined.\n  for (const f of codec.fields) {\n    if (f.mapKey !== undefined && obj[f.name] === undefined) {\n      obj[f.name] = {};\n    } else if (f.repeated && obj[f.name] === undefined) {\n      obj[f.name] = [];\n    }\n  }\n\n  while (r.pos < end) {\n    const { fieldNumber, wireType } = r.tag();\n    const f = codec.byNumber.get(fieldNumber);\n    if (f === undefined) {\n      r.skip(wireType);\n      continue;\n    }\n\n    if (f.mapKey !== undefined) {\n      readMapEntry(r, obj, f);\n      continue;\n    }\n\n    if (f.repeated) {\n      const arr = obj[f.name] as unknown[];\n      if (typeof f.kind === \"string\") {\n        arr.push(readScalarValue(r, f.kind));\n      } else {\n        arr.push(readNestedMessage(r, f.kind.message));\n      }\n      continue;\n    }\n\n    if (typeof f.kind === \"string\") {\n      obj[f.name] = readScalarValue(r, f.kind);\n    } else {\n      obj[f.name] = readNestedMessage(r, f.kind.message);\n    }\n  }\n  if (r.pos !== end) {\n    throw new Error(`message overran expected end (pos=${r.pos}, end=${end})`);\n  }\n}\n\nfunction readScalarValue(r: Reader, kind: ScalarKind): unknown {\n  switch (kind) {\n    case \"bool\":\n      return r.varint() !== 0;\n    case \"int32\": {\n      // proto3 int32: read 10-byte-tolerant varint, take low 32 bits as signed.\n      const u = r.varintBig();\n      return Number(BigInt.asIntN(32, u));\n    }\n    case \"int64\": {\n      const u = r.varintBig();\n      return BigInt.asIntN(64, u);\n    }\n    case \"sint32\":\n      return r.zigzag32();\n    case \"sint64\":\n      return r.zigzag64();\n    case \"uint32\":\n      return r.varint();\n    case \"uint64\":\n      return r.varintBig();\n    case \"float\":\n      return r.float();\n    case \"double\":\n      return r.double();\n    case \"string\":\n      return r.string();\n    case \"bytes\":\n      return r.bytes();\n  }\n}\n\nfunction readNestedMessage(r: Reader, codec: CodecBase): unknown {\n  const len = r.varint();\n  const end = r.pos + len;\n  if (end > r.data.length) throw new Error(\"nested message exceeds buffer\");\n  const obj = codec.create();\n  codec.unmarshalFrom(r, end, obj);\n  return obj;\n}\n\nfunction readMapEntry(\n  r: Reader,\n  obj: Record<string, unknown>,\n  f: FieldSpec,\n): void {\n  const len = r.varint();\n  const end = r.pos + len;\n  if (end > r.data.length) throw new Error(\"map entry exceeds buffer\");\n\n  const keyKind = f.mapKey!;\n  let key: unknown = mapKeyZero(keyKind);\n  let value: unknown = scalarZero(f.kind);\n\n  while (r.pos < end) {\n    const { fieldNumber, wireType } = r.tag();\n    if (fieldNumber === 1) {\n      key = readScalarValue(r, keyKind);\n    } else if (fieldNumber === 2) {\n      if (typeof f.kind === \"string\") {\n        value = readScalarValue(r, f.kind);\n      } else {\n        value = readNestedMessage(r, f.kind.message);\n      }\n    } else {\n      r.skip(wireType);\n    }\n  }\n  if (r.pos !== end) {\n    throw new Error(`map entry overran (pos=${r.pos}, end=${end})`);\n  }\n\n  let target = obj[f.name] as Record<string, unknown> | undefined;\n  if (target === undefined) {\n    target = {};\n    obj[f.name] = target;\n  }\n  target[String(key)] = value;\n}\n\nfunction mapKeyZero(kind: MapKeyKind): unknown {\n  switch (kind) {\n    case \"bool\":\n      return false;\n    case \"int32\":\n    case \"sint32\":\n    case \"uint32\":\n      return 0;\n    case \"int64\":\n    case \"sint64\":\n    case \"uint64\":\n      return 0n;\n    case \"string\":\n      return \"\";\n  }\n}\n\nfunction scalarZero(kind: Kind): unknown {\n  if (typeof kind !== \"string\") return null;\n  switch (kind) {\n    case \"bool\":\n      return false;\n    case \"int32\":\n    case \"sint32\":\n    case \"uint32\":\n    case \"float\":\n    case \"double\":\n      return 0;\n    case \"int64\":\n    case \"sint64\":\n    case \"uint64\":\n      return 0n;\n    case \"string\":\n      return \"\";\n    case \"bytes\":\n      return new Uint8Array();\n  }\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 TrendVidia, LLC.\n/**\n * Binary protobuf codecs for Envelope/AppError/FieldError, driven by the\n * schema-free `pb` module.\n *\n * Field numbers and types match `proto/envelope/v1/envelope.proto` from the\n * canonical Go module. One wire-format caveat: `pb` encodes signed integer\n * fields with zigzag varint (proto3 `sint32` semantics), not plain varint\n * (proto3 `int32`). For non-negative values like HTTP status codes the bytes\n * are identical, so this matters only for negative integers — which the\n * envelope shape does not use.\n */\n\nimport { defineMessage, type MessageCodec } from \"../pb/codec.js\";\nimport { AppError, Envelope, FieldError } from \"./envelope.js\";\n\nexport const FieldErrorPb: MessageCodec<FieldError> = defineMessage<FieldError>({\n  fields: [\n    { number: 1, name: \"field\", kind: \"string\" },\n    { number: 2, name: \"code\", kind: \"string\" },\n    { number: 3, name: \"message\", kind: \"string\" },\n    { number: 4, name: \"args\", kind: \"string\", repeated: true },\n  ],\n  create: () => new FieldError(\"\", \"\"),\n});\n\nexport const AppErrorPb: MessageCodec<AppError> = defineMessage<AppError>({\n  fields: [\n    { number: 1, name: \"code\", kind: \"string\" },\n    { number: 2, name: \"message\", kind: \"string\" },\n    { number: 3, name: \"args\", kind: \"string\", repeated: true },\n    { number: 4, name: \"details\", kind: { message: FieldErrorPb }, repeated: true },\n    { number: 5, name: \"metadata\", kind: \"string\", mapKey: \"string\" },\n  ],\n  create: () => new AppError(\"\"),\n});\n\nexport const EnvelopePb: MessageCodec<Envelope> = defineMessage<Envelope>({\n  fields: [\n    { number: 1, name: \"status\", kind: \"int32\" },\n    { number: 2, name: \"transportError\", kind: \"string\" },\n    { number: 3, name: \"data\", kind: \"bytes\" },\n    { number: 4, name: \"error\", kind: { message: AppErrorPb } },\n  ],\n  create: () => new Envelope(),\n});\n"]}