Commit e77b7743 authored by wangmingming's avatar wangmingming

111

parent 08e95a81
...@@ -63,4 +63,16 @@ let { code } = generator(ast, { ...@@ -63,4 +63,16 @@ let { code } = generator(ast, {
// } // }
}); });
fs.writeFile(decode_file, code, (err) => {}); fs.writeFile(decode_file, code, (err) => {});
\ No newline at end of file
print(Object.keys(Object.getOwnPropertyDescriptors(location)))
let locationDescs = Object.getOwnPropertyDescriptors(location)
let locationKeys = Object.keys(locationDescs);
locationKeys.sort(sortRandom)
let locationReDefine = {};
locationKeys.forEach(key=>{
locationReDefine[key] = locationDescs[key]
})
Object.defineProperties(location,locationReDefine)
print(Object.keys(Object.getOwnPropertyDescriptors(location)))
\ No newline at end of file
...@@ -14,7 +14,112 @@ from pymongo import MongoClient ...@@ -14,7 +14,112 @@ from pymongo import MongoClient
from loguru import logger from loguru import logger
def get_random_location():
t1 = '''var _hostname, _origin,_host,_protocol,_port,_pathname,_search,_hash;
Object.defineProperties(location, {'''
t2 = [
''' href: {
value: 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true',
enumerable: true
},
''',
'''ancestorOrigins: {
get: v_saf(function ancestorOrigins() {
return new DOMStringList()
}),
enumerable: true,
configurable: false
},''',
''' hostname: {set: function(arg){_hostname = arg}, get:function(){return _hostname}, enumerable:true},''',
'''reload: {
value: v_saf(function reload() {
}),
enumerable: true,
},''',
'''protocol: {set: function(arg){_protocol = arg}, get:function(){return _protocol}, enumerable:true},''',
'''host: {set: function(arg){_hostname = arg}, get:function(){return _hostname}, enumerable:true},''',
''' port: {set: function(arg){_port = arg}, get:function(){return _port}, enumerable:true},''',
''' hash: {set: function(arg){_hash = arg}, get:function(){return _hash}, enumerable:true},''',
''' pathname: {set: function(arg){_pathname = arg}, get:function(){return _pathname}, enumerable:true},''',
'''origin: {set: function(arg){_origin = arg}, get:function(){return _origin}, enumerable:true},''',
'''search: {set: function(arg){_pathname = arg}, get:function(){return _pathname}, enumerable:true},''',
'''assign: {
value: v_saf(function assign() {
}),
enumerable: true,
},''',
'''toString: {
value: v_saf(function toString() {
return ''
}),
enumerable: true,
},''',
'''replace: {
value: v_saf(function replace() {
}),
enumerable: true,
},'''
]
random.shuffle(t2)
# print(t2)
r = '''location.href = 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true'
function set_href(v, href){
href = href.trim()
v_console_log(` href[set]:`, JSON.stringify(href))
if (href.startsWith("http://") || href.startsWith("https://")) {/*ok*/
} else if (href.startsWith("//")) {
href = (v.protocol ? v.protocol : 'http:') + href
} else {
href = v.protocol + "//" + v.host + (v.port ? ":" + v.port : "") + '/' + ((href[0] == '/') ? href.slice(1) : href)
}
var a = href.match(/([^:]+:)\/\/([^/:?#]+):?(\d+)?([^?#]*)?(\?[^#]*)?(#.*)?/);
v.protocol = a[1] ? a[1] : "";
v.host = a[2] ? a[2] : "";
v.port = a[3] ? a[3] : "";
v.pathname = a[4] ? a[4] : "";
v.search = a[5] ? a[5] : "";
v.hash = a[6] ? a[6] : "";
v.hostname = v.host;
v.origin = v.protocol + "//" + v.host + (v.port ? ":" + v.port : "");
}
// 'valueOf,ancestorOrigins,href,origin,protocol,host,hostname,port,pathname,search,hash,assign,reload,replace,toString'
set_href(location, 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true')
window.location = location
// window.location = new Proxy(location, {
// get(target, p, receiver) {
// console.log('locaiton get', p)
// return Reflect.get(target, p, receiver)
// },
// has(target, p) {
// let res = Reflect.has(target, p);
// console.log('locaiton has', p, res)
// return res;
// },
// getOwnPropertyDescriptor(target, p) {
// let res = Reflect.getOwnPropertyDescriptor(target, p);
//
// console.log('locaiton getOwnPropertyDescriptor', p, res)
// return res;
// }
// })
origin = location.origin
'''
return t1 + '\n' + '\n'.join(t2) + '})\n' + r
def md5(text): def md5(text):
m = hashlib.md5() m = hashlib.md5()
...@@ -59,7 +164,8 @@ headers = { ...@@ -59,7 +164,8 @@ headers = {
# 'safari_ios_15_6' # 'safari_ios_15_6'
# ] # ]
success = 0
total = 0
while True: while True:
# r = requests.get('http://ymx-lcc.unififi.com/header/task/pull/headerB6?brush_name=test') # r = requests.get('http://ymx-lcc.unififi.com/header/task/pull/headerB6?brush_name=test')
# if r.json()['status'] != 0: # if r.json()['status'] != 0:
...@@ -67,36 +173,48 @@ while True: ...@@ -67,36 +173,48 @@ while True:
# time.sleep(10) # time.sleep(10)
# continue # continue
logger.debug('开始刷值') logger.debug('开始刷值')
selectId = random.choice(list(envs))
lastHash = '' lastHash = ''
usedTime = 10 usedTime = 10
success = 0
total = 0
code = open('src.js', 'r', encoding='utf-8').read() code = open('src.js', 'r', encoding='utf-8').read()
code1 = open('js_dom_run.js', 'r', encoding='utf-8').read() code1 = open('js_dom_run.js', 'r', encoding='utf-8').read()
for i in range(30): for i in range(30):
try: try:
# selectId = '55a8fe24a752595e774341d6' # selectId = '55a8fe24a752595e774341d6'
selectId = random.choice(list(envs))
proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}' proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
# proxy = f'http://ynfflcc2023.hotmail.com:gdcfh9@69.30.227.194:{random.randint(20001, 20250)}' # proxy = f'http://ynfflcc2023.hotmail.com:gdcfh9@69.30.227.194:{random.randint(20001, 20250)}'
# proxy = f'http://user-uni003-region-us-sessid-{random.randint(1000,5000)}-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600' # proxy = f'http://user-uni003-region-us-sessid-{random.randint(1000,5000)}-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
# proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@198.147.25.26:{int(random.randint(10000, 11149))}' # proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@198.147.25.26:{int(random.randint(10000, 11149))}'
proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600' proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
# proxy = random.choice(['http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:9000', proxy])
# proxy = requests.post('http://ymx-lcc.unififi.com/proxy/get-proxy', json={'name':"B6", 'type':'shopping'}).json()['url']
# proxy = f'http://ynfflcc2023.hotmail.com:gdcfh9@69.30.227.194:{random.randint(20001, 20250)}'
proxy1 = f'http://user-uni003-region-us-sessid-${random.randint(1000,5000)}-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
proxy2 = f'http://uni00001_custom_zone_US_sid_{random.randint(67336718, 67336918)}_time_5:q39CEBTs5A@us.foxyip.com:7778'
# proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@198.147.25.26:{int(random.randint(10000, 11149))}'
# proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
proxy = random.choice([proxy, proxy1])
tlsV = f'chrome_{random.randint(105, 113)}' tlsV = f'chrome_{random.randint(105, 113)}'
tlsV = 'chrome_112' tlsV = 'chrome_112'
session = tls_client.Session(tlsV) session = tls_client.Session(tlsV)
session.proxies = {
'http': proxy,
'https': proxy,
}
# if platform.uname().system == 'Darwin': # if platform.uname().system == 'Darwin':
# # proxy = 'http://127.0.0.1:7890'
# session.proxies = { # session.proxies = {
# 'http': 'http://127.0.0.1:7890', # 'http': 'http://127.0.0.1:7890',
# 'https': 'http://127.0.0.1:7890', # 'https': 'http://127.0.0.1:7890',
# } # }
# selectId = 'a74b38e7115cf4d1b1f6976c' # selectId = 'a74b38e7115cf4d1b1f6976c'
c = session.get('https://www.southwest.com/assets/app/scripts/swa-common.js', insecure_skip_verify=True).text
m5 = md5(c) if usedTime > 10:
if m5 != lastHash and usedTime > 5: c = session.get('https://www.southwest.com/assets/app/scripts/swa-common.js',
lastHash = m5 insecure_skip_verify=True).text
usedTime = 0 usedTime = 0
logger.debug('js变化') logger.debug('js变化')
token = re.findall('nt"\),\["(.+?)",', c)[0] token = re.findall('nt"\),\["(.+?)",', c)[0]
...@@ -107,9 +225,9 @@ while True: ...@@ -107,9 +225,9 @@ while True:
code = open('src.js', 'r', encoding='utf-8').read() code = open('src.js', 'r', encoding='utf-8').read()
code1 = open('js_dom_run.js', 'r', encoding='utf-8').read() code1 = open('js_dom_run.js', 'r', encoding='utf-8').read()
with open('src_run1.js', 'w', encoding='utf-8') as f: with open('src_run1.js', 'w', encoding='utf-8') as f:
f.write(code + '\n\n' + c) f.write(code + '\n\n' +get_random_location() +';;'+ c)
with open('js_dom_run1.js', 'w', encoding='utf-8') as f: # with open('js_dom_run1.js', 'w', encoding='utf-8') as f:
f.write(code1 + '\n\n' + c) # f.write(code1 + '\n\n' +get_random_location() +';;'+ + c)
t1 = time.time() t1 = time.time()
# token = list(db.token_shape.aggregate( [ { '$sample': { 'size': 1 } } ] ))[0]['_id'] # token = list(db.token_shape.aggregate( [ { '$sample': { 'size': 1 } } ] ))[0]['_id']
# r = requests.get('http://127.0.0.1:5000/getinfo').json()['message'] # r = requests.get('http://127.0.0.1:5000/getinfo').json()['message']
...@@ -169,7 +287,7 @@ while True: ...@@ -169,7 +287,7 @@ while True:
# )) # ))
# status_code = response.json()['status_code'] # status_code = response.json()['status_code']
logger.info(f'tls:{tlsV} proxy:{proxy} res:: {status_code}') logger.info(f'tls:{tlsV} proxy:{proxy} res:: {status_code}')
# total += 1 total += 1
print(response.text) print(response.text)
if status_code != 403: if status_code != 403:
# res = db.env_shape.update_one( # res = db.env_shape.update_one(
...@@ -199,4 +317,3 @@ while True: ...@@ -199,4 +317,3 @@ while True:
# time.sleep(3) # time.sleep(3)
except Exception as e: except Exception as e:
print(e) print(e)
time.sleep(10)
This source diff could not be displayed because it is too large. You can view the blob instead.
import time import random
import requests t1 = '''var _hostname, _origin,_host,_protocol,_port,_pathname,_search,_hash;
import tls_client Object.defineProperties(location, {'''
session = tls_client.Session(client_identifier='chrome_112') t2 = [''' href: {
session.proxies = { value: 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true',
'http': 'http://127.0.0.1:7890', enumerable: true
'https': 'http://127.0.0.1:7890',
}
headers = {'Host': 'jbrest.jetblue.com', 'application-channel': 'Desktop_Web', 'user-agent': 'Mozilla/5.0 (Linux; Android 12; ALT-AL00 Build/HUAWEIALT-AL00E; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Safari/537.36 XWEB/5261 MMWEBSDK/20230805 MMWEBID/4003 MicroMessenger/8.0.41.2441(0x28002950) WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64', 'booking-application-type': 'NGB', 'content-type': 'application/json', 'accept': 'application/json', 'origin': 'https://www.jetblue.com', 'accept-language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7', 'x-1itxwo9i-f': 'Az_1jLGKAQAAvxyTckjOtV8hTyZzopeKYGUb24QE5szmZof_6pxQqMOlSgKtAXL3RNj6K21wfMBeCOfvosJeCA==', 'x-1itxwo9i-b': '-jkdghv', 'x-1itxwo9i-c': 'AGCojLGKAQAAYXPhNBfS4rn0WffjJRilxLGdUD_8EL-AiNNLMa0eZBVPSp2a', 'x-1itxwo9i-d': 'ABaAhIDBCKGFgQGAAYIQgISigaIAwBGAzvpCzi_33wetHmQVT0qdmgAAAAByzJzLADCu23LRJERp75aPdp8QpRI', 'x-1itxwo9i-z': 'q', 'x-1itxwo9i-a': 'eRemfzhUTooTEG0-0dj9K3gJ15nI8newB_BZKmcFkhIrL918pgZ1aySUNHmlG-FwH2-ow_=_WU-Ado=bmoBVfvK1QhUznxAm7TnaHqwGUVfZvIK-=xtdK4sW8_zKva02webFdpzv910mx0OA-89IkMEtFxMG_-AzG7YKShpBkTh0ACOoxSVqUTl4EyiCirckutggBORS8cTXJOIZRuwwI7MDKqEJbIu3tm4BCBkfhKYuuvOob3vZ5TQVJ=TACURjzCufI4WRCAk5QRTVCapsN9O3aulvcepEhy1OZLjY42P_etyLpR74FTgJTQnNoVkBx0SDBnFI2fyYBqO8CViCJr7hCwD2biJRxex7c_0vde5O0k0SUG1jfsdeTbUfwtRW89neOt3fGexuPeHcV1=v=UVrhPVi4jiQ78=FQ0IVDtw=J4oaFK9hGUtu77iTOmqFDSV8UUTLy5Mtz1WK5txVpaURa-BRY-wFo0A-upS4DGYOV9e-l=LpuVrjXlhTkFcd_POB0rpmtUBZ7aTKSoohXhpHtElQw4L-Hw75_5kE0A3D-5E3m_kduJJOXyjMhP4FPQNdGcYYVHEWnz2TC7FOBuJFpPrCzs=yXeGfV2XOhmP8no4cZfD9J8SJOpBvB=iYi4Qz4bpPiCk57UbDEj1RNc-w0JmBm9X_fHm3Qxq7sjCcIJY4gXwxKzPAvJ3=y_wKRBNBvzN_7ri3P_bD-Tiip1zaTvBm_v9wU3iR_ccORvHds-I-T2ciFIIHvRRXfysLQX7tavlgIuRxYXI9=74wHk-DoqTPbPa2eBKC7NzpEyQke1KOZdlM9KipWJIV_0WbkoAV2Qh4Vo4YjsDxgLzmZ7fWrz9E_GHSvzw_02OkZfEruquxf0KIjSsGZ-geIuXtJmEvybeXzIyuwnYRYQ_NBCMlGOMxUrL_Oy5_UhFH_kt7=YKfhfwRZtF7nyl4rZFovsi2mlFn=lbSmEH=zfGx1YZ9ZlmVFEPdDfArd4BEIvoRn2WBkojBlO3TFNRIRM1wFTlZh_=Wa7HdEy7if5hG=X_Md7pjxUcCxqQuy-QeNRI77glyzlSznHCocdrh2xD9N-9TOIOfNtHibVZTuV=iizE882eVZV2py9Vfbe_xH8mrACPfK2nOIE7V4TbALq8ODghAWqcTRueXmXhsG2tePUBjkNQnsgGwrBbo9fBu3fhHs1hb3xsGkbX8sZpfbOb4yyH-WU3kfdjaizlbJEkPuv1tPQon=GgFjctLxWkj1RXbrRuOR0m3lP8iO43=rx85edFD9eepQs9rbmyDZDgFvv-G-WwNdSLd5LuLNYFLg001hkmnk-12txvKY-1ijwSRda8tIzMYG-IC0ScKcU9=U4MpgDlPuFaO4eA82e9E9swQetXLa4L_X_4PmFIVHE2qHXw9-_dbX_jz4JnZfSeygsPDq4uTj4i8VoxkHJjJ=FsOsVSfA0LY8mmXmyU4GD2HskZnMr7DD=ZaALCzO5W9yl1wCbmkaQ3c1JmMQwuGUvNi0HJwrL=Pf8l-zseSujxoTeZnCb82HtGR40biCh2BQw9y-pKe8mSU-4nv2saOBmkqhrDD_8pa9029lp08vUJuTCv_-j4Cp0sP7_ZbJD=lBxrYoVkqqZNr8ZWksRqT-qyTVd4qoV5SpcD7=xe3buESfztjkFHYossXKFNYQDJs8OFyM1vDTYKaa-DBF=K4CK2HRca-sa4lVmkPljC99q7QHaZGDD-YVN5fCOxbLVIoizruQjuYiEgGmpXFXM-YGnJ9skIOcTGNcZxQl3OvwUPp-kJceamr3lhlQNENku_-1areE9pp7nnnFZ_1DdZR8Gm04t=tHL97uQ1wIatViIOG3P2X-O3_=pztIgYLfMlAysZGPs-mfaYHO2kvb5vlHTNOez9gykeOj9y3kiZfCGGDchJSzNYxueU23n_p3BIfVcVmNwkGvN8S3uQ8FPdPT5rBfDOfaxNdSk9Z9eG7-te5GwK4vJbOK35wX=Sw4ywHUA3B52TYqYdvj2xcojaiNY-0tCMlT4c_4kp5fnGAY9fzxCng7BHxiV7AntkTaTi3IGvbFfy29XsZcJkv4tl2RRdzw2lj-oj=d-Z0aF0kqrXPI41dJlFg4U8GG5NHLwA23A-OsDZ02ABUBsT00T5f-I'}
url = "https://jbrest.jetblue.com/lfs-rwb/outboundLFS"
data = {
"tripType": "oneWay",
"from": "LAS",
"to": "BOS",
"depart": "2023-05-10",
"cabin": "economy",
"refundable": False,
"dates": {
"before": "3",
"after": "3"
},
"pax": {
"ADT": 1,
"CHD": 0,
"INF": 0,
"UNN": 0
}, },
"redempoint": False, ''',
"pointsBreakup": { '''ancestorOrigins: {
"option": "", get: v_saf(function ancestorOrigins() {
"value": 0 return new DOMStringList()
}, }),
"isMultiCity": False, enumerable: true,
"isDomestic": False configurable: false
},''',
''' hostname: {set: function(arg){_hostname = arg}, get:function(){return _hostname}, enumerable:true},''',
'''reload: {
value: v_saf(function reload() {
}),
enumerable: true,
},''',
'''protocol: {set: function(arg){_protocol = arg}, get:function(){return _protocol}, enumerable:true},''',
'''host: {set: function(arg){_hostname = arg}, get:function(){return _hostname}, enumerable:true},''',
''' port: {set: function(arg){_port = arg}, get:function(){return _port}, enumerable:true},''',
''' hash: {set: function(arg){_hash = arg}, get:function(){return _hash}, enumerable:true},''',
''' pathname: {set: function(arg){_pathname = arg}, get:function(){return _pathname}, enumerable:true},''',
'''origin: {set: function(arg){_origin = arg}, get:function(){return _origin}, enumerable:true},''',
'''search: {set: function(arg){_pathname = arg}, get:function(){return _pathname}, enumerable:true},''',
'''assign: {
value: v_saf(function assign() {
}),
enumerable: true,
},''',
'''toString: {
value: v_saf(function toString() {
return ''
}),
enumerable: true,
},''',
'''replace: {
value: v_saf(function replace() {
}),
enumerable: true,
},'''
]
random.shuffle(t2)
# print(t2)
r = '''location.href = 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true'
function set_href(v, href){
href = href.trim()
v_console_log(` href[set]:`, JSON.stringify(href))
if (href.startsWith("http://") || href.startsWith("https://")) {/*ok*/
} else if (href.startsWith("//")) {
href = (v.protocol ? v.protocol : 'http:') + href
} else {
href = v.protocol + "//" + v.host + (v.port ? ":" + v.port : "") + '/' + ((href[0] == '/') ? href.slice(1) : href)
}
var a = href.match(/([^:]+:)\/\/([^/:?#]+):?(\d+)?([^?#]*)?(\?[^#]*)?(#.*)?/);
v.protocol = a[1] ? a[1] : "";
v.host = a[2] ? a[2] : "";
v.port = a[3] ? a[3] : "";
v.pathname = a[4] ? a[4] : "";
v.search = a[5] ? a[5] : "";
v.hash = a[6] ? a[6] : "";
v.hostname = v.host;
v.origin = v.protocol + "//" + v.host + (v.port ? ":" + v.port : "");
} }
// 'valueOf,ancestorOrigins,href,origin,protocol,host,hostname,port,pathname,search,hash,assign,reload,replace,toString'
set_href(location, 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true')
window.location = location
// window.location = new Proxy(location, {
// get(target, p, receiver) {
// console.log('locaiton get', p)
// return Reflect.get(target, p, receiver)
// },
// has(target, p) {
// let res = Reflect.has(target, p);
// console.log('locaiton has', p, res)
// return res;
// },
// getOwnPropertyDescriptor(target, p) {
// let res = Reflect.getOwnPropertyDescriptor(target, p);
//
// console.log('locaiton getOwnPropertyDescriptor', p, res)
// return res;
// }
// })
origin = location.origin
'''
while True: print(t1 + '\n' + '\n'.join(t2) + '})\n' + r)
print(session.post(url,json=data, headers=headers).text) \ No newline at end of file
time.sleep(1)
\ No newline at end of file
var v_saf; var _hostname, _origin, _host, _protocol, _port, _pathname, _search, _hash;
!function () { Object.defineProperties(location, {
var n = Function.toString, t = [], i = [], o = [].indexOf.bind(t), e = [].push.bind(t), r = [].push.bind(i); host: {
set: function (arg) {
function u(n, t, nn) { _hostname = arg
tt = '' }, get: function () {
if (nn) { return _hostname
tt = ' ' + nn }, enumerable: true
} },
return -1 == o(n) && (e(n), r(`function${tt} ${t || n.name || ""}() { [native code] }`)), n toString: {
} value: v_saf(function toString() {
return ''
Object.defineProperty(Function.prototype, "toString", { }),
enumerable: !1, enumerable: true,
configurable: !0,
writable: !0,
value: function () {
let res = "function" == typeof this && i[o(this)] || n.call(this)
// print('toString', arguments, '|||', 'res', res)
return res; },
} reload: {
}), u(Function.prototype.toString, "toString"), v_saf = u value: v_saf(function reload() {
}();
var bl_33 = function () {
var bl_3 = arguments[0];
if (typeof bl_3 === "string") {
cbb_105 = [];
var bl_1 = cbb_105;
while (true) {
while (true) {
if (!(bl_2 < bl_3["length"])) {
var bl_2 = 0;
var bl_0 = 0;
while (true) {
if (!(bl_0 < bl_1["length"])) {
var bl_2 = lb_2;
return lb_2 !== null;
}
var bl_2 = 0 | (bl_2 << 5) - bl_2 + bl_1[bl_0];
var bl_0 = Number(bl_0) + 1;
}
}
if (!(1 === bl_3["length"] - bl_2)) {
break;
}
cbb_106 = Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(bl_3["charCodeAt"], bl_3, [bl_2]);
cbb_107 = Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(bl_1["push"], bl_1, [cbb_106 << 16]);
var bl_2 = bl_2 + 2;
}
cbb_108 = Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(bl_3["charCodeAt"], bl_3, [bl_2]);
cbb_109 = Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(bl_3["charCodeAt"], bl_3, [bl_2 + 1]);
cbb_110 = Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(bl_1["push"], bl_1, [cbb_108 << 16 | cbb_109]);
var bl_2 = bl_2 + 2;
}
}
cbb_111 = Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(ArrayBuffer["isView"], ArrayBuffer, [bl_3]);
var bl_2 = bl_3["byteLength"] % 4;
var bl_1 = new Int32Array(bl_3["buffer"]);
var bl_2 = 0;
var bl_0 = 0;
while (true) {
if (!(bl_0 < bl_1["length"])) {
// var bl_2 = lb_2;
return bl_2;
}
bl_2 = 0 | (bl_2 << 5) - bl_2 + bl_1[bl_0];
var bl_0 = Number(bl_0) + 1;
}
};
let data = new Uint8Array(90000); }),
for (let i = 0; i < data.length; i++) { enumerable: true,
data[i] = 11
}
console.log(bl_33(data))
},
port: {
set: function (arg) {
_port = arg
}, get: function () {
return _port
}, enumerable: true
},
origin: {
set: function (arg) {
_origin = arg
}, get: function () {
return _origin
}, enumerable: true
},
pathname: {
set: function (arg) {
_pathname = arg
}, get: function () {
return _pathname
}, enumerable: true
},
href: {
value: 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true',
enumerable: true
},
function _inherits(t, e) { hash: {
t.prototype = Object.create(e.prototype, { set: function (arg) {
constructor: {value: t, writable: !0, configurable: !0} _hash = arg
}), e && Object.setPrototypeOf(t, e) }, get: function () {
} return _hash
class Document { }, enumerable: true
},
protocol: {
set: function (arg) {
_protocol = arg
}, get: function () {
return _protocol
}, enumerable: true
},
search: {
set: function (arg) {
_pathname = arg
}, get: function () {
return _pathname
}, enumerable: true
},
assign: {
value: v_saf(function assign() {
} }),
Object.defineProperties(Document.prototype, { enumerable: true,
},
replace: {
value: v_saf(function replace() {
createElement: { }),
value:function (){},
configurable: true,
enumerable: true, enumerable: true,
writable: true
}, },
hostname: {
set: function (arg) {
_hostname = arg
}, get: function () {
return _hostname
}, enumerable: true
},
ancestorOrigins: {
get: v_saf(function ancestorOrigins() {
return new DOMStringList()
}),
enumerable: true,
configurable: false
},
}) })
document = { location.href = 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true'
} function set_href(v, href) {
delete Document.prototype.createElement.__proto__ href = href.trim()
Object.setPrototypeOf(Document.prototype.createElement, null); v_console_log(` href[set]:`, JSON.stringify(href))
// Object.defineProperty(Document.prototype.createElement, 'prototype',undefined) if (href.startsWith("http://") || href.startsWith("https://")) {/*ok*/
HTMLDocument = v_saf(function HTMLDocument() { } else if (href.startsWith("//")) {
if (!v_new_toggle) { href = (v.protocol ? v.protocol : 'http:') + href
throw TypeError("Illegal constructor") } else {
href = v.protocol + "//" + v.host + (v.port ? ":" + v.port : "") + '/' + ((href[0] == '/') ? href.slice(1) : href)
} }
;Object.defineProperty(this, 'location', { var a = href.match(/([^:]+:)\/\/([^/:?#]+):?(\d+)?([^?#]*)?(\?[^#]*)?(#.*)?/);
get() { v.protocol = a[1] ? a[1] : "";
return location v.host = a[2] ? a[2] : "";
} v.port = a[3] ? a[3] : "";
}) v.pathname = a[4] ? a[4] : "";
}); v.search = a[5] ? a[5] : "";
_inherits(HTMLDocument, Document) v.hash = a[6] ? a[6] : "";
document.__proto__ = HTMLDocument.prototype v.hostname = v.host;
tt1 = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(document)), 'createElement').value v.origin = v.protocol + "//" + v.host + (v.port ? ":" + v.port : "");
Object.setPrototypeOf(tt1, null); }
delete tt1.__proto__
delete tt1.prototype
t = Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(Function["prototype"]["call"]["bind"], Function["prototype"]["call"], [Object["prototype"]["hasOwnProperty"]]); // 'valueOf,ancestorOrigins,href,origin,protocol,host,hostname,port,pathname,search,hash,assign,reload,replace,toString'
set_href(location, 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true')
window.location = location
// window.location = new Proxy(location, {
// get(target, p, receiver) {
// console.log('locaiton get', p)
// return Reflect.get(target, p, receiver)
// },
// has(target, p) {
// let res = Reflect.has(target, p);
// console.log('locaiton has', p, res)
// return res;
// },
// getOwnPropertyDescriptor(target, p) {
// let res = Reflect.getOwnPropertyDescriptor(target, p);
//
// console.log('locaiton getOwnPropertyDescriptor', p, res)
// return res;
// }
// })
console.log(t(tt1,'prototype')) origin = location.origin
\ No newline at end of file \ No newline at end of file
...@@ -27,25 +27,24 @@ headers = { ...@@ -27,25 +27,24 @@ headers = {
"x-api-key": "l7xx944d175ea25f4b9c903a583ea82a1c4c", "x-api-key": "l7xx944d175ea25f4b9c903a583ea82a1c4c",
"x-app-id": "air-booking", "x-app-id": "air-booking",
"x-channel-id": "southwest", "x-channel-id": "southwest",
"x-swa-di-dtid": "9afe8f85a0461cd2f727555df6f38f784082", # "x-swa-di-dtid": "9afe8f85a0461cd2f727555df6f38f784082",
"x-swa-di-pid": "1643310480243311", # "x-swa-di-pid": "1643310480243311",
"x-swa-di-ue": "eyJ0cyI6MTcwMzA1MjI5MDk3MiwicGF5cyI6W251bGwsbnVsbCwiZXlKMGN5STZNVGN3TXpBMU1qSTVNRGszTWl3aWNHRjVJam9pU2xSV1EwcFVaRU5LVkVsNVlrYzVha3BVU1hsS1ZFNUNTbFJKZVdGSVVqQmpTRTFzVFRCRmJFMXJXV3hOYTFvelpETmpkV015T1RGa1IyZ3pXbGhPTUV4dFRuWmlVMVY1VW0xR2NHTnBWWGxTYlVwMllqSjBjR0p0WTJ4TmExcHdZbTFTYkdWRE5XOWtSekZ6U2xST1IxbFhVakZpU0ZKUldWaE9lbHBYTlc1YVdFcDZVVEk1TVdKdVVXeE5NRkY0U2xSSk1sbFhVakZpU0ZKNlVUSTVNV0p1VVd4Tk1GRjRTbFJKTWxwSFZuZFpXRW93WkZoS2JGSkhSakJhVTFWNlVrUkpkMDFxVFhSTlJHTjBUVlJOYkUxcVdtdGFXRUpvWTI1U01XTnRWbFZoVnpGc1ZESmFSVmxZYTJ4Tk1GSkNWRVY0WmxKRlJscEtWRWt5V2tkV2VtUkhiSFZaV0ZKd1lqSTFRbUZZU25kaU0wb3dVVEk1YTFwVFZYcFNSVXBRVlhsVmVVNXRXbWhqYlZaVlpWaENiRXBVVGtWVlJUbEtWR3hTVkVwVVNUSmhWelV3U2xST1JWTkZPVTVTVmtaRFZEQXhRbE5XU1d4TmFscDJZMjFzYm1GWE5XaGtSMngyWW10R2NHTnVRblpqYmxKRVlqSlNiRXBVVGtWVVJVWlVTbFJKTW1OSFJucGpNbFoxV2pKV2VWWkliSGRhVTFWNlVrVkdSVlpWZUZWS1ZFa3lZMjFXZWxwWVVXeE5NRkl3WTI1V2JFcFVTVEpqYlZZd1pGaEtkVkpIUmpCYVUxVjZVa05WZVU1dVNteGtTRlo1WW14U2NHSlhWbEJhYTFKb1pWTlZlbEpGUmsxVVJqbEZVVlpyYkUxcVdqQmpiV3gzVmtoc2QxcFRWWHBTUnpsMVdsaGthR1ZUVlhsT2JscG9Za2RzYTFsWVVteEtWRTVGWkVoS01WcFRWWGxOYVZWNVVYbFZlVTF1UW5CYVExVjVUV2xWZWxGVVJUSk9SRTE2VFZSQk1FOUVRWGxPUkUxNlRWUkZiRTFyVFd4TmFrcDZZVmRSYkUxcVNXeE5NRVoxWkZkNGMwcFVTa1JLVkVsNVdXNU9jRnBEVlhsTmFWVjZVVk5WZVUxdFdURk9iVlV5VFVkU2JWbDZZM3BPUkZKdFQwZFplVTF0Um0xT2VtZDVUbnBKTlU1RVNYbE5SRlYzV2xkYWJWcHBWWGxOYVZWNVVYbFZlVTF1VW5wS1ZFbDVTbFJPUWsxVVkzZE5la0V4VFdwSk5FOVVhM2RQUTFWNVVYbFZlVTF1VWpWalIxVnNUV3BKYkUwd1JXeE5ha3AwWkVoS2NrcFVTWGxLVkVwRVNsUkplV05IUmpWS1ZFbDVTbFJPUWtwVVpFTktWRWw1WkVOVmVVMXBWWHBSVkVVelRVUk5kMDVVU1hsUFJHczFUVVJuYkUxclRXeE5ha3B0V2tOVmVVMXBWWHBSVkdNeVRYazBNazE1VlhsUmVWVjVUVzVPYTBwVVNYbEtWRTVDVG5wQk0weHFhM2hLVkVwRVNsUkplVmx0U1d4TmFrbHNUVEJGYkU1VlNUQk9hbWRzVFd0Tk1FcFVTa1JPZWtsNVNsUktSRTFxVlRGS1ZGWkZTbFJLUkVwVVNYbGplVlY1VFdsVmVsRlRWVEZSYVZVelVXbFZlVTF1VVd4TmFrbHNUVEJGZDBwVVNrUktWRWw1WlVOVmVVMXBWWHBSVkdONVRXbFZlVkY1VlhsTmJtdHNUV3BKYkUwd1JUQktWRXBFU2xSSmVWcHRVV3hOYWtsc1RUQkZlazVxYTNWT1JGRnNUV3ROYkUxcVNucGFRMVY1VFdsVmVsRlVUVEJQVXpRMVRtbFZlVkY1VlhsTmJVMXNUV3BKYkUwd1JYbEtWRXBFU2xSSmVWbFRWWGxOYVZWNlVWUlZlazFUTkhwUFUxVjVVWGxWZVUxdE1UUktWRWw1U2xST1FrMVVRVEZOZVRRMVRsTlZlVkY1VlhsTmJURjFTbFJKZVVwVVRrSlBRelEwVFdsVk0xSkRWWGxSZVZVelVXbFZlVTF1VVd4TmFrbHNUVEJGZVU1cWEyeE5hMDFzVFdwS05FcFVTWGxLVkU1Q1RtcE5lVXBVU2tSS1ZFbDVaVk5WZVUxcFZYcFJWRVV6VGtOVmVWRjVWWGxOYlZwclNsUkplVXBVVGtKTlZHdDZUR3BaZVVwVVNrUktWRWw1WXpKUmJFMXFTV3hOTUVWNFQxUkpkVTE2Vld4TmEwMXNUV3BLYWtwVVNYbEtWRTVDVFZSSmJFMXJUV3hOYWtwb1NsUkplVXBVVGtKTmFrMTRUVU0wTVU5RFZYbFJlVlY1VFcweE5FcFVTWGxLVkU1Q1RWUk5OVTFxWjNWTmVtdHNUV3ROYkUxcVNuUmlhVlY1VFdsVmVsRlVSWGxPUXpSNVRYbFZNMUpEVlhsUmVWVXpVV2xWZVUxdVVXeE5ha2xzVFRCRk1VMXFXV3hOYTAxc1RXcEtORXBVU1hsS1ZFNUNUa1JuTTBwVVNrUktWRWw1WlZOVmVVMXBWWHBSVkVreFRrTlZlVkY1VlhsTmJWcHJTbFJKZVVwVVRrSk5ha0Y0VEdwUk1VcFVTa1JLVkVsNVl6SlJiRTFxU1d4Tk1FVjRUbXBWZFU1cFZYbFJlVlY1VFcxTmJFMXFTV3hOTUVWNVRYbFZlVkY1VlhsTmJVVnNUV3BKYkUwd1JYaE5SR2Q2VEdwRk5FcFVTa1JLVkVsNVlsaG5iRTFxU1d4Tk1FVXhUVVJyTlV4cVFYbEtWRXBFU2xSSmVXSlhOR3hOYWtsc1RUQkZlRTU2VlhWT2FtZHNUakJSYkU1VlVXeE5hMDFzVFdwS2FrcFVTWGxLVkU1Q1RrUkpiRTFyVFd4TmFrcDZXWGxWZVUxcFZYcFJWRTFzVGpCUmJFNHdVV3hPVlZFOUluMD0iXX0=", # "x-swa-di-ue": "eyJ0cyI6MTcwMzA1MjI5MDk3MiwicGF5cyI6W251bGwsbnVsbCwiZXlKMGN5STZNVGN3TXpBMU1qSTVNRGszTWl3aWNHRjVJam9pU2xSV1EwcFVaRU5LVkVsNVlrYzVha3BVU1hsS1ZFNUNTbFJKZVdGSVVqQmpTRTFzVFRCRmJFMXJXV3hOYTFvelpETmpkV015T1RGa1IyZ3pXbGhPTUV4dFRuWmlVMVY1VW0xR2NHTnBWWGxTYlVwMllqSjBjR0p0WTJ4TmExcHdZbTFTYkdWRE5XOWtSekZ6U2xST1IxbFhVakZpU0ZKUldWaE9lbHBYTlc1YVdFcDZVVEk1TVdKdVVXeE5NRkY0U2xSSk1sbFhVakZpU0ZKNlVUSTVNV0p1VVd4Tk1GRjRTbFJKTWxwSFZuZFpXRW93WkZoS2JGSkhSakJhVTFWNlVrUkpkMDFxVFhSTlJHTjBUVlJOYkUxcVdtdGFXRUpvWTI1U01XTnRWbFZoVnpGc1ZESmFSVmxZYTJ4Tk1GSkNWRVY0WmxKRlJscEtWRWt5V2tkV2VtUkhiSFZaV0ZKd1lqSTFRbUZZU25kaU0wb3dVVEk1YTFwVFZYcFNSVXBRVlhsVmVVNXRXbWhqYlZaVlpWaENiRXBVVGtWVlJUbEtWR3hTVkVwVVNUSmhWelV3U2xST1JWTkZPVTVTVmtaRFZEQXhRbE5XU1d4TmFscDJZMjFzYm1GWE5XaGtSMngyWW10R2NHTnVRblpqYmxKRVlqSlNiRXBVVGtWVVJVWlVTbFJKTW1OSFJucGpNbFoxV2pKV2VWWkliSGRhVTFWNlVrVkdSVlpWZUZWS1ZFa3lZMjFXZWxwWVVXeE5NRkl3WTI1V2JFcFVTVEpqYlZZd1pGaEtkVkpIUmpCYVUxVjZVa05WZVU1dVNteGtTRlo1WW14U2NHSlhWbEJhYTFKb1pWTlZlbEpGUmsxVVJqbEZVVlpyYkUxcVdqQmpiV3gzVmtoc2QxcFRWWHBTUnpsMVdsaGthR1ZUVlhsT2JscG9Za2RzYTFsWVVteEtWRTVGWkVoS01WcFRWWGxOYVZWNVVYbFZlVTF1UW5CYVExVjVUV2xWZWxGVVJUSk9SRTE2VFZSQk1FOUVRWGxPUkUxNlRWUkZiRTFyVFd4TmFrcDZZVmRSYkUxcVNXeE5NRVoxWkZkNGMwcFVTa1JLVkVsNVdXNU9jRnBEVlhsTmFWVjZVVk5WZVUxdFdURk9iVlV5VFVkU2JWbDZZM3BPUkZKdFQwZFplVTF0Um0xT2VtZDVUbnBKTlU1RVNYbE5SRlYzV2xkYWJWcHBWWGxOYVZWNVVYbFZlVTF1VW5wS1ZFbDVTbFJPUWsxVVkzZE5la0V4VFdwSk5FOVVhM2RQUTFWNVVYbFZlVTF1VWpWalIxVnNUV3BKYkUwd1JXeE5ha3AwWkVoS2NrcFVTWGxLVkVwRVNsUkplV05IUmpWS1ZFbDVTbFJPUWtwVVpFTktWRWw1WkVOVmVVMXBWWHBSVkVVelRVUk5kMDVVU1hsUFJHczFUVVJuYkUxclRXeE5ha3B0V2tOVmVVMXBWWHBSVkdNeVRYazBNazE1VlhsUmVWVjVUVzVPYTBwVVNYbEtWRTVDVG5wQk0weHFhM2hLVkVwRVNsUkplVmx0U1d4TmFrbHNUVEJGYkU1VlNUQk9hbWRzVFd0Tk1FcFVTa1JPZWtsNVNsUktSRTFxVlRGS1ZGWkZTbFJLUkVwVVNYbGplVlY1VFdsVmVsRlRWVEZSYVZVelVXbFZlVTF1VVd4TmFrbHNUVEJGZDBwVVNrUktWRWw1WlVOVmVVMXBWWHBSVkdONVRXbFZlVkY1VlhsTmJtdHNUV3BKYkUwd1JUQktWRXBFU2xSSmVWcHRVV3hOYWtsc1RUQkZlazVxYTNWT1JGRnNUV3ROYkUxcVNucGFRMVY1VFdsVmVsRlVUVEJQVXpRMVRtbFZlVkY1VlhsTmJVMXNUV3BKYkUwd1JYbEtWRXBFU2xSSmVWbFRWWGxOYVZWNlVWUlZlazFUTkhwUFUxVjVVWGxWZVUxdE1UUktWRWw1U2xST1FrMVVRVEZOZVRRMVRsTlZlVkY1VlhsTmJURjFTbFJKZVVwVVRrSlBRelEwVFdsVk0xSkRWWGxSZVZVelVXbFZlVTF1VVd4TmFrbHNUVEJGZVU1cWEyeE5hMDFzVFdwS05FcFVTWGxLVkU1Q1RtcE5lVXBVU2tSS1ZFbDVaVk5WZVUxcFZYcFJWRVV6VGtOVmVWRjVWWGxOYlZwclNsUkplVXBVVGtKTlZHdDZUR3BaZVVwVVNrUktWRWw1WXpKUmJFMXFTV3hOTUVWNFQxUkpkVTE2Vld4TmEwMXNUV3BLYWtwVVNYbEtWRTVDVFZSSmJFMXJUV3hOYWtwb1NsUkplVXBVVGtKTmFrMTRUVU0wTVU5RFZYbFJlVlY1VFcweE5FcFVTWGxLVkU1Q1RWUk5OVTFxWjNWTmVtdHNUV3ROYkUxcVNuUmlhVlY1VFdsVmVsRlVSWGxPUXpSNVRYbFZNMUpEVlhsUmVWVXpVV2xWZVUxdVVXeE5ha2xzVFRCRk1VMXFXV3hOYTAxc1RXcEtORXBVU1hsS1ZFNUNUa1JuTTBwVVNrUktWRWw1WlZOVmVVMXBWWHBSVkVreFRrTlZlVkY1VlhsTmJWcHJTbFJKZVVwVVRrSk5ha0Y0VEdwUk1VcFVTa1JLVkVsNVl6SlJiRTFxU1d4Tk1FVjRUbXBWZFU1cFZYbFJlVlY1VFcxTmJFMXFTV3hOTUVWNVRYbFZlVkY1VlhsTmJVVnNUV3BKYkUwd1JYaE5SR2Q2VEdwRk5FcFVTa1JLVkVsNVlsaG5iRTFxU1d4Tk1FVXhUVVJyTlV4cVFYbEtWRXBFU2xSSmVXSlhOR3hOYWtsc1RUQkZlRTU2VlhWT2FtZHNUakJSYkU1VlVXeE5hMDFzVFdwS2FrcFVTWGxLVkU1Q1RrUkpiRTFyVFd4TmFrcDZXWGxWZVUxcFZYcFJWRTFzVGpCUmJFNHdVV3hPVlZFOUluMD0iXX0=",
"x-swa-di-uid": "9fb8f019d921111111111111111111111111", # "x-swa-di-uid": "9fb8f019d921111111111111111111111111",
"x-swa-di-usid": "f56e60dfc7344f8f22af782729422050efff", # "x-swa-di-usid": "f56e60dfc7344f8f22af782729422050efff",
"x-user-experience-id": "005ddccc-b541-4658-8641-353155875272" # "x-user-experience-id": "005ddccc-b541-4658-8641-353155875272"
} }
# https://www.southwest.com/assets/app/scripts/swa-common.js # https://www.southwest.com/assets/app/scripts/swa-common.js
headers.update( headers.update(
{ {'ee30zvqlwf-f': 'A4-OUwGNAQAApnNOz6XJK-uu2lC7TTHLK2f8cK8du-FtPkiO466HNXc_VdaIAZrDIwsAAAAAAAAAAAAAAAAAAA==',
"ee30zvqlwf-a": "G3dsiCgDOGhfzd8oj8B7Bp2=lL38udF_6OlNgLzvgx8GWss6_V4CKsFKvX8cI1rPK6tl_EP=VIiqzjnIc6KYoyW00hoFYkUkegKgztHJzh1oK9Rg1xq6-P9ca_GCb_Gez9jd5uqYVeIO00J4VvNPbqaIX2ylT66g9IJTN5rcnmD08QHO83ltFI7ySPF8UpCRhluahtv2DlSVTu8n4Oh8aWaHDGRmlfizUCtGlGAc1x=UD38Y_LoVl=PjVhO9G3YarjpDVIygVz5HNFPu8EXBkEFQUffFJQDjhgW27hcAN5NrpGzkPmJmu-70wP4VQDElzfOcKNtFakj7M01-MmSFN9BI8OP925L3FDmjbGnoFQgH2-xLCg-QPsviO2tY4TqlogBYxiDEQ1oRAGU8XYL0YP7=E2leRhUTqqNkFbSUzmqKiSa=aJNRtABAeJUWsJUhkByrH1rEGAB35lInYXPh4FR-QI5VoC52egeNTBTkIrfUp9B86FP4LwMCffM74A6iT1wFJWaYFmC1=haJasJVm8SqMRQcll5oxA=yIJID9UBNN7=Lua6OzMawX3NsUiO8CJM=BT0rN2jDSnQMgHtn9jdGWXeE=8UnkWF_rCejpMa9rVyd0hOOVnmhWsVEgv3QVVJwMQHLTHsc1nTHWTYfeNz8rjHFPXRYs4ue2zUUu0LxkB7qimL-ommMFhN-HRLGFKeXxLob74LrmPu3zhev=07puMes5gL1WhmHiGtBEDy_u_axC9qRRmBC=XNdnXO011W_qXEvO=NuarQWDIW=kyGnLfiniRC=pX4GtFU0jSTB8QM0CHXBlOgAVgUwoATpJwljkJU9bTlUzp31nqMs=kO_bI6U1IqoT4=g1KkjAibim225MBO2rhXLRsKl1yG-6BlF6mFRTsesAEp-ITOCHIL-vM5RBLdSlDvnTlSUUGI_L7MXHIg30r4CmPoOvQ0HzCEeKlvRDbefLujrXKXDSCR5nPyWllcWIia5SYLJw=jkDnkNXkyFmSIEh5nMk-U_D0tLjG7YEAm7etMvfxHESke5wY9pc-11hOL7f_PYDuFO03hqHkJKJ0ikEIVj=RJHUCPvn9nXiBJ13splDQfRsAXUQ3Np_V8us3RDpWmUKCGamPj3Xj1MXBzPRUgkGncbS-a3vtY_CQ5uUHlkPvgJ07YLjw6W4h17j-FcDsIlrbAWjTgv1_uovde8vVjLe2E8fpDzSAhQSGBa5ka=wWVDFpN5xffsFLfJe0dtazEGmlfFgxf_bYU2XFjENpxjAcBTsOtGBUuOV_H5bTh2A9OFxDzEbR6IC7lR-XJyoxtVL4kC6L2PT6uxOG1G7wzcfruEB9ufS7SzUACcpuI5Agj_p-fOh--sacg8PqDG-76GMvubTFqdXB=Kp9SUr-e3AzSWopULBLvX5DMoOi6fduq5ivuSa3zJln2SBCBCpwEEB8-J0Os=T2RR06UumGkqa3m78XkxeIcA7IH7ptmT3FpN37A3=LdfcapbJkJ3fGJj-RQwCsmw2cijhWckAgFGTddCVOqbicbNT=Y1aWEvmXJLr6FMgADn1MGnNGauv7Tjug6LCYwdu6utK09bFx7jHdRCkj28_N-dHv3c8o9Vhp41q667KqJ=v3RaFN4cDoli7ixLQktrLW8sDWIxsfe=ozK=J2azjV1lwHqESnFb9kJUwvFE7V3i20Fkmm2o0zRJkW=P6IxH7u8QU-_jEk1TE_EO=m=v-ekClO=bT-7vgqwxsAKecCl=XYBTKi71I0aNMrOFttI_cbJ3cIiWtSOlTrle_dyLpjXhsfXjPmwi9GkVqFFjXyd9Koux=Ww9RTkbBHR4=yLrVaeX9uR70UzqIx4xlWvb-JkNn91mYzgKXJc8_RMeqxkQc9kyX9=ItnJJXzzk88wEHGRc8E8JUDHbYAO6pCtMOk9J8RI4pFz_k_5SnTBryyHa4XsiI0Bh6z2AcqusPc72MdjumiqEmNa336G-mj0EKC8j5V7xa9CJ3mQIUkKK90n2JzyoR8kXzX98mya74PxkO1xQg3QVDpXUfjP51Eie8VW9d__dG55GQgmxGcd4hAJdlyYOO77YdYhwOYTlWoGKV=ayHJwgbMWtM5Re9aooTSnm9w=5ePlBVFXUsVbQeBApUnlbQdETwVh=Xxk7s3f3iTo-9JjVreMWRT2iuUJq2pNcpAVAoEDTFVnNTM=ng2PG-4Yy6lar1i6Un1fplQ1DvNnRD_tOt8DUxlYl=VWhq5r_txXaYBODCetw4=vN6=E_mMRusHHiRrkgzDSQHVKJGpQ-R1OnDh8iWi14E1dYyF0Bm9Vdcq6DDBNHylz=7baHU2IrBBDEPmbFo6sQhgAhMhk7E71n1xtPaVxf2T1vCeNgBiQ=rdIrLQ-dSsuSOjUVfFh0ohALwrRifp-2sqkK4YoqTfx5kNAVRp7vjy=azw5rA2fv_GS9CVSL11th6re99BrtYQKhtpD4=gNAJcn8IJ=NlF=43Dth-XxDOzRTj7pcDTvynoQisvpKB618knqLoy=OIgx3fXJ4YsP_9E=MROWo__p-Yg2waXXwJ_RJzWcYGAmFtwRavBFzD5RjaQEEa_CY=gTlJ95K08VNHH_1BX7cGS9sgSLVk1w4_SPa9DA0DuweNrbK=3Hpc-3J7EO3TFo1KmU9Or207enPW58ysecYfMgxvum1T0GGy63u9LXcNG4Vig09bOBNu05CpYFbYs5pST5MUa9vjNCav3HEP==m7eiOGJ7YvXbRDLsQp6KoTHLNKnJ5yc7UevIHq39S_hCdWU_n_xSAyI0mwDig_-tT83ldLhSIiyPALyuiO8l71aYMh6IzuRW-==lO0fdvWN9nKjNvwrHkd8Xm172Eq=OvsdUC-fP12L2tngu6=Tw8sRVg6hy26LzJjuvie_metlJ--GS8BWSuit_ra3HuKe3MkFt=wXg9eYkgexXDpCqH6FcGA42AL5CKsi5UNJKhucxGzjuzcC6KGEBYQeO0YssLW9JlPRo5Yy=sMJLdIPFh=VYFstJjffHCSohhuugspIUCrjh72v3a9b3DIRfth3Px1-a9Tx3T-DECeCGDVC_OlhQAOFPTSJUg-6GfEMPnGK0aW1oUnb41v9K2TaCH13410P4oTubEgR3vghxbbYCKh8gGN-iQMN4mNGwMo_O2e=_SLSlY0xKRpWjl0JaBxn=W3QA3tNllMcRvSAheo3KpnklMXcC5K3zJxscyi2fdaBg8jL8dtTpEfyQ_GSosj7sFqHI4adVgWmofXBtPRiN9L5=L=cfjvNK0Ov6tG8dHqx6QxCrhNWjpbU8uDNFhpjH2EDnYAvXJOKR4-9o3jEAwehPLM5oJpfzAVEsS_h9yXP9Uhla-=GgRYP7I5-M5L9PR_jQEX0oJS=joHeTU05N0zNkpj3=awdUxSbVTefPgfMPu8=WJFEjSR32AxvUx9GrKg7-_29TCVLSdwL1Ml3Qxg0T4OAtrPpaOb-mQPgzMyjA_gMYjlXxDkBoN9QTu6KRkzOVnyjpVYV8pVBaC0KVDSHHTRkxn2G1qQd0K_Hfw4DInqtr_m0CAE_8F2oCRVN08RJcz7Kn7je29IIKQTbsSfb_mLmocq4RaY1psV5ATvme9IPGajU60V5oUPXM=2OXDzuJjW63nqBy_6gnKS3jr3RqiYNb6BHpHP1GOFsN0_eUl1wN0xOjtuCvjC4zEwV4Tnaz0PYTnpBR2G2Wksz8HTim0IE_PpgMo=Fsdzk2BUodUugGfs2KvVa8KEwOYqUPf1n5j3HsLgudbX3Amf-WuF3gC02Ksyz4hQVvJiaNk_zwatI8rYqEP4RNOjqO7deNzxvoMOy_KtMt47bBf8UVHiiM1x8plTgsyRlYsRbkiQxyDudqkI1hJgB8xXo3BmYXMsh-qAfYj3Y5LGzUTSiq97fCWpoGWk=OC22VExaBJ_Wt91aMzDPueuLMJbCqgoc=4kWOq=W63aj3zuq2stTzaTb20EdAjD0VljWMFwW6W7RAfuzLYRMMiW8=JpP9rV=vYfAg1AIFpbyvv5-uYMYEdTqS-=rKBcvgcQ9L5uWPKMpe=ugeJPpsn_AcsmNfI=JLLlkq8PyOYIQRRUKwkcmRGLbBWw7svbk6oaTSn=xxWrbMcwp6AP8I8OkupqQOivwa5Knc8DjbQD9JzwpA80oIsP9qy8wBRNv5xgPDzQLxEzwf4dglJzLlK4A-Mn_=uC1KYMmfYWFL2NEpB1C3zk78tMIPgRuR0xRXJN6yCfy8M6rqPwMQtztGL=JHME2gl1lSI663mQye1vrxu_QaBxhL1QC4vw_ryRktFW8nwnDuxT52UfxYgsMpr85jdO9LcUrdHIAW87JBnlA-Sizcv7qYoA=4uTmHMLWaU=yVGw2Trxxt-mp=WlkbcxEL=fbz5_qAK6kswb1RtESIDNO6psnb1T5gxsPdqXfSHiLOlFSOczKAqRa0XwYMPL6bKIfR5i=Nxrfu2q7HVCwi-cvqM3Y_IrL7S-d7leqN5eLLjDapnwL02nflB=olcGQDtt9trSPg4uzjILwy-oDko2k91hO0-gRvP852uerDV11rtMt9UsmXwmHHCslWDLXk7r1uRFyID0dCPop_lIC_rxGxd4S2R0p9gCLL-QDuvMs9eCTL9=JgIT0xjbLlrQyqUNEOOqFv1qc1I0wSWG7Mnm1SatT0YexEocqto1jth58B1X=I25Cj9pQo-7UmEOCoQHC1mAXtk3C0IqnpV35Rmve0fD=k5OTs4KQYlzO-AjM7qK=jp5N7n-8jSg00TF9s=vFHi_Ci9=RqJCXgQLwFw1JUkferpo2_Dq5HaXjB7Kx-hXyVTWXqBcUuNRH-e9r13d5t1RqSkq44dk8ozGIu3mjKuQdRdFJPFiv6A2wwpgf_rANPWTncPlkROvxIVVI=f5JmP7Vhl3dORR32K0WqtdhswIyQdkzNc4R-TU6PwDc-WqU3dUuUFAGkj_5BWdikjaYW6G_XMRtsieVNpqclIwOP3DhzeAj17OO4Ijxq9ueGeyXcmLQRp=3itvyUw4QxuMLYNPIEYpaWYcwDoKnPcRuuEs6-2ipjMwOymo6N3T9_jvnGnhuKXF1op9rgj6x-LFaYRhDwIBWeVB4ELv=hltI8duWPRMAaKDagWPScvyjsW0ChQU8ks7uBQcvznHDaB8WjA3gChHE8fWWuOdpHqwDO8aJOVIjC30T3X43maVyUutc065=SzcSJlzQ6X9YdV-dDf8L17cVJA=m7zFw4EANdGdS3W-vTiw-xUBn5nTybDwd4HMynfeWxCozzC7G2dLNNB3Sc-mvr0CekVB1R0056q7xoolCFMk58ojlqDv6eaAMqVfk1Lh9NiVmjEK9Sma2-SCMFRcTow46SdqB7I1oEomYbzaSemRAfDGYJoLui3yGV58Y5BKmk60UKgEKWuNqy2fQzLi3ba8fLKf8S1aNaG-DjLjiDxy7l1qEen4txaJY24jUWATu1CBn8lnH_hbn_LIqMsVF9fL=sABh0aDSFOwJs=i5IymdN073okY-N00GXiu9mJtf7cndrVKiCwUwyIhFJkkH0yvb7gRDD6duo4PC6shrot-thNvYM4ft8-IWgBmOeHvbVH6ye2ouzrUMWvzh2fvp2qGN6P0k12JKSiM1vq_SUYtosJwHqegE7gYhyPK16vqfJPO3HuXpoH8fH1rEP0SNisqp1T6aErbAXfPo5OhMvPdbKXTuujrD-cEffn3-b3s0zizFA2C0rBenzbnM=RblQ=M6KMryWHid39LBmCqkuUJHVJ-Ap2QhBYfjEaLfh=2S9EN6apfc_fl8e8h32o5yJWeo1OHW-xhRCXou2OozqVM4Q0qhOYqttFe9zPI9Qe7zD9Cjd4_WloHDSnSGd05doiSCsEh=6Mk8jqJPOhwFWNblbv=kSzs7htKuKa080vrpUo07H3KeET=pSagJGJVH8M4kE-m1W7y3JWtSnLDyUw2KfyV5s4koc753EnKDQhnHA29-HV9VM8OQdYAh8_c_fEQ3YRRt71KziYgzLv84KBvNsCHEpwplytdq0W9lQS0KBLB1nt_Fhgbv9HvITfQ=isFVFRx89nBdACePPmC-3JLh4heLWv2UPt7avrHOlt9RoSt2ooMN9OlaLsXDq-ngmSaBxq0wqpe-jOzsODXPYHN2KjdaUNF8a2WXTsfQMwO-lMp999PK9TF7psPEd", 'ee30zvqlwf-b': '-dxx3n', 'ee30zvqlwf-c': 'AKD3UAGNAQAAx_m4NZKheh02r4bjHTHKCdq8jKqFTScwUUKakenrk6uEFQtZ',
"ee30zvqlwf-b": "88qtiv", 'ee30zvqlwf-d': 'ABaAhIDBCKGFgQGAAYIQgISigaIAwBGAzvpizi_33wfp65OrhBULWQAAAABnMdsJAEja5Hyml4oftAgkC2vg13c',
"ee30zvqlwf-c": "AKDTSoaMAQAAR6NQlDqWoJ4gqA11IUOkvoBjFaKN8xitjZ7VgslsuV07Ddt_", 'ee30zvqlwf-z': 'q',
"ee30zvqlwf-d": "ABaAhIDBCKGFgQGAAYIQgISigaIAwBGAzvpizi_33wfJbLldOw3bfwAAAABnMdsJAIPOtxoMhpLeWDfjaJRrPlI", 'ee30zvqlwf-a': 'Lik1it8IShJPebARaakkIpKKYO8lRXvhisdMb4Cb9J_N-B=TecYx-_pcd0UYCv7OZ-naeotU6R9-7vEYlRYKtOZibU9yEm5nlF=hAumU23ezuwEqd3HNNGKU4DYrK2h6OxsOpwC_QnA_7TYpieStEL=1K5NxE9GtAVjT=tahhU3_6w-Qjee2SayPSMSzkv_eyhI15lJhGuAvk8mawXwNQKcyo5zVFUc5F5S6Iep5y=pf5eGpPU0caijTDGj7vkh46-ZXSZ60CVkzDb5zVY0ZwDIaw_=Bjyy=ZYSvtQ__S50Mj19C5u1374YPADpAdU6T2N7F-slYWUaz8utHN61FnDv-VPsNMXk3AGeLsp64WsHp35_jUnnIjVBUDRkQaai9oLihUrOcX7LmMWrWd=bTAaX9GY510iVVAu-O0G3xbcLWUUXTUUs-oao-A99lvreuOR1vHWNJ4WFJfBM670dAYS=1B=rztTwKuFvMBbLGCoG6heRuak2VFIZyCEUiDwkOTlGUvB337Al9v=R8kEy=T67JRiq9t9_rx7iI96GK2yRO5Ywh-sCUlpXtrFKKfL==NNenDEhA3bY85rJ_0vQ6udmnXXdLf5na8L1=0s_9wjueMiAVn=1NKIJ7ywW_zfsTEdRqVpSzCQ=XT85k0tP2P_YTyn2h0rLyW1PzWvJRuFweZxdRvjWdKIzPzyqfQc2WOU1p43bkBHAi8yz-t82kW_y9T-3=YU7HtZJH8hJafkIkZG6QAEbsKqIw=Usro6H9sUtVZ73IJ4lCGvcybeTN1U0LH-zXTTXzSTFJ0K-J=K=01PmJRphw8o_cGP9MC-hx0x6yU-CzjWi6FBVfyAMnZoL7ET7yld61nZ5o2bPZ2Auab-6XkwSOAw-BP9P3liI3sWD0K7HC=lrGMVfsuhRF5UdSAZIuNVe6XJd7fCDwGdCOMfI3RHG5-kdCa8cXvhG723kxfuiiGoJHG968wKK9nZEjbO6hLNUOAGFiLZ9HBpv6pejBFsiipCj0LZQzY=nH8fHjGkcslZjZhXTla_l6IUKsYSihdFeAz47L79jemTvxD0JY862OSe2_il3PIQIcPXI-XdBWdrT=Bl7zfwh_iwWGZ0x7imPr1uE7112anUoIGNXfSpYSH-6GZTt-z1TzLPtvReLinPA1RB7dTkcxoC6iyViW6vvyLMutZQ-azPLQXf3T3zdifJm81BB6RH86q7iRXTisLRCMGq_02qA-ehdJcSsqWBdh1iJHf2KkwocP2TtFUaVwD3WIYh4UQcxo=y9RHPIqM-Daq5OqQ=aV=rKCkXsReh7DYWdTvtUBKnBchpMluWrrE5zGjZ-tjYb87=X9FY=vFrQDJy2mafnJq=s8uMiRcn2ZwC4uKW3oXp3QxDUXqSKhwH9WdxHhE-3zWA7xs2XFo=y4GiZ=hZLuokZ_Z2xoX_-PVeS0mLGSIh-I_LFOhdHNI5zM10VfGXtnsyxb6feKPHwCzErZ2zkxizjqhTMLKLjE2WzdYSaoFVT9UF9p6I3xq846PxXzkObcfXDVjOtUSp2mDA3YO6pOQN5mqkVKIUELSPAqttRaMaHzyph5Dtu6UkVC97tZcfRXdY5=kIEpjZ4sFwYLZvM4vYrEcOpmswF8uJmt_B74W2V9ZY9YUMh2YD8nc1Y-UYPmFR0W_EFZA_a1nlx0CoYyoz8=zP7b8-cEqdPfJVQXFKTvc8QmW8=K4c9t_tK1q6fs5q8jBcfxI_jZrWyE3oCzv5NqFwBJ0VK2tK',
"ee30zvqlwf-f": "A9IKTYaMAQAAJ7zJu7-w7snvZbA3izFVxAEUtun3U15ltb3ClSyR9GQcTn5ZARf3iT2ucgHcwH9eCOfvosJeCA==", 'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.100'}
"ee30zvqlwf-z": "q",
}
) )
url = "https://www.southwest.com/api/air-booking/v1/air-booking/page/air/booking/shopping" url = "https://www.southwest.com/api/air-booking/v1/air-booking/page/air/booking/shopping"
data = { data = {
......
FROM python:3.10.1-slim-bullseye
RUN mkdir -p "/home/opt/lcc-wn"
RUN apt update &&apt install curl -y
RUN pip3 install requests loguru curl_cffi tls_client pyquery nacos-sdk-python pyyaml pymongo
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
RUN apt install nodejs -y
WORKDIR /home/opt/lcc-wn/
RUN apt install -y make g++
COPY src/package.json /home/opt/lcc-wn/package.json
COPY src/package-lock.json /home/opt/lcc-wn/package-lock.json
RUN cd /home/opt/lcc-wn/ && npm i
COPY src/src.js /home/opt/lcc-wn/src.js
#COPY src/jsdom /home/opt/lcc-wn/jsdom
#COPY src/js_dom_run.js /home/opt/lcc-wn/js_dom_run.js
COPY src/main.py /home/opt/lcc-wn/main.py
CMD ["python3", "main.py"]
version: "3.7" # compose版本号
services:
b61: # 单个服务标识(名字)
container_name: lcc-py-wn-1 # 启动后的容器名称 相当于 --name 指定的名称
image: lccb6:latest # 镜像
restart: "on-failure"
deploy:
resources:
limits:
cpus: '1'
memory: 1G
volumes:
- /data/log/lcc-wn/:/data/log/lcc-wn/
environment:
- work_dir=1
b62: # 单个服务标识(名字)
container_name: lcc-py-wn-2 # 启动后的容器名称 相当于 --name 指定的名称
image: lccb6:latest # 镜像
restart: "on-failure"
deploy:
resources:
limits:
cpus: '1'
memory: 1G
volumes:
- /data/log/lcc-wn/:/data/log/lcc-wn/
environment:
- work_dir=2
b63: # 单个服务标识(名字)
container_name: lcc-py-wn-3 # 启动后的容器名称 相当于 --name 指定的名称
image: lccb6:latest # 镜像
restart: "on-failure"
deploy:
resources:
limits:
cpus: '1'
memory: 1G
volumes:
- /data/log/lcc-wn/:/data/log/lcc-wn/
environment:
- work_dir=3
b64: # 单个服务标识(名字)
container_name: lcc-py-wn-4 # 启动后的容器名称 相当于 --name 指定的名称
image: lccb6:latest # 镜像
restart: "on-failure"
deploy:
resources:
limits:
cpus: '1'
memory: 1G
volumes:
- /data/log/lcc-wn/:/data/log/lcc-wn/
environment:
- work_dir=4
# b65: # 单个服务标识(名字)
# container_name: lcc-py-wn-5 # 启动后的容器名称 相当于 --name 指定的名称
# image: lccb6:latest # 镜像
# restart: "on-failure"
# deploy:
# resources:
# limits:
# cpus: '1'
# memory: 1G
# volumes:
# - /data/log/lcc-wn/:/data/log/lcc-wn/
# environment:
# - work_dir=4
# b66: # 单个服务标识(名字)
# container_name: lcc-py-wn-6 # 启动后的容器名称 相当于 --name 指定的名称
# image: lccb6:latest # 镜像
# restart: "on-failure"
# deploy:
# resources:
# limits:
# cpus: '1'
# memory: 1G
# volumes:
# - /data/log/lcc-wn/:/data/log/lcc-wn/
# environment:
# - work_dir=4
# b67: # 单个服务标识(名字)
# container_name: lcc-py-wn-7 # 启动后的容器名称 相当于 --name 指定的名称
# image: lccb6:latest # 镜像
# restart: "on-failure"
# deploy:
# resources:
# limits:
# cpus: '1'
# memory: 1G
# volumes:
# - /data/log/lcc-wn/:/data/log/lcc-wn/
# environment:
# - work_dir=4
# b64: # 单个服务标识(名字)
# container_name: lcc-py-wn-4 # 启动后的容器名称 相当于 --name 指定的名称
# image: lccb6:latest # 镜像
# restart: "on-failure"
# deploy:
# resources:
# limits:
# cpus: '1'
# memory: 1G
# volumes:
# - /data/log/lcc-wn/:/data/log/lcc-wn/
# environment:
# - work_dir=4
# b64: # 单个服务标识(名字)
# container_name: lcc-py-wn-4 # 启动后的容器名称 相当于 --name 指定的名称
# image: lccb6:latest # 镜像
# restart: "on-failure"
# deploy:
# resources:
# limits:
# cpus: '1'
# memory: 1G
# volumes:
# - /data/log/lcc-wn/:/data/log/lcc-wn/
# environment:
# - work_dir=4
import platform
import random
import re
import subprocess
import time
import loguru
import requests
import json
import tls_client
from bson import ObjectId
import hashlib
from pymongo import MongoClient
from loguru import logger
def md5(text):
m = hashlib.md5()
m.update(text.encode())
return m.hexdigest()
# 连接MongoDB数据库
client = MongoClient('mongodb://lcc-spider:JIUsfhiad&^@18.144.59.80:27017/?authSource=admin&directConnection=true')
db = client.env
# 查询所有文档
# result = db.env_shape.find({'env.funcs' :{'$ne': None}})
# data = {str(x['_id']): x['env'] for x in result}
# print(result)
# with open('env.json', 'w', encoding='utf-8') as f:
# f.write(json.dumps(data))
if platform.uname().system != 'Darwin':
# , 'success': {'$gte': 30}
# , 'env.navigatorparams.useragent': {'$regex': 'iPhone'}
result = db.env_shape.find({'env.funcs' :{'$ne': None}})
data = {str(x['_id']): x['env'] for x in result}
print(result)
with open('env.json', 'w', encoding='utf-8') as f:
f.write(json.dumps(data))
with open('env.json', 'r', encoding='utf-8') as f:
data = json.loads(f.read())
envs = data.keys()
# session = requests.session()
headers = {
"authority": "www.southwest.com",
"accept": "application/json, text/javascript, */*; q=0.01",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
"cache-control": "no-cache",
"content-type": "application/json",
"origin": "https://www.southwest.com",
"pragma": "no-cache",
# "referer": "https://www.southwest.com/air/booking/select.html?int=HOMEQBOMAIR&adultPassengersCount=1&departureDate=2023-09-21&destinationAirportCode=LAX&fareType=USD&originationAirportCode=LAS&passengerType=ADULT&promoCode=&returnDate=2023-09-24&tripType=roundtrip&from=&to=&adultsCount=1&departureTimeOfDay=ALL_DAY&reset=true&returnTimeOfDay=ALL_DAY",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
"x-api-key": "l7xx944d175ea25f4b9c903a583ea82a1c4c",
"x-app-id": "air-booking",
"x-channel-id": "southwest",
}
# tlss = [ 'chrome_103', 'chrome_104', 'chrome_105', 'chrome_106',
# 'firefox_102', 'firefox_104'
# Opera --> opera_89, opera_90
# 'safari_15_3', 'safari_15_6_1', 'safari_16_0',
# 'safari_ios_15_5', 'safari_ios_15_6', 'safari_ios_16_0',
# 'safari_ios_15_6'
# ]
while True:
# r = requests.get('http://ymx-lcc.unififi.com/header/task/pull/headerB6?brush_name=test')
# if r.json()['status'] != 0:
# logger.debug(f'不需要刷值')
# time.sleep(10)
# continue
logger.debug('开始刷值')
selectId = random.choice(list(envs))
lastHash = ''
usedTime = 10
success = 0
total = 0
code = open('src.js', 'r', encoding='utf-8').read()
# code1 = open('js_dom_run.js', 'r', encoding='utf-8').read()
for i in range(30):
try:
# selectId = '55a8fe24a752595e774341d6'
proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
# proxy = f'http://ynfflcc2023.hotmail.com:gdcfh9@69.30.227.194:{random.randint(20001, 20250)}'
# proxy = f'http://user-uni003-region-us-sessid-{random.randint(1000,5000)}-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
# proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@198.147.25.26:{int(random.randint(10000, 11149))}'
proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
# proxy = random.choice(['http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:9000', proxy])
# proxy = requests.post('http://ymx-lcc.unififi.com/proxy/get-proxy', json={'name':"B6", 'type':'shopping'}).json()['url']
# proxy = f'http://ynfflcc2023.hotmail.com:gdcfh9@69.30.227.194:{random.randint(20001, 20250)}'
proxy1 = f'http://user-uni003-region-us-sessid-${random.randint(1000,5000)}-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
proxy2 = f'http://uni00001_custom_zone_US_sid_67336718_time_5:q39CEBTs5A@us.foxyip.com:7778'
# proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@198.147.25.26:{int(random.randint(10000, 11149))}'
# proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
proxy = random.choice([proxy1, proxy])
tlsV = f'chrome_{random.randint(105, 113)}'
tlsV = 'chrome_112'
session = tls_client.Session(tlsV)
session.proxies = {
'http': proxy,
'https': proxy,
}
# if platform.uname().system == 'Darwin':
# session.proxies = {
# 'http': 'http://127.0.0.1:7890',
# 'https': 'http://127.0.0.1:7890',
# }
# selectId = 'a74b38e7115cf4d1b1f6976c'
c = session.get('https://www.southwest.com/assets/app/scripts/swa-common.js', insecure_skip_verify=True).text
m5 = md5(c)
if m5 != lastHash and usedTime > 5:
lastHash = m5
usedTime = 0
logger.debug('js变化')
token = re.findall('nt"\),\["(.+?)",', c)[0]
# db.token_shape.insert_one({
# '_id': token,
# 'update_time': int(time.time() * 1000)
# })
code = open('src.js', 'r', encoding='utf-8').read()
# code1 = open('js_dom_run.js', 'r', encoding='utf-8').read()
with open('src_run1.js', 'w', encoding='utf-8') as f:
f.write(code + '\n\n' + c)
# with open('js_dom_run1.js', 'w', encoding='utf-8') as f:
# f.write(code1 + '\n\n' + c)
t1 = time.time()
# token = list(db.token_shape.aggregate( [ { '$sample': { 'size': 1 } } ] ))[0]['_id']
# r = requests.get('http://127.0.0.1:5000/getinfo').json()['message']
# r = requests.get('http://127.0.0.1:3001').json()
# p = subprocess.Popen(['node', 'js_dom_run1.js', selectId, '11'], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
# p = subprocess.Popen(['node', 'src_run_chrome_105.js', selectId, '11', token], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
# p = subprocess.Popen(['node', 'src_run_company_chrome.js', selectId, '11', token], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
p = subprocess.Popen(['node', 'src_run1.js', selectId, '11'], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
output, err = p.communicate(timeout=10)
tmp = ''
if p.returncode == 0:
tmp = output.decode().split('\n')[-2]
else:
raise Exception(selectId)
r = json.loads(tmp)
# res = db.env_shape.update_one(
# {'_id': ObjectId(selectId)},
# {"$inc": {"used": 1}}
# )
usedTime += 1
print(r)
headers.update(r)
# headers = r
logger.info(f"success:{success} total:{total} {(time.time() - t1) *1000:.3f}ms {len(headers['ee30zvqlwf-a'])} {selectId} {headers['user-agent']}")
logger.info(f"success:{success} proxy: {proxy} token: {token}")
url = "https://www.southwest.com/api/air-booking/v1/air-booking/page/air/booking/shopping"
data = {
"adultPassengersCount": "1",
"adultsCount": "1",
"departureDate": "2023-12-22",
"departureTimeOfDay": "ALL_DAY",
"destinationAirportCode": "LAX",
"fareType": "USD",
"from": "",
"int": "HOMEQBOMAIR",
"originationAirportCode": "LAS",
"passengerType": "ADULT",
"promoCode": "",
"reset": "true",
"returnDate": "2023-08-24",
"returnTimeOfDay": "ALL_DAY",
"to": "",
"tripType": "roundtrip",
"application": "air-booking",
"site": "southwest"
}
#
# # session = requests.Session()
#
response = session.post(url, headers=headers, json=data, insecure_skip_verify=True)
status_code = response.status_code
# response = requests.post('http://52.52.23.116/tls/forward',
# json=dict(url=url, headers=headers,data=json.dumps(data), method="POST", proxy=proxy, debug=True
# , allow_redirects=True
# ))
# status_code = response.json()['status_code']
logger.info(f'tls:{tlsV} proxy:{proxy} res:: {status_code}')
# total += 1
print(response.text)
if status_code != 403:
# res = db.env_shape.update_one(
# {'_id': ObjectId(selectId)},
# {"$inc": {"success": 1}}
# )
# proxy = requests.post('http://ymx-lcc.unififi.com/proxy/get-proxy', json={
# 'type':'headerB6'
# })
uri = 'http://ymx-lcc.unififi.com/header/add'
# uri = 'http://52.52.23.116/header/add'
# proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
# proxy = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:10042'
# proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
# proxy = f'http://user-uni003-region-us-sessid-${random.randint(1000, 5000)}-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
r = requests.post(uri, json={
'brush_fromto': 'LAS-BOS',
'brush_fromdate': '2023-05-26',
'brush_header': headers,
'brush_proxy': proxy,
'brush_mode': 'shopping',
'brush_name': 'js2',
'brush_type': 'cookieWN',
})
success += 1
logger.success(f'添加成功 {success}')
# time.sleep(3)
except Exception as e:
print(e)
time.sleep(10)
{
"name": "shape-bypass",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "shape-bypass",
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"abab": "^2.0.5",
"acorn": "^8.4.1",
"acorn-globals": "^6.0.0",
"canvas": "^2.11.2",
"cssom": "^0.5.0",
"cssstyle": "^2.3.0",
"data-urls": "^3.0.0",
"decimal.js": "^10.3.1",
"domexception": "^2.0.1",
"escodegen": "^2.0.0",
"express": "^4.18.2",
"fingerprint-generator": "^2.1.37",
"form-data": "^4.0.0",
"ghost-cursor": "^1.1.18",
"html-encoding-sniffer": "^2.0.1",
"http-proxy-agent": "^4.0.1",
"https-proxy-agent": "^5.0.0",
"is-potential-custom-element-name": "^1.0.1",
"isolated-vm": "^4.6.0",
"nwsapi": "^2.2.0",
"parse5": "6.0.1",
"saxes": "^5.0.1",
"superpack": "^2.3.0",
"symbol-tree": "^3.2.4",
"tough-cookie": "^4.0.0",
"w3c-hr-time": "^1.0.2",
"w3c-xmlserializer": "^2.0.0",
"webidl-conversions": "^6.1.0",
"whatwg-encoding": "^1.0.5",
"whatwg-mimetype": "^2.3.0",
"whatwg-url": "^9.0.0",
"ws": "^8.0.0",
"xml-name-validator": "^3.0.0"
}
},
"node_modules/@mapbox/node-pre-gyp": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz",
"integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==",
"dependencies": {
"detect-libc": "^2.0.0",
"https-proxy-agent": "^5.0.0",
"make-dir": "^3.1.0",
"node-fetch": "^2.6.7",
"nopt": "^5.0.0",
"npmlog": "^5.0.1",
"rimraf": "^3.0.2",
"semver": "^7.3.5",
"tar": "^6.1.11"
},
"bin": {
"node-pre-gyp": "bin/node-pre-gyp"
}
},
"node_modules/@sindresorhus/is": {
"version": "4.6.0",
"resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-4.6.0.tgz",
"integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
"engines": {
"node": ">=10"
}
},
"node_modules/@tootallnate/once": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
"integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
"engines": {
"node": ">= 6"
}
},
"node_modules/@types/bezier-js": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@types/bezier-js/-/bezier-js-4.1.0.tgz",
"integrity": "sha512-ElU16s8E6Pr6magp8ihwH1O8pbUJASbMND/qgUc9RsLmP3lMLHiDMRXdjtaObwW5GPtOVYOsXDUIhTIluT+yaw=="
},
"node_modules/abab": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
"integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="
},
"node_modules/abbrev": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"node_modules/accepts": {
"version": "1.3.8",
"resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
"integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"dependencies": {
"mime-types": "~2.1.34",
"negotiator": "0.6.3"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/acorn": {
"version": "8.10.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
"integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
"bin": {
"acorn": "bin/acorn"
},
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/acorn-globals": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
"integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
"dependencies": {
"acorn": "^7.1.1",
"acorn-walk": "^7.1.1"
}
},
"node_modules/acorn-globals/node_modules/acorn": {
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"bin": {
"acorn": "bin/acorn"
},
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/acorn-walk": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
"integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/adm-zip": {
"version": "0.5.10",
"resolved": "https://registry.npmmirror.com/adm-zip/-/adm-zip-0.5.10.tgz",
"integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==",
"engines": {
"node": ">=6.0"
}
},
"node_modules/agent-base": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"dependencies": {
"debug": "4"
},
"engines": {
"node": ">= 6.0.0"
}
},
"node_modules/agent-base/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/agent-base/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/aproba": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
"integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
},
"node_modules/are-we-there-yet": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
"integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
"dependencies": {
"delegates": "^1.0.0",
"readable-stream": "^3.6.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/bezier-js": {
"version": "6.1.4",
"resolved": "https://registry.npmjs.org/bezier-js/-/bezier-js-6.1.4.tgz",
"integrity": "sha512-PA0FW9ZpcHbojUCMu28z9Vg/fNkwTj5YhusSAjHHDfHDGLxJ6YUKrAN2vk1fP2MMOxVw4Oko16FMlRGVBGqLKg==",
"funding": {
"type": "individual",
"url": "https://github.com/Pomax/bezierjs/blob/master/FUNDING.md"
}
},
"node_modules/bl": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"dependencies": {
"buffer": "^5.5.0",
"inherits": "^2.0.4",
"readable-stream": "^3.4.0"
}
},
"node_modules/body-parser": {
"version": "1.20.1",
"resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz",
"integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
"dependencies": {
"bytes": "3.1.2",
"content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
"http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
"qs": "6.11.0",
"raw-body": "2.5.1",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
},
"engines": {
"node": ">= 0.8",
"npm": "1.2.8000 || >= 1.4.16"
}
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/browser-process-hrtime": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
"integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
},
"node_modules/browserslist": {
"version": "4.21.9",
"resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.9.tgz",
"integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==",
"dependencies": {
"caniuse-lite": "^1.0.30001503",
"electron-to-chromium": "^1.4.431",
"node-releases": "^2.0.12",
"update-browserslist-db": "^1.0.11"
},
"bin": {
"browserslist": "cli.js"
},
"engines": {
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
"node_modules/buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
}
},
"node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"dependencies": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
}
},
"node_modules/callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"engines": {
"node": ">=6"
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001517",
"resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz",
"integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA=="
},
"node_modules/canvas": {
"version": "2.11.2",
"resolved": "https://registry.npmmirror.com/canvas/-/canvas-2.11.2.tgz",
"integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==",
"hasInstallScript": true,
"dependencies": {
"@mapbox/node-pre-gyp": "^1.0.0",
"nan": "^2.17.0",
"simple-get": "^3.0.3"
},
"engines": {
"node": ">=6"
}
},
"node_modules/chownr": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
"integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
"engines": {
"node": ">=10"
}
},
"node_modules/color-support": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
"integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
"bin": {
"color-support": "bin.js"
}
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dependencies": {
"delayed-stream": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/console-control-strings": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
},
"node_modules/content-disposition": {
"version": "0.5.4",
"resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz",
"integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
"dependencies": {
"safe-buffer": "5.2.1"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/content-type": {
"version": "1.0.5",
"resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz",
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cookie": {
"version": "0.5.0",
"resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz",
"integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"node_modules/cssom": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
"integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw=="
},
"node_modules/cssstyle": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
"integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
"dependencies": {
"cssom": "~0.3.6"
},
"engines": {
"node": ">=8"
}
},
"node_modules/cssstyle/node_modules/cssom": {
"version": "0.3.8",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
},
"node_modules/data-urls": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
"integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
"dependencies": {
"abab": "^2.0.6",
"whatwg-mimetype": "^3.0.0",
"whatwg-url": "^11.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/data-urls/node_modules/tr46": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
"integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
"dependencies": {
"punycode": "^2.1.1"
},
"engines": {
"node": ">=12"
}
},
"node_modules/data-urls/node_modules/webidl-conversions": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
"integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
"engines": {
"node": ">=12"
}
},
"node_modules/data-urls/node_modules/whatwg-mimetype": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
"integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
"engines": {
"node": ">=12"
}
},
"node_modules/data-urls/node_modules/whatwg-url": {
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
"integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
"dependencies": {
"tr46": "^3.0.0",
"webidl-conversions": "^7.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/decimal.js": {
"version": "10.4.3",
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
"integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
},
"node_modules/decompress-response": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
"integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
"dependencies": {
"mimic-response": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/deep-extend": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/delegates": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
"integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
},
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/destroy": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz",
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
"engines": {
"node": ">= 0.8",
"npm": "1.2.8000 || >= 1.4.16"
}
},
"node_modules/detect-libc": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
"integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
"engines": {
"node": ">=8"
}
},
"node_modules/domexception": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
"integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
"dependencies": {
"webidl-conversions": "^5.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/domexception/node_modules/webidl-conversions": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
"integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==",
"engines": {
"node": ">=8"
}
},
"node_modules/dot-prop": {
"version": "6.0.1",
"resolved": "https://registry.npmmirror.com/dot-prop/-/dot-prop-6.0.1.tgz",
"integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
"dependencies": {
"is-obj": "^2.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/electron-to-chromium": {
"version": "1.4.475",
"resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.475.tgz",
"integrity": "sha512-mTye5u5P98kSJO2n7zYALhpJDmoSQejIGya0iR01GpoRady8eK3bw7YHHnjA1Rfi4ZSLdpuzlAC7Zw+1Zu7Z6A=="
},
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"node_modules/encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dependencies": {
"once": "^1.4.0"
}
},
"node_modules/escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz",
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
"engines": {
"node": ">=6"
}
},
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"node_modules/escodegen": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
"integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
"dependencies": {
"esprima": "^4.0.1",
"estraverse": "^5.2.0",
"esutils": "^2.0.2"
},
"bin": {
"escodegen": "bin/escodegen.js",
"esgenerate": "bin/esgenerate.js"
},
"engines": {
"node": ">=6.0"
},
"optionalDependencies": {
"source-map": "~0.6.1"
}
},
"node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
},
"engines": {
"node": ">=4"
}
},
"node_modules/estraverse": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"engines": {
"node": ">=4.0"
}
},
"node_modules/esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/etag": {
"version": "1.8.1",
"resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/expand-template": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
"engines": {
"node": ">=6"
}
},
"node_modules/express": {
"version": "4.18.2",
"resolved": "https://registry.npmmirror.com/express/-/express-4.18.2.tgz",
"integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.20.1",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.5.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"finalhandler": "1.2.0",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
"qs": "6.11.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "0.18.0",
"serve-static": "1.15.0",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
},
"engines": {
"node": ">= 0.10.0"
}
},
"node_modules/finalhandler": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz",
"integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
"dependencies": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
"statuses": "2.0.1",
"unpipe": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/fingerprint-generator": {
"version": "2.1.37",
"resolved": "https://registry.npmmirror.com/fingerprint-generator/-/fingerprint-generator-2.1.37.tgz",
"integrity": "sha512-8G+LJPxPx6q23mL2xHGvSUbGwHFaIqoPlHvbC+vpHvDcB02fOPZ8WopxYbBvqLtRqnxbVheUPclz8evpII8CiA==",
"dependencies": {
"generative-bayesian-network": "^2.1.37",
"header-generator": "^2.1.37",
"tslib": "^2.4.0"
},
"engines": {
"node": ">=16.0.0"
}
},
"node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
},
"node_modules/fs-minipass": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
"integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
"dependencies": {
"minipass": "^3.0.0"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/fs-minipass/node_modules/minipass": {
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
"integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"node_modules/gauge": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
"integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
"dependencies": {
"aproba": "^1.0.3 || ^2.0.0",
"color-support": "^1.1.2",
"console-control-strings": "^1.0.0",
"has-unicode": "^2.0.1",
"object-assign": "^4.1.1",
"signal-exit": "^3.0.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
"wide-align": "^1.1.2"
},
"engines": {
"node": ">=10"
}
},
"node_modules/generative-bayesian-network": {
"version": "2.1.37",
"resolved": "https://registry.npmmirror.com/generative-bayesian-network/-/generative-bayesian-network-2.1.37.tgz",
"integrity": "sha512-xQRvhqrHH0dOrvIgc73b6WpfbfBpoE4Tl4nP0AUyAHDEqIKUtqWsQNZTO8tLEA16bCMBj3S7t+eDz4Cn+qtaQw==",
"dependencies": {
"adm-zip": "^0.5.9",
"tslib": "^2.4.0"
}
},
"node_modules/get-intrinsic": {
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
"integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"dependencies": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
}
},
"node_modules/ghost-cursor": {
"version": "1.1.18",
"resolved": "https://registry.npmjs.org/ghost-cursor/-/ghost-cursor-1.1.18.tgz",
"integrity": "sha512-fIdA8W3/X6IHGc+lPKYCVE3bUoH44CHbpaVbXaOKgdDvMJa53T0798iik54uc7Dj/iUAeR2Q74vw5J5WpGOwIw==",
"dependencies": {
"@types/bezier-js": "4",
"bezier-js": "^6.1.3"
}
},
"node_modules/github-from-package": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="
},
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
"engines": {
"node": "*"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/has": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"dependencies": {
"function-bind": "^1.1.1"
},
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/has-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz",
"integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/has-symbols": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/has-unicode": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
"integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
},
"node_modules/header-generator": {
"version": "2.1.37",
"resolved": "https://registry.npmmirror.com/header-generator/-/header-generator-2.1.37.tgz",
"integrity": "sha512-cRTnFb98wi3k1+wV/eRg5Ukx4ChWR3ulHOaXbOMUW2MYEdmxXxni6D2oiSfe991WeZcVbflmbQjRJXdkBzE/2A==",
"dependencies": {
"browserslist": "^4.21.1",
"generative-bayesian-network": "^2.1.37",
"ow": "^0.28.1",
"tslib": "^2.4.0"
},
"engines": {
"node": ">=16.0.0"
}
},
"node_modules/html-encoding-sniffer": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
"integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
"dependencies": {
"whatwg-encoding": "^1.0.5"
},
"engines": {
"node": ">=10"
}
},
"node_modules/http-errors": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz",
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"dependencies": {
"depd": "2.0.0",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"toidentifier": "1.0.1"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/http-proxy-agent": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
"integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
"dependencies": {
"@tootallnate/once": "1",
"agent-base": "6",
"debug": "4"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/http-proxy-agent/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/http-proxy-agent/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/https-proxy-agent": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
"integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"dependencies": {
"agent-base": "6",
"debug": "4"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/https-proxy-agent/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/https-proxy-agent/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/ini": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
"node_modules/ipaddr.js": {
"version": "1.9.1",
"resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"engines": {
"node": ">= 0.10"
}
},
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"engines": {
"node": ">=8"
}
},
"node_modules/is-obj": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/is-obj/-/is-obj-2.0.0.tgz",
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
"engines": {
"node": ">=8"
}
},
"node_modules/is-potential-custom-element-name": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
"integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
},
"node_modules/isolated-vm": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/isolated-vm/-/isolated-vm-4.6.0.tgz",
"integrity": "sha512-MEnfC/54q5PED3VJ9UJYJPOlU6mYFHS3ivR9E8yeNNBEFRFUNBnY0xO4Rj3D/SOtFKPNmsQp9NWUYSKZqAoZiA==",
"hasInstallScript": true,
"dependencies": {
"prebuild-install": "^7.1.1"
},
"engines": {
"node": ">=16.0.0"
}
},
"node_modules/lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
},
"node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dependencies": {
"semver": "^6.0.0"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/make-dir/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
},
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz",
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"bin": {
"mime": "cli.js"
},
"engines": {
"node": ">=4"
}
},
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dependencies": {
"mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mimic-response": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
"integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/minimist": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/minipass": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
"integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/minizlib": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
"integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
"dependencies": {
"minipass": "^3.0.0",
"yallist": "^4.0.0"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/minizlib/node_modules/minipass": {
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
"integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"bin": {
"mkdirp": "bin/cmd.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/mkdirp-classic": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
},
"node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/nan": {
"version": "2.17.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
"integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ=="
},
"node_modules/napi-build-utils": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
},
"node_modules/negotiator": {
"version": "0.6.3",
"resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/node-abi": {
"version": "3.47.0",
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.47.0.tgz",
"integrity": "sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==",
"dependencies": {
"semver": "^7.3.5"
},
"engines": {
"node": ">=10"
}
},
"node_modules/node-fetch": {
"version": "2.6.12",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz",
"integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==",
"dependencies": {
"whatwg-url": "^5.0.0"
},
"engines": {
"node": "4.x || >=6.0.0"
},
"peerDependencies": {
"encoding": "^0.1.0"
},
"peerDependenciesMeta": {
"encoding": {
"optional": true
}
}
},
"node_modules/node-fetch/node_modules/tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/node-fetch/node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"node_modules/node-fetch/node_modules/whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
}
},
"node_modules/node-releases": {
"version": "2.0.13",
"resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.13.tgz",
"integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ=="
},
"node_modules/nopt": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
"integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
"dependencies": {
"abbrev": "1"
},
"bin": {
"nopt": "bin/nopt.js"
},
"engines": {
"node": ">=6"
}
},
"node_modules/npmlog": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
"integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
"dependencies": {
"are-we-there-yet": "^2.0.0",
"console-control-strings": "^1.1.0",
"gauge": "^3.0.0",
"set-blocking": "^2.0.0"
}
},
"node_modules/nwsapi": {
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz",
"integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ=="
},
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/object-inspect": {
"version": "1.12.3",
"resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz",
"integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
},
"node_modules/on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"dependencies": {
"ee-first": "1.1.1"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dependencies": {
"wrappy": "1"
}
},
"node_modules/ow": {
"version": "0.28.2",
"resolved": "https://registry.npmmirror.com/ow/-/ow-0.28.2.tgz",
"integrity": "sha512-dD4UpyBh/9m4X2NVjA+73/ZPBRF+uF4zIMFvvQsabMiEK8x41L3rQ8EENOi35kyyoaJwNxEeJcP6Fj1H4U409Q==",
"dependencies": {
"@sindresorhus/is": "^4.2.0",
"callsites": "^3.1.0",
"dot-prop": "^6.0.1",
"lodash.isequal": "^4.5.0",
"vali-date": "^1.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/parse5": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
"integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
},
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
},
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
},
"node_modules/prebuild-install": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
"integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
"dependencies": {
"detect-libc": "^2.0.0",
"expand-template": "^2.0.3",
"github-from-package": "0.0.0",
"minimist": "^1.2.3",
"mkdirp-classic": "^0.5.3",
"napi-build-utils": "^1.0.1",
"node-abi": "^3.3.0",
"pump": "^3.0.0",
"rc": "^1.2.7",
"simple-get": "^4.0.0",
"tar-fs": "^2.0.0",
"tunnel-agent": "^0.6.0"
},
"bin": {
"prebuild-install": "bin.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/prebuild-install/node_modules/decompress-response": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
"dependencies": {
"mimic-response": "^3.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/prebuild-install/node_modules/mimic-response": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/prebuild-install/node_modules/simple-get": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"dependencies": {
"decompress-response": "^6.0.0",
"once": "^1.3.1",
"simple-concat": "^1.0.0"
}
},
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz",
"integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"dependencies": {
"forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
},
"engines": {
"node": ">= 0.10"
}
},
"node_modules/psl": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
"integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
},
"node_modules/pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"dependencies": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
}
},
"node_modules/punycode": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
"engines": {
"node": ">=6"
}
},
"node_modules/qs": {
"version": "6.11.0",
"resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz",
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"dependencies": {
"side-channel": "^1.0.4"
},
"engines": {
"node": ">=0.6"
}
},
"node_modules/querystringify": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
"integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
},
"node_modules/range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/raw-body": {
"version": "2.5.1",
"resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz",
"integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"dependencies": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"dependencies": {
"deep-extend": "^0.6.0",
"ini": "~1.3.0",
"minimist": "^1.2.0",
"strip-json-comments": "~2.0.1"
},
"bin": {
"rc": "cli.js"
}
},
"node_modules/readable-stream": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
},
"node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/saxes": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
"integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
"dependencies": {
"xmlchars": "^2.2.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/semver": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dependencies": {
"lru-cache": "^6.0.0"
},
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/send": {
"version": "0.18.0",
"resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz",
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"dependencies": {
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"mime": "1.6.0",
"ms": "2.1.3",
"on-finished": "2.4.1",
"range-parser": "~1.2.1",
"statuses": "2.0.1"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/send/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/serve-static": {
"version": "1.15.0",
"resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz",
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
"dependencies": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
"send": "0.18.0"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
},
"node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz",
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"dependencies": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
"object-inspect": "^1.9.0"
}
},
"node_modules/signal-exit": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"node_modules/simple-concat": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/simple-get": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
"integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
"dependencies": {
"decompress-response": "^4.2.0",
"once": "^1.3.1",
"simple-concat": "^1.0.0"
}
},
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"optional": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/statuses": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dependencies": {
"safe-buffer": "~5.2.0"
}
},
"node_modules/string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dependencies": {
"ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/superpack": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/superpack/-/superpack-2.3.0.tgz",
"integrity": "sha512-87KHgZCICmJCy82Bu2XZE0soi8qRAytnlqS+mKT8KxyigAIlXI7KiMD/RRiIYnOglEm98AHRaJA0VTlQZgEuEg=="
},
"node_modules/symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
},
"node_modules/tar": {
"version": "6.1.15",
"resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz",
"integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==",
"dependencies": {
"chownr": "^2.0.0",
"fs-minipass": "^2.0.0",
"minipass": "^5.0.0",
"minizlib": "^2.1.1",
"mkdirp": "^1.0.3",
"yallist": "^4.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/tar-fs": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
"dependencies": {
"chownr": "^1.1.1",
"mkdirp-classic": "^0.5.2",
"pump": "^3.0.0",
"tar-stream": "^2.1.4"
}
},
"node_modules/tar-fs/node_modules/chownr": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
},
"node_modules/tar-stream": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
"dependencies": {
"bl": "^4.0.3",
"end-of-stream": "^1.4.1",
"fs-constants": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^3.1.1"
},
"engines": {
"node": ">=6"
}
},
"node_modules/toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"engines": {
"node": ">=0.6"
}
},
"node_modules/tough-cookie": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
"integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
"dependencies": {
"psl": "^1.1.33",
"punycode": "^2.1.1",
"universalify": "^0.2.0",
"url-parse": "^1.5.3"
},
"engines": {
"node": ">=6"
}
},
"node_modules/tr46": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
"integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
"dependencies": {
"punycode": "^2.1.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/tslib": {
"version": "2.6.1",
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.1.tgz",
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
},
"node_modules/tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
"dependencies": {
"safe-buffer": "^5.0.1"
},
"engines": {
"node": "*"
}
},
"node_modules/type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz",
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"dependencies": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/universalify": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
"integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
"engines": {
"node": ">= 4.0.0"
}
},
"node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/update-browserslist-db": {
"version": "1.0.11",
"resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
"integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
"dependencies": {
"escalade": "^3.1.1",
"picocolors": "^1.0.0"
},
"bin": {
"update-browserslist-db": "cli.js"
},
"peerDependencies": {
"browserslist": ">= 4.21.0"
}
},
"node_modules/url-parse": {
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
"integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
"dependencies": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"node_modules/utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/vali-date": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/vali-date/-/vali-date-1.0.0.tgz",
"integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/w3c-hr-time": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
"integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
"deprecated": "Use your platform's native performance.now() and performance.timeOrigin.",
"dependencies": {
"browser-process-hrtime": "^1.0.0"
}
},
"node_modules/w3c-xmlserializer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
"integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
"dependencies": {
"xml-name-validator": "^3.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/webidl-conversions": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
"integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
"engines": {
"node": ">=10.4"
}
},
"node_modules/whatwg-encoding": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
"integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
"dependencies": {
"iconv-lite": "0.4.24"
}
},
"node_modules/whatwg-mimetype": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
"integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
},
"node_modules/whatwg-url": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz",
"integrity": "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==",
"dependencies": {
"tr46": "^2.1.0",
"webidl-conversions": "^6.1.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/wide-align": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
"integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
"dependencies": {
"string-width": "^1.0.2 || 2 || 3 || 4"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"node_modules/ws": {
"version": "8.13.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
"integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/xml-name-validator": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
"integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="
},
"node_modules/xmlchars": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
},
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}
}
}
{
"name": "shape-bypass",
"version": "1.0.0",
"description": "",
"main": "ast.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"abab": "^2.0.5",
"acorn": "^8.4.1",
"acorn-globals": "^6.0.0",
"canvas": "^2.11.2",
"cssom": "^0.5.0",
"cssstyle": "^2.3.0",
"data-urls": "^3.0.0",
"decimal.js": "^10.3.1",
"domexception": "^2.0.1",
"escodegen": "^2.0.0",
"express": "^4.18.2",
"fingerprint-generator": "^2.1.37",
"form-data": "^4.0.0",
"ghost-cursor": "^1.1.18",
"html-encoding-sniffer": "^2.0.1",
"http-proxy-agent": "^4.0.1",
"https-proxy-agent": "^5.0.0",
"is-potential-custom-element-name": "^1.0.1",
"isolated-vm": "^4.6.0",
"nwsapi": "^2.2.0",
"parse5": "6.0.1",
"saxes": "^5.0.1",
"superpack": "^2.3.0",
"symbol-tree": "^3.2.4",
"tough-cookie": "^4.0.0",
"w3c-hr-time": "^1.0.2",
"w3c-xmlserializer": "^2.0.0",
"webidl-conversions": "^6.1.0",
"whatwg-encoding": "^1.0.5",
"whatwg-mimetype": "^2.3.0",
"whatwg-url": "^9.0.0",
"ws": "^8.0.0",
"xml-name-validator": "^3.0.0"
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment