{"mappings":"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","sources":["src/src/types.ts","src/src/utils.ts","src/src/index.ts","src/index.ts"],"sourcesContent":[null,null,null,"import {\n  BeforeInitCallback,\n  CheckFilterResponse,\n  CompleteField,\n  DissectSession,\n  DownloadResponse,\n  Follow,\n  Frame,\n  FramesResponse,\n  LoadResponse,\n  MapInput,\n  Pref,\n  PrefModule,\n  PrefSetResult,\n  TapConvResponse,\n  TapExportObjectResponse,\n  TapResponse,\n  Vector,\n  WiregasmLib,\n  WiregasmLibOverrides,\n  WiregasmLoader,\n} from \"./types\";\nimport { preferenceSetCodeToError, vectorToArray } from \"./utils\";\n\nconst ALLOWED_TAP_KEYS = new Set([\n  ...Array.from({ length: 15 }, (_, i) => `tap${i}`),\n  ...Array.from({ length: 15 }, (_, i) => `filter${i}`),\n]);\n\nconst ALLOWED_GRAPH_KEYS = new Set([\n  \"filter\",\n  \"interval\",\n  ...Array.from({ length: 9 }, (_, i) => `graph${i}`),\n  ...Array.from({ length: 9 }, (_, i) => `filter${i}`),\n]);\n\n/**\n * Wraps the WiregasmLib lib functionality and manages a single DissectSession\n */\nexport class Wiregasm {\n  lib: WiregasmLib;\n  initialized: boolean;\n  session: DissectSession | null;\n  uploadDir: string;\n  pluginsDir: string;\n\n  constructor() {\n    this.initialized = false;\n    this.session = null;\n  }\n\n  /**\n   * Initialize the wrapper and the Wiregasm module\n   *\n   * @param loader Loader function for the Emscripten module\n   * @param overrides Overrides\n   */\n  async init(\n    loader: WiregasmLoader,\n    overrides: WiregasmLibOverrides = {},\n    beforeInit: BeforeInitCallback = null\n  ) {\n    if (this.initialized) {\n      return;\n    }\n\n    this.lib = await loader(overrides);\n    this.uploadDir = this.lib.getUploadDirectory();\n    this.pluginsDir = this.lib.getPluginsDirectory();\n\n    if (beforeInit !== null) {\n      await beforeInit(this.lib);\n    }\n\n    this.lib.init();\n    this.initialized = true;\n  }\n\n  list_modules(): Vector<PrefModule> {\n    return this.lib.listModules();\n  }\n\n  list_prefs(module: string): Vector<Pref> {\n    return this.lib.listPreferences(module);\n  }\n\n  apply_prefs() {\n    this.lib.applyPreferences();\n  }\n\n  set_pref(module: string, key: string, value: string) {\n    const ret = this.lib.setPref(module, key, value);\n\n    if (ret.code != PrefSetResult.PREFS_SET_OK) {\n      const message =\n        ret.error != \"\" ? ret.error : preferenceSetCodeToError(ret.code);\n      throw new Error(\n        `Failed to set preference (${module}.${key}): ${message}`\n      );\n    }\n  }\n\n  get_pref(module: string, key: string): Pref {\n    const response = this.lib.getPref(module, key);\n    if (response.code != 0) {\n      throw new Error(`Failed to get preference (${module}.${key})`);\n    }\n    return response.data;\n  }\n\n  /**\n   * Check the validity of a filter expression.\n   *\n   * @param filter A display filter expression\n   */\n  test_filter(filter: string): CheckFilterResponse {\n    return this.lib.checkFilter(filter);\n  }\n\n  complete_filter(filter: string): { fields: CompleteField[] } {\n    const out = this.lib.completeFilter(filter);\n    return {\n      fields: vectorToArray(out.fields),\n    };\n  }\n\n  tap(taps: MapInput) {\n    // Validate keys.\n    if (!(\"tap0\" in taps)) {\n      throw new Error(\"tap0 is mandatory.\");\n    }\n    if (!Object.keys(taps).every((k) => ALLOWED_TAP_KEYS.has(k))) {\n      throw new Error(\n        `Invalid arguments. Allowed keys are: ${Array.from(\n          ALLOWED_GRAPH_KEYS\n        ).join(\", \")}.`\n      );\n    }\n\n    const args = new this.lib.MapInput();\n    Object.entries(taps).forEach(([k, v]) => args.set(k, v));\n\n    const response = this.session.tap(args);\n    return {\n      error: response.error,\n      taps: vectorToArray(response.taps).map((tap) => {\n        let res;\n        if (this.is_conv_tap(tap)) {\n          res = {\n            proto: tap.proto,\n            tap: tap.tap,\n            type: tap.type,\n            geoip: tap.geoip,\n            convs: vectorToArray(tap.convs),\n            hosts: vectorToArray(tap.hosts),\n          };\n        } else if (this.is_eo_tap(tap)) {\n          res = {\n            proto: tap.proto,\n            tap: tap.tap,\n            type: tap.type,\n            objects: vectorToArray(tap.objects),\n          };\n        } else {\n          (tap as { delete: () => void }).delete();\n          throw new Error(\"Unknown tap result\");\n        }\n        (tap as TapResponse & { delete: () => void }).delete();\n        return res;\n      }),\n    };\n  }\n\n  download(token: string): DownloadResponse {\n    return this.session.download(token);\n  }\n\n  iograph(input: MapInput) {\n    // Validate keys.\n    if (!(\"graph0\" in input)) {\n      throw new Error(\"graph0 is mandatory.\");\n    }\n    if (!Object.keys(input).every((k) => ALLOWED_GRAPH_KEYS.has(k))) {\n      throw new Error(\n        `Invalid arguments. Allowed keys are: ${Array.from(\n          ALLOWED_GRAPH_KEYS\n        ).join(\", \")}.`\n      );\n    }\n\n    const args = new this.lib.MapInput();\n    Object.entries(input).forEach(([k, v]) => args.set(k, v));\n\n    const out = this.session.iograph(args);\n    return {\n      ...out,\n      iograph: vectorToArray(out.iograph).map((t) => ({\n        items: vectorToArray(t.items),\n      })),\n    };\n  }\n\n  reload_lua_plugins() {\n    this.lib.reloadLuaPlugins();\n  }\n\n  add_plugin(name: string, data: string | ArrayBufferView, opts: object = {}) {\n    const path = this.pluginsDir + \"/\" + name;\n    this.lib.FS.writeFile(path, data, opts);\n  }\n\n  /**\n   * Load a packet trace file for analysis.\n   *\n   * @returns Response containing the status and summary\n   */\n  load(\n    name: string,\n    data: string | ArrayBufferView,\n    opts: object = {}\n  ): LoadResponse {\n    if (this.session != null) {\n      this.session.delete();\n    }\n\n    const path = this.uploadDir + \"/\" + name;\n    this.lib.FS.writeFile(path, data, opts);\n\n    this.session = new this.lib.DissectSession(path);\n\n    return this.session.load();\n  }\n\n  /**\n   * Get Packet List information for a range of packets.\n   *\n   * @param filter Output those frames that pass this filter expression\n   * @param skip Skip N frames\n   * @param limit Limit the output to N frames\n   */\n  frames(filter: string, skip = 0, limit = 0): FramesResponse {\n    return this.session.getFrames(filter, skip, limit);\n  }\n\n  /**\n   * Get full information about a frame including the protocol tree.\n   *\n   * @param number Frame number\n   */\n  frame(num: number): Frame {\n    return this.session.getFrame(num);\n  }\n\n  follow(follow: string, filter: string): Follow {\n    return this.session.follow(follow, filter);\n  }\n\n  destroy() {\n    if (this.initialized) {\n      if (this.session !== null) {\n        this.session.delete();\n        this.session = null;\n      }\n\n      this.lib.destroy();\n      this.initialized = false;\n    }\n  }\n\n  /**\n   * Returns the column headers\n   */\n  columns(): string[] {\n    const vec = this.lib.getColumns();\n\n    // convert it from a vector to array\n    return vectorToArray(vec);\n  }\n\n  is_eo_tap(tap: any): tap is TapExportObjectResponse {\n    return tap instanceof this.lib.TapExportObject;\n  }\n\n  is_conv_tap(tap: any): tap is TapConvResponse {\n    return tap instanceof this.lib.TapConvResponse;\n  }\n}\n\nexport * from \"./types\";\nexport * from \"./utils\";\n"],"names":[],"version":3,"file":"types.d.ts.map"}