wangzhibo
2026-05-09 53418655c061ac26f66058253f39200aced1ab1d
1
{"version":3,"file":"prelogin-payload.js","names":["_sprintfJs","require","_writableTrackingBuffer","_interopRequireDefault","_crypto","e","__esModule","default","optionBufferSize","traceIdSize","TOKEN","VERSION","ENCRYPTION","INSTOPT","THREADID","MARS","TRACEID","FEDAUTHREQUIRED","TERMINATOR","ENCRYPT","OFF","ON","NOT_SUP","REQ","encryptByValue","name","value","marsByValue","PreloginPayload","constructor","bufferOrOptions","encrypt","version","major","minor","build","subbuild","Buffer","data","options","createOptions","extractOptions","createVersionOption","createEncryptionOption","createInstanceOption","createThreadIdOption","createMarsOption","createTraceIdOption","createFedAuthOption","length","i","len","option","alloc","optionOffset","optionDataOffset","j","writeUInt8","token","writeUInt16BE","copy","buffer","WritableTrackingBuffer","writeUInt32BE","writeBuffer","randomBytes","offset","dataOffset","readUInt16BE","dataLength","extractVersion","extractEncryption","extractInstance","extractThreadId","extractMars","extractTraceId","extractFedAuth","readUInt8","encryption","encryptionString","instance","threadId","readUInt32BE","mars","marsString","traceId","subarray","fedAuthRequired","toString","indent","sprintf","_default","exports","module"],"sources":["../src/prelogin-payload.ts"],"sourcesContent":["import { sprintf } from 'sprintf-js';\n\nimport WritableTrackingBuffer from './tracking-buffer/writable-tracking-buffer';\nimport { randomBytes } from 'crypto';\n\nconst optionBufferSize = 20;\nconst traceIdSize = 36;\n\nconst TOKEN = {\n  VERSION: 0x00,\n  ENCRYPTION: 0x01,\n  INSTOPT: 0x02,\n  THREADID: 0x03,\n  MARS: 0x04,\n  TRACEID: 0x05,\n  FEDAUTHREQUIRED: 0x06,\n  TERMINATOR: 0xFF\n};\n\nconst ENCRYPT: { [key: string]: number } = {\n  OFF: 0x00,\n  ON: 0x01,\n  NOT_SUP: 0x02,\n  REQ: 0x03\n};\n\nconst encryptByValue: { [key: number]: string } = {};\n\nfor (const name in ENCRYPT) {\n  const value = ENCRYPT[name];\n  encryptByValue[value] = name;\n}\n\nconst MARS: { [key: string]: number } = {\n  OFF: 0x00,\n  ON: 0x01\n};\n\nconst marsByValue: { [key: number]: string } = {};\n\nfor (const name in MARS) {\n  const value = MARS[name];\n  marsByValue[value] = name;\n}\n\ninterface Options {\n  encrypt: boolean;\n  version: {\n    major: number;\n    minor: number;\n    build: number;\n    subbuild: number;\n  };\n}\n\n/*\n  s2.2.6.4\n */\nclass PreloginPayload {\n  declare data: Buffer;\n  declare options: Options;\n\n  declare version: {\n    major: number;\n    minor: number;\n    build: number;\n    subbuild: number;\n  };\n\n  declare encryption: number;\n  declare encryptionString: string;\n\n  declare instance: number;\n\n  declare threadId: number;\n\n  declare mars: number;\n  declare marsString: string;\n  declare traceId: Buffer;\n  declare fedAuthRequired: number;\n\n  constructor(bufferOrOptions: Buffer | Options = { encrypt: false, version: { major: 0, minor: 0, build: 0, subbuild: 0 } }) {\n    if (bufferOrOptions instanceof Buffer) {\n      this.data = bufferOrOptions;\n      this.options = { encrypt: false, version: { major: 0, minor: 0, build: 0, subbuild: 0 } };\n    } else {\n      this.options = bufferOrOptions as Options;\n      this.createOptions();\n    }\n    this.extractOptions();\n  }\n\n  createOptions() {\n    const options = [\n      this.createVersionOption(),\n      this.createEncryptionOption(),\n      this.createInstanceOption(),\n      this.createThreadIdOption(),\n      this.createMarsOption(),\n      this.createTraceIdOption(),\n      this.createFedAuthOption()\n    ];\n\n    let length = 0;\n    for (let i = 0, len = options.length; i < len; i++) {\n      const option = options[i];\n      length += 5 + option.data.length;\n    }\n    length++; // terminator\n    this.data = Buffer.alloc(length, 0);\n    let optionOffset = 0;\n    let optionDataOffset = 5 * options.length + 1;\n\n    for (let j = 0, len = options.length; j < len; j++) {\n      const option = options[j];\n      this.data.writeUInt8(option.token, optionOffset + 0);\n      this.data.writeUInt16BE(optionDataOffset, optionOffset + 1);\n      this.data.writeUInt16BE(option.data.length, optionOffset + 3);\n      optionOffset += 5;\n      option.data.copy(this.data, optionDataOffset);\n      optionDataOffset += option.data.length;\n    }\n\n    this.data.writeUInt8(TOKEN.TERMINATOR, optionOffset);\n  }\n\n  createVersionOption() {\n    const buffer = new WritableTrackingBuffer(optionBufferSize);\n    buffer.writeUInt8(this.options.version.major);\n    buffer.writeUInt8(this.options.version.minor);\n    buffer.writeUInt16BE(this.options.version.build);\n    buffer.writeUInt16BE(this.options.version.subbuild);\n    return {\n      token: TOKEN.VERSION,\n      data: buffer.data\n    };\n  }\n\n  createEncryptionOption() {\n    const buffer = new WritableTrackingBuffer(optionBufferSize);\n    if (this.options.encrypt) {\n      buffer.writeUInt8(ENCRYPT.ON);\n    } else {\n      buffer.writeUInt8(ENCRYPT.NOT_SUP);\n    }\n    return {\n      token: TOKEN.ENCRYPTION,\n      data: buffer.data\n    };\n  }\n\n  createInstanceOption() {\n    const buffer = new WritableTrackingBuffer(optionBufferSize);\n    buffer.writeUInt8(0x00);\n    return {\n      token: TOKEN.INSTOPT,\n      data: buffer.data\n    };\n  }\n\n  createThreadIdOption() {\n    const buffer = new WritableTrackingBuffer(optionBufferSize);\n    buffer.writeUInt32BE(0x00);\n    return {\n      token: TOKEN.THREADID,\n      data: buffer.data\n    };\n  }\n\n  createMarsOption() {\n    const buffer = new WritableTrackingBuffer(optionBufferSize);\n    buffer.writeUInt8(MARS.OFF);\n    return {\n      token: TOKEN.MARS,\n      data: buffer.data\n    };\n  }\n\n  createTraceIdOption() {\n    const buffer = new WritableTrackingBuffer(traceIdSize);\n    // Generate a random series of bytes to use as the TraceID.\n    // Used for debugging purposes.\n    buffer.writeBuffer(randomBytes(traceIdSize));\n    return {\n      token: TOKEN.TRACEID,\n      data: buffer.data\n    };\n  }\n\n  createFedAuthOption() {\n    const buffer = new WritableTrackingBuffer(optionBufferSize);\n    buffer.writeUInt8(0x01);\n    return {\n      token: TOKEN.FEDAUTHREQUIRED,\n      data: buffer.data\n    };\n  }\n\n  extractOptions() {\n    let offset = 0;\n    while (this.data[offset] !== TOKEN.TERMINATOR) {\n      let dataOffset = this.data.readUInt16BE(offset + 1);\n      const dataLength = this.data.readUInt16BE(offset + 3);\n      switch (this.data[offset]) {\n        case TOKEN.VERSION:\n          this.extractVersion(dataOffset);\n          break;\n        case TOKEN.ENCRYPTION:\n          this.extractEncryption(dataOffset);\n          break;\n        case TOKEN.INSTOPT:\n          this.extractInstance(dataOffset);\n          break;\n        case TOKEN.THREADID:\n          if (dataLength > 0) {\n            this.extractThreadId(dataOffset);\n          }\n          break;\n        case TOKEN.MARS:\n          this.extractMars(dataOffset);\n          break;\n        case TOKEN.TRACEID:\n          this.extractTraceId(dataOffset);\n          break;\n        case TOKEN.FEDAUTHREQUIRED:\n          this.extractFedAuth(dataOffset);\n          break;\n      }\n      offset += 5;\n      dataOffset += dataLength;\n    }\n  }\n\n  extractVersion(offset: number) {\n    this.version = {\n      major: this.data.readUInt8(offset + 0),\n      minor: this.data.readUInt8(offset + 1),\n      build: this.data.readUInt16BE(offset + 2),\n      subbuild: this.data.readUInt16BE(offset + 4)\n    };\n  }\n\n  extractEncryption(offset: number) {\n    this.encryption = this.data.readUInt8(offset);\n    this.encryptionString = encryptByValue[this.encryption];\n  }\n\n  extractInstance(offset: number) {\n    this.instance = this.data.readUInt8(offset);\n  }\n\n  extractThreadId(offset: number) {\n    this.threadId = this.data.readUInt32BE(offset);\n  }\n\n  extractMars(offset: number) {\n    this.mars = this.data.readUInt8(offset);\n    this.marsString = marsByValue[this.mars];\n  }\n\n  extractTraceId(offset: number) {\n    this.traceId = this.data.subarray(offset, offset + traceIdSize);\n  }\n\n  extractFedAuth(offset: number) {\n    this.fedAuthRequired = this.data.readUInt8(offset);\n  }\n\n  toString(indent = '') {\n    return indent + 'PreLogin - ' + sprintf(\n      'version:%d.%d.%d.%d, encryption:0x%02X(%s), instopt:0x%02X, threadId:0x%08X, mars:0x%02X(%s), traceId:%s',\n      this.version.major, this.version.minor, this.version.build, this.version.subbuild,\n      this.encryption ? this.encryption : 0,\n      this.encryptionString ? this.encryptionString : '',\n      this.instance ? this.instance : 0,\n      this.threadId ? this.threadId : 0,\n      this.mars ? this.mars : 0,\n      this.marsString ? this.marsString : '',\n      this.traceId ? this.traceId.toString('hex') : '',\n    );\n  }\n}\n\nexport default PreloginPayload;\nmodule.exports = PreloginPayload;\n"],"mappings":"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","ignoreList":[]}