UNPKG

@awo00/smb2

Version:

A SMB2 implementation in TypeScript

65 lines (64 loc) 2.4 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateGuid = exports.getRandomInt = exports.toWindowsPath = exports.toUnixPath = exports.toWindowsFilePath = exports.toUnixFilePath = void 0; const crypto_1 = __importDefault(require("crypto")); const toUnixFilePath = (value) => { value = (0, exports.toUnixPath)(value); if (value[0] !== "/" && value[0] !== ".") value = `./${value}`; if (value[0] === "/") value = `.${value}`; return value; }; exports.toUnixFilePath = toUnixFilePath; const toWindowsFilePath = (value) => { if (value[0] === ".") value = value.substring(1); if (value[0] === "/") value = value.substring(1); value = (0, exports.toWindowsPath)(value); return value; }; exports.toWindowsFilePath = toWindowsFilePath; const toUnixPath = (value) => { value = value.replace(/\\/g, "/"); return value; }; exports.toUnixPath = toUnixPath; const toWindowsPath = (value) => { value = value.replace(/\//g, "\\"); return value; }; exports.toWindowsPath = toWindowsPath; const getRandomInt = (min, max) => { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1)) + min; }; exports.getRandomInt = getRandomInt; const generateGuid = () => { const timeLow = (0, exports.getRandomInt)(0, Math.pow(2, 32) - 1); const timeMiddle = (0, exports.getRandomInt)(0, Math.pow(2, 16) - 1); const timeHighAndVersion = 0x4000 | (0, exports.getRandomInt)(0, Math.pow(2, 12) - 1); const clockSequenceHighAndReserved = 0x80 | (0, exports.getRandomInt)(0, Math.pow(2, 6) - 1); const clockSequenceLow = (0, exports.getRandomInt)(0, Math.pow(2, 8) - 1); const node = crypto_1.default.randomBytes(6); const buffer = Buffer.alloc(16); let offset = 0; buffer.writeUInt32LE(timeLow, offset); offset += 4; buffer.writeUInt16LE(timeMiddle, offset); offset += 2; buffer.writeUInt16LE(timeHighAndVersion, offset); offset += 2; buffer.writeUInt8(clockSequenceHighAndReserved, offset); offset += 1; buffer.writeUInt8(clockSequenceLow, offset); offset += 1; node.copy(buffer, offset); return buffer; }; exports.generateGuid = generateGuid;