mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 16:08:47 +03:00
Rearrange the structure of src folders
This commit is contained in:
parent
29fb85658a
commit
9102871dea
17
package.json
17
package.json
@ -142,20 +142,21 @@
|
||||
"Zach Bjornson <zbbjornson@gmail.com>"
|
||||
],
|
||||
"type": "commonjs",
|
||||
"main": "src/ua-parser.js",
|
||||
"module": "src/module/ua-parser.mjs",
|
||||
"main": "src/main/ua-parser.js",
|
||||
"module": "src/main/ua-parser.mjs",
|
||||
"browser": "dist/ua-parser.pack.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"require": "./src/ua-parser.js",
|
||||
"import": "./src/module/ua-parser.mjs"
|
||||
"require": "./src/main/ua-parser.js",
|
||||
"import": "./src/main/ua-parser.mjs"
|
||||
},
|
||||
"./enums": {
|
||||
"require": "./src/ua-parser-enum.js",
|
||||
"import": "./src/module/ua-parser-enum.mjs"
|
||||
"require": "./src/enums/ua-parser-enums.js",
|
||||
"import": "./src/enums/ua-parser-enums.mjs"
|
||||
},
|
||||
"./extensions": {
|
||||
"require": "./src/ua-parser-extension.js",
|
||||
"import": "./src/module/ua-parser-extension.mjs"
|
||||
"require": "./src/extensions/ua-parser-extensions.js",
|
||||
"import": "./src/extensions/ua-parser-extensions.mjs"
|
||||
}
|
||||
},
|
||||
"files": [
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
SRC_PATH="src/ua-parser.js"
|
||||
SRC_PATH="src/main/ua-parser.js"
|
||||
MIN_PATH="dist/ua-parser.min.js"
|
||||
PACK_PATH="dist/ua-parser.pack.js"
|
||||
|
||||
|
@ -3,19 +3,19 @@
|
||||
const fs = require('fs');
|
||||
const PATH = {
|
||||
main : {
|
||||
src : 'src/ua-parser.js',
|
||||
dest : 'src/module/ua-parser.mjs',
|
||||
src : 'src/main/ua-parser.js',
|
||||
dest : 'src/main/ua-parser.mjs',
|
||||
title : ''
|
||||
},
|
||||
enum : {
|
||||
src : 'src/ua-parser-enum.js',
|
||||
dest :'src/module/ua-parser-enum.mjs',
|
||||
title : 'enum'
|
||||
enums : {
|
||||
src : 'src/enums/ua-parser-enums.js',
|
||||
dest :'src/enums/ua-parser-enums.mjs',
|
||||
title : 'enums'
|
||||
},
|
||||
extension : {
|
||||
src : 'src/ua-parser-extension.js',
|
||||
dest : 'src/module/ua-parser-extension.mjs',
|
||||
title : 'extension'
|
||||
extensions : {
|
||||
src : 'src/extensions/ua-parser-extensions.js',
|
||||
dest : 'src/extensions/ua-parser-extensions.mjs',
|
||||
title : 'extensions'
|
||||
}
|
||||
};
|
||||
const generateMJS = (module, replacers) => {
|
||||
@ -30,15 +30,11 @@ const generateMJS = (module, replacers) => {
|
||||
fs.writeFileSync(dest,
|
||||
`// Generated ESM version of UAParser.js ${title}
|
||||
// DO NOT EDIT THIS FILE!
|
||||
// Source: /src/ua-parser.js
|
||||
// Source: /${src}
|
||||
|
||||
${text}`, 'utf-8');
|
||||
};
|
||||
|
||||
if (!fs.existsSync('src/module')) {
|
||||
fs.mkdirSync('src/module', { recursive: true });
|
||||
}
|
||||
|
||||
// ua-parser.mjs
|
||||
generateMJS('main', [
|
||||
[/\(func[\s\S]+strict\';/ig, ''],
|
||||
@ -47,7 +43,7 @@ generateMJS('main', [
|
||||
]);
|
||||
|
||||
// ua-parser-enum.mjs
|
||||
generateMJS('enum', [[/module\.exports =/ig, 'export']]);
|
||||
generateMJS('enums', [[/module\.exports =/ig, 'export']]);
|
||||
|
||||
// ua-parser-extension.mjs
|
||||
generateMJS('extension', [[/module\.exports =/ig, 'export']]);
|
||||
generateMJS('extensions', [[/module\.exports =/ig, 'export']]);
|
@ -1,6 +1,6 @@
|
||||
// Generated ESM version of UAParser.js enums
|
||||
// DO NOT EDIT THIS FILE!
|
||||
// Source: /src/ua-parser-enum.js
|
||||
// Source: /src/enums/ua-parser-enums.js
|
||||
|
||||
///////////////////////////////////////////////
|
||||
/* Enums for UAParser.js v2.0.0-alpha.2
|
@ -1,6 +1,6 @@
|
||||
// Generated ESM version of UAParser.js extensions
|
||||
// DO NOT EDIT THIS FILE!
|
||||
// Source: /src/ua-parser-extension.js
|
||||
// Source: /src/extensions/ua-parser-extensions.js
|
||||
|
||||
///////////////////////////////////////////////
|
||||
/* Extensions for UAParser.js v2.0.0-alpha.2
|
||||
@ -19,10 +19,19 @@ const VERSION = 'version';
|
||||
const MOBILE = 'mobile';
|
||||
const TABLET = 'tablet';
|
||||
|
||||
const Apps = Object.freeze({
|
||||
browser : [
|
||||
[/chatlyio\/([\d\.]+)/i], [VERSION, 'Slack', [TYPE, 'app']]
|
||||
]
|
||||
});
|
||||
|
||||
const Bots = Object.freeze({
|
||||
browser : [
|
||||
// Googlebot / BingBot / MSNBot / FacebookBot
|
||||
[/((?:google|bing|msn|facebook)bot(?:\-[imagevdo]{5})?|bingpreview)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']]
|
||||
// Googlebot / BingBot / MSNBot / FacebookBot
|
||||
[/((?:google|bing|msn|facebook)bot(?:\-[imagevdo]{5})?|bingpreview)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']],
|
||||
|
||||
// Slackbot - https://api.slack.com/robots
|
||||
[/(slack(?:bot)?(?:-imgproxy|-linkexpanding)?) ([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']]
|
||||
]
|
||||
});
|
||||
|
||||
@ -111,16 +120,17 @@ const Emails = Object.freeze({
|
||||
]
|
||||
});
|
||||
|
||||
const Tools = Object.freeze({
|
||||
const CLI = Object.freeze({
|
||||
browser : [
|
||||
// wget / curl / lynx
|
||||
[/(wget|curl|lynx)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'tool']]
|
||||
[/(wget|curl|lynx)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'cli']]
|
||||
]
|
||||
});
|
||||
|
||||
export {
|
||||
Apps,
|
||||
Bots,
|
||||
ExtraDevices,
|
||||
Emails,
|
||||
Tools
|
||||
CLI
|
||||
};
|
@ -1,6 +1,6 @@
|
||||
// Generated ESM version of UAParser.js
|
||||
// Generated ESM version of UAParser.js
|
||||
// DO NOT EDIT THIS FILE!
|
||||
// Source: /src/ua-parser.js
|
||||
// Source: /src/main/ua-parser.js
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/* UAParser.js v2.0.0-alpha.2
|
||||
@ -734,7 +734,7 @@
|
||||
|
||||
// iOS/macOS
|
||||
/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, // iOS
|
||||
/ios;fbsv\/([\d\.]+)/i,
|
||||
/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
|
||||
/cfnetwork\/.+darwin/i
|
||||
], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [
|
||||
/(mac os x) ?([\w\. ]*)/i,
|
||||
@ -920,10 +920,10 @@
|
||||
// Constructor
|
||||
////////////////
|
||||
|
||||
function UACHData (uach, isHTTP_UACH) {
|
||||
function UACHData (uach, isHttpUACH) {
|
||||
uach = uach || {};
|
||||
setProps.call(this, CH_ALL_VALUES);
|
||||
if (isHTTP_UACH) {
|
||||
if (isHttpUACH) {
|
||||
setProps.call(this, [
|
||||
[BRANDS, itemListToArray(uach[CH_HEADER])],
|
||||
[FULLVERLIST, itemListToArray(uach[CH_HEADER_FULL_VER_LIST])],
|
||||
@ -1108,15 +1108,12 @@
|
||||
return new UAParser(ua, extensions, headers).getResult();
|
||||
}
|
||||
|
||||
var userAgent = ua ||
|
||||
((NAVIGATOR && NAVIGATOR.userAgent) ?
|
||||
NAVIGATOR.userAgent :
|
||||
(headers && headers[USER_AGENT] ?
|
||||
headers[USER_AGENT] :
|
||||
EMPTY)),
|
||||
|
||||
HTTP_UACH = new UACHData(headers, true),
|
||||
var userAgent = typeof ua === STR_TYPE ? ua : // Passed user-agent string
|
||||
((NAVIGATOR && NAVIGATOR.userAgent) ? NAVIGATOR.userAgent : // navigator.userAgent
|
||||
(headers && headers[USER_AGENT] ? headers[USER_AGENT] : // User-Agent from passed headers
|
||||
EMPTY)), // empty string
|
||||
|
||||
httpUACH = new UACHData(headers, true),
|
||||
regexMap = extensions ?
|
||||
extend(defaultRegexes, extensions) :
|
||||
defaultRegexes,
|
||||
@ -1124,7 +1121,7 @@
|
||||
createItemFunc = function (itemType) {
|
||||
if (itemType == UA_RESULT) {
|
||||
return function () {
|
||||
return new UAItem(itemType, userAgent, regexMap, HTTP_UACH)
|
||||
return new UAItem(itemType, userAgent, regexMap, httpUACH)
|
||||
.set('ua', userAgent)
|
||||
.set(UA_BROWSER, this.getBrowser())
|
||||
.set(UA_CPU, this.getCPU())
|
||||
@ -1135,13 +1132,13 @@
|
||||
};
|
||||
} else {
|
||||
return function () {
|
||||
return new UAItem(itemType, userAgent, regexMap[itemType], HTTP_UACH)
|
||||
return new UAItem(itemType, userAgent, regexMap[itemType], httpUACH)
|
||||
.parseUA()
|
||||
.get();
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// public methods
|
||||
setProps.call(this, [
|
||||
['getBrowser', createItemFunc(UA_BROWSER)],
|
@ -4,7 +4,7 @@ var assert = require('assert');
|
||||
var requirejs = require('requirejs');
|
||||
var parseJS = require('@babel/parser').parse;
|
||||
var traverse = require('@babel/traverse').default;
|
||||
var UAParser = require('../src/ua-parser');
|
||||
var UAParser = require('ua-parser-js');
|
||||
var browsers = require('./specs/browser-all.json');
|
||||
var cpus = require('./specs/cpu-all.json');
|
||||
var devices = require('./specs/device-all.json');
|
||||
@ -159,7 +159,7 @@ describe('Testing regexes', function () {
|
||||
var regexes;
|
||||
|
||||
before('Read main js file', function () {
|
||||
var code = fs.readFileSync('src/ua-parser.js', 'utf8').toString();
|
||||
var code = fs.readFileSync('src/main/ua-parser.js', 'utf8').toString();
|
||||
var ast = parseJS(code, { sourceType: "script" });
|
||||
regexes = [];
|
||||
traverse(ast, {
|
||||
|
Loading…
x
Reference in New Issue
Block a user