header-generator 2.1.8 → 2.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data_files/browser-helper-file.json +1 -0
- package/dist/data_files/header-network-definition.zip +0 -0
- package/dist/data_files/input-network-definition.zip +0 -0
- package/dist/package.json +45 -0
- package/{tsconfig.build.tsbuildinfo → dist/tsconfig.build.tsbuildinfo} +1 -1
- package/package.json +11 -12
- package/src/constants.ts +28 -0
- package/src/data_files/browser-helper-file.json +1 -0
- package/src/data_files/header-network-definition.zip +0 -0
- package/src/data_files/headers-order.json +124 -0
- package/src/data_files/input-network-definition.zip +0 -0
- package/src/header-generator.ts +481 -0
- package/src/index.ts +2 -0
- package/src/presets.ts +59 -0
- package/src/utils.ts +91 -0
- package/tsconfig.build.json +7 -0
- package/tsconfig.json +4 -0
- package/data_files/browser-helper-file.json +0 -1
- package/data_files/header-network-definition.zip +0 -0
- package/data_files/input-network-definition.zip +0 -0
- /package/{LICENSE.md → dist/LICENSE.md} +0 -0
- /package/{README.md → dist/README.md} +0 -0
- /package/{constants.d.ts → dist/constants.d.ts} +0 -0
- /package/{constants.d.ts.map → dist/constants.d.ts.map} +0 -0
- /package/{constants.js → dist/constants.js} +0 -0
- /package/{constants.js.map → dist/constants.js.map} +0 -0
- /package/{data_files → dist/data_files}/headers-order.json +0 -0
- /package/{header-generator.d.ts → dist/header-generator.d.ts} +0 -0
- /package/{header-generator.d.ts.map → dist/header-generator.d.ts.map} +0 -0
- /package/{header-generator.js → dist/header-generator.js} +0 -0
- /package/{header-generator.js.map → dist/header-generator.js.map} +0 -0
- /package/{index.d.ts → dist/index.d.ts} +0 -0
- /package/{index.d.ts.map → dist/index.d.ts.map} +0 -0
- /package/{index.js → dist/index.js} +0 -0
- /package/{index.js.map → dist/index.js.map} +0 -0
- /package/{index.mjs → dist/index.mjs} +0 -0
- /package/{presets.d.ts → dist/presets.d.ts} +0 -0
- /package/{presets.d.ts.map → dist/presets.d.ts.map} +0 -0
- /package/{presets.js → dist/presets.js} +0 -0
- /package/{presets.js.map → dist/presets.js.map} +0 -0
- /package/{utils.d.ts → dist/utils.d.ts} +0 -0
- /package/{utils.d.ts.map → dist/utils.d.ts.map} +0 -0
- /package/{utils.js → dist/utils.js} +0 -0
- /package/{utils.js.map → dist/utils.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
["edge/109.0.1518.70|2","edge/109.0.1518.78|2","safari/604.1|1","chrome/110.0.0.0|2","chrome/110.0.5481.77|2","chrome/109.0.0.0|2","edge/110.0.1587.41|2","*MISSING_VALUE*|1","chrome/107.0.0.0|1","chrome/109.0.0.0|1","chrome/79.0.3945.130|2","chrome/72.0.3626.121|2","chrome/110.0.0.0|1","chrome/108.0.0.0|2","chrome/102.0.5005.125|1","chrome/100.0.4896.127|2","chrome/80.0.3987.122|2","chrome/88.0.4324.150|1","chrome/80.0.3987.116|2","firefox/109.0|2","safari/604.1|2","firefox/110.0|2","safari/605.1.15|2","chrome/103.0.0.0|2","edge/108.0.1462.77|2","chrome/83.0.4103.116|2","firefox/102.0|2","chrome/106.0.0.0|2","firefox/109.0|1","safari/534.30|2","chrome/90.0.4430.210|2","*MISSING_VALUE*|2","chrome/92.0.4515.107|2","chrome/109.0.5414.117|2","edge/108.0.1462.54|2","firefox/111.0|2","firefox/106.0|2","chrome/107.0.0.0|2","chrome/80.0.3987.99|2","chrome/91.0.4472.114|2","chrome/104.0.0.0|2","chrome/75.0.3770.142|2","chrome/91.0.4472.120|2","firefox/107.0|2","chrome/112.0.0.0|2","chrome/103.0.5060.134|2","edge/109.0.1518.80|2","chrome/107.0.5304.141|2","chrome/94.0.4606.85|2","chrome/90.0.4430.212|2","chrome/109.0.5414.120|2","chrome/102.0.5005.125|2","chrome/102.0.0.0|2","firefox/108.0|2","chrome/98.0.4758.101|2","chrome/91.0.4472.164|2","edge/111.0.0.0|2","chrome/93.0.4577.82|2","edge/111.0.1660.9|2","firefox/72.0|2","chrome/86.0.4239.0|2","chrome/89.0.4389.82|2","chrome/94.0.4606.71|2","chrome/99.0.4844.88|2","edge/108.0.1462.76|2","chrome/111.0.0.0|2","chrome/108.0.0.0|1","chrome/101.0.0.0|2","chrome/100.0.4861.0|2","chrome/96.0.4664.104|2","chrome/107.0.4664.104|2","edge/111.0.1660.7|2","edge/110.0.0.0|2","edge/109.0.1518.52|2","edge/109.0.1518.78|1","chrome/108.0.5351.0|2","edge/110.0.1587.40|2","chrome/93.0.4577.63|2","edge/106.0.1370.52|2","chrome/96.0.4664.45|2","chrome/99.0.4844.51|2","chrome/108.0.5163.147|2","edge/108.0.1462.46|2","chrome/101.0.4951.26|2","chrome/100.0.4896.60|2","chrome/110.0.5478.0|2","chrome/105.0.0.0|2","chrome/77.0.3865.90|2","firefox/31.0|2","firefox/67.0|2","chrome/95.0.4638.69|2","firefox/87.0|2","chrome/92.0.4515.159|2","chrome/97.0.4692.98|2","chrome/108.0.5359.128|2","chrome/101.0.4951.15|2"]
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "header-generator",
|
|
3
|
+
"version": "2.1.12",
|
|
4
|
+
"description": "NodeJS package for generating realistic browser-like HTTP headers.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Apify",
|
|
7
|
+
"email": "support@apify.com",
|
|
8
|
+
"url": "https://apify.com"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/apify/fingeprint-suite",
|
|
11
|
+
"license": "Apache-2.0",
|
|
12
|
+
"engines": {
|
|
13
|
+
"node": ">=16.0.0"
|
|
14
|
+
},
|
|
15
|
+
"main": "index.js",
|
|
16
|
+
"module": "index.mjs",
|
|
17
|
+
"types": "index.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"import": "./index.mjs",
|
|
21
|
+
"require": "./index.js",
|
|
22
|
+
"types": "./index.d.ts"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"browserslist": "^4.21.1",
|
|
27
|
+
"generative-bayesian-network": "^2.1.10",
|
|
28
|
+
"ow": "^0.28.1",
|
|
29
|
+
"tslib": "^2.4.0"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "npm run clean && npm run compile",
|
|
33
|
+
"postbuild": "cp -r src/data_files/ && cp ../../README.md ",
|
|
34
|
+
"clean": "rimraf ./dist",
|
|
35
|
+
"compile": "tsc -p tsconfig.build.json && gen-esm-wrapper ./index.js ./index.mjs",
|
|
36
|
+
"copy": "ts-node -T ../../scripts/copy.ts"
|
|
37
|
+
},
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/apify/header-generator/issues"
|
|
40
|
+
},
|
|
41
|
+
"repository": {
|
|
42
|
+
"type": "git",
|
|
43
|
+
"url": "git+https://github.com/apify/header-generator.git"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/tslib/tslib.d.ts","../src/constants.ts","../../generative-bayesian-network/dist/bayesian-network.d.ts","../../generative-bayesian-network/dist/utils.d.ts","../../generative-bayesian-network/dist/index.d.ts","../../../node_modules/ow/dist/predicates/base-predicate.d.ts","../../../node_modules/ow/dist/predicates/predicate.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/ow/dist/typed-array.d.ts","../../../node_modules/ow/dist/predicates/string.d.ts","../../../node_modules/ow/dist/predicates/number.d.ts","../../../node_modules/ow/dist/predicates/bigint.d.ts","../../../node_modules/ow/dist/predicates/boolean.d.ts","../../../node_modules/ow/dist/predicates/array.d.ts","../../../node_modules/ow/dist/utils/match-shape.d.ts","../../../node_modules/ow/dist/predicates/object.d.ts","../../../node_modules/ow/dist/predicates/date.d.ts","../../../node_modules/ow/dist/predicates/error.d.ts","../../../node_modules/ow/dist/predicates/map.d.ts","../../../node_modules/ow/dist/predicates/weak-map.d.ts","../../../node_modules/ow/dist/predicates/set.d.ts","../../../node_modules/ow/dist/predicates/weak-set.d.ts","../../../node_modules/ow/dist/predicates/typed-array.d.ts","../../../node_modules/ow/dist/predicates/array-buffer.d.ts","../../../node_modules/ow/dist/predicates/data-view.d.ts","../../../node_modules/ow/dist/predicates/any.d.ts","../../../node_modules/ow/dist/predicates.d.ts","../../../node_modules/ow/dist/modifiers.d.ts","../../../node_modules/ow/dist/argument-error.d.ts","../../../node_modules/ow/dist/index.d.ts","../../../node_modules/browserslist/index.d.ts","../src/utils.ts","../src/header-generator.ts","../src/presets.ts","../src/index.ts","../../../node_modules/@types/adm-zip/util.d.ts","../../../node_modules/@types/adm-zip/index.d.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/jest-diff/build/cleanupSemantic.d.ts","../../../node_modules/pretty-format/build/types.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/types.d.ts","../../../node_modules/jest-diff/build/diffLines.d.ts","../../../node_modules/jest-diff/build/printDiffs.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/form-data/index.d.ts","../../../node_modules/@types/node-fetch/externals.d.ts","../../../node_modules/@types/node-fetch/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/prettier/index.d.ts","../../../node_modules/@types/puppeteer/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/useragent/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts","../../../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"14a84fbe4ec531dcbaf5d2594fd95df107258e60ae6c6a076404f13c3f66f28e",{"version":"5fc457c26e06846ba2378f52c9e2ef2999f624c56359019dabf6ba4b32b12497","signature":"f2bd2ac923e340878bbaf38d32e41be19dcfcf723c667933d67c31b4057128a8"},"a2f82b147c67d6846fac7e793680c5ff72359aad5f67f2a984d3cc42dc70d794","0e6dde5846f4d53f9873a91fbb83b8c3049aac418a5abd727ad4cfbb6138dcdd","934a05c5812223d19c2b2104f3d4ce35ab7cc0b135892b6eac12d82c5269c33a","7664bc39c9085e161f5f6f8f647ceffe26418a98a3f2a4c381fdc755be4b9e64","2cfbeb3885b75d97160fee31a23f4e5d1508cb2af1ce34ad98741b38a4b253b9","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"77f0b5c6a193a699c9f7d7fb0578e64e562d271afa740783665d2a827104a873","affectsGlobalScope":true},"e5979905796fe2740d85fbaf4f11f42b7ee1851421afe750823220813421b1af",{"version":"fcdcb42da18dd98dc286b1876dd425791772036012ae61263c011a76b13a190f","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","5b30f550565fd0a7524282c81c27fe8534099e2cd26170ca80852308f07ae68d","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","d97cd8a4a42f557fc62271369ed0461c8e50d47b7f9c8ad0b5462f53306f6060","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","063f53ff674228c190efa19dd9448bcbd540acdbb48a928f4cf3a1b9f9478e43","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"287b21dc1d1b9701c92e15e7dd673dfe6044b15812956377adffb6f08825b1bc","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"af9771b066ec35ffa1c7db391b018d2469d55e51b98ae95e62b6cbef1b0169ca","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","b2dfd89e02ac598aae6dec025ed75316412de59423e7a2345b951d33d72f4581","acf43834501c92da619d35679372c53d08a135fce5de10cc04e2f54c07134ae1","bc8f5e3c72bcb2e68e2feb272c8312b81fd0ba7417e2993eb569aa9aba05661d","ef275855066eb67627a2e8e388226fd510824d27d2a8f5555251fe096a9def3e","3b8ab6d861339b4c45682219429441534c00abd7f23fc0714e9326213669d35a","74ff64ddbb6c72565b2ffc98652f78c3895cc40c8264ed0881ec1221e759de18","83cf78cb96cbe2cf84d7acbb777345919e79d1357bf051bd5c1da1e7d85b755a","40c1a3ed908790d2d173914c88721ea4182cac8a6b1e5e13ef268a82404828c4","8b27c6ae71f8849874f800e49d14a98c92bb0ae54e0a79d6ae617063ba2a6e5c","ce6fbdceac62521a6f474355eb2a0b85446f7dd7437ce59eed9ac9ced059d4a0","466e0434af11422a1621060ca2745a4b94067076065b6e0c0aeb874c6eaa9a63","2b1177d4681eade2485edf0433bcd0037fbd2a7e6851c9fa7d3285056d30193e","323c2d2acc276d554fff791a55433159d117aa9662ac861090a2426fa1d01ab2","ecb626a33e299fc633fdab872d726f7de7abe01e7dade946a7d0b2572854aa0a","a5f9d6671ab55c6acf3117c592a5d84b46254d3f15cc66de0a308b2633b0cf75","9de2b351d62216e6b894c2e8ccb9b1a44ba320afca185d071ae1e63e608b8d8d","6a1a11860069ab718960e14c936567b39e4c66d8e650e94ba4d8da60415f0a33","84f576c5d9942a70efa2b4d14c8a805134f0bb3364535964b6d9eddf94219408","63d143c76b01b5bf6f591dba553cd0840b1d528200c89d5c4acc6e9fb237eeb5","cf49d08267c66f93e5e86e2e0137f85220e525f57fa93da5b3510dae11e6ba6d","0f988bd62f9188817239c3f2793995f642aa24f6e676296777e817fae7e8a5e3","6e2ea43283fbf89bc6c98a3171a817f3163b9fb77ef16411c7f44b72e25e3bfe",{"version":"45f5b8f72fc0a42e0e0cdde1390334d5e752a6d0be6ad6a84283fe9f7eeed87c","affectsGlobalScope":true},{"version":"e4982797f54beb9680b644655c6dd4c4a48688dffb634970209f6b10072418c0","signature":"f34255c43f2fd558c090437165dd8dabfab9ac5aeb7d4cf8f1d1a040c421221a"},{"version":"356ee0ff262d74f7f56847c3733c21c1a1c5b508270207347a082a53bb7f0127","signature":"3b3ee494d1712287d6befa02a1574ca9b39527dd16d88105e247702fe584b048"},{"version":"9b059a32ce37dbec06cd81c1e4499eb604b55624d39a83455e76cb59c39005a9","signature":"e15bb1842f43487e53a7fa286108062683b79605a8598de32cb1932484d92aa8"},"5425d93619916e17da6fd90ecddb6eecee916eba9d2f4aed281b2e874a3c119e","0e0b0baaf6e3845418c2741c9b47478cf6fc086ef8dd5ad4b9ab91499e51de28","ca6e8a62a3e4f5cc3fea6ab45c2e5e128db4d90d81d70547a65047e3f13996f1","f4617bbd5403ec5b058db53b242dcb1421952e2652bd5c80abf6a1c4ea5656d6","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","230d323ef7f2ffadfc0ceae494492c4d2faa2b4eaec07a4b71424d084b97ebb8","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","dae3d1adc67ac3dbd1cd471889301339ec439837b5df565982345be20c8fca9a","331dd4fb49f27df3e88bcd1361a063de1e9bcc7d463d6dc386b0c0d690c1a66f","bf88ef4208a770ca39a844b182b3695df536326ea566893fdc5b8418702a331e","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","7adecb2c3238794c378d336a8182d4c3dd2c4fa6fa1785e2797a3db550edea62","dc12dc0e5aa06f4e1a7692149b78f89116af823b9e1f1e4eae140cd3e0e674e6","1bfc6565b90c8771615cd8cfcf9b36efc0275e5e83ac7d9181307e96eb495161","8a8a96898906f065f296665e411f51010b51372fa260d5373bf9f64356703190","7f82ef88bdb67d9a850dd1c7cd2d690f33e0f0acd208e3c9eba086f3670d4f73",{"version":"ccfd8774cd9b929f63ff7dcf657977eb0652e3547f1fcac1b3a1dc5db22d4d58","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","3898e3dbe94b6fe529fbe8f0faee1309c1923100516d7a014b301955e52ece77","3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","bc88e4049153bc4dddb4503ed7e624eb141edfa9064b3659d6c86e900fe9e621","d81d85c49cb39a0cbe2ba467864076c88675a883be767a08b0595bf4cdf4eeda","2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","6aee496bf0ecfbf6731aa8cca32f4b6e92cdc0a444911a7d88410408a45ecc5d","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","48220b3395376205a0938f3f23c363a1084e86534caaec82b885efb1e0407408","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","b7b0003c5404c9cae2d7caf5d6b469b190cea06cce7815ba0e479a4457875290","65dfa4bc49ccd1355789abb6ae215b302a5b050fdee9651124fe7e826f33113c"],"options":{"allowSyntheticDefaultImports":true,"alwaysStrict":true,"declaration":true,"declarationMap":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"importsNotUsedAsValues":0,"module":1,"newLine":1,"noEmitHelpers":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","preserveConstEnums":true,"removeComments":false,"skipLibCheck":true,"sourceMap":true,"strict":true,"target":7,"useDefineForClassFields":true},"fileIdsList":[[106,143],[106],[79,106,113,141],[106,143,144,145,146,147],[106,143,145],[79,106,113],[106,150],[106,151],[106,156,161],[81,105,106,113,167,168],[63,106],[66,106],[67,72,106],[68,78,79,86,95,105,106],[68,69,78,86,106],[70,106],[71,72,79,87,106],[72,95,102,106],[73,75,78,86,106],[74,106],[75,76,106],[77,78,106],[78,106],[78,79,80,95,105,106],[78,79,80,95,106],[106,110],[81,86,95,105,106],[78,79,81,82,86,95,102,105,106],[81,83,95,102,105,106],[63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112],[78,84,106],[85,105,106],[75,78,86,95,106],[87,106],[88,106],[66,89,106],[90,104,106,110],[91,106],[92,106],[78,93,106],[93,94,106,108],[78,95,96,97,106],[95,97,106],[95,96,106],[98,106],[99,106],[78,100,101,106],[100,101,106],[72,86,95,102,106],[103,106],[86,104,106],[67,81,92,105,106],[72,106],[95,106,107],[106,108],[106,109],[67,72,78,80,89,95,105,106,108,110],[95,106,111],[68,106,113],[106,174,213],[106,174,198,213],[106,213],[106,174],[106,174,199,213],[106,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212],[106,199,213],[106,216],[78,95,106,113],[81,95,106,113],[106,154,157],[106,154,157,158,159],[106,156],[106,153,160],[61,62,106,132,133,134],[106,132,135],[61,62,106,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,130,131],[61,62,106,135],[62,106],[61,62,106],[106,135],[61,62,106,120],[61,106,135],[62,106,114],[106,155],[58,59,106],[58,106],[56,106],[56,57,60,79,106,135,137],[56,106,138,139],[56,57,106,136,138],[57,135],[138]],"referencedMap":[[145,1],[143,2],[142,3],[141,2],[148,4],[144,1],[146,5],[147,1],[149,6],[150,2],[151,7],[152,8],[162,9],[163,2],[164,2],[165,2],[166,2],[168,2],[169,10],[63,11],[64,11],[66,12],[67,13],[68,14],[69,15],[70,16],[71,17],[72,18],[73,19],[74,20],[75,21],[76,21],[77,22],[78,23],[79,24],[80,25],[65,26],[112,2],[81,27],[82,28],[83,29],[113,30],[84,31],[85,32],[86,33],[87,34],[88,35],[89,36],[90,37],[91,38],[92,39],[93,40],[94,41],[95,42],[97,43],[96,44],[98,45],[99,46],[100,47],[101,48],[102,49],[103,50],[104,51],[105,52],[106,53],[107,54],[108,55],[109,56],[110,57],[111,58],[170,2],[171,2],[172,2],[173,59],[198,60],[199,61],[174,62],[177,62],[196,60],[197,60],[187,60],[186,63],[184,60],[179,60],[192,60],[190,60],[194,60],[178,60],[191,60],[195,60],[180,60],[181,60],[193,60],[175,60],[182,60],[183,60],[185,60],[189,60],[200,64],[188,60],[176,60],[213,65],[212,2],[207,64],[209,66],[208,64],[201,64],[202,64],[204,64],[206,64],[210,66],[211,66],[203,66],[205,66],[214,2],[215,2],[216,2],[217,67],[218,68],[136,2],[153,2],[167,69],[154,2],[158,70],[160,71],[159,70],[157,72],[161,73],[134,2],[135,74],[133,75],[132,76],[131,77],[129,78],[119,79],[61,80],[117,78],[118,78],[130,78],[122,78],[123,78],[124,78],[116,78],[121,81],[62,82],[126,78],[115,78],[128,83],[125,78],[127,78],[114,2],[120,80],[156,84],[155,2],[56,2],[11,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[8,2],[48,2],[45,2],[46,2],[47,2],[49,2],[9,2],[50,2],[51,2],[52,2],[53,2],[54,2],[1,2],[10,2],[55,2],[58,2],[60,85],[59,86],[57,87],[138,88],[140,89],[139,87],[137,90]],"exportedModulesMap":[[145,1],[143,2],[142,3],[141,2],[148,4],[144,1],[146,5],[147,1],[149,6],[150,2],[151,7],[152,8],[162,9],[163,2],[164,2],[165,2],[166,2],[168,2],[169,10],[63,11],[64,11],[66,12],[67,13],[68,14],[69,15],[70,16],[71,17],[72,18],[73,19],[74,20],[75,21],[76,21],[77,22],[78,23],[79,24],[80,25],[65,26],[112,2],[81,27],[82,28],[83,29],[113,30],[84,31],[85,32],[86,33],[87,34],[88,35],[89,36],[90,37],[91,38],[92,39],[93,40],[94,41],[95,42],[97,43],[96,44],[98,45],[99,46],[100,47],[101,48],[102,49],[103,50],[104,51],[105,52],[106,53],[107,54],[108,55],[109,56],[110,57],[111,58],[170,2],[171,2],[172,2],[173,59],[198,60],[199,61],[174,62],[177,62],[196,60],[197,60],[187,60],[186,63],[184,60],[179,60],[192,60],[190,60],[194,60],[178,60],[191,60],[195,60],[180,60],[181,60],[193,60],[175,60],[182,60],[183,60],[185,60],[189,60],[200,64],[188,60],[176,60],[213,65],[212,2],[207,64],[209,66],[208,64],[201,64],[202,64],[204,64],[206,64],[210,66],[211,66],[203,66],[205,66],[214,2],[215,2],[216,2],[217,67],[218,68],[136,2],[153,2],[167,69],[154,2],[158,70],[160,71],[159,70],[157,72],[161,73],[134,2],[135,74],[133,75],[132,76],[131,77],[129,78],[119,79],[61,80],[117,78],[118,78],[130,78],[122,78],[123,78],[124,78],[116,78],[121,81],[62,82],[126,78],[115,78],[128,83],[125,78],[127,78],[114,2],[120,80],[156,84],[155,2],[56,2],[11,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[8,2],[48,2],[45,2],[46,2],[47,2],[49,2],[9,2],[50,2],[51,2],[52,2],[53,2],[54,2],[1,2],[10,2],[55,2],[58,2],[60,85],[59,86],[138,91],[140,89],[137,92]],"semanticDiagnosticsPerFile":[145,143,142,141,148,144,146,147,149,150,151,152,162,163,164,165,166,168,169,63,64,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,65,112,81,82,83,113,84,85,86,87,88,89,90,91,92,93,94,95,97,96,98,99,100,101,102,103,104,105,106,107,108,109,110,111,170,171,172,173,198,199,174,177,196,197,187,186,184,179,192,190,194,178,191,195,180,181,193,175,182,183,185,189,200,188,176,213,212,207,209,208,201,202,204,206,210,211,203,205,214,215,216,217,218,136,153,167,154,158,160,159,157,161,134,135,133,132,131,129,119,61,117,118,130,122,123,124,116,121,62,126,115,128,125,127,114,120,156,155,56,11,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,8,48,45,46,47,49,9,50,51,52,53,54,1,10,55,58,60,59,57,138,140,139,137]},"version":"4.9.4"}
|
|
1
|
+
{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/tslib/tslib.d.ts","../src/constants.ts","../../generative-bayesian-network/dist/bayesian-network.d.ts","../../generative-bayesian-network/dist/utils.d.ts","../../generative-bayesian-network/dist/index.d.ts","../../../node_modules/ow/dist/predicates/base-predicate.d.ts","../../../node_modules/ow/dist/predicates/predicate.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/ow/dist/typed-array.d.ts","../../../node_modules/ow/dist/predicates/string.d.ts","../../../node_modules/ow/dist/predicates/number.d.ts","../../../node_modules/ow/dist/predicates/bigint.d.ts","../../../node_modules/ow/dist/predicates/boolean.d.ts","../../../node_modules/ow/dist/predicates/array.d.ts","../../../node_modules/ow/dist/utils/match-shape.d.ts","../../../node_modules/ow/dist/predicates/object.d.ts","../../../node_modules/ow/dist/predicates/date.d.ts","../../../node_modules/ow/dist/predicates/error.d.ts","../../../node_modules/ow/dist/predicates/map.d.ts","../../../node_modules/ow/dist/predicates/weak-map.d.ts","../../../node_modules/ow/dist/predicates/set.d.ts","../../../node_modules/ow/dist/predicates/weak-set.d.ts","../../../node_modules/ow/dist/predicates/typed-array.d.ts","../../../node_modules/ow/dist/predicates/array-buffer.d.ts","../../../node_modules/ow/dist/predicates/data-view.d.ts","../../../node_modules/ow/dist/predicates/any.d.ts","../../../node_modules/ow/dist/predicates.d.ts","../../../node_modules/ow/dist/modifiers.d.ts","../../../node_modules/ow/dist/argument-error.d.ts","../../../node_modules/ow/dist/index.d.ts","../../../node_modules/browserslist/index.d.ts","../src/utils.ts","../src/header-generator.ts","../src/presets.ts","../src/index.ts","../../../node_modules/@types/adm-zip/util.d.ts","../../../node_modules/@types/adm-zip/index.d.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/jest-diff/build/cleanupSemantic.d.ts","../../../node_modules/pretty-format/build/types.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/types.d.ts","../../../node_modules/jest-diff/build/diffLines.d.ts","../../../node_modules/jest-diff/build/printDiffs.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/form-data/index.d.ts","../../../node_modules/@types/node-fetch/externals.d.ts","../../../node_modules/@types/node-fetch/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/prettier/index.d.ts","../../../node_modules/@types/puppeteer/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/useragent/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts","../../../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"f1c9fe42b65437a61104e601eb298c5c859fb522b483f1bdb700eed67a16f980",{"version":"5fc457c26e06846ba2378f52c9e2ef2999f624c56359019dabf6ba4b32b12497","signature":"f2bd2ac923e340878bbaf38d32e41be19dcfcf723c667933d67c31b4057128a8"},"a2f82b147c67d6846fac7e793680c5ff72359aad5f67f2a984d3cc42dc70d794","0e6dde5846f4d53f9873a91fbb83b8c3049aac418a5abd727ad4cfbb6138dcdd","934a05c5812223d19c2b2104f3d4ce35ab7cc0b135892b6eac12d82c5269c33a","7664bc39c9085e161f5f6f8f647ceffe26418a98a3f2a4c381fdc755be4b9e64","2cfbeb3885b75d97160fee31a23f4e5d1508cb2af1ce34ad98741b38a4b253b9","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"77f0b5c6a193a699c9f7d7fb0578e64e562d271afa740783665d2a827104a873","affectsGlobalScope":true},"e5979905796fe2740d85fbaf4f11f42b7ee1851421afe750823220813421b1af",{"version":"fcdcb42da18dd98dc286b1876dd425791772036012ae61263c011a76b13a190f","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","5b30f550565fd0a7524282c81c27fe8534099e2cd26170ca80852308f07ae68d","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","d97cd8a4a42f557fc62271369ed0461c8e50d47b7f9c8ad0b5462f53306f6060","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","063f53ff674228c190efa19dd9448bcbd540acdbb48a928f4cf3a1b9f9478e43","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"287b21dc1d1b9701c92e15e7dd673dfe6044b15812956377adffb6f08825b1bc","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"af9771b066ec35ffa1c7db391b018d2469d55e51b98ae95e62b6cbef1b0169ca","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","b2dfd89e02ac598aae6dec025ed75316412de59423e7a2345b951d33d72f4581","acf43834501c92da619d35679372c53d08a135fce5de10cc04e2f54c07134ae1","bc8f5e3c72bcb2e68e2feb272c8312b81fd0ba7417e2993eb569aa9aba05661d","ef275855066eb67627a2e8e388226fd510824d27d2a8f5555251fe096a9def3e","3b8ab6d861339b4c45682219429441534c00abd7f23fc0714e9326213669d35a","74ff64ddbb6c72565b2ffc98652f78c3895cc40c8264ed0881ec1221e759de18","83cf78cb96cbe2cf84d7acbb777345919e79d1357bf051bd5c1da1e7d85b755a","40c1a3ed908790d2d173914c88721ea4182cac8a6b1e5e13ef268a82404828c4","8b27c6ae71f8849874f800e49d14a98c92bb0ae54e0a79d6ae617063ba2a6e5c","ce6fbdceac62521a6f474355eb2a0b85446f7dd7437ce59eed9ac9ced059d4a0","466e0434af11422a1621060ca2745a4b94067076065b6e0c0aeb874c6eaa9a63","2b1177d4681eade2485edf0433bcd0037fbd2a7e6851c9fa7d3285056d30193e","323c2d2acc276d554fff791a55433159d117aa9662ac861090a2426fa1d01ab2","ecb626a33e299fc633fdab872d726f7de7abe01e7dade946a7d0b2572854aa0a","a5f9d6671ab55c6acf3117c592a5d84b46254d3f15cc66de0a308b2633b0cf75","9de2b351d62216e6b894c2e8ccb9b1a44ba320afca185d071ae1e63e608b8d8d","6a1a11860069ab718960e14c936567b39e4c66d8e650e94ba4d8da60415f0a33","84f576c5d9942a70efa2b4d14c8a805134f0bb3364535964b6d9eddf94219408","63d143c76b01b5bf6f591dba553cd0840b1d528200c89d5c4acc6e9fb237eeb5","cf49d08267c66f93e5e86e2e0137f85220e525f57fa93da5b3510dae11e6ba6d","0f988bd62f9188817239c3f2793995f642aa24f6e676296777e817fae7e8a5e3","6e2ea43283fbf89bc6c98a3171a817f3163b9fb77ef16411c7f44b72e25e3bfe",{"version":"45f5b8f72fc0a42e0e0cdde1390334d5e752a6d0be6ad6a84283fe9f7eeed87c","affectsGlobalScope":true},{"version":"e4982797f54beb9680b644655c6dd4c4a48688dffb634970209f6b10072418c0","signature":"f34255c43f2fd558c090437165dd8dabfab9ac5aeb7d4cf8f1d1a040c421221a"},{"version":"356ee0ff262d74f7f56847c3733c21c1a1c5b508270207347a082a53bb7f0127","signature":"3b3ee494d1712287d6befa02a1574ca9b39527dd16d88105e247702fe584b048"},{"version":"9b059a32ce37dbec06cd81c1e4499eb604b55624d39a83455e76cb59c39005a9","signature":"e15bb1842f43487e53a7fa286108062683b79605a8598de32cb1932484d92aa8"},"5425d93619916e17da6fd90ecddb6eecee916eba9d2f4aed281b2e874a3c119e","0e0b0baaf6e3845418c2741c9b47478cf6fc086ef8dd5ad4b9ab91499e51de28","ca6e8a62a3e4f5cc3fea6ab45c2e5e128db4d90d81d70547a65047e3f13996f1","e5b5f7e524f2619d48c5700a0a545864dee0555dc587c3d96c7cc40ddaf6aa8f","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","b4f76b34637d79cefad486127115fed843762c69512d7101b7096e1293699679","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","dae3d1adc67ac3dbd1cd471889301339ec439837b5df565982345be20c8fca9a","b6ddf3a46ccfa4441d8be84d2e9bf3087573c48804196faedbd4a25b60631beb","bf88ef4208a770ca39a844b182b3695df536326ea566893fdc5b8418702a331e","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","7adecb2c3238794c378d336a8182d4c3dd2c4fa6fa1785e2797a3db550edea62","dc12dc0e5aa06f4e1a7692149b78f89116af823b9e1f1e4eae140cd3e0e674e6","1bfc6565b90c8771615cd8cfcf9b36efc0275e5e83ac7d9181307e96eb495161","8a8a96898906f065f296665e411f51010b51372fa260d5373bf9f64356703190","7f82ef88bdb67d9a850dd1c7cd2d690f33e0f0acd208e3c9eba086f3670d4f73",{"version":"ccfd8774cd9b929f63ff7dcf657977eb0652e3547f1fcac1b3a1dc5db22d4d58","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","3898e3dbe94b6fe529fbe8f0faee1309c1923100516d7a014b301955e52ece77","3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","bc88e4049153bc4dddb4503ed7e624eb141edfa9064b3659d6c86e900fe9e621","d81d85c49cb39a0cbe2ba467864076c88675a883be767a08b0595bf4cdf4eeda","2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","6aee496bf0ecfbf6731aa8cca32f4b6e92cdc0a444911a7d88410408a45ecc5d","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","48220b3395376205a0938f3f23c363a1084e86534caaec82b885efb1e0407408","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","ae84439d1ae42b30ced3df38c4285f35b805be40dfc95b0647d0e59c70b11f97","65dfa4bc49ccd1355789abb6ae215b302a5b050fdee9651124fe7e826f33113c"],"options":{"allowSyntheticDefaultImports":true,"alwaysStrict":true,"declaration":true,"declarationMap":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"importsNotUsedAsValues":0,"module":1,"newLine":1,"noEmitHelpers":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","preserveConstEnums":true,"removeComments":false,"skipLibCheck":true,"sourceMap":true,"strict":true,"target":7,"useDefineForClassFields":true},"fileIdsList":[[106,143],[106],[79,106,113,141],[106,143,144,145,146,147],[106,143,145],[79,106,113],[106,150],[106,151],[106,156,161],[81,105,106,113,167,168],[63,106],[66,106],[67,72,106],[68,78,79,86,95,105,106],[68,69,78,86,106],[70,106],[71,72,79,87,106],[72,95,102,106],[73,75,78,86,106],[74,106],[75,76,106],[77,78,106],[78,106],[78,79,80,95,105,106],[78,79,80,95,106],[106,110],[81,86,95,105,106],[78,79,81,82,86,95,102,105,106],[81,83,95,102,105,106],[63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112],[78,84,106],[85,105,106],[75,78,86,95,106],[87,106],[88,106],[66,89,106],[90,104,106,110],[91,106],[92,106],[78,93,106],[93,94,106,108],[78,95,96,97,106],[95,97,106],[95,96,106],[98,106],[99,106],[78,100,101,106],[100,101,106],[72,86,95,102,106],[103,106],[86,104,106],[67,81,92,105,106],[72,106],[95,106,107],[106,108],[106,109],[67,72,78,80,89,95,105,106,108,110],[95,106,111],[68,106,113],[106,174,213],[106,174,198,213],[106,213],[106,174],[106,174,199,213],[106,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212],[106,199,213],[106,216],[78,95,106,113],[81,95,106,113],[106,154,157],[106,154,157,158,159],[106,156],[106,153,160],[61,62,106,132,133,134],[106,132,135],[61,62,106,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,130,131],[61,62,106,135],[62,106],[61,62,106],[106,135],[61,62,106,120],[61,106,135],[62,106,114],[106,155],[58,59,106],[58,106],[56,106],[56,57,60,79,106,135,137],[56,106,138,139],[56,57,106,136,138],[57,135],[138]],"referencedMap":[[145,1],[143,2],[142,3],[141,2],[148,4],[144,1],[146,5],[147,1],[149,6],[150,2],[151,7],[152,8],[162,9],[163,2],[164,2],[165,2],[166,2],[168,2],[169,10],[63,11],[64,11],[66,12],[67,13],[68,14],[69,15],[70,16],[71,17],[72,18],[73,19],[74,20],[75,21],[76,21],[77,22],[78,23],[79,24],[80,25],[65,26],[112,2],[81,27],[82,28],[83,29],[113,30],[84,31],[85,32],[86,33],[87,34],[88,35],[89,36],[90,37],[91,38],[92,39],[93,40],[94,41],[95,42],[97,43],[96,44],[98,45],[99,46],[100,47],[101,48],[102,49],[103,50],[104,51],[105,52],[106,53],[107,54],[108,55],[109,56],[110,57],[111,58],[170,2],[171,2],[172,2],[173,59],[198,60],[199,61],[174,62],[177,62],[196,60],[197,60],[187,60],[186,63],[184,60],[179,60],[192,60],[190,60],[194,60],[178,60],[191,60],[195,60],[180,60],[181,60],[193,60],[175,60],[182,60],[183,60],[185,60],[189,60],[200,64],[188,60],[176,60],[213,65],[212,2],[207,64],[209,66],[208,64],[201,64],[202,64],[204,64],[206,64],[210,66],[211,66],[203,66],[205,66],[214,2],[215,2],[216,2],[217,67],[218,68],[136,2],[153,2],[167,69],[154,2],[158,70],[160,71],[159,70],[157,72],[161,73],[134,2],[135,74],[133,75],[132,76],[131,77],[129,78],[119,79],[61,80],[117,78],[118,78],[130,78],[122,78],[123,78],[124,78],[116,78],[121,81],[62,82],[126,78],[115,78],[128,83],[125,78],[127,78],[114,2],[120,80],[156,84],[155,2],[56,2],[11,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[8,2],[48,2],[45,2],[46,2],[47,2],[49,2],[9,2],[50,2],[51,2],[52,2],[53,2],[54,2],[1,2],[10,2],[55,2],[58,2],[60,85],[59,86],[57,87],[138,88],[140,89],[139,87],[137,90]],"exportedModulesMap":[[145,1],[143,2],[142,3],[141,2],[148,4],[144,1],[146,5],[147,1],[149,6],[150,2],[151,7],[152,8],[162,9],[163,2],[164,2],[165,2],[166,2],[168,2],[169,10],[63,11],[64,11],[66,12],[67,13],[68,14],[69,15],[70,16],[71,17],[72,18],[73,19],[74,20],[75,21],[76,21],[77,22],[78,23],[79,24],[80,25],[65,26],[112,2],[81,27],[82,28],[83,29],[113,30],[84,31],[85,32],[86,33],[87,34],[88,35],[89,36],[90,37],[91,38],[92,39],[93,40],[94,41],[95,42],[97,43],[96,44],[98,45],[99,46],[100,47],[101,48],[102,49],[103,50],[104,51],[105,52],[106,53],[107,54],[108,55],[109,56],[110,57],[111,58],[170,2],[171,2],[172,2],[173,59],[198,60],[199,61],[174,62],[177,62],[196,60],[197,60],[187,60],[186,63],[184,60],[179,60],[192,60],[190,60],[194,60],[178,60],[191,60],[195,60],[180,60],[181,60],[193,60],[175,60],[182,60],[183,60],[185,60],[189,60],[200,64],[188,60],[176,60],[213,65],[212,2],[207,64],[209,66],[208,64],[201,64],[202,64],[204,64],[206,64],[210,66],[211,66],[203,66],[205,66],[214,2],[215,2],[216,2],[217,67],[218,68],[136,2],[153,2],[167,69],[154,2],[158,70],[160,71],[159,70],[157,72],[161,73],[134,2],[135,74],[133,75],[132,76],[131,77],[129,78],[119,79],[61,80],[117,78],[118,78],[130,78],[122,78],[123,78],[124,78],[116,78],[121,81],[62,82],[126,78],[115,78],[128,83],[125,78],[127,78],[114,2],[120,80],[156,84],[155,2],[56,2],[11,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[8,2],[48,2],[45,2],[46,2],[47,2],[49,2],[9,2],[50,2],[51,2],[52,2],[53,2],[54,2],[1,2],[10,2],[55,2],[58,2],[60,85],[59,86],[138,91],[140,89],[137,92]],"semanticDiagnosticsPerFile":[145,143,142,141,148,144,146,147,149,150,151,152,162,163,164,165,166,168,169,63,64,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,65,112,81,82,83,113,84,85,86,87,88,89,90,91,92,93,94,95,97,96,98,99,100,101,102,103,104,105,106,107,108,109,110,111,170,171,172,173,198,199,174,177,196,197,187,186,184,179,192,190,194,178,191,195,180,181,193,175,182,183,185,189,200,188,176,213,212,207,209,208,201,202,204,206,210,211,203,205,214,215,216,217,218,136,153,167,154,158,160,159,157,161,134,135,133,132,131,129,119,61,117,118,130,122,123,124,116,121,62,126,115,128,125,127,114,120,156,155,56,11,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,8,48,45,46,47,49,9,50,51,52,53,54,1,10,55,58,60,59,57,138,140,139,137]},"version":"4.9.5"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "header-generator",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.12",
|
|
4
4
|
"description": "NodeJS package for generating realistic browser-like HTTP headers.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Apify",
|
|
@@ -12,27 +12,27 @@
|
|
|
12
12
|
"engines": {
|
|
13
13
|
"node": ">=16.0.0"
|
|
14
14
|
},
|
|
15
|
-
"main": "index.js",
|
|
16
|
-
"module": "index.mjs",
|
|
17
|
-
"types": "index.d.ts",
|
|
15
|
+
"main": "dist/index.js",
|
|
16
|
+
"module": "dist/index.mjs",
|
|
17
|
+
"types": "dist/index.d.ts",
|
|
18
18
|
"exports": {
|
|
19
19
|
".": {
|
|
20
|
-
"import": "./index.mjs",
|
|
21
|
-
"require": "./index.js",
|
|
22
|
-
"types": "./index.d.ts"
|
|
20
|
+
"import": "./dist/index.mjs",
|
|
21
|
+
"require": "./dist/index.js",
|
|
22
|
+
"types": "./dist/index.d.ts"
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"browserslist": "^4.21.1",
|
|
27
|
-
"generative-bayesian-network": "^2.1.
|
|
27
|
+
"generative-bayesian-network": "^2.1.10",
|
|
28
28
|
"ow": "^0.28.1",
|
|
29
29
|
"tslib": "^2.4.0"
|
|
30
30
|
},
|
|
31
31
|
"scripts": {
|
|
32
32
|
"build": "npm run clean && npm run compile",
|
|
33
|
-
"postbuild": "cp -r src/data_files/
|
|
33
|
+
"postbuild": "cp -r src/data_files/ dist/ && cp ../../README.md dist/",
|
|
34
34
|
"clean": "rimraf ./dist",
|
|
35
|
-
"compile": "tsc -p tsconfig.build.json && gen-esm-wrapper ./index.js ./index.mjs",
|
|
35
|
+
"compile": "tsc -p tsconfig.build.json && gen-esm-wrapper ./dist/index.js ./dist/index.mjs",
|
|
36
36
|
"copy": "ts-node -T ../../scripts/copy.ts"
|
|
37
37
|
},
|
|
38
38
|
"bugs": {
|
|
@@ -41,6 +41,5 @@
|
|
|
41
41
|
"repository": {
|
|
42
42
|
"type": "git",
|
|
43
43
|
"url": "git+https://github.com/apify/header-generator.git"
|
|
44
|
-
}
|
|
45
|
-
"gitHead": "2f5842dc0b652f245a3be3073767e9a8669afae9"
|
|
44
|
+
}
|
|
46
45
|
}
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export const SUPPORTED_BROWSERS = [
|
|
2
|
+
'chrome',
|
|
3
|
+
'firefox',
|
|
4
|
+
'safari',
|
|
5
|
+
'edge',
|
|
6
|
+
] as const;
|
|
7
|
+
export const SUPPORTED_OPERATING_SYSTEMS = ['windows', 'macos', 'linux', 'android', 'ios'] as const;
|
|
8
|
+
export const SUPPORTED_DEVICES = ['desktop', 'mobile'] as const;
|
|
9
|
+
export const SUPPORTED_HTTP_VERSIONS = ['1', '2'] as const;
|
|
10
|
+
|
|
11
|
+
export const BROWSER_HTTP_NODE_NAME = '*BROWSER_HTTP' as const;
|
|
12
|
+
export const OPERATING_SYSTEM_NODE_NAME = '*OPERATING_SYSTEM' as const;
|
|
13
|
+
export const DEVICE_NODE_NAME = '*DEVICE' as const;
|
|
14
|
+
export const MISSING_VALUE_DATASET_TOKEN = '*MISSING_VALUE*' as const;
|
|
15
|
+
|
|
16
|
+
export const HTTP1_SEC_FETCH_ATTRIBUTES = {
|
|
17
|
+
mode: 'Sec-Fetch-Mode',
|
|
18
|
+
dest: 'Sec-Fetch-Dest',
|
|
19
|
+
site: 'Sec-Fetch-Site',
|
|
20
|
+
user: 'Sec-Fetch-User',
|
|
21
|
+
} as const;
|
|
22
|
+
|
|
23
|
+
export const HTTP2_SEC_FETCH_ATTRIBUTES = {
|
|
24
|
+
mode: 'sec-fetch-mode',
|
|
25
|
+
dest: 'sec-fetch-dest',
|
|
26
|
+
site: 'sec-fetch-site',
|
|
27
|
+
user: 'sec-fetch-user',
|
|
28
|
+
} as const;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
["edge/109.0.1518.70|2","edge/109.0.1518.78|2","safari/604.1|1","chrome/110.0.0.0|2","chrome/110.0.5481.77|2","chrome/109.0.0.0|2","edge/110.0.1587.41|2","*MISSING_VALUE*|1","chrome/107.0.0.0|1","chrome/109.0.0.0|1","chrome/79.0.3945.130|2","chrome/72.0.3626.121|2","chrome/110.0.0.0|1","chrome/108.0.0.0|2","chrome/102.0.5005.125|1","chrome/100.0.4896.127|2","chrome/80.0.3987.122|2","chrome/88.0.4324.150|1","chrome/80.0.3987.116|2","firefox/109.0|2","safari/604.1|2","firefox/110.0|2","safari/605.1.15|2","chrome/103.0.0.0|2","edge/108.0.1462.77|2","chrome/83.0.4103.116|2","firefox/102.0|2","chrome/106.0.0.0|2","firefox/109.0|1","safari/534.30|2","chrome/90.0.4430.210|2","*MISSING_VALUE*|2","chrome/92.0.4515.107|2","chrome/109.0.5414.117|2","edge/108.0.1462.54|2","firefox/111.0|2","firefox/106.0|2","chrome/107.0.0.0|2","chrome/80.0.3987.99|2","chrome/91.0.4472.114|2","chrome/104.0.0.0|2","chrome/75.0.3770.142|2","chrome/91.0.4472.120|2","firefox/107.0|2","chrome/112.0.0.0|2","chrome/103.0.5060.134|2","edge/109.0.1518.80|2","chrome/107.0.5304.141|2","chrome/94.0.4606.85|2","chrome/90.0.4430.212|2","chrome/109.0.5414.120|2","chrome/102.0.5005.125|2","chrome/102.0.0.0|2","firefox/108.0|2","chrome/98.0.4758.101|2","chrome/91.0.4472.164|2","edge/111.0.0.0|2","chrome/93.0.4577.82|2","edge/111.0.1660.9|2","firefox/72.0|2","chrome/86.0.4239.0|2","chrome/89.0.4389.82|2","chrome/94.0.4606.71|2","chrome/99.0.4844.88|2","edge/108.0.1462.76|2","chrome/111.0.0.0|2","chrome/108.0.0.0|1","chrome/101.0.0.0|2","chrome/100.0.4861.0|2","chrome/96.0.4664.104|2","chrome/107.0.4664.104|2","edge/111.0.1660.7|2","edge/110.0.0.0|2","edge/109.0.1518.52|2","edge/109.0.1518.78|1","chrome/108.0.5351.0|2","edge/110.0.1587.40|2","chrome/93.0.4577.63|2","edge/106.0.1370.52|2","chrome/96.0.4664.45|2","chrome/99.0.4844.51|2","chrome/108.0.5163.147|2","edge/108.0.1462.46|2","chrome/101.0.4951.26|2","chrome/100.0.4896.60|2","chrome/110.0.5478.0|2","chrome/105.0.0.0|2","chrome/77.0.3865.90|2","firefox/31.0|2","firefox/67.0|2","chrome/95.0.4638.69|2","firefox/87.0|2","chrome/92.0.4515.159|2","chrome/97.0.4692.98|2","chrome/108.0.5359.128|2","chrome/101.0.4951.15|2"]
|
|
Binary file
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
{
|
|
2
|
+
"safari": [
|
|
3
|
+
"cookie",
|
|
4
|
+
"Cookie",
|
|
5
|
+
"Connection",
|
|
6
|
+
"sec-ch-ua",
|
|
7
|
+
"sec-ch-ua-mobile",
|
|
8
|
+
"upgrade-insecure-requests",
|
|
9
|
+
"Upgrade-Insecure-Requests",
|
|
10
|
+
"accept",
|
|
11
|
+
"Accept",
|
|
12
|
+
"accept-encoding",
|
|
13
|
+
"Accept-Encoding",
|
|
14
|
+
"user-agent",
|
|
15
|
+
"User-Agent",
|
|
16
|
+
"accept-language",
|
|
17
|
+
"Accept-Language",
|
|
18
|
+
"referer",
|
|
19
|
+
"Referer",
|
|
20
|
+
"sec-fetch-site",
|
|
21
|
+
"sec-fetch-mode",
|
|
22
|
+
"sec-fetch-user",
|
|
23
|
+
"sec-fetch-dest",
|
|
24
|
+
"Sec-Fetch-Mode",
|
|
25
|
+
"Sec-Fetch-Dest",
|
|
26
|
+
"Sec-Fetch-Site",
|
|
27
|
+
"Sec-Fetch-User",
|
|
28
|
+
"dnt",
|
|
29
|
+
"DNT",
|
|
30
|
+
"te"
|
|
31
|
+
],
|
|
32
|
+
"chrome": [
|
|
33
|
+
"Connection",
|
|
34
|
+
"sec-ch-ua",
|
|
35
|
+
"sec-ch-ua-mobile",
|
|
36
|
+
"sec-ch-ua-platform",
|
|
37
|
+
"upgrade-insecure-requests",
|
|
38
|
+
"Upgrade-Insecure-Requests",
|
|
39
|
+
"dnt",
|
|
40
|
+
"DNT",
|
|
41
|
+
"user-agent",
|
|
42
|
+
"User-Agent",
|
|
43
|
+
"accept",
|
|
44
|
+
"Accept",
|
|
45
|
+
"sec-fetch-site",
|
|
46
|
+
"sec-fetch-mode",
|
|
47
|
+
"sec-fetch-user",
|
|
48
|
+
"sec-fetch-dest",
|
|
49
|
+
"Sec-Fetch-Mode",
|
|
50
|
+
"Sec-Fetch-Dest",
|
|
51
|
+
"Sec-Fetch-Site",
|
|
52
|
+
"Sec-Fetch-User",
|
|
53
|
+
"referer",
|
|
54
|
+
"Referer",
|
|
55
|
+
"accept-encoding",
|
|
56
|
+
"Accept-Encoding",
|
|
57
|
+
"accept-language",
|
|
58
|
+
"Accept-Language",
|
|
59
|
+
"te",
|
|
60
|
+
"cookie",
|
|
61
|
+
"Cookie"
|
|
62
|
+
],
|
|
63
|
+
"firefox": [
|
|
64
|
+
"sec-ch-ua",
|
|
65
|
+
"sec-ch-ua-mobile",
|
|
66
|
+
"user-agent",
|
|
67
|
+
"User-Agent",
|
|
68
|
+
"accept",
|
|
69
|
+
"Accept",
|
|
70
|
+
"accept-language",
|
|
71
|
+
"Accept-Language",
|
|
72
|
+
"accept-encoding",
|
|
73
|
+
"Accept-Encoding",
|
|
74
|
+
"dnt",
|
|
75
|
+
"DNT",
|
|
76
|
+
"referer",
|
|
77
|
+
"Referer",
|
|
78
|
+
"cookie",
|
|
79
|
+
"Cookie",
|
|
80
|
+
"Connection",
|
|
81
|
+
"upgrade-insecure-requests",
|
|
82
|
+
"Upgrade-Insecure-Requests",
|
|
83
|
+
"te",
|
|
84
|
+
"sec-fetch-site",
|
|
85
|
+
"sec-fetch-mode",
|
|
86
|
+
"sec-fetch-user",
|
|
87
|
+
"sec-fetch-dest",
|
|
88
|
+
"Sec-Fetch-Mode",
|
|
89
|
+
"Sec-Fetch-Dest",
|
|
90
|
+
"Sec-Fetch-Site",
|
|
91
|
+
"Sec-Fetch-User"
|
|
92
|
+
],
|
|
93
|
+
"edge": [
|
|
94
|
+
"Connection",
|
|
95
|
+
"sec-ch-ua",
|
|
96
|
+
"sec-ch-ua-mobile",
|
|
97
|
+
"sec-ch-ua-platform",
|
|
98
|
+
"upgrade-insecure-requests",
|
|
99
|
+
"Upgrade-Insecure-Requests",
|
|
100
|
+
"dnt",
|
|
101
|
+
"DNT",
|
|
102
|
+
"user-agent",
|
|
103
|
+
"User-Agent",
|
|
104
|
+
"accept",
|
|
105
|
+
"Accept",
|
|
106
|
+
"sec-fetch-site",
|
|
107
|
+
"sec-fetch-mode",
|
|
108
|
+
"sec-fetch-user",
|
|
109
|
+
"sec-fetch-dest",
|
|
110
|
+
"Sec-Fetch-Mode",
|
|
111
|
+
"Sec-Fetch-Dest",
|
|
112
|
+
"Sec-Fetch-Site",
|
|
113
|
+
"Sec-Fetch-User",
|
|
114
|
+
"referer",
|
|
115
|
+
"Referer",
|
|
116
|
+
"accept-encoding",
|
|
117
|
+
"Accept-Encoding",
|
|
118
|
+
"accept-language",
|
|
119
|
+
"Accept-Language",
|
|
120
|
+
"cookie",
|
|
121
|
+
"Cookie",
|
|
122
|
+
"te"
|
|
123
|
+
]
|
|
124
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,481 @@
|
|
|
1
|
+
import { BayesianNetwork, utils } from 'generative-bayesian-network';
|
|
2
|
+
import ow from 'ow';
|
|
3
|
+
import { readFileSync } from 'fs';
|
|
4
|
+
import {
|
|
5
|
+
getBrowser,
|
|
6
|
+
getUserAgent,
|
|
7
|
+
getBrowsersFromQuery,
|
|
8
|
+
shuffleArray,
|
|
9
|
+
} from './utils';
|
|
10
|
+
|
|
11
|
+
import {
|
|
12
|
+
SUPPORTED_BROWSERS,
|
|
13
|
+
BROWSER_HTTP_NODE_NAME,
|
|
14
|
+
MISSING_VALUE_DATASET_TOKEN,
|
|
15
|
+
OPERATING_SYSTEM_NODE_NAME,
|
|
16
|
+
DEVICE_NODE_NAME,
|
|
17
|
+
SUPPORTED_OPERATING_SYSTEMS,
|
|
18
|
+
SUPPORTED_DEVICES,
|
|
19
|
+
SUPPORTED_HTTP_VERSIONS,
|
|
20
|
+
HTTP1_SEC_FETCH_ATTRIBUTES,
|
|
21
|
+
HTTP2_SEC_FETCH_ATTRIBUTES,
|
|
22
|
+
} from './constants';
|
|
23
|
+
|
|
24
|
+
const browserSpecificationShape = {
|
|
25
|
+
name: ow.string,
|
|
26
|
+
minVersion: ow.optional.number,
|
|
27
|
+
maxVersion: ow.optional.number,
|
|
28
|
+
httpVersion: ow.optional.string,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const headerGeneratorOptionsShape = {
|
|
32
|
+
browsers: ow.optional.array.ofType(ow.any(ow.object.exactShape(browserSpecificationShape), ow.string.oneOf(SUPPORTED_BROWSERS))),
|
|
33
|
+
operatingSystems: ow.optional.array.ofType(ow.string.oneOf(SUPPORTED_OPERATING_SYSTEMS)),
|
|
34
|
+
devices: ow.optional.array.ofType(ow.string.oneOf(SUPPORTED_DEVICES)),
|
|
35
|
+
locales: ow.optional.array.ofType(ow.string),
|
|
36
|
+
httpVersion: ow.optional.string.oneOf(SUPPORTED_HTTP_VERSIONS),
|
|
37
|
+
browserListQuery: ow.optional.string,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* String specifying the HTTP version to use.
|
|
42
|
+
*/
|
|
43
|
+
export type HttpVersion = typeof SUPPORTED_HTTP_VERSIONS[number];
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* String specifying the device type to use.
|
|
47
|
+
*/
|
|
48
|
+
export type Device = typeof SUPPORTED_DEVICES[number];
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* String specifying the operating system to use.
|
|
52
|
+
*/
|
|
53
|
+
export type OperatingSystem = typeof SUPPORTED_OPERATING_SYSTEMS[number];
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* String specifying the browser to use.
|
|
57
|
+
*/
|
|
58
|
+
export type BrowserName = typeof SUPPORTED_BROWSERS[number];
|
|
59
|
+
|
|
60
|
+
export interface BrowserSpecification {
|
|
61
|
+
/**
|
|
62
|
+
* String representing the browser name.
|
|
63
|
+
*/
|
|
64
|
+
name: BrowserName;
|
|
65
|
+
/**
|
|
66
|
+
* Minimum version of browser used.
|
|
67
|
+
*/
|
|
68
|
+
minVersion?: number;
|
|
69
|
+
/**
|
|
70
|
+
* Maximum version of browser used.
|
|
71
|
+
*/
|
|
72
|
+
maxVersion?: number;
|
|
73
|
+
/**
|
|
74
|
+
* HTTP version to be used for header generation (the headers differ depending on the version).
|
|
75
|
+
* If not specified, the `httpVersion` specified in `HeaderGeneratorOptions` is used.
|
|
76
|
+
*/
|
|
77
|
+
httpVersion?: HttpVersion;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export type BrowsersType = BrowserSpecification[] | BrowserName[];
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Options for the `HeaderGenerator` class constructor.
|
|
84
|
+
*/
|
|
85
|
+
export interface HeaderGeneratorOptions {
|
|
86
|
+
/**
|
|
87
|
+
* List of BrowserSpecifications to generate the headers for,
|
|
88
|
+
* or one of `chrome`, `edge`, `firefox` and `safari`.
|
|
89
|
+
*/
|
|
90
|
+
browsers: BrowsersType;
|
|
91
|
+
/**
|
|
92
|
+
* Browser generation query based on the real world data.
|
|
93
|
+
* For more info see the [query docs](https://github.com/browserslist/browserslist#full-list).
|
|
94
|
+
* If `browserListQuery` is passed the `browsers` array is ignored.
|
|
95
|
+
*/
|
|
96
|
+
browserListQuery: string;
|
|
97
|
+
/**
|
|
98
|
+
* List of operating systems to generate the headers for.
|
|
99
|
+
*/
|
|
100
|
+
operatingSystems: OperatingSystem[];
|
|
101
|
+
/**
|
|
102
|
+
* List of devices to generate the headers for.
|
|
103
|
+
*/
|
|
104
|
+
devices: Device[];
|
|
105
|
+
/**
|
|
106
|
+
* List of at most 10 languages to include in the
|
|
107
|
+
* [Accept-Language](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language) request header
|
|
108
|
+
* in the language format accepted by that header, for example `en`, `en-US` or `de`.
|
|
109
|
+
*/
|
|
110
|
+
locales: string[];
|
|
111
|
+
/**
|
|
112
|
+
* Http version to be used to generate headers (the headers differ depending on the version).
|
|
113
|
+
* Can be either 1 or 2. Default value is 2.
|
|
114
|
+
*/
|
|
115
|
+
httpVersion: HttpVersion;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Structured information about a browser and HTTP version used.
|
|
120
|
+
*/
|
|
121
|
+
export interface HttpBrowserObject {
|
|
122
|
+
/**
|
|
123
|
+
* Name of the browser used.
|
|
124
|
+
*/
|
|
125
|
+
name: BrowserName | typeof MISSING_VALUE_DATASET_TOKEN;
|
|
126
|
+
/**
|
|
127
|
+
* Browser version split into parts of the semantic version number.
|
|
128
|
+
*/
|
|
129
|
+
version: number[];
|
|
130
|
+
/**
|
|
131
|
+
* String containing the browser name, browser version and HTTP version (e.g. `chrome/88.0.4324.182|2`).
|
|
132
|
+
*/
|
|
133
|
+
completeString: string;
|
|
134
|
+
/**
|
|
135
|
+
* HTTP version as a string ("1" or "2").
|
|
136
|
+
*/
|
|
137
|
+
httpVersion: HttpVersion;
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
export type Headers = Record<string, string>;
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Randomly generates realistic HTTP headers based on specified options.
|
|
144
|
+
*/
|
|
145
|
+
export class HeaderGenerator {
|
|
146
|
+
globalOptions: HeaderGeneratorOptions;
|
|
147
|
+
|
|
148
|
+
browserListQuery: string | undefined;
|
|
149
|
+
|
|
150
|
+
private inputGeneratorNetwork: any;
|
|
151
|
+
|
|
152
|
+
private headerGeneratorNetwork: any;
|
|
153
|
+
|
|
154
|
+
private uniqueBrowsers: HttpBrowserObject[];
|
|
155
|
+
|
|
156
|
+
private headersOrder: string[];
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* @param options Default header generation options used - unless overridden.
|
|
160
|
+
*/
|
|
161
|
+
constructor(options: Partial<HeaderGeneratorOptions> = {}) {
|
|
162
|
+
ow(options, 'HeaderGeneratorOptions', ow.object.partialShape(headerGeneratorOptionsShape));
|
|
163
|
+
// Use a default setup when the necessary values are not provided
|
|
164
|
+
const {
|
|
165
|
+
browsers = SUPPORTED_BROWSERS,
|
|
166
|
+
operatingSystems = SUPPORTED_OPERATING_SYSTEMS as unknown as OperatingSystem[],
|
|
167
|
+
devices = ['desktop'],
|
|
168
|
+
locales = ['en-US'],
|
|
169
|
+
httpVersion = '2',
|
|
170
|
+
browserListQuery = '',
|
|
171
|
+
} = options;
|
|
172
|
+
this.globalOptions = {
|
|
173
|
+
browsers: this._prepareBrowsersConfig(browsers as BrowsersType, browserListQuery, httpVersion),
|
|
174
|
+
operatingSystems,
|
|
175
|
+
devices,
|
|
176
|
+
locales,
|
|
177
|
+
httpVersion,
|
|
178
|
+
browserListQuery,
|
|
179
|
+
};
|
|
180
|
+
this.uniqueBrowsers = [];
|
|
181
|
+
|
|
182
|
+
this.headersOrder = JSON.parse(readFileSync(`${__dirname}/data_files/headers-order.json`).toString());
|
|
183
|
+
const uniqueBrowserStrings = JSON.parse(readFileSync(`${__dirname}/data_files/browser-helper-file.json`, 'utf8').toString());
|
|
184
|
+
|
|
185
|
+
for (const browserString of uniqueBrowserStrings) {
|
|
186
|
+
// There are headers without user agents in the datasets we used to configure the generator. They should be disregarded.
|
|
187
|
+
if (browserString !== MISSING_VALUE_DATASET_TOKEN) {
|
|
188
|
+
this.uniqueBrowsers.push(this.prepareHttpBrowserObject(browserString));
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
this.inputGeneratorNetwork = new BayesianNetwork({ path: `${__dirname}/data_files/input-network-definition.zip` });
|
|
193
|
+
this.headerGeneratorNetwork = new BayesianNetwork({ path: `${__dirname}/data_files/header-network-definition.zip` });
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Generates a single set of ordered headers using a combination of the default options specified in the constructor
|
|
198
|
+
* and their possible overrides provided here.
|
|
199
|
+
* @param options Specifies options that should be overridden for this one call.
|
|
200
|
+
* @param requestDependentHeaders Specifies known values of headers dependent on the particular request.
|
|
201
|
+
*/
|
|
202
|
+
getHeaders(options: Partial<HeaderGeneratorOptions> = {}, requestDependentHeaders: Headers = {}, userAgentValues?: string[]): Headers {
|
|
203
|
+
ow(options, 'HeaderGeneratorOptions', ow.object.partialShape(headerGeneratorOptionsShape));
|
|
204
|
+
const headerOptions = { ...this.globalOptions, ...options };
|
|
205
|
+
const possibleAttributeValues = this._getPossibleAttributeValues(headerOptions);
|
|
206
|
+
|
|
207
|
+
const [http1Values, http2Values] = userAgentValues ? [
|
|
208
|
+
utils.getPossibleValues(this.headerGeneratorNetwork, { 'User-Agent': userAgentValues }),
|
|
209
|
+
utils.getPossibleValues(this.headerGeneratorNetwork, { 'user-agent': userAgentValues }),
|
|
210
|
+
] : [null, null];
|
|
211
|
+
|
|
212
|
+
// Generate a sample of input attributes consistent with the data used to create the definition files if possible.
|
|
213
|
+
const inputSample = this.inputGeneratorNetwork.generateConsistentSampleWhenPossible(
|
|
214
|
+
Object.entries(possibleAttributeValues).reduce((acc, [key, value]) => {
|
|
215
|
+
if (key === '*BROWSER_HTTP') {
|
|
216
|
+
acc[key] = value.filter((x: string) => {
|
|
217
|
+
const [browserName, httpVersion] = x.split('|');
|
|
218
|
+
return (httpVersion === '1' ? http1Values : http2Values)?.['*BROWSER'].includes(browserName) ?? true;
|
|
219
|
+
});
|
|
220
|
+
return acc;
|
|
221
|
+
}
|
|
222
|
+
acc[key] = value.filter((x: string) => (http1Values?.[key]?.includes(x) || http2Values?.[key]?.includes(x)) ?? true);
|
|
223
|
+
return acc;
|
|
224
|
+
}, {} as typeof possibleAttributeValues));
|
|
225
|
+
|
|
226
|
+
if (Object.keys(inputSample).length === 0) {
|
|
227
|
+
// Try to convert HTTP/2 headers to HTTP/1 headers
|
|
228
|
+
if (headerOptions.httpVersion === '1') {
|
|
229
|
+
const headers2 = this.getHeaders({
|
|
230
|
+
...options,
|
|
231
|
+
httpVersion: '2',
|
|
232
|
+
}, requestDependentHeaders, userAgentValues);
|
|
233
|
+
|
|
234
|
+
const pascalize = (name: string) => {
|
|
235
|
+
return name.split('-').map((part) => {
|
|
236
|
+
return part[0]!.toUpperCase() + part.slice(1).toLowerCase();
|
|
237
|
+
}).join('-');
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
const converted2to1 = Object.fromEntries(
|
|
241
|
+
Object.entries(headers2).map(([name, value]) => {
|
|
242
|
+
if (name.startsWith('sec-ch-ua')) {
|
|
243
|
+
return [name, value];
|
|
244
|
+
}
|
|
245
|
+
if (['dnt', 'rtt', 'ect'].includes(name)) {
|
|
246
|
+
return [name.toUpperCase(), value];
|
|
247
|
+
}
|
|
248
|
+
return [pascalize(name), value];
|
|
249
|
+
},
|
|
250
|
+
));
|
|
251
|
+
|
|
252
|
+
return this.orderHeaders(converted2to1);
|
|
253
|
+
}
|
|
254
|
+
throw new Error('No headers based on this input can be generated. Please relax or change some of the requirements you specified.');
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// Generate the actual headers
|
|
258
|
+
const generatedSample = this.headerGeneratorNetwork.generateSample(inputSample);
|
|
259
|
+
|
|
260
|
+
// Manually fill the accept-language header with random ordering of the locales from input
|
|
261
|
+
const generatedHttpAndBrowser = this.prepareHttpBrowserObject(generatedSample[BROWSER_HTTP_NODE_NAME]);
|
|
262
|
+
let secFetchAttributeNames: typeof HTTP2_SEC_FETCH_ATTRIBUTES | typeof HTTP1_SEC_FETCH_ATTRIBUTES = HTTP2_SEC_FETCH_ATTRIBUTES;
|
|
263
|
+
let acceptLanguageFieldName = 'accept-language';
|
|
264
|
+
if (generatedHttpAndBrowser.httpVersion !== '2') {
|
|
265
|
+
acceptLanguageFieldName = 'Accept-Language';
|
|
266
|
+
secFetchAttributeNames = HTTP1_SEC_FETCH_ATTRIBUTES;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
generatedSample[acceptLanguageFieldName] = this._getAcceptLanguageField(headerOptions.locales);
|
|
270
|
+
|
|
271
|
+
const isChrome = generatedHttpAndBrowser.name === 'chrome';
|
|
272
|
+
const isFirefox = generatedHttpAndBrowser.name === 'firefox';
|
|
273
|
+
const isEdge = generatedHttpAndBrowser.name === 'edge';
|
|
274
|
+
|
|
275
|
+
const hasSecFetch = (isChrome && generatedHttpAndBrowser.version[0] >= 76)
|
|
276
|
+
|| (isFirefox && generatedHttpAndBrowser.version[0] >= 90)
|
|
277
|
+
|| (isEdge && generatedHttpAndBrowser.version[0] >= 79);
|
|
278
|
+
|
|
279
|
+
// Add fixed headers if needed
|
|
280
|
+
if (hasSecFetch) {
|
|
281
|
+
generatedSample[secFetchAttributeNames.site] = 'same-site';
|
|
282
|
+
generatedSample[secFetchAttributeNames.mode] = 'navigate';
|
|
283
|
+
generatedSample[secFetchAttributeNames.user] = '?1';
|
|
284
|
+
generatedSample[secFetchAttributeNames.dest] = 'document';
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
for (const attribute of Object.keys(generatedSample)) {
|
|
288
|
+
if (attribute.startsWith('*') || generatedSample[attribute] === MISSING_VALUE_DATASET_TOKEN) delete generatedSample[attribute];
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
// Order the headers in an order depending on the browser
|
|
292
|
+
return this.orderHeaders({
|
|
293
|
+
...generatedSample,
|
|
294
|
+
...requestDependentHeaders,
|
|
295
|
+
}, (this.headersOrder as Record<string, any>)[generatedHttpAndBrowser.name]);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Returns a new object that contains ordered headers.
|
|
300
|
+
* @param headers Specifies known values of headers dependent on the particular request.
|
|
301
|
+
* @param order An array of ordered header names, optional (will be deducted from `user-agent`).
|
|
302
|
+
*/
|
|
303
|
+
orderHeaders(headers: Headers, order = this.getOrderFromUserAgent(headers)): Headers {
|
|
304
|
+
const orderedSample: Headers = {};
|
|
305
|
+
|
|
306
|
+
for (const attribute of order) {
|
|
307
|
+
if (attribute in headers) {
|
|
308
|
+
orderedSample[attribute] = headers[attribute];
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
for (const attribute of Object.keys(headers)) {
|
|
313
|
+
if (!order.includes(attribute)) {
|
|
314
|
+
orderedSample[attribute] = headers[attribute];
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
return orderedSample;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
private _prepareBrowsersConfig(
|
|
322
|
+
browsers?: BrowsersType,
|
|
323
|
+
browserListQuery?: string,
|
|
324
|
+
httpVersion?: HttpVersion,
|
|
325
|
+
): BrowserSpecification[] {
|
|
326
|
+
let finalBrowsers = browsers;
|
|
327
|
+
|
|
328
|
+
if (browserListQuery) {
|
|
329
|
+
finalBrowsers = getBrowsersFromQuery(browserListQuery);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
return finalBrowsers!.map((browser) => {
|
|
333
|
+
if (typeof browser === 'string') {
|
|
334
|
+
return { name: browser, httpVersion };
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
browser.httpVersion = httpVersion;
|
|
338
|
+
return browser;
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
private _getBrowserHttpOptions(browsers: BrowserSpecification[]): string[] {
|
|
343
|
+
const browserHttpOptions = [];
|
|
344
|
+
for (const browser of browsers) {
|
|
345
|
+
for (const browserOption of this.uniqueBrowsers) {
|
|
346
|
+
if (browser.name === browserOption.name) {
|
|
347
|
+
if ((!browser.minVersion || this._browserVersionIsLesserOrEquals([browser.minVersion], browserOption.version))
|
|
348
|
+
&& (!browser.maxVersion || this._browserVersionIsLesserOrEquals(browserOption.version, [browser.maxVersion]))
|
|
349
|
+
&& browser.httpVersion === browserOption.httpVersion) {
|
|
350
|
+
browserHttpOptions.push(browserOption.completeString);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
return browserHttpOptions;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
private _getPossibleAttributeValues(headerOptions: Partial<HeaderGeneratorOptions>): Record<string, any> {
|
|
360
|
+
const { browsers: optionsBrowser, browserListQuery, httpVersion, operatingSystems } = headerOptions;
|
|
361
|
+
const browsers = this._prepareBrowsersConfig(optionsBrowser, browserListQuery, httpVersion);
|
|
362
|
+
|
|
363
|
+
// Find known browsers compatible with the input
|
|
364
|
+
const browserHttpOptions = this._getBrowserHttpOptions(browsers);
|
|
365
|
+
const possibleAttributeValues: Record<string, any> = {};
|
|
366
|
+
|
|
367
|
+
possibleAttributeValues[BROWSER_HTTP_NODE_NAME] = browserHttpOptions;
|
|
368
|
+
|
|
369
|
+
possibleAttributeValues[OPERATING_SYSTEM_NODE_NAME] = operatingSystems;
|
|
370
|
+
|
|
371
|
+
if (headerOptions.devices) {
|
|
372
|
+
possibleAttributeValues[DEVICE_NODE_NAME] = headerOptions.devices;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
return possibleAttributeValues;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
private _getAcceptLanguageField(localesFromOptions: HeaderGeneratorOptions['locales']): string {
|
|
379
|
+
let locales = localesFromOptions;
|
|
380
|
+
let highLevelLocales = [];
|
|
381
|
+
for (const locale of locales) {
|
|
382
|
+
if (!locale.includes('-')) {
|
|
383
|
+
highLevelLocales.push(locale);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
for (const locale of locales) {
|
|
388
|
+
if (!highLevelLocales.includes(locale)) {
|
|
389
|
+
let highLevelEquivalentPresent = false;
|
|
390
|
+
for (const highLevelLocale of highLevelLocales) {
|
|
391
|
+
if (locale.includes(highLevelLocale)) {
|
|
392
|
+
highLevelEquivalentPresent = true;
|
|
393
|
+
break;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
if (!highLevelEquivalentPresent) highLevelLocales.push(locale);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
highLevelLocales = shuffleArray(highLevelLocales);
|
|
401
|
+
locales = shuffleArray(locales);
|
|
402
|
+
|
|
403
|
+
const localesInAddingOrder = [];
|
|
404
|
+
|
|
405
|
+
for (const highLevelLocale of highLevelLocales) {
|
|
406
|
+
for (const locale of locales) {
|
|
407
|
+
if (locale.includes(highLevelLocale) && !highLevelLocales.includes(locale)) {
|
|
408
|
+
localesInAddingOrder.push(locale);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
localesInAddingOrder.push(highLevelLocale);
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
let acceptLanguageFieldValue = localesInAddingOrder[0];
|
|
415
|
+
|
|
416
|
+
for (let x = 1; x < localesInAddingOrder.length; x++) {
|
|
417
|
+
acceptLanguageFieldValue += `,${localesInAddingOrder[x]};q=${1 - x * 0.1}`;
|
|
418
|
+
}
|
|
419
|
+
return acceptLanguageFieldValue;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* Extract structured information about a browser and http version in the form of an object from httpBrowserString.
|
|
424
|
+
* @param httpBrowserString A string containing the browser name, version and http version, such as `chrome/88.0.4324.182|2`.
|
|
425
|
+
*/
|
|
426
|
+
private prepareHttpBrowserObject(httpBrowserString: string): HttpBrowserObject {
|
|
427
|
+
const [browserString, httpVersion] = httpBrowserString.split('|');
|
|
428
|
+
let browserObject;
|
|
429
|
+
|
|
430
|
+
if (browserString === MISSING_VALUE_DATASET_TOKEN) {
|
|
431
|
+
browserObject = { name: MISSING_VALUE_DATASET_TOKEN };
|
|
432
|
+
} else {
|
|
433
|
+
browserObject = this.prepareBrowserObject(browserString);
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
return {
|
|
437
|
+
...browserObject,
|
|
438
|
+
httpVersion: httpVersion as HeaderGeneratorOptions['httpVersion'],
|
|
439
|
+
completeString: httpBrowserString,
|
|
440
|
+
} as HttpBrowserObject;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* Extract structured information about a browser in the form of an object from browserString.
|
|
445
|
+
* @param browserString A string containing the browser name and version, e.g. `chrome/88.0.4324.182`.
|
|
446
|
+
*/
|
|
447
|
+
private prepareBrowserObject(browserString: string): HttpBrowserObject {
|
|
448
|
+
const nameVersionSplit = browserString.split('/');
|
|
449
|
+
const versionSplit = nameVersionSplit[1].split('.');
|
|
450
|
+
const preparedVersion = [];
|
|
451
|
+
for (const versionPart of versionSplit) {
|
|
452
|
+
preparedVersion.push(parseInt(versionPart, 10));
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
return {
|
|
456
|
+
name: nameVersionSplit[0],
|
|
457
|
+
version: preparedVersion,
|
|
458
|
+
completeString: browserString,
|
|
459
|
+
} as HttpBrowserObject;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
/**
|
|
463
|
+
* Returns a new object containing header names ordered by their appearance in the given browser.
|
|
464
|
+
* @param headers Non-normalized request headers
|
|
465
|
+
* @returns Correct header order for the given browser.
|
|
466
|
+
*/
|
|
467
|
+
private getOrderFromUserAgent(headers: Record<string, string>) : string[] {
|
|
468
|
+
const userAgent = getUserAgent(headers);
|
|
469
|
+
const browser = getBrowser(userAgent);
|
|
470
|
+
|
|
471
|
+
if (!browser) {
|
|
472
|
+
return [];
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
return (this.headersOrder as Record<string, any>)[browser];
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
private _browserVersionIsLesserOrEquals(browserVersionL: number[], browserVersionR: number[]) {
|
|
479
|
+
return browserVersionL[0] <= browserVersionR[0];
|
|
480
|
+
}
|
|
481
|
+
}
|
package/src/index.ts
ADDED
package/src/presets.ts
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export const MODERN_DESKTOP = {
|
|
2
|
+
browserListQuery: 'last 5 versions',
|
|
3
|
+
};
|
|
4
|
+
|
|
5
|
+
export const MODERN_MOBILE = {
|
|
6
|
+
...MODERN_DESKTOP,
|
|
7
|
+
devices: ['mobile'],
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export const MODERN_LINUX = {
|
|
11
|
+
...MODERN_DESKTOP,
|
|
12
|
+
operatingSystems: ['linux'],
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const MODERN_LINUX_FIREFOX = {
|
|
16
|
+
browserListQuery: 'last 5 firefox versions',
|
|
17
|
+
operatingSystems: ['linux'],
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const MODERN_LINUX_CHROME = {
|
|
21
|
+
browserListQuery: 'last 5 chrome versions',
|
|
22
|
+
operatingSystems: ['linux'],
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export const MODERN_WINDOWS = {
|
|
26
|
+
...MODERN_DESKTOP,
|
|
27
|
+
operatingSystems: ['windows'],
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export const MODERN_WINDOWS_FIREFOX = {
|
|
31
|
+
browserListQuery: 'last 5 firefox versions',
|
|
32
|
+
operatingSystems: ['windows'],
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export const MODERN_WINDOWS_CHROME = {
|
|
36
|
+
browserListQuery: 'last 5 chrome versions',
|
|
37
|
+
operatingSystems: ['windows'],
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export const MODERN_MACOS = {
|
|
41
|
+
...MODERN_DESKTOP,
|
|
42
|
+
operatingSystems: ['macos'],
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export const MODERN_MACOS_FIREFOX = {
|
|
46
|
+
browserListQuery: 'last 5 firefox versions',
|
|
47
|
+
operatingSystems: ['macos'],
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const MODERN_MACOS_CHROME = {
|
|
51
|
+
browserListQuery: 'last 5 chrome versions',
|
|
52
|
+
operatingSystems: ['macos'],
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export const MODERN_ANDROID = {
|
|
56
|
+
...MODERN_MOBILE,
|
|
57
|
+
operatingSystems: ['android'],
|
|
58
|
+
|
|
59
|
+
};
|
package/src/utils.ts
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import browsersList from 'browserslist';
|
|
2
|
+
import { SUPPORTED_BROWSERS } from './constants';
|
|
3
|
+
import { BrowserName, BrowserSpecification } from './header-generator';
|
|
4
|
+
|
|
5
|
+
export const getUserAgent = (headers: Record<string, string>): string | undefined => {
|
|
6
|
+
for (const [header, value] of Object.entries(headers)) {
|
|
7
|
+
if (header.toLowerCase() === 'user-agent') {
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return undefined;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export const getBrowser = (userAgent?: string): BrowserName | undefined => {
|
|
15
|
+
if (!userAgent) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
let browser;
|
|
20
|
+
if (userAgent.includes('Firefox')) {
|
|
21
|
+
browser = 'firefox';
|
|
22
|
+
} else if (userAgent.includes('Chrome')) {
|
|
23
|
+
browser = 'chrome';
|
|
24
|
+
} else {
|
|
25
|
+
browser = 'safari';
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return browser as BrowserName;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const getBrowsersWithVersions = (browserList: string[]): Record<BrowserName, number[]> => {
|
|
32
|
+
const browsersWithVersions: Record<string, number[]> = {};
|
|
33
|
+
|
|
34
|
+
for (const browserDefinition of browserList) {
|
|
35
|
+
const [browserSplit, versionString] = browserDefinition.split(' ');
|
|
36
|
+
const browser = browserSplit as BrowserName;
|
|
37
|
+
const version = parseInt(versionString, 10);
|
|
38
|
+
if (!SUPPORTED_BROWSERS.includes(browser)) {
|
|
39
|
+
// eslint-disable-next-line no-continue
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (browsersWithVersions[browser]) {
|
|
44
|
+
browsersWithVersions[browser].push(version);
|
|
45
|
+
} else {
|
|
46
|
+
browsersWithVersions[browser] = [version];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return browsersWithVersions;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const getOptimizedVersionDistribution = (browsersWithVersions: Record<BrowserName, number[]>): BrowserSpecification[] => {
|
|
54
|
+
const finalOptimizedBrowsers: BrowserSpecification[] = [];
|
|
55
|
+
|
|
56
|
+
Object.entries(browsersWithVersions).forEach(([browser, versions]) => {
|
|
57
|
+
const sortedVersions = versions.sort((a, b) => a - b);
|
|
58
|
+
let lowestVersionSoFar = sortedVersions[0];
|
|
59
|
+
|
|
60
|
+
sortedVersions.forEach((version, index) => {
|
|
61
|
+
const nextVersion = sortedVersions[index + 1];
|
|
62
|
+
const isLast = index === sortedVersions.length - 1;
|
|
63
|
+
const isNextVersionGap = nextVersion - version > 1;
|
|
64
|
+
|
|
65
|
+
if (isNextVersionGap || isLast) {
|
|
66
|
+
finalOptimizedBrowsers.push({
|
|
67
|
+
name: browser as BrowserName,
|
|
68
|
+
minVersion: lowestVersionSoFar,
|
|
69
|
+
maxVersion: version,
|
|
70
|
+
});
|
|
71
|
+
lowestVersionSoFar = nextVersion;
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
return finalOptimizedBrowsers;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export const getBrowsersFromQuery = (browserListQuery: string): BrowserSpecification[] => {
|
|
79
|
+
const browserList = browsersList(browserListQuery);
|
|
80
|
+
const browsersWithVersions = getBrowsersWithVersions(browserList);
|
|
81
|
+
return getOptimizedVersionDistribution(browsersWithVersions);
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export const shuffleArray = (array: any[]): any[] => {
|
|
85
|
+
for (let i = array.length - 1; i > 0; i--) {
|
|
86
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
87
|
+
[array[i], array[j]] = [array[j], array[i]];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return array;
|
|
91
|
+
};
|
package/tsconfig.json
ADDED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
["firefox/88.0|2","chrome/108.0.0.0|2","chrome/109.0.0.0|2","firefox/108.0|2","chrome/107.0.0.0|2","chrome/106.0.0.0|2","edge/109.0.1518.55|2","chrome/96.0.4664.93|2","chrome/88.0.4324.93|2","chrome/110.0.0.0|2","edge/109.0.1518.52|2","safari/605.1.15|2","chrome/105.0.0.0|2","chrome/103.0.0.0|2","firefox/109.0|2","safari/604.1|2","chrome/88.0.4324.192|2","chrome/108.0.0.0|1","firefox/106.0|2","chrome/94.0.4590.2|2","chrome/111.0.0.0|2","edge/108.0.1462.54|2","safari/604.1|1","chrome/104.0.0.0|2","chrome/101.0.0.0|2","chrome/109.0.0.0|1","chrome/102.0.5005.125|2","chrome/75.0.3770.156|2","chrome/102.0.0.0|2","chrome/90.0.4430.72|1","edge/108.0.1462.76|2","firefox/105.0|2","chrome/106.0.5249.126|2","chrome/109.0.5414.85|2","firefox/108.0|1","edge/107.0.1418.62|2","chrome/100.0.4861.0|2","firefox/102.0|2","edge/109.0.1518.52|1","chrome/95.0.4638.74|2","firefox/100.0|2","chrome/89.0.4389.72|2","chrome/101.0.4951.15|2","firefox/87.0|2","firefox/107.0|2","chrome/75.0.3770.142|2","edge/108.0.1462.76|1","chrome/101.0.4951.41|2","chrome/84.0.4147.135|2","chrome/108.0.5359.98|2","chrome/100.0.4896.88|2","chrome/80.0.3987.99|2","chrome/88.0.4324.150|2","chrome/90.0.4430.85|2","chrome/90.0.4430.72|2","chrome/100.0.4896.127|2","chrome/94.0.4606.85|2","chrome/97.0.4692.71|2","chrome/89.0.4389.114|2","chrome/107.0.0.0|1","chrome/108.0.5359.128|2","chrome/106.0.7475.1242|2","firefox/103.0|2","chrome/108.0.5359.125|2","*MISSING_VALUE*|2","chrome/97.0.4692.98|2","firefox/90.0|2","edge/109.0.1518.49|2","chrome/87.0.4280.88|2","firefox/81.0|2","chrome/74.0.3729.169|2","chrome/102.0.5005.167|2","chrome/102.0.5005.125|1","firefox/106.0|1","chrome/86.0.4240.198|2","edge/108.0.1462.46|2","chrome/99.0.4844.82|2","chrome/103.0.5060.53|2"]
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|