@detector-js/detector
Version:
DetectorJS Detector Module
1 lines • 14.6 kB
Source Map (JSON)
{"mappings":"A,O,c,C,K,mB,A,Q,W,C,C,gB,C,C,gB,C,K,sB,A,Q,U,C,C,O,C,C,O,C,C,Y,C,K,uB,A,Q,U,C,C,W,C,C,M,C,K,uB,ACmBO,OAAM,UAAiB,EAC5B,CAAC,CAAM,AAAU,AACjB,EAAC,CAAQ,AAAkB,AAC3B,EAAC,CAAc,AAAS,AAmBxB,aAAY,EAAoB,IAAI,CAAE,EAAS,CAAA,CAAI,CAAE,EAAW,CAAA,CAAK,CAAE,EAAiB,KAAK,CAAE,CAC7F,KAAK,CAAC,GAEN,IAAI,CAAC,CAAC,CAAM,CAAG,EACf,IAAI,CAAC,CAAC,CAAQ,CAAG,AAAE,EAAW,EAAE,CAAG,KACnC,IAAI,CAAC,CAAC,CAAc,CAAG,EAAkB,CAAA,AAAE,EAAiB,KAAO,EAAA,EAGnE,IAAI,CAAC,eAGL,IAAI,CAAC,cACL,IAAI,CAAC,eACL,IAAI,CAAC,UAIL,IAAI,CAAC,WACL,IAAI,CAAC,WACL,IAAI,CAAC,gBAEL,IAAI,CAAC,aAcP,CASA,cAAe,CACb,IAAM,EAAU,IAAI,EAAQ,IAAI,CAAC,IAC3B,EAAQ,IAAI,EAAa,IAAI,CAAC,IAC9B,EAAQ,IAAI,EAAa,IAAI,CAAC,GAEpC,CAAA,IAAI,CAAC,QAAU,EAAQ,UAAU,MAAM,CACrC,MAAO,EAAM,UACb,MAAO,EAAM,SACf,GAEM,IAAI,CAAC,CAAC,CAAQ,EAClB,CAAA,IAAI,CAAC,CAAC,CAAQ,CAAG,IAAI,CAAC,CAAC,CAAQ,CAAC,OAAO,EAAQ,aAAc,EAAM,aAAc,EAAM,aADzF,CAGF,CASA,aAAc,CACZ,IAAM,EAAS,IAAI,EAAO,IAAI,CAAC,GAAI,IAAI,CAAC,UAEpC,CAAA,IAAI,CAAC,CAAC,CAAM,CACd,IAAI,CAAC,OAAS,EAAO,WAErB,IAAI,CAAC,OAAS,EAAO,UAGjB,IAAI,CAAC,CAAC,CAAQ,EAClB,CAAA,IAAI,CAAC,CAAC,CAAQ,CAAG,IAAI,CAAC,CAAC,CAAQ,CAAC,OAAO,EAAO,aADhD,CAGF,CAQA,cAAe,CACb,IAAM,EAAU,IAAI,EAAQ,IAAI,CAAC,GAAI,IAAI,CAAC,UAEtC,CAAA,IAAI,CAAC,CAAC,CAAM,CACd,IAAI,CAAC,QAAU,EAAQ,WAEvB,IAAI,CAAC,QAAU,EAAQ,UAGnB,IAAI,CAAC,CAAC,CAAQ,EAClB,CAAA,IAAI,CAAC,CAAC,CAAQ,CAAG,IAAI,CAAC,CAAC,CAAQ,CAAC,OAAO,EAAQ,aADjD,CAGF,CAQA,SAAU,CACR,IAAM,EAAK,IAAI,EAAG,IAAI,CAAC,GAAI,IAAI,CAAC,UAE5B,CAAA,IAAI,CAAC,CAAC,CAAM,CACd,IAAI,CAAC,GAAK,EAAG,WAEb,IAAI,CAAC,GAAK,EAAG,UAGT,IAAI,CAAC,CAAC,CAAQ,EAClB,CAAA,IAAI,CAAC,CAAC,CAAQ,CAAG,IAAI,CAAC,CAAC,CAAQ,CAAC,OAAO,EAAG,aAD5C,CAGF,CASA,aAAc,CACZ,IAAM,EAAS,IAAI,EAAO,IAAI,CAAC,GAAI,IAAI,CAAC,UAExC,CAAA,IAAI,CAAC,OAAS,EAAO,UAEf,IAAI,CAAC,CAAC,CAAQ,EAClB,CAAA,IAAI,CAAC,CAAC,CAAQ,CAAG,IAAI,CAAC,CAAC,CAAQ,CAAC,OAAO,EAAO,aADhD,CAGF,CAQA,UAAW,CACT,IAAM,EAAM,IAAI,EAAI,IAAI,CAAC,GAAI,IAAI,CAAC,UAE9B,CAAA,IAAI,CAAC,CAAC,CAAM,CACd,IAAI,CAAC,IAAM,EAAI,WAEf,IAAI,CAAC,IAAM,EAAI,UAGX,IAAI,CAAC,CAAC,CAAQ,EAClB,CAAA,IAAI,CAAC,CAAC,CAAQ,CAAG,IAAI,CAAC,CAAC,CAAQ,CAAC,OAAO,EAAI,aAD7C,CAGF,CAQA,UAAW,CACT,IAAM,EAAM,IAAI,EAAI,IAAI,CAAC,GAAI,IAAI,CAAC,UAElC,CAAA,IAAI,CAAC,IAAM,EAAI,UAET,IAAI,CAAC,CAAC,CAAQ,EAClB,CAAA,IAAI,CAAC,CAAC,CAAQ,CAAG,IAAI,CAAC,CAAC,CAAQ,CAAC,OAAO,EAAI,aAD7C,CAGF,CAQA,eAAgB,CACd,IAAM,EAAW,IAAI,EAAS,IAAI,CAAC,GAAI,IAAI,CAAC,UAExC,CAAA,IAAI,CAAC,CAAC,CAAM,CACd,IAAI,CAAC,SAAW,EAAS,WAEzB,IAAI,CAAC,SAAW,EAAS,UAGrB,IAAI,CAAC,CAAC,CAAQ,EAClB,CAAA,IAAI,CAAC,CAAC,CAAQ,CAAG,IAAI,CAAC,CAAC,CAAQ,CAAC,OAAO,EAAS,aADlD,CAGF,CASA,aAAc,CACZ,GAAM,IAAI,CAAC,CAAC,CAAQ,CAAE,CACpB,IAAM,EAAmB,IAAI,CAAC,CAAC,CAAQ,CAAC,IAAI,AAAC,GACpC,IAAI,CAAC,CAAC,CAAc,CAAG,GAG1B,EAAc,SAAS,iBAAmB,SAAS,cAAc,QAEvE,EAAiB,QAAQ,AAAC,GACjB,EAAY,UAAU,QAAQ,EAAS,KAGhD,EAAY,WAAa,EAAiB,KAAK,KAAK,MACtD,CACF,CACF,Q,K,Q","sources":["<anon>","packages/detector/lib/detector.ts"],"sourcesContent":["import {FlagsClass as $9ofxU$FlagsClass} from \"@detector-js/core\";\nimport {Feature as $9ofxU$Feature, AudioFeature as $9ofxU$AudioFeature, VideoFeature as $9ofxU$VideoFeature} from \"@detector-js/feature\";\nimport {Device as $9ofxU$Device, CPU as $9ofxU$CPU, GPU as $9ofxU$GPU, Platform as $9ofxU$Platform} from \"@detector-js/hardware\";\nimport {Engine as $9ofxU$Engine, Browser as $9ofxU$Browser, OS as $9ofxU$OS} from \"@detector-js/software\";\n\n/*jshint expr: true */ \n\n\n\nclass $c6177c23d7b25f5f$export$e695250628cde35 extends (0, $9ofxU$FlagsClass) {\n #values;\n #cssFlags;\n #cssFlagsPrefix;\n /**\n * Creates an instance of Detector.\n * @param {boolean} [cssFlags=false]\n * @param {string} [cssFlagsPrefix='djs']\n * @param {any} [ua=null]\n *\n * @memberOf Detector\n */ constructor(ua = null, values = true, cssFlags = false, cssFlagsPrefix = \"djs\"){\n super(ua);\n this.#values = values;\n this.#cssFlags = !!cssFlags ? [] : null;\n this.#cssFlagsPrefix = cssFlagsPrefix + (!!cssFlagsPrefix ? \"--\" : \"\");\n //! Features\n this.checkFeature();\n //! Software\n this.checkEngine();\n this.checkBrowser();\n this.checkOS();\n //! Hardware\n // this.checkDevice();\n this.checkCPU();\n this.checkGPU();\n this.checkPlatform();\n this.setCssFlags();\n // remove unnecessary memory usage\n // delete this.booleanFlagsValuePropertyName;\n // delete this._values;\n // delete this._cssFlags;\n // delete this._cssFlagsPrefix;\n // delete this.root;\n // delete this.process;\n // delete this.navigator;\n // delete this.document;\n // delete this.ua;\n // console.warn('DetectorJS initialized', this.toFlags());\n }\n //! Feature\n /**\n *\n *\n *\n * @memberOf Detector\n */ checkFeature() {\n const feature = new (0, $9ofxU$Feature)(this.ua);\n const audio = new (0, $9ofxU$AudioFeature)(this.ua);\n const video = new (0, $9ofxU$VideoFeature)(this.ua);\n this.feature = feature.toFlags().merge({\n audio: audio.toFlags(),\n video: video.toFlags()\n });\n if (!!this.#cssFlags) this.#cssFlags = this.#cssFlags.concat(feature.toCssFlags(), audio.toCssFlags(), video.toCssFlags());\n }\n //! Software\n /**\n *\n *\n *\n * @memberOf Detector\n */ checkEngine() {\n const engine = new (0, $9ofxU$Engine)(this.ua, this.toFlags());\n if (this.#values) this.engine = engine.toValues();\n else this.engine = engine.toFlags();\n if (!!this.#cssFlags) this.#cssFlags = this.#cssFlags.concat(engine.toCssFlags());\n }\n /**\n *\n *\n *\n * @memberOf Detector\n */ checkBrowser() {\n const browser = new (0, $9ofxU$Browser)(this.ua, this.toFlags());\n if (this.#values) this.browser = browser.toValues();\n else this.browser = browser.toFlags();\n if (!!this.#cssFlags) this.#cssFlags = this.#cssFlags.concat(browser.toCssFlags());\n }\n /**\n *\n *\n *\n * @memberOf Detector\n */ checkOS() {\n const os = new (0, $9ofxU$OS)(this.ua, this.toFlags());\n if (this.#values) this.os = os.toValues();\n else this.os = os.toFlags();\n if (!!this.#cssFlags) this.#cssFlags = this.#cssFlags.concat(os.toCssFlags());\n }\n //! Hardware\n /**\n *\n *\n *\n * @memberOf Detector\n */ checkDevice() {\n const device = new (0, $9ofxU$Device)(this.ua, this.toFlags());\n this.device = device.toFlags();\n if (!!this.#cssFlags) this.#cssFlags = this.#cssFlags.concat(device.toCssFlags());\n }\n /**\n *\n *\n *\n * @memberOf Detector\n */ checkCPU() {\n const cpu = new (0, $9ofxU$CPU)(this.ua, this.toFlags());\n if (this.#values) this.cpu = cpu.toValues();\n else this.cpu = cpu.toFlags();\n if (!!this.#cssFlags) this.#cssFlags = this.#cssFlags.concat(cpu.toCssFlags());\n }\n /**\n *\n *\n *\n * @memberOf Detector\n */ checkGPU() {\n const gpu = new (0, $9ofxU$GPU)(this.ua, this.toFlags());\n this.gpu = gpu.toFlags();\n if (!!this.#cssFlags) this.#cssFlags = this.#cssFlags.concat(gpu.toCssFlags());\n }\n /**\n *\n *\n *\n * @memberOf Detector\n */ checkPlatform() {\n const platform = new (0, $9ofxU$Platform)(this.ua, this.toFlags());\n if (this.#values) this.platform = platform.toValues();\n else this.platform = platform.toFlags();\n if (!!this.#cssFlags) this.#cssFlags = this.#cssFlags.concat(platform.toCssFlags());\n }\n //! CSS Flags\n /**\n *\n *\n *\n * @memberOf Detector\n */ setCssFlags() {\n if (!!this.#cssFlags) {\n const cssFlagsPrefixed = this.#cssFlags.map((cssFlag)=>{\n return this.#cssFlagsPrefix + cssFlag;\n });\n const htmlElement = document.documentElement || document.querySelector(\"html\");\n cssFlagsPrefixed.forEach((cssFlag)=>{\n return htmlElement.className.replace(cssFlag, \"\");\n });\n htmlElement.className += cssFlagsPrefixed.join(\" \").trim();\n }\n }\n}\n\n\nexport {$c6177c23d7b25f5f$export$e695250628cde35 as Detector};\n//# sourceMappingURL=detector.mjs.map\n","/*jshint expr: true */\nimport { FlagsClass } from '@detector-js/core';\n\n//! Features\nimport { Feature, AudioFeature, VideoFeature } from '@detector-js/feature';\n\n//! Hardware\nimport { Platform, Device, CPU, GPU } from '@detector-js/hardware';\n\n//! Software\nimport { Browser, Engine, OS } from '@detector-js/software';\n\n/**\n *\n *\n * @export\n * @class Detector\n * @extends {FlagsClass}\n */\nexport class Detector extends FlagsClass {\n #values: boolean;\n #cssFlags: string[] | null;\n #cssFlagsPrefix: string;\n\n feature: any;\n browser: {};\n engine: any;\n os: {};\n device: any;\n cpu: {};\n gpu: any;\n platform: string;\n\n /**\n * Creates an instance of Detector.\n * @param {boolean} [cssFlags=false]\n * @param {string} [cssFlagsPrefix='djs']\n * @param {any} [ua=null]\n *\n * @memberOf Detector\n */\n constructor(ua: string | null = null, values = true, cssFlags = false, cssFlagsPrefix = 'djs') {\n super(ua);\n\n this.#values = values;\n this.#cssFlags = !!cssFlags ? [] : null;\n this.#cssFlagsPrefix = cssFlagsPrefix + (!!cssFlagsPrefix ? '--' : '');\n\n //! Features\n this.checkFeature();\n\n //! Software\n this.checkEngine();\n this.checkBrowser();\n this.checkOS();\n\n //! Hardware\n // this.checkDevice();\n this.checkCPU();\n this.checkGPU();\n this.checkPlatform();\n\n this.setCssFlags();\n\n // remove unnecessary memory usage\n // delete this.booleanFlagsValuePropertyName;\n // delete this._values;\n // delete this._cssFlags;\n // delete this._cssFlagsPrefix;\n // delete this.root;\n // delete this.process;\n // delete this.navigator;\n // delete this.document;\n // delete this.ua;\n\n // console.warn('DetectorJS initialized', this.toFlags());\n }\n\n //! Feature\n /**\n *\n *\n *\n * @memberOf Detector\n */\n checkFeature() {\n const feature = new Feature(this.ua);\n const audio = new AudioFeature(this.ua);\n const video = new VideoFeature(this.ua);\n\n this.feature = feature.toFlags().merge({\n audio: audio.toFlags(),\n video: video.toFlags()\n });\n\n if (!!this.#cssFlags) {\n this.#cssFlags = this.#cssFlags.concat(feature.toCssFlags(), audio.toCssFlags(), video.toCssFlags());\n }\n }\n\n //! Software\n /**\n *\n *\n *\n * @memberOf Detector\n */\n checkEngine() {\n const engine = new Engine(this.ua, this.toFlags());\n\n if (this.#values) {\n this.engine = engine.toValues();\n } else {\n this.engine = engine.toFlags();\n }\n\n if (!!this.#cssFlags) {\n this.#cssFlags = this.#cssFlags.concat(engine.toCssFlags());\n }\n }\n\n /**\n *\n *\n *\n * @memberOf Detector\n */\n checkBrowser() {\n const browser = new Browser(this.ua, this.toFlags());\n\n if (this.#values) {\n this.browser = browser.toValues();\n } else {\n this.browser = browser.toFlags();\n }\n\n if (!!this.#cssFlags) {\n this.#cssFlags = this.#cssFlags.concat(browser.toCssFlags());\n }\n }\n\n /**\n *\n *\n *\n * @memberOf Detector\n */\n checkOS() {\n const os = new OS(this.ua, this.toFlags());\n\n if (this.#values) {\n this.os = os.toValues();\n } else {\n this.os = os.toFlags();\n }\n\n if (!!this.#cssFlags) {\n this.#cssFlags = this.#cssFlags.concat(os.toCssFlags());\n }\n }\n\n //! Hardware\n /**\n *\n *\n *\n * @memberOf Detector\n */\n checkDevice() {\n const device = new Device(this.ua, this.toFlags());\n\n this.device = device.toFlags();\n\n if (!!this.#cssFlags) {\n this.#cssFlags = this.#cssFlags.concat(device.toCssFlags());\n }\n }\n\n /**\n *\n *\n *\n * @memberOf Detector\n */\n checkCPU() {\n const cpu = new CPU(this.ua, this.toFlags());\n\n if (this.#values) {\n this.cpu = cpu.toValues();\n } else {\n this.cpu = cpu.toFlags();\n }\n\n if (!!this.#cssFlags) {\n this.#cssFlags = this.#cssFlags.concat(cpu.toCssFlags());\n }\n }\n\n /**\n *\n *\n *\n * @memberOf Detector\n */\n checkGPU() {\n const gpu = new GPU(this.ua, this.toFlags());\n\n this.gpu = gpu.toFlags();\n\n if (!!this.#cssFlags) {\n this.#cssFlags = this.#cssFlags.concat(gpu.toCssFlags());\n }\n }\n\n /**\n *\n *\n *\n * @memberOf Detector\n */\n checkPlatform() {\n const platform = new Platform(this.ua, this.toFlags());\n\n if (this.#values) {\n this.platform = platform.toValues();\n } else {\n this.platform = platform.toFlags();\n }\n\n if (!!this.#cssFlags) {\n this.#cssFlags = this.#cssFlags.concat(platform.toCssFlags());\n }\n }\n\n //! CSS Flags\n /**\n *\n *\n *\n * @memberOf Detector\n */\n setCssFlags() {\n if (!!this.#cssFlags) {\n const cssFlagsPrefixed = this.#cssFlags.map((cssFlag) => {\n return this.#cssFlagsPrefix + cssFlag;\n });\n\n const htmlElement = document.documentElement || document.querySelector('html');\n\n cssFlagsPrefixed.forEach((cssFlag) => {\n return htmlElement.className.replace(cssFlag, '');\n });\n\n htmlElement.className += cssFlagsPrefixed.join(' ').trim();\n }\n }\n}\n\nif (process.env.NODE_ENV === 'development') {\n const packageJSON = require('../package.json');\n\n console.log(`${packageJSON.description} v${packageJSON.version} initialized`);\n}\n"],"names":["FlagsClass","$9ofxU$FlagsClass","Feature","$9ofxU$Feature","AudioFeature","$9ofxU$AudioFeature","VideoFeature","$9ofxU$VideoFeature","Device","$9ofxU$Device","CPU","$9ofxU$CPU","GPU","$9ofxU$GPU","Platform","$9ofxU$Platform","Engine","$9ofxU$Engine","Browser","$9ofxU$Browser","OS","$9ofxU$OS","$c6177c23d7b25f5f$export$e695250628cde35","values","cssFlags","cssFlagsPrefix","constructor","ua","checkFeature","checkEngine","checkBrowser","checkOS","checkCPU","checkGPU","checkPlatform","setCssFlags","feature","audio","video","toFlags","merge","concat","toCssFlags","engine","toValues","browser","os","checkDevice","device","cpu","gpu","platform","cssFlagsPrefixed","map","cssFlag","htmlElement","document","documentElement","querySelector","forEach","className","replace","join","trim","Detector"],"version":3,"file":"detector.mjs.map"}