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