@goodtools/wiregasm
Version:
Packet Analyzer powered by Wireshark compiled for WebAssembly
1 lines • 15.8 kB
Source Map (JSON)
{"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\n if (beforeInit !== null) {\n await beforeInit(this.lib);\n }\n\n if (!this.lib.init()) {\n throw new Error(\"Failed to initialize Wiregasm\");\n }\n\n this.uploadDir = this.lib.getUploadDirectory();\n this.pluginsDir = this.lib.getPluginsDirectory();\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"}