{"version":3,"file":"index-DOcgYH9K.cjs","sources":["../src/svelte/context/pdf-engine-context.svelte.ts","../../models/dist/index.js","../src/lib/pdfium/index.ts","../src/lib/webworker/engine.ts","../src/svelte/components/PdfEngineProvider.svelte","../src/svelte/hooks/use-engine-context.ts","../src/svelte/hooks/use-pdfium-engine.svelte.ts"],"sourcesContent":["import { getContext, setContext } from 'svelte';\nimport type { PdfEngine } from '@kopjra/embedpdf-models';\n\nexport interface PdfEngineContextState {\n  engine: PdfEngine | null;\n  isLoading: boolean;\n  error: Error | null;\n}\n\nconst PDF_ENGINE_CONTEXT_KEY = Symbol('pdfEngineContext');\n\n/**\n * Set the PDF engine context (used by PdfEngineProvider)\n */\nexport function setPdfEngineContext(value: PdfEngineContextState) {\n  setContext(PDF_ENGINE_CONTEXT_KEY, value);\n}\n\n/**\n * Get the PDF engine context\n * @throws Error if used outside of PdfEngineProvider\n */\nexport function getPdfEngineContext(): PdfEngineContextState {\n  const context = getContext<PdfEngineContextState | undefined>(PDF_ENGINE_CONTEXT_KEY);\n\n  if (context === undefined) {\n    throw new Error('getPdfEngineContext must be used within a PdfEngineProvider');\n  }\n\n  return context;\n}\n","var Rotation = /* @__PURE__ */ ((Rotation2) => {\n  Rotation2[Rotation2[\"Degree0\"] = 0] = \"Degree0\";\n  Rotation2[Rotation2[\"Degree90\"] = 1] = \"Degree90\";\n  Rotation2[Rotation2[\"Degree180\"] = 2] = \"Degree180\";\n  Rotation2[Rotation2[\"Degree270\"] = 3] = \"Degree270\";\n  return Rotation2;\n})(Rotation || {});\nfunction toIntPos(p) {\n  return { x: Math.floor(p.x), y: Math.floor(p.y) };\n}\nfunction toIntSize(s) {\n  return { width: Math.ceil(s.width), height: Math.ceil(s.height) };\n}\nfunction toIntRect(r) {\n  return {\n    origin: toIntPos(r.origin),\n    size: toIntSize(r.size)\n  };\n}\nfunction calculateDegree(rotation) {\n  switch (rotation) {\n    case 0:\n      return 0;\n    case 1:\n      return 90;\n    case 2:\n      return 180;\n    case 3:\n      return 270;\n  }\n}\nfunction calculateAngle(rotation) {\n  return calculateDegree(rotation) * Math.PI / 180;\n}\nfunction swap(size) {\n  const { width, height } = size;\n  return {\n    width: height,\n    height: width\n  };\n}\nfunction transformSize(size, rotation, scaleFactor) {\n  size = rotation % 2 === 0 ? size : swap(size);\n  return {\n    width: size.width * scaleFactor,\n    height: size.height * scaleFactor\n  };\n}\nfunction quadToRect(q) {\n  const xs = [q.p1.x, q.p2.x, q.p3.x, q.p4.x];\n  const ys = [q.p1.y, q.p2.y, q.p3.y, q.p4.y];\n  return {\n    origin: { x: Math.min(...xs), y: Math.min(...ys) },\n    size: {\n      width: Math.max(...xs) - Math.min(...xs),\n      height: Math.max(...ys) - Math.min(...ys)\n    }\n  };\n}\nfunction rectToQuad(r) {\n  return {\n    p1: { x: r.origin.x, y: r.origin.y },\n    p2: { x: r.origin.x + r.size.width, y: r.origin.y },\n    p3: { x: r.origin.x + r.size.width, y: r.origin.y + r.size.height },\n    p4: { x: r.origin.x, y: r.origin.y + r.size.height }\n  };\n}\nfunction rotatePosition(containerSize, position, rotation) {\n  let x = position.x;\n  let y = position.y;\n  switch (rotation) {\n    case 0:\n      x = position.x;\n      y = position.y;\n      break;\n    case 1:\n      x = containerSize.height - position.y;\n      y = position.x;\n      break;\n    case 2:\n      x = containerSize.width - position.x;\n      y = containerSize.height - position.y;\n      break;\n    case 3:\n      x = position.y;\n      y = containerSize.width - position.x;\n      break;\n  }\n  return {\n    x,\n    y\n  };\n}\nfunction scalePosition(position, scaleFactor) {\n  return {\n    x: position.x * scaleFactor,\n    y: position.y * scaleFactor\n  };\n}\nfunction transformPosition(containerSize, position, rotation, scaleFactor) {\n  return scalePosition(rotatePosition(containerSize, position, rotation), scaleFactor);\n}\nfunction restorePosition(containerSize, position, rotation, scaleFactor) {\n  return scalePosition(\n    rotatePosition(containerSize, position, (4 - rotation) % 4),\n    1 / scaleFactor\n  );\n}\nfunction rectEquals(a, b) {\n  return a.origin.x === b.origin.x && a.origin.y === b.origin.y && a.size.width === b.size.width && a.size.height === b.size.height;\n}\nfunction rectFromPoints(positions) {\n  if (positions.length === 0) {\n    return { origin: { x: 0, y: 0 }, size: { width: 0, height: 0 } };\n  }\n  const xs = positions.map((p) => p.x);\n  const ys = positions.map((p) => p.y);\n  const minX = Math.min(...xs);\n  const minY = Math.min(...ys);\n  return {\n    origin: { x: minX, y: minY },\n    size: {\n      width: Math.max(...xs) - minX,\n      height: Math.max(...ys) - minY\n    }\n  };\n}\nfunction rotateAndTranslatePoint(pos, angleRad, translate) {\n  const cos = Math.cos(angleRad);\n  const sin = Math.sin(angleRad);\n  const newX = pos.x * cos - pos.y * sin;\n  const newY = pos.x * sin + pos.y * cos;\n  return {\n    x: newX + translate.x,\n    y: newY + translate.y\n  };\n}\nfunction expandRect(rect, padding) {\n  return {\n    origin: { x: rect.origin.x - padding, y: rect.origin.y - padding },\n    size: { width: rect.size.width + padding * 2, height: rect.size.height + padding * 2 }\n  };\n}\nfunction rotateRect(containerSize, rect, rotation) {\n  let x = rect.origin.x;\n  let y = rect.origin.y;\n  let size = rect.size;\n  switch (rotation) {\n    case 0:\n      break;\n    case 1:\n      x = containerSize.height - rect.origin.y - rect.size.height;\n      y = rect.origin.x;\n      size = swap(rect.size);\n      break;\n    case 2:\n      x = containerSize.width - rect.origin.x - rect.size.width;\n      y = containerSize.height - rect.origin.y - rect.size.height;\n      break;\n    case 3:\n      x = rect.origin.y;\n      y = containerSize.width - rect.origin.x - rect.size.width;\n      size = swap(rect.size);\n      break;\n  }\n  return {\n    origin: {\n      x,\n      y\n    },\n    size: {\n      width: size.width,\n      height: size.height\n    }\n  };\n}\nfunction scaleRect(rect, scaleFactor) {\n  return {\n    origin: {\n      x: rect.origin.x * scaleFactor,\n      y: rect.origin.y * scaleFactor\n    },\n    size: {\n      width: rect.size.width * scaleFactor,\n      height: rect.size.height * scaleFactor\n    }\n  };\n}\nfunction transformRect(containerSize, rect, rotation, scaleFactor) {\n  return scaleRect(rotateRect(containerSize, rect, rotation), scaleFactor);\n}\nfunction restoreRect(containerSize, rect, rotation, scaleFactor) {\n  return scaleRect(rotateRect(containerSize, rect, (4 - rotation) % 4), 1 / scaleFactor);\n}\nfunction restoreOffset(offset, rotation, scaleFactor) {\n  let offsetX = offset.x;\n  let offsetY = offset.y;\n  switch (rotation) {\n    case 0:\n      offsetX = offset.x / scaleFactor;\n      offsetY = offset.y / scaleFactor;\n      break;\n    case 1:\n      offsetX = offset.y / scaleFactor;\n      offsetY = -offset.x / scaleFactor;\n      break;\n    case 2:\n      offsetX = -offset.x / scaleFactor;\n      offsetY = -offset.y / scaleFactor;\n      break;\n    case 3:\n      offsetX = -offset.y / scaleFactor;\n      offsetY = offset.x / scaleFactor;\n      break;\n  }\n  return {\n    x: offsetX,\n    y: offsetY\n  };\n}\nfunction boundingRect(rects) {\n  if (rects.length === 0) return null;\n  let minX = rects[0].origin.x, minY = rects[0].origin.y, maxX = rects[0].origin.x + rects[0].size.width, maxY = rects[0].origin.y + rects[0].size.height;\n  for (const r of rects) {\n    minX = Math.min(minX, r.origin.x);\n    minY = Math.min(minY, r.origin.y);\n    maxX = Math.max(maxX, r.origin.x + r.size.width);\n    maxY = Math.max(maxY, r.origin.y + r.size.height);\n  }\n  return {\n    origin: {\n      x: minX,\n      y: minY\n    },\n    size: {\n      width: maxX - minX,\n      height: maxY - minY\n    }\n  };\n}\nfunction buildUserToDeviceMatrix(rect, rotation, outW, outH) {\n  const L = rect.origin.x;\n  const B = rect.origin.y;\n  const W = rect.size.width;\n  const H = rect.size.height;\n  const sx0 = outW / W;\n  const sy0 = outH / H;\n  const sx90 = outW / H;\n  const sy90 = outH / W;\n  switch (rotation) {\n    case 0:\n      return { a: sx0, b: 0, c: 0, d: sy0, e: -sx0 * L, f: -sy0 * B };\n    case 3:\n      return { a: 0, b: -sy90, c: sx90, d: 0, e: -sx90 * B, f: sy90 * (L + W) };\n    case 2:\n      return { a: -sx0, b: 0, c: 0, d: -sy0, e: sx0 * (L + W), f: sy0 * (B + H) };\n    case 1:\n      return { a: 0, b: sy90, c: -sx90, d: 0, e: sx90 * (B + H), f: -sy90 * L };\n  }\n}\nclass NoopLogger {\n  /** {@inheritDoc Logger.isEnabled} */\n  isEnabled() {\n    return false;\n  }\n  /** {@inheritDoc Logger.debug} */\n  debug() {\n  }\n  /** {@inheritDoc Logger.info} */\n  info() {\n  }\n  /** {@inheritDoc Logger.warn} */\n  warn() {\n  }\n  /** {@inheritDoc Logger.error} */\n  error() {\n  }\n  /** {@inheritDoc Logger.perf} */\n  perf() {\n  }\n}\nclass ConsoleLogger {\n  /** {@inheritDoc Logger.isEnabled} */\n  isEnabled() {\n    return true;\n  }\n  /** {@inheritDoc Logger.debug} */\n  debug(source, category, ...args) {\n    console.debug(`${source}.${category}`, ...args);\n  }\n  /** {@inheritDoc Logger.info} */\n  info(source, category, ...args) {\n    console.info(`${source}.${category}`, ...args);\n  }\n  /** {@inheritDoc Logger.warn} */\n  warn(source, category, ...args) {\n    console.warn(`${source}.${category}`, ...args);\n  }\n  /** {@inheritDoc Logger.error} */\n  error(source, category, ...args) {\n    console.error(`${source}.${category}`, ...args);\n  }\n  /** {@inheritDoc Logger.perf} */\n  perf(source, category, event, phase, ...args) {\n    console.info(`${source}.${category}.${event}.${phase}`, ...args);\n  }\n}\nvar LogLevel = /* @__PURE__ */ ((LogLevel2) => {\n  LogLevel2[LogLevel2[\"Debug\"] = 0] = \"Debug\";\n  LogLevel2[LogLevel2[\"Info\"] = 1] = \"Info\";\n  LogLevel2[LogLevel2[\"Warn\"] = 2] = \"Warn\";\n  LogLevel2[LogLevel2[\"Error\"] = 3] = \"Error\";\n  return LogLevel2;\n})(LogLevel || {});\nclass LevelLogger {\n  /**\n   * create new LevelLogger\n   * @param logger - the original logger\n   * @param level - log level that used for filtering, all logs lower than this level will be filtered out\n   */\n  constructor(logger, level) {\n    this.logger = logger;\n    this.level = level;\n  }\n  /** {@inheritDoc Logger.isEnabled} */\n  isEnabled(level) {\n    const levelMap = {\n      debug: 0,\n      info: 1,\n      warn: 2,\n      error: 3\n      /* Error */\n    };\n    return this.level <= levelMap[level];\n  }\n  /** {@inheritDoc Logger.debug} */\n  debug(source, category, ...args) {\n    if (this.level <= 0) {\n      this.logger.debug(source, category, ...args);\n    }\n  }\n  /** {@inheritDoc Logger.info} */\n  info(source, category, ...args) {\n    if (this.level <= 1) {\n      this.logger.info(source, category, ...args);\n    }\n  }\n  /** {@inheritDoc Logger.warn} */\n  warn(source, category, ...args) {\n    if (this.level <= 2) {\n      this.logger.warn(source, category, ...args);\n    }\n  }\n  /** {@inheritDoc Logger.error} */\n  error(source, category, ...args) {\n    if (this.level <= 3) {\n      this.logger.error(source, category, ...args);\n    }\n  }\n  /** {@inheritDoc Logger.perf} */\n  perf(source, category, event, phase, ...args) {\n    this.logger.perf(source, category, event, phase, ...args);\n  }\n}\nclass PerfLogger {\n  /**\n   * create new PerfLogger\n   */\n  constructor() {\n  }\n  /** {@inheritDoc Logger.isEnabled} */\n  isEnabled() {\n    return false;\n  }\n  /** {@inheritDoc Logger.debug} */\n  debug(source, category, ...args) {\n  }\n  /** {@inheritDoc Logger.info} */\n  info(source, category, ...args) {\n  }\n  /** {@inheritDoc Logger.warn} */\n  warn(source, category, ...args) {\n  }\n  /** {@inheritDoc Logger.error} */\n  error(source, category, ...args) {\n  }\n  /** {@inheritDoc Logger.perf} */\n  perf(source, category, event, phase, identifier, ...args) {\n    switch (phase) {\n      case \"Begin\":\n        globalThis.performance.mark(`${source}.${category}.${event}.${phase}.${identifier}`, {\n          detail: args\n        });\n        break;\n      case \"End\":\n        globalThis.performance.mark(`${source}.${category}.${event}.${phase}.${identifier}`, {\n          detail: args\n        });\n        globalThis.performance.measure(\n          `${source}.${category}.${event}.Measure.${identifier}`,\n          `${source}.${category}.${event}.Begin.${identifier}`,\n          `${source}.${category}.${event}.End.${identifier}`\n        );\n        break;\n    }\n  }\n}\nclass AllLogger {\n  /**\n   * create new PerfLogger\n   */\n  constructor(loggers) {\n    this.loggers = loggers;\n  }\n  /** {@inheritDoc Logger.isEnabled} */\n  isEnabled(level) {\n    return this.loggers.some((logger) => logger.isEnabled(level));\n  }\n  /** {@inheritDoc Logger.debug} */\n  debug(source, category, ...args) {\n    for (const logger of this.loggers) {\n      logger.debug(source, category, ...args);\n    }\n  }\n  /** {@inheritDoc Logger.info} */\n  info(source, category, ...args) {\n    for (const logger of this.loggers) {\n      logger.info(source, category, ...args);\n    }\n  }\n  /** {@inheritDoc Logger.warn} */\n  warn(source, category, ...args) {\n    for (const logger of this.loggers) {\n      logger.warn(source, category, ...args);\n    }\n  }\n  /** {@inheritDoc Logger.error} */\n  error(source, category, ...args) {\n    for (const logger of this.loggers) {\n      logger.error(source, category, ...args);\n    }\n  }\n  /** {@inheritDoc Logger.perf} */\n  perf(source, category, event, phase, ...args) {\n    for (const logger of this.loggers) {\n      logger.perf(source, category, event, phase, ...args);\n    }\n  }\n}\nvar TaskStage = /* @__PURE__ */ ((TaskStage2) => {\n  TaskStage2[TaskStage2[\"Pending\"] = 0] = \"Pending\";\n  TaskStage2[TaskStage2[\"Resolved\"] = 1] = \"Resolved\";\n  TaskStage2[TaskStage2[\"Rejected\"] = 2] = \"Rejected\";\n  TaskStage2[TaskStage2[\"Aborted\"] = 3] = \"Aborted\";\n  return TaskStage2;\n})(TaskStage || {});\nclass TaskAbortedError extends Error {\n  constructor(reason) {\n    super(`Task aborted: ${JSON.stringify(reason)}`);\n    this.name = \"TaskAbortedError\";\n    this.reason = reason;\n  }\n}\nclass TaskRejectedError extends Error {\n  constructor(reason) {\n    super(`Task rejected: ${JSON.stringify(reason)}`);\n    this.name = \"TaskRejectedError\";\n    this.reason = reason;\n  }\n}\nclass Task {\n  constructor() {\n    this.state = {\n      stage: 0\n      /* Pending */\n    };\n    this.resolvedCallbacks = [];\n    this.rejectedCallbacks = [];\n    this._promise = null;\n    this.progressCbs = [];\n  }\n  /**\n   * Convert task to promise\n   * @returns promise that will be resolved when task is settled\n   */\n  toPromise() {\n    if (!this._promise) {\n      this._promise = new Promise((resolve, reject) => {\n        this.wait(\n          (result) => resolve(result),\n          (error) => {\n            if (error.type === \"abort\") {\n              reject(new TaskAbortedError(error.reason));\n            } else {\n              reject(new TaskRejectedError(error.reason));\n            }\n          }\n        );\n      });\n    }\n    return this._promise;\n  }\n  /**\n   * wait for task to be settled\n   * @param resolvedCallback - callback for resolved value\n   * @param rejectedCallback - callback for rejected value\n   */\n  wait(resolvedCallback, rejectedCallback) {\n    switch (this.state.stage) {\n      case 0:\n        this.resolvedCallbacks.push(resolvedCallback);\n        this.rejectedCallbacks.push(rejectedCallback);\n        break;\n      case 1:\n        resolvedCallback(this.state.result);\n        break;\n      case 2:\n        rejectedCallback({\n          type: \"reject\",\n          reason: this.state.reason\n        });\n        break;\n      case 3:\n        rejectedCallback({\n          type: \"abort\",\n          reason: this.state.reason\n        });\n        break;\n    }\n  }\n  /**\n   * resolve task with specific result\n   * @param result - result value\n   */\n  resolve(result) {\n    if (this.state.stage === 0) {\n      this.state = {\n        stage: 1,\n        result\n      };\n      for (const resolvedCallback of this.resolvedCallbacks) {\n        try {\n          resolvedCallback(result);\n        } catch (e) {\n        }\n      }\n      this.resolvedCallbacks = [];\n      this.rejectedCallbacks = [];\n    }\n  }\n  /**\n   * reject task with specific reason\n   * @param reason - abort reason\n   *\n   */\n  reject(reason) {\n    if (this.state.stage === 0) {\n      this.state = {\n        stage: 2,\n        reason\n      };\n      for (const rejectedCallback of this.rejectedCallbacks) {\n        try {\n          rejectedCallback({\n            type: \"reject\",\n            reason\n          });\n        } catch (e) {\n        }\n      }\n      this.resolvedCallbacks = [];\n      this.rejectedCallbacks = [];\n    }\n  }\n  /**\n   * abort task with specific reason\n   * @param reason - abort reason\n   */\n  abort(reason) {\n    if (this.state.stage === 0) {\n      this.state = {\n        stage: 3,\n        reason\n      };\n      for (const rejectedCallback of this.rejectedCallbacks) {\n        try {\n          rejectedCallback({\n            type: \"abort\",\n            reason\n          });\n        } catch (e) {\n        }\n      }\n      this.resolvedCallbacks = [];\n      this.rejectedCallbacks = [];\n    }\n  }\n  /**\n   * fail task with a TaskError from another task\n   * This is a convenience method for error propagation between tasks\n   * @param error - TaskError from another task\n   */\n  fail(error) {\n    if (error.type === \"abort\") {\n      this.abort(error.reason);\n    } else {\n      this.reject(error.reason);\n    }\n  }\n  /**\n   * add a progress callback\n   * @param cb - progress callback\n   */\n  onProgress(cb) {\n    this.progressCbs.push(cb);\n  }\n  /**\n   * call progress callback\n   * @param p - progress value\n   */\n  progress(p) {\n    for (const cb of this.progressCbs) cb(p);\n  }\n  /**\n   * Static method to wait for all tasks to resolve\n   * Returns a new task that resolves with an array of all results\n   * Rejects immediately if any task fails\n   *\n   * @param tasks - array of tasks to wait for\n   * @returns new task that resolves when all input tasks resolve\n   * @public\n   */\n  static all(tasks) {\n    const combinedTask = new Task();\n    if (tasks.length === 0) {\n      combinedTask.resolve([]);\n      return combinedTask;\n    }\n    const results = new Array(tasks.length);\n    let resolvedCount = 0;\n    let isSettled = false;\n    tasks.forEach((task, index) => {\n      task.wait(\n        (result) => {\n          if (isSettled) return;\n          results[index] = result;\n          resolvedCount++;\n          if (resolvedCount === tasks.length) {\n            isSettled = true;\n            combinedTask.resolve(results);\n          }\n        },\n        (error) => {\n          if (isSettled) return;\n          isSettled = true;\n          if (error.type === \"abort\") {\n            combinedTask.abort(error.reason);\n          } else {\n            combinedTask.reject(error.reason);\n          }\n        }\n      );\n    });\n    return combinedTask;\n  }\n  /**\n   * Static method to wait for all tasks to settle (resolve, reject, or abort)\n   * Always resolves with an array of settlement results\n   *\n   * @param tasks - array of tasks to wait for\n   * @returns new task that resolves when all input tasks settle\n   * @public\n   */\n  static allSettled(tasks) {\n    const combinedTask = new Task();\n    if (tasks.length === 0) {\n      combinedTask.resolve([]);\n      return combinedTask;\n    }\n    const results = new Array(tasks.length);\n    let settledCount = 0;\n    tasks.forEach((task, index) => {\n      task.wait(\n        (result) => {\n          results[index] = { status: \"resolved\", value: result };\n          settledCount++;\n          if (settledCount === tasks.length) {\n            combinedTask.resolve(results);\n          }\n        },\n        (error) => {\n          results[index] = {\n            status: error.type === \"abort\" ? \"aborted\" : \"rejected\",\n            reason: error.reason\n          };\n          settledCount++;\n          if (settledCount === tasks.length) {\n            combinedTask.resolve(results);\n          }\n        }\n      );\n    });\n    return combinedTask;\n  }\n  /**\n   * Static method that resolves/rejects with the first task that settles\n   *\n   * @param tasks - array of tasks to race\n   * @returns new task that settles with the first input task that settles\n   * @public\n   */\n  static race(tasks) {\n    const combinedTask = new Task();\n    if (tasks.length === 0) {\n      combinedTask.reject(\"No tasks provided\");\n      return combinedTask;\n    }\n    let isSettled = false;\n    tasks.forEach((task) => {\n      task.wait(\n        (result) => {\n          if (isSettled) return;\n          isSettled = true;\n          combinedTask.resolve(result);\n        },\n        (error) => {\n          if (isSettled) return;\n          isSettled = true;\n          if (error.type === \"abort\") {\n            combinedTask.abort(error.reason);\n          } else {\n            combinedTask.reject(error.reason);\n          }\n        }\n      );\n    });\n    return combinedTask;\n  }\n  /**\n   * Utility to track progress of multiple tasks\n   *\n   * @param tasks - array of tasks to track\n   * @param onProgress - callback called when any task completes\n   * @returns new task that resolves when all input tasks resolve\n   * @public\n   */\n  static withProgress(tasks, onProgress) {\n    const combinedTask = Task.all(tasks);\n    if (onProgress) {\n      let completedCount = 0;\n      tasks.forEach((task) => {\n        task.wait(\n          () => {\n            completedCount++;\n            onProgress(completedCount, tasks.length);\n          },\n          () => {\n            completedCount++;\n            onProgress(completedCount, tasks.length);\n          }\n        );\n      });\n    }\n    return combinedTask;\n  }\n}\nconst PdfSoftHyphenMarker = \"­\";\nconst PdfZeroWidthSpace = \"​\";\nconst PdfWordJoiner = \"⁠\";\nconst PdfBomOrZwnbsp = \"\\uFEFF\";\nconst PdfNonCharacterFFFE = \"￾\";\nconst PdfNonCharacterFFFF = \"￿\";\nconst PdfUnwantedTextMarkers = Object.freeze([\n  PdfSoftHyphenMarker,\n  PdfZeroWidthSpace,\n  PdfWordJoiner,\n  PdfBomOrZwnbsp,\n  PdfNonCharacterFFFE,\n  PdfNonCharacterFFFF\n]);\nconst PdfUnwantedTextRegex = new RegExp(`[${PdfUnwantedTextMarkers.join(\"\")}]`, \"g\");\nfunction stripPdfUnwantedMarkers(text) {\n  return text.replace(PdfUnwantedTextRegex, \"\");\n}\nvar PdfZoomMode = /* @__PURE__ */ ((PdfZoomMode2) => {\n  PdfZoomMode2[PdfZoomMode2[\"Unknown\"] = 0] = \"Unknown\";\n  PdfZoomMode2[PdfZoomMode2[\"XYZ\"] = 1] = \"XYZ\";\n  PdfZoomMode2[PdfZoomMode2[\"FitPage\"] = 2] = \"FitPage\";\n  PdfZoomMode2[PdfZoomMode2[\"FitHorizontal\"] = 3] = \"FitHorizontal\";\n  PdfZoomMode2[PdfZoomMode2[\"FitVertical\"] = 4] = \"FitVertical\";\n  PdfZoomMode2[PdfZoomMode2[\"FitRectangle\"] = 5] = \"FitRectangle\";\n  PdfZoomMode2[PdfZoomMode2[\"FitBoundingBox\"] = 6] = \"FitBoundingBox\";\n  PdfZoomMode2[PdfZoomMode2[\"FitBoundingBoxHorizontal\"] = 7] = \"FitBoundingBoxHorizontal\";\n  PdfZoomMode2[PdfZoomMode2[\"FitBoundingBoxVertical\"] = 8] = \"FitBoundingBoxVertical\";\n  return PdfZoomMode2;\n})(PdfZoomMode || {});\nvar PdfTrappedStatus = /* @__PURE__ */ ((PdfTrappedStatus2) => {\n  PdfTrappedStatus2[PdfTrappedStatus2[\"NotSet\"] = 0] = \"NotSet\";\n  PdfTrappedStatus2[PdfTrappedStatus2[\"True\"] = 1] = \"True\";\n  PdfTrappedStatus2[PdfTrappedStatus2[\"False\"] = 2] = \"False\";\n  PdfTrappedStatus2[PdfTrappedStatus2[\"Unknown\"] = 3] = \"Unknown\";\n  return PdfTrappedStatus2;\n})(PdfTrappedStatus || {});\nvar PdfStandardFont = /* @__PURE__ */ ((PdfStandardFont2) => {\n  PdfStandardFont2[PdfStandardFont2[\"Unknown\"] = -1] = \"Unknown\";\n  PdfStandardFont2[PdfStandardFont2[\"Courier\"] = 0] = \"Courier\";\n  PdfStandardFont2[PdfStandardFont2[\"Courier_Bold\"] = 1] = \"Courier_Bold\";\n  PdfStandardFont2[PdfStandardFont2[\"Courier_BoldOblique\"] = 2] = \"Courier_BoldOblique\";\n  PdfStandardFont2[PdfStandardFont2[\"Courier_Oblique\"] = 3] = \"Courier_Oblique\";\n  PdfStandardFont2[PdfStandardFont2[\"Helvetica\"] = 4] = \"Helvetica\";\n  PdfStandardFont2[PdfStandardFont2[\"Helvetica_Bold\"] = 5] = \"Helvetica_Bold\";\n  PdfStandardFont2[PdfStandardFont2[\"Helvetica_BoldOblique\"] = 6] = \"Helvetica_BoldOblique\";\n  PdfStandardFont2[PdfStandardFont2[\"Helvetica_Oblique\"] = 7] = \"Helvetica_Oblique\";\n  PdfStandardFont2[PdfStandardFont2[\"Times_Roman\"] = 8] = \"Times_Roman\";\n  PdfStandardFont2[PdfStandardFont2[\"Times_Bold\"] = 9] = \"Times_Bold\";\n  PdfStandardFont2[PdfStandardFont2[\"Times_BoldItalic\"] = 10] = \"Times_BoldItalic\";\n  PdfStandardFont2[PdfStandardFont2[\"Times_Italic\"] = 11] = \"Times_Italic\";\n  PdfStandardFont2[PdfStandardFont2[\"Symbol\"] = 12] = \"Symbol\";\n  PdfStandardFont2[PdfStandardFont2[\"ZapfDingbats\"] = 13] = \"ZapfDingbats\";\n  return PdfStandardFont2;\n})(PdfStandardFont || {});\nvar PdfTextAlignment = /* @__PURE__ */ ((PdfTextAlignment2) => {\n  PdfTextAlignment2[PdfTextAlignment2[\"Left\"] = 0] = \"Left\";\n  PdfTextAlignment2[PdfTextAlignment2[\"Center\"] = 1] = \"Center\";\n  PdfTextAlignment2[PdfTextAlignment2[\"Right\"] = 2] = \"Right\";\n  return PdfTextAlignment2;\n})(PdfTextAlignment || {});\nvar PdfVerticalAlignment = /* @__PURE__ */ ((PdfVerticalAlignment2) => {\n  PdfVerticalAlignment2[PdfVerticalAlignment2[\"Top\"] = 0] = \"Top\";\n  PdfVerticalAlignment2[PdfVerticalAlignment2[\"Middle\"] = 1] = \"Middle\";\n  PdfVerticalAlignment2[PdfVerticalAlignment2[\"Bottom\"] = 2] = \"Bottom\";\n  return PdfVerticalAlignment2;\n})(PdfVerticalAlignment || {});\nvar PdfBlendMode = /* @__PURE__ */ ((PdfBlendMode2) => {\n  PdfBlendMode2[PdfBlendMode2[\"Normal\"] = 0] = \"Normal\";\n  PdfBlendMode2[PdfBlendMode2[\"Multiply\"] = 1] = \"Multiply\";\n  PdfBlendMode2[PdfBlendMode2[\"Screen\"] = 2] = \"Screen\";\n  PdfBlendMode2[PdfBlendMode2[\"Overlay\"] = 3] = \"Overlay\";\n  PdfBlendMode2[PdfBlendMode2[\"Darken\"] = 4] = \"Darken\";\n  PdfBlendMode2[PdfBlendMode2[\"Lighten\"] = 5] = \"Lighten\";\n  PdfBlendMode2[PdfBlendMode2[\"ColorDodge\"] = 6] = \"ColorDodge\";\n  PdfBlendMode2[PdfBlendMode2[\"ColorBurn\"] = 7] = \"ColorBurn\";\n  PdfBlendMode2[PdfBlendMode2[\"HardLight\"] = 8] = \"HardLight\";\n  PdfBlendMode2[PdfBlendMode2[\"SoftLight\"] = 9] = \"SoftLight\";\n  PdfBlendMode2[PdfBlendMode2[\"Difference\"] = 10] = \"Difference\";\n  PdfBlendMode2[PdfBlendMode2[\"Exclusion\"] = 11] = \"Exclusion\";\n  PdfBlendMode2[PdfBlendMode2[\"Hue\"] = 12] = \"Hue\";\n  PdfBlendMode2[PdfBlendMode2[\"Saturation\"] = 13] = \"Saturation\";\n  PdfBlendMode2[PdfBlendMode2[\"Color\"] = 14] = \"Color\";\n  PdfBlendMode2[PdfBlendMode2[\"Luminosity\"] = 15] = \"Luminosity\";\n  return PdfBlendMode2;\n})(PdfBlendMode || {});\nvar PdfStampFit = /* @__PURE__ */ ((PdfStampFit2) => {\n  PdfStampFit2[PdfStampFit2[\"Contain\"] = 0] = \"Contain\";\n  PdfStampFit2[PdfStampFit2[\"Cover\"] = 1] = \"Cover\";\n  PdfStampFit2[PdfStampFit2[\"Stretch\"] = 2] = \"Stretch\";\n  return PdfStampFit2;\n})(PdfStampFit || {});\nvar PdfActionType = /* @__PURE__ */ ((PdfActionType2) => {\n  PdfActionType2[PdfActionType2[\"Unsupported\"] = 0] = \"Unsupported\";\n  PdfActionType2[PdfActionType2[\"Goto\"] = 1] = \"Goto\";\n  PdfActionType2[PdfActionType2[\"RemoteGoto\"] = 2] = \"RemoteGoto\";\n  PdfActionType2[PdfActionType2[\"URI\"] = 3] = \"URI\";\n  PdfActionType2[PdfActionType2[\"LaunchAppOrOpenFile\"] = 4] = \"LaunchAppOrOpenFile\";\n  return PdfActionType2;\n})(PdfActionType || {});\nvar PdfAnnotationSubtype = /* @__PURE__ */ ((PdfAnnotationSubtype2) => {\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"TEXT\"] = 1] = \"TEXT\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"LINK\"] = 2] = \"LINK\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"FREETEXT\"] = 3] = \"FREETEXT\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"LINE\"] = 4] = \"LINE\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"SQUARE\"] = 5] = \"SQUARE\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"CIRCLE\"] = 6] = \"CIRCLE\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"POLYGON\"] = 7] = \"POLYGON\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"POLYLINE\"] = 8] = \"POLYLINE\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"HIGHLIGHT\"] = 9] = \"HIGHLIGHT\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"UNDERLINE\"] = 10] = \"UNDERLINE\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"SQUIGGLY\"] = 11] = \"SQUIGGLY\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"STRIKEOUT\"] = 12] = \"STRIKEOUT\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"STAMP\"] = 13] = \"STAMP\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"CARET\"] = 14] = \"CARET\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"INK\"] = 15] = \"INK\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"POPUP\"] = 16] = \"POPUP\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"FILEATTACHMENT\"] = 17] = \"FILEATTACHMENT\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"SOUND\"] = 18] = \"SOUND\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"MOVIE\"] = 19] = \"MOVIE\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"WIDGET\"] = 20] = \"WIDGET\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"SCREEN\"] = 21] = \"SCREEN\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"PRINTERMARK\"] = 22] = \"PRINTERMARK\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"TRAPNET\"] = 23] = \"TRAPNET\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"WATERMARK\"] = 24] = \"WATERMARK\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"THREED\"] = 25] = \"THREED\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"RICHMEDIA\"] = 26] = \"RICHMEDIA\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"XFAWIDGET\"] = 27] = \"XFAWIDGET\";\n  PdfAnnotationSubtype2[PdfAnnotationSubtype2[\"REDACT\"] = 28] = \"REDACT\";\n  return PdfAnnotationSubtype2;\n})(PdfAnnotationSubtype || {});\nconst PdfAnnotationSubtypeName = {\n  [\n    0\n    /* UNKNOWN */\n  ]: \"unknow\",\n  [\n    1\n    /* TEXT */\n  ]: \"text\",\n  [\n    2\n    /* LINK */\n  ]: \"link\",\n  [\n    3\n    /* FREETEXT */\n  ]: \"freetext\",\n  [\n    4\n    /* LINE */\n  ]: \"line\",\n  [\n    5\n    /* SQUARE */\n  ]: \"square\",\n  [\n    6\n    /* CIRCLE */\n  ]: \"circle\",\n  [\n    7\n    /* POLYGON */\n  ]: \"polygon\",\n  [\n    8\n    /* POLYLINE */\n  ]: \"polyline\",\n  [\n    9\n    /* HIGHLIGHT */\n  ]: \"highlight\",\n  [\n    10\n    /* UNDERLINE */\n  ]: \"underline\",\n  [\n    11\n    /* SQUIGGLY */\n  ]: \"squiggly\",\n  [\n    12\n    /* STRIKEOUT */\n  ]: \"strikeout\",\n  [\n    13\n    /* STAMP */\n  ]: \"stamp\",\n  [\n    14\n    /* CARET */\n  ]: \"caret\",\n  [\n    15\n    /* INK */\n  ]: \"ink\",\n  [\n    16\n    /* POPUP */\n  ]: \"popup\",\n  [\n    17\n    /* FILEATTACHMENT */\n  ]: \"fileattachment\",\n  [\n    18\n    /* SOUND */\n  ]: \"sound\",\n  [\n    19\n    /* MOVIE */\n  ]: \"movie\",\n  [\n    20\n    /* WIDGET */\n  ]: \"widget\",\n  [\n    21\n    /* SCREEN */\n  ]: \"screen\",\n  [\n    22\n    /* PRINTERMARK */\n  ]: \"printermark\",\n  [\n    23\n    /* TRAPNET */\n  ]: \"trapnet\",\n  [\n    24\n    /* WATERMARK */\n  ]: \"watermark\",\n  [\n    25\n    /* THREED */\n  ]: \"threed\",\n  [\n    26\n    /* RICHMEDIA */\n  ]: \"richmedia\",\n  [\n    27\n    /* XFAWIDGET */\n  ]: \"xfawidget\",\n  [\n    28\n    /* REDACT */\n  ]: \"redact\"\n};\nvar PdfAnnotationObjectStatus = /* @__PURE__ */ ((PdfAnnotationObjectStatus2) => {\n  PdfAnnotationObjectStatus2[PdfAnnotationObjectStatus2[\"Created\"] = 0] = \"Created\";\n  PdfAnnotationObjectStatus2[PdfAnnotationObjectStatus2[\"Committed\"] = 1] = \"Committed\";\n  return PdfAnnotationObjectStatus2;\n})(PdfAnnotationObjectStatus || {});\nvar AppearanceMode = /* @__PURE__ */ ((AppearanceMode2) => {\n  AppearanceMode2[AppearanceMode2[\"Normal\"] = 0] = \"Normal\";\n  AppearanceMode2[AppearanceMode2[\"Rollover\"] = 1] = \"Rollover\";\n  AppearanceMode2[AppearanceMode2[\"Down\"] = 2] = \"Down\";\n  return AppearanceMode2;\n})(AppearanceMode || {});\nvar PdfAnnotationState = /* @__PURE__ */ ((PdfAnnotationState2) => {\n  PdfAnnotationState2[\"Marked\"] = \"Marked\";\n  PdfAnnotationState2[\"Unmarked\"] = \"Unmarked\";\n  PdfAnnotationState2[\"Accepted\"] = \"Accepted\";\n  PdfAnnotationState2[\"Rejected\"] = \"Rejected\";\n  PdfAnnotationState2[\"Completed\"] = \"Completed\";\n  PdfAnnotationState2[\"Cancelled\"] = \"Cancelled\";\n  PdfAnnotationState2[\"None\"] = \"None\";\n  return PdfAnnotationState2;\n})(PdfAnnotationState || {});\nvar PdfAnnotationStateModel = /* @__PURE__ */ ((PdfAnnotationStateModel2) => {\n  PdfAnnotationStateModel2[\"Marked\"] = \"Marked\";\n  PdfAnnotationStateModel2[\"Review\"] = \"Review\";\n  return PdfAnnotationStateModel2;\n})(PdfAnnotationStateModel || {});\nvar PdfAnnotationIcon = /* @__PURE__ */ ((PdfAnnotationIcon2) => {\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Unknown\"] = -1] = \"Unknown\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Comment\"] = 0] = \"Comment\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Key\"] = 1] = \"Key\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Note\"] = 2] = \"Note\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Help\"] = 3] = \"Help\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"NewParagraph\"] = 4] = \"NewParagraph\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Paragraph\"] = 5] = \"Paragraph\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Insert\"] = 6] = \"Insert\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Graph\"] = 7] = \"Graph\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"PushPin\"] = 8] = \"PushPin\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Paperclip\"] = 9] = \"Paperclip\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Tag\"] = 10] = \"Tag\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Speaker\"] = 11] = \"Speaker\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Mic\"] = 12] = \"Mic\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Approved\"] = 13] = \"Approved\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Experimental\"] = 14] = \"Experimental\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"NotApproved\"] = 15] = \"NotApproved\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"AsIs\"] = 16] = \"AsIs\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Expired\"] = 17] = \"Expired\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"NotForPublicRelease\"] = 18] = \"NotForPublicRelease\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Confidential\"] = 19] = \"Confidential\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Final\"] = 20] = \"Final\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Sold\"] = 21] = \"Sold\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Departmental\"] = 22] = \"Departmental\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"ForComment\"] = 23] = \"ForComment\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"TopSecret\"] = 24] = \"TopSecret\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"Draft\"] = 25] = \"Draft\";\n  PdfAnnotationIcon2[PdfAnnotationIcon2[\"ForPublicRelease\"] = 26] = \"ForPublicRelease\";\n  return PdfAnnotationIcon2;\n})(PdfAnnotationIcon || {});\nvar PdfAnnotationLineEnding = /* @__PURE__ */ ((PdfAnnotationLineEnding2) => {\n  PdfAnnotationLineEnding2[PdfAnnotationLineEnding2[\"None\"] = 0] = \"None\";\n  PdfAnnotationLineEnding2[PdfAnnotationLineEnding2[\"Square\"] = 1] = \"Square\";\n  PdfAnnotationLineEnding2[PdfAnnotationLineEnding2[\"Circle\"] = 2] = \"Circle\";\n  PdfAnnotationLineEnding2[PdfAnnotationLineEnding2[\"Diamond\"] = 3] = \"Diamond\";\n  PdfAnnotationLineEnding2[PdfAnnotationLineEnding2[\"OpenArrow\"] = 4] = \"OpenArrow\";\n  PdfAnnotationLineEnding2[PdfAnnotationLineEnding2[\"ClosedArrow\"] = 5] = \"ClosedArrow\";\n  PdfAnnotationLineEnding2[PdfAnnotationLineEnding2[\"Butt\"] = 6] = \"Butt\";\n  PdfAnnotationLineEnding2[PdfAnnotationLineEnding2[\"ROpenArrow\"] = 7] = \"ROpenArrow\";\n  PdfAnnotationLineEnding2[PdfAnnotationLineEnding2[\"RClosedArrow\"] = 8] = \"RClosedArrow\";\n  PdfAnnotationLineEnding2[PdfAnnotationLineEnding2[\"Slash\"] = 9] = \"Slash\";\n  PdfAnnotationLineEnding2[PdfAnnotationLineEnding2[\"Unknown\"] = 10] = \"Unknown\";\n  return PdfAnnotationLineEnding2;\n})(PdfAnnotationLineEnding || {});\nvar PDF_FORM_FIELD_TYPE = /* @__PURE__ */ ((PDF_FORM_FIELD_TYPE2) => {\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"PUSHBUTTON\"] = 1] = \"PUSHBUTTON\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"CHECKBOX\"] = 2] = \"CHECKBOX\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"RADIOBUTTON\"] = 3] = \"RADIOBUTTON\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"COMBOBOX\"] = 4] = \"COMBOBOX\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"LISTBOX\"] = 5] = \"LISTBOX\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"TEXTFIELD\"] = 6] = \"TEXTFIELD\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"SIGNATURE\"] = 7] = \"SIGNATURE\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"XFA\"] = 8] = \"XFA\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"XFA_CHECKBOX\"] = 9] = \"XFA_CHECKBOX\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"XFA_COMBOBOX\"] = 10] = \"XFA_COMBOBOX\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"XFA_IMAGEFIELD\"] = 11] = \"XFA_IMAGEFIELD\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"XFA_LISTBOX\"] = 12] = \"XFA_LISTBOX\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"XFA_PUSHBUTTON\"] = 13] = \"XFA_PUSHBUTTON\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"XFA_SIGNATURE\"] = 14] = \"XFA_SIGNATURE\";\n  PDF_FORM_FIELD_TYPE2[PDF_FORM_FIELD_TYPE2[\"XFA_TEXTFIELD\"] = 15] = \"XFA_TEXTFIELD\";\n  return PDF_FORM_FIELD_TYPE2;\n})(PDF_FORM_FIELD_TYPE || {});\nvar PdfAnnotationColorType = /* @__PURE__ */ ((PdfAnnotationColorType2) => {\n  PdfAnnotationColorType2[PdfAnnotationColorType2[\"Color\"] = 0] = \"Color\";\n  PdfAnnotationColorType2[PdfAnnotationColorType2[\"InteriorColor\"] = 1] = \"InteriorColor\";\n  return PdfAnnotationColorType2;\n})(PdfAnnotationColorType || {});\nvar PdfAnnotationBorderStyle = /* @__PURE__ */ ((PdfAnnotationBorderStyle2) => {\n  PdfAnnotationBorderStyle2[PdfAnnotationBorderStyle2[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n  PdfAnnotationBorderStyle2[PdfAnnotationBorderStyle2[\"SOLID\"] = 1] = \"SOLID\";\n  PdfAnnotationBorderStyle2[PdfAnnotationBorderStyle2[\"DASHED\"] = 2] = \"DASHED\";\n  PdfAnnotationBorderStyle2[PdfAnnotationBorderStyle2[\"BEVELED\"] = 3] = \"BEVELED\";\n  PdfAnnotationBorderStyle2[PdfAnnotationBorderStyle2[\"INSET\"] = 4] = \"INSET\";\n  PdfAnnotationBorderStyle2[PdfAnnotationBorderStyle2[\"UNDERLINE\"] = 5] = \"UNDERLINE\";\n  PdfAnnotationBorderStyle2[PdfAnnotationBorderStyle2[\"CLOUDY\"] = 6] = \"CLOUDY\";\n  return PdfAnnotationBorderStyle2;\n})(PdfAnnotationBorderStyle || {});\nvar PdfAnnotationFlags = /* @__PURE__ */ ((PdfAnnotationFlags2) => {\n  PdfAnnotationFlags2[PdfAnnotationFlags2[\"NONE\"] = 0] = \"NONE\";\n  PdfAnnotationFlags2[PdfAnnotationFlags2[\"INVISIBLE\"] = 1] = \"INVISIBLE\";\n  PdfAnnotationFlags2[PdfAnnotationFlags2[\"HIDDEN\"] = 2] = \"HIDDEN\";\n  PdfAnnotationFlags2[PdfAnnotationFlags2[\"PRINT\"] = 4] = \"PRINT\";\n  PdfAnnotationFlags2[PdfAnnotationFlags2[\"NO_ZOOM\"] = 8] = \"NO_ZOOM\";\n  PdfAnnotationFlags2[PdfAnnotationFlags2[\"NO_ROTATE\"] = 16] = \"NO_ROTATE\";\n  PdfAnnotationFlags2[PdfAnnotationFlags2[\"NO_VIEW\"] = 32] = \"NO_VIEW\";\n  PdfAnnotationFlags2[PdfAnnotationFlags2[\"READ_ONLY\"] = 64] = \"READ_ONLY\";\n  PdfAnnotationFlags2[PdfAnnotationFlags2[\"LOCKED\"] = 128] = \"LOCKED\";\n  PdfAnnotationFlags2[PdfAnnotationFlags2[\"TOGGLE_NOVIEW\"] = 256] = \"TOGGLE_NOVIEW\";\n  return PdfAnnotationFlags2;\n})(PdfAnnotationFlags || {});\nvar PDF_FORM_FIELD_FLAG = /* @__PURE__ */ ((PDF_FORM_FIELD_FLAG2) => {\n  PDF_FORM_FIELD_FLAG2[PDF_FORM_FIELD_FLAG2[\"NONE\"] = 0] = \"NONE\";\n  PDF_FORM_FIELD_FLAG2[PDF_FORM_FIELD_FLAG2[\"READONLY\"] = 1] = \"READONLY\";\n  PDF_FORM_FIELD_FLAG2[PDF_FORM_FIELD_FLAG2[\"REQUIRED\"] = 2] = \"REQUIRED\";\n  PDF_FORM_FIELD_FLAG2[PDF_FORM_FIELD_FLAG2[\"NOEXPORT\"] = 4] = \"NOEXPORT\";\n  PDF_FORM_FIELD_FLAG2[PDF_FORM_FIELD_FLAG2[\"TEXT_MULTIPLINE\"] = 4096] = \"TEXT_MULTIPLINE\";\n  PDF_FORM_FIELD_FLAG2[PDF_FORM_FIELD_FLAG2[\"TEXT_PASSWORD\"] = 8192] = \"TEXT_PASSWORD\";\n  PDF_FORM_FIELD_FLAG2[PDF_FORM_FIELD_FLAG2[\"CHOICE_COMBO\"] = 131072] = \"CHOICE_COMBO\";\n  PDF_FORM_FIELD_FLAG2[PDF_FORM_FIELD_FLAG2[\"CHOICE_EDIT\"] = 262144] = \"CHOICE_EDIT\";\n  PDF_FORM_FIELD_FLAG2[PDF_FORM_FIELD_FLAG2[\"CHOICE_MULTL_SELECT\"] = 2097152] = \"CHOICE_MULTL_SELECT\";\n  return PDF_FORM_FIELD_FLAG2;\n})(PDF_FORM_FIELD_FLAG || {});\nvar PdfPageObjectType = /* @__PURE__ */ ((PdfPageObjectType2) => {\n  PdfPageObjectType2[PdfPageObjectType2[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n  PdfPageObjectType2[PdfPageObjectType2[\"TEXT\"] = 1] = \"TEXT\";\n  PdfPageObjectType2[PdfPageObjectType2[\"PATH\"] = 2] = \"PATH\";\n  PdfPageObjectType2[PdfPageObjectType2[\"IMAGE\"] = 3] = \"IMAGE\";\n  PdfPageObjectType2[PdfPageObjectType2[\"SHADING\"] = 4] = \"SHADING\";\n  PdfPageObjectType2[PdfPageObjectType2[\"FORM\"] = 5] = \"FORM\";\n  return PdfPageObjectType2;\n})(PdfPageObjectType || {});\nconst PdfAnnotationFlagName = Object.freeze({\n  [\n    1\n    /* INVISIBLE */\n  ]: \"invisible\",\n  [\n    2\n    /* HIDDEN */\n  ]: \"hidden\",\n  [\n    4\n    /* PRINT */\n  ]: \"print\",\n  [\n    8\n    /* NO_ZOOM */\n  ]: \"noZoom\",\n  [\n    16\n    /* NO_ROTATE */\n  ]: \"noRotate\",\n  [\n    32\n    /* NO_VIEW */\n  ]: \"noView\",\n  [\n    64\n    /* READ_ONLY */\n  ]: \"readOnly\",\n  [\n    128\n    /* LOCKED */\n  ]: \"locked\",\n  [\n    256\n    /* TOGGLE_NOVIEW */\n  ]: \"toggleNoView\"\n});\nconst PdfAnnotationFlagValue = Object.entries(\n  PdfAnnotationFlagName\n).reduce(\n  (acc, [bit, name]) => {\n    acc[name] = Number(bit);\n    return acc;\n  },\n  {}\n);\nfunction flagsToNames(raw) {\n  return Object.keys(PdfAnnotationFlagName).filter((flag) => (raw & flag) !== 0).map((flag) => PdfAnnotationFlagName[flag]);\n}\nfunction namesToFlags(names) {\n  return names.reduce(\n    (mask, name) => mask | PdfAnnotationFlagValue[name],\n    0\n    /* NONE */\n  );\n}\nvar PdfSegmentObjectType = /* @__PURE__ */ ((PdfSegmentObjectType2) => {\n  PdfSegmentObjectType2[PdfSegmentObjectType2[\"UNKNOWN\"] = -1] = \"UNKNOWN\";\n  PdfSegmentObjectType2[PdfSegmentObjectType2[\"LINETO\"] = 0] = \"LINETO\";\n  PdfSegmentObjectType2[PdfSegmentObjectType2[\"BEZIERTO\"] = 1] = \"BEZIERTO\";\n  PdfSegmentObjectType2[PdfSegmentObjectType2[\"MOVETO\"] = 2] = \"MOVETO\";\n  return PdfSegmentObjectType2;\n})(PdfSegmentObjectType || {});\nvar PdfEngineFeature = /* @__PURE__ */ ((PdfEngineFeature2) => {\n  PdfEngineFeature2[PdfEngineFeature2[\"RenderPage\"] = 0] = \"RenderPage\";\n  PdfEngineFeature2[PdfEngineFeature2[\"RenderPageRect\"] = 1] = \"RenderPageRect\";\n  PdfEngineFeature2[PdfEngineFeature2[\"Thumbnails\"] = 2] = \"Thumbnails\";\n  PdfEngineFeature2[PdfEngineFeature2[\"Bookmarks\"] = 3] = \"Bookmarks\";\n  PdfEngineFeature2[PdfEngineFeature2[\"Annotations\"] = 4] = \"Annotations\";\n  return PdfEngineFeature2;\n})(PdfEngineFeature || {});\nvar PdfEngineOperation = /* @__PURE__ */ ((PdfEngineOperation2) => {\n  PdfEngineOperation2[PdfEngineOperation2[\"Create\"] = 0] = \"Create\";\n  PdfEngineOperation2[PdfEngineOperation2[\"Read\"] = 1] = \"Read\";\n  PdfEngineOperation2[PdfEngineOperation2[\"Update\"] = 2] = \"Update\";\n  PdfEngineOperation2[PdfEngineOperation2[\"Delete\"] = 3] = \"Delete\";\n  return PdfEngineOperation2;\n})(PdfEngineOperation || {});\nvar MatchFlag = /* @__PURE__ */ ((MatchFlag2) => {\n  MatchFlag2[MatchFlag2[\"None\"] = 0] = \"None\";\n  MatchFlag2[MatchFlag2[\"MatchCase\"] = 1] = \"MatchCase\";\n  MatchFlag2[MatchFlag2[\"MatchWholeWord\"] = 2] = \"MatchWholeWord\";\n  MatchFlag2[MatchFlag2[\"MatchConsecutive\"] = 4] = \"MatchConsecutive\";\n  return MatchFlag2;\n})(MatchFlag || {});\nfunction unionFlags(flags) {\n  return flags.reduce(\n    (flag, currFlag) => {\n      return flag | currFlag;\n    },\n    0\n    /* None */\n  );\n}\nfunction compareSearchTarget(targetA, targetB) {\n  const flagA = unionFlags(targetA.flags);\n  const flagB = unionFlags(targetB.flags);\n  return flagA === flagB && targetA.keyword === targetB.keyword;\n}\nvar PdfPermission = /* @__PURE__ */ ((PdfPermission2) => {\n  PdfPermission2[PdfPermission2[\"PrintDocument\"] = 8] = \"PrintDocument\";\n  PdfPermission2[PdfPermission2[\"ModifyContent\"] = 16] = \"ModifyContent\";\n  PdfPermission2[PdfPermission2[\"CopyOrExtract\"] = 32] = \"CopyOrExtract\";\n  PdfPermission2[PdfPermission2[\"AddOrModifyTextAnnot\"] = 64] = \"AddOrModifyTextAnnot\";\n  PdfPermission2[PdfPermission2[\"FillInExistingForm\"] = 512] = \"FillInExistingForm\";\n  PdfPermission2[PdfPermission2[\"ExtractTextOrGraphics\"] = 1024] = \"ExtractTextOrGraphics\";\n  PdfPermission2[PdfPermission2[\"AssembleDocument\"] = 2048] = \"AssembleDocument\";\n  PdfPermission2[PdfPermission2[\"PrintHighQuality\"] = 4096] = \"PrintHighQuality\";\n  return PdfPermission2;\n})(PdfPermission || {});\nvar PdfPageFlattenFlag = /* @__PURE__ */ ((PdfPageFlattenFlag2) => {\n  PdfPageFlattenFlag2[PdfPageFlattenFlag2[\"Display\"] = 0] = \"Display\";\n  PdfPageFlattenFlag2[PdfPageFlattenFlag2[\"Print\"] = 1] = \"Print\";\n  return PdfPageFlattenFlag2;\n})(PdfPageFlattenFlag || {});\nvar PdfPageFlattenResult = /* @__PURE__ */ ((PdfPageFlattenResult2) => {\n  PdfPageFlattenResult2[PdfPageFlattenResult2[\"Fail\"] = 0] = \"Fail\";\n  PdfPageFlattenResult2[PdfPageFlattenResult2[\"Success\"] = 1] = \"Success\";\n  PdfPageFlattenResult2[PdfPageFlattenResult2[\"NothingToDo\"] = 2] = \"NothingToDo\";\n  return PdfPageFlattenResult2;\n})(PdfPageFlattenResult || {});\nvar PdfErrorCode = /* @__PURE__ */ ((PdfErrorCode2) => {\n  PdfErrorCode2[PdfErrorCode2[\"Ok\"] = 0] = \"Ok\";\n  PdfErrorCode2[PdfErrorCode2[\"Unknown\"] = 1] = \"Unknown\";\n  PdfErrorCode2[PdfErrorCode2[\"NotFound\"] = 2] = \"NotFound\";\n  PdfErrorCode2[PdfErrorCode2[\"WrongFormat\"] = 3] = \"WrongFormat\";\n  PdfErrorCode2[PdfErrorCode2[\"Password\"] = 4] = \"Password\";\n  PdfErrorCode2[PdfErrorCode2[\"Security\"] = 5] = \"Security\";\n  PdfErrorCode2[PdfErrorCode2[\"PageError\"] = 6] = \"PageError\";\n  PdfErrorCode2[PdfErrorCode2[\"XFALoad\"] = 7] = \"XFALoad\";\n  PdfErrorCode2[PdfErrorCode2[\"XFALayout\"] = 8] = \"XFALayout\";\n  PdfErrorCode2[PdfErrorCode2[\"Cancelled\"] = 9] = \"Cancelled\";\n  PdfErrorCode2[PdfErrorCode2[\"Initialization\"] = 10] = \"Initialization\";\n  PdfErrorCode2[PdfErrorCode2[\"NotReady\"] = 11] = \"NotReady\";\n  PdfErrorCode2[PdfErrorCode2[\"NotSupport\"] = 12] = \"NotSupport\";\n  PdfErrorCode2[PdfErrorCode2[\"LoadDoc\"] = 13] = \"LoadDoc\";\n  PdfErrorCode2[PdfErrorCode2[\"DocNotOpen\"] = 14] = \"DocNotOpen\";\n  PdfErrorCode2[PdfErrorCode2[\"CantCloseDoc\"] = 15] = \"CantCloseDoc\";\n  PdfErrorCode2[PdfErrorCode2[\"CantCreateNewDoc\"] = 16] = \"CantCreateNewDoc\";\n  PdfErrorCode2[PdfErrorCode2[\"CantImportPages\"] = 17] = \"CantImportPages\";\n  PdfErrorCode2[PdfErrorCode2[\"CantCreateAnnot\"] = 18] = \"CantCreateAnnot\";\n  PdfErrorCode2[PdfErrorCode2[\"CantSetAnnotRect\"] = 19] = \"CantSetAnnotRect\";\n  PdfErrorCode2[PdfErrorCode2[\"CantSetAnnotContent\"] = 20] = \"CantSetAnnotContent\";\n  PdfErrorCode2[PdfErrorCode2[\"CantRemoveInkList\"] = 21] = \"CantRemoveInkList\";\n  PdfErrorCode2[PdfErrorCode2[\"CantAddInkStoke\"] = 22] = \"CantAddInkStoke\";\n  PdfErrorCode2[PdfErrorCode2[\"CantReadAttachmentSize\"] = 23] = \"CantReadAttachmentSize\";\n  PdfErrorCode2[PdfErrorCode2[\"CantReadAttachmentContent\"] = 24] = \"CantReadAttachmentContent\";\n  PdfErrorCode2[PdfErrorCode2[\"CantFocusAnnot\"] = 25] = \"CantFocusAnnot\";\n  PdfErrorCode2[PdfErrorCode2[\"CantSelectText\"] = 26] = \"CantSelectText\";\n  PdfErrorCode2[PdfErrorCode2[\"CantSelectOption\"] = 27] = \"CantSelectOption\";\n  PdfErrorCode2[PdfErrorCode2[\"CantCheckField\"] = 28] = \"CantCheckField\";\n  PdfErrorCode2[PdfErrorCode2[\"CantSetAnnotString\"] = 29] = \"CantSetAnnotString\";\n  return PdfErrorCode2;\n})(PdfErrorCode || {});\nclass PdfTaskHelper {\n  /**\n   * Create a task\n   * @returns new task\n   */\n  static create() {\n    return new Task();\n  }\n  /**\n   * Create a task that has been resolved with value\n   * @param result - resolved value\n   * @returns resolved task\n   */\n  static resolve(result) {\n    const task = new Task();\n    task.resolve(result);\n    return task;\n  }\n  /**\n   * Create a task that has been rejected with error\n   * @param reason - rejected error\n   * @returns rejected task\n   */\n  static reject(reason) {\n    const task = new Task();\n    task.reject(reason);\n    return task;\n  }\n  /**\n   * Create a task that has been aborted with error\n   * @param reason - aborted error\n   * @returns aborted task\n   */\n  static abort(reason) {\n    const task = new Task();\n    task.reject(reason);\n    return task;\n  }\n}\nfunction pdfColorToWebColor(c) {\n  const clamp = (n) => Math.max(0, Math.min(255, n));\n  const toHex = (n) => clamp(n).toString(16).padStart(2, \"0\");\n  return `#${toHex(c.red)}${toHex(c.green)}${toHex(c.blue)}`;\n}\nfunction webColorToPdfColor(color) {\n  if (/^#?[0-9a-f]{3}$/i.test(color)) {\n    color = color.replace(/^#?([0-9a-f])([0-9a-f])([0-9a-f])$/i, \"#$1$1$2$2$3$3\").toLowerCase();\n  }\n  const [, r, g, b] = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(color) ?? (() => {\n    throw new Error(`Invalid hex colour: \"${color}\"`);\n  })();\n  return {\n    red: parseInt(r, 16),\n    green: parseInt(g, 16),\n    blue: parseInt(b, 16)\n  };\n}\nfunction pdfAlphaToWebOpacity(alpha) {\n  const clamp = (n) => Math.max(0, Math.min(255, n));\n  return clamp(alpha) / 255;\n}\nfunction webOpacityToPdfAlpha(opacity) {\n  const clamp = (n, hi = 255) => Math.max(0, Math.min(hi, n));\n  return clamp(Math.round(opacity * 255));\n}\nfunction extractPdfColor(c) {\n  return { red: c.red, green: c.green, blue: c.blue };\n}\nfunction extractWebOpacity(c) {\n  return pdfAlphaToWebOpacity(c.alpha);\n}\nfunction combinePdfColorWithAlpha(color, alpha) {\n  return { ...color, alpha };\n}\nfunction combineWebColorWithOpacity(color, opacity) {\n  return { color, opacity };\n}\nfunction pdfAlphaColorToWebAlphaColor(c) {\n  const color = pdfColorToWebColor(extractPdfColor(c));\n  const opacity = extractWebOpacity(c);\n  return { color, opacity };\n}\nfunction webAlphaColorToPdfAlphaColor({ color, opacity }) {\n  const pdfColor = webColorToPdfColor(color);\n  const alpha = webOpacityToPdfAlpha(opacity);\n  return combinePdfColorWithAlpha(pdfColor, alpha);\n}\nfunction pdfDateToDate(pdf) {\n  if (!(pdf == null ? void 0 : pdf.startsWith(\"D:\")) || pdf.length < 16) return;\n  const y = +pdf.slice(2, 6);\n  const mo = +pdf.slice(6, 8) - 1;\n  const d = +pdf.slice(8, 10);\n  const H = +pdf.slice(10, 12);\n  const M = +pdf.slice(12, 14);\n  const S = +pdf.slice(14, 16);\n  return new Date(Date.UTC(y, mo, d, H, M, S));\n}\nfunction dateToPdfDate(date = /* @__PURE__ */ new Date()) {\n  const z = (n, len = 2) => n.toString().padStart(len, \"0\");\n  const YYYY = date.getUTCFullYear();\n  const MM = z(date.getUTCMonth() + 1);\n  const DD = z(date.getUTCDate());\n  const HH = z(date.getUTCHours());\n  const mm = z(date.getUTCMinutes());\n  const SS = z(date.getUTCSeconds());\n  return `D:${YYYY}${MM}${DD}${HH}${mm}${SS}`;\n}\nconst MixedTextAlignment = Symbol(\"mixed\");\nconst TEXT_ALIGNMENT_INFOS = Object.freeze([\n  { id: PdfTextAlignment.Left, label: \"Left\", css: \"left\" },\n  { id: PdfTextAlignment.Center, label: \"Center\", css: \"center\" },\n  { id: PdfTextAlignment.Right, label: \"Right\", css: \"right\" }\n]);\nconst enumToTextInfo = TEXT_ALIGNMENT_INFOS.reduce(\n  (m, info) => {\n    m[info.id] = info;\n    return m;\n  },\n  {}\n);\nconst cssToTextEnum = TEXT_ALIGNMENT_INFOS.reduce(\n  (m, info) => {\n    m[info.css] = info.id;\n    return m;\n  },\n  {}\n);\nfunction getTextAlignmentInfo(alignment) {\n  return enumToTextInfo[alignment] ?? enumToTextInfo[PdfTextAlignment.Left];\n}\nfunction textAlignmentToCss(alignment) {\n  return getTextAlignmentInfo(alignment).css;\n}\nfunction cssToTextAlignment(value) {\n  return cssToTextEnum[value];\n}\nfunction textAlignmentLabel(alignment) {\n  return getTextAlignmentInfo(alignment).label;\n}\nfunction reduceTextAlignments(values) {\n  if (!values.length) return PdfTextAlignment.Left;\n  const first = values[0];\n  return values.every((a) => a === first) ? first : MixedTextAlignment;\n}\nconst textAlignmentSelectOptions = TEXT_ALIGNMENT_INFOS.map((info) => ({\n  value: info.id,\n  label: info.label\n}));\nvar PdfStandardFontFamily = /* @__PURE__ */ ((PdfStandardFontFamily2) => {\n  PdfStandardFontFamily2[\"Courier\"] = \"Courier\";\n  PdfStandardFontFamily2[\"Helvetica\"] = \"Helvetica\";\n  PdfStandardFontFamily2[\"Times\"] = \"Times\";\n  PdfStandardFontFamily2[\"Symbol\"] = \"Symbol\";\n  PdfStandardFontFamily2[\"ZapfDingbats\"] = \"ZapfDingbats\";\n  PdfStandardFontFamily2[\"Unknown\"] = \"Unknown\";\n  return PdfStandardFontFamily2;\n})(PdfStandardFontFamily || {});\nconst DEFAULT_FALLBACK_FONT = PdfStandardFont.Helvetica;\nconst MixedStandardFont = Symbol(\"mixed\");\nconst HELVETICA_DESC = {\n  id: PdfStandardFont.Helvetica,\n  family: \"Helvetica\",\n  bold: false,\n  italic: false,\n  label: \"Helvetica\",\n  css: \"Helvetica, Arial, sans-serif\"\n};\nconst STANDARD_FONT_DESCRIPTORS = Object.freeze([\n  {\n    id: PdfStandardFont.Courier,\n    family: \"Courier\",\n    bold: false,\n    italic: false,\n    label: \"Courier\",\n    css: \"Courier, monospace\"\n  },\n  {\n    id: PdfStandardFont.Courier_Bold,\n    family: \"Courier\",\n    bold: true,\n    italic: false,\n    label: \"Courier Bold\",\n    css: '\"Courier-Bold\", Courier, monospace'\n  },\n  {\n    id: PdfStandardFont.Courier_BoldOblique,\n    family: \"Courier\",\n    bold: true,\n    italic: true,\n    label: \"Courier Bold Oblique\",\n    css: '\"Courier-BoldOblique\", Courier, monospace'\n  },\n  {\n    id: PdfStandardFont.Courier_Oblique,\n    family: \"Courier\",\n    bold: false,\n    italic: true,\n    label: \"Courier Oblique\",\n    css: '\"Courier-Oblique\", Courier, monospace'\n  },\n  HELVETICA_DESC,\n  {\n    id: PdfStandardFont.Helvetica_Bold,\n    family: \"Helvetica\",\n    bold: true,\n    italic: false,\n    label: \"Helvetica Bold\",\n    css: '\"Helvetica-Bold\", Arial, sans-serif'\n  },\n  {\n    id: PdfStandardFont.Helvetica_BoldOblique,\n    family: \"Helvetica\",\n    bold: true,\n    italic: true,\n    label: \"Helvetica Bold Oblique\",\n    css: '\"Helvetica-BoldOblique\", Arial, sans-serif'\n  },\n  {\n    id: PdfStandardFont.Helvetica_Oblique,\n    family: \"Helvetica\",\n    bold: false,\n    italic: true,\n    label: \"Helvetica Oblique\",\n    css: '\"Helvetica-Oblique\", Arial, sans-serif'\n  },\n  {\n    id: PdfStandardFont.Times_Roman,\n    family: \"Times\",\n    bold: false,\n    italic: false,\n    label: \"Times Roman\",\n    css: '\"Times New Roman\", Times, serif'\n  },\n  {\n    id: PdfStandardFont.Times_Bold,\n    family: \"Times\",\n    bold: true,\n    italic: false,\n    label: \"Times Bold\",\n    css: '\"Times New Roman Bold\", Times, serif'\n  },\n  {\n    id: PdfStandardFont.Times_BoldItalic,\n    family: \"Times\",\n    bold: true,\n    italic: true,\n    label: \"Times Bold Italic\",\n    css: '\"Times New Roman Bold Italic\", Times, serif'\n  },\n  {\n    id: PdfStandardFont.Times_Italic,\n    family: \"Times\",\n    bold: false,\n    italic: true,\n    label: \"Times Italic\",\n    css: '\"Times New Roman Italic\", Times, serif'\n  },\n  {\n    id: PdfStandardFont.Symbol,\n    family: \"Symbol\",\n    bold: false,\n    italic: false,\n    label: \"Symbol\",\n    css: \"Symbol\"\n  },\n  {\n    id: PdfStandardFont.ZapfDingbats,\n    family: \"ZapfDingbats\",\n    bold: false,\n    italic: false,\n    label: \"Zapf Dingbats\",\n    css: \"ZapfDingbats\"\n  }\n]);\nconst idToDescriptor = STANDARD_FONT_DESCRIPTORS.reduce((m, d) => (m[d.id] = d, m), {});\nconst familyStyleToId = /* @__PURE__ */ new Map();\nfor (const d of STANDARD_FONT_DESCRIPTORS) {\n  familyStyleToId.set(`${d.family}_${d.bold}_${d.italic}`, d.id);\n}\nfunction unknownDescriptor() {\n  return HELVETICA_DESC;\n}\nfunction getStandardFontDescriptor(font) {\n  return idToDescriptor[font] ?? unknownDescriptor();\n}\nfunction standardFontFamily(font) {\n  return getStandardFontDescriptor(font).family;\n}\nfunction standardFontIsBold(font) {\n  return getStandardFontDescriptor(font).bold;\n}\nfunction standardFontIsItalic(font) {\n  return getStandardFontDescriptor(font).italic;\n}\nfunction makeStandardFont(family, { bold, italic }) {\n  return familyStyleToId.get(`${family}_${bold}_${italic}`) ?? DEFAULT_FALLBACK_FONT;\n}\nfunction standardFontLabel(font) {\n  return getStandardFontDescriptor(font).label;\n}\nfunction standardFontCss(font) {\n  return getStandardFontDescriptor(font).css;\n}\nconst standardFontFamilySelectOptions = Object.values(PdfStandardFontFamily).filter(\n  (f) => f !== \"Unknown\"\n  /* Unknown */\n).map((family) => ({ value: family, label: family }));\nfunction reduceStandardFonts(fonts) {\n  if (!fonts.length) return PdfStandardFont.Unknown;\n  const first = fonts[0];\n  return fonts.every((f) => f === first) ? first : MixedStandardFont;\n}\nconst STANDARD_FONT_FAMILIES = [\n  ...new Set(STANDARD_FONT_DESCRIPTORS.map((d) => d.family))\n];\nfunction standardFontFamilyLabel(fam) {\n  switch (fam) {\n    case \"Courier\":\n      return \"Courier\";\n    case \"Helvetica\":\n      return \"Helvetica\";\n    case \"Times\":\n      return \"Times\";\n    case \"Symbol\":\n      return \"Symbol\";\n    case \"ZapfDingbats\":\n      return \"ZapfDingbats\";\n    /* fallback */\n    default:\n      return \"Helvetica\";\n  }\n}\nconst MixedBlendMode = Symbol(\"mixed\");\nconst BLEND_MODE_INFOS = Object.freeze([\n  { id: PdfBlendMode.Normal, label: \"Normal\", css: \"normal\" },\n  { id: PdfBlendMode.Multiply, label: \"Multiply\", css: \"multiply\" },\n  { id: PdfBlendMode.Screen, label: \"Screen\", css: \"screen\" },\n  { id: PdfBlendMode.Overlay, label: \"Overlay\", css: \"overlay\" },\n  { id: PdfBlendMode.Darken, label: \"Darken\", css: \"darken\" },\n  { id: PdfBlendMode.Lighten, label: \"Lighten\", css: \"lighten\" },\n  { id: PdfBlendMode.ColorDodge, label: \"Color Dodge\", css: \"color-dodge\" },\n  { id: PdfBlendMode.ColorBurn, label: \"Color Burn\", css: \"color-burn\" },\n  { id: PdfBlendMode.HardLight, label: \"Hard Light\", css: \"hard-light\" },\n  { id: PdfBlendMode.SoftLight, label: \"Soft Light\", css: \"soft-light\" },\n  { id: PdfBlendMode.Difference, label: \"Difference\", css: \"difference\" },\n  { id: PdfBlendMode.Exclusion, label: \"Exclusion\", css: \"exclusion\" },\n  { id: PdfBlendMode.Hue, label: \"Hue\", css: \"hue\" },\n  { id: PdfBlendMode.Saturation, label: \"Saturation\", css: \"saturation\" },\n  { id: PdfBlendMode.Color, label: \"Color\", css: \"color\" },\n  { id: PdfBlendMode.Luminosity, label: \"Luminosity\", css: \"luminosity\" }\n]);\nconst enumToInfo = BLEND_MODE_INFOS.reduce(\n  (m, info) => {\n    m[info.id] = info;\n    return m;\n  },\n  {}\n);\nconst cssToEnum = BLEND_MODE_INFOS.reduce(\n  (m, info) => {\n    m[info.css] = info.id;\n    return m;\n  },\n  {}\n);\nfunction getBlendModeInfo(mode) {\n  return enumToInfo[mode] ?? enumToInfo[PdfBlendMode.Normal];\n}\nfunction blendModeToCss(mode) {\n  return getBlendModeInfo(mode).css;\n}\nfunction cssToBlendMode(value) {\n  return cssToEnum[value];\n}\nfunction blendModeLabel(mode) {\n  return getBlendModeInfo(mode).label;\n}\nfunction reduceBlendModes(modes) {\n  if (!modes.length) return PdfBlendMode.Normal;\n  const first = modes[0];\n  return modes.every((m) => m === first) ? first : MixedBlendMode;\n}\nconst blendModeSelectOptions = BLEND_MODE_INFOS.map((info) => ({\n  value: info.id,\n  label: info.label\n}));\nconst blendModeValues = BLEND_MODE_INFOS.map((info) => info.id);\nfunction uiBlendModeDisplay(value) {\n  return value === MixedBlendMode ? \"(mixed)\" : blendModeLabel(value);\n}\nfunction serializeLogger(logger) {\n  if (logger instanceof NoopLogger) {\n    return { type: \"noop\" };\n  }\n  if (logger instanceof ConsoleLogger) {\n    return { type: \"console\" };\n  }\n  if (logger instanceof PerfLogger) {\n    return { type: \"perf\" };\n  }\n  if (logger instanceof LevelLogger) {\n    const levelLogger = logger;\n    return {\n      type: \"level\",\n      config: {\n        level: levelLogger.level,\n        logger: serializeLogger(levelLogger.logger)\n      }\n    };\n  }\n  if (logger instanceof AllLogger) {\n    const allLogger = logger;\n    return {\n      type: \"all\",\n      config: {\n        loggers: allLogger.loggers.map(serializeLogger)\n      }\n    };\n  }\n  return { type: \"noop\" };\n}\nfunction deserializeLogger(serialized) {\n  var _a, _b, _c;\n  switch (serialized.type) {\n    case \"noop\":\n      return new NoopLogger();\n    case \"console\":\n      return new ConsoleLogger();\n    case \"perf\":\n      return new PerfLogger();\n    case \"level\":\n      if (!((_a = serialized.config) == null ? void 0 : _a.logger) || ((_b = serialized.config) == null ? void 0 : _b.level) === void 0) {\n        throw new Error(\"LevelLogger requires logger and level in config\");\n      }\n      return new LevelLogger(deserializeLogger(serialized.config.logger), serialized.config.level);\n    case \"all\":\n      if (!((_c = serialized.config) == null ? void 0 : _c.loggers)) {\n        throw new Error(\"AllLogger requires loggers array in config\");\n      }\n      return new AllLogger(serialized.config.loggers.map(deserializeLogger));\n    default:\n      return new NoopLogger();\n  }\n}\nconst V4_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\nfunction isUuidV4(str) {\n  return V4_REGEX.test(str);\n}\nfunction getRandomBytes(len) {\n  var _a;\n  if (typeof ((_a = globalThis.crypto) == null ? void 0 : _a.getRandomValues) === \"function\") {\n    return globalThis.crypto.getRandomValues(new Uint8Array(len));\n  }\n  if (typeof require === \"function\") {\n    try {\n      const { randomBytes } = require(\"crypto\");\n      return randomBytes(len);\n    } catch {\n    }\n  }\n  const bytes = new Uint8Array(len);\n  for (let i = 0; i < len; i++) bytes[i] = Math.floor(Math.random() * 256);\n  return bytes;\n}\nfunction uuidV4() {\n  var _a;\n  if (typeof ((_a = globalThis.crypto) == null ? void 0 : _a.randomUUID) === \"function\") {\n    return globalThis.crypto.randomUUID();\n  }\n  const bytes = getRandomBytes(16);\n  bytes[6] = bytes[6] & 15 | 64;\n  bytes[8] = bytes[8] & 63 | 128;\n  const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n  return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;\n}\nfunction ignore() {\n}\nexport {\n  AllLogger,\n  AppearanceMode,\n  ConsoleLogger,\n  LevelLogger,\n  LogLevel,\n  MatchFlag,\n  MixedBlendMode,\n  MixedStandardFont,\n  MixedTextAlignment,\n  NoopLogger,\n  PDF_FORM_FIELD_FLAG,\n  PDF_FORM_FIELD_TYPE,\n  PdfActionType,\n  PdfAnnotationBorderStyle,\n  PdfAnnotationColorType,\n  PdfAnnotationFlagName,\n  PdfAnnotationFlags,\n  PdfAnnotationIcon,\n  PdfAnnotationLineEnding,\n  PdfAnnotationObjectStatus,\n  PdfAnnotationState,\n  PdfAnnotationStateModel,\n  PdfAnnotationSubtype,\n  PdfAnnotationSubtypeName,\n  PdfBlendMode,\n  PdfBomOrZwnbsp,\n  PdfEngineFeature,\n  PdfEngineOperation,\n  PdfErrorCode,\n  PdfNonCharacterFFFE,\n  PdfNonCharacterFFFF,\n  PdfPageFlattenFlag,\n  PdfPageFlattenResult,\n  PdfPageObjectType,\n  PdfPermission,\n  PdfSegmentObjectType,\n  PdfSoftHyphenMarker,\n  PdfStampFit,\n  PdfStandardFont,\n  PdfStandardFontFamily,\n  PdfTaskHelper,\n  PdfTextAlignment,\n  PdfTrappedStatus,\n  PdfUnwantedTextMarkers,\n  PdfUnwantedTextRegex,\n  PdfVerticalAlignment,\n  PdfWordJoiner,\n  PdfZeroWidthSpace,\n  PdfZoomMode,\n  PerfLogger,\n  Rotation,\n  STANDARD_FONT_FAMILIES,\n  Task,\n  TaskAbortedError,\n  TaskRejectedError,\n  TaskStage,\n  blendModeLabel,\n  blendModeSelectOptions,\n  blendModeToCss,\n  blendModeValues,\n  boundingRect,\n  buildUserToDeviceMatrix,\n  calculateAngle,\n  calculateDegree,\n  combinePdfColorWithAlpha,\n  combineWebColorWithOpacity,\n  compareSearchTarget,\n  cssToBlendMode,\n  cssToTextAlignment,\n  dateToPdfDate,\n  deserializeLogger,\n  expandRect,\n  extractPdfColor,\n  extractWebOpacity,\n  flagsToNames,\n  getBlendModeInfo,\n  getStandardFontDescriptor,\n  getTextAlignmentInfo,\n  ignore,\n  isUuidV4,\n  makeStandardFont,\n  namesToFlags,\n  pdfAlphaColorToWebAlphaColor,\n  pdfAlphaToWebOpacity,\n  pdfColorToWebColor,\n  pdfDateToDate,\n  quadToRect,\n  rectEquals,\n  rectFromPoints,\n  rectToQuad,\n  reduceBlendModes,\n  reduceStandardFonts,\n  reduceTextAlignments,\n  restoreOffset,\n  restorePosition,\n  restoreRect,\n  rotateAndTranslatePoint,\n  rotatePosition,\n  rotateRect,\n  scalePosition,\n  scaleRect,\n  serializeLogger,\n  standardFontCss,\n  standardFontFamily,\n  standardFontFamilyLabel,\n  standardFontFamilySelectOptions,\n  standardFontIsBold,\n  standardFontIsItalic,\n  standardFontLabel,\n  stripPdfUnwantedMarkers,\n  swap,\n  textAlignmentLabel,\n  textAlignmentSelectOptions,\n  textAlignmentToCss,\n  toIntPos,\n  toIntRect,\n  toIntSize,\n  transformPosition,\n  transformRect,\n  transformSize,\n  uiBlendModeDisplay,\n  unionFlags,\n  uuidV4,\n  webAlphaColorToPdfAlphaColor,\n  webColorToPdfColor,\n  webOpacityToPdfAlpha\n};\n//# sourceMappingURL=index.js.map\n","export * from './engine';\nexport * from './helper';\nexport * from './runner';\n\nexport const DEFAULT_PDFIUM_WASM_URL: string =\n  'https://cdn.jsdelivr.net/npm/@kopjra/embedpdf-pdfium@__PDFIUM_VERSION__/dist/pdfium.wasm';\n","import {\n  FormFieldValue,\n  PdfAttachmentObject,\n  PdfFile,\n  PdfMetadataObject,\n  PdfSignatureObject,\n  PdfTextRectObject,\n  PdfWidgetAnnoObject,\n  Task,\n  Logger,\n  NoopLogger,\n  PdfAnnotationObject,\n  PdfBookmarksObject,\n  PdfDocumentObject,\n  PdfEngine,\n  PdfPageObject,\n  Rect,\n  PdfErrorCode,\n  PdfErrorReason,\n  PdfPageFlattenResult,\n  SearchAllPagesResult,\n  PdfFileUrl,\n  PdfGlyphObject,\n  PdfPageGeometry,\n  PageTextSlice,\n  AnnotationCreateContext,\n  PdfEngineMethodArgs,\n  PdfEngineMethodName,\n  PdfPageSearchProgress,\n  PdfRenderThumbnailOptions,\n  PdfSearchAllPagesOptions,\n  PdfFlattenPageOptions,\n  PdfRedactTextOptions,\n  PdfRenderPageAnnotationOptions,\n  PdfRenderPageOptions,\n  PdfOpenDocumentUrlOptions,\n  PdfOpenDocumentBufferOptions,\n  PdfAnnotationsProgress,\n  PdfPrintOptions,\n  PdfBookmarkObject,\n  PdfAddAttachmentParams,\n} from '@kopjra/embedpdf-models';\nimport { ExecuteRequest, Response, SpecificExecuteRequest } from './runner';\n\nconst LOG_SOURCE = 'WebWorkerEngine';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Create a request for the webworker\n * @param id - id of the request\n * @param name - name of the method\n * @param args - arguments of the method\n * @returns request\n */\nfunction createRequest<M extends PdfEngineMethodName>(\n  id: string,\n  name: M,\n  args: PdfEngineMethodArgs<M>,\n): SpecificExecuteRequest<M> {\n  return {\n    id,\n    type: 'ExecuteRequest',\n    data: {\n      name,\n      args,\n    },\n  };\n}\n\n/**\n * Task that executed by webworker\n */\nexport class WorkerTask<R, P = unknown> extends Task<R, PdfErrorReason, P> {\n  /**\n   * Create a task that bind to web worker with specified message id\n   * @param worker - web worker instance\n   * @param messageId - id of message\n   *\n   * @public\n   */\n  constructor(\n    public worker: Worker,\n    private messageId: string,\n  ) {\n    super();\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!Task.abort}\n   *\n   * @override\n   */\n  abort(e: PdfErrorReason) {\n    super.abort(e);\n\n    this.worker.postMessage({\n      id: this.messageId,\n      type: 'AbortRequest',\n    });\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!Task.progress}\n   *\n   * @override\n   */\n  progress(p: P) {\n    super.progress(p);\n  }\n}\n\n/**\n * PDF engine that runs within webworker\n */\nexport class WebWorkerEngine implements PdfEngine {\n  static readyTaskId = '0';\n  /**\n   * Task that represent the state of preparation\n   */\n  readyTask: WorkerTask<boolean>;\n  /**\n   * All the tasks that is executing\n   */\n  tasks: Map<string, WorkerTask<any>> = new Map();\n\n  /**\n   * Create an instance of WebWorkerEngine, it will create a worker with\n   * specified url.\n   * @param worker - webworker instance, this worker needs to contains the running instance of {@link EngineRunner}\n   * @param logger - logger instance\n   *\n   * @public\n   */\n  constructor(\n    private worker: Worker,\n    private logger: Logger = new NoopLogger(),\n  ) {\n    this.worker.addEventListener('message', this.handle);\n\n    this.readyTask = new WorkerTask<boolean>(this.worker, WebWorkerEngine.readyTaskId);\n    this.tasks.set(WebWorkerEngine.readyTaskId, this.readyTask);\n  }\n\n  /**\n   * Handle event from web worker. There are 2 kinds of event\n   * 1. ReadyResponse: web worker is ready\n   * 2. ExecuteResponse: result of execution\n   * @param evt - message event from web worker\n   * @returns\n   *\n   * @private\n   */\n  handle = (evt: MessageEvent<any>) => {\n    this.logger.debug(\n      LOG_SOURCE,\n      LOG_CATEGORY,\n      'webworker engine start handling message: ',\n      evt.data,\n    );\n    try {\n      const response = evt.data as Response;\n      const task = this.tasks.get(response.id);\n      if (!task) {\n        return;\n      }\n\n      switch (response.type) {\n        case 'ReadyResponse':\n          this.readyTask.resolve(true);\n          break;\n        case 'ExecuteProgress':\n          task.progress(response.data);\n          break;\n        case 'ExecuteResponse':\n          {\n            switch (response.data.type) {\n              case 'result':\n                task.resolve(response.data.value);\n                break;\n              case 'error':\n                task.reject(response.data.value.reason);\n                break;\n            }\n            this.tasks.delete(response.id);\n          }\n          break;\n      }\n    } catch (e) {\n      this.logger.error(LOG_SOURCE, LOG_CATEGORY, 'webworker met error when handling message: ', e);\n    }\n  };\n\n  /**\n   * Generate a unique message id\n   * @returns message id\n   *\n   * @private\n   */\n  generateRequestId(id: string) {\n    return `${id}.${Date.now()}.${Math.random()}`;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.initialize}\n   *\n   * @public\n   */\n  initialize() {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'initialize');\n    const requestId = this.generateRequestId('General');\n    const task = new WorkerTask<boolean>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'initialize', []);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.destroy}\n   *\n   * @public\n   */\n  destroy() {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'destroy');\n    const requestId = this.generateRequestId('General');\n    const task = new WorkerTask<boolean>(this.worker, requestId);\n\n    const finish = () => {\n      this.worker.removeEventListener('message', this.handle);\n      this.worker.terminate();\n    };\n\n    task.wait(finish, finish);\n\n    const request: ExecuteRequest = createRequest(requestId, 'destroy', []);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.openDocumentUrl}\n   *\n   * @public\n   */\n  openDocumentUrl(file: PdfFileUrl, options?: PdfOpenDocumentUrlOptions) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentUrl', file.url, options);\n    const requestId = this.generateRequestId(file.id);\n    const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'openDocumentUrl', [file, options]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.openDocument}\n   *\n   * @public\n   */\n  openDocumentBuffer(file: PdfFile, options?: PdfOpenDocumentBufferOptions) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentBuffer', file, options);\n    const requestId = this.generateRequestId(file.id);\n    const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'openDocumentBuffer', [file, options]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.getMetadata}\n   *\n   * @public\n   */\n  getMetadata(doc: PdfDocumentObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getMetadata', doc);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<PdfMetadataObject>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'getMetadata', [doc]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.setMetadata}\n   *\n   * @public\n   */\n  setMetadata(doc: PdfDocumentObject, metadata: Partial<PdfMetadataObject>) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setMetadata', doc, metadata);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<boolean>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'setMetadata', [doc, metadata]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.getDocPermissions}\n   *\n   * @public\n   */\n  getDocPermissions(doc: PdfDocumentObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocPermissions', doc);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<number>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'getDocPermissions', [doc]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.getDocUserPermissions}\n   *\n   * @public\n   */\n  getDocUserPermissions(doc: PdfDocumentObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocUserPermissions', doc);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<number>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'getDocUserPermissions', [doc]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.getBookmarks}\n   *\n   * @public\n   */\n  getBookmarks(doc: PdfDocumentObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getBookmarks', doc);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<PdfBookmarksObject>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'getBookmarks', [doc]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.setBookmarks}\n   *\n   * @public\n   */\n  setBookmarks(doc: PdfDocumentObject, payload: PdfBookmarkObject[]) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setBookmarks', doc, payload);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<boolean>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'setBookmarks', [doc, payload]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.deleteBookmarks}\n   *\n   * @public\n   */\n  deleteBookmarks(doc: PdfDocumentObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'deleteBookmarks', doc);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<boolean>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'deleteBookmarks', [doc]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.getSignatures}\n   *\n   * @public\n   */\n  getSignatures(doc: PdfDocumentObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getSignatures', doc);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<PdfSignatureObject[]>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'getSignatures', [doc]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.renderPage}\n   *\n   * @public\n   */\n  renderPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPage', doc, page, options);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<Blob>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'renderPage', [doc, page, options]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.renderPageRect}\n   *\n   * @public\n   */\n  renderPageRect(\n    doc: PdfDocumentObject,\n    page: PdfPageObject,\n    rect: Rect,\n    options?: PdfRenderPageOptions,\n  ) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageRect', doc, page, rect, options);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<Blob>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'renderPageRect', [\n      doc,\n      page,\n      rect,\n      options,\n    ]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.renderAnnotation}\n   *\n   * @public\n   */\n  renderPageAnnotation(\n    doc: PdfDocumentObject,\n    page: PdfPageObject,\n    annotation: PdfAnnotationObject,\n    options?: PdfRenderPageAnnotationOptions,\n  ) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderAnnotation', doc, page, annotation, options);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<Blob>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'renderPageAnnotation', [\n      doc,\n      page,\n      annotation,\n      options,\n    ]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.getAllAnnotations}\n   *\n   * @public\n   */\n  getAllAnnotations(doc: PdfDocumentObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAllAnnotations', doc);\n    const requestId = this.generateRequestId(doc.id);\n\n    const task = new WorkerTask<Record<number, PdfAnnotationObject[]>, PdfAnnotationsProgress>(\n      this.worker,\n      requestId,\n    );\n\n    const request: ExecuteRequest = createRequest(requestId, 'getAllAnnotations', [doc]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.getPageAnnotations}\n   *\n   * @public\n   */\n  getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageAnnotations', doc, page);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<PdfAnnotationObject[]>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'getPageAnnotations', [doc, page]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.createPageAnnotation}\n   *\n   * @public\n   */\n  createPageAnnotation<A extends PdfAnnotationObject>(\n    doc: PdfDocumentObject,\n    page: PdfPageObject,\n    annotation: A,\n    context?: AnnotationCreateContext<A>,\n  ) {\n    this.logger.debug(\n      LOG_SOURCE,\n      LOG_CATEGORY,\n      'createPageAnnotations',\n      doc,\n      page,\n      annotation,\n      context,\n    );\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<string>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'createPageAnnotation', [\n      doc,\n      page,\n      annotation,\n      context,\n    ] as PdfEngineMethodArgs<'createPageAnnotation'>);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  updatePageAnnotation(\n    doc: PdfDocumentObject,\n    page: PdfPageObject,\n    annotation: PdfAnnotationObject,\n  ) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'updatePageAnnotation', doc, page, annotation);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<boolean>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'updatePageAnnotation', [\n      doc,\n      page,\n      annotation,\n    ]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.removePageAnnotation}\n   *\n   * @public\n   */\n  removePageAnnotation(\n    doc: PdfDocumentObject,\n    page: PdfPageObject,\n    annotation: PdfAnnotationObject,\n  ) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removePageAnnotations', doc, page, annotation);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<boolean>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'removePageAnnotation', [\n      doc,\n      page,\n      annotation,\n    ]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.getPageTextRects}\n   *\n   * @public\n   */\n  getPageTextRects(doc: PdfDocumentObject, page: PdfPageObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageTextRects', doc, page);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<PdfTextRectObject[]>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'getPageTextRects', [doc, page]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.renderThumbnail}\n   *\n   * @public\n   */\n  renderThumbnail(\n    doc: PdfDocumentObject,\n    page: PdfPageObject,\n    options?: PdfRenderThumbnailOptions,\n  ) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderThumbnail', doc, page, options);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<Blob>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'renderThumbnail', [\n      doc,\n      page,\n      options,\n    ]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.searchAllPages}\n   *\n   * @public\n   */\n  searchAllPages(doc: PdfDocumentObject, keyword: string, options?: PdfSearchAllPagesOptions) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'searchAllPages', doc, keyword, options);\n\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<SearchAllPagesResult, PdfPageSearchProgress>(\n      this.worker,\n      requestId,\n    );\n\n    const request: ExecuteRequest = createRequest(requestId, 'searchAllPages', [\n      doc,\n      keyword,\n      options,\n    ]);\n\n    this.proxy(task, request);\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.saveAsCopy}\n   *\n   * @public\n   */\n  saveAsCopy(doc: PdfDocumentObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'saveAsCopy', doc);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'saveAsCopy', [doc]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.getAttachments}\n   *\n   * @public\n   */\n  getAttachments(doc: PdfDocumentObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAttachments', doc);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<PdfAttachmentObject[]>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'getAttachments', [doc]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.addAttachment}\n   *\n   * @public\n   */\n  addAttachment(doc: PdfDocumentObject, params: PdfAddAttachmentParams) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'addAttachment', doc, params);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<boolean>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'addAttachment', [doc, params]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.removeAttachment}\n   *\n   * @public\n   */\n  removeAttachment(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removeAttachment', doc, attachment);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<boolean>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'removeAttachment', [doc, attachment]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.readAttachmentContent}\n   *\n   * @public\n   */\n  readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'readAttachmentContent', doc, attachment);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'readAttachmentContent', [\n      doc,\n      attachment,\n    ]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.setFormFieldValue}\n   *\n   * @public\n   */\n  setFormFieldValue(\n    doc: PdfDocumentObject,\n    page: PdfPageObject,\n    annotation: PdfWidgetAnnoObject,\n    value: FormFieldValue,\n  ) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setFormFieldValue', doc, annotation, value);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<boolean>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'setFormFieldValue', [\n      doc,\n      page,\n      annotation,\n      value,\n    ]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.flattenPage}\n   *\n   * @public\n   */\n  flattenPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenPage', doc, page, options);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<PdfPageFlattenResult>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'flattenPage', [doc, page, options]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.extractPages}\n   *\n   * @public\n   */\n  extractPages(doc: PdfDocumentObject, pageIndexes: number[]) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractPages', doc);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'extractPages', [doc, pageIndexes]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.redactTextInQuads}\n   *\n   * @public\n   */\n  redactTextInRects(\n    doc: PdfDocumentObject,\n    page: PdfPageObject,\n    rects: Rect[],\n    options?: PdfRedactTextOptions,\n  ) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'redactTextInRects', doc, page, rects, options);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<boolean>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'redactTextInRects', [\n      doc,\n      page,\n      rects,\n      options,\n    ]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.extractText}\n   *\n   * @public\n   */\n  extractText(doc: PdfDocumentObject, pageIndexes: number[]) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractText', doc);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<string>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'extractText', [doc, pageIndexes]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.getTextSlices}\n   *\n   * @public\n   */\n  getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getTextSlices', doc, slices);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<string[]>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'getTextSlices', [doc, slices]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.getPageGlyphs}\n   *\n   * @public\n   */\n  getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGlyphs', doc, page);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<PdfGlyphObject[]>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'getPageGlyphs', [doc, page]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.getPageGeometry}\n   *\n   * @public\n   */\n  getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGeometry', doc, page);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<PdfPageGeometry>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'getPageGeometry', [doc, page]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.merge}\n   *\n   * @public\n   */\n  merge(files: PdfFile[]) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'merge', files);\n    const fileIds = files.map((file) => file.id).join('.');\n    const requestId = this.generateRequestId(fileIds);\n    const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'merge', [files]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.mergePages}\n   *\n   * @public\n   */\n  mergePages(mergeConfigs: Array<{ docId: string; pageIndices: number[] }>) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'mergePages', mergeConfigs);\n    const requestId = this.generateRequestId(mergeConfigs.map((config) => config.docId).join('.'));\n    const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'mergePages', [mergeConfigs]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.preparePrintDocument}\n   *\n   * @public\n   */\n  preparePrintDocument(doc: PdfDocumentObject, options?: PdfPrintOptions) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'preparePrintDocument', doc, options);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'preparePrintDocument', [\n      doc,\n      options,\n    ]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.closeDocument}\n   *\n   * @public\n   */\n  closeDocument(doc: PdfDocumentObject) {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeDocument', doc);\n    const requestId = this.generateRequestId(doc.id);\n    const task = new WorkerTask<boolean>(this.worker, requestId);\n\n    const request: ExecuteRequest = createRequest(requestId, 'closeDocument', [doc]);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * {@inheritDoc @kopjra/embedpdf-models!PdfEngine.closeAllDocuments}\n   *\n   * @public\n   */\n  closeAllDocuments() {\n    this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeAllDocuments');\n    const requestId = this.generateRequestId('closeAllDocuments');\n    const task = new WorkerTask<boolean>(this.worker, requestId);\n    const request: ExecuteRequest = createRequest(requestId, 'closeAllDocuments', []);\n    this.proxy(task, request);\n\n    return task;\n  }\n\n  /**\n   * Send the request to webworker inside and register the task\n   * @param task - task that waiting for the response\n   * @param request - request that needs send to web worker\n   * @param transferables - transferables that need to transfer to webworker\n   * @returns\n   *\n   * @internal\n   */\n  proxy<R>(task: WorkerTask<R>, request: ExecuteRequest, transferables: any[] = []) {\n    this.logger.debug(\n      LOG_SOURCE,\n      LOG_CATEGORY,\n      'send request to worker',\n      task,\n      request,\n      transferables,\n    );\n    this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'Begin', request.id);\n    this.readyTask.wait(\n      () => {\n        this.worker.postMessage(request, transferables);\n        task.wait(\n          () => {\n            this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n          },\n          () => {\n            this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n          },\n        );\n        this.tasks.set(request.id, task);\n      },\n      () => {\n        this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n        task.reject({\n          code: PdfErrorCode.Initialization,\n          message: 'worker initialization failed',\n        });\n      },\n    );\n  }\n}\n","<script lang=\"ts\">\n  import type { Snippet } from 'svelte';\n  import type { PdfEngine } from '@kopjra/embedpdf-models';\n  import { setPdfEngineContext } from '../context';\n\n  interface Props {\n    children: Snippet;\n    engine: PdfEngine | null;\n    isLoading: boolean;\n    error: Error | null;\n  }\n\n  let { children, engine, isLoading, error }: Props = $props();\n\n  // Update context reactively whenever props change\n  $effect(() => {\n    setPdfEngineContext({\n      engine,\n      isLoading,\n      error,\n    });\n  });\n</script>\n\n{@render children()}\n","import {\n  getPdfEngineContext,\n  type PdfEngineContextState,\n} from '../context/pdf-engine-context.svelte';\n\n/**\n * Hook to access the PDF engine from context.\n * @returns The PDF engine context state\n * @throws Error if used outside of PdfEngineProvider\n */\nexport function useEngineContext(): PdfEngineContextState {\n  const contextValue = getPdfEngineContext();\n\n  if (contextValue === undefined) {\n    throw new Error('useEngineContext must be used within a PdfEngineProvider');\n  }\n\n  return contextValue;\n}\n\n/**\n * Hook to access the PDF engine, with a more convenient API.\n * @returns The PDF engine or null if loading/error\n */\nexport function useEngine() {\n  const { engine, error } = getPdfEngineContext();\n\n  if (error) {\n    throw error;\n  }\n\n  return engine;\n}\n","import { ignore, Logger, PdfEngine } from '@kopjra/embedpdf-models';\nimport { DEFAULT_PDFIUM_WASM_URL } from '@kopjra/embedpdf-engines';\n\nexport interface UsePdfiumEngineProps {\n  wasmUrl?: string;\n  worker?: boolean;\n  logger?: Logger;\n}\n\nexport function usePdfiumEngine(config?: UsePdfiumEngineProps) {\n  const { wasmUrl = DEFAULT_PDFIUM_WASM_URL, worker = true, logger } = config ?? {};\n\n  // Create a reactive state object\n  const state = $state({\n    engine: null as PdfEngine | null,\n    isLoading: true,\n    error: null as Error | null,\n  });\n\n  let engineRef = $state<PdfEngine | null>(null);\n\n  const isBrowser = typeof window !== 'undefined';\n\n  if (isBrowser) {\n    $effect(() => {\n      let cancelled = false;\n\n      (async () => {\n        try {\n          const { createPdfiumEngine } = worker\n            ? await import('@kopjra/embedpdf-engines-pdfium-worker-engine')\n            : await import('@kopjra/embedpdf-engines-pdfium-direct-engine');\n\n          const pdfEngine = await createPdfiumEngine(wasmUrl, logger);\n          engineRef = pdfEngine;\n\n          pdfEngine.initialize().wait(\n            () => {\n              state.engine = pdfEngine;\n              state.isLoading = false;\n            },\n            (e) => {\n              state.error = new Error(e.reason.message);\n              state.isLoading = false;\n            },\n          );\n        } catch (e) {\n          if (!cancelled) {\n            state.error = e as Error;\n            state.isLoading = false;\n          }\n        }\n      })();\n\n      return () => {\n        cancelled = true;\n        engineRef?.closeAllDocuments?.().wait(() => {\n          engineRef?.destroy?.();\n          engineRef = null;\n        }, ignore);\n      };\n    });\n  }\n\n  // Return the reactive state object directly\n  return state;\n}\n"],"names":["PDF_ENGINE_CONTEXT_KEY","Symbol","getPdfEngineContext","context","getContext","Error","Rotation","Rotation2","swap","size","width","height","NoopLogger","isEnabled","debug","info","warn","error","perf","ConsoleLogger","source","category","args","console","event","phase","LevelLogger","constructor","logger","level","this","PerfLogger","identifier","globalThis","performance","mark","detail","measure","AllLogger","loggers","some","TaskAbortedError","reason","super","JSON","stringify","name","TaskRejectedError","Task","state","stage","resolvedCallbacks","rejectedCallbacks","_promise","progressCbs","toPromise","Promise","resolve","reject","wait","result","type","resolvedCallback","rejectedCallback","push","e","abort","fail","onProgress","cb","progress","p","all","tasks","combinedTask","length","results","Array","resolvedCount","isSettled","forEach","task","index","allSettled","settledCount","status","value","race","withProgress","completedCount","PdfUnwantedTextMarkers","Object","freeze","PdfUnwantedTextRegex","RegExp","join","PdfZoomMode","PdfZoomMode2","PdfTrappedStatus","PdfTrappedStatus2","PdfStandardFont","PdfStandardFont2","PdfTextAlignment","PdfTextAlignment2","PdfBlendMode","PdfBlendMode2","PdfStampFit","PdfStampFit2","PdfActionType","PdfActionType2","PdfAnnotationSubtype","PdfAnnotationSubtype2","AppearanceMode","AppearanceMode2","PdfAnnotationIcon","PdfAnnotationIcon2","PdfAnnotationLineEnding","PdfAnnotationLineEnding2","PDF_FORM_FIELD_TYPE","PDF_FORM_FIELD_TYPE2","PdfAnnotationColorType","PdfAnnotationColorType2","PdfAnnotationBorderStyle","PdfAnnotationBorderStyle2","PdfPageObjectType","PdfPageObjectType2","PdfAnnotationFlagName","PdfAnnotationFlagValue","entries","reduce","acc","bit","Number","MatchFlag","MatchFlag2","PdfPageFlattenFlag","PdfPageFlattenFlag2","PdfErrorCode","PdfErrorCode2","TEXT_ALIGNMENT_INFOS","id","Left","label","css","Center","Right","m","map","PdfStandardFontFamily","PdfStandardFontFamily2","Helvetica","HELVETICA_DESC","family","bold","italic","STANDARD_FONT_DESCRIPTORS","Courier","Courier_Bold","Courier_BoldOblique","Courier_Oblique","Helvetica_Bold","Helvetica_BoldOblique","Helvetica_Oblique","Times_Roman","Times_Bold","Times_BoldItalic","Times_Italic","ZapfDingbats","d","familyStyleToId","Map","set","values","filter","f","Set","BLEND_MODE_INFOS","Normal","Multiply","Screen","Overlay","Darken","Lighten","ColorDodge","ColorBurn","HardLight","SoftLight","Difference","Exclusion","Hue","Saturation","Color","Luminosity","V4_REGEX","ignore","DEFAULT_PDFIUM_WASM_URL","LOG_SOURCE","LOG_CATEGORY","createRequest","data","WorkerTask","worker","messageId","postMessage","_WebWorkerEngine","handle","evt","response","get","readyTask","delete","addEventListener","readyTaskId","generateRequestId","Date","now","Math","random","initialize","requestId","request","proxy","destroy","finish","removeEventListener","terminate","openDocumentUrl","file","options","url","openDocumentBuffer","getMetadata","doc","setMetadata","metadata","getDocPermissions","getDocUserPermissions","getBookmarks","setBookmarks","payload","deleteBookmarks","getSignatures","renderPage","page","renderPageRect","rect","renderPageAnnotation","annotation","getAllAnnotations","getPageAnnotations","createPageAnnotation","updatePageAnnotation","removePageAnnotation","getPageTextRects","renderThumbnail","searchAllPages","keyword","saveAsCopy","getAttachments","addAttachment","params","removeAttachment","attachment","readAttachmentContent","setFormFieldValue","flattenPage","extractPages","pageIndexes","redactTextInRects","rects","extractText","getTextSlices","slices","getPageGlyphs","getPageGeometry","merge","files","fileIds","mergePages","mergeConfigs","config","docId","preparePrintDocument","closeDocument","closeAllDocuments","transferables","code","Initialization","message","WebWorkerEngine","$","user_effect","engine","$$props","isLoading","setContext","create","rotation","outW","outH","L","origin","x","B","y","W","H","sx0","sy0","sx90","sy90","a","b","c","date","z","n","len","toString","padStart","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","raw","keys","flag","str","test","names","mask","alpha","max","min","toHex","clamp","red","green","blue","pdf","startsWith","slice","mo","M","S","UTC","q","xs","p1","p2","p3","p4","ys","r","serializeLogger","levelLogger","text","replace","floor","s","ceil","containerSize","scaleFactor","scaleRect","rotateRect","contextValue","wasmUrl","engineRef","window","cancelled","createPdfiumEngine","pdfEngine","_a","crypto","randomUUID","bytes","getRandomValues","Uint8Array","require","randomBytes","i","getRandomBytes","hex","from","color","toLowerCase","g","exec","parseInt","opacity","hi","round"],"mappings":"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"}