basant307/AI_Governance_Project
048
1"use strict";2var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {3 if (k2 === undefined) k2 = k;4 var desc = Object.getOwnPropertyDescriptor(m, k);5 if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {6 desc = { enumerable: true, get: function() { return m[k]; } };7 }8 Object.defineProperty(o, k2, desc);9}) : (function(o, m, k, k2) {10 if (k2 === undefined) k2 = k;11 o[k2] = m[k];12}));13var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {14 Object.defineProperty(o, "default", { enumerable: true, value: v });15}) : function(o, v) {16 o["default"] = v;17});18var __importStar = (this && this.__importStar) || (function () {19 var ownKeys = function(o) {20 ownKeys = Object.getOwnPropertyNames || function (o) {21 var ar = [];22 for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;23 return ar;24 };25 return ownKeys(o);26 };27 return function (mod) {28 if (mod && mod.__esModule) return mod;29 var result = {};30 if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);31 __setModuleDefault(result, mod);32 return result;33 };34})();35var __importDefault = (this && this.__importDefault) || function (mod) {36 return (mod && mod.__esModule) ? mod : { "default": mod };37};38Object.defineProperty(exports, "__esModule", { value: true });39exports.detectFileSync = exports.detectFile = exports.analyse = exports.detect = void 0;40const node_1 = __importDefault(require("./fs/node"));41const ascii_1 = __importDefault(require("./encoding/ascii"));42const utf8_1 = __importDefault(require("./encoding/utf8"));43const unicode = __importStar(require("./encoding/unicode"));44const mbcs = __importStar(require("./encoding/mbcs"));45const sbcs = __importStar(require("./encoding/sbcs"));46const iso2022 = __importStar(require("./encoding/iso2022"));47const utils_1 = require("./utils");48const recognisers = [49 new utf8_1.default(),50 new unicode.UTF_16BE(),51 new unicode.UTF_16LE(),52 new unicode.UTF_32BE(),53 new unicode.UTF_32LE(),54 new mbcs.sjis(),55 new mbcs.big5(),56 new mbcs.euc_jp(),57 new mbcs.euc_kr(),58 new mbcs.gb_18030(),59 new iso2022.ISO_2022_JP(),60 new iso2022.ISO_2022_KR(),61 new iso2022.ISO_2022_CN(),62 new sbcs.ISO_8859_1(),63 new sbcs.ISO_8859_2(),64 new sbcs.ISO_8859_5(),65 new sbcs.ISO_8859_6(),66 new sbcs.ISO_8859_7(),67 new sbcs.ISO_8859_8(),68 new sbcs.ISO_8859_9(),69 new sbcs.windows_1251(),70 new sbcs.windows_1256(),71 new sbcs.KOI8_R(),72 new ascii_1.default(),73];74const detect = (buffer) => {75 const matches = (0, exports.analyse)(buffer);76 return matches.length > 0 ? matches[0].name : null;77};78exports.detect = detect;79const analyse = (buffer) => {80 if (!(0, utils_1.isByteArray)(buffer)) {81 throw new Error('Input must be a byte array, e.g. Buffer or Uint8Array');82 }83 const byteStats = [];84 for (let i = 0; i < 256; i++)85 byteStats[i] = 0;86 for (let i = buffer.length - 1; i >= 0; i--)87 byteStats[buffer[i] & 0x00ff]++;88 let c1Bytes = false;89 for (let i = 0x80; i <= 0x9f; i += 1) {90 if (byteStats[i] !== 0) {91 c1Bytes = true;92 break;93 }94 }95 const context = {96 byteStats,97 c1Bytes,98 rawInput: buffer,99 rawLen: buffer.length,100 inputBytes: buffer,101 inputLen: buffer.length,102 };103 const matches = recognisers104 .map((rec) => {105 return rec.match(context);106 })107 .filter((match) => {108 return !!match;109 })110 .sort((a, b) => {111 return b.confidence - a.confidence;112 });113 return matches;114};115exports.analyse = analyse;116const detectFile = (filepath, opts = {}) => new Promise((resolve, reject) => {117 let fd;118 const fs = (0, node_1.default)();119 const handler = (err, buffer) => {120 if (fd) {121 fs.closeSync(fd);122 }123 if (err) {124 reject(err);125 }126 else {127 resolve((0, exports.detect)(buffer));128 }129 };130 if (opts && opts.sampleSize) {131 fd = fs.openSync(filepath, 'r');132 const sample = Buffer.allocUnsafe(opts.sampleSize);133 fs.read(fd, sample, 0, opts.sampleSize, opts.offset, (err) => {134 handler(err, sample);135 });136 return;137 }138 fs.readFile(filepath, handler);139});140exports.detectFile = detectFile;141const detectFileSync = (filepath, opts = {}) => {142 const fs = (0, node_1.default)();143 if (opts && opts.sampleSize) {144 const fd = fs.openSync(filepath, 'r');145 const sample = Buffer.allocUnsafe(opts.sampleSize);146 fs.readSync(fd, sample, 0, opts.sampleSize, opts.offset);147 fs.closeSync(fd);148 return (0, exports.detect)(sample);149 }150 return (0, exports.detect)(fs.readFileSync(filepath));151};152exports.detectFileSync = detectFileSync;153exports.default = {154 analyse: exports.analyse,155 detect: exports.detect,156 detectFileSync: exports.detectFileSync,157 detectFile: exports.detectFile,158};159//# sourceMappingURL=index.js.map