Compare commits
No commits in common. "f8ebd209cfd1312ad8e700d6883c4d65ac9b461c" and "cf02c3a769c10fda19daf37ba43b90ad50bb6056" have entirely different histories.
f8ebd209cf
...
cf02c3a769
@ -7,7 +7,7 @@ from chalicelib.api import accounts, users, idps, root
|
|||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
CORS(app)
|
CORS(app)
|
||||||
limiter = Limiter(util.limit_by_user, app=app, default_limits=['20 per minute'])
|
limiter = Limiter(app, default_limits=['20 per minute'], key_func=util.limit_by_user)
|
||||||
|
|
||||||
@app.errorhandler(werkzeug.exceptions.TooManyRequests)
|
@app.errorhandler(werkzeug.exceptions.TooManyRequests)
|
||||||
def handle_429(e):
|
def handle_429(e):
|
||||||
@ -145,4 +145,4 @@ def idp_oauth_logs_route(id):
|
|||||||
|
|
||||||
@app.route('/root/users', methods=['GET'])
|
@app.route('/root/users', methods=['GET'])
|
||||||
def root_users():
|
def root_users():
|
||||||
return util.jsonify(root.get_users(util.get_user()))
|
return util.jsonify(root.get_users(util.get_user()))
|
@ -29,7 +29,7 @@ def create(data):
|
|||||||
result = db.users.insert_one(new_user)
|
result = db.users.insert_one(new_user)
|
||||||
new_user['_id'] = result.inserted_id
|
new_user['_id'] = result.inserted_id
|
||||||
if len(idps_to_claim):
|
if len(idps_to_claim):
|
||||||
db.idps.update_many({'_id': {'$in': idps_to_claim}, 'user': {'$exists': False}}, {'$set': {'user': new_user['_id']}}, multi=True)
|
db.idps.update({'_id': {'$in': idps_to_claim}, 'user': {'$exists': False}}, {'$set': {'user': new_user['_id']}}, multi=True)
|
||||||
mail.send({
|
mail.send({
|
||||||
'to': os.environ.get('ADMIN_EMAIL'),
|
'to': os.environ.get('ADMIN_EMAIL'),
|
||||||
'subject': '{} signup'.format(os.environ.get('APP_NAME')),
|
'subject': '{} signup'.format(os.environ.get('APP_NAME')),
|
||||||
@ -48,7 +48,7 @@ def enrol(data):
|
|||||||
id = jwt.decode(data['token'], jwt_secret)['sub']
|
id = jwt.decode(data['token'], jwt_secret)['sub']
|
||||||
user = db.users.find_one({'_id': ObjectId(id), 'tokens.enrolment': token})
|
user = db.users.find_one({'_id': ObjectId(id), 'tokens.enrolment': token})
|
||||||
hashed_password = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt())
|
hashed_password = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt())
|
||||||
db.users.update_one({'_id': user['_id']}, {'$set': {'password': hashed_password}, '$unset': {'tokens.enrolment': ''}})
|
db.users.update({'_id': user['_id']}, {'$set': {'password': hashed_password}, '$unset': {'tokens.enrolment': ''}})
|
||||||
return {'token': generate_access_token(user['_id'])}
|
return {'token': generate_access_token(user['_id'])}
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e)
|
print(e)
|
||||||
@ -65,7 +65,7 @@ def login(data):
|
|||||||
try:
|
try:
|
||||||
if user and bcrypt.checkpw(password.encode("utf-8"), user['password']):
|
if user and bcrypt.checkpw(password.encode("utf-8"), user['password']):
|
||||||
if len(idps_to_claim):
|
if len(idps_to_claim):
|
||||||
db.idps.update_many({'_id': {'$in': idps_to_claim}, 'user': {'$exists': False}}, {'$set': {'user': user['_id']}}, multi=True)
|
db.idps.update({'_id': {'$in': idps_to_claim}, 'user': {'$exists': False}}, {'$set': {'user': user['_id']}}, multi=True)
|
||||||
return {'token': generate_access_token(user['_id'])}
|
return {'token': generate_access_token(user['_id'])}
|
||||||
else:
|
else:
|
||||||
raise errors.BadRequest('Your email or password is incorrect.')
|
raise errors.BadRequest('Your email or password is incorrect.')
|
||||||
@ -75,7 +75,7 @@ def login(data):
|
|||||||
|
|
||||||
def logout(user):
|
def logout(user):
|
||||||
db = database.get_db()
|
db = database.get_db()
|
||||||
db.users.update_one({'_id': user['_id']}, {'$pull': {'tokens.login': user['currentToken']}})
|
db.users.update({'_id': user['_id']}, {'$pull': {'tokens.login': user['currentToken']}})
|
||||||
return {'loggedOut': True}
|
return {'loggedOut': True}
|
||||||
|
|
||||||
def update_password(user, data):
|
def update_password(user, data):
|
||||||
@ -100,7 +100,7 @@ def update_password(user, data):
|
|||||||
if not user: raise errors.BadRequest('Unable to change your password')
|
if not user: raise errors.BadRequest('Unable to change your password')
|
||||||
|
|
||||||
hashed_password = bcrypt.hashpw(data['newPassword'].encode("utf-8"), bcrypt.gensalt())
|
hashed_password = bcrypt.hashpw(data['newPassword'].encode("utf-8"), bcrypt.gensalt())
|
||||||
db.users.update_one({'_id': user['_id']}, {'$set': {'password': hashed_password}, '$unset': {'tokens.passwordReset': ''}})
|
db.users.update({'_id': user['_id']}, {'$set': {'password': hashed_password}, '$unset': {'tokens.passwordReset': ''}})
|
||||||
return {'passwordUpdated': True}
|
return {'passwordUpdated': True}
|
||||||
|
|
||||||
def delete(user, password):
|
def delete(user, password):
|
||||||
@ -108,11 +108,11 @@ def delete(user, password):
|
|||||||
raise errors.BadRequest('Incorrect password')
|
raise errors.BadRequest('Incorrect password')
|
||||||
db = database.get_db()
|
db = database.get_db()
|
||||||
for idp in db.idps.find({'user': user['_id']}):
|
for idp in db.idps.find({'user': user['_id']}):
|
||||||
db.idpSps.delete_many({'idp': idp['_id']})
|
db.idpSps.remove({'idp': idp['_id']})
|
||||||
db.idpUsers.delete_many({'idp': idp['_id']})
|
db.idpUsers.remove({'idp': idp['_id']})
|
||||||
db.idpAttributes.delete_many({'idp': idp['_id']})
|
db.idpAttributes.remove({'idp': idp['_id']})
|
||||||
db.idps.delete_many({'user': user['_id']})
|
db.idps.remove({'user': user['_id']})
|
||||||
db.users.delete_one({'_id': user['_id']})
|
db.users.remove({'_id': user['_id']})
|
||||||
return {'deletedUser': user['_id']}
|
return {'deletedUser': user['_id']}
|
||||||
|
|
||||||
def generate_access_token(user_id):
|
def generate_access_token(user_id):
|
||||||
@ -123,7 +123,7 @@ def generate_access_token(user_id):
|
|||||||
}
|
}
|
||||||
token = jwt.encode(payload, jwt_secret, algorithm='HS256')
|
token = jwt.encode(payload, jwt_secret, algorithm='HS256')
|
||||||
db = database.get_db()
|
db = database.get_db()
|
||||||
db.users.update_one({'_id': user_id}, {'$addToSet': {'tokens.login': token}})
|
db.users.update({'_id': user_id}, {'$addToSet': {'tokens.login': token}})
|
||||||
return token
|
return token
|
||||||
|
|
||||||
def get_user_context(token):
|
def get_user_context(token):
|
||||||
@ -134,7 +134,7 @@ def get_user_context(token):
|
|||||||
if id:
|
if id:
|
||||||
db = database.get_db()
|
db = database.get_db()
|
||||||
user = db.users.find_one({'_id': ObjectId(id), 'tokens.login': token})
|
user = db.users.find_one({'_id': ObjectId(id), 'tokens.login': token})
|
||||||
db.users.update_one({'_id': user['_id']}, {'$set': {'lastSeenAt': datetime.datetime.now()}})
|
db.users.update({'_id': user['_id']}, {'$set': {'lastSeenAt': datetime.datetime.now()}})
|
||||||
user['currentToken'] = token
|
user['currentToken'] = token
|
||||||
return user
|
return user
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -158,5 +158,5 @@ def reset_password(data):
|
|||||||
'subject': 'Reset your password',
|
'subject': 'Reset your password',
|
||||||
'text': 'Dear {0},\n\nA password reset email was recently requested for your SSO Tools account. If this was you and you want to continue, please follow the link below:\n\n{1}\n\nThis link will expire after 24 hours.\n\nIf this was not you, then someone may be trying to gain access to your account. We recommend using a strong and unique password for your account.'.format(user['firstName'], 'https://sso.tools/password/reset?token=' + token)
|
'text': 'Dear {0},\n\nA password reset email was recently requested for your SSO Tools account. If this was you and you want to continue, please follow the link below:\n\n{1}\n\nThis link will expire after 24 hours.\n\nIf this was not you, then someone may be trying to gain access to your account. We recommend using a strong and unique password for your account.'.format(user['firstName'], 'https://sso.tools/password/reset?token=' + token)
|
||||||
})
|
})
|
||||||
db.users.update_one({'_id': user['_id']}, {'$set': {'tokens.passwordReset': token}})
|
db.users.update({'_id': user['_id']}, {'$set': {'tokens.passwordReset': token}})
|
||||||
return {'passwordResetEmailSent': True}
|
return {'passwordResetEmailSent': True}
|
||||||
|
@ -104,7 +104,7 @@ def delete(user, id):
|
|||||||
idp = db.idps.find_one(id)
|
idp = db.idps.find_one(id)
|
||||||
if not idp: return errors.NotFound('IDP not found')
|
if not idp: return errors.NotFound('IDP not found')
|
||||||
if not can_manage_idp(user, idp): raise errors.Forbidden('You can\'t delete this IdP')
|
if not can_manage_idp(user, idp): raise errors.Forbidden('You can\'t delete this IdP')
|
||||||
db.idps.delete_one({'_id': id })
|
db.idps.remove({'_id': id })
|
||||||
return {'deletedIDP': id}
|
return {'deletedIDP': id}
|
||||||
|
|
||||||
|
|
||||||
@ -153,7 +153,7 @@ def update_sp(user, id, sp_id, data):
|
|||||||
'logoutCallbackUrl': data.get('logoutCallbackUrl'),
|
'logoutCallbackUrl': data.get('logoutCallbackUrl'),
|
||||||
'oauth2RedirectUri': data.get('oauth2RedirectUri'),
|
'oauth2RedirectUri': data.get('oauth2RedirectUri'),
|
||||||
}
|
}
|
||||||
db.idpSps.update_one({'_id': sp_id}, {'$set': update_data})
|
db.idpSps.update({'_id': sp_id}, {'$set': update_data})
|
||||||
return db.idpSps.find_one({'_id': sp_id}, {'name': 1, 'entityId': 1, 'serviceUrl': 1, 'callbackUrl': 1, 'logoutUrl': 1, 'logoutCallbackUrl': 1})
|
return db.idpSps.find_one({'_id': sp_id}, {'name': 1, 'entityId': 1, 'serviceUrl': 1, 'callbackUrl': 1, 'logoutUrl': 1, 'logoutCallbackUrl': 1})
|
||||||
|
|
||||||
def get_sps(user, id):
|
def get_sps(user, id):
|
||||||
@ -178,7 +178,7 @@ def delete_sp(user, id, sp_id):
|
|||||||
if not idp: return errors.NotFound('IDP not found')
|
if not idp: return errors.NotFound('IDP not found')
|
||||||
if not can_manage_idp(user, idp): raise errors.Forbidden('You can\'t update this IdP')
|
if not can_manage_idp(user, idp): raise errors.Forbidden('You can\'t update this IdP')
|
||||||
|
|
||||||
db.idpSps.delete_one({'_id': sp_id})
|
db.idpSps.remove({'_id': sp_id})
|
||||||
return {'deletedIDPSP': sp_id}
|
return {'deletedIDPSP': sp_id}
|
||||||
|
|
||||||
|
|
||||||
@ -226,7 +226,7 @@ def update_user(user, id, user_id, data):
|
|||||||
if data.get('password'):
|
if data.get('password'):
|
||||||
hashed_password = bcrypt.hashpw(data['password'].encode("utf-8"), bcrypt.gensalt())
|
hashed_password = bcrypt.hashpw(data['password'].encode("utf-8"), bcrypt.gensalt())
|
||||||
update_data['password'] = hashed_password
|
update_data['password'] = hashed_password
|
||||||
db.idpUsers.update_one({'_id': user_id}, {'$set': update_data})
|
db.idpUsers.update({'_id': user_id}, {'$set': update_data})
|
||||||
return db.idpUsers.find_one({'_id': user_id}, {'firstName': 1, 'lastName': 1, 'email': 1, 'attributes': 1})
|
return db.idpUsers.find_one({'_id': user_id}, {'firstName': 1, 'lastName': 1, 'email': 1, 'attributes': 1})
|
||||||
|
|
||||||
def get_users(user, id):
|
def get_users(user, id):
|
||||||
@ -249,7 +249,7 @@ def delete_user(user, id, user_id):
|
|||||||
if not idp: return errors.NotFound('IDP not found')
|
if not idp: return errors.NotFound('IDP not found')
|
||||||
if not can_manage_idp(user, idp): raise errors.Forbidden('You can\'t update this IdP')
|
if not can_manage_idp(user, idp): raise errors.Forbidden('You can\'t update this IdP')
|
||||||
|
|
||||||
db.idpUsers.delete_one({'_id': user_id})
|
db.idpUsers.remove({'_id': user_id})
|
||||||
return {'deletedUser': user_id}
|
return {'deletedUser': user_id}
|
||||||
|
|
||||||
|
|
||||||
@ -289,7 +289,7 @@ def update_attribute(user, id, attr_id, data):
|
|||||||
'defaultValue': data.get('defaultValue', existing.get('defaultValue')),
|
'defaultValue': data.get('defaultValue', existing.get('defaultValue')),
|
||||||
'samlMapping': data.get('samlMapping', existing.get('samlMapping')),
|
'samlMapping': data.get('samlMapping', existing.get('samlMapping')),
|
||||||
}
|
}
|
||||||
db.idpAttributes.update_one({'_id': attr_id}, {'$set': update_data})
|
db.idpAttributes.update({'_id': attr_id}, {'$set': update_data})
|
||||||
return db.idpAttributes.find_one({'_id': attr_id})
|
return db.idpAttributes.find_one({'_id': attr_id})
|
||||||
|
|
||||||
def get_attributes(user, id):
|
def get_attributes(user, id):
|
||||||
@ -312,7 +312,7 @@ def delete_attribute(user, id, attr_id):
|
|||||||
if not idp: return errors.NotFound('IDP not found')
|
if not idp: return errors.NotFound('IDP not found')
|
||||||
if not can_manage_idp(user, idp): raise errors.Forbidden('You can\'t update this IdP')
|
if not can_manage_idp(user, idp): raise errors.Forbidden('You can\'t update this IdP')
|
||||||
|
|
||||||
db.idpAttributes.delete_one({'_id': attr_id})
|
db.idpAttributes.remove({'_id': attr_id})
|
||||||
return {'deletedAttribute': attr_id}
|
return {'deletedAttribute': attr_id}
|
||||||
|
|
||||||
def get_logs(user, id):
|
def get_logs(user, id):
|
||||||
@ -345,4 +345,4 @@ def get_oauth_logs(user, id):
|
|||||||
if log['sp'] == sp['_id']:
|
if log['sp'] == sp['_id']:
|
||||||
log['spName'] = sp['name']
|
log['spName'] = sp['name']
|
||||||
break
|
break
|
||||||
return {'logs': logs}
|
return {'logs': logs}
|
@ -42,5 +42,5 @@ def update(user, id, data):
|
|||||||
if 'firstName' in data: update['firstName'] = data['firstName']
|
if 'firstName' in data: update['firstName'] = data['firstName']
|
||||||
if 'lastName' in data: update['lastName'] = data['lastName']
|
if 'lastName' in data: update['lastName'] = data['lastName']
|
||||||
if update:
|
if update:
|
||||||
db.users.update_one({'_id': ObjectId(id)}, {'$set': update})
|
db.users.update({'_id': ObjectId(id)}, {'$set': update})
|
||||||
return get(user, id)
|
return get(user, id)
|
||||||
|
@ -5,6 +5,6 @@ db = None
|
|||||||
|
|
||||||
def get_db():
|
def get_db():
|
||||||
global db
|
global db
|
||||||
if db is None:
|
if not db:
|
||||||
db = MongoClient(os.environ.get('MONGO_URL'))[os.environ.get('MONGO_DATABASE')]
|
db = MongoClient(os.environ.get('MONGO_URL'))[os.environ.get('MONGO_DATABASE')]
|
||||||
return db
|
return db
|
||||||
|
1280
api/poetry.lock
generated
1280
api/poetry.lock
generated
File diff suppressed because it is too large
Load Diff
@ -6,17 +6,17 @@ authors = ["Will Webberley <will@sso.tools>"]
|
|||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
python = "^3.9"
|
python = "^3.9"
|
||||||
Flask = "^3.0.3"
|
Flask = "^2.1.1"
|
||||||
gunicorn = "^23.0.0"
|
gunicorn = "^20.1.0"
|
||||||
bcrypt = "^4.2.0"
|
bcrypt = "^3.2.0"
|
||||||
dnspython = "^2.6.1"
|
dnspython = "^2.1.0"
|
||||||
PyJWT = "^2.9.0"
|
PyJWT = "^2.0.1"
|
||||||
pymongo = "^4.10.1"
|
pymongo = "^3.11.3"
|
||||||
pyOpenSSL = "^24.2.1"
|
pyOpenSSL = "^20.0.1"
|
||||||
requests = "^2.32.3"
|
requests = "^2.27.1"
|
||||||
Flask-Cors = "^5.0.0"
|
Flask-Cors = "^3.0.10"
|
||||||
Werkzeug = "^3.0.4"
|
Werkzeug = "^2.1.1"
|
||||||
Flask-Limiter = "^3.8.0"
|
Flask-Limiter = "^2.4.5"
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM node:20
|
FROM node:19
|
||||||
|
|
||||||
# Create app directory
|
# Create app directory
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
@ -21,9 +21,9 @@ source envfile
|
|||||||
Then you can run the service:
|
Then you can run the service:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
yarn start
|
node index
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note:** The service expects to be able to connect to a local MongoDB running on port 27017.
|
**Note:** The service expects to be able to connect to a local MongoDB running on port 27017.
|
||||||
|
|
||||||
Once running, the service is available via a web browser on port 6001.
|
Once running, the service is available via a web browser on port 6001.
|
18
idp/idp.js
18
idp/idp.js
@ -204,19 +204,11 @@ exports.signDocument = function(token, reference, options) {
|
|||||||
options.digestAlgorithm = options.digestAlgorithm || 'sha256';
|
options.digestAlgorithm = options.digestAlgorithm || 'sha256';
|
||||||
token = removeWhitespace(token);
|
token = removeWhitespace(token);
|
||||||
var cert = pemToCert(options.cert);
|
var cert = pemToCert(options.cert);
|
||||||
var sig = new SignedXml({
|
var sig = new SignedXml(null, { signatureAlgorithm: algorithms.signature[options.signatureAlgorithm], idAttribute: 'ID' });
|
||||||
signatureAlgorithm: algorithms.signature[options.signatureAlgorithm],
|
sig.signingKey = options.key;
|
||||||
digestAlgorithm: algorithms.digest[options.digestAlgorithm],
|
sig.addReference(reference,
|
||||||
canonicalizationAlgorithm: 'http://www.w3.org/2001/10/xml-exc-c14n#',
|
["http://www.w3.org/2000/09/xmldsig#enveloped-signature", "http://www.w3.org/2001/10/xml-exc-c14n#"],
|
||||||
idAttribute: 'ID',
|
algorithms.digest[options.digestAlgorithm]);
|
||||||
privateKey: options.key
|
|
||||||
});
|
|
||||||
//sig.signingKey = options.key;
|
|
||||||
sig.addReference({
|
|
||||||
xpath: reference,
|
|
||||||
transforms: ["http://www.w3.org/2000/09/xmldsig#enveloped-signature", "http://www.w3.org/2001/10/xml-exc-c14n#"],
|
|
||||||
digestAlgorithm: algorithms.digest[options.digestAlgorithm]
|
|
||||||
});
|
|
||||||
sig.keyInfoProvider = {
|
sig.keyInfoProvider = {
|
||||||
getKeyInfo: function (key, prefix) {
|
getKeyInfo: function (key, prefix) {
|
||||||
return '<'+prefix+':X509Data><'+prefix+':X509Certificate>' + cert + '</'+prefix+':X509Certificate></'+prefix+':X509Data>';
|
return '<'+prefix+':X509Data><'+prefix+':X509Certificate>' + cert + '</'+prefix+':X509Certificate></'+prefix+':X509Data>';
|
||||||
|
21
idp/index.js
21
idp/index.js
@ -1,7 +1,7 @@
|
|||||||
const express = require('express')
|
const express = require('express')
|
||||||
const { ObjectId } = require('mongodb'); // or ObjectID
|
const { ObjectId } = require('mongodb'); // or ObjectID
|
||||||
const bcrypt = require('bcryptjs');
|
const bcrypt = require('bcryptjs');
|
||||||
const { v4: uuidv4 } = require('uuid');
|
const uuidv4 = require('uuid/v4');
|
||||||
const crypto = require('crypto');
|
const crypto = require('crypto');
|
||||||
const cookieParser = require('cookie-parser')
|
const cookieParser = require('cookie-parser')
|
||||||
const bodyParser = require('body-parser');
|
const bodyParser = require('body-parser');
|
||||||
@ -10,10 +10,7 @@ const jwt = require('jsonwebtoken');
|
|||||||
const database = require('./database.js');
|
const database = require('./database.js');
|
||||||
const idp = require('./idp.js');
|
const idp = require('./idp.js');
|
||||||
|
|
||||||
const JWT_SECRET = process.env.JWT_SECRET;
|
JWT_SECRET = process.env.JWT_SECRET;
|
||||||
const APP_URL = 'https://sso.tools'
|
|
||||||
const SERVICE_URL = 'https://idp.sso.tools'
|
|
||||||
const SESSION_KEY = 'sso_tools_session'
|
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
app.use(cookieParser());
|
app.use(cookieParser());
|
||||||
@ -30,7 +27,7 @@ function pageTemplate(content) {
|
|||||||
return `<!DOCTYPE html><html><head>
|
return `<!DOCTYPE html><html><head>
|
||||||
<title>SSO Tools IDP</title>
|
<title>SSO Tools IDP</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<link rel="icon" href="${APP_URL}/icon.png">
|
<link rel="icon" href="https://sso.tools/icon.png">
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
|
||||||
</head><body> <div class="container">${content}</div></body></html>`;
|
</head><body> <div class="container">${content}</div></body></html>`;
|
||||||
@ -123,7 +120,7 @@ async function sendAssertion(res, user, requestId, thisIdp, thisSp, sessionId, l
|
|||||||
const rawAssertion = {
|
const rawAssertion = {
|
||||||
key: thisIdp.saml.privateKey,
|
key: thisIdp.saml.privateKey,
|
||||||
cert: thisIdp.saml.certificate,
|
cert: thisIdp.saml.certificate,
|
||||||
issuer: `${SERVICE_URL}/${thisIdp.code}`,
|
issuer: `https://idp.sso.tools/${thisIdp.code}`,
|
||||||
recipient: thisSp.recipient || thisSp.callbackUrl,
|
recipient: thisSp.recipient || thisSp.callbackUrl,
|
||||||
audiences: thisSp.entityId,
|
audiences: thisSp.entityId,
|
||||||
inResponseTo: requestId,
|
inResponseTo: requestId,
|
||||||
@ -131,13 +128,13 @@ async function sendAssertion(res, user, requestId, thisIdp, thisSp, sessionId, l
|
|||||||
nameIdentifierFormat: 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
|
nameIdentifierFormat: 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
|
||||||
nameIdentifier: user.email,
|
nameIdentifier: user.email,
|
||||||
sessionExpiration: new Date(Date.now() + parseInt(10000) * 1000 * 60).toISOString(),
|
sessionExpiration: new Date(Date.now() + parseInt(10000) * 1000 * 60).toISOString(),
|
||||||
sessionIndex: (SESSION_KEY + (Math.random() * 10000000)).replace('.', '_'),
|
sessionIndex: ('sso_tools_session' + (Math.random() * 10000000)).replace('.', '_'),
|
||||||
lifetimeInSeconds: 600,
|
lifetimeInSeconds: 600,
|
||||||
attributes: attributes
|
attributes: attributes
|
||||||
};
|
};
|
||||||
const rawResponse = {
|
const rawResponse = {
|
||||||
instant: new Date().toISOString().trim(),
|
instant: new Date().toISOString().trim(),
|
||||||
issuer: `${SERVICE_URL}/${thisIdp.code}`,
|
issuer: `https://idp.sso.tools/${thisIdp.code}`,
|
||||||
inResponseTo: requestId,
|
inResponseTo: requestId,
|
||||||
destination: thisSp.callbackUrl,
|
destination: thisSp.callbackUrl,
|
||||||
assertion: rawAssertion,
|
assertion: rawAssertion,
|
||||||
@ -197,7 +194,7 @@ app.get('/:code', async (req, res) => {
|
|||||||
${sps.map(s =>
|
${sps.map(s =>
|
||||||
`<tr>
|
`<tr>
|
||||||
<td>${s.name}</td>
|
<td>${s.name}</td>
|
||||||
<td style="text-align:right;"><a class='btn blue' href="${s.serviceUrl}">Visit Service</a><a class='btn green' href="/${thisIdp.code}/saml/login/initiate?entityId=${s.entityId}" style="margin-left: 10px;">IDP-initiated login</a></td></tr>`
|
<td style="text-align:right;"><a class='btn blue' href="${s.serviceUrl}">Visit Service</a><a class='btn green' href="https://idp.sso.tools/${thisIdp.code}/saml/login/initiate?entityId=${s.entityId}" style="margin-left: 10px;">IDP-initiated login</a></td></tr>`
|
||||||
)}
|
)}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -274,7 +271,7 @@ app.get('/:code/saml/logout/request', async (req, res) => {
|
|||||||
const relayState = req.query.relayState || req.query.RelayState;
|
const relayState = req.query.relayState || req.query.RelayState;
|
||||||
const thisIdp = await getIdp(req.params.code);
|
const thisIdp = await getIdp(req.params.code);
|
||||||
if (!thisIdp) return errorPage(res, `There is no IDP service available at this URL.`);
|
if (!thisIdp) return errorPage(res, `There is no IDP service available at this URL.`);
|
||||||
const info = idp.parseRequest({ issuer: `${SERVICE_URL}/${thisIdp.code}` }, request);
|
const info = idp.parseRequest({ issuer: `https://idp.sso.tools/${thisIdp.code}` }, request);
|
||||||
|
|
||||||
if (info.login) {
|
if (info.login) {
|
||||||
return errorPage(res, 'This endpoint cannot be used to handle login requests. Please use /login/request instead.');
|
return errorPage(res, 'This endpoint cannot be used to handle login requests. Please use /login/request instead.');
|
||||||
@ -372,7 +369,7 @@ app.post('/:code/saml/login', async (req, res) => {
|
|||||||
app.get('/:code/.well-known/openid-configuration', async (req, res) => {
|
app.get('/:code/.well-known/openid-configuration', async (req, res) => {
|
||||||
const thisIdp = await getIdp(req.params.code);
|
const thisIdp = await getIdp(req.params.code);
|
||||||
if (!thisIdp) return errorJson(res, 'Unable to find an OAuth2 OpenID Connect IdP at this URL. Is your issuer code correct?', 404);
|
if (!thisIdp) return errorJson(res, 'Unable to find an OAuth2 OpenID Connect IdP at this URL. Is your issuer code correct?', 404);
|
||||||
const baseUrl = `${SERVICE_URL}/${thisIdp.code}`
|
const baseUrl = `https://idp.sso.tools/${thisIdp.code}`
|
||||||
const returnData = {
|
const returnData = {
|
||||||
issuer: baseUrl,
|
issuer: baseUrl,
|
||||||
authorization_endpoint: `${baseUrl}/oauth2/authorize`,
|
authorization_endpoint: `${baseUrl}/oauth2/authorize`,
|
||||||
|
@ -1,23 +1,31 @@
|
|||||||
{
|
{
|
||||||
"name": "ssotoolsidp",
|
"name": "ssotoolsidp",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"scripts": {
|
"scripts": {},
|
||||||
"start": "nodemon index.js"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"async": "^3.2.4",
|
||||||
"bcryptjs": "^2.4.3",
|
"bcryptjs": "^2.4.3",
|
||||||
"body-parser": "^1.20.3",
|
"body-parser": "^1.19.0",
|
||||||
"cookie-parser": "^1.4.6",
|
"cookie-parser": "^1.4.5",
|
||||||
"crypto": "^1.0.1",
|
"crypto": "^1.0.1",
|
||||||
"express": "^4.21.0",
|
"debug": "^4.1.1",
|
||||||
"jsonwebtoken": "^9.0.2",
|
"express": "^4.17.1",
|
||||||
"mongodb": "^6.9.0",
|
"jsonwebtoken": "^8.5.1",
|
||||||
"uuid": "^10.0.0",
|
"mongodb": "^5.3.0",
|
||||||
"xml-crypto": "^6.0.0",
|
"pem": "^1.13.2",
|
||||||
"xmldom": "^0.6.0",
|
"saml2-js": "^2.0.3",
|
||||||
|
"underscore": "^1.9.1",
|
||||||
|
"url": "^0.11.0",
|
||||||
|
"util": "^0.11.1",
|
||||||
|
"uuid": "^3.3.2",
|
||||||
|
"xml-crypto": "^1.1.1",
|
||||||
|
"xml-encryption": "^0.11.2",
|
||||||
|
"xml2js": "^0.4.19",
|
||||||
|
"xmlbuilder": "^10.1.1",
|
||||||
|
"xmldom": "^0.1.27",
|
||||||
"zlib": "^1.0.5"
|
"zlib": "^1.0.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"nodemon": "^3.1.7"
|
"nodemon": "^2.0.7"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1466
idp/yarn.lock
1466
idp/yarn.lock
File diff suppressed because it is too large
Load Diff
@ -9,15 +9,15 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@mdi/font": "^7.0.96",
|
"@mdi/font": "^7.0.96",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"vue": "^3.5.11",
|
"vue": "^3.2.45",
|
||||||
"vue-router": "^4.4.5",
|
"vue-router": "^4.1.6",
|
||||||
"vuetify": "^3.7.2",
|
"vuetify": "^3.0.1",
|
||||||
"vuex": "^4.1.0"
|
"vuex": "^4.1.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vitejs/plugin-vue": "^5.1.4",
|
"@vitejs/plugin-vue": "^3.2.0",
|
||||||
"vite": "^5.4.8",
|
"vite": "^3.2.4",
|
||||||
"vue-template-compiler": "^2.7.16"
|
"vue-template-compiler": "^2.7.14"
|
||||||
},
|
},
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
"> 1%",
|
"> 1%",
|
||||||
|
738
web/yarn.lock
738
web/yarn.lock
@ -2,380 +2,263 @@
|
|||||||
# yarn lockfile v1
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
"@babel/helper-string-parser@^7.25.7":
|
"@babel/parser@^7.16.4":
|
||||||
version "7.25.7"
|
version "7.20.3"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz#d50e8d37b1176207b4fe9acedec386c565a44a54"
|
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2"
|
||||||
integrity sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==
|
integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==
|
||||||
|
|
||||||
"@babel/helper-validator-identifier@^7.25.7":
|
"@esbuild/android-arm@0.15.15":
|
||||||
version "7.25.7"
|
version "0.15.15"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz#77b7f60c40b15c97df735b38a66ba1d7c3e93da5"
|
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.15.tgz#35b3cc0f9e69cb53932d44f60b99dd440335d2f0"
|
||||||
integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==
|
integrity sha512-JJjZjJi2eBL01QJuWjfCdZxcIgot+VoK6Fq7eKF9w4YHm9hwl7nhBR1o2Wnt/WcANk5l9SkpvrldW1PLuXxcbw==
|
||||||
|
|
||||||
"@babel/parser@^7.25.3":
|
"@esbuild/linux-loong64@0.15.15":
|
||||||
version "7.25.7"
|
version "0.15.15"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.7.tgz#99b927720f4ddbfeb8cd195a363ed4532f87c590"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.15.tgz#32c65517a09320b62530867345222fde7794fbe1"
|
||||||
integrity sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==
|
integrity sha512-lhz6UNPMDXUhtXSulw8XlFAtSYO26WmHQnCi2Lg2p+/TMiJKNLtZCYUxV4wG6rZMzXmr8InGpNwk+DLT2Hm0PA==
|
||||||
dependencies:
|
|
||||||
"@babel/types" "^7.25.7"
|
|
||||||
|
|
||||||
"@babel/types@^7.25.7":
|
|
||||||
version "7.25.7"
|
|
||||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.7.tgz#1b7725c1d3a59f328cb700ce704c46371e6eef9b"
|
|
||||||
integrity sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==
|
|
||||||
dependencies:
|
|
||||||
"@babel/helper-string-parser" "^7.25.7"
|
|
||||||
"@babel/helper-validator-identifier" "^7.25.7"
|
|
||||||
to-fast-properties "^2.0.0"
|
|
||||||
|
|
||||||
"@esbuild/aix-ppc64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f"
|
|
||||||
integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==
|
|
||||||
|
|
||||||
"@esbuild/android-arm64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052"
|
|
||||||
integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==
|
|
||||||
|
|
||||||
"@esbuild/android-arm@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28"
|
|
||||||
integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==
|
|
||||||
|
|
||||||
"@esbuild/android-x64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e"
|
|
||||||
integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==
|
|
||||||
|
|
||||||
"@esbuild/darwin-arm64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a"
|
|
||||||
integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==
|
|
||||||
|
|
||||||
"@esbuild/darwin-x64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22"
|
|
||||||
integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==
|
|
||||||
|
|
||||||
"@esbuild/freebsd-arm64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e"
|
|
||||||
integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==
|
|
||||||
|
|
||||||
"@esbuild/freebsd-x64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261"
|
|
||||||
integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==
|
|
||||||
|
|
||||||
"@esbuild/linux-arm64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b"
|
|
||||||
integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==
|
|
||||||
|
|
||||||
"@esbuild/linux-arm@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9"
|
|
||||||
integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==
|
|
||||||
|
|
||||||
"@esbuild/linux-ia32@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2"
|
|
||||||
integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==
|
|
||||||
|
|
||||||
"@esbuild/linux-loong64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df"
|
|
||||||
integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==
|
|
||||||
|
|
||||||
"@esbuild/linux-mips64el@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe"
|
|
||||||
integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==
|
|
||||||
|
|
||||||
"@esbuild/linux-ppc64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4"
|
|
||||||
integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==
|
|
||||||
|
|
||||||
"@esbuild/linux-riscv64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc"
|
|
||||||
integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==
|
|
||||||
|
|
||||||
"@esbuild/linux-s390x@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de"
|
|
||||||
integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==
|
|
||||||
|
|
||||||
"@esbuild/linux-x64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0"
|
|
||||||
integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==
|
|
||||||
|
|
||||||
"@esbuild/netbsd-x64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047"
|
|
||||||
integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==
|
|
||||||
|
|
||||||
"@esbuild/openbsd-x64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70"
|
|
||||||
integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==
|
|
||||||
|
|
||||||
"@esbuild/sunos-x64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b"
|
|
||||||
integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==
|
|
||||||
|
|
||||||
"@esbuild/win32-arm64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d"
|
|
||||||
integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==
|
|
||||||
|
|
||||||
"@esbuild/win32-ia32@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b"
|
|
||||||
integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==
|
|
||||||
|
|
||||||
"@esbuild/win32-x64@0.21.5":
|
|
||||||
version "0.21.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c"
|
|
||||||
integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
|
|
||||||
|
|
||||||
"@jridgewell/sourcemap-codec@^1.5.0":
|
|
||||||
version "1.5.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
|
|
||||||
integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
|
|
||||||
|
|
||||||
"@mdi/font@^7.0.96":
|
"@mdi/font@^7.0.96":
|
||||||
version "7.0.96"
|
version "7.0.96"
|
||||||
resolved "https://registry.yarnpkg.com/@mdi/font/-/font-7.0.96.tgz#9853c222623072f5575b4039c8c195ea929b61fc"
|
resolved "https://registry.yarnpkg.com/@mdi/font/-/font-7.0.96.tgz#9853c222623072f5575b4039c8c195ea929b61fc"
|
||||||
integrity sha512-rzlxTfR64hqY8yiBzDjmANfcd8rv+T5C0Yedv/TWk2QyAQYdc66e0kaN1ipmnYU3RukHRTRcBARHzzm+tIhL7w==
|
integrity sha512-rzlxTfR64hqY8yiBzDjmANfcd8rv+T5C0Yedv/TWk2QyAQYdc66e0kaN1ipmnYU3RukHRTRcBARHzzm+tIhL7w==
|
||||||
|
|
||||||
"@rollup/rollup-android-arm-eabi@4.24.0":
|
"@vitejs/plugin-vue@^3.2.0":
|
||||||
version "4.24.0"
|
version "3.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz#1661ff5ea9beb362795304cb916049aba7ac9c54"
|
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz#a1484089dd85d6528f435743f84cdd0d215bbb54"
|
||||||
integrity sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==
|
integrity sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==
|
||||||
|
|
||||||
"@rollup/rollup-android-arm64@4.24.0":
|
"@vue/compiler-core@3.2.45":
|
||||||
version "4.24.0"
|
version "3.2.45"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz#2ffaa91f1b55a0082b8a722525741aadcbd3971e"
|
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz#d9311207d96f6ebd5f4660be129fb99f01ddb41b"
|
||||||
integrity sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==
|
integrity sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==
|
||||||
|
|
||||||
"@rollup/rollup-darwin-arm64@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz#627007221b24b8cc3063703eee0b9177edf49c1f"
|
|
||||||
integrity sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==
|
|
||||||
|
|
||||||
"@rollup/rollup-darwin-x64@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz#0605506142b9e796c370d59c5984ae95b9758724"
|
|
||||||
integrity sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==
|
|
||||||
|
|
||||||
"@rollup/rollup-linux-arm-gnueabihf@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz#62dfd196d4b10c0c2db833897164d2d319ee0cbb"
|
|
||||||
integrity sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==
|
|
||||||
|
|
||||||
"@rollup/rollup-linux-arm-musleabihf@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz#53ce72aeb982f1f34b58b380baafaf6a240fddb3"
|
|
||||||
integrity sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==
|
|
||||||
|
|
||||||
"@rollup/rollup-linux-arm64-gnu@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz#1632990f62a75c74f43e4b14ab3597d7ed416496"
|
|
||||||
integrity sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==
|
|
||||||
|
|
||||||
"@rollup/rollup-linux-arm64-musl@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz#8c03a996efb41e257b414b2e0560b7a21f2d9065"
|
|
||||||
integrity sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==
|
|
||||||
|
|
||||||
"@rollup/rollup-linux-powerpc64le-gnu@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz#5b98729628d5bcc8f7f37b58b04d6845f85c7b5d"
|
|
||||||
integrity sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==
|
|
||||||
|
|
||||||
"@rollup/rollup-linux-riscv64-gnu@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz#48e42e41f4cabf3573cfefcb448599c512e22983"
|
|
||||||
integrity sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==
|
|
||||||
|
|
||||||
"@rollup/rollup-linux-s390x-gnu@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz#e0b4f9a966872cb7d3e21b9e412a4b7efd7f0b58"
|
|
||||||
integrity sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==
|
|
||||||
|
|
||||||
"@rollup/rollup-linux-x64-gnu@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz#78144741993100f47bd3da72fce215e077ae036b"
|
|
||||||
integrity sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==
|
|
||||||
|
|
||||||
"@rollup/rollup-linux-x64-musl@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz#d9fe32971883cd1bd858336bd33a1c3ca6146127"
|
|
||||||
integrity sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==
|
|
||||||
|
|
||||||
"@rollup/rollup-win32-arm64-msvc@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz#71fa3ea369316db703a909c790743972e98afae5"
|
|
||||||
integrity sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==
|
|
||||||
|
|
||||||
"@rollup/rollup-win32-ia32-msvc@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz#653f5989a60658e17d7576a3996deb3902e342e2"
|
|
||||||
integrity sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==
|
|
||||||
|
|
||||||
"@rollup/rollup-win32-x64-msvc@4.24.0":
|
|
||||||
version "4.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz#0574d7e87b44ee8511d08cc7f914bcb802b70818"
|
|
||||||
integrity sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==
|
|
||||||
|
|
||||||
"@types/estree@1.0.6":
|
|
||||||
version "1.0.6"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
|
|
||||||
integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
|
|
||||||
|
|
||||||
"@vitejs/plugin-vue@^5.1.4":
|
|
||||||
version "5.1.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz#72b8b705cfce36b00b59af196195146e356500c4"
|
|
||||||
integrity sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==
|
|
||||||
|
|
||||||
"@vue/compiler-core@3.5.11":
|
|
||||||
version "3.5.11"
|
|
||||||
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.11.tgz#3dcd0c1bab10732f44ab1790735afb03a4b69edc"
|
|
||||||
integrity sha512-PwAdxs7/9Hc3ieBO12tXzmTD+Ln4qhT/56S+8DvrrZ4kLDn4Z/AMUr8tXJD0axiJBS0RKIoNaR0yMuQB9v9Udg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/parser" "^7.25.3"
|
"@babel/parser" "^7.16.4"
|
||||||
"@vue/shared" "3.5.11"
|
"@vue/shared" "3.2.45"
|
||||||
entities "^4.5.0"
|
|
||||||
estree-walker "^2.0.2"
|
estree-walker "^2.0.2"
|
||||||
source-map-js "^1.2.0"
|
source-map "^0.6.1"
|
||||||
|
|
||||||
"@vue/compiler-dom@3.5.11":
|
"@vue/compiler-dom@3.2.45":
|
||||||
version "3.5.11"
|
version "3.2.45"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.11.tgz#950f8fc610e26326fed008b8d102cc8ee78a6ce5"
|
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz#c43cc15e50da62ecc16a42f2622d25dc5fd97dce"
|
||||||
integrity sha512-pyGf8zdbDDRkBrEzf8p7BQlMKNNF5Fk/Cf/fQ6PiUz9at4OaUfyXW0dGJTo2Vl1f5U9jSLCNf0EZJEogLXoeew==
|
integrity sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/compiler-core" "3.5.11"
|
"@vue/compiler-core" "3.2.45"
|
||||||
"@vue/shared" "3.5.11"
|
"@vue/shared" "3.2.45"
|
||||||
|
|
||||||
"@vue/compiler-sfc@3.5.11":
|
"@vue/compiler-sfc@3.2.45":
|
||||||
version "3.5.11"
|
version "3.2.45"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.11.tgz#68ba7bc6fed4fec6892aed118cb3ee8e4b180d06"
|
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz#7f7989cc04ec9e7c55acd406827a2c4e96872c70"
|
||||||
integrity sha512-gsbBtT4N9ANXXepprle+X9YLg2htQk1sqH/qGJ/EApl+dgpUBdTv3yP7YlR535uHZY3n6XaR0/bKo0BgwwDniw==
|
integrity sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/parser" "^7.25.3"
|
"@babel/parser" "^7.16.4"
|
||||||
"@vue/compiler-core" "3.5.11"
|
"@vue/compiler-core" "3.2.45"
|
||||||
"@vue/compiler-dom" "3.5.11"
|
"@vue/compiler-dom" "3.2.45"
|
||||||
"@vue/compiler-ssr" "3.5.11"
|
"@vue/compiler-ssr" "3.2.45"
|
||||||
"@vue/shared" "3.5.11"
|
"@vue/reactivity-transform" "3.2.45"
|
||||||
|
"@vue/shared" "3.2.45"
|
||||||
estree-walker "^2.0.2"
|
estree-walker "^2.0.2"
|
||||||
magic-string "^0.30.11"
|
magic-string "^0.25.7"
|
||||||
postcss "^8.4.47"
|
postcss "^8.1.10"
|
||||||
source-map-js "^1.2.0"
|
source-map "^0.6.1"
|
||||||
|
|
||||||
"@vue/compiler-ssr@3.5.11":
|
"@vue/compiler-ssr@3.2.45":
|
||||||
version "3.5.11"
|
version "3.2.45"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.11.tgz#02d9891c7a649bbf06490ecd8d24dd1575d53e60"
|
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz#bd20604b6e64ea15344d5b6278c4141191c983b2"
|
||||||
integrity sha512-P4+GPjOuC2aFTk1Z4WANvEhyOykcvEd5bIj2KVNGKGfM745LaXGr++5njpdBTzVz5pZifdlR1kpYSJJpIlSePA==
|
integrity sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/compiler-dom" "3.5.11"
|
"@vue/compiler-dom" "3.2.45"
|
||||||
"@vue/shared" "3.5.11"
|
"@vue/shared" "3.2.45"
|
||||||
|
|
||||||
"@vue/devtools-api@^6.0.0-beta.11":
|
"@vue/devtools-api@^6.0.0-beta.11", "@vue/devtools-api@^6.4.5":
|
||||||
version "6.4.5"
|
version "6.4.5"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.4.5.tgz#d54e844c1adbb1e677c81c665ecef1a2b4bb8380"
|
resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.4.5.tgz#d54e844c1adbb1e677c81c665ecef1a2b4bb8380"
|
||||||
integrity sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==
|
integrity sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==
|
||||||
|
|
||||||
"@vue/devtools-api@^6.6.4":
|
"@vue/reactivity-transform@3.2.45":
|
||||||
version "6.6.4"
|
version "3.2.45"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343"
|
resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz#07ac83b8138550c83dfb50db43cde1e0e5e8124d"
|
||||||
integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==
|
integrity sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==
|
||||||
|
|
||||||
"@vue/reactivity@3.5.11":
|
|
||||||
version "3.5.11"
|
|
||||||
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.11.tgz#d27df4fba10c2de1c7234701f18247a775b7a391"
|
|
||||||
integrity sha512-Nqo5VZEn8MJWlCce8XoyVqHZbd5P2NH+yuAaFzuNSR96I+y1cnuUiq7xfSG+kyvLSiWmaHTKP1r3OZY4mMD50w==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/shared" "3.5.11"
|
"@babel/parser" "^7.16.4"
|
||||||
|
"@vue/compiler-core" "3.2.45"
|
||||||
|
"@vue/shared" "3.2.45"
|
||||||
|
estree-walker "^2.0.2"
|
||||||
|
magic-string "^0.25.7"
|
||||||
|
|
||||||
"@vue/runtime-core@3.5.11":
|
"@vue/reactivity@3.2.45":
|
||||||
version "3.5.11"
|
version "3.2.45"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.11.tgz#7beccd013efe5d33981ffd6b6e05d0a5b9058316"
|
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.45.tgz#412a45b574de601be5a4a5d9a8cbd4dee4662ff0"
|
||||||
integrity sha512-7PsxFGqwfDhfhh0OcDWBG1DaIQIVOLgkwA5q6MtkPiDFjp5gohVnJEahSktwSFLq7R5PtxDKy6WKURVN1UDbzA==
|
integrity sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/reactivity" "3.5.11"
|
"@vue/shared" "3.2.45"
|
||||||
"@vue/shared" "3.5.11"
|
|
||||||
|
|
||||||
"@vue/runtime-dom@3.5.11":
|
"@vue/runtime-core@3.2.45":
|
||||||
version "3.5.11"
|
version "3.2.45"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.11.tgz#14a3181ab7057de41b345b4b3d37b744b3ff8ff5"
|
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.45.tgz#7ad7ef9b2519d41062a30c6fa001ec43ac549c7f"
|
||||||
integrity sha512-GNghjecT6IrGf0UhuYmpgaOlN7kxzQBhxWEn08c/SQDxv1yy4IXI1bn81JgEpQ4IXjRxWtPyI8x0/7TF5rPfYQ==
|
integrity sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/reactivity" "3.5.11"
|
"@vue/reactivity" "3.2.45"
|
||||||
"@vue/runtime-core" "3.5.11"
|
"@vue/shared" "3.2.45"
|
||||||
"@vue/shared" "3.5.11"
|
|
||||||
csstype "^3.1.3"
|
|
||||||
|
|
||||||
"@vue/server-renderer@3.5.11":
|
"@vue/runtime-dom@3.2.45":
|
||||||
version "3.5.11"
|
version "3.2.45"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.11.tgz#74f558371dfc39f3b0f26f95d089a1a4d1676027"
|
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz#1a2ef6ee2ad876206fbbe2a884554bba2d0faf59"
|
||||||
integrity sha512-cVOwYBxR7Wb1B1FoxYvtjJD8X/9E5nlH4VSkJy2uMA1MzYNdzAAB//l8nrmN9py/4aP+3NjWukf9PZ3TeWULaA==
|
integrity sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/compiler-ssr" "3.5.11"
|
"@vue/runtime-core" "3.2.45"
|
||||||
"@vue/shared" "3.5.11"
|
"@vue/shared" "3.2.45"
|
||||||
|
csstype "^2.6.8"
|
||||||
|
|
||||||
"@vue/shared@3.5.11":
|
"@vue/server-renderer@3.2.45":
|
||||||
version "3.5.11"
|
version "3.2.45"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.11.tgz#464b840afc89be9373addff9eeb9dfc98bf3fe2e"
|
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.45.tgz#ca9306a0c12b0530a1a250e44f4a0abac6b81f3f"
|
||||||
integrity sha512-W8GgysJVnFo81FthhzurdRAWP/byq3q2qIw70e0JWblzVhjgOMiC2GyovXrZTFQJnFVryYaKGP3Tc9vYzYm6PQ==
|
integrity sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==
|
||||||
|
dependencies:
|
||||||
|
"@vue/compiler-ssr" "3.2.45"
|
||||||
|
"@vue/shared" "3.2.45"
|
||||||
|
|
||||||
csstype@^3.1.3:
|
"@vue/shared@3.2.45":
|
||||||
version "3.1.3"
|
version "3.2.45"
|
||||||
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
|
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.45.tgz#a3fffa7489eafff38d984e23d0236e230c818bc2"
|
||||||
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
|
integrity sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==
|
||||||
|
|
||||||
|
csstype@^2.6.8:
|
||||||
|
version "2.6.21"
|
||||||
|
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e"
|
||||||
|
integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==
|
||||||
|
|
||||||
de-indent@^1.0.2:
|
de-indent@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
|
resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
|
||||||
integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
|
integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
|
||||||
|
|
||||||
entities@^4.5.0:
|
esbuild-android-64@0.15.15:
|
||||||
version "4.5.0"
|
version "0.15.15"
|
||||||
resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
|
resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.15.tgz#fd959b034dd761d14e13dda6214b6948841ff4ff"
|
||||||
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
|
integrity sha512-F+WjjQxO+JQOva3tJWNdVjouFMLK6R6i5gjDvgUthLYJnIZJsp1HlF523k73hELY20WPyEO8xcz7aaYBVkeg5Q==
|
||||||
|
|
||||||
esbuild@^0.21.3:
|
esbuild-android-arm64@0.15.15:
|
||||||
version "0.21.5"
|
version "0.15.15"
|
||||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d"
|
resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.15.tgz#9733b71cf0229b4356f106a455b2cfdf7884aa59"
|
||||||
integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==
|
integrity sha512-attlyhD6Y22jNyQ0fIIQ7mnPvDWKw7k6FKnsXlBvQE6s3z6s6cuEHcSgoirquQc7TmZgVCK5fD/2uxmRN+ZpcQ==
|
||||||
|
|
||||||
|
esbuild-darwin-64@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.15.tgz#fc3482fdf5e798dbc0b8b2fe13287d257a45efc6"
|
||||||
|
integrity sha512-ohZtF8W1SHJ4JWldsPVdk8st0r9ExbAOSrBOh5L+Mq47i696GVwv1ab/KlmbUoikSTNoXEhDzVpxUR/WIO19FQ==
|
||||||
|
|
||||||
|
esbuild-darwin-arm64@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.15.tgz#e922ec387c00fa84d664e14b5722fe13613f4adc"
|
||||||
|
integrity sha512-P8jOZ5zshCNIuGn+9KehKs/cq5uIniC+BeCykvdVhx/rBXSxmtj3CUIKZz4sDCuESMbitK54drf/2QX9QHG5Ag==
|
||||||
|
|
||||||
|
esbuild-freebsd-64@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.15.tgz#69a42d79137d7d3ea718414c432bc10e8bb97c68"
|
||||||
|
integrity sha512-KkTg+AmDXz1IvA9S1gt8dE24C8Thx0X5oM0KGF322DuP+P3evwTL9YyusHAWNsh4qLsR80nvBr/EIYs29VSwuA==
|
||||||
|
|
||||||
|
esbuild-freebsd-arm64@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.15.tgz#63b6d0dd492f7394f8d07a0e2b931151eb9d60c4"
|
||||||
|
integrity sha512-FUcML0DRsuyqCMfAC+HoeAqvWxMeq0qXvclZZ/lt2kLU6XBnDA5uKTLUd379WYEyVD4KKFctqWd9tTuk8C/96g==
|
||||||
|
|
||||||
|
esbuild-linux-32@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.15.tgz#7f295795fd7e61ea57d1135f717424a6771a7472"
|
||||||
|
integrity sha512-q28Qn5pZgHNqug02aTkzw5sW9OklSo96b5nm17Mq0pDXrdTBcQ+M6Q9A1B+dalFeynunwh/pvfrNucjzwDXj+Q==
|
||||||
|
|
||||||
|
esbuild-linux-64@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.15.tgz#11a430a86403b0411ca0a355b891f1cb8c4c4ec6"
|
||||||
|
integrity sha512-217KPmWMirkf8liO+fj2qrPwbIbhNTGNVtvqI1TnOWJgcMjUWvd677Gq3fTzXEjilkx2yWypVnTswM2KbXgoAg==
|
||||||
|
|
||||||
|
esbuild-linux-arm64@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.15.tgz#b65f9a2c60e8e5b62f6cfd392cd0410f22e8c390"
|
||||||
|
integrity sha512-/ltmNFs0FivZkYsTzAsXIfLQX38lFnwJTWCJts0IbCqWZQe+jjj0vYBNbI0kmXLb3y5NljiM5USVAO1NVkdh2g==
|
||||||
|
|
||||||
|
esbuild-linux-arm@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.15.tgz#c8e13e45a0a6f0cb145ce13ae26ce1d2551d9bcc"
|
||||||
|
integrity sha512-RYVW9o2yN8yM7SB1yaWr378CwrjvGCyGybX3SdzPHpikUHkME2AP55Ma20uNwkNyY2eSYFX9D55kDrfQmQBR4w==
|
||||||
|
|
||||||
|
esbuild-linux-mips64le@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.15.tgz#d4c24d47e43966fcac748c90621be7edd53456c0"
|
||||||
|
integrity sha512-PksEPb321/28GFFxtvL33yVPfnMZihxkEv5zME2zapXGp7fA1X2jYeiTUK+9tJ/EGgcNWuwvtawPxJG7Mmn86A==
|
||||||
|
|
||||||
|
esbuild-linux-ppc64le@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.15.tgz#2eba53fe2282438ceca5471bdb57ba2e00216ed6"
|
||||||
|
integrity sha512-ek8gJBEIhcpGI327eAZigBOHl58QqrJrYYIZBWQCnH3UnXoeWMrMZLeeZL8BI2XMBhP+sQ6ERctD5X+ajL/AIA==
|
||||||
|
|
||||||
|
esbuild-linux-riscv64@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.15.tgz#1afa8dfe55a6c312f1904ee608b81417205f5027"
|
||||||
|
integrity sha512-H5ilTZb33/GnUBrZMNJtBk7/OXzDHDXjIzoLXHSutwwsLxSNaLxzAaMoDGDd/keZoS+GDBqNVxdCkpuiRW4OSw==
|
||||||
|
|
||||||
|
esbuild-linux-s390x@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.15.tgz#1f7b3c4429c8ca99920ba6bf356ccc5b38fabd34"
|
||||||
|
integrity sha512-jKaLUg78mua3rrtrkpv4Or2dNTJU7bgHN4bEjT4OX4GR7nLBSA9dfJezQouTxMmIW7opwEC5/iR9mpC18utnxQ==
|
||||||
|
|
||||||
|
esbuild-netbsd-64@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.15.tgz#d72c7155686c938c1aff126209b689c22823347c"
|
||||||
|
integrity sha512-aOvmF/UkjFuW6F36HbIlImJTTx45KUCHJndtKo+KdP8Dhq3mgLRKW9+6Ircpm8bX/RcS3zZMMmaBLkvGY06Gvw==
|
||||||
|
|
||||||
|
esbuild-openbsd-64@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.15.tgz#761bd87ecab97386948eaf667a065cb0ecaa0f76"
|
||||||
|
integrity sha512-HFFX+WYedx1w2yJ1VyR1Dfo8zyYGQZf1cA69bLdrHzu9svj6KH6ZLK0k3A1/LFPhcEY9idSOhsB2UyU0tHPxgQ==
|
||||||
|
|
||||||
|
esbuild-sunos-64@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.15.tgz#07e04cbf9747f281a967d09230a158a1be5b530c"
|
||||||
|
integrity sha512-jOPBudffG4HN8yJXcK9rib/ZTFoTA5pvIKbRrt3IKAGMq1EpBi4xoVoSRrq/0d4OgZLaQbmkHp8RO9eZIn5atA==
|
||||||
|
|
||||||
|
esbuild-windows-32@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.15.tgz#130d1982cc41fb67461e9f8a65c6ebd13a1f35bb"
|
||||||
|
integrity sha512-MDkJ3QkjnCetKF0fKxCyYNBnOq6dmidcwstBVeMtXSgGYTy8XSwBeIE4+HuKiSsG6I/mXEb++px3IGSmTN0XiA==
|
||||||
|
|
||||||
|
esbuild-windows-64@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.15.tgz#638bdf495c109c1882e8b0529cb8e2fea11383fb"
|
||||||
|
integrity sha512-xaAUIB2qllE888SsMU3j9nrqyLbkqqkpQyWVkfwSil6BBPgcPk3zOFitTTncEKCLTQy3XV9RuH7PDj3aJDljWA==
|
||||||
|
|
||||||
|
esbuild-windows-arm64@0.15.15:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.15.tgz#5a277ce10de999d2a6465fc92a8c2a2d207ebd31"
|
||||||
|
integrity sha512-ttuoCYCIJAFx4UUKKWYnFdrVpoXa3+3WWkXVI6s09U+YjhnyM5h96ewTq/WgQj9LFSIlABQvadHSOQyAVjW5xQ==
|
||||||
|
|
||||||
|
esbuild@^0.15.9:
|
||||||
|
version "0.15.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.15.tgz#503b70bdc18d72d8fc2962ed3ab9219249e58bbe"
|
||||||
|
integrity sha512-TEw/lwK4Zzld9x3FedV6jy8onOUHqcEX3ADFk4k+gzPUwrxn8nWV62tH0udo8jOtjFodlEfc4ypsqX3e+WWO6w==
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
"@esbuild/aix-ppc64" "0.21.5"
|
"@esbuild/android-arm" "0.15.15"
|
||||||
"@esbuild/android-arm" "0.21.5"
|
"@esbuild/linux-loong64" "0.15.15"
|
||||||
"@esbuild/android-arm64" "0.21.5"
|
esbuild-android-64 "0.15.15"
|
||||||
"@esbuild/android-x64" "0.21.5"
|
esbuild-android-arm64 "0.15.15"
|
||||||
"@esbuild/darwin-arm64" "0.21.5"
|
esbuild-darwin-64 "0.15.15"
|
||||||
"@esbuild/darwin-x64" "0.21.5"
|
esbuild-darwin-arm64 "0.15.15"
|
||||||
"@esbuild/freebsd-arm64" "0.21.5"
|
esbuild-freebsd-64 "0.15.15"
|
||||||
"@esbuild/freebsd-x64" "0.21.5"
|
esbuild-freebsd-arm64 "0.15.15"
|
||||||
"@esbuild/linux-arm" "0.21.5"
|
esbuild-linux-32 "0.15.15"
|
||||||
"@esbuild/linux-arm64" "0.21.5"
|
esbuild-linux-64 "0.15.15"
|
||||||
"@esbuild/linux-ia32" "0.21.5"
|
esbuild-linux-arm "0.15.15"
|
||||||
"@esbuild/linux-loong64" "0.21.5"
|
esbuild-linux-arm64 "0.15.15"
|
||||||
"@esbuild/linux-mips64el" "0.21.5"
|
esbuild-linux-mips64le "0.15.15"
|
||||||
"@esbuild/linux-ppc64" "0.21.5"
|
esbuild-linux-ppc64le "0.15.15"
|
||||||
"@esbuild/linux-riscv64" "0.21.5"
|
esbuild-linux-riscv64 "0.15.15"
|
||||||
"@esbuild/linux-s390x" "0.21.5"
|
esbuild-linux-s390x "0.15.15"
|
||||||
"@esbuild/linux-x64" "0.21.5"
|
esbuild-netbsd-64 "0.15.15"
|
||||||
"@esbuild/netbsd-x64" "0.21.5"
|
esbuild-openbsd-64 "0.15.15"
|
||||||
"@esbuild/openbsd-x64" "0.21.5"
|
esbuild-sunos-64 "0.15.15"
|
||||||
"@esbuild/sunos-x64" "0.21.5"
|
esbuild-windows-32 "0.15.15"
|
||||||
"@esbuild/win32-arm64" "0.21.5"
|
esbuild-windows-64 "0.15.15"
|
||||||
"@esbuild/win32-ia32" "0.21.5"
|
esbuild-windows-arm64 "0.15.15"
|
||||||
"@esbuild/win32-x64" "0.21.5"
|
|
||||||
|
|
||||||
estree-walker@^2.0.2:
|
estree-walker@^2.0.2:
|
||||||
version "2.0.2"
|
version "2.0.2"
|
||||||
@ -387,123 +270,144 @@ fsevents@~2.3.2:
|
|||||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
||||||
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
||||||
|
|
||||||
fsevents@~2.3.3:
|
function-bind@^1.1.1:
|
||||||
version "2.3.3"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
|
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
||||||
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
|
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
||||||
|
|
||||||
|
has@^1.0.3:
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
||||||
|
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
|
||||||
|
dependencies:
|
||||||
|
function-bind "^1.1.1"
|
||||||
|
|
||||||
he@^1.2.0:
|
he@^1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
|
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
|
||||||
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
|
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
|
||||||
|
|
||||||
magic-string@^0.30.11:
|
is-core-module@^2.9.0:
|
||||||
version "0.30.11"
|
version "2.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954"
|
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
|
||||||
integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==
|
integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@jridgewell/sourcemap-codec" "^1.5.0"
|
has "^1.0.3"
|
||||||
|
|
||||||
|
magic-string@^0.25.7:
|
||||||
|
version "0.25.9"
|
||||||
|
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
|
||||||
|
integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
|
||||||
|
dependencies:
|
||||||
|
sourcemap-codec "^1.4.8"
|
||||||
|
|
||||||
moment@^2.29.4:
|
moment@^2.29.4:
|
||||||
version "2.29.4"
|
version "2.29.4"
|
||||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
|
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
|
||||||
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
|
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
|
||||||
|
|
||||||
nanoid@^3.3.7:
|
nanoid@^3.3.4:
|
||||||
version "3.3.7"
|
version "3.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
|
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
|
||||||
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
|
integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
|
||||||
|
|
||||||
picocolors@^1.1.0:
|
path-parse@^1.0.7:
|
||||||
version "1.1.0"
|
version "1.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59"
|
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
||||||
integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==
|
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
||||||
|
|
||||||
postcss@^8.4.43, postcss@^8.4.47:
|
picocolors@^1.0.0:
|
||||||
version "8.4.47"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365"
|
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
||||||
integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==
|
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
|
||||||
|
|
||||||
|
postcss@^8.1.10, postcss@^8.4.18:
|
||||||
|
version "8.4.19"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc"
|
||||||
|
integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==
|
||||||
dependencies:
|
dependencies:
|
||||||
nanoid "^3.3.7"
|
nanoid "^3.3.4"
|
||||||
picocolors "^1.1.0"
|
picocolors "^1.0.0"
|
||||||
source-map-js "^1.2.1"
|
source-map-js "^1.0.2"
|
||||||
|
|
||||||
rollup@^4.20.0:
|
resolve@^1.22.1:
|
||||||
version "4.24.0"
|
version "1.22.1"
|
||||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.24.0.tgz#c14a3576f20622ea6a5c9cad7caca5e6e9555d05"
|
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
|
||||||
integrity sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==
|
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/estree" "1.0.6"
|
is-core-module "^2.9.0"
|
||||||
|
path-parse "^1.0.7"
|
||||||
|
supports-preserve-symlinks-flag "^1.0.0"
|
||||||
|
|
||||||
|
rollup@^2.79.1:
|
||||||
|
version "2.79.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7"
|
||||||
|
integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
"@rollup/rollup-android-arm-eabi" "4.24.0"
|
|
||||||
"@rollup/rollup-android-arm64" "4.24.0"
|
|
||||||
"@rollup/rollup-darwin-arm64" "4.24.0"
|
|
||||||
"@rollup/rollup-darwin-x64" "4.24.0"
|
|
||||||
"@rollup/rollup-linux-arm-gnueabihf" "4.24.0"
|
|
||||||
"@rollup/rollup-linux-arm-musleabihf" "4.24.0"
|
|
||||||
"@rollup/rollup-linux-arm64-gnu" "4.24.0"
|
|
||||||
"@rollup/rollup-linux-arm64-musl" "4.24.0"
|
|
||||||
"@rollup/rollup-linux-powerpc64le-gnu" "4.24.0"
|
|
||||||
"@rollup/rollup-linux-riscv64-gnu" "4.24.0"
|
|
||||||
"@rollup/rollup-linux-s390x-gnu" "4.24.0"
|
|
||||||
"@rollup/rollup-linux-x64-gnu" "4.24.0"
|
|
||||||
"@rollup/rollup-linux-x64-musl" "4.24.0"
|
|
||||||
"@rollup/rollup-win32-arm64-msvc" "4.24.0"
|
|
||||||
"@rollup/rollup-win32-ia32-msvc" "4.24.0"
|
|
||||||
"@rollup/rollup-win32-x64-msvc" "4.24.0"
|
|
||||||
fsevents "~2.3.2"
|
fsevents "~2.3.2"
|
||||||
|
|
||||||
source-map-js@^1.2.0, source-map-js@^1.2.1:
|
source-map-js@^1.0.2:
|
||||||
version "1.2.1"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
|
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
|
||||||
integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
|
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
|
||||||
|
|
||||||
to-fast-properties@^2.0.0:
|
source-map@^0.6.1:
|
||||||
version "2.0.0"
|
version "0.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||||
integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
|
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||||
|
|
||||||
vite@^5.4.8:
|
sourcemap-codec@^1.4.8:
|
||||||
version "5.4.8"
|
version "1.4.8"
|
||||||
resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.8.tgz#af548ce1c211b2785478d3ba3e8da51e39a287e8"
|
resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
|
||||||
integrity sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==
|
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
|
||||||
|
|
||||||
|
supports-preserve-symlinks-flag@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
||||||
|
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
||||||
|
|
||||||
|
vite@^3.2.4:
|
||||||
|
version "3.2.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/vite/-/vite-3.2.4.tgz#d8c7892dd4268064e04fffbe7d866207dd24166e"
|
||||||
|
integrity sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild "^0.21.3"
|
esbuild "^0.15.9"
|
||||||
postcss "^8.4.43"
|
postcss "^8.4.18"
|
||||||
rollup "^4.20.0"
|
resolve "^1.22.1"
|
||||||
|
rollup "^2.79.1"
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents "~2.3.3"
|
fsevents "~2.3.2"
|
||||||
|
|
||||||
vue-router@^4.4.5:
|
vue-router@^4.1.6:
|
||||||
version "4.4.5"
|
version "4.1.6"
|
||||||
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.4.5.tgz#bdf535e4cf32414ebdea6b4b403593efdb541388"
|
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.1.6.tgz#b70303737e12b4814578d21d68d21618469375a1"
|
||||||
integrity sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==
|
integrity sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/devtools-api" "^6.6.4"
|
"@vue/devtools-api" "^6.4.5"
|
||||||
|
|
||||||
vue-template-compiler@^2.7.16:
|
vue-template-compiler@^2.7.14:
|
||||||
version "2.7.16"
|
version "2.7.14"
|
||||||
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz#c81b2d47753264c77ac03b9966a46637482bb03b"
|
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz#4545b7dfb88090744c1577ae5ac3f964e61634b1"
|
||||||
integrity sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==
|
integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
de-indent "^1.0.2"
|
de-indent "^1.0.2"
|
||||||
he "^1.2.0"
|
he "^1.2.0"
|
||||||
|
|
||||||
vue@^3.5.11:
|
vue@^3.2.45:
|
||||||
version "3.5.11"
|
version "3.2.45"
|
||||||
resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.11.tgz#3e307183797629f701e303a0a008f517ae031483"
|
resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.45.tgz#94a116784447eb7dbd892167784619fef379b3c8"
|
||||||
integrity sha512-/8Wurrd9J3lb72FTQS7gRMNQD4nztTtKPmuDuPuhqXmmpD6+skVjAeahNpVzsuky6Sy9gy7wn8UadqPtt9SQIg==
|
integrity sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/compiler-dom" "3.5.11"
|
"@vue/compiler-dom" "3.2.45"
|
||||||
"@vue/compiler-sfc" "3.5.11"
|
"@vue/compiler-sfc" "3.2.45"
|
||||||
"@vue/runtime-dom" "3.5.11"
|
"@vue/runtime-dom" "3.2.45"
|
||||||
"@vue/server-renderer" "3.5.11"
|
"@vue/server-renderer" "3.2.45"
|
||||||
"@vue/shared" "3.5.11"
|
"@vue/shared" "3.2.45"
|
||||||
|
|
||||||
vuetify@^3.7.2:
|
vuetify@^3.0.1:
|
||||||
version "3.7.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-3.7.2.tgz#e37fa4c191ea00144de5943315cbf77ddb80448d"
|
resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-3.0.2.tgz#734166f0800e47b9d4a7e714b943534d91b0579d"
|
||||||
integrity sha512-q0WTcRG977+a9Dqhb8TOaPm+Xmvj0oVhnBJhAdHWFSov3HhHTTxlH2nXP/GBTXZuuMHDbBeIWFuUR2/1Fx0PPw==
|
integrity sha512-d+lb8DHUrrn9GnKaZW1dEApjIEamUcZn1HxomiQ0+y8t+jKjktpruo16AvAjpEHhAcCeWZ5RuK/S9HdT6z68Uw==
|
||||||
|
|
||||||
vuex@^4.1.0:
|
vuex@^4.1.0:
|
||||||
version "4.1.0"
|
version "4.1.0"
|
||||||
|
Loading…
Reference in New Issue
Block a user