Criada a API do site
This commit is contained in:
		
							
								
								
									
										630
									
								
								app/app.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										630
									
								
								app/app.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,630 @@
 | 
			
		||||
from flask import Flask, request, jsonify
 | 
			
		||||
from flask_cors import CORS
 | 
			
		||||
from pymongo import MongoClient
 | 
			
		||||
from datetime import datetime, timedelta
 | 
			
		||||
import matplotlib
 | 
			
		||||
matplotlib.use('Agg')
 | 
			
		||||
import matplotlib.pyplot as plt
 | 
			
		||||
import base64
 | 
			
		||||
import io
 | 
			
		||||
import bcrypt
 | 
			
		||||
import os
 | 
			
		||||
from bson import ObjectId
 | 
			
		||||
import json
 | 
			
		||||
 | 
			
		||||
app = Flask(__name__)
 | 
			
		||||
CORS(app)
 | 
			
		||||
 | 
			
		||||
# Configurações do MongoDB
 | 
			
		||||
MONGO_URI = os.getenv('MONGO_URI', 'mongodb://localhost:27017/')
 | 
			
		||||
DB_NAME = 'CtrlCash'
 | 
			
		||||
 | 
			
		||||
# Conexão com MongoDB
 | 
			
		||||
try:
 | 
			
		||||
    client = MongoClient(MONGO_URI)
 | 
			
		||||
    db = client[DB_NAME]
 | 
			
		||||
    print(f"✅ Conectado ao MongoDB: {DB_NAME}")
 | 
			
		||||
except Exception as e:
 | 
			
		||||
    print(f"❌ Erro ao conectar com MongoDB: {e}")
 | 
			
		||||
    exit(1)
 | 
			
		||||
 | 
			
		||||
# Collections
 | 
			
		||||
users_collection = db['users']
 | 
			
		||||
transactions_collection = db['transactions']
 | 
			
		||||
categories_collection = db['categories']
 | 
			
		||||
 | 
			
		||||
class JSONEncoder(json.JSONEncoder):
 | 
			
		||||
    def default(self, obj):
 | 
			
		||||
        if isinstance(obj, ObjectId):
 | 
			
		||||
            return str(obj)
 | 
			
		||||
        if isinstance(obj, datetime):
 | 
			
		||||
            return obj.isoformat()
 | 
			
		||||
        return super().default(obj)
 | 
			
		||||
 | 
			
		||||
app.json_encoder = JSONEncoder
 | 
			
		||||
 | 
			
		||||
# Categorias padrão
 | 
			
		||||
default_categories = [
 | 
			
		||||
    {"name": "Alimentação", "type": "expense", "color": "#FF6B6B"},
 | 
			
		||||
    {"name": "Transporte", "type": "expense", "color": "#4ECDC4"},
 | 
			
		||||
    {"name": "Moradia", "type": "expense", "color": "#45B7D1"},
 | 
			
		||||
    {"name": "Saúde", "type": "expense", "color": "#96CEB4"},
 | 
			
		||||
    {"name": "Educação", "type": "expense", "color": "#FFEAA7"},
 | 
			
		||||
    {"name": "Lazer", "type": "expense", "color": "#DDA0DD"},
 | 
			
		||||
    {"name": "Salário", "type": "income", "color": "#98D8C8"},
 | 
			
		||||
    {"name": "Investimentos", "type": "income", "color": "#F7DC6F"},
 | 
			
		||||
    {"name": "Freelance", "type": "income", "color": "#BB8FCE"},
 | 
			
		||||
    {"name": "Outros", "type": "income", "color": "#95a5a6"},
 | 
			
		||||
    {"name": "Outros", "type": "expense", "color": "#95a5a6"}
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
# Funções auxiliares
 | 
			
		||||
def hash_password(password):
 | 
			
		||||
    return bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
 | 
			
		||||
 | 
			
		||||
def check_password(password, hashed):
 | 
			
		||||
    return bcrypt.checkpw(password.encode('utf-8'), hashed.encode('utf-8'))
 | 
			
		||||
 | 
			
		||||
def init_default_categories(user_id):
 | 
			
		||||
    """Insere categorias padrão para um usuário"""
 | 
			
		||||
    categories = []
 | 
			
		||||
    for cat in default_categories:
 | 
			
		||||
        categories.append({
 | 
			
		||||
            **cat,
 | 
			
		||||
            "user_id": ObjectId(user_id),
 | 
			
		||||
            "created_at": datetime.now()
 | 
			
		||||
        })
 | 
			
		||||
    if categories:
 | 
			
		||||
        categories_collection.insert_many(categories)
 | 
			
		||||
 | 
			
		||||
# ROTAS DE AUTENTICAÇÃO
 | 
			
		||||
@app.route('/api/auth/register', methods=['POST'])
 | 
			
		||||
def register():
 | 
			
		||||
    try:
 | 
			
		||||
        data = request.get_json()
 | 
			
		||||
        email = data.get('email', '').strip().lower()
 | 
			
		||||
        password = data.get('password', '')
 | 
			
		||||
        name = data.get('name', '').strip()
 | 
			
		||||
        
 | 
			
		||||
        if not email or not password or not name:
 | 
			
		||||
            return jsonify({"error": "Todos os campos são obrigatórios"}), 400
 | 
			
		||||
        
 | 
			
		||||
        if len(password) < 6:
 | 
			
		||||
            return jsonify({"error": "A senha deve ter pelo menos 6 caracteres"}), 400
 | 
			
		||||
        
 | 
			
		||||
        # Verificar se usuário já existe
 | 
			
		||||
        if users_collection.find_one({"email": email}):
 | 
			
		||||
            return jsonify({"error": "Email já cadastrado"}), 400
 | 
			
		||||
        
 | 
			
		||||
        # Criar usuário
 | 
			
		||||
        user_data = {
 | 
			
		||||
            'email': email,
 | 
			
		||||
            'password': hash_password(password),
 | 
			
		||||
            'name': name,
 | 
			
		||||
            'created_at': datetime.now(),
 | 
			
		||||
            'profile': {
 | 
			
		||||
                'monthly_income_goal': 5000,
 | 
			
		||||
                'monthly_expense_limit': 2500,
 | 
			
		||||
                'currency': 'BRL'
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        result = users_collection.insert_one(user_data)
 | 
			
		||||
        user_id = result.inserted_id
 | 
			
		||||
        
 | 
			
		||||
        # Inicializar categorias
 | 
			
		||||
        init_default_categories(user_id)
 | 
			
		||||
        
 | 
			
		||||
        return jsonify({
 | 
			
		||||
            "message": "Usuário criado com sucesso",
 | 
			
		||||
            "user": {
 | 
			
		||||
                "id": str(user_id),
 | 
			
		||||
                "email": email,
 | 
			
		||||
                "name": name,
 | 
			
		||||
                "profile": user_data['profile']
 | 
			
		||||
            }
 | 
			
		||||
        }), 201
 | 
			
		||||
        
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"Erro no registro: {e}")
 | 
			
		||||
        return jsonify({"error": "Erro interno do servidor"}), 500
 | 
			
		||||
 | 
			
		||||
@app.route('/api/auth/login', methods=['POST'])
 | 
			
		||||
def login():
 | 
			
		||||
    try:
 | 
			
		||||
        data = request.get_json()
 | 
			
		||||
        email = data.get('email', '').strip().lower()
 | 
			
		||||
        password = data.get('password', '')
 | 
			
		||||
        
 | 
			
		||||
        if not email or not password:
 | 
			
		||||
            return jsonify({"error": "Email e senha são obrigatórios"}), 400
 | 
			
		||||
        
 | 
			
		||||
        user = users_collection.find_one({"email": email})
 | 
			
		||||
        
 | 
			
		||||
        if not user or not check_password(password, user['password']):
 | 
			
		||||
            return jsonify({"error": "Credenciais inválidas"}), 401
 | 
			
		||||
        
 | 
			
		||||
        return jsonify({
 | 
			
		||||
            "message": "Login realizado com sucesso",
 | 
			
		||||
            "user": {
 | 
			
		||||
                "id": str(user['_id']),
 | 
			
		||||
                "email": user['email'],
 | 
			
		||||
                "name": user['name'],
 | 
			
		||||
                "profile": user.get('profile', {})
 | 
			
		||||
            }
 | 
			
		||||
        }), 200
 | 
			
		||||
        
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"Erro no login: {e}")
 | 
			
		||||
        return jsonify({"error": "Erro interno do servidor"}), 500
 | 
			
		||||
 | 
			
		||||
# ROTAS DE TRANSAÇÕES
 | 
			
		||||
@app.route('/api/transactions', methods=['GET'])
 | 
			
		||||
def get_transactions():
 | 
			
		||||
    try:
 | 
			
		||||
        user_id = request.args.get('user_id')
 | 
			
		||||
        if not user_id:
 | 
			
		||||
            return jsonify({"transactions": []}), 200
 | 
			
		||||
        
 | 
			
		||||
        transactions = list(transactions_collection.find(
 | 
			
		||||
            {"user_id": ObjectId(user_id)}
 | 
			
		||||
        ).sort("date", -1))
 | 
			
		||||
        
 | 
			
		||||
        # Converter ObjectId para string
 | 
			
		||||
        for transaction in transactions:
 | 
			
		||||
            transaction['id'] = str(transaction['_id'])
 | 
			
		||||
            transaction['user_id'] = str(transaction['user_id'])
 | 
			
		||||
            del transaction['_id']
 | 
			
		||||
        
 | 
			
		||||
        return jsonify({"transactions": transactions}), 200
 | 
			
		||||
        
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"Erro ao buscar transações: {e}")
 | 
			
		||||
        return jsonify({"error": "Erro ao buscar transações"}), 500
 | 
			
		||||
 | 
			
		||||
@app.route('/api/transactions', methods=['POST'])
 | 
			
		||||
def add_transaction():
 | 
			
		||||
    try:
 | 
			
		||||
        data = request.get_json()
 | 
			
		||||
        user_id = data.get('user_id')
 | 
			
		||||
        
 | 
			
		||||
        if not user_id:
 | 
			
		||||
            return jsonify({"error": "User ID é obrigatório"}), 400
 | 
			
		||||
        
 | 
			
		||||
        # Validar dados
 | 
			
		||||
        amount = float(data.get('amount', 0))
 | 
			
		||||
        description = data.get('description', '').strip()
 | 
			
		||||
        category = data.get('category', 'Outros')
 | 
			
		||||
        transaction_type = data.get('type', 'expense')
 | 
			
		||||
        date_str = data.get('date', '')
 | 
			
		||||
        
 | 
			
		||||
        if amount <= 0:
 | 
			
		||||
            return jsonify({"error": "Valor deve ser maior que zero"}), 400
 | 
			
		||||
        
 | 
			
		||||
        if not description:
 | 
			
		||||
            return jsonify({"error": "Descrição é obrigatória"}), 400
 | 
			
		||||
        
 | 
			
		||||
        # Usar data exata do frontend
 | 
			
		||||
        if not date_str:
 | 
			
		||||
            date_str = datetime.now().strftime('%Y-%m-%d')
 | 
			
		||||
        
 | 
			
		||||
        new_transaction = {
 | 
			
		||||
            "user_id": ObjectId(user_id),
 | 
			
		||||
            "amount": amount,
 | 
			
		||||
            "description": description,
 | 
			
		||||
            "category": category,
 | 
			
		||||
            "type": transaction_type,
 | 
			
		||||
            "date": date_str,
 | 
			
		||||
            "created_at": datetime.now()
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        result = transactions_collection.insert_one(new_transaction)
 | 
			
		||||
        new_transaction['id'] = str(result.inserted_id)
 | 
			
		||||
        new_transaction['user_id'] = user_id
 | 
			
		||||
        del new_transaction['_id']
 | 
			
		||||
        
 | 
			
		||||
        return jsonify({
 | 
			
		||||
            "message": "Transação adicionada com sucesso",
 | 
			
		||||
            "transaction": new_transaction
 | 
			
		||||
        }), 201
 | 
			
		||||
        
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"Erro ao adicionar transação: {e}")
 | 
			
		||||
        return jsonify({"error": "Erro ao adicionar transação"}), 500
 | 
			
		||||
 | 
			
		||||
@app.route('/api/transactions/<transaction_id>', methods=['DELETE'])
 | 
			
		||||
def delete_transaction(transaction_id):
 | 
			
		||||
    try:
 | 
			
		||||
        user_id = request.args.get('user_id')
 | 
			
		||||
        if not user_id:
 | 
			
		||||
            return jsonify({"error": "User ID é obrigatório"}), 400
 | 
			
		||||
        
 | 
			
		||||
        result = transactions_collection.delete_one({
 | 
			
		||||
            "_id": ObjectId(transaction_id),
 | 
			
		||||
            "user_id": ObjectId(user_id)
 | 
			
		||||
        })
 | 
			
		||||
        
 | 
			
		||||
        if result.deleted_count == 0:
 | 
			
		||||
            return jsonify({"error": "Transação não encontrada"}), 404
 | 
			
		||||
        
 | 
			
		||||
        return jsonify({"message": "Transação deletada com sucesso"}), 200
 | 
			
		||||
        
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"Erro ao deletar transação: {e}")
 | 
			
		||||
        return jsonify({"error": "Erro ao deletar transação"}), 500
 | 
			
		||||
 | 
			
		||||
# ROTAS DE CATEGORIAS
 | 
			
		||||
@app.route('/api/categories', methods=['GET'])
 | 
			
		||||
def get_categories():
 | 
			
		||||
    try:
 | 
			
		||||
        user_id = request.args.get('user_id')
 | 
			
		||||
        
 | 
			
		||||
        if user_id:
 | 
			
		||||
            # Buscar categorias do usuário
 | 
			
		||||
            categories = list(categories_collection.find({"user_id": ObjectId(user_id)}))
 | 
			
		||||
            for category in categories:
 | 
			
		||||
                category['id'] = str(category['_id'])
 | 
			
		||||
                category['user_id'] = str(category['user_id'])
 | 
			
		||||
                del category['_id']
 | 
			
		||||
        else:
 | 
			
		||||
            # Retornar categorias padrão
 | 
			
		||||
            categories = [{"id": i, **cat} for i, cat in enumerate(default_categories)]
 | 
			
		||||
        
 | 
			
		||||
        return jsonify({"categories": categories}), 200
 | 
			
		||||
        
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"Erro ao buscar categorias: {e}")
 | 
			
		||||
        return jsonify({"categories": default_categories}), 200
 | 
			
		||||
 | 
			
		||||
@app.route('/api/categories', methods=['POST'])
 | 
			
		||||
def add_category():
 | 
			
		||||
    try:
 | 
			
		||||
        data = request.get_json()
 | 
			
		||||
        user_id = data.get('user_id')
 | 
			
		||||
        name = data.get('name', '').strip()
 | 
			
		||||
        category_type = data.get('type')
 | 
			
		||||
        color = data.get('color', '#6c757d')
 | 
			
		||||
        
 | 
			
		||||
        if not user_id:
 | 
			
		||||
            return jsonify({"error": "User ID é obrigatório"}), 400
 | 
			
		||||
        
 | 
			
		||||
        if not name:
 | 
			
		||||
            return jsonify({"error": "Nome da categoria é obrigatório"}), 400
 | 
			
		||||
        
 | 
			
		||||
        if not category_type or category_type not in ['income', 'expense']:
 | 
			
		||||
            return jsonify({"error": "Tipo de categoria inválido"}), 400
 | 
			
		||||
        
 | 
			
		||||
        # Verificar se categoria já existe
 | 
			
		||||
        existing_category = categories_collection.find_one({
 | 
			
		||||
            "user_id": ObjectId(user_id),
 | 
			
		||||
            "name": name,
 | 
			
		||||
            "type": category_type
 | 
			
		||||
        })
 | 
			
		||||
        
 | 
			
		||||
        if existing_category:
 | 
			
		||||
            return jsonify({"error": "Categoria já existe"}), 400
 | 
			
		||||
        
 | 
			
		||||
        new_category = {
 | 
			
		||||
            "user_id": ObjectId(user_id),
 | 
			
		||||
            "name": name,
 | 
			
		||||
            "type": category_type,
 | 
			
		||||
            "color": color,
 | 
			
		||||
            "created_at": datetime.now()
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        result = categories_collection.insert_one(new_category)
 | 
			
		||||
        new_category['id'] = str(result.inserted_id)
 | 
			
		||||
        new_category['user_id'] = user_id
 | 
			
		||||
        del new_category['_id']
 | 
			
		||||
        
 | 
			
		||||
        return jsonify({
 | 
			
		||||
            "message": "Categoria adicionada com sucesso",
 | 
			
		||||
            "category": new_category
 | 
			
		||||
        }), 201
 | 
			
		||||
        
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"Erro ao adicionar categoria: {e}")
 | 
			
		||||
        return jsonify({"error": "Erro ao adicionar categoria"}), 500
 | 
			
		||||
 | 
			
		||||
# ROTAS DO DASHBOARD
 | 
			
		||||
@app.route('/api/dashboard/summary', methods=['GET'])
 | 
			
		||||
def get_dashboard_summary():
 | 
			
		||||
    try:
 | 
			
		||||
        user_id = request.args.get('user_id')
 | 
			
		||||
        if not user_id:
 | 
			
		||||
            return jsonify({
 | 
			
		||||
                "total_income": 0,
 | 
			
		||||
                "total_expenses": 0,
 | 
			
		||||
                "balance": 0,
 | 
			
		||||
                "recent_transactions": []
 | 
			
		||||
            }), 200
 | 
			
		||||
        
 | 
			
		||||
        # Calcular totais do mês atual
 | 
			
		||||
        start_of_month = datetime.now().replace(day=1, hour=0, minute=0, second=0, microsecond=0)
 | 
			
		||||
        
 | 
			
		||||
        # Pipeline para receitas do mês
 | 
			
		||||
        pipeline_income = [
 | 
			
		||||
            {"$match": {
 | 
			
		||||
                "user_id": ObjectId(user_id),
 | 
			
		||||
                "type": "income",
 | 
			
		||||
                "date": {"$gte": start_of_month.strftime('%Y-%m-%d')}
 | 
			
		||||
            }},
 | 
			
		||||
            {"$group": {"_id": None, "total": {"$sum": "$amount"}}}
 | 
			
		||||
        ]
 | 
			
		||||
        
 | 
			
		||||
        # Pipeline para despesas do mês
 | 
			
		||||
        pipeline_expenses = [
 | 
			
		||||
            {"$match": {
 | 
			
		||||
                "user_id": ObjectId(user_id),
 | 
			
		||||
                "type": "expense",
 | 
			
		||||
                "date": {"$gte": start_of_month.strftime('%Y-%m-%d')}
 | 
			
		||||
            }},
 | 
			
		||||
            {"$group": {"_id": None, "total": {"$sum": "$amount"}}}
 | 
			
		||||
        ]
 | 
			
		||||
        
 | 
			
		||||
        income_result = list(transactions_collection.aggregate(pipeline_income))
 | 
			
		||||
        expense_result = list(transactions_collection.aggregate(pipeline_expenses))
 | 
			
		||||
        
 | 
			
		||||
        total_income = income_result[0]['total'] if income_result else 0
 | 
			
		||||
        total_expenses = expense_result[0]['total'] if expense_result else 0
 | 
			
		||||
        balance = total_income - total_expenses
 | 
			
		||||
        
 | 
			
		||||
        # Últimas 5 transações
 | 
			
		||||
        recent_transactions = list(transactions_collection.find(
 | 
			
		||||
            {"user_id": ObjectId(user_id)}
 | 
			
		||||
        ).sort("date", -1).limit(5))
 | 
			
		||||
        
 | 
			
		||||
        for transaction in recent_transactions:
 | 
			
		||||
            transaction['id'] = str(transaction['_id'])
 | 
			
		||||
            transaction['user_id'] = str(transaction['user_id'])
 | 
			
		||||
            del transaction['_id']
 | 
			
		||||
        
 | 
			
		||||
        return jsonify({
 | 
			
		||||
            "total_income": round(total_income, 2),
 | 
			
		||||
            "total_expenses": round(total_expenses, 2),
 | 
			
		||||
            "balance": round(balance, 2),
 | 
			
		||||
            "recent_transactions": recent_transactions
 | 
			
		||||
        }), 200
 | 
			
		||||
        
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"Erro no dashboard: {e}")
 | 
			
		||||
        return jsonify({
 | 
			
		||||
            "total_income": 0,
 | 
			
		||||
            "total_expenses": 0,
 | 
			
		||||
            "balance": 0,
 | 
			
		||||
            "recent_transactions": []
 | 
			
		||||
        }), 200
 | 
			
		||||
 | 
			
		||||
@app.route('/api/dashboard/chart')
 | 
			
		||||
def get_chart():
 | 
			
		||||
    try:
 | 
			
		||||
        user_id = request.args.get('user_id')
 | 
			
		||||
        chart_type = request.args.get('type', 'monthly')
 | 
			
		||||
        
 | 
			
		||||
        if not user_id:
 | 
			
		||||
            return jsonify({"error": "User ID é obrigatório"}), 400
 | 
			
		||||
        
 | 
			
		||||
        plt.figure(figsize=(10, 6))
 | 
			
		||||
        
 | 
			
		||||
        if chart_type == 'monthly':
 | 
			
		||||
            # Últimos 6 meses
 | 
			
		||||
            six_months_ago = datetime.now() - timedelta(days=180)
 | 
			
		||||
            
 | 
			
		||||
            pipeline = [
 | 
			
		||||
                {"$match": {
 | 
			
		||||
                    "user_id": ObjectId(user_id),
 | 
			
		||||
                    "date": {"$gte": six_months_ago.strftime('%Y-%m-%d')}
 | 
			
		||||
                }},
 | 
			
		||||
                {"$group": {
 | 
			
		||||
                    "_id": {"$substr": ["$date", 0, 7]},  # Extrair YYYY-MM
 | 
			
		||||
                    "income": {"$sum": {"$cond": [{"$eq": ["$type", "income"]}, "$amount", 0]}},
 | 
			
		||||
                    "expenses": {"$sum": {"$cond": [{"$eq": ["$type", "expense"]}, "$amount", 0]}}
 | 
			
		||||
                }},
 | 
			
		||||
                {"$sort": {"_id": 1}},
 | 
			
		||||
                {"$limit": 6}
 | 
			
		||||
            ]
 | 
			
		||||
            
 | 
			
		||||
            result = list(transactions_collection.aggregate(pipeline))
 | 
			
		||||
            
 | 
			
		||||
            if result:
 | 
			
		||||
                months = [r['_id'] for r in result]
 | 
			
		||||
                income = [r['income'] for r in result]
 | 
			
		||||
                expenses = [r['expenses'] for r in result]
 | 
			
		||||
                
 | 
			
		||||
                x = range(len(months))
 | 
			
		||||
                width = 0.35
 | 
			
		||||
                
 | 
			
		||||
                plt.bar([i - width/2 for i in x], income, width, label='Receitas', color='#28a745')
 | 
			
		||||
                plt.bar([i + width/2 for i in x], expenses, width, label='Despesas', color='#dc3545')
 | 
			
		||||
                plt.xlabel('Mês')
 | 
			
		||||
                plt.ylabel('Valor (R$)')
 | 
			
		||||
                plt.title('Receitas vs Despesas - Últimos 6 Meses')
 | 
			
		||||
                plt.xticks(x, months, rotation=45)
 | 
			
		||||
                plt.legend()
 | 
			
		||||
                plt.tight_layout()
 | 
			
		||||
            else:
 | 
			
		||||
                plt.text(0.5, 0.5, 'Sem dados para exibir', 
 | 
			
		||||
                        ha='center', va='center', transform=plt.gca().transAxes)
 | 
			
		||||
            
 | 
			
		||||
        elif chart_type == 'categories':
 | 
			
		||||
            # Gastos por categoria (últimos 30 dias)
 | 
			
		||||
            thirty_days_ago = datetime.now() - timedelta(days=30)
 | 
			
		||||
            
 | 
			
		||||
            pipeline = [
 | 
			
		||||
                {"$match": {
 | 
			
		||||
                    "user_id": ObjectId(user_id),
 | 
			
		||||
                    "type": "expense",
 | 
			
		||||
                    "date": {"$gte": thirty_days_ago.strftime('%Y-%m-%d')}
 | 
			
		||||
                }},
 | 
			
		||||
                {"$group": {
 | 
			
		||||
                    "_id": "$category",
 | 
			
		||||
                    "total": {"$sum": "$amount"}
 | 
			
		||||
                }}
 | 
			
		||||
            ]
 | 
			
		||||
            
 | 
			
		||||
            result = list(transactions_collection.aggregate(pipeline))
 | 
			
		||||
            
 | 
			
		||||
            if result:
 | 
			
		||||
                categories = [r['_id'] for r in result]
 | 
			
		||||
                amounts = [r['total'] for r in result]
 | 
			
		||||
                
 | 
			
		||||
                plt.pie(amounts, labels=categories, autopct='%1.1f%%', startangle=90)
 | 
			
		||||
                plt.title('Distribuição de Gastos por Categoria (Últimos 30 dias)')
 | 
			
		||||
            else:
 | 
			
		||||
                plt.text(0.5, 0.5, 'Sem dados de gastos', 
 | 
			
		||||
                        ha='center', va='center', transform=plt.gca().transAxes)
 | 
			
		||||
        
 | 
			
		||||
        # Converter para base64
 | 
			
		||||
        buffer = io.BytesIO()
 | 
			
		||||
        plt.savefig(buffer, format='png', dpi=100, bbox_inches='tight')
 | 
			
		||||
        buffer.seek(0)
 | 
			
		||||
        image_base64 = base64.b64encode(buffer.getvalue()).decode()
 | 
			
		||||
        plt.close()
 | 
			
		||||
        
 | 
			
		||||
        return jsonify({
 | 
			
		||||
            "chart": f"data:image/png;base64,{image_base64}"
 | 
			
		||||
        }), 200
 | 
			
		||||
        
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"Erro ao gerar gráfico: {e}")
 | 
			
		||||
        return jsonify({"error": "Erro ao gerar gráfico"}), 500
 | 
			
		||||
 | 
			
		||||
# ROTAS DE PERFIL
 | 
			
		||||
@app.route('/api/user/profile', methods=['GET'])
 | 
			
		||||
def get_profile():
 | 
			
		||||
    try:
 | 
			
		||||
        user_id = request.args.get('user_id')
 | 
			
		||||
        if not user_id:
 | 
			
		||||
            return jsonify({"error": "User ID é obrigatório"}), 400
 | 
			
		||||
        
 | 
			
		||||
        user = users_collection.find_one({"_id": ObjectId(user_id)})
 | 
			
		||||
        if not user:
 | 
			
		||||
            return jsonify({"error": "Usuário não encontrado"}), 404
 | 
			
		||||
        
 | 
			
		||||
        return jsonify({
 | 
			
		||||
            "user": {
 | 
			
		||||
                "id": str(user['_id']),
 | 
			
		||||
                "name": user['name'],
 | 
			
		||||
                "email": user['email'],
 | 
			
		||||
                "profile": user.get('profile', {})
 | 
			
		||||
            }
 | 
			
		||||
        }), 200
 | 
			
		||||
        
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"Erro ao buscar perfil: {e}")
 | 
			
		||||
        return jsonify({"error": "Erro ao buscar perfil"}), 500
 | 
			
		||||
 | 
			
		||||
@app.route('/api/user/profile', methods=['PUT'])
 | 
			
		||||
def update_profile():
 | 
			
		||||
    try:
 | 
			
		||||
        data = request.get_json()
 | 
			
		||||
        user_id = data.get('user_id')
 | 
			
		||||
        name = data.get('name', '').strip()
 | 
			
		||||
        email = data.get('email', '').strip().lower()
 | 
			
		||||
        profile = data.get('profile', {})
 | 
			
		||||
        
 | 
			
		||||
        if not user_id:
 | 
			
		||||
            return jsonify({"error": "User ID é obrigatório"}), 400
 | 
			
		||||
        
 | 
			
		||||
        if not name:
 | 
			
		||||
            return jsonify({"error": "Nome é obrigatório"}), 400
 | 
			
		||||
        
 | 
			
		||||
        # Verificar se email já existe (para outro usuário)
 | 
			
		||||
        existing_user = users_collection.find_one({
 | 
			
		||||
            "email": email,
 | 
			
		||||
            "_id": {"$ne": ObjectId(user_id)}
 | 
			
		||||
        })
 | 
			
		||||
        
 | 
			
		||||
        if existing_user:
 | 
			
		||||
            return jsonify({"error": "Email já está em uso"}), 400
 | 
			
		||||
        
 | 
			
		||||
        update_data = {
 | 
			
		||||
            "name": name,
 | 
			
		||||
            "email": email,
 | 
			
		||||
            "profile": profile
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        result = users_collection.update_one(
 | 
			
		||||
            {"_id": ObjectId(user_id)},
 | 
			
		||||
            {"$set": update_data}
 | 
			
		||||
        )
 | 
			
		||||
        
 | 
			
		||||
        if result.modified_count == 0:
 | 
			
		||||
            return jsonify({"error": "Nenhuma alteração realizada"}), 400
 | 
			
		||||
        
 | 
			
		||||
        return jsonify({
 | 
			
		||||
            "message": "Perfil atualizado com sucesso",
 | 
			
		||||
            "user": {
 | 
			
		||||
                "id": user_id,
 | 
			
		||||
                "name": name,
 | 
			
		||||
                "email": email,
 | 
			
		||||
                "profile": profile
 | 
			
		||||
            }
 | 
			
		||||
        }), 200
 | 
			
		||||
        
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"Erro ao atualizar perfil: {e}")
 | 
			
		||||
        return jsonify({"error": "Erro ao atualizar perfil"}), 500
 | 
			
		||||
 | 
			
		||||
@app.route('/api/user/change-password', methods=['PUT'])
 | 
			
		||||
def change_password():
 | 
			
		||||
    try:
 | 
			
		||||
        data = request.get_json()
 | 
			
		||||
        user_id = data.get('user_id')
 | 
			
		||||
        current_password = data.get('current_password')
 | 
			
		||||
        new_password = data.get('new_password')
 | 
			
		||||
        
 | 
			
		||||
        if not user_id:
 | 
			
		||||
            return jsonify({"error": "User ID é obrigatório"}), 400
 | 
			
		||||
        
 | 
			
		||||
        user = users_collection.find_one({"_id": ObjectId(user_id)})
 | 
			
		||||
        if not user:
 | 
			
		||||
            return jsonify({"error": "Usuário não encontrado"}), 404
 | 
			
		||||
        
 | 
			
		||||
        if not check_password(current_password, user['password']):
 | 
			
		||||
            return jsonify({"error": "Senha atual incorreta"}), 400
 | 
			
		||||
        
 | 
			
		||||
        if len(new_password) < 6:
 | 
			
		||||
            return jsonify({"error": "A nova senha deve ter pelo menos 6 caracteres"}), 400
 | 
			
		||||
        
 | 
			
		||||
        users_collection.update_one(
 | 
			
		||||
            {"_id": ObjectId(user_id)},
 | 
			
		||||
            {"$set": {"password": hash_password(new_password)}}
 | 
			
		||||
        )
 | 
			
		||||
        
 | 
			
		||||
        return jsonify({"message": "Senha alterada com sucesso"}), 200
 | 
			
		||||
        
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"Erro ao alterar senha: {e}")
 | 
			
		||||
        return jsonify({"error": "Erro ao alterar senha"}), 500
 | 
			
		||||
 | 
			
		||||
# Rota health check
 | 
			
		||||
@app.route('/api/health', methods=['GET'])
 | 
			
		||||
def health_check():
 | 
			
		||||
    try:
 | 
			
		||||
        # Testar conexão com MongoDB
 | 
			
		||||
        client.admin.command('ismaster')
 | 
			
		||||
        return jsonify({
 | 
			
		||||
            "status": "OK", 
 | 
			
		||||
            "message": "Backend e MongoDB funcionando",
 | 
			
		||||
            "timestamp": datetime.now().isoformat()
 | 
			
		||||
        }), 200
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        return jsonify({
 | 
			
		||||
            "status": "ERROR",
 | 
			
		||||
            "message": f"Erro no MongoDB: {e}"
 | 
			
		||||
        }), 500
 | 
			
		||||
 | 
			
		||||
@app.route('/')
 | 
			
		||||
def index():
 | 
			
		||||
    return jsonify({
 | 
			
		||||
        "message": "CtrlCash API está funcionando!",
 | 
			
		||||
        "version": "1.0.0",
 | 
			
		||||
        "timestamp": datetime.now().isoformat()
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    print("🚀 Iniciando CtrlCash API com MongoDB...")
 | 
			
		||||
    print(f"📊 MongoDB: {MONGO_URI}")
 | 
			
		||||
    print(f"💾 Database: {DB_NAME}")
 | 
			
		||||
    app.run(debug=False, host='0.0.0.0', port=5000)
 | 
			
		||||
							
								
								
									
										12
									
								
								app/main.py
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								app/main.py
									
									
									
									
									
								
							@@ -1,12 +0,0 @@
 | 
			
		||||
from flask import Flask
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
app = Flask(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@app.route("/")
 | 
			
		||||
def hello_world():
 | 
			
		||||
    return "<p>Hello, World!</p>"
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    app.run() 
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/.bin/baseline-browser-mapping
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/.bin/baseline-browser-mapping
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
../baseline-browser-mapping/dist/cli.js
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/.bin/browserslist
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/.bin/browserslist
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
../browserslist/cli.js
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/.bin/esbuild
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/.bin/esbuild
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
../esbuild/bin/esbuild
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/.bin/is-docker
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/.bin/is-docker
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
../is-docker/cli.js
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/.bin/is-inside-container
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/.bin/is-inside-container
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
../is-inside-container/cli.js
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/.bin/jsesc
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/.bin/jsesc
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
../jsesc/bin/jsesc
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/.bin/json5
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/.bin/json5
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
../json5/lib/cli.js
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/.bin/nanoid
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/.bin/nanoid
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
../nanoid/bin/nanoid.cjs
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/.bin/parser
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/.bin/parser
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
../@babel/parser/bin/babel-parser.js
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/.bin/rollup
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/.bin/rollup
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
../rollup/dist/bin/rollup
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/.bin/semver
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/.bin/semver
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
../semver/bin/semver.js
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/.bin/update-browserslist-db
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/.bin/update-browserslist-db
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
../update-browserslist-db/cli.js
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/.bin/vite
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/.bin/vite
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
../vite/bin/vite.js
 | 
			
		||||
							
								
								
									
										1825
									
								
								node_modules/.package-lock.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1825
									
								
								node_modules/.package-lock.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										25
									
								
								node_modules/.vite/deps/_metadata.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								node_modules/.vite/deps/_metadata.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
{
 | 
			
		||||
  "hash": "a30c5a62",
 | 
			
		||||
  "configHash": "53a2fb79",
 | 
			
		||||
  "lockfileHash": "47fc85cf",
 | 
			
		||||
  "browserHash": "a0c4fc9b",
 | 
			
		||||
  "optimized": {
 | 
			
		||||
    "vue": {
 | 
			
		||||
      "src": "../../vue/dist/vue.runtime.esm-bundler.js",
 | 
			
		||||
      "file": "vue.js",
 | 
			
		||||
      "fileHash": "5a14cf75",
 | 
			
		||||
      "needsInterop": false
 | 
			
		||||
    },
 | 
			
		||||
    "vue-router": {
 | 
			
		||||
      "src": "../../vue-router/dist/vue-router.mjs",
 | 
			
		||||
      "file": "vue-router.js",
 | 
			
		||||
      "fileHash": "3a66cd71",
 | 
			
		||||
      "needsInterop": false
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "chunks": {
 | 
			
		||||
    "chunk-LG6AQRJS": {
 | 
			
		||||
      "file": "chunk-LG6AQRJS.js"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12705
									
								
								node_modules/.vite/deps/chunk-LG6AQRJS.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12705
									
								
								node_modules/.vite/deps/chunk-LG6AQRJS.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										7
									
								
								node_modules/.vite/deps/chunk-LG6AQRJS.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/.vite/deps/chunk-LG6AQRJS.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										3
									
								
								node_modules/.vite/deps/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								node_modules/.vite/deps/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
{
 | 
			
		||||
  "type": "module"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2395
									
								
								node_modules/.vite/deps/vue-router.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2395
									
								
								node_modules/.vite/deps/vue-router.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										7
									
								
								node_modules/.vite/deps/vue-router.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/.vite/deps/vue-router.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										342
									
								
								node_modules/.vite/deps/vue.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										342
									
								
								node_modules/.vite/deps/vue.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,342 @@
 | 
			
		||||
import {
 | 
			
		||||
  BaseTransition,
 | 
			
		||||
  BaseTransitionPropsValidators,
 | 
			
		||||
  Comment,
 | 
			
		||||
  DeprecationTypes,
 | 
			
		||||
  EffectScope,
 | 
			
		||||
  ErrorCodes,
 | 
			
		||||
  ErrorTypeStrings,
 | 
			
		||||
  Fragment,
 | 
			
		||||
  KeepAlive,
 | 
			
		||||
  ReactiveEffect,
 | 
			
		||||
  Static,
 | 
			
		||||
  Suspense,
 | 
			
		||||
  Teleport,
 | 
			
		||||
  Text,
 | 
			
		||||
  TrackOpTypes,
 | 
			
		||||
  Transition,
 | 
			
		||||
  TransitionGroup,
 | 
			
		||||
  TriggerOpTypes,
 | 
			
		||||
  VueElement,
 | 
			
		||||
  assertNumber,
 | 
			
		||||
  callWithAsyncErrorHandling,
 | 
			
		||||
  callWithErrorHandling,
 | 
			
		||||
  camelize,
 | 
			
		||||
  capitalize,
 | 
			
		||||
  cloneVNode,
 | 
			
		||||
  compatUtils,
 | 
			
		||||
  compile,
 | 
			
		||||
  computed,
 | 
			
		||||
  createApp,
 | 
			
		||||
  createBaseVNode,
 | 
			
		||||
  createBlock,
 | 
			
		||||
  createCommentVNode,
 | 
			
		||||
  createElementBlock,
 | 
			
		||||
  createHydrationRenderer,
 | 
			
		||||
  createPropsRestProxy,
 | 
			
		||||
  createRenderer,
 | 
			
		||||
  createSSRApp,
 | 
			
		||||
  createSlots,
 | 
			
		||||
  createStaticVNode,
 | 
			
		||||
  createTextVNode,
 | 
			
		||||
  createVNode,
 | 
			
		||||
  customRef,
 | 
			
		||||
  defineAsyncComponent,
 | 
			
		||||
  defineComponent,
 | 
			
		||||
  defineCustomElement,
 | 
			
		||||
  defineEmits,
 | 
			
		||||
  defineExpose,
 | 
			
		||||
  defineModel,
 | 
			
		||||
  defineOptions,
 | 
			
		||||
  defineProps,
 | 
			
		||||
  defineSSRCustomElement,
 | 
			
		||||
  defineSlots,
 | 
			
		||||
  devtools,
 | 
			
		||||
  effect,
 | 
			
		||||
  effectScope,
 | 
			
		||||
  getCurrentInstance,
 | 
			
		||||
  getCurrentScope,
 | 
			
		||||
  getCurrentWatcher,
 | 
			
		||||
  getTransitionRawChildren,
 | 
			
		||||
  guardReactiveProps,
 | 
			
		||||
  h,
 | 
			
		||||
  handleError,
 | 
			
		||||
  hasInjectionContext,
 | 
			
		||||
  hydrate,
 | 
			
		||||
  hydrateOnIdle,
 | 
			
		||||
  hydrateOnInteraction,
 | 
			
		||||
  hydrateOnMediaQuery,
 | 
			
		||||
  hydrateOnVisible,
 | 
			
		||||
  initCustomFormatter,
 | 
			
		||||
  initDirectivesForSSR,
 | 
			
		||||
  inject,
 | 
			
		||||
  isMemoSame,
 | 
			
		||||
  isProxy,
 | 
			
		||||
  isReactive,
 | 
			
		||||
  isReadonly,
 | 
			
		||||
  isRef,
 | 
			
		||||
  isRuntimeOnly,
 | 
			
		||||
  isShallow,
 | 
			
		||||
  isVNode,
 | 
			
		||||
  markRaw,
 | 
			
		||||
  mergeDefaults,
 | 
			
		||||
  mergeModels,
 | 
			
		||||
  mergeProps,
 | 
			
		||||
  nextTick,
 | 
			
		||||
  normalizeClass,
 | 
			
		||||
  normalizeProps,
 | 
			
		||||
  normalizeStyle,
 | 
			
		||||
  onActivated,
 | 
			
		||||
  onBeforeMount,
 | 
			
		||||
  onBeforeUnmount,
 | 
			
		||||
  onBeforeUpdate,
 | 
			
		||||
  onDeactivated,
 | 
			
		||||
  onErrorCaptured,
 | 
			
		||||
  onMounted,
 | 
			
		||||
  onRenderTracked,
 | 
			
		||||
  onRenderTriggered,
 | 
			
		||||
  onScopeDispose,
 | 
			
		||||
  onServerPrefetch,
 | 
			
		||||
  onUnmounted,
 | 
			
		||||
  onUpdated,
 | 
			
		||||
  onWatcherCleanup,
 | 
			
		||||
  openBlock,
 | 
			
		||||
  popScopeId,
 | 
			
		||||
  provide,
 | 
			
		||||
  proxyRefs,
 | 
			
		||||
  pushScopeId,
 | 
			
		||||
  queuePostFlushCb,
 | 
			
		||||
  reactive,
 | 
			
		||||
  readonly,
 | 
			
		||||
  ref,
 | 
			
		||||
  registerRuntimeCompiler,
 | 
			
		||||
  render,
 | 
			
		||||
  renderList,
 | 
			
		||||
  renderSlot,
 | 
			
		||||
  resolveComponent,
 | 
			
		||||
  resolveDirective,
 | 
			
		||||
  resolveDynamicComponent,
 | 
			
		||||
  resolveFilter,
 | 
			
		||||
  resolveTransitionHooks,
 | 
			
		||||
  setBlockTracking,
 | 
			
		||||
  setDevtoolsHook,
 | 
			
		||||
  setTransitionHooks,
 | 
			
		||||
  shallowReactive,
 | 
			
		||||
  shallowReadonly,
 | 
			
		||||
  shallowRef,
 | 
			
		||||
  ssrContextKey,
 | 
			
		||||
  ssrUtils,
 | 
			
		||||
  stop,
 | 
			
		||||
  toDisplayString,
 | 
			
		||||
  toHandlerKey,
 | 
			
		||||
  toHandlers,
 | 
			
		||||
  toRaw,
 | 
			
		||||
  toRef,
 | 
			
		||||
  toRefs,
 | 
			
		||||
  toValue,
 | 
			
		||||
  transformVNodeArgs,
 | 
			
		||||
  triggerRef,
 | 
			
		||||
  unref,
 | 
			
		||||
  useAttrs,
 | 
			
		||||
  useCssModule,
 | 
			
		||||
  useCssVars,
 | 
			
		||||
  useHost,
 | 
			
		||||
  useId,
 | 
			
		||||
  useModel,
 | 
			
		||||
  useSSRContext,
 | 
			
		||||
  useShadowRoot,
 | 
			
		||||
  useSlots,
 | 
			
		||||
  useTemplateRef,
 | 
			
		||||
  useTransitionState,
 | 
			
		||||
  vModelCheckbox,
 | 
			
		||||
  vModelDynamic,
 | 
			
		||||
  vModelRadio,
 | 
			
		||||
  vModelSelect,
 | 
			
		||||
  vModelText,
 | 
			
		||||
  vShow,
 | 
			
		||||
  version,
 | 
			
		||||
  warn,
 | 
			
		||||
  watch,
 | 
			
		||||
  watchEffect,
 | 
			
		||||
  watchPostEffect,
 | 
			
		||||
  watchSyncEffect,
 | 
			
		||||
  withAsyncContext,
 | 
			
		||||
  withCtx,
 | 
			
		||||
  withDefaults,
 | 
			
		||||
  withDirectives,
 | 
			
		||||
  withKeys,
 | 
			
		||||
  withMemo,
 | 
			
		||||
  withModifiers,
 | 
			
		||||
  withScopeId
 | 
			
		||||
} from "./chunk-LG6AQRJS.js";
 | 
			
		||||
export {
 | 
			
		||||
  BaseTransition,
 | 
			
		||||
  BaseTransitionPropsValidators,
 | 
			
		||||
  Comment,
 | 
			
		||||
  DeprecationTypes,
 | 
			
		||||
  EffectScope,
 | 
			
		||||
  ErrorCodes,
 | 
			
		||||
  ErrorTypeStrings,
 | 
			
		||||
  Fragment,
 | 
			
		||||
  KeepAlive,
 | 
			
		||||
  ReactiveEffect,
 | 
			
		||||
  Static,
 | 
			
		||||
  Suspense,
 | 
			
		||||
  Teleport,
 | 
			
		||||
  Text,
 | 
			
		||||
  TrackOpTypes,
 | 
			
		||||
  Transition,
 | 
			
		||||
  TransitionGroup,
 | 
			
		||||
  TriggerOpTypes,
 | 
			
		||||
  VueElement,
 | 
			
		||||
  assertNumber,
 | 
			
		||||
  callWithAsyncErrorHandling,
 | 
			
		||||
  callWithErrorHandling,
 | 
			
		||||
  camelize,
 | 
			
		||||
  capitalize,
 | 
			
		||||
  cloneVNode,
 | 
			
		||||
  compatUtils,
 | 
			
		||||
  compile,
 | 
			
		||||
  computed,
 | 
			
		||||
  createApp,
 | 
			
		||||
  createBlock,
 | 
			
		||||
  createCommentVNode,
 | 
			
		||||
  createElementBlock,
 | 
			
		||||
  createBaseVNode as createElementVNode,
 | 
			
		||||
  createHydrationRenderer,
 | 
			
		||||
  createPropsRestProxy,
 | 
			
		||||
  createRenderer,
 | 
			
		||||
  createSSRApp,
 | 
			
		||||
  createSlots,
 | 
			
		||||
  createStaticVNode,
 | 
			
		||||
  createTextVNode,
 | 
			
		||||
  createVNode,
 | 
			
		||||
  customRef,
 | 
			
		||||
  defineAsyncComponent,
 | 
			
		||||
  defineComponent,
 | 
			
		||||
  defineCustomElement,
 | 
			
		||||
  defineEmits,
 | 
			
		||||
  defineExpose,
 | 
			
		||||
  defineModel,
 | 
			
		||||
  defineOptions,
 | 
			
		||||
  defineProps,
 | 
			
		||||
  defineSSRCustomElement,
 | 
			
		||||
  defineSlots,
 | 
			
		||||
  devtools,
 | 
			
		||||
  effect,
 | 
			
		||||
  effectScope,
 | 
			
		||||
  getCurrentInstance,
 | 
			
		||||
  getCurrentScope,
 | 
			
		||||
  getCurrentWatcher,
 | 
			
		||||
  getTransitionRawChildren,
 | 
			
		||||
  guardReactiveProps,
 | 
			
		||||
  h,
 | 
			
		||||
  handleError,
 | 
			
		||||
  hasInjectionContext,
 | 
			
		||||
  hydrate,
 | 
			
		||||
  hydrateOnIdle,
 | 
			
		||||
  hydrateOnInteraction,
 | 
			
		||||
  hydrateOnMediaQuery,
 | 
			
		||||
  hydrateOnVisible,
 | 
			
		||||
  initCustomFormatter,
 | 
			
		||||
  initDirectivesForSSR,
 | 
			
		||||
  inject,
 | 
			
		||||
  isMemoSame,
 | 
			
		||||
  isProxy,
 | 
			
		||||
  isReactive,
 | 
			
		||||
  isReadonly,
 | 
			
		||||
  isRef,
 | 
			
		||||
  isRuntimeOnly,
 | 
			
		||||
  isShallow,
 | 
			
		||||
  isVNode,
 | 
			
		||||
  markRaw,
 | 
			
		||||
  mergeDefaults,
 | 
			
		||||
  mergeModels,
 | 
			
		||||
  mergeProps,
 | 
			
		||||
  nextTick,
 | 
			
		||||
  normalizeClass,
 | 
			
		||||
  normalizeProps,
 | 
			
		||||
  normalizeStyle,
 | 
			
		||||
  onActivated,
 | 
			
		||||
  onBeforeMount,
 | 
			
		||||
  onBeforeUnmount,
 | 
			
		||||
  onBeforeUpdate,
 | 
			
		||||
  onDeactivated,
 | 
			
		||||
  onErrorCaptured,
 | 
			
		||||
  onMounted,
 | 
			
		||||
  onRenderTracked,
 | 
			
		||||
  onRenderTriggered,
 | 
			
		||||
  onScopeDispose,
 | 
			
		||||
  onServerPrefetch,
 | 
			
		||||
  onUnmounted,
 | 
			
		||||
  onUpdated,
 | 
			
		||||
  onWatcherCleanup,
 | 
			
		||||
  openBlock,
 | 
			
		||||
  popScopeId,
 | 
			
		||||
  provide,
 | 
			
		||||
  proxyRefs,
 | 
			
		||||
  pushScopeId,
 | 
			
		||||
  queuePostFlushCb,
 | 
			
		||||
  reactive,
 | 
			
		||||
  readonly,
 | 
			
		||||
  ref,
 | 
			
		||||
  registerRuntimeCompiler,
 | 
			
		||||
  render,
 | 
			
		||||
  renderList,
 | 
			
		||||
  renderSlot,
 | 
			
		||||
  resolveComponent,
 | 
			
		||||
  resolveDirective,
 | 
			
		||||
  resolveDynamicComponent,
 | 
			
		||||
  resolveFilter,
 | 
			
		||||
  resolveTransitionHooks,
 | 
			
		||||
  setBlockTracking,
 | 
			
		||||
  setDevtoolsHook,
 | 
			
		||||
  setTransitionHooks,
 | 
			
		||||
  shallowReactive,
 | 
			
		||||
  shallowReadonly,
 | 
			
		||||
  shallowRef,
 | 
			
		||||
  ssrContextKey,
 | 
			
		||||
  ssrUtils,
 | 
			
		||||
  stop,
 | 
			
		||||
  toDisplayString,
 | 
			
		||||
  toHandlerKey,
 | 
			
		||||
  toHandlers,
 | 
			
		||||
  toRaw,
 | 
			
		||||
  toRef,
 | 
			
		||||
  toRefs,
 | 
			
		||||
  toValue,
 | 
			
		||||
  transformVNodeArgs,
 | 
			
		||||
  triggerRef,
 | 
			
		||||
  unref,
 | 
			
		||||
  useAttrs,
 | 
			
		||||
  useCssModule,
 | 
			
		||||
  useCssVars,
 | 
			
		||||
  useHost,
 | 
			
		||||
  useId,
 | 
			
		||||
  useModel,
 | 
			
		||||
  useSSRContext,
 | 
			
		||||
  useShadowRoot,
 | 
			
		||||
  useSlots,
 | 
			
		||||
  useTemplateRef,
 | 
			
		||||
  useTransitionState,
 | 
			
		||||
  vModelCheckbox,
 | 
			
		||||
  vModelDynamic,
 | 
			
		||||
  vModelRadio,
 | 
			
		||||
  vModelSelect,
 | 
			
		||||
  vModelText,
 | 
			
		||||
  vShow,
 | 
			
		||||
  version,
 | 
			
		||||
  warn,
 | 
			
		||||
  watch,
 | 
			
		||||
  watchEffect,
 | 
			
		||||
  watchPostEffect,
 | 
			
		||||
  watchSyncEffect,
 | 
			
		||||
  withAsyncContext,
 | 
			
		||||
  withCtx,
 | 
			
		||||
  withDefaults,
 | 
			
		||||
  withDirectives,
 | 
			
		||||
  withKeys,
 | 
			
		||||
  withMemo,
 | 
			
		||||
  withModifiers,
 | 
			
		||||
  withScopeId
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/.vite/deps/vue.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/.vite/deps/vue.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
{
 | 
			
		||||
  "version": 3,
 | 
			
		||||
  "sources": [],
 | 
			
		||||
  "sourcesContent": [],
 | 
			
		||||
  "mappings": "",
 | 
			
		||||
  "names": []
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										137
									
								
								node_modules/.vue-global-types/vue_3.5_0.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								node_modules/.vue-global-types/vue_3.5_0.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,137 @@
 | 
			
		||||
// @ts-nocheck
 | 
			
		||||
export {};
 | 
			
		||||
 | 
			
		||||
; declare global {
 | 
			
		||||
	const __VLS_directiveBindingRestFields: { instance: null, oldValue: null, modifiers: any, dir: any };
 | 
			
		||||
	const __VLS_unref: typeof import('vue').unref;
 | 
			
		||||
	const __VLS_placeholder: any;
 | 
			
		||||
 | 
			
		||||
	type __VLS_NativeElements = __VLS_SpreadMerge<SVGElementTagNameMap, HTMLElementTagNameMap>;
 | 
			
		||||
	type __VLS_IntrinsicElements = import('vue/jsx-runtime').JSX.IntrinsicElements;
 | 
			
		||||
	type __VLS_Element = import('vue/jsx-runtime').JSX.Element;
 | 
			
		||||
	type __VLS_GlobalComponents = import('vue').GlobalComponents;
 | 
			
		||||
	type __VLS_GlobalDirectives = import('vue').GlobalDirectives;
 | 
			
		||||
	type __VLS_IsAny<T> = 0 extends 1 & T ? true : false;
 | 
			
		||||
	type __VLS_PickNotAny<A, B> = __VLS_IsAny<A> extends true ? B : A;
 | 
			
		||||
	type __VLS_SpreadMerge<A, B> = Omit<A, keyof B> & B;
 | 
			
		||||
	type __VLS_WithComponent<N0 extends string, LocalComponents, Self, N1 extends string, N2 extends string, N3 extends string> =
 | 
			
		||||
		N1 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N1] } :
 | 
			
		||||
		N2 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N2] } :
 | 
			
		||||
		N3 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N3] } :
 | 
			
		||||
		Self extends object ? { [K in N0]: Self } :
 | 
			
		||||
		N1 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N1] } :
 | 
			
		||||
		N2 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N2] } :
 | 
			
		||||
		N3 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N3] } :
 | 
			
		||||
		{};
 | 
			
		||||
	type __VLS_FunctionalComponentCtx<T, K> = __VLS_PickNotAny<'__ctx' extends keyof __VLS_PickNotAny<K, {}>
 | 
			
		||||
		? K extends { __ctx?: infer Ctx } ? NonNullable<Ctx> : never : any
 | 
			
		||||
		, T extends (props: any, ctx: infer Ctx) => any ? Ctx : any
 | 
			
		||||
	>;
 | 
			
		||||
	type __VLS_FunctionalComponentProps<T, K> = '__ctx' extends keyof __VLS_PickNotAny<K, {}>
 | 
			
		||||
		? K extends { __ctx?: { props?: infer P } } ? NonNullable<P> : never
 | 
			
		||||
		: T extends (props: infer P, ...args: any) => any ? P
 | 
			
		||||
		: {};
 | 
			
		||||
	type __VLS_FunctionalComponent<T> = (props: (T extends { $props: infer Props } ? Props : {}) & Record<string, unknown>, ctx?: any) => __VLS_Element & {
 | 
			
		||||
		__ctx?: {
 | 
			
		||||
			attrs?: any;
 | 
			
		||||
			slots?: T extends { $slots: infer Slots } ? Slots : Record<string, any>;
 | 
			
		||||
			emit?: T extends { $emit: infer Emit } ? Emit : {};
 | 
			
		||||
			props?: (T extends { $props: infer Props } ? Props : {}) & Record<string, unknown>;
 | 
			
		||||
			expose?: (exposed: T) => void;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
	type __VLS_IsFunction<T, K> = K extends keyof T
 | 
			
		||||
		? __VLS_IsAny<T[K]> extends false
 | 
			
		||||
		? unknown extends T[K]
 | 
			
		||||
		? false
 | 
			
		||||
		: true
 | 
			
		||||
		: false
 | 
			
		||||
		: false;
 | 
			
		||||
	type __VLS_NormalizeComponentEvent<
 | 
			
		||||
		Props,
 | 
			
		||||
		Emits,
 | 
			
		||||
		onEvent extends keyof Props,
 | 
			
		||||
		Event extends keyof Emits,
 | 
			
		||||
		CamelizedEvent extends keyof Emits,
 | 
			
		||||
	> = __VLS_IsFunction<Props, onEvent> extends true
 | 
			
		||||
		? Props
 | 
			
		||||
		: __VLS_IsFunction<Emits, Event> extends true
 | 
			
		||||
			? { [K in onEvent]?: Emits[Event] }
 | 
			
		||||
			: __VLS_IsFunction<Emits, CamelizedEvent> extends true
 | 
			
		||||
				? { [K in onEvent]?: Emits[CamelizedEvent] }
 | 
			
		||||
				: Props;
 | 
			
		||||
	// fix https://github.com/vuejs/language-tools/issues/926
 | 
			
		||||
	type __VLS_UnionToIntersection<U> = (U extends unknown ? (arg: U) => unknown : never) extends ((arg: infer P) => unknown) ? P : never;
 | 
			
		||||
	type __VLS_OverloadUnionInner<T, U = unknown> = U & T extends (...args: infer A) => infer R
 | 
			
		||||
		? U extends T
 | 
			
		||||
		? never
 | 
			
		||||
		: __VLS_OverloadUnionInner<T, Pick<T, keyof T> & U & ((...args: A) => R)> | ((...args: A) => R)
 | 
			
		||||
		: never;
 | 
			
		||||
	type __VLS_OverloadUnion<T> = Exclude<
 | 
			
		||||
		__VLS_OverloadUnionInner<(() => never) & T>,
 | 
			
		||||
		T extends () => never ? never : () => never
 | 
			
		||||
	>;
 | 
			
		||||
	type __VLS_ConstructorOverloads<T> = __VLS_OverloadUnion<T> extends infer F
 | 
			
		||||
		? F extends (event: infer E, ...args: infer A) => any
 | 
			
		||||
		? { [K in E & string]: (...args: A) => void; }
 | 
			
		||||
		: never
 | 
			
		||||
		: never;
 | 
			
		||||
	type __VLS_NormalizeEmits<T> = __VLS_PrettifyGlobal<
 | 
			
		||||
		__VLS_UnionToIntersection<
 | 
			
		||||
			__VLS_ConstructorOverloads<T> & {
 | 
			
		||||
				[K in keyof T]: T[K] extends any[] ? { (...args: T[K]): void } : never
 | 
			
		||||
			}
 | 
			
		||||
		>
 | 
			
		||||
	>;
 | 
			
		||||
	type __VLS_EmitsToProps<T> = __VLS_PrettifyGlobal<{
 | 
			
		||||
		[K in string & keyof T as `on${Capitalize<K>}`]?:
 | 
			
		||||
			(...args: T[K] extends (...args: infer P) => any ? P : T[K] extends null ? any[] : never) => any;
 | 
			
		||||
	}>;
 | 
			
		||||
	type __VLS_ResolveEmits<
 | 
			
		||||
		Comp,
 | 
			
		||||
		Emits,
 | 
			
		||||
		TypeEmits = {},
 | 
			
		||||
		NormalizedEmits = __VLS_NormalizeEmits<Emits> extends infer E ? string extends keyof E ? {} : E : never,
 | 
			
		||||
	> = __VLS_SpreadMerge<NormalizedEmits, TypeEmits>;
 | 
			
		||||
	type __VLS_ResolveDirectives<T> = {
 | 
			
		||||
		[K in keyof T & string as `v${Capitalize<K>}`]: T[K];
 | 
			
		||||
	};
 | 
			
		||||
	type __VLS_PrettifyGlobal<T> = { [K in keyof T as K]: T[K]; } & {};
 | 
			
		||||
	type __VLS_WithDefaultsGlobal<P, D> = {
 | 
			
		||||
		[K in keyof P as K extends keyof D ? K : never]-?: P[K];
 | 
			
		||||
	} & {
 | 
			
		||||
		[K in keyof P as K extends keyof D ? never : K]: P[K];
 | 
			
		||||
	};
 | 
			
		||||
	type __VLS_UseTemplateRef<T> = Readonly<import('vue').ShallowRef<T | null>>;
 | 
			
		||||
	type __VLS_ProxyRefs<T> = import('vue').ShallowUnwrapRef<T>;
 | 
			
		||||
 | 
			
		||||
	function __VLS_getVForSourceType<T extends number | string | any[] | Iterable<any>>(source: T): [
 | 
			
		||||
		item: T extends number ? number
 | 
			
		||||
			: T extends string ? string
 | 
			
		||||
			: T extends any[] ? T[number]
 | 
			
		||||
			: T extends Iterable<infer T1> ? T1
 | 
			
		||||
			: any,
 | 
			
		||||
		index: number,
 | 
			
		||||
	][];
 | 
			
		||||
	function __VLS_getVForSourceType<T>(source: T): [
 | 
			
		||||
		item: T[keyof T],
 | 
			
		||||
		key: keyof T,
 | 
			
		||||
		index: number,
 | 
			
		||||
	][];
 | 
			
		||||
	function __VLS_getSlotParameters<S, D extends S>(slot: S, decl?: D):
 | 
			
		||||
		D extends (...args: infer P) => any ? P : any[];
 | 
			
		||||
	function __VLS_asFunctionalDirective<T>(dir: T): T extends import('vue').ObjectDirective
 | 
			
		||||
		? NonNullable<T['created' | 'beforeMount' | 'mounted' | 'beforeUpdate' | 'updated' | 'beforeUnmount' | 'unmounted']>
 | 
			
		||||
		: T extends (...args: any) => any
 | 
			
		||||
			? T
 | 
			
		||||
			: (arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown) => void;
 | 
			
		||||
	function __VLS_asFunctionalComponent<T, K = T extends new (...args: any) => any ? InstanceType<T> : unknown>(t: T, instance?: K):
 | 
			
		||||
		T extends new (...args: any) => any ? __VLS_FunctionalComponent<K>
 | 
			
		||||
		: T extends () => any ? (props: {}, ctx?: any) => ReturnType<T>
 | 
			
		||||
		: T extends (...args: any) => any ? T
 | 
			
		||||
		: __VLS_FunctionalComponent<{}>;
 | 
			
		||||
	function __VLS_functionalComponentArgsRest<T extends (...args: any) => any>(t: T): 2 extends Parameters<T>['length'] ? [any] : [];
 | 
			
		||||
	function __VLS_asFunctionalElement<T>(tag: T, endTag?: T): (attrs: T & Record<string, unknown>) => void;
 | 
			
		||||
	function __VLS_asFunctionalSlot<S>(slot: S): S extends () => infer R ? (props: {}) => R : NonNullable<S>;
 | 
			
		||||
	function __VLS_tryAsConstant<const T>(t: T): T;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								node_modules/@babel/code-frame/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								node_modules/@babel/code-frame/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining
 | 
			
		||||
a copy of this software and associated documentation files (the
 | 
			
		||||
"Software"), to deal in the Software without restriction, including
 | 
			
		||||
without limitation the rights to use, copy, modify, merge, publish,
 | 
			
		||||
distribute, sublicense, and/or sell copies of the Software, and to
 | 
			
		||||
permit persons to whom the Software is furnished to do so, subject to
 | 
			
		||||
the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be
 | 
			
		||||
included in all copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
			
		||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | 
			
		||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | 
			
		||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 | 
			
		||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 | 
			
		||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 | 
			
		||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
							
								
								
									
										19
									
								
								node_modules/@babel/code-frame/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								node_modules/@babel/code-frame/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
# @babel/code-frame
 | 
			
		||||
 | 
			
		||||
> Generate errors that contain a code frame that point to source locations.
 | 
			
		||||
 | 
			
		||||
See our website [@babel/code-frame](https://babeljs.io/docs/babel-code-frame) for more information.
 | 
			
		||||
 | 
			
		||||
## Install
 | 
			
		||||
 | 
			
		||||
Using npm:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
npm install --save-dev @babel/code-frame
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
or using yarn:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
yarn add @babel/code-frame --dev
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										216
									
								
								node_modules/@babel/code-frame/lib/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										216
									
								
								node_modules/@babel/code-frame/lib/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,216 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, '__esModule', { value: true });
 | 
			
		||||
 | 
			
		||||
var picocolors = require('picocolors');
 | 
			
		||||
var jsTokens = require('js-tokens');
 | 
			
		||||
var helperValidatorIdentifier = require('@babel/helper-validator-identifier');
 | 
			
		||||
 | 
			
		||||
function isColorSupported() {
 | 
			
		||||
  return (typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? false : picocolors.isColorSupported
 | 
			
		||||
  );
 | 
			
		||||
}
 | 
			
		||||
const compose = (f, g) => v => f(g(v));
 | 
			
		||||
function buildDefs(colors) {
 | 
			
		||||
  return {
 | 
			
		||||
    keyword: colors.cyan,
 | 
			
		||||
    capitalized: colors.yellow,
 | 
			
		||||
    jsxIdentifier: colors.yellow,
 | 
			
		||||
    punctuator: colors.yellow,
 | 
			
		||||
    number: colors.magenta,
 | 
			
		||||
    string: colors.green,
 | 
			
		||||
    regex: colors.magenta,
 | 
			
		||||
    comment: colors.gray,
 | 
			
		||||
    invalid: compose(compose(colors.white, colors.bgRed), colors.bold),
 | 
			
		||||
    gutter: colors.gray,
 | 
			
		||||
    marker: compose(colors.red, colors.bold),
 | 
			
		||||
    message: compose(colors.red, colors.bold),
 | 
			
		||||
    reset: colors.reset
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
const defsOn = buildDefs(picocolors.createColors(true));
 | 
			
		||||
const defsOff = buildDefs(picocolors.createColors(false));
 | 
			
		||||
function getDefs(enabled) {
 | 
			
		||||
  return enabled ? defsOn : defsOff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]);
 | 
			
		||||
const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/;
 | 
			
		||||
const BRACKET = /^[()[\]{}]$/;
 | 
			
		||||
let tokenize;
 | 
			
		||||
{
 | 
			
		||||
  const JSX_TAG = /^[a-z][\w-]*$/i;
 | 
			
		||||
  const getTokenType = function (token, offset, text) {
 | 
			
		||||
    if (token.type === "name") {
 | 
			
		||||
      if (helperValidatorIdentifier.isKeyword(token.value) || helperValidatorIdentifier.isStrictReservedWord(token.value, true) || sometimesKeywords.has(token.value)) {
 | 
			
		||||
        return "keyword";
 | 
			
		||||
      }
 | 
			
		||||
      if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) === "</")) {
 | 
			
		||||
        return "jsxIdentifier";
 | 
			
		||||
      }
 | 
			
		||||
      if (token.value[0] !== token.value[0].toLowerCase()) {
 | 
			
		||||
        return "capitalized";
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (token.type === "punctuator" && BRACKET.test(token.value)) {
 | 
			
		||||
      return "bracket";
 | 
			
		||||
    }
 | 
			
		||||
    if (token.type === "invalid" && (token.value === "@" || token.value === "#")) {
 | 
			
		||||
      return "punctuator";
 | 
			
		||||
    }
 | 
			
		||||
    return token.type;
 | 
			
		||||
  };
 | 
			
		||||
  tokenize = function* (text) {
 | 
			
		||||
    let match;
 | 
			
		||||
    while (match = jsTokens.default.exec(text)) {
 | 
			
		||||
      const token = jsTokens.matchToToken(match);
 | 
			
		||||
      yield {
 | 
			
		||||
        type: getTokenType(token, match.index, text),
 | 
			
		||||
        value: token.value
 | 
			
		||||
      };
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function highlight(text) {
 | 
			
		||||
  if (text === "") return "";
 | 
			
		||||
  const defs = getDefs(true);
 | 
			
		||||
  let highlighted = "";
 | 
			
		||||
  for (const {
 | 
			
		||||
    type,
 | 
			
		||||
    value
 | 
			
		||||
  } of tokenize(text)) {
 | 
			
		||||
    if (type in defs) {
 | 
			
		||||
      highlighted += value.split(NEWLINE$1).map(str => defs[type](str)).join("\n");
 | 
			
		||||
    } else {
 | 
			
		||||
      highlighted += value;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return highlighted;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
let deprecationWarningShown = false;
 | 
			
		||||
const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
 | 
			
		||||
function getMarkerLines(loc, source, opts) {
 | 
			
		||||
  const startLoc = Object.assign({
 | 
			
		||||
    column: 0,
 | 
			
		||||
    line: -1
 | 
			
		||||
  }, loc.start);
 | 
			
		||||
  const endLoc = Object.assign({}, startLoc, loc.end);
 | 
			
		||||
  const {
 | 
			
		||||
    linesAbove = 2,
 | 
			
		||||
    linesBelow = 3
 | 
			
		||||
  } = opts || {};
 | 
			
		||||
  const startLine = startLoc.line;
 | 
			
		||||
  const startColumn = startLoc.column;
 | 
			
		||||
  const endLine = endLoc.line;
 | 
			
		||||
  const endColumn = endLoc.column;
 | 
			
		||||
  let start = Math.max(startLine - (linesAbove + 1), 0);
 | 
			
		||||
  let end = Math.min(source.length, endLine + linesBelow);
 | 
			
		||||
  if (startLine === -1) {
 | 
			
		||||
    start = 0;
 | 
			
		||||
  }
 | 
			
		||||
  if (endLine === -1) {
 | 
			
		||||
    end = source.length;
 | 
			
		||||
  }
 | 
			
		||||
  const lineDiff = endLine - startLine;
 | 
			
		||||
  const markerLines = {};
 | 
			
		||||
  if (lineDiff) {
 | 
			
		||||
    for (let i = 0; i <= lineDiff; i++) {
 | 
			
		||||
      const lineNumber = i + startLine;
 | 
			
		||||
      if (!startColumn) {
 | 
			
		||||
        markerLines[lineNumber] = true;
 | 
			
		||||
      } else if (i === 0) {
 | 
			
		||||
        const sourceLength = source[lineNumber - 1].length;
 | 
			
		||||
        markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];
 | 
			
		||||
      } else if (i === lineDiff) {
 | 
			
		||||
        markerLines[lineNumber] = [0, endColumn];
 | 
			
		||||
      } else {
 | 
			
		||||
        const sourceLength = source[lineNumber - i].length;
 | 
			
		||||
        markerLines[lineNumber] = [0, sourceLength];
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  } else {
 | 
			
		||||
    if (startColumn === endColumn) {
 | 
			
		||||
      if (startColumn) {
 | 
			
		||||
        markerLines[startLine] = [startColumn, 0];
 | 
			
		||||
      } else {
 | 
			
		||||
        markerLines[startLine] = true;
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      markerLines[startLine] = [startColumn, endColumn - startColumn];
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    start,
 | 
			
		||||
    end,
 | 
			
		||||
    markerLines
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function codeFrameColumns(rawLines, loc, opts = {}) {
 | 
			
		||||
  const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode;
 | 
			
		||||
  const defs = getDefs(shouldHighlight);
 | 
			
		||||
  const lines = rawLines.split(NEWLINE);
 | 
			
		||||
  const {
 | 
			
		||||
    start,
 | 
			
		||||
    end,
 | 
			
		||||
    markerLines
 | 
			
		||||
  } = getMarkerLines(loc, lines, opts);
 | 
			
		||||
  const hasColumns = loc.start && typeof loc.start.column === "number";
 | 
			
		||||
  const numberMaxWidth = String(end).length;
 | 
			
		||||
  const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;
 | 
			
		||||
  let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => {
 | 
			
		||||
    const number = start + 1 + index;
 | 
			
		||||
    const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
 | 
			
		||||
    const gutter = ` ${paddedNumber} |`;
 | 
			
		||||
    const hasMarker = markerLines[number];
 | 
			
		||||
    const lastMarkerLine = !markerLines[number + 1];
 | 
			
		||||
    if (hasMarker) {
 | 
			
		||||
      let markerLine = "";
 | 
			
		||||
      if (Array.isArray(hasMarker)) {
 | 
			
		||||
        const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " ");
 | 
			
		||||
        const numberOfMarkers = hasMarker[1] || 1;
 | 
			
		||||
        markerLine = ["\n ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join("");
 | 
			
		||||
        if (lastMarkerLine && opts.message) {
 | 
			
		||||
          markerLine += " " + defs.message(opts.message);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join("");
 | 
			
		||||
    } else {
 | 
			
		||||
      return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`;
 | 
			
		||||
    }
 | 
			
		||||
  }).join("\n");
 | 
			
		||||
  if (opts.message && !hasColumns) {
 | 
			
		||||
    frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
 | 
			
		||||
  }
 | 
			
		||||
  if (shouldHighlight) {
 | 
			
		||||
    return defs.reset(frame);
 | 
			
		||||
  } else {
 | 
			
		||||
    return frame;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
function index (rawLines, lineNumber, colNumber, opts = {}) {
 | 
			
		||||
  if (!deprecationWarningShown) {
 | 
			
		||||
    deprecationWarningShown = true;
 | 
			
		||||
    const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
 | 
			
		||||
    if (process.emitWarning) {
 | 
			
		||||
      process.emitWarning(message, "DeprecationWarning");
 | 
			
		||||
    } else {
 | 
			
		||||
      const deprecationError = new Error(message);
 | 
			
		||||
      deprecationError.name = "DeprecationWarning";
 | 
			
		||||
      console.warn(new Error(message));
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  colNumber = Math.max(colNumber, 0);
 | 
			
		||||
  const location = {
 | 
			
		||||
    start: {
 | 
			
		||||
      column: colNumber,
 | 
			
		||||
      line: lineNumber
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
  return codeFrameColumns(rawLines, location, opts);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
exports.codeFrameColumns = codeFrameColumns;
 | 
			
		||||
exports.default = index;
 | 
			
		||||
exports.highlight = highlight;
 | 
			
		||||
//# sourceMappingURL=index.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/code-frame/lib/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/code-frame/lib/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										31
									
								
								node_modules/@babel/code-frame/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								node_modules/@babel/code-frame/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "@babel/code-frame",
 | 
			
		||||
  "version": "7.27.1",
 | 
			
		||||
  "description": "Generate errors that contain a code frame that point to source locations.",
 | 
			
		||||
  "author": "The Babel Team (https://babel.dev/team)",
 | 
			
		||||
  "homepage": "https://babel.dev/docs/en/next/babel-code-frame",
 | 
			
		||||
  "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen",
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "publishConfig": {
 | 
			
		||||
    "access": "public"
 | 
			
		||||
  },
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "https://github.com/babel/babel.git",
 | 
			
		||||
    "directory": "packages/babel-code-frame"
 | 
			
		||||
  },
 | 
			
		||||
  "main": "./lib/index.js",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@babel/helper-validator-identifier": "^7.27.1",
 | 
			
		||||
    "js-tokens": "^4.0.0",
 | 
			
		||||
    "picocolors": "^1.1.1"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "import-meta-resolve": "^4.1.0",
 | 
			
		||||
    "strip-ansi": "^4.0.0"
 | 
			
		||||
  },
 | 
			
		||||
  "engines": {
 | 
			
		||||
    "node": ">=6.9.0"
 | 
			
		||||
  },
 | 
			
		||||
  "type": "commonjs"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								node_modules/@babel/compat-data/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								node_modules/@babel/compat-data/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining
 | 
			
		||||
a copy of this software and associated documentation files (the
 | 
			
		||||
"Software"), to deal in the Software without restriction, including
 | 
			
		||||
without limitation the rights to use, copy, modify, merge, publish,
 | 
			
		||||
distribute, sublicense, and/or sell copies of the Software, and to
 | 
			
		||||
permit persons to whom the Software is furnished to do so, subject to
 | 
			
		||||
the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be
 | 
			
		||||
included in all copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
			
		||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | 
			
		||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | 
			
		||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 | 
			
		||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 | 
			
		||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 | 
			
		||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
							
								
								
									
										19
									
								
								node_modules/@babel/compat-data/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								node_modules/@babel/compat-data/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
# @babel/compat-data
 | 
			
		||||
 | 
			
		||||
> The compat-data to determine required Babel plugins
 | 
			
		||||
 | 
			
		||||
See our website [@babel/compat-data](https://babeljs.io/docs/babel-compat-data) for more information.
 | 
			
		||||
 | 
			
		||||
## Install
 | 
			
		||||
 | 
			
		||||
Using npm:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
npm install --save @babel/compat-data
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
or using yarn:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
yarn add @babel/compat-data
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										2
									
								
								node_modules/@babel/compat-data/corejs2-built-ins.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								node_modules/@babel/compat-data/corejs2-built-ins.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
// Todo (Babel 8): remove this file as Babel 8 drop support of core-js 2
 | 
			
		||||
module.exports = require("./data/corejs2-built-ins.json");
 | 
			
		||||
							
								
								
									
										2
									
								
								node_modules/@babel/compat-data/corejs3-shipped-proposals.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								node_modules/@babel/compat-data/corejs3-shipped-proposals.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
// Todo (Babel 8): remove this file now that it is included in babel-plugin-polyfill-corejs3
 | 
			
		||||
module.exports = require("./data/corejs3-shipped-proposals.json");
 | 
			
		||||
							
								
								
									
										2106
									
								
								node_modules/@babel/compat-data/data/corejs2-built-ins.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2106
									
								
								node_modules/@babel/compat-data/data/corejs2-built-ins.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										5
									
								
								node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
[
 | 
			
		||||
  "esnext.promise.all-settled",
 | 
			
		||||
  "esnext.string.match-all",
 | 
			
		||||
  "esnext.global-this"
 | 
			
		||||
]
 | 
			
		||||
							
								
								
									
										18
									
								
								node_modules/@babel/compat-data/data/native-modules.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								node_modules/@babel/compat-data/data/native-modules.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
{
 | 
			
		||||
  "es6.module": {
 | 
			
		||||
    "chrome": "61",
 | 
			
		||||
    "and_chr": "61",
 | 
			
		||||
    "edge": "16",
 | 
			
		||||
    "firefox": "60",
 | 
			
		||||
    "and_ff": "60",
 | 
			
		||||
    "node": "13.2.0",
 | 
			
		||||
    "opera": "48",
 | 
			
		||||
    "op_mob": "45",
 | 
			
		||||
    "safari": "10.1",
 | 
			
		||||
    "ios": "10.3",
 | 
			
		||||
    "samsung": "8.2",
 | 
			
		||||
    "android": "61",
 | 
			
		||||
    "electron": "2.0",
 | 
			
		||||
    "ios_saf": "10.3"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										35
									
								
								node_modules/@babel/compat-data/data/overlapping-plugins.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								node_modules/@babel/compat-data/data/overlapping-plugins.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
{
 | 
			
		||||
  "transform-async-to-generator": [
 | 
			
		||||
    "bugfix/transform-async-arrows-in-class"
 | 
			
		||||
  ],
 | 
			
		||||
  "transform-parameters": [
 | 
			
		||||
    "bugfix/transform-edge-default-parameters",
 | 
			
		||||
    "bugfix/transform-safari-id-destructuring-collision-in-function-expression"
 | 
			
		||||
  ],
 | 
			
		||||
  "transform-function-name": [
 | 
			
		||||
    "bugfix/transform-edge-function-name"
 | 
			
		||||
  ],
 | 
			
		||||
  "transform-block-scoping": [
 | 
			
		||||
    "bugfix/transform-safari-block-shadowing",
 | 
			
		||||
    "bugfix/transform-safari-for-shadowing"
 | 
			
		||||
  ],
 | 
			
		||||
  "transform-template-literals": [
 | 
			
		||||
    "bugfix/transform-tagged-template-caching"
 | 
			
		||||
  ],
 | 
			
		||||
  "transform-optional-chaining": [
 | 
			
		||||
    "bugfix/transform-v8-spread-parameters-in-optional-chaining"
 | 
			
		||||
  ],
 | 
			
		||||
  "proposal-optional-chaining": [
 | 
			
		||||
    "bugfix/transform-v8-spread-parameters-in-optional-chaining"
 | 
			
		||||
  ],
 | 
			
		||||
  "transform-class-properties": [
 | 
			
		||||
    "bugfix/transform-v8-static-class-fields-redefine-readonly",
 | 
			
		||||
    "bugfix/transform-firefox-class-in-computed-class-key",
 | 
			
		||||
    "bugfix/transform-safari-class-field-initializer-scope"
 | 
			
		||||
  ],
 | 
			
		||||
  "proposal-class-properties": [
 | 
			
		||||
    "bugfix/transform-v8-static-class-fields-redefine-readonly",
 | 
			
		||||
    "bugfix/transform-firefox-class-in-computed-class-key",
 | 
			
		||||
    "bugfix/transform-safari-class-field-initializer-scope"
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										203
									
								
								node_modules/@babel/compat-data/data/plugin-bugfixes.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										203
									
								
								node_modules/@babel/compat-data/data/plugin-bugfixes.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,203 @@
 | 
			
		||||
{
 | 
			
		||||
  "bugfix/transform-async-arrows-in-class": {
 | 
			
		||||
    "chrome": "55",
 | 
			
		||||
    "opera": "42",
 | 
			
		||||
    "edge": "15",
 | 
			
		||||
    "firefox": "52",
 | 
			
		||||
    "safari": "11",
 | 
			
		||||
    "node": "7.6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "11",
 | 
			
		||||
    "samsung": "6",
 | 
			
		||||
    "opera_mobile": "42",
 | 
			
		||||
    "electron": "1.6"
 | 
			
		||||
  },
 | 
			
		||||
  "bugfix/transform-edge-default-parameters": {
 | 
			
		||||
    "chrome": "49",
 | 
			
		||||
    "opera": "36",
 | 
			
		||||
    "edge": "18",
 | 
			
		||||
    "firefox": "52",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "36",
 | 
			
		||||
    "electron": "0.37"
 | 
			
		||||
  },
 | 
			
		||||
  "bugfix/transform-edge-function-name": {
 | 
			
		||||
    "chrome": "51",
 | 
			
		||||
    "opera": "38",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "53",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "6.5",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "41",
 | 
			
		||||
    "electron": "1.2"
 | 
			
		||||
  },
 | 
			
		||||
  "bugfix/transform-safari-block-shadowing": {
 | 
			
		||||
    "chrome": "49",
 | 
			
		||||
    "opera": "36",
 | 
			
		||||
    "edge": "12",
 | 
			
		||||
    "firefox": "44",
 | 
			
		||||
    "safari": "11",
 | 
			
		||||
    "node": "6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ie": "11",
 | 
			
		||||
    "ios": "11",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "36",
 | 
			
		||||
    "electron": "0.37"
 | 
			
		||||
  },
 | 
			
		||||
  "bugfix/transform-safari-for-shadowing": {
 | 
			
		||||
    "chrome": "49",
 | 
			
		||||
    "opera": "36",
 | 
			
		||||
    "edge": "12",
 | 
			
		||||
    "firefox": "4",
 | 
			
		||||
    "safari": "11",
 | 
			
		||||
    "node": "6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ie": "11",
 | 
			
		||||
    "ios": "11",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "rhino": "1.7.13",
 | 
			
		||||
    "opera_mobile": "36",
 | 
			
		||||
    "electron": "0.37"
 | 
			
		||||
  },
 | 
			
		||||
  "bugfix/transform-safari-id-destructuring-collision-in-function-expression": {
 | 
			
		||||
    "chrome": "49",
 | 
			
		||||
    "opera": "36",
 | 
			
		||||
    "edge": "14",
 | 
			
		||||
    "firefox": "2",
 | 
			
		||||
    "safari": "16.3",
 | 
			
		||||
    "node": "6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "16.3",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "36",
 | 
			
		||||
    "electron": "0.37"
 | 
			
		||||
  },
 | 
			
		||||
  "bugfix/transform-tagged-template-caching": {
 | 
			
		||||
    "chrome": "41",
 | 
			
		||||
    "opera": "28",
 | 
			
		||||
    "edge": "12",
 | 
			
		||||
    "firefox": "34",
 | 
			
		||||
    "safari": "13",
 | 
			
		||||
    "node": "4",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "13",
 | 
			
		||||
    "samsung": "3.4",
 | 
			
		||||
    "rhino": "1.7.14",
 | 
			
		||||
    "opera_mobile": "28",
 | 
			
		||||
    "electron": "0.21"
 | 
			
		||||
  },
 | 
			
		||||
  "bugfix/transform-v8-spread-parameters-in-optional-chaining": {
 | 
			
		||||
    "chrome": "91",
 | 
			
		||||
    "opera": "77",
 | 
			
		||||
    "edge": "91",
 | 
			
		||||
    "firefox": "74",
 | 
			
		||||
    "safari": "13.1",
 | 
			
		||||
    "node": "16.9",
 | 
			
		||||
    "deno": "1.9",
 | 
			
		||||
    "ios": "13.4",
 | 
			
		||||
    "samsung": "16",
 | 
			
		||||
    "opera_mobile": "64",
 | 
			
		||||
    "electron": "13.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-optional-chaining": {
 | 
			
		||||
    "chrome": "80",
 | 
			
		||||
    "opera": "67",
 | 
			
		||||
    "edge": "80",
 | 
			
		||||
    "firefox": "74",
 | 
			
		||||
    "safari": "13.1",
 | 
			
		||||
    "node": "14",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "13.4",
 | 
			
		||||
    "samsung": "13",
 | 
			
		||||
    "rhino": "1.8",
 | 
			
		||||
    "opera_mobile": "57",
 | 
			
		||||
    "electron": "8.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-optional-chaining": {
 | 
			
		||||
    "chrome": "80",
 | 
			
		||||
    "opera": "67",
 | 
			
		||||
    "edge": "80",
 | 
			
		||||
    "firefox": "74",
 | 
			
		||||
    "safari": "13.1",
 | 
			
		||||
    "node": "14",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "13.4",
 | 
			
		||||
    "samsung": "13",
 | 
			
		||||
    "rhino": "1.8",
 | 
			
		||||
    "opera_mobile": "57",
 | 
			
		||||
    "electron": "8.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-parameters": {
 | 
			
		||||
    "chrome": "49",
 | 
			
		||||
    "opera": "36",
 | 
			
		||||
    "edge": "15",
 | 
			
		||||
    "firefox": "52",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "36",
 | 
			
		||||
    "electron": "0.37"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-async-to-generator": {
 | 
			
		||||
    "chrome": "55",
 | 
			
		||||
    "opera": "42",
 | 
			
		||||
    "edge": "15",
 | 
			
		||||
    "firefox": "52",
 | 
			
		||||
    "safari": "10.1",
 | 
			
		||||
    "node": "7.6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10.3",
 | 
			
		||||
    "samsung": "6",
 | 
			
		||||
    "opera_mobile": "42",
 | 
			
		||||
    "electron": "1.6"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-template-literals": {
 | 
			
		||||
    "chrome": "41",
 | 
			
		||||
    "opera": "28",
 | 
			
		||||
    "edge": "13",
 | 
			
		||||
    "firefox": "34",
 | 
			
		||||
    "safari": "9",
 | 
			
		||||
    "node": "4",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "9",
 | 
			
		||||
    "samsung": "3.4",
 | 
			
		||||
    "opera_mobile": "28",
 | 
			
		||||
    "electron": "0.21"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-function-name": {
 | 
			
		||||
    "chrome": "51",
 | 
			
		||||
    "opera": "38",
 | 
			
		||||
    "edge": "14",
 | 
			
		||||
    "firefox": "53",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "6.5",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "41",
 | 
			
		||||
    "electron": "1.2"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-block-scoping": {
 | 
			
		||||
    "chrome": "50",
 | 
			
		||||
    "opera": "37",
 | 
			
		||||
    "edge": "14",
 | 
			
		||||
    "firefox": "53",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "37",
 | 
			
		||||
    "electron": "1.1"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										838
									
								
								node_modules/@babel/compat-data/data/plugins.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										838
									
								
								node_modules/@babel/compat-data/data/plugins.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,838 @@
 | 
			
		||||
{
 | 
			
		||||
  "transform-explicit-resource-management": {
 | 
			
		||||
    "chrome": "134",
 | 
			
		||||
    "edge": "134",
 | 
			
		||||
    "firefox": "141",
 | 
			
		||||
    "node": "24",
 | 
			
		||||
    "electron": "35.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-duplicate-named-capturing-groups-regex": {
 | 
			
		||||
    "chrome": "126",
 | 
			
		||||
    "opera": "112",
 | 
			
		||||
    "edge": "126",
 | 
			
		||||
    "firefox": "129",
 | 
			
		||||
    "safari": "17.4",
 | 
			
		||||
    "node": "23",
 | 
			
		||||
    "ios": "17.4",
 | 
			
		||||
    "electron": "31.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-regexp-modifiers": {
 | 
			
		||||
    "chrome": "125",
 | 
			
		||||
    "opera": "111",
 | 
			
		||||
    "edge": "125",
 | 
			
		||||
    "firefox": "132",
 | 
			
		||||
    "node": "23",
 | 
			
		||||
    "samsung": "27",
 | 
			
		||||
    "electron": "31.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-unicode-sets-regex": {
 | 
			
		||||
    "chrome": "112",
 | 
			
		||||
    "opera": "98",
 | 
			
		||||
    "edge": "112",
 | 
			
		||||
    "firefox": "116",
 | 
			
		||||
    "safari": "17",
 | 
			
		||||
    "node": "20",
 | 
			
		||||
    "deno": "1.32",
 | 
			
		||||
    "ios": "17",
 | 
			
		||||
    "samsung": "23",
 | 
			
		||||
    "opera_mobile": "75",
 | 
			
		||||
    "electron": "24.0"
 | 
			
		||||
  },
 | 
			
		||||
  "bugfix/transform-v8-static-class-fields-redefine-readonly": {
 | 
			
		||||
    "chrome": "98",
 | 
			
		||||
    "opera": "84",
 | 
			
		||||
    "edge": "98",
 | 
			
		||||
    "firefox": "75",
 | 
			
		||||
    "safari": "15",
 | 
			
		||||
    "node": "12",
 | 
			
		||||
    "deno": "1.18",
 | 
			
		||||
    "ios": "15",
 | 
			
		||||
    "samsung": "11",
 | 
			
		||||
    "opera_mobile": "52",
 | 
			
		||||
    "electron": "17.0"
 | 
			
		||||
  },
 | 
			
		||||
  "bugfix/transform-firefox-class-in-computed-class-key": {
 | 
			
		||||
    "chrome": "74",
 | 
			
		||||
    "opera": "62",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "126",
 | 
			
		||||
    "safari": "16",
 | 
			
		||||
    "node": "12",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "16",
 | 
			
		||||
    "samsung": "11",
 | 
			
		||||
    "opera_mobile": "53",
 | 
			
		||||
    "electron": "6.0"
 | 
			
		||||
  },
 | 
			
		||||
  "bugfix/transform-safari-class-field-initializer-scope": {
 | 
			
		||||
    "chrome": "74",
 | 
			
		||||
    "opera": "62",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "69",
 | 
			
		||||
    "safari": "16",
 | 
			
		||||
    "node": "12",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "16",
 | 
			
		||||
    "samsung": "11",
 | 
			
		||||
    "opera_mobile": "53",
 | 
			
		||||
    "electron": "6.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-class-static-block": {
 | 
			
		||||
    "chrome": "94",
 | 
			
		||||
    "opera": "80",
 | 
			
		||||
    "edge": "94",
 | 
			
		||||
    "firefox": "93",
 | 
			
		||||
    "safari": "16.4",
 | 
			
		||||
    "node": "16.11",
 | 
			
		||||
    "deno": "1.14",
 | 
			
		||||
    "ios": "16.4",
 | 
			
		||||
    "samsung": "17",
 | 
			
		||||
    "opera_mobile": "66",
 | 
			
		||||
    "electron": "15.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-class-static-block": {
 | 
			
		||||
    "chrome": "94",
 | 
			
		||||
    "opera": "80",
 | 
			
		||||
    "edge": "94",
 | 
			
		||||
    "firefox": "93",
 | 
			
		||||
    "safari": "16.4",
 | 
			
		||||
    "node": "16.11",
 | 
			
		||||
    "deno": "1.14",
 | 
			
		||||
    "ios": "16.4",
 | 
			
		||||
    "samsung": "17",
 | 
			
		||||
    "opera_mobile": "66",
 | 
			
		||||
    "electron": "15.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-private-property-in-object": {
 | 
			
		||||
    "chrome": "91",
 | 
			
		||||
    "opera": "77",
 | 
			
		||||
    "edge": "91",
 | 
			
		||||
    "firefox": "90",
 | 
			
		||||
    "safari": "15",
 | 
			
		||||
    "node": "16.9",
 | 
			
		||||
    "deno": "1.9",
 | 
			
		||||
    "ios": "15",
 | 
			
		||||
    "samsung": "16",
 | 
			
		||||
    "opera_mobile": "64",
 | 
			
		||||
    "electron": "13.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-private-property-in-object": {
 | 
			
		||||
    "chrome": "91",
 | 
			
		||||
    "opera": "77",
 | 
			
		||||
    "edge": "91",
 | 
			
		||||
    "firefox": "90",
 | 
			
		||||
    "safari": "15",
 | 
			
		||||
    "node": "16.9",
 | 
			
		||||
    "deno": "1.9",
 | 
			
		||||
    "ios": "15",
 | 
			
		||||
    "samsung": "16",
 | 
			
		||||
    "opera_mobile": "64",
 | 
			
		||||
    "electron": "13.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-class-properties": {
 | 
			
		||||
    "chrome": "74",
 | 
			
		||||
    "opera": "62",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "90",
 | 
			
		||||
    "safari": "14.1",
 | 
			
		||||
    "node": "12",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "14.5",
 | 
			
		||||
    "samsung": "11",
 | 
			
		||||
    "opera_mobile": "53",
 | 
			
		||||
    "electron": "6.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-class-properties": {
 | 
			
		||||
    "chrome": "74",
 | 
			
		||||
    "opera": "62",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "90",
 | 
			
		||||
    "safari": "14.1",
 | 
			
		||||
    "node": "12",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "14.5",
 | 
			
		||||
    "samsung": "11",
 | 
			
		||||
    "opera_mobile": "53",
 | 
			
		||||
    "electron": "6.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-private-methods": {
 | 
			
		||||
    "chrome": "84",
 | 
			
		||||
    "opera": "70",
 | 
			
		||||
    "edge": "84",
 | 
			
		||||
    "firefox": "90",
 | 
			
		||||
    "safari": "15",
 | 
			
		||||
    "node": "14.6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "15",
 | 
			
		||||
    "samsung": "14",
 | 
			
		||||
    "opera_mobile": "60",
 | 
			
		||||
    "electron": "10.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-private-methods": {
 | 
			
		||||
    "chrome": "84",
 | 
			
		||||
    "opera": "70",
 | 
			
		||||
    "edge": "84",
 | 
			
		||||
    "firefox": "90",
 | 
			
		||||
    "safari": "15",
 | 
			
		||||
    "node": "14.6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "15",
 | 
			
		||||
    "samsung": "14",
 | 
			
		||||
    "opera_mobile": "60",
 | 
			
		||||
    "electron": "10.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-numeric-separator": {
 | 
			
		||||
    "chrome": "75",
 | 
			
		||||
    "opera": "62",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "70",
 | 
			
		||||
    "safari": "13",
 | 
			
		||||
    "node": "12.5",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "13",
 | 
			
		||||
    "samsung": "11",
 | 
			
		||||
    "rhino": "1.7.14",
 | 
			
		||||
    "opera_mobile": "54",
 | 
			
		||||
    "electron": "6.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-numeric-separator": {
 | 
			
		||||
    "chrome": "75",
 | 
			
		||||
    "opera": "62",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "70",
 | 
			
		||||
    "safari": "13",
 | 
			
		||||
    "node": "12.5",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "13",
 | 
			
		||||
    "samsung": "11",
 | 
			
		||||
    "rhino": "1.7.14",
 | 
			
		||||
    "opera_mobile": "54",
 | 
			
		||||
    "electron": "6.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-logical-assignment-operators": {
 | 
			
		||||
    "chrome": "85",
 | 
			
		||||
    "opera": "71",
 | 
			
		||||
    "edge": "85",
 | 
			
		||||
    "firefox": "79",
 | 
			
		||||
    "safari": "14",
 | 
			
		||||
    "node": "15",
 | 
			
		||||
    "deno": "1.2",
 | 
			
		||||
    "ios": "14",
 | 
			
		||||
    "samsung": "14",
 | 
			
		||||
    "opera_mobile": "60",
 | 
			
		||||
    "electron": "10.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-logical-assignment-operators": {
 | 
			
		||||
    "chrome": "85",
 | 
			
		||||
    "opera": "71",
 | 
			
		||||
    "edge": "85",
 | 
			
		||||
    "firefox": "79",
 | 
			
		||||
    "safari": "14",
 | 
			
		||||
    "node": "15",
 | 
			
		||||
    "deno": "1.2",
 | 
			
		||||
    "ios": "14",
 | 
			
		||||
    "samsung": "14",
 | 
			
		||||
    "opera_mobile": "60",
 | 
			
		||||
    "electron": "10.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-nullish-coalescing-operator": {
 | 
			
		||||
    "chrome": "80",
 | 
			
		||||
    "opera": "67",
 | 
			
		||||
    "edge": "80",
 | 
			
		||||
    "firefox": "72",
 | 
			
		||||
    "safari": "13.1",
 | 
			
		||||
    "node": "14",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "13.4",
 | 
			
		||||
    "samsung": "13",
 | 
			
		||||
    "rhino": "1.8",
 | 
			
		||||
    "opera_mobile": "57",
 | 
			
		||||
    "electron": "8.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-nullish-coalescing-operator": {
 | 
			
		||||
    "chrome": "80",
 | 
			
		||||
    "opera": "67",
 | 
			
		||||
    "edge": "80",
 | 
			
		||||
    "firefox": "72",
 | 
			
		||||
    "safari": "13.1",
 | 
			
		||||
    "node": "14",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "13.4",
 | 
			
		||||
    "samsung": "13",
 | 
			
		||||
    "rhino": "1.8",
 | 
			
		||||
    "opera_mobile": "57",
 | 
			
		||||
    "electron": "8.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-optional-chaining": {
 | 
			
		||||
    "chrome": "91",
 | 
			
		||||
    "opera": "77",
 | 
			
		||||
    "edge": "91",
 | 
			
		||||
    "firefox": "74",
 | 
			
		||||
    "safari": "13.1",
 | 
			
		||||
    "node": "16.9",
 | 
			
		||||
    "deno": "1.9",
 | 
			
		||||
    "ios": "13.4",
 | 
			
		||||
    "samsung": "16",
 | 
			
		||||
    "opera_mobile": "64",
 | 
			
		||||
    "electron": "13.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-optional-chaining": {
 | 
			
		||||
    "chrome": "91",
 | 
			
		||||
    "opera": "77",
 | 
			
		||||
    "edge": "91",
 | 
			
		||||
    "firefox": "74",
 | 
			
		||||
    "safari": "13.1",
 | 
			
		||||
    "node": "16.9",
 | 
			
		||||
    "deno": "1.9",
 | 
			
		||||
    "ios": "13.4",
 | 
			
		||||
    "samsung": "16",
 | 
			
		||||
    "opera_mobile": "64",
 | 
			
		||||
    "electron": "13.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-json-strings": {
 | 
			
		||||
    "chrome": "66",
 | 
			
		||||
    "opera": "53",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "62",
 | 
			
		||||
    "safari": "12",
 | 
			
		||||
    "node": "10",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "12",
 | 
			
		||||
    "samsung": "9",
 | 
			
		||||
    "rhino": "1.7.14",
 | 
			
		||||
    "opera_mobile": "47",
 | 
			
		||||
    "electron": "3.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-json-strings": {
 | 
			
		||||
    "chrome": "66",
 | 
			
		||||
    "opera": "53",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "62",
 | 
			
		||||
    "safari": "12",
 | 
			
		||||
    "node": "10",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "12",
 | 
			
		||||
    "samsung": "9",
 | 
			
		||||
    "rhino": "1.7.14",
 | 
			
		||||
    "opera_mobile": "47",
 | 
			
		||||
    "electron": "3.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-optional-catch-binding": {
 | 
			
		||||
    "chrome": "66",
 | 
			
		||||
    "opera": "53",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "58",
 | 
			
		||||
    "safari": "11.1",
 | 
			
		||||
    "node": "10",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "11.3",
 | 
			
		||||
    "samsung": "9",
 | 
			
		||||
    "opera_mobile": "47",
 | 
			
		||||
    "electron": "3.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-optional-catch-binding": {
 | 
			
		||||
    "chrome": "66",
 | 
			
		||||
    "opera": "53",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "58",
 | 
			
		||||
    "safari": "11.1",
 | 
			
		||||
    "node": "10",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "11.3",
 | 
			
		||||
    "samsung": "9",
 | 
			
		||||
    "opera_mobile": "47",
 | 
			
		||||
    "electron": "3.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-parameters": {
 | 
			
		||||
    "chrome": "49",
 | 
			
		||||
    "opera": "36",
 | 
			
		||||
    "edge": "18",
 | 
			
		||||
    "firefox": "52",
 | 
			
		||||
    "safari": "16.3",
 | 
			
		||||
    "node": "6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "16.3",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "36",
 | 
			
		||||
    "electron": "0.37"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-async-generator-functions": {
 | 
			
		||||
    "chrome": "63",
 | 
			
		||||
    "opera": "50",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "57",
 | 
			
		||||
    "safari": "12",
 | 
			
		||||
    "node": "10",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "12",
 | 
			
		||||
    "samsung": "8",
 | 
			
		||||
    "opera_mobile": "46",
 | 
			
		||||
    "electron": "3.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-async-generator-functions": {
 | 
			
		||||
    "chrome": "63",
 | 
			
		||||
    "opera": "50",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "57",
 | 
			
		||||
    "safari": "12",
 | 
			
		||||
    "node": "10",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "12",
 | 
			
		||||
    "samsung": "8",
 | 
			
		||||
    "opera_mobile": "46",
 | 
			
		||||
    "electron": "3.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-object-rest-spread": {
 | 
			
		||||
    "chrome": "60",
 | 
			
		||||
    "opera": "47",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "55",
 | 
			
		||||
    "safari": "11.1",
 | 
			
		||||
    "node": "8.3",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "11.3",
 | 
			
		||||
    "samsung": "8",
 | 
			
		||||
    "opera_mobile": "44",
 | 
			
		||||
    "electron": "2.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-object-rest-spread": {
 | 
			
		||||
    "chrome": "60",
 | 
			
		||||
    "opera": "47",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "55",
 | 
			
		||||
    "safari": "11.1",
 | 
			
		||||
    "node": "8.3",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "11.3",
 | 
			
		||||
    "samsung": "8",
 | 
			
		||||
    "opera_mobile": "44",
 | 
			
		||||
    "electron": "2.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-dotall-regex": {
 | 
			
		||||
    "chrome": "62",
 | 
			
		||||
    "opera": "49",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "78",
 | 
			
		||||
    "safari": "11.1",
 | 
			
		||||
    "node": "8.10",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "11.3",
 | 
			
		||||
    "samsung": "8",
 | 
			
		||||
    "rhino": "1.7.15",
 | 
			
		||||
    "opera_mobile": "46",
 | 
			
		||||
    "electron": "3.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-unicode-property-regex": {
 | 
			
		||||
    "chrome": "64",
 | 
			
		||||
    "opera": "51",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "78",
 | 
			
		||||
    "safari": "11.1",
 | 
			
		||||
    "node": "10",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "11.3",
 | 
			
		||||
    "samsung": "9",
 | 
			
		||||
    "opera_mobile": "47",
 | 
			
		||||
    "electron": "3.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-unicode-property-regex": {
 | 
			
		||||
    "chrome": "64",
 | 
			
		||||
    "opera": "51",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "78",
 | 
			
		||||
    "safari": "11.1",
 | 
			
		||||
    "node": "10",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "11.3",
 | 
			
		||||
    "samsung": "9",
 | 
			
		||||
    "opera_mobile": "47",
 | 
			
		||||
    "electron": "3.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-named-capturing-groups-regex": {
 | 
			
		||||
    "chrome": "64",
 | 
			
		||||
    "opera": "51",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "78",
 | 
			
		||||
    "safari": "11.1",
 | 
			
		||||
    "node": "10",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "11.3",
 | 
			
		||||
    "samsung": "9",
 | 
			
		||||
    "opera_mobile": "47",
 | 
			
		||||
    "electron": "3.0"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-async-to-generator": {
 | 
			
		||||
    "chrome": "55",
 | 
			
		||||
    "opera": "42",
 | 
			
		||||
    "edge": "15",
 | 
			
		||||
    "firefox": "52",
 | 
			
		||||
    "safari": "11",
 | 
			
		||||
    "node": "7.6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "11",
 | 
			
		||||
    "samsung": "6",
 | 
			
		||||
    "opera_mobile": "42",
 | 
			
		||||
    "electron": "1.6"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-exponentiation-operator": {
 | 
			
		||||
    "chrome": "52",
 | 
			
		||||
    "opera": "39",
 | 
			
		||||
    "edge": "14",
 | 
			
		||||
    "firefox": "52",
 | 
			
		||||
    "safari": "10.1",
 | 
			
		||||
    "node": "7",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10.3",
 | 
			
		||||
    "samsung": "6",
 | 
			
		||||
    "rhino": "1.7.14",
 | 
			
		||||
    "opera_mobile": "41",
 | 
			
		||||
    "electron": "1.3"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-template-literals": {
 | 
			
		||||
    "chrome": "41",
 | 
			
		||||
    "opera": "28",
 | 
			
		||||
    "edge": "13",
 | 
			
		||||
    "firefox": "34",
 | 
			
		||||
    "safari": "13",
 | 
			
		||||
    "node": "4",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "13",
 | 
			
		||||
    "samsung": "3.4",
 | 
			
		||||
    "opera_mobile": "28",
 | 
			
		||||
    "electron": "0.21"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-literals": {
 | 
			
		||||
    "chrome": "44",
 | 
			
		||||
    "opera": "31",
 | 
			
		||||
    "edge": "12",
 | 
			
		||||
    "firefox": "53",
 | 
			
		||||
    "safari": "9",
 | 
			
		||||
    "node": "4",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "9",
 | 
			
		||||
    "samsung": "4",
 | 
			
		||||
    "rhino": "1.7.15",
 | 
			
		||||
    "opera_mobile": "32",
 | 
			
		||||
    "electron": "0.30"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-function-name": {
 | 
			
		||||
    "chrome": "51",
 | 
			
		||||
    "opera": "38",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "53",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "6.5",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "41",
 | 
			
		||||
    "electron": "1.2"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-arrow-functions": {
 | 
			
		||||
    "chrome": "47",
 | 
			
		||||
    "opera": "34",
 | 
			
		||||
    "edge": "13",
 | 
			
		||||
    "firefox": "43",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "rhino": "1.7.13",
 | 
			
		||||
    "opera_mobile": "34",
 | 
			
		||||
    "electron": "0.36"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-block-scoped-functions": {
 | 
			
		||||
    "chrome": "41",
 | 
			
		||||
    "opera": "28",
 | 
			
		||||
    "edge": "12",
 | 
			
		||||
    "firefox": "46",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "4",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ie": "11",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "3.4",
 | 
			
		||||
    "opera_mobile": "28",
 | 
			
		||||
    "electron": "0.21"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-classes": {
 | 
			
		||||
    "chrome": "46",
 | 
			
		||||
    "opera": "33",
 | 
			
		||||
    "edge": "13",
 | 
			
		||||
    "firefox": "45",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "5",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "33",
 | 
			
		||||
    "electron": "0.36"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-object-super": {
 | 
			
		||||
    "chrome": "46",
 | 
			
		||||
    "opera": "33",
 | 
			
		||||
    "edge": "13",
 | 
			
		||||
    "firefox": "45",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "5",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "33",
 | 
			
		||||
    "electron": "0.36"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-shorthand-properties": {
 | 
			
		||||
    "chrome": "43",
 | 
			
		||||
    "opera": "30",
 | 
			
		||||
    "edge": "12",
 | 
			
		||||
    "firefox": "33",
 | 
			
		||||
    "safari": "9",
 | 
			
		||||
    "node": "4",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "9",
 | 
			
		||||
    "samsung": "4",
 | 
			
		||||
    "rhino": "1.7.14",
 | 
			
		||||
    "opera_mobile": "30",
 | 
			
		||||
    "electron": "0.27"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-duplicate-keys": {
 | 
			
		||||
    "chrome": "42",
 | 
			
		||||
    "opera": "29",
 | 
			
		||||
    "edge": "12",
 | 
			
		||||
    "firefox": "34",
 | 
			
		||||
    "safari": "9",
 | 
			
		||||
    "node": "4",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "9",
 | 
			
		||||
    "samsung": "3.4",
 | 
			
		||||
    "opera_mobile": "29",
 | 
			
		||||
    "electron": "0.25"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-computed-properties": {
 | 
			
		||||
    "chrome": "44",
 | 
			
		||||
    "opera": "31",
 | 
			
		||||
    "edge": "12",
 | 
			
		||||
    "firefox": "34",
 | 
			
		||||
    "safari": "7.1",
 | 
			
		||||
    "node": "4",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "8",
 | 
			
		||||
    "samsung": "4",
 | 
			
		||||
    "rhino": "1.8",
 | 
			
		||||
    "opera_mobile": "32",
 | 
			
		||||
    "electron": "0.30"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-for-of": {
 | 
			
		||||
    "chrome": "51",
 | 
			
		||||
    "opera": "38",
 | 
			
		||||
    "edge": "15",
 | 
			
		||||
    "firefox": "53",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "6.5",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "41",
 | 
			
		||||
    "electron": "1.2"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-sticky-regex": {
 | 
			
		||||
    "chrome": "49",
 | 
			
		||||
    "opera": "36",
 | 
			
		||||
    "edge": "13",
 | 
			
		||||
    "firefox": "3",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "rhino": "1.7.15",
 | 
			
		||||
    "opera_mobile": "36",
 | 
			
		||||
    "electron": "0.37"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-unicode-escapes": {
 | 
			
		||||
    "chrome": "44",
 | 
			
		||||
    "opera": "31",
 | 
			
		||||
    "edge": "12",
 | 
			
		||||
    "firefox": "53",
 | 
			
		||||
    "safari": "9",
 | 
			
		||||
    "node": "4",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "9",
 | 
			
		||||
    "samsung": "4",
 | 
			
		||||
    "rhino": "1.7.15",
 | 
			
		||||
    "opera_mobile": "32",
 | 
			
		||||
    "electron": "0.30"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-unicode-regex": {
 | 
			
		||||
    "chrome": "50",
 | 
			
		||||
    "opera": "37",
 | 
			
		||||
    "edge": "13",
 | 
			
		||||
    "firefox": "46",
 | 
			
		||||
    "safari": "12",
 | 
			
		||||
    "node": "6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "12",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "37",
 | 
			
		||||
    "electron": "1.1"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-spread": {
 | 
			
		||||
    "chrome": "46",
 | 
			
		||||
    "opera": "33",
 | 
			
		||||
    "edge": "13",
 | 
			
		||||
    "firefox": "45",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "5",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "33",
 | 
			
		||||
    "electron": "0.36"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-destructuring": {
 | 
			
		||||
    "chrome": "51",
 | 
			
		||||
    "opera": "38",
 | 
			
		||||
    "edge": "15",
 | 
			
		||||
    "firefox": "53",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "6.5",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "41",
 | 
			
		||||
    "electron": "1.2"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-block-scoping": {
 | 
			
		||||
    "chrome": "50",
 | 
			
		||||
    "opera": "37",
 | 
			
		||||
    "edge": "14",
 | 
			
		||||
    "firefox": "53",
 | 
			
		||||
    "safari": "11",
 | 
			
		||||
    "node": "6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "11",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "37",
 | 
			
		||||
    "electron": "1.1"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-typeof-symbol": {
 | 
			
		||||
    "chrome": "48",
 | 
			
		||||
    "opera": "35",
 | 
			
		||||
    "edge": "12",
 | 
			
		||||
    "firefox": "36",
 | 
			
		||||
    "safari": "9",
 | 
			
		||||
    "node": "6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "9",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "rhino": "1.8",
 | 
			
		||||
    "opera_mobile": "35",
 | 
			
		||||
    "electron": "0.37"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-new-target": {
 | 
			
		||||
    "chrome": "46",
 | 
			
		||||
    "opera": "33",
 | 
			
		||||
    "edge": "14",
 | 
			
		||||
    "firefox": "41",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "5",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "33",
 | 
			
		||||
    "electron": "0.36"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-regenerator": {
 | 
			
		||||
    "chrome": "50",
 | 
			
		||||
    "opera": "37",
 | 
			
		||||
    "edge": "13",
 | 
			
		||||
    "firefox": "53",
 | 
			
		||||
    "safari": "10",
 | 
			
		||||
    "node": "6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ios": "10",
 | 
			
		||||
    "samsung": "5",
 | 
			
		||||
    "opera_mobile": "37",
 | 
			
		||||
    "electron": "1.1"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-member-expression-literals": {
 | 
			
		||||
    "chrome": "7",
 | 
			
		||||
    "opera": "12",
 | 
			
		||||
    "edge": "12",
 | 
			
		||||
    "firefox": "2",
 | 
			
		||||
    "safari": "5.1",
 | 
			
		||||
    "node": "0.4",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ie": "9",
 | 
			
		||||
    "android": "4",
 | 
			
		||||
    "ios": "6",
 | 
			
		||||
    "phantom": "1.9",
 | 
			
		||||
    "samsung": "1",
 | 
			
		||||
    "rhino": "1.7.13",
 | 
			
		||||
    "opera_mobile": "12",
 | 
			
		||||
    "electron": "0.20"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-property-literals": {
 | 
			
		||||
    "chrome": "7",
 | 
			
		||||
    "opera": "12",
 | 
			
		||||
    "edge": "12",
 | 
			
		||||
    "firefox": "2",
 | 
			
		||||
    "safari": "5.1",
 | 
			
		||||
    "node": "0.4",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ie": "9",
 | 
			
		||||
    "android": "4",
 | 
			
		||||
    "ios": "6",
 | 
			
		||||
    "phantom": "1.9",
 | 
			
		||||
    "samsung": "1",
 | 
			
		||||
    "rhino": "1.7.13",
 | 
			
		||||
    "opera_mobile": "12",
 | 
			
		||||
    "electron": "0.20"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-reserved-words": {
 | 
			
		||||
    "chrome": "13",
 | 
			
		||||
    "opera": "10.50",
 | 
			
		||||
    "edge": "12",
 | 
			
		||||
    "firefox": "2",
 | 
			
		||||
    "safari": "3.1",
 | 
			
		||||
    "node": "0.6",
 | 
			
		||||
    "deno": "1",
 | 
			
		||||
    "ie": "9",
 | 
			
		||||
    "android": "4.4",
 | 
			
		||||
    "ios": "6",
 | 
			
		||||
    "phantom": "1.9",
 | 
			
		||||
    "samsung": "1",
 | 
			
		||||
    "rhino": "1.7.13",
 | 
			
		||||
    "opera_mobile": "10.1",
 | 
			
		||||
    "electron": "0.20"
 | 
			
		||||
  },
 | 
			
		||||
  "transform-export-namespace-from": {
 | 
			
		||||
    "chrome": "72",
 | 
			
		||||
    "deno": "1.0",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "80",
 | 
			
		||||
    "node": "13.2.0",
 | 
			
		||||
    "opera": "60",
 | 
			
		||||
    "opera_mobile": "51",
 | 
			
		||||
    "safari": "14.1",
 | 
			
		||||
    "ios": "14.5",
 | 
			
		||||
    "samsung": "11.0",
 | 
			
		||||
    "android": "72",
 | 
			
		||||
    "electron": "5.0"
 | 
			
		||||
  },
 | 
			
		||||
  "proposal-export-namespace-from": {
 | 
			
		||||
    "chrome": "72",
 | 
			
		||||
    "deno": "1.0",
 | 
			
		||||
    "edge": "79",
 | 
			
		||||
    "firefox": "80",
 | 
			
		||||
    "node": "13.2.0",
 | 
			
		||||
    "opera": "60",
 | 
			
		||||
    "opera_mobile": "51",
 | 
			
		||||
    "safari": "14.1",
 | 
			
		||||
    "ios": "14.5",
 | 
			
		||||
    "samsung": "11.0",
 | 
			
		||||
    "android": "72",
 | 
			
		||||
    "electron": "5.0"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2
									
								
								node_modules/@babel/compat-data/native-modules.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								node_modules/@babel/compat-data/native-modules.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
 | 
			
		||||
module.exports = require("./data/native-modules.json");
 | 
			
		||||
							
								
								
									
										2
									
								
								node_modules/@babel/compat-data/overlapping-plugins.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								node_modules/@babel/compat-data/overlapping-plugins.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
 | 
			
		||||
module.exports = require("./data/overlapping-plugins.json");
 | 
			
		||||
							
								
								
									
										40
									
								
								node_modules/@babel/compat-data/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								node_modules/@babel/compat-data/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "@babel/compat-data",
 | 
			
		||||
  "version": "7.28.5",
 | 
			
		||||
  "author": "The Babel Team (https://babel.dev/team)",
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "description": "The compat-data to determine required Babel plugins",
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "https://github.com/babel/babel.git",
 | 
			
		||||
    "directory": "packages/babel-compat-data"
 | 
			
		||||
  },
 | 
			
		||||
  "publishConfig": {
 | 
			
		||||
    "access": "public"
 | 
			
		||||
  },
 | 
			
		||||
  "exports": {
 | 
			
		||||
    "./plugins": "./plugins.js",
 | 
			
		||||
    "./native-modules": "./native-modules.js",
 | 
			
		||||
    "./corejs2-built-ins": "./corejs2-built-ins.js",
 | 
			
		||||
    "./corejs3-shipped-proposals": "./corejs3-shipped-proposals.js",
 | 
			
		||||
    "./overlapping-plugins": "./overlapping-plugins.js",
 | 
			
		||||
    "./plugin-bugfixes": "./plugin-bugfixes.js"
 | 
			
		||||
  },
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "build-data": "./scripts/download-compat-table.sh && node ./scripts/build-data.mjs && node ./scripts/build-modules-support.mjs && node ./scripts/build-bugfixes-targets.mjs"
 | 
			
		||||
  },
 | 
			
		||||
  "keywords": [
 | 
			
		||||
    "babel",
 | 
			
		||||
    "compat-table",
 | 
			
		||||
    "compat-data"
 | 
			
		||||
  ],
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@mdn/browser-compat-data": "^6.0.8",
 | 
			
		||||
    "core-js-compat": "^3.43.0",
 | 
			
		||||
    "electron-to-chromium": "^1.5.140"
 | 
			
		||||
  },
 | 
			
		||||
  "engines": {
 | 
			
		||||
    "node": ">=6.9.0"
 | 
			
		||||
  },
 | 
			
		||||
  "type": "commonjs"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2
									
								
								node_modules/@babel/compat-data/plugin-bugfixes.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								node_modules/@babel/compat-data/plugin-bugfixes.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
 | 
			
		||||
module.exports = require("./data/plugin-bugfixes.json");
 | 
			
		||||
							
								
								
									
										2
									
								
								node_modules/@babel/compat-data/plugins.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								node_modules/@babel/compat-data/plugins.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
 | 
			
		||||
module.exports = require("./data/plugins.json");
 | 
			
		||||
							
								
								
									
										22
									
								
								node_modules/@babel/core/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								node_modules/@babel/core/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining
 | 
			
		||||
a copy of this software and associated documentation files (the
 | 
			
		||||
"Software"), to deal in the Software without restriction, including
 | 
			
		||||
without limitation the rights to use, copy, modify, merge, publish,
 | 
			
		||||
distribute, sublicense, and/or sell copies of the Software, and to
 | 
			
		||||
permit persons to whom the Software is furnished to do so, subject to
 | 
			
		||||
the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be
 | 
			
		||||
included in all copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
			
		||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | 
			
		||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | 
			
		||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 | 
			
		||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 | 
			
		||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 | 
			
		||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
							
								
								
									
										19
									
								
								node_modules/@babel/core/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								node_modules/@babel/core/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
# @babel/core
 | 
			
		||||
 | 
			
		||||
> Babel compiler core.
 | 
			
		||||
 | 
			
		||||
See our website [@babel/core](https://babeljs.io/docs/babel-core) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen) associated with this package.
 | 
			
		||||
 | 
			
		||||
## Install
 | 
			
		||||
 | 
			
		||||
Using npm:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
npm install --save-dev @babel/core
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
or using yarn:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
yarn add @babel/core --dev
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										5
									
								
								node_modules/@babel/core/lib/config/cache-contexts.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								node_modules/@babel/core/lib/config/cache-contexts.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=cache-contexts.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/cache-contexts.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/cache-contexts.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":[],"sources":["../../src/config/cache-contexts.ts"],"sourcesContent":["import type { ConfigContext } from \"./config-chain.ts\";\nimport type {\n  CallerMetadata,\n  TargetsListOrObject,\n} from \"./validation/options.ts\";\n\nexport type { ConfigContext as FullConfig };\n\nexport type FullPreset = {\n  targets: TargetsListOrObject;\n} & ConfigContext;\nexport type FullPlugin = {\n  assumptions: { [name: string]: boolean };\n} & FullPreset;\n\n// Context not including filename since it is used in places that cannot\n// process 'ignore'/'only' and other filename-based logic.\nexport type SimpleConfig = {\n  envName: string;\n  caller: CallerMetadata | undefined;\n};\nexport type SimplePreset = {\n  targets: TargetsListOrObject;\n} & SimpleConfig;\nexport type SimplePlugin = {\n  assumptions: {\n    [name: string]: boolean;\n  };\n} & SimplePreset;\n"],"mappings":"","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										261
									
								
								node_modules/@babel/core/lib/config/caching.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										261
									
								
								node_modules/@babel/core/lib/config/caching.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,261 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.assertSimpleType = assertSimpleType;
 | 
			
		||||
exports.makeStrongCache = makeStrongCache;
 | 
			
		||||
exports.makeStrongCacheSync = makeStrongCacheSync;
 | 
			
		||||
exports.makeWeakCache = makeWeakCache;
 | 
			
		||||
exports.makeWeakCacheSync = makeWeakCacheSync;
 | 
			
		||||
function _gensync() {
 | 
			
		||||
  const data = require("gensync");
 | 
			
		||||
  _gensync = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _async = require("../gensync-utils/async.js");
 | 
			
		||||
var _util = require("./util.js");
 | 
			
		||||
const synchronize = gen => {
 | 
			
		||||
  return _gensync()(gen).sync;
 | 
			
		||||
};
 | 
			
		||||
function* genTrue() {
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
function makeWeakCache(handler) {
 | 
			
		||||
  return makeCachedFunction(WeakMap, handler);
 | 
			
		||||
}
 | 
			
		||||
function makeWeakCacheSync(handler) {
 | 
			
		||||
  return synchronize(makeWeakCache(handler));
 | 
			
		||||
}
 | 
			
		||||
function makeStrongCache(handler) {
 | 
			
		||||
  return makeCachedFunction(Map, handler);
 | 
			
		||||
}
 | 
			
		||||
function makeStrongCacheSync(handler) {
 | 
			
		||||
  return synchronize(makeStrongCache(handler));
 | 
			
		||||
}
 | 
			
		||||
function makeCachedFunction(CallCache, handler) {
 | 
			
		||||
  const callCacheSync = new CallCache();
 | 
			
		||||
  const callCacheAsync = new CallCache();
 | 
			
		||||
  const futureCache = new CallCache();
 | 
			
		||||
  return function* cachedFunction(arg, data) {
 | 
			
		||||
    const asyncContext = yield* (0, _async.isAsync)();
 | 
			
		||||
    const callCache = asyncContext ? callCacheAsync : callCacheSync;
 | 
			
		||||
    const cached = yield* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data);
 | 
			
		||||
    if (cached.valid) return cached.value;
 | 
			
		||||
    const cache = new CacheConfigurator(data);
 | 
			
		||||
    const handlerResult = handler(arg, cache);
 | 
			
		||||
    let finishLock;
 | 
			
		||||
    let value;
 | 
			
		||||
    if ((0, _util.isIterableIterator)(handlerResult)) {
 | 
			
		||||
      value = yield* (0, _async.onFirstPause)(handlerResult, () => {
 | 
			
		||||
        finishLock = setupAsyncLocks(cache, futureCache, arg);
 | 
			
		||||
      });
 | 
			
		||||
    } else {
 | 
			
		||||
      value = handlerResult;
 | 
			
		||||
    }
 | 
			
		||||
    updateFunctionCache(callCache, cache, arg, value);
 | 
			
		||||
    if (finishLock) {
 | 
			
		||||
      futureCache.delete(arg);
 | 
			
		||||
      finishLock.release(value);
 | 
			
		||||
    }
 | 
			
		||||
    return value;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function* getCachedValue(cache, arg, data) {
 | 
			
		||||
  const cachedValue = cache.get(arg);
 | 
			
		||||
  if (cachedValue) {
 | 
			
		||||
    for (const {
 | 
			
		||||
      value,
 | 
			
		||||
      valid
 | 
			
		||||
    } of cachedValue) {
 | 
			
		||||
      if (yield* valid(data)) return {
 | 
			
		||||
        valid: true,
 | 
			
		||||
        value
 | 
			
		||||
      };
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    valid: false,
 | 
			
		||||
    value: null
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data) {
 | 
			
		||||
  const cached = yield* getCachedValue(callCache, arg, data);
 | 
			
		||||
  if (cached.valid) {
 | 
			
		||||
    return cached;
 | 
			
		||||
  }
 | 
			
		||||
  if (asyncContext) {
 | 
			
		||||
    const cached = yield* getCachedValue(futureCache, arg, data);
 | 
			
		||||
    if (cached.valid) {
 | 
			
		||||
      const value = yield* (0, _async.waitFor)(cached.value.promise);
 | 
			
		||||
      return {
 | 
			
		||||
        valid: true,
 | 
			
		||||
        value
 | 
			
		||||
      };
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    valid: false,
 | 
			
		||||
    value: null
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function setupAsyncLocks(config, futureCache, arg) {
 | 
			
		||||
  const finishLock = new Lock();
 | 
			
		||||
  updateFunctionCache(futureCache, config, arg, finishLock);
 | 
			
		||||
  return finishLock;
 | 
			
		||||
}
 | 
			
		||||
function updateFunctionCache(cache, config, arg, value) {
 | 
			
		||||
  if (!config.configured()) config.forever();
 | 
			
		||||
  let cachedValue = cache.get(arg);
 | 
			
		||||
  config.deactivate();
 | 
			
		||||
  switch (config.mode()) {
 | 
			
		||||
    case "forever":
 | 
			
		||||
      cachedValue = [{
 | 
			
		||||
        value,
 | 
			
		||||
        valid: genTrue
 | 
			
		||||
      }];
 | 
			
		||||
      cache.set(arg, cachedValue);
 | 
			
		||||
      break;
 | 
			
		||||
    case "invalidate":
 | 
			
		||||
      cachedValue = [{
 | 
			
		||||
        value,
 | 
			
		||||
        valid: config.validator()
 | 
			
		||||
      }];
 | 
			
		||||
      cache.set(arg, cachedValue);
 | 
			
		||||
      break;
 | 
			
		||||
    case "valid":
 | 
			
		||||
      if (cachedValue) {
 | 
			
		||||
        cachedValue.push({
 | 
			
		||||
          value,
 | 
			
		||||
          valid: config.validator()
 | 
			
		||||
        });
 | 
			
		||||
      } else {
 | 
			
		||||
        cachedValue = [{
 | 
			
		||||
          value,
 | 
			
		||||
          valid: config.validator()
 | 
			
		||||
        }];
 | 
			
		||||
        cache.set(arg, cachedValue);
 | 
			
		||||
      }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
class CacheConfigurator {
 | 
			
		||||
  constructor(data) {
 | 
			
		||||
    this._active = true;
 | 
			
		||||
    this._never = false;
 | 
			
		||||
    this._forever = false;
 | 
			
		||||
    this._invalidate = false;
 | 
			
		||||
    this._configured = false;
 | 
			
		||||
    this._pairs = [];
 | 
			
		||||
    this._data = void 0;
 | 
			
		||||
    this._data = data;
 | 
			
		||||
  }
 | 
			
		||||
  simple() {
 | 
			
		||||
    return makeSimpleConfigurator(this);
 | 
			
		||||
  }
 | 
			
		||||
  mode() {
 | 
			
		||||
    if (this._never) return "never";
 | 
			
		||||
    if (this._forever) return "forever";
 | 
			
		||||
    if (this._invalidate) return "invalidate";
 | 
			
		||||
    return "valid";
 | 
			
		||||
  }
 | 
			
		||||
  forever() {
 | 
			
		||||
    if (!this._active) {
 | 
			
		||||
      throw new Error("Cannot change caching after evaluation has completed.");
 | 
			
		||||
    }
 | 
			
		||||
    if (this._never) {
 | 
			
		||||
      throw new Error("Caching has already been configured with .never()");
 | 
			
		||||
    }
 | 
			
		||||
    this._forever = true;
 | 
			
		||||
    this._configured = true;
 | 
			
		||||
  }
 | 
			
		||||
  never() {
 | 
			
		||||
    if (!this._active) {
 | 
			
		||||
      throw new Error("Cannot change caching after evaluation has completed.");
 | 
			
		||||
    }
 | 
			
		||||
    if (this._forever) {
 | 
			
		||||
      throw new Error("Caching has already been configured with .forever()");
 | 
			
		||||
    }
 | 
			
		||||
    this._never = true;
 | 
			
		||||
    this._configured = true;
 | 
			
		||||
  }
 | 
			
		||||
  using(handler) {
 | 
			
		||||
    if (!this._active) {
 | 
			
		||||
      throw new Error("Cannot change caching after evaluation has completed.");
 | 
			
		||||
    }
 | 
			
		||||
    if (this._never || this._forever) {
 | 
			
		||||
      throw new Error("Caching has already been configured with .never or .forever()");
 | 
			
		||||
    }
 | 
			
		||||
    this._configured = true;
 | 
			
		||||
    const key = handler(this._data);
 | 
			
		||||
    const fn = (0, _async.maybeAsync)(handler, `You appear to be using an async cache handler, but Babel has been called synchronously`);
 | 
			
		||||
    if ((0, _async.isThenable)(key)) {
 | 
			
		||||
      return key.then(key => {
 | 
			
		||||
        this._pairs.push([key, fn]);
 | 
			
		||||
        return key;
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
    this._pairs.push([key, fn]);
 | 
			
		||||
    return key;
 | 
			
		||||
  }
 | 
			
		||||
  invalidate(handler) {
 | 
			
		||||
    this._invalidate = true;
 | 
			
		||||
    return this.using(handler);
 | 
			
		||||
  }
 | 
			
		||||
  validator() {
 | 
			
		||||
    const pairs = this._pairs;
 | 
			
		||||
    return function* (data) {
 | 
			
		||||
      for (const [key, fn] of pairs) {
 | 
			
		||||
        if (key !== (yield* fn(data))) return false;
 | 
			
		||||
      }
 | 
			
		||||
      return true;
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
  deactivate() {
 | 
			
		||||
    this._active = false;
 | 
			
		||||
  }
 | 
			
		||||
  configured() {
 | 
			
		||||
    return this._configured;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
function makeSimpleConfigurator(cache) {
 | 
			
		||||
  function cacheFn(val) {
 | 
			
		||||
    if (typeof val === "boolean") {
 | 
			
		||||
      if (val) cache.forever();else cache.never();
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    return cache.using(() => assertSimpleType(val()));
 | 
			
		||||
  }
 | 
			
		||||
  cacheFn.forever = () => cache.forever();
 | 
			
		||||
  cacheFn.never = () => cache.never();
 | 
			
		||||
  cacheFn.using = cb => cache.using(() => assertSimpleType(cb()));
 | 
			
		||||
  cacheFn.invalidate = cb => cache.invalidate(() => assertSimpleType(cb()));
 | 
			
		||||
  return cacheFn;
 | 
			
		||||
}
 | 
			
		||||
function assertSimpleType(value) {
 | 
			
		||||
  if ((0, _async.isThenable)(value)) {
 | 
			
		||||
    throw new Error(`You appear to be using an async cache handler, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously handle your caching logic.`);
 | 
			
		||||
  }
 | 
			
		||||
  if (value != null && typeof value !== "string" && typeof value !== "boolean" && typeof value !== "number") {
 | 
			
		||||
    throw new Error("Cache keys must be either string, boolean, number, null, or undefined.");
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
class Lock {
 | 
			
		||||
  constructor() {
 | 
			
		||||
    this.released = false;
 | 
			
		||||
    this.promise = void 0;
 | 
			
		||||
    this._resolve = void 0;
 | 
			
		||||
    this.promise = new Promise(resolve => {
 | 
			
		||||
      this._resolve = resolve;
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
  release(value) {
 | 
			
		||||
    this.released = true;
 | 
			
		||||
    this._resolve(value);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=caching.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/caching.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/caching.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										469
									
								
								node_modules/@babel/core/lib/config/config-chain.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										469
									
								
								node_modules/@babel/core/lib/config/config-chain.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,469 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.buildPresetChain = buildPresetChain;
 | 
			
		||||
exports.buildPresetChainWalker = void 0;
 | 
			
		||||
exports.buildRootChain = buildRootChain;
 | 
			
		||||
function _path() {
 | 
			
		||||
  const data = require("path");
 | 
			
		||||
  _path = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
function _debug() {
 | 
			
		||||
  const data = require("debug");
 | 
			
		||||
  _debug = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _options = require("./validation/options.js");
 | 
			
		||||
var _patternToRegex = require("./pattern-to-regex.js");
 | 
			
		||||
var _printer = require("./printer.js");
 | 
			
		||||
var _rewriteStackTrace = require("../errors/rewrite-stack-trace.js");
 | 
			
		||||
var _configError = require("../errors/config-error.js");
 | 
			
		||||
var _index = require("./files/index.js");
 | 
			
		||||
var _caching = require("./caching.js");
 | 
			
		||||
var _configDescriptors = require("./config-descriptors.js");
 | 
			
		||||
const debug = _debug()("babel:config:config-chain");
 | 
			
		||||
function* buildPresetChain(arg, context) {
 | 
			
		||||
  const chain = yield* buildPresetChainWalker(arg, context);
 | 
			
		||||
  if (!chain) return null;
 | 
			
		||||
  return {
 | 
			
		||||
    plugins: dedupDescriptors(chain.plugins),
 | 
			
		||||
    presets: dedupDescriptors(chain.presets),
 | 
			
		||||
    options: chain.options.map(o => createConfigChainOptions(o)),
 | 
			
		||||
    files: new Set()
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
const buildPresetChainWalker = exports.buildPresetChainWalker = makeChainWalker({
 | 
			
		||||
  root: preset => loadPresetDescriptors(preset),
 | 
			
		||||
  env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName),
 | 
			
		||||
  overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index),
 | 
			
		||||
  overridesEnv: (preset, index, envName) => loadPresetOverridesEnvDescriptors(preset)(index)(envName),
 | 
			
		||||
  createLogger: () => () => {}
 | 
			
		||||
});
 | 
			
		||||
const loadPresetDescriptors = (0, _caching.makeWeakCacheSync)(preset => buildRootDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors));
 | 
			
		||||
const loadPresetEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, envName)));
 | 
			
		||||
const loadPresetOverridesDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index)));
 | 
			
		||||
const loadPresetOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index, envName))));
 | 
			
		||||
function* buildRootChain(opts, context) {
 | 
			
		||||
  let configReport, babelRcReport;
 | 
			
		||||
  const programmaticLogger = new _printer.ConfigPrinter();
 | 
			
		||||
  const programmaticChain = yield* loadProgrammaticChain({
 | 
			
		||||
    options: opts,
 | 
			
		||||
    dirname: context.cwd
 | 
			
		||||
  }, context, undefined, programmaticLogger);
 | 
			
		||||
  if (!programmaticChain) return null;
 | 
			
		||||
  const programmaticReport = yield* programmaticLogger.output();
 | 
			
		||||
  let configFile;
 | 
			
		||||
  if (typeof opts.configFile === "string") {
 | 
			
		||||
    configFile = yield* (0, _index.loadConfig)(opts.configFile, context.cwd, context.envName, context.caller);
 | 
			
		||||
  } else if (opts.configFile !== false) {
 | 
			
		||||
    configFile = yield* (0, _index.findRootConfig)(context.root, context.envName, context.caller);
 | 
			
		||||
  }
 | 
			
		||||
  let {
 | 
			
		||||
    babelrc,
 | 
			
		||||
    babelrcRoots
 | 
			
		||||
  } = opts;
 | 
			
		||||
  let babelrcRootsDirectory = context.cwd;
 | 
			
		||||
  const configFileChain = emptyChain();
 | 
			
		||||
  const configFileLogger = new _printer.ConfigPrinter();
 | 
			
		||||
  if (configFile) {
 | 
			
		||||
    const validatedFile = validateConfigFile(configFile);
 | 
			
		||||
    const result = yield* loadFileChain(validatedFile, context, undefined, configFileLogger);
 | 
			
		||||
    if (!result) return null;
 | 
			
		||||
    configReport = yield* configFileLogger.output();
 | 
			
		||||
    if (babelrc === undefined) {
 | 
			
		||||
      babelrc = validatedFile.options.babelrc;
 | 
			
		||||
    }
 | 
			
		||||
    if (babelrcRoots === undefined) {
 | 
			
		||||
      babelrcRootsDirectory = validatedFile.dirname;
 | 
			
		||||
      babelrcRoots = validatedFile.options.babelrcRoots;
 | 
			
		||||
    }
 | 
			
		||||
    mergeChain(configFileChain, result);
 | 
			
		||||
  }
 | 
			
		||||
  let ignoreFile, babelrcFile;
 | 
			
		||||
  let isIgnored = false;
 | 
			
		||||
  const fileChain = emptyChain();
 | 
			
		||||
  if ((babelrc === true || babelrc === undefined) && typeof context.filename === "string") {
 | 
			
		||||
    const pkgData = yield* (0, _index.findPackageData)(context.filename);
 | 
			
		||||
    if (pkgData && babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)) {
 | 
			
		||||
      ({
 | 
			
		||||
        ignore: ignoreFile,
 | 
			
		||||
        config: babelrcFile
 | 
			
		||||
      } = yield* (0, _index.findRelativeConfig)(pkgData, context.envName, context.caller));
 | 
			
		||||
      if (ignoreFile) {
 | 
			
		||||
        fileChain.files.add(ignoreFile.filepath);
 | 
			
		||||
      }
 | 
			
		||||
      if (ignoreFile && shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)) {
 | 
			
		||||
        isIgnored = true;
 | 
			
		||||
      }
 | 
			
		||||
      if (babelrcFile && !isIgnored) {
 | 
			
		||||
        const validatedFile = validateBabelrcFile(babelrcFile);
 | 
			
		||||
        const babelrcLogger = new _printer.ConfigPrinter();
 | 
			
		||||
        const result = yield* loadFileChain(validatedFile, context, undefined, babelrcLogger);
 | 
			
		||||
        if (!result) {
 | 
			
		||||
          isIgnored = true;
 | 
			
		||||
        } else {
 | 
			
		||||
          babelRcReport = yield* babelrcLogger.output();
 | 
			
		||||
          mergeChain(fileChain, result);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      if (babelrcFile && isIgnored) {
 | 
			
		||||
        fileChain.files.add(babelrcFile.filepath);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (context.showConfig) {
 | 
			
		||||
    console.log(`Babel configs on "${context.filename}" (ascending priority):\n` + [configReport, babelRcReport, programmaticReport].filter(x => !!x).join("\n\n") + "\n-----End Babel configs-----");
 | 
			
		||||
  }
 | 
			
		||||
  const chain = mergeChain(mergeChain(mergeChain(emptyChain(), configFileChain), fileChain), programmaticChain);
 | 
			
		||||
  return {
 | 
			
		||||
    plugins: isIgnored ? [] : dedupDescriptors(chain.plugins),
 | 
			
		||||
    presets: isIgnored ? [] : dedupDescriptors(chain.presets),
 | 
			
		||||
    options: isIgnored ? [] : chain.options.map(o => createConfigChainOptions(o)),
 | 
			
		||||
    fileHandling: isIgnored ? "ignored" : "transpile",
 | 
			
		||||
    ignore: ignoreFile || undefined,
 | 
			
		||||
    babelrc: babelrcFile || undefined,
 | 
			
		||||
    config: configFile || undefined,
 | 
			
		||||
    files: chain.files
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory) {
 | 
			
		||||
  if (typeof babelrcRoots === "boolean") return babelrcRoots;
 | 
			
		||||
  const absoluteRoot = context.root;
 | 
			
		||||
  if (babelrcRoots === undefined) {
 | 
			
		||||
    return pkgData.directories.includes(absoluteRoot);
 | 
			
		||||
  }
 | 
			
		||||
  let babelrcPatterns = babelrcRoots;
 | 
			
		||||
  if (!Array.isArray(babelrcPatterns)) {
 | 
			
		||||
    babelrcPatterns = [babelrcPatterns];
 | 
			
		||||
  }
 | 
			
		||||
  babelrcPatterns = babelrcPatterns.map(pat => {
 | 
			
		||||
    return typeof pat === "string" ? _path().resolve(babelrcRootsDirectory, pat) : pat;
 | 
			
		||||
  });
 | 
			
		||||
  if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) {
 | 
			
		||||
    return pkgData.directories.includes(absoluteRoot);
 | 
			
		||||
  }
 | 
			
		||||
  return babelrcPatterns.some(pat => {
 | 
			
		||||
    if (typeof pat === "string") {
 | 
			
		||||
      pat = (0, _patternToRegex.default)(pat, babelrcRootsDirectory);
 | 
			
		||||
    }
 | 
			
		||||
    return pkgData.directories.some(directory => {
 | 
			
		||||
      return matchPattern(pat, babelrcRootsDirectory, directory, context);
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
const validateConfigFile = (0, _caching.makeWeakCacheSync)(file => ({
 | 
			
		||||
  filepath: file.filepath,
 | 
			
		||||
  dirname: file.dirname,
 | 
			
		||||
  options: (0, _options.validate)("configfile", file.options, file.filepath)
 | 
			
		||||
}));
 | 
			
		||||
const validateBabelrcFile = (0, _caching.makeWeakCacheSync)(file => ({
 | 
			
		||||
  filepath: file.filepath,
 | 
			
		||||
  dirname: file.dirname,
 | 
			
		||||
  options: (0, _options.validate)("babelrcfile", file.options, file.filepath)
 | 
			
		||||
}));
 | 
			
		||||
const validateExtendFile = (0, _caching.makeWeakCacheSync)(file => ({
 | 
			
		||||
  filepath: file.filepath,
 | 
			
		||||
  dirname: file.dirname,
 | 
			
		||||
  options: (0, _options.validate)("extendsfile", file.options, file.filepath)
 | 
			
		||||
}));
 | 
			
		||||
const loadProgrammaticChain = makeChainWalker({
 | 
			
		||||
  root: input => buildRootDescriptors(input, "base", _configDescriptors.createCachedDescriptors),
 | 
			
		||||
  env: (input, envName) => buildEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, envName),
 | 
			
		||||
  overrides: (input, index) => buildOverrideDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index),
 | 
			
		||||
  overridesEnv: (input, index, envName) => buildOverrideEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index, envName),
 | 
			
		||||
  createLogger: (input, context, baseLogger) => buildProgrammaticLogger(input, context, baseLogger)
 | 
			
		||||
});
 | 
			
		||||
const loadFileChainWalker = makeChainWalker({
 | 
			
		||||
  root: file => loadFileDescriptors(file),
 | 
			
		||||
  env: (file, envName) => loadFileEnvDescriptors(file)(envName),
 | 
			
		||||
  overrides: (file, index) => loadFileOverridesDescriptors(file)(index),
 | 
			
		||||
  overridesEnv: (file, index, envName) => loadFileOverridesEnvDescriptors(file)(index)(envName),
 | 
			
		||||
  createLogger: (file, context, baseLogger) => buildFileLogger(file.filepath, context, baseLogger)
 | 
			
		||||
});
 | 
			
		||||
function* loadFileChain(input, context, files, baseLogger) {
 | 
			
		||||
  const chain = yield* loadFileChainWalker(input, context, files, baseLogger);
 | 
			
		||||
  chain == null || chain.files.add(input.filepath);
 | 
			
		||||
  return chain;
 | 
			
		||||
}
 | 
			
		||||
const loadFileDescriptors = (0, _caching.makeWeakCacheSync)(file => buildRootDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors));
 | 
			
		||||
const loadFileEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, envName)));
 | 
			
		||||
const loadFileOverridesDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index)));
 | 
			
		||||
const loadFileOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index, envName))));
 | 
			
		||||
function buildFileLogger(filepath, context, baseLogger) {
 | 
			
		||||
  if (!baseLogger) {
 | 
			
		||||
    return () => {};
 | 
			
		||||
  }
 | 
			
		||||
  return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Config, {
 | 
			
		||||
    filepath
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
function buildRootDescriptors({
 | 
			
		||||
  dirname,
 | 
			
		||||
  options
 | 
			
		||||
}, alias, descriptors) {
 | 
			
		||||
  return descriptors(dirname, options, alias);
 | 
			
		||||
}
 | 
			
		||||
function buildProgrammaticLogger(_, context, baseLogger) {
 | 
			
		||||
  var _context$caller;
 | 
			
		||||
  if (!baseLogger) {
 | 
			
		||||
    return () => {};
 | 
			
		||||
  }
 | 
			
		||||
  return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Programmatic, {
 | 
			
		||||
    callerName: (_context$caller = context.caller) == null ? void 0 : _context$caller.name
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
function buildEnvDescriptors({
 | 
			
		||||
  dirname,
 | 
			
		||||
  options
 | 
			
		||||
}, alias, descriptors, envName) {
 | 
			
		||||
  var _options$env;
 | 
			
		||||
  const opts = (_options$env = options.env) == null ? void 0 : _options$env[envName];
 | 
			
		||||
  return opts ? descriptors(dirname, opts, `${alias}.env["${envName}"]`) : null;
 | 
			
		||||
}
 | 
			
		||||
function buildOverrideDescriptors({
 | 
			
		||||
  dirname,
 | 
			
		||||
  options
 | 
			
		||||
}, alias, descriptors, index) {
 | 
			
		||||
  var _options$overrides;
 | 
			
		||||
  const opts = (_options$overrides = options.overrides) == null ? void 0 : _options$overrides[index];
 | 
			
		||||
  if (!opts) throw new Error("Assertion failure - missing override");
 | 
			
		||||
  return descriptors(dirname, opts, `${alias}.overrides[${index}]`);
 | 
			
		||||
}
 | 
			
		||||
function buildOverrideEnvDescriptors({
 | 
			
		||||
  dirname,
 | 
			
		||||
  options
 | 
			
		||||
}, alias, descriptors, index, envName) {
 | 
			
		||||
  var _options$overrides2, _override$env;
 | 
			
		||||
  const override = (_options$overrides2 = options.overrides) == null ? void 0 : _options$overrides2[index];
 | 
			
		||||
  if (!override) throw new Error("Assertion failure - missing override");
 | 
			
		||||
  const opts = (_override$env = override.env) == null ? void 0 : _override$env[envName];
 | 
			
		||||
  return opts ? descriptors(dirname, opts, `${alias}.overrides[${index}].env["${envName}"]`) : null;
 | 
			
		||||
}
 | 
			
		||||
function makeChainWalker({
 | 
			
		||||
  root,
 | 
			
		||||
  env,
 | 
			
		||||
  overrides,
 | 
			
		||||
  overridesEnv,
 | 
			
		||||
  createLogger
 | 
			
		||||
}) {
 | 
			
		||||
  return function* chainWalker(input, context, files = new Set(), baseLogger) {
 | 
			
		||||
    const {
 | 
			
		||||
      dirname
 | 
			
		||||
    } = input;
 | 
			
		||||
    const flattenedConfigs = [];
 | 
			
		||||
    const rootOpts = root(input);
 | 
			
		||||
    if (configIsApplicable(rootOpts, dirname, context, input.filepath)) {
 | 
			
		||||
      flattenedConfigs.push({
 | 
			
		||||
        config: rootOpts,
 | 
			
		||||
        envName: undefined,
 | 
			
		||||
        index: undefined
 | 
			
		||||
      });
 | 
			
		||||
      const envOpts = env(input, context.envName);
 | 
			
		||||
      if (envOpts && configIsApplicable(envOpts, dirname, context, input.filepath)) {
 | 
			
		||||
        flattenedConfigs.push({
 | 
			
		||||
          config: envOpts,
 | 
			
		||||
          envName: context.envName,
 | 
			
		||||
          index: undefined
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
      (rootOpts.options.overrides || []).forEach((_, index) => {
 | 
			
		||||
        const overrideOps = overrides(input, index);
 | 
			
		||||
        if (configIsApplicable(overrideOps, dirname, context, input.filepath)) {
 | 
			
		||||
          flattenedConfigs.push({
 | 
			
		||||
            config: overrideOps,
 | 
			
		||||
            index,
 | 
			
		||||
            envName: undefined
 | 
			
		||||
          });
 | 
			
		||||
          const overrideEnvOpts = overridesEnv(input, index, context.envName);
 | 
			
		||||
          if (overrideEnvOpts && configIsApplicable(overrideEnvOpts, dirname, context, input.filepath)) {
 | 
			
		||||
            flattenedConfigs.push({
 | 
			
		||||
              config: overrideEnvOpts,
 | 
			
		||||
              index,
 | 
			
		||||
              envName: context.envName
 | 
			
		||||
            });
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
    if (flattenedConfigs.some(({
 | 
			
		||||
      config: {
 | 
			
		||||
        options: {
 | 
			
		||||
          ignore,
 | 
			
		||||
          only
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }) => shouldIgnore(context, ignore, only, dirname))) {
 | 
			
		||||
      return null;
 | 
			
		||||
    }
 | 
			
		||||
    const chain = emptyChain();
 | 
			
		||||
    const logger = createLogger(input, context, baseLogger);
 | 
			
		||||
    for (const {
 | 
			
		||||
      config,
 | 
			
		||||
      index,
 | 
			
		||||
      envName
 | 
			
		||||
    } of flattenedConfigs) {
 | 
			
		||||
      if (!(yield* mergeExtendsChain(chain, config.options, dirname, context, files, baseLogger))) {
 | 
			
		||||
        return null;
 | 
			
		||||
      }
 | 
			
		||||
      logger(config, index, envName);
 | 
			
		||||
      yield* mergeChainOpts(chain, config);
 | 
			
		||||
    }
 | 
			
		||||
    return chain;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function* mergeExtendsChain(chain, opts, dirname, context, files, baseLogger) {
 | 
			
		||||
  if (opts.extends === undefined) return true;
 | 
			
		||||
  const file = yield* (0, _index.loadConfig)(opts.extends, dirname, context.envName, context.caller);
 | 
			
		||||
  if (files.has(file)) {
 | 
			
		||||
    throw new Error(`Configuration cycle detected loading ${file.filepath}.\n` + `File already loaded following the config chain:\n` + Array.from(files, file => ` - ${file.filepath}`).join("\n"));
 | 
			
		||||
  }
 | 
			
		||||
  files.add(file);
 | 
			
		||||
  const fileChain = yield* loadFileChain(validateExtendFile(file), context, files, baseLogger);
 | 
			
		||||
  files.delete(file);
 | 
			
		||||
  if (!fileChain) return false;
 | 
			
		||||
  mergeChain(chain, fileChain);
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
function mergeChain(target, source) {
 | 
			
		||||
  target.options.push(...source.options);
 | 
			
		||||
  target.plugins.push(...source.plugins);
 | 
			
		||||
  target.presets.push(...source.presets);
 | 
			
		||||
  for (const file of source.files) {
 | 
			
		||||
    target.files.add(file);
 | 
			
		||||
  }
 | 
			
		||||
  return target;
 | 
			
		||||
}
 | 
			
		||||
function* mergeChainOpts(target, {
 | 
			
		||||
  options,
 | 
			
		||||
  plugins,
 | 
			
		||||
  presets
 | 
			
		||||
}) {
 | 
			
		||||
  target.options.push(options);
 | 
			
		||||
  target.plugins.push(...(yield* plugins()));
 | 
			
		||||
  target.presets.push(...(yield* presets()));
 | 
			
		||||
  return target;
 | 
			
		||||
}
 | 
			
		||||
function emptyChain() {
 | 
			
		||||
  return {
 | 
			
		||||
    options: [],
 | 
			
		||||
    presets: [],
 | 
			
		||||
    plugins: [],
 | 
			
		||||
    files: new Set()
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function createConfigChainOptions(opts) {
 | 
			
		||||
  const options = Object.assign({}, opts);
 | 
			
		||||
  delete options.extends;
 | 
			
		||||
  delete options.env;
 | 
			
		||||
  delete options.overrides;
 | 
			
		||||
  delete options.plugins;
 | 
			
		||||
  delete options.presets;
 | 
			
		||||
  delete options.passPerPreset;
 | 
			
		||||
  delete options.ignore;
 | 
			
		||||
  delete options.only;
 | 
			
		||||
  delete options.test;
 | 
			
		||||
  delete options.include;
 | 
			
		||||
  delete options.exclude;
 | 
			
		||||
  if (hasOwnProperty.call(options, "sourceMap")) {
 | 
			
		||||
    options.sourceMaps = options.sourceMap;
 | 
			
		||||
    delete options.sourceMap;
 | 
			
		||||
  }
 | 
			
		||||
  return options;
 | 
			
		||||
}
 | 
			
		||||
function dedupDescriptors(items) {
 | 
			
		||||
  const map = new Map();
 | 
			
		||||
  const descriptors = [];
 | 
			
		||||
  for (const item of items) {
 | 
			
		||||
    if (typeof item.value === "function") {
 | 
			
		||||
      const fnKey = item.value;
 | 
			
		||||
      let nameMap = map.get(fnKey);
 | 
			
		||||
      if (!nameMap) {
 | 
			
		||||
        nameMap = new Map();
 | 
			
		||||
        map.set(fnKey, nameMap);
 | 
			
		||||
      }
 | 
			
		||||
      let desc = nameMap.get(item.name);
 | 
			
		||||
      if (!desc) {
 | 
			
		||||
        desc = {
 | 
			
		||||
          value: item
 | 
			
		||||
        };
 | 
			
		||||
        descriptors.push(desc);
 | 
			
		||||
        if (!item.ownPass) nameMap.set(item.name, desc);
 | 
			
		||||
      } else {
 | 
			
		||||
        desc.value = item;
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      descriptors.push({
 | 
			
		||||
        value: item
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return descriptors.reduce((acc, desc) => {
 | 
			
		||||
    acc.push(desc.value);
 | 
			
		||||
    return acc;
 | 
			
		||||
  }, []);
 | 
			
		||||
}
 | 
			
		||||
function configIsApplicable({
 | 
			
		||||
  options
 | 
			
		||||
}, dirname, context, configName) {
 | 
			
		||||
  return (options.test === undefined || configFieldIsApplicable(context, options.test, dirname, configName)) && (options.include === undefined || configFieldIsApplicable(context, options.include, dirname, configName)) && (options.exclude === undefined || !configFieldIsApplicable(context, options.exclude, dirname, configName));
 | 
			
		||||
}
 | 
			
		||||
function configFieldIsApplicable(context, test, dirname, configName) {
 | 
			
		||||
  const patterns = Array.isArray(test) ? test : [test];
 | 
			
		||||
  return matchesPatterns(context, patterns, dirname, configName);
 | 
			
		||||
}
 | 
			
		||||
function ignoreListReplacer(_key, value) {
 | 
			
		||||
  if (value instanceof RegExp) {
 | 
			
		||||
    return String(value);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function shouldIgnore(context, ignore, only, dirname) {
 | 
			
		||||
  if (ignore && matchesPatterns(context, ignore, dirname)) {
 | 
			
		||||
    var _context$filename;
 | 
			
		||||
    const message = `No config is applied to "${(_context$filename = context.filename) != null ? _context$filename : "(unknown)"}" because it matches one of \`ignore: ${JSON.stringify(ignore, ignoreListReplacer)}\` from "${dirname}"`;
 | 
			
		||||
    debug(message);
 | 
			
		||||
    if (context.showConfig) {
 | 
			
		||||
      console.log(message);
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
  if (only && !matchesPatterns(context, only, dirname)) {
 | 
			
		||||
    var _context$filename2;
 | 
			
		||||
    const message = `No config is applied to "${(_context$filename2 = context.filename) != null ? _context$filename2 : "(unknown)"}" because it fails to match one of \`only: ${JSON.stringify(only, ignoreListReplacer)}\` from "${dirname}"`;
 | 
			
		||||
    debug(message);
 | 
			
		||||
    if (context.showConfig) {
 | 
			
		||||
      console.log(message);
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
  return false;
 | 
			
		||||
}
 | 
			
		||||
function matchesPatterns(context, patterns, dirname, configName) {
 | 
			
		||||
  return patterns.some(pattern => matchPattern(pattern, dirname, context.filename, context, configName));
 | 
			
		||||
}
 | 
			
		||||
function matchPattern(pattern, dirname, pathToTest, context, configName) {
 | 
			
		||||
  if (typeof pattern === "function") {
 | 
			
		||||
    return !!(0, _rewriteStackTrace.endHiddenCallStack)(pattern)(pathToTest, {
 | 
			
		||||
      dirname,
 | 
			
		||||
      envName: context.envName,
 | 
			
		||||
      caller: context.caller
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
  if (typeof pathToTest !== "string") {
 | 
			
		||||
    throw new _configError.default(`Configuration contains string/RegExp pattern, but no filename was passed to Babel`, configName);
 | 
			
		||||
  }
 | 
			
		||||
  if (typeof pattern === "string") {
 | 
			
		||||
    pattern = (0, _patternToRegex.default)(pattern, dirname);
 | 
			
		||||
  }
 | 
			
		||||
  return pattern.test(pathToTest);
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=config-chain.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/config-chain.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/config-chain.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										190
									
								
								node_modules/@babel/core/lib/config/config-descriptors.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										190
									
								
								node_modules/@babel/core/lib/config/config-descriptors.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,190 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.createCachedDescriptors = createCachedDescriptors;
 | 
			
		||||
exports.createDescriptor = createDescriptor;
 | 
			
		||||
exports.createUncachedDescriptors = createUncachedDescriptors;
 | 
			
		||||
function _gensync() {
 | 
			
		||||
  const data = require("gensync");
 | 
			
		||||
  _gensync = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _functional = require("../gensync-utils/functional.js");
 | 
			
		||||
var _index = require("./files/index.js");
 | 
			
		||||
var _item = require("./item.js");
 | 
			
		||||
var _caching = require("./caching.js");
 | 
			
		||||
var _resolveTargets = require("./resolve-targets.js");
 | 
			
		||||
function isEqualDescriptor(a, b) {
 | 
			
		||||
  var _a$file, _b$file, _a$file2, _b$file2;
 | 
			
		||||
  return a.name === b.name && a.value === b.value && a.options === b.options && a.dirname === b.dirname && a.alias === b.alias && a.ownPass === b.ownPass && ((_a$file = a.file) == null ? void 0 : _a$file.request) === ((_b$file = b.file) == null ? void 0 : _b$file.request) && ((_a$file2 = a.file) == null ? void 0 : _a$file2.resolved) === ((_b$file2 = b.file) == null ? void 0 : _b$file2.resolved);
 | 
			
		||||
}
 | 
			
		||||
function* handlerOf(value) {
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function optionsWithResolvedBrowserslistConfigFile(options, dirname) {
 | 
			
		||||
  if (typeof options.browserslistConfigFile === "string") {
 | 
			
		||||
    options.browserslistConfigFile = (0, _resolveTargets.resolveBrowserslistConfigFile)(options.browserslistConfigFile, dirname);
 | 
			
		||||
  }
 | 
			
		||||
  return options;
 | 
			
		||||
}
 | 
			
		||||
function createCachedDescriptors(dirname, options, alias) {
 | 
			
		||||
  const {
 | 
			
		||||
    plugins,
 | 
			
		||||
    presets,
 | 
			
		||||
    passPerPreset
 | 
			
		||||
  } = options;
 | 
			
		||||
  return {
 | 
			
		||||
    options: optionsWithResolvedBrowserslistConfigFile(options, dirname),
 | 
			
		||||
    plugins: plugins ? () => createCachedPluginDescriptors(plugins, dirname)(alias) : () => handlerOf([]),
 | 
			
		||||
    presets: presets ? () => createCachedPresetDescriptors(presets, dirname)(alias)(!!passPerPreset) : () => handlerOf([])
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function createUncachedDescriptors(dirname, options, alias) {
 | 
			
		||||
  return {
 | 
			
		||||
    options: optionsWithResolvedBrowserslistConfigFile(options, dirname),
 | 
			
		||||
    plugins: (0, _functional.once)(() => createPluginDescriptors(options.plugins || [], dirname, alias)),
 | 
			
		||||
    presets: (0, _functional.once)(() => createPresetDescriptors(options.presets || [], dirname, alias, !!options.passPerPreset))
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
const PRESET_DESCRIPTOR_CACHE = new WeakMap();
 | 
			
		||||
const createCachedPresetDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => {
 | 
			
		||||
  const dirname = cache.using(dir => dir);
 | 
			
		||||
  return (0, _caching.makeStrongCacheSync)(alias => (0, _caching.makeStrongCache)(function* (passPerPreset) {
 | 
			
		||||
    const descriptors = yield* createPresetDescriptors(items, dirname, alias, passPerPreset);
 | 
			
		||||
    return descriptors.map(desc => loadCachedDescriptor(PRESET_DESCRIPTOR_CACHE, desc));
 | 
			
		||||
  }));
 | 
			
		||||
});
 | 
			
		||||
const PLUGIN_DESCRIPTOR_CACHE = new WeakMap();
 | 
			
		||||
const createCachedPluginDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => {
 | 
			
		||||
  const dirname = cache.using(dir => dir);
 | 
			
		||||
  return (0, _caching.makeStrongCache)(function* (alias) {
 | 
			
		||||
    const descriptors = yield* createPluginDescriptors(items, dirname, alias);
 | 
			
		||||
    return descriptors.map(desc => loadCachedDescriptor(PLUGIN_DESCRIPTOR_CACHE, desc));
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
const DEFAULT_OPTIONS = {};
 | 
			
		||||
function loadCachedDescriptor(cache, desc) {
 | 
			
		||||
  const {
 | 
			
		||||
    value,
 | 
			
		||||
    options = DEFAULT_OPTIONS
 | 
			
		||||
  } = desc;
 | 
			
		||||
  if (options === false) return desc;
 | 
			
		||||
  let cacheByOptions = cache.get(value);
 | 
			
		||||
  if (!cacheByOptions) {
 | 
			
		||||
    cacheByOptions = new WeakMap();
 | 
			
		||||
    cache.set(value, cacheByOptions);
 | 
			
		||||
  }
 | 
			
		||||
  let possibilities = cacheByOptions.get(options);
 | 
			
		||||
  if (!possibilities) {
 | 
			
		||||
    possibilities = [];
 | 
			
		||||
    cacheByOptions.set(options, possibilities);
 | 
			
		||||
  }
 | 
			
		||||
  if (!possibilities.includes(desc)) {
 | 
			
		||||
    const matches = possibilities.filter(possibility => isEqualDescriptor(possibility, desc));
 | 
			
		||||
    if (matches.length > 0) {
 | 
			
		||||
      return matches[0];
 | 
			
		||||
    }
 | 
			
		||||
    possibilities.push(desc);
 | 
			
		||||
  }
 | 
			
		||||
  return desc;
 | 
			
		||||
}
 | 
			
		||||
function* createPresetDescriptors(items, dirname, alias, passPerPreset) {
 | 
			
		||||
  return yield* createDescriptors("preset", items, dirname, alias, passPerPreset);
 | 
			
		||||
}
 | 
			
		||||
function* createPluginDescriptors(items, dirname, alias) {
 | 
			
		||||
  return yield* createDescriptors("plugin", items, dirname, alias);
 | 
			
		||||
}
 | 
			
		||||
function* createDescriptors(type, items, dirname, alias, ownPass) {
 | 
			
		||||
  const descriptors = yield* _gensync().all(items.map((item, index) => createDescriptor(item, dirname, {
 | 
			
		||||
    type,
 | 
			
		||||
    alias: `${alias}$${index}`,
 | 
			
		||||
    ownPass: !!ownPass
 | 
			
		||||
  })));
 | 
			
		||||
  assertNoDuplicates(descriptors);
 | 
			
		||||
  return descriptors;
 | 
			
		||||
}
 | 
			
		||||
function* createDescriptor(pair, dirname, {
 | 
			
		||||
  type,
 | 
			
		||||
  alias,
 | 
			
		||||
  ownPass
 | 
			
		||||
}) {
 | 
			
		||||
  const desc = (0, _item.getItemDescriptor)(pair);
 | 
			
		||||
  if (desc) {
 | 
			
		||||
    return desc;
 | 
			
		||||
  }
 | 
			
		||||
  let name;
 | 
			
		||||
  let options;
 | 
			
		||||
  let value = pair;
 | 
			
		||||
  if (Array.isArray(value)) {
 | 
			
		||||
    if (value.length === 3) {
 | 
			
		||||
      [value, options, name] = value;
 | 
			
		||||
    } else {
 | 
			
		||||
      [value, options] = value;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  let file = undefined;
 | 
			
		||||
  let filepath = null;
 | 
			
		||||
  if (typeof value === "string") {
 | 
			
		||||
    if (typeof type !== "string") {
 | 
			
		||||
      throw new Error("To resolve a string-based item, the type of item must be given");
 | 
			
		||||
    }
 | 
			
		||||
    const resolver = type === "plugin" ? _index.loadPlugin : _index.loadPreset;
 | 
			
		||||
    const request = value;
 | 
			
		||||
    ({
 | 
			
		||||
      filepath,
 | 
			
		||||
      value
 | 
			
		||||
    } = yield* resolver(value, dirname));
 | 
			
		||||
    file = {
 | 
			
		||||
      request,
 | 
			
		||||
      resolved: filepath
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
  if (!value) {
 | 
			
		||||
    throw new Error(`Unexpected falsy value: ${String(value)}`);
 | 
			
		||||
  }
 | 
			
		||||
  if (typeof value === "object" && value.__esModule) {
 | 
			
		||||
    if (value.default) {
 | 
			
		||||
      value = value.default;
 | 
			
		||||
    } else {
 | 
			
		||||
      throw new Error("Must export a default export when using ES6 modules.");
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (typeof value !== "object" && typeof value !== "function") {
 | 
			
		||||
    throw new Error(`Unsupported format: ${typeof value}. Expected an object or a function.`);
 | 
			
		||||
  }
 | 
			
		||||
  if (filepath !== null && typeof value === "object" && value) {
 | 
			
		||||
    throw new Error(`Plugin/Preset files are not allowed to export objects, only functions. In ${filepath}`);
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    name,
 | 
			
		||||
    alias: filepath || alias,
 | 
			
		||||
    value,
 | 
			
		||||
    options,
 | 
			
		||||
    dirname,
 | 
			
		||||
    ownPass,
 | 
			
		||||
    file
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function assertNoDuplicates(items) {
 | 
			
		||||
  const map = new Map();
 | 
			
		||||
  for (const item of items) {
 | 
			
		||||
    if (typeof item.value !== "function") continue;
 | 
			
		||||
    let nameMap = map.get(item.value);
 | 
			
		||||
    if (!nameMap) {
 | 
			
		||||
      nameMap = new Set();
 | 
			
		||||
      map.set(item.value, nameMap);
 | 
			
		||||
    }
 | 
			
		||||
    if (nameMap.has(item.name)) {
 | 
			
		||||
      const conflicts = items.filter(i => i.value === item.value);
 | 
			
		||||
      throw new Error([`Duplicate plugin/preset detected.`, `If you'd like to use two separate instances of a plugin,`, `they need separate names, e.g.`, ``, `  plugins: [`, `    ['some-plugin', {}],`, `    ['some-plugin', {}, 'some unique name'],`, `  ]`, ``, `Duplicates detected are:`, `${JSON.stringify(conflicts, null, 2)}`].join("\n"));
 | 
			
		||||
    }
 | 
			
		||||
    nameMap.add(item.name);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=config-descriptors.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/config-descriptors.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/config-descriptors.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										290
									
								
								node_modules/@babel/core/lib/config/files/configuration.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										290
									
								
								node_modules/@babel/core/lib/config/files/configuration.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,290 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.ROOT_CONFIG_FILENAMES = void 0;
 | 
			
		||||
exports.findConfigUpwards = findConfigUpwards;
 | 
			
		||||
exports.findRelativeConfig = findRelativeConfig;
 | 
			
		||||
exports.findRootConfig = findRootConfig;
 | 
			
		||||
exports.loadConfig = loadConfig;
 | 
			
		||||
exports.resolveShowConfigPath = resolveShowConfigPath;
 | 
			
		||||
function _debug() {
 | 
			
		||||
  const data = require("debug");
 | 
			
		||||
  _debug = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
function _fs() {
 | 
			
		||||
  const data = require("fs");
 | 
			
		||||
  _fs = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
function _path() {
 | 
			
		||||
  const data = require("path");
 | 
			
		||||
  _path = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
function _json() {
 | 
			
		||||
  const data = require("json5");
 | 
			
		||||
  _json = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
function _gensync() {
 | 
			
		||||
  const data = require("gensync");
 | 
			
		||||
  _gensync = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _caching = require("../caching.js");
 | 
			
		||||
var _configApi = require("../helpers/config-api.js");
 | 
			
		||||
var _utils = require("./utils.js");
 | 
			
		||||
var _moduleTypes = require("./module-types.js");
 | 
			
		||||
var _patternToRegex = require("../pattern-to-regex.js");
 | 
			
		||||
var _configError = require("../../errors/config-error.js");
 | 
			
		||||
var fs = require("../../gensync-utils/fs.js");
 | 
			
		||||
require("module");
 | 
			
		||||
var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js");
 | 
			
		||||
var _async = require("../../gensync-utils/async.js");
 | 
			
		||||
const debug = _debug()("babel:config:loading:files:configuration");
 | 
			
		||||
const ROOT_CONFIG_FILENAMES = exports.ROOT_CONFIG_FILENAMES = ["babel.config.js", "babel.config.cjs", "babel.config.mjs", "babel.config.json", "babel.config.cts", "babel.config.ts", "babel.config.mts"];
 | 
			
		||||
const RELATIVE_CONFIG_FILENAMES = [".babelrc", ".babelrc.js", ".babelrc.cjs", ".babelrc.mjs", ".babelrc.json", ".babelrc.cts"];
 | 
			
		||||
const BABELIGNORE_FILENAME = ".babelignore";
 | 
			
		||||
const runConfig = (0, _caching.makeWeakCache)(function* runConfig(options, cache) {
 | 
			
		||||
  yield* [];
 | 
			
		||||
  return {
 | 
			
		||||
    options: (0, _rewriteStackTrace.endHiddenCallStack)(options)((0, _configApi.makeConfigAPI)(cache)),
 | 
			
		||||
    cacheNeedsConfiguration: !cache.configured()
 | 
			
		||||
  };
 | 
			
		||||
});
 | 
			
		||||
function* readConfigCode(filepath, data) {
 | 
			
		||||
  if (!_fs().existsSync(filepath)) return null;
 | 
			
		||||
  let options = yield* (0, _moduleTypes.default)(filepath, (yield* (0, _async.isAsync)()) ? "auto" : "require", "You appear to be using a native ECMAScript module configuration " + "file, which is only supported when running Babel asynchronously " + "or when using the Node.js `--experimental-require-module` flag.", "You appear to be using a configuration file that contains top-level " + "await, which is only supported when running Babel asynchronously.");
 | 
			
		||||
  let cacheNeedsConfiguration = false;
 | 
			
		||||
  if (typeof options === "function") {
 | 
			
		||||
    ({
 | 
			
		||||
      options,
 | 
			
		||||
      cacheNeedsConfiguration
 | 
			
		||||
    } = yield* runConfig(options, data));
 | 
			
		||||
  }
 | 
			
		||||
  if (!options || typeof options !== "object" || Array.isArray(options)) {
 | 
			
		||||
    throw new _configError.default(`Configuration should be an exported JavaScript object.`, filepath);
 | 
			
		||||
  }
 | 
			
		||||
  if (typeof options.then === "function") {
 | 
			
		||||
    options.catch == null || options.catch(() => {});
 | 
			
		||||
    throw new _configError.default(`You appear to be using an async configuration, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously return your config.`, filepath);
 | 
			
		||||
  }
 | 
			
		||||
  if (cacheNeedsConfiguration) throwConfigError(filepath);
 | 
			
		||||
  return buildConfigFileObject(options, filepath);
 | 
			
		||||
}
 | 
			
		||||
const cfboaf = new WeakMap();
 | 
			
		||||
function buildConfigFileObject(options, filepath) {
 | 
			
		||||
  let configFilesByFilepath = cfboaf.get(options);
 | 
			
		||||
  if (!configFilesByFilepath) {
 | 
			
		||||
    cfboaf.set(options, configFilesByFilepath = new Map());
 | 
			
		||||
  }
 | 
			
		||||
  let configFile = configFilesByFilepath.get(filepath);
 | 
			
		||||
  if (!configFile) {
 | 
			
		||||
    configFile = {
 | 
			
		||||
      filepath,
 | 
			
		||||
      dirname: _path().dirname(filepath),
 | 
			
		||||
      options
 | 
			
		||||
    };
 | 
			
		||||
    configFilesByFilepath.set(filepath, configFile);
 | 
			
		||||
  }
 | 
			
		||||
  return configFile;
 | 
			
		||||
}
 | 
			
		||||
const packageToBabelConfig = (0, _caching.makeWeakCacheSync)(file => {
 | 
			
		||||
  const babel = file.options.babel;
 | 
			
		||||
  if (babel === undefined) return null;
 | 
			
		||||
  if (typeof babel !== "object" || Array.isArray(babel) || babel === null) {
 | 
			
		||||
    throw new _configError.default(`.babel property must be an object`, file.filepath);
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    filepath: file.filepath,
 | 
			
		||||
    dirname: file.dirname,
 | 
			
		||||
    options: babel
 | 
			
		||||
  };
 | 
			
		||||
});
 | 
			
		||||
const readConfigJSON5 = (0, _utils.makeStaticFileCache)((filepath, content) => {
 | 
			
		||||
  let options;
 | 
			
		||||
  try {
 | 
			
		||||
    options = _json().parse(content);
 | 
			
		||||
  } catch (err) {
 | 
			
		||||
    throw new _configError.default(`Error while parsing config - ${err.message}`, filepath);
 | 
			
		||||
  }
 | 
			
		||||
  if (!options) throw new _configError.default(`No config detected`, filepath);
 | 
			
		||||
  if (typeof options !== "object") {
 | 
			
		||||
    throw new _configError.default(`Config returned typeof ${typeof options}`, filepath);
 | 
			
		||||
  }
 | 
			
		||||
  if (Array.isArray(options)) {
 | 
			
		||||
    throw new _configError.default(`Expected config object but found array`, filepath);
 | 
			
		||||
  }
 | 
			
		||||
  delete options.$schema;
 | 
			
		||||
  return {
 | 
			
		||||
    filepath,
 | 
			
		||||
    dirname: _path().dirname(filepath),
 | 
			
		||||
    options
 | 
			
		||||
  };
 | 
			
		||||
});
 | 
			
		||||
const readIgnoreConfig = (0, _utils.makeStaticFileCache)((filepath, content) => {
 | 
			
		||||
  const ignoreDir = _path().dirname(filepath);
 | 
			
		||||
  const ignorePatterns = content.split("\n").map(line => line.replace(/#.*$/, "").trim()).filter(Boolean);
 | 
			
		||||
  for (const pattern of ignorePatterns) {
 | 
			
		||||
    if (pattern[0] === "!") {
 | 
			
		||||
      throw new _configError.default(`Negation of file paths is not supported.`, filepath);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    filepath,
 | 
			
		||||
    dirname: _path().dirname(filepath),
 | 
			
		||||
    ignore: ignorePatterns.map(pattern => (0, _patternToRegex.default)(pattern, ignoreDir))
 | 
			
		||||
  };
 | 
			
		||||
});
 | 
			
		||||
function findConfigUpwards(rootDir) {
 | 
			
		||||
  let dirname = rootDir;
 | 
			
		||||
  for (;;) {
 | 
			
		||||
    for (const filename of ROOT_CONFIG_FILENAMES) {
 | 
			
		||||
      if (_fs().existsSync(_path().join(dirname, filename))) {
 | 
			
		||||
        return dirname;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    const nextDir = _path().dirname(dirname);
 | 
			
		||||
    if (dirname === nextDir) break;
 | 
			
		||||
    dirname = nextDir;
 | 
			
		||||
  }
 | 
			
		||||
  return null;
 | 
			
		||||
}
 | 
			
		||||
function* findRelativeConfig(packageData, envName, caller) {
 | 
			
		||||
  let config = null;
 | 
			
		||||
  let ignore = null;
 | 
			
		||||
  const dirname = _path().dirname(packageData.filepath);
 | 
			
		||||
  for (const loc of packageData.directories) {
 | 
			
		||||
    if (!config) {
 | 
			
		||||
      var _packageData$pkg;
 | 
			
		||||
      config = yield* loadOneConfig(RELATIVE_CONFIG_FILENAMES, loc, envName, caller, ((_packageData$pkg = packageData.pkg) == null ? void 0 : _packageData$pkg.dirname) === loc ? packageToBabelConfig(packageData.pkg) : null);
 | 
			
		||||
    }
 | 
			
		||||
    if (!ignore) {
 | 
			
		||||
      const ignoreLoc = _path().join(loc, BABELIGNORE_FILENAME);
 | 
			
		||||
      ignore = yield* readIgnoreConfig(ignoreLoc);
 | 
			
		||||
      if (ignore) {
 | 
			
		||||
        debug("Found ignore %o from %o.", ignore.filepath, dirname);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    config,
 | 
			
		||||
    ignore
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function findRootConfig(dirname, envName, caller) {
 | 
			
		||||
  return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller);
 | 
			
		||||
}
 | 
			
		||||
function* loadOneConfig(names, dirname, envName, caller, previousConfig = null) {
 | 
			
		||||
  const configs = yield* _gensync().all(names.map(filename => readConfig(_path().join(dirname, filename), envName, caller)));
 | 
			
		||||
  const config = configs.reduce((previousConfig, config) => {
 | 
			
		||||
    if (config && previousConfig) {
 | 
			
		||||
      throw new _configError.default(`Multiple configuration files found. Please remove one:\n` + ` - ${_path().basename(previousConfig.filepath)}\n` + ` - ${config.filepath}\n` + `from ${dirname}`);
 | 
			
		||||
    }
 | 
			
		||||
    return config || previousConfig;
 | 
			
		||||
  }, previousConfig);
 | 
			
		||||
  if (config) {
 | 
			
		||||
    debug("Found configuration %o from %o.", config.filepath, dirname);
 | 
			
		||||
  }
 | 
			
		||||
  return config;
 | 
			
		||||
}
 | 
			
		||||
function* loadConfig(name, dirname, envName, caller) {
 | 
			
		||||
  const filepath = (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, {
 | 
			
		||||
    paths: [b]
 | 
			
		||||
  }, M = require("module")) => {
 | 
			
		||||
    let f = M._findPath(r, M._nodeModulePaths(b).concat(b));
 | 
			
		||||
    if (f) return f;
 | 
			
		||||
    f = new Error(`Cannot resolve module '${r}'`);
 | 
			
		||||
    f.code = "MODULE_NOT_FOUND";
 | 
			
		||||
    throw f;
 | 
			
		||||
  })(name, {
 | 
			
		||||
    paths: [dirname]
 | 
			
		||||
  });
 | 
			
		||||
  const conf = yield* readConfig(filepath, envName, caller);
 | 
			
		||||
  if (!conf) {
 | 
			
		||||
    throw new _configError.default(`Config file contains no configuration data`, filepath);
 | 
			
		||||
  }
 | 
			
		||||
  debug("Loaded config %o from %o.", name, dirname);
 | 
			
		||||
  return conf;
 | 
			
		||||
}
 | 
			
		||||
function readConfig(filepath, envName, caller) {
 | 
			
		||||
  const ext = _path().extname(filepath);
 | 
			
		||||
  switch (ext) {
 | 
			
		||||
    case ".js":
 | 
			
		||||
    case ".cjs":
 | 
			
		||||
    case ".mjs":
 | 
			
		||||
    case ".ts":
 | 
			
		||||
    case ".cts":
 | 
			
		||||
    case ".mts":
 | 
			
		||||
      return readConfigCode(filepath, {
 | 
			
		||||
        envName,
 | 
			
		||||
        caller
 | 
			
		||||
      });
 | 
			
		||||
    default:
 | 
			
		||||
      return readConfigJSON5(filepath);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
function* resolveShowConfigPath(dirname) {
 | 
			
		||||
  const targetPath = process.env.BABEL_SHOW_CONFIG_FOR;
 | 
			
		||||
  if (targetPath != null) {
 | 
			
		||||
    const absolutePath = _path().resolve(dirname, targetPath);
 | 
			
		||||
    const stats = yield* fs.stat(absolutePath);
 | 
			
		||||
    if (!stats.isFile()) {
 | 
			
		||||
      throw new Error(`${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`);
 | 
			
		||||
    }
 | 
			
		||||
    return absolutePath;
 | 
			
		||||
  }
 | 
			
		||||
  return null;
 | 
			
		||||
}
 | 
			
		||||
function throwConfigError(filepath) {
 | 
			
		||||
  throw new _configError.default(`\
 | 
			
		||||
Caching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured
 | 
			
		||||
for various types of caching, using the first param of their handler functions:
 | 
			
		||||
 | 
			
		||||
module.exports = function(api) {
 | 
			
		||||
  // The API exposes the following:
 | 
			
		||||
 | 
			
		||||
  // Cache the returned value forever and don't call this function again.
 | 
			
		||||
  api.cache(true);
 | 
			
		||||
 | 
			
		||||
  // Don't cache at all. Not recommended because it will be very slow.
 | 
			
		||||
  api.cache(false);
 | 
			
		||||
 | 
			
		||||
  // Cached based on the value of some function. If this function returns a value different from
 | 
			
		||||
  // a previously-encountered value, the plugins will re-evaluate.
 | 
			
		||||
  var env = api.cache(() => process.env.NODE_ENV);
 | 
			
		||||
 | 
			
		||||
  // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for
 | 
			
		||||
  // any possible NODE_ENV value that might come up during plugin execution.
 | 
			
		||||
  var isProd = api.cache(() => process.env.NODE_ENV === "production");
 | 
			
		||||
 | 
			
		||||
  // .cache(fn) will perform a linear search though instances to find the matching plugin based
 | 
			
		||||
  // based on previous instantiated plugins. If you want to recreate the plugin and discard the
 | 
			
		||||
  // previous instance whenever something changes, you may use:
 | 
			
		||||
  var isProd = api.cache.invalidate(() => process.env.NODE_ENV === "production");
 | 
			
		||||
 | 
			
		||||
  // Note, we also expose the following more-verbose versions of the above examples:
 | 
			
		||||
  api.cache.forever(); // api.cache(true)
 | 
			
		||||
  api.cache.never();   // api.cache(false)
 | 
			
		||||
  api.cache.using(fn); // api.cache(fn)
 | 
			
		||||
 | 
			
		||||
  // Return the value that will be cached.
 | 
			
		||||
  return { };
 | 
			
		||||
};`, filepath);
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=configuration.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/files/configuration.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/files/configuration.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										6
									
								
								node_modules/@babel/core/lib/config/files/import.cjs
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								node_modules/@babel/core/lib/config/files/import.cjs
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
module.exports = function import_(filepath) {
 | 
			
		||||
  return import(filepath);
 | 
			
		||||
};
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=import.cjs.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/files/import.cjs.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/files/import.cjs.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":["module","exports","import_","filepath"],"sources":["../../../src/config/files/import.cjs"],"sourcesContent":["// We keep this in a separate file so that in older node versions, where\n// import() isn't supported, we can try/catch around the require() call\n// when loading this file.\n\nmodule.exports = function import_(filepath) {\n  return import(filepath);\n};\n"],"mappings":"AAIAA,MAAM,CAACC,OAAO,GAAG,SAASC,OAAOA,CAACC,QAAQ,EAAE;EAC1C,OAAO,OAAOA,QAAQ,CAAC;AACzB,CAAC;AAAC","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										58
									
								
								node_modules/@babel/core/lib/config/files/index-browser.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								node_modules/@babel/core/lib/config/files/index-browser.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.ROOT_CONFIG_FILENAMES = void 0;
 | 
			
		||||
exports.findConfigUpwards = findConfigUpwards;
 | 
			
		||||
exports.findPackageData = findPackageData;
 | 
			
		||||
exports.findRelativeConfig = findRelativeConfig;
 | 
			
		||||
exports.findRootConfig = findRootConfig;
 | 
			
		||||
exports.loadConfig = loadConfig;
 | 
			
		||||
exports.loadPlugin = loadPlugin;
 | 
			
		||||
exports.loadPreset = loadPreset;
 | 
			
		||||
exports.resolvePlugin = resolvePlugin;
 | 
			
		||||
exports.resolvePreset = resolvePreset;
 | 
			
		||||
exports.resolveShowConfigPath = resolveShowConfigPath;
 | 
			
		||||
function findConfigUpwards(rootDir) {
 | 
			
		||||
  return null;
 | 
			
		||||
}
 | 
			
		||||
function* findPackageData(filepath) {
 | 
			
		||||
  return {
 | 
			
		||||
    filepath,
 | 
			
		||||
    directories: [],
 | 
			
		||||
    pkg: null,
 | 
			
		||||
    isPackage: false
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function* findRelativeConfig(pkgData, envName, caller) {
 | 
			
		||||
  return {
 | 
			
		||||
    config: null,
 | 
			
		||||
    ignore: null
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function* findRootConfig(dirname, envName, caller) {
 | 
			
		||||
  return null;
 | 
			
		||||
}
 | 
			
		||||
function* loadConfig(name, dirname, envName, caller) {
 | 
			
		||||
  throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`);
 | 
			
		||||
}
 | 
			
		||||
function* resolveShowConfigPath(dirname) {
 | 
			
		||||
  return null;
 | 
			
		||||
}
 | 
			
		||||
const ROOT_CONFIG_FILENAMES = exports.ROOT_CONFIG_FILENAMES = [];
 | 
			
		||||
function resolvePlugin(name, dirname) {
 | 
			
		||||
  return null;
 | 
			
		||||
}
 | 
			
		||||
function resolvePreset(name, dirname) {
 | 
			
		||||
  return null;
 | 
			
		||||
}
 | 
			
		||||
function loadPlugin(name, dirname) {
 | 
			
		||||
  throw new Error(`Cannot load plugin ${name} relative to ${dirname} in a browser`);
 | 
			
		||||
}
 | 
			
		||||
function loadPreset(name, dirname) {
 | 
			
		||||
  throw new Error(`Cannot load preset ${name} relative to ${dirname} in a browser`);
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=index-browser.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/files/index-browser.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/files/index-browser.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":["findConfigUpwards","rootDir","findPackageData","filepath","directories","pkg","isPackage","findRelativeConfig","pkgData","envName","caller","config","ignore","findRootConfig","dirname","loadConfig","name","Error","resolveShowConfigPath","ROOT_CONFIG_FILENAMES","exports","resolvePlugin","resolvePreset","loadPlugin","loadPreset"],"sources":["../../../src/config/files/index-browser.ts"],"sourcesContent":["/* c8 ignore start */\n\nimport type { Handler } from \"gensync\";\n\nimport type {\n  ConfigFile,\n  IgnoreFile,\n  RelativeConfig,\n  FilePackageData,\n} from \"./types.ts\";\n\nimport type { CallerMetadata } from \"../validation/options.ts\";\n\nexport type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData };\n\nexport function findConfigUpwards(\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  rootDir: string,\n): string | null {\n  return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* findPackageData(filepath: string): Handler<FilePackageData> {\n  return {\n    filepath,\n    directories: [],\n    pkg: null,\n    isPackage: false,\n  };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRelativeConfig(\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  pkgData: FilePackageData,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  envName: string,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  caller: CallerMetadata | undefined,\n): Handler<RelativeConfig> {\n  return { config: null, ignore: null };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRootConfig(\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  dirname: string,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  envName: string,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  caller: CallerMetadata | undefined,\n): Handler<ConfigFile | null> {\n  return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* loadConfig(\n  name: string,\n  dirname: string,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  envName: string,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  caller: CallerMetadata | undefined,\n): Handler<ConfigFile> {\n  throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`);\n}\n\n// eslint-disable-next-line require-yield\nexport function* resolveShowConfigPath(\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  dirname: string,\n): Handler<string | null> {\n  return null;\n}\n\nexport const ROOT_CONFIG_FILENAMES: string[] = [];\n\ntype Resolved =\n  | { loader: \"require\"; filepath: string }\n  | { loader: \"import\"; filepath: string };\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePlugin(name: string, dirname: string): Resolved | null {\n  return null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePreset(name: string, dirname: string): Resolved | null {\n  return null;\n}\n\nexport function loadPlugin(\n  name: string,\n  dirname: string,\n): Handler<{\n  filepath: string;\n  value: unknown;\n}> {\n  throw new Error(\n    `Cannot load plugin ${name} relative to ${dirname} in a browser`,\n  );\n}\n\nexport function loadPreset(\n  name: string,\n  dirname: string,\n): Handler<{\n  filepath: string;\n  value: unknown;\n}> {\n  throw new Error(\n    `Cannot load preset ${name} relative to ${dirname} in a browser`,\n  );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAeO,SAASA,iBAAiBA,CAE/BC,OAAe,EACA;EACf,OAAO,IAAI;AACb;AAGO,UAAUC,eAAeA,CAACC,QAAgB,EAA4B;EAC3E,OAAO;IACLA,QAAQ;IACRC,WAAW,EAAE,EAAE;IACfC,GAAG,EAAE,IAAI;IACTC,SAAS,EAAE;EACb,CAAC;AACH;AAGO,UAAUC,kBAAkBA,CAEjCC,OAAwB,EAExBC,OAAe,EAEfC,MAAkC,EACT;EACzB,OAAO;IAAEC,MAAM,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAK,CAAC;AACvC;AAGO,UAAUC,cAAcA,CAE7BC,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACN;EAC5B,OAAO,IAAI;AACb;AAGO,UAAUK,UAAUA,CACzBC,IAAY,EACZF,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACb;EACrB,MAAM,IAAIO,KAAK,CAAC,eAAeD,IAAI,gBAAgBF,OAAO,eAAe,CAAC;AAC5E;AAGO,UAAUI,qBAAqBA,CAEpCJ,OAAe,EACS;EACxB,OAAO,IAAI;AACb;AAEO,MAAMK,qBAA+B,GAAAC,OAAA,CAAAD,qBAAA,GAAG,EAAE;AAO1C,SAASE,aAAaA,CAACL,IAAY,EAAEF,OAAe,EAAmB;EAC5E,OAAO,IAAI;AACb;AAGO,SAASQ,aAAaA,CAACN,IAAY,EAAEF,OAAe,EAAmB;EAC5E,OAAO,IAAI;AACb;AAEO,SAASS,UAAUA,CACxBP,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAEO,SAASU,UAAUA,CACxBR,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAAC","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										78
									
								
								node_modules/@babel/core/lib/config/files/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								node_modules/@babel/core/lib/config/files/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,78 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
Object.defineProperty(exports, "ROOT_CONFIG_FILENAMES", {
 | 
			
		||||
  enumerable: true,
 | 
			
		||||
  get: function () {
 | 
			
		||||
    return _configuration.ROOT_CONFIG_FILENAMES;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
Object.defineProperty(exports, "findConfigUpwards", {
 | 
			
		||||
  enumerable: true,
 | 
			
		||||
  get: function () {
 | 
			
		||||
    return _configuration.findConfigUpwards;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
Object.defineProperty(exports, "findPackageData", {
 | 
			
		||||
  enumerable: true,
 | 
			
		||||
  get: function () {
 | 
			
		||||
    return _package.findPackageData;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
Object.defineProperty(exports, "findRelativeConfig", {
 | 
			
		||||
  enumerable: true,
 | 
			
		||||
  get: function () {
 | 
			
		||||
    return _configuration.findRelativeConfig;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
Object.defineProperty(exports, "findRootConfig", {
 | 
			
		||||
  enumerable: true,
 | 
			
		||||
  get: function () {
 | 
			
		||||
    return _configuration.findRootConfig;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
Object.defineProperty(exports, "loadConfig", {
 | 
			
		||||
  enumerable: true,
 | 
			
		||||
  get: function () {
 | 
			
		||||
    return _configuration.loadConfig;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
Object.defineProperty(exports, "loadPlugin", {
 | 
			
		||||
  enumerable: true,
 | 
			
		||||
  get: function () {
 | 
			
		||||
    return _plugins.loadPlugin;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
Object.defineProperty(exports, "loadPreset", {
 | 
			
		||||
  enumerable: true,
 | 
			
		||||
  get: function () {
 | 
			
		||||
    return _plugins.loadPreset;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
Object.defineProperty(exports, "resolvePlugin", {
 | 
			
		||||
  enumerable: true,
 | 
			
		||||
  get: function () {
 | 
			
		||||
    return _plugins.resolvePlugin;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
Object.defineProperty(exports, "resolvePreset", {
 | 
			
		||||
  enumerable: true,
 | 
			
		||||
  get: function () {
 | 
			
		||||
    return _plugins.resolvePreset;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
Object.defineProperty(exports, "resolveShowConfigPath", {
 | 
			
		||||
  enumerable: true,
 | 
			
		||||
  get: function () {
 | 
			
		||||
    return _configuration.resolveShowConfigPath;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
var _package = require("./package.js");
 | 
			
		||||
var _configuration = require("./configuration.js");
 | 
			
		||||
var _plugins = require("./plugins.js");
 | 
			
		||||
({});
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=index.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/files/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/files/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":["_package","require","_configuration","_plugins"],"sources":["../../../src/config/files/index.ts"],"sourcesContent":["type indexBrowserType = typeof import(\"./index-browser\");\ntype indexType = typeof import(\"./index\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of index-browser, since this file may be replaced at bundle time with index-browser.\n({}) as any as indexBrowserType as indexType;\n\nexport { findPackageData } from \"./package.ts\";\n\nexport {\n  findConfigUpwards,\n  findRelativeConfig,\n  findRootConfig,\n  loadConfig,\n  resolveShowConfigPath,\n  ROOT_CONFIG_FILENAMES,\n} from \"./configuration.ts\";\nexport type {\n  ConfigFile,\n  IgnoreFile,\n  RelativeConfig,\n  FilePackageData,\n} from \"./types.ts\";\nexport {\n  loadPlugin,\n  loadPreset,\n  resolvePlugin,\n  resolvePreset,\n} from \"./plugins.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAcA,IAAAE,QAAA,GAAAF,OAAA;AAlBA,CAAC,CAAC,CAAC;AAA0C","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										211
									
								
								node_modules/@babel/core/lib/config/files/module-types.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										211
									
								
								node_modules/@babel/core/lib/config/files/module-types.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,211 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.default = loadCodeDefault;
 | 
			
		||||
exports.supportsESM = void 0;
 | 
			
		||||
var _async = require("../../gensync-utils/async.js");
 | 
			
		||||
function _path() {
 | 
			
		||||
  const data = require("path");
 | 
			
		||||
  _path = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
function _url() {
 | 
			
		||||
  const data = require("url");
 | 
			
		||||
  _url = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
require("module");
 | 
			
		||||
function _semver() {
 | 
			
		||||
  const data = require("semver");
 | 
			
		||||
  _semver = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
function _debug() {
 | 
			
		||||
  const data = require("debug");
 | 
			
		||||
  _debug = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js");
 | 
			
		||||
var _configError = require("../../errors/config-error.js");
 | 
			
		||||
var _transformFile = require("../../transform-file.js");
 | 
			
		||||
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
 | 
			
		||||
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
 | 
			
		||||
const debug = _debug()("babel:config:loading:files:module-types");
 | 
			
		||||
{
 | 
			
		||||
  try {
 | 
			
		||||
    var import_ = require("./import.cjs");
 | 
			
		||||
  } catch (_unused) {}
 | 
			
		||||
}
 | 
			
		||||
const supportsESM = exports.supportsESM = _semver().satisfies(process.versions.node, "^12.17 || >=13.2");
 | 
			
		||||
const LOADING_CJS_FILES = new Set();
 | 
			
		||||
function loadCjsDefault(filepath) {
 | 
			
		||||
  if (LOADING_CJS_FILES.has(filepath)) {
 | 
			
		||||
    debug("Auto-ignoring usage of config %o.", filepath);
 | 
			
		||||
    return {};
 | 
			
		||||
  }
 | 
			
		||||
  let module;
 | 
			
		||||
  try {
 | 
			
		||||
    LOADING_CJS_FILES.add(filepath);
 | 
			
		||||
    module = (0, _rewriteStackTrace.endHiddenCallStack)(require)(filepath);
 | 
			
		||||
  } finally {
 | 
			
		||||
    LOADING_CJS_FILES.delete(filepath);
 | 
			
		||||
  }
 | 
			
		||||
  {
 | 
			
		||||
    return module != null && (module.__esModule || module[Symbol.toStringTag] === "Module") ? module.default || (arguments[1] ? module : undefined) : module;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
const loadMjsFromPath = (0, _rewriteStackTrace.endHiddenCallStack)(function () {
 | 
			
		||||
  var _loadMjsFromPath = _asyncToGenerator(function* (filepath) {
 | 
			
		||||
    const url = (0, _url().pathToFileURL)(filepath).toString() + "?import";
 | 
			
		||||
    {
 | 
			
		||||
      if (!import_) {
 | 
			
		||||
        throw new _configError.default("Internal error: Native ECMAScript modules aren't supported by this platform.\n", filepath);
 | 
			
		||||
      }
 | 
			
		||||
      return yield import_(url);
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
  function loadMjsFromPath(_x) {
 | 
			
		||||
    return _loadMjsFromPath.apply(this, arguments);
 | 
			
		||||
  }
 | 
			
		||||
  return loadMjsFromPath;
 | 
			
		||||
}());
 | 
			
		||||
const tsNotSupportedError = ext => `\
 | 
			
		||||
You are using a ${ext} config file, but Babel only supports transpiling .cts configs. Either:
 | 
			
		||||
- Use a .cts config file
 | 
			
		||||
- Update to Node.js 23.6.0, which has native TypeScript support
 | 
			
		||||
- Install tsx to transpile ${ext} files on the fly\
 | 
			
		||||
`;
 | 
			
		||||
const SUPPORTED_EXTENSIONS = {
 | 
			
		||||
  ".js": "unknown",
 | 
			
		||||
  ".mjs": "esm",
 | 
			
		||||
  ".cjs": "cjs",
 | 
			
		||||
  ".ts": "unknown",
 | 
			
		||||
  ".mts": "esm",
 | 
			
		||||
  ".cts": "cjs"
 | 
			
		||||
};
 | 
			
		||||
const asyncModules = new Set();
 | 
			
		||||
function* loadCodeDefault(filepath, loader, esmError, tlaError) {
 | 
			
		||||
  let async;
 | 
			
		||||
  const ext = _path().extname(filepath);
 | 
			
		||||
  const isTS = ext === ".ts" || ext === ".cts" || ext === ".mts";
 | 
			
		||||
  const type = SUPPORTED_EXTENSIONS[hasOwnProperty.call(SUPPORTED_EXTENSIONS, ext) ? ext : ".js"];
 | 
			
		||||
  const pattern = `${loader} ${type}`;
 | 
			
		||||
  switch (pattern) {
 | 
			
		||||
    case "require cjs":
 | 
			
		||||
    case "auto cjs":
 | 
			
		||||
      if (isTS) {
 | 
			
		||||
        return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath));
 | 
			
		||||
      } else {
 | 
			
		||||
        return loadCjsDefault(filepath, arguments[2]);
 | 
			
		||||
      }
 | 
			
		||||
    case "auto unknown":
 | 
			
		||||
    case "require unknown":
 | 
			
		||||
    case "require esm":
 | 
			
		||||
      try {
 | 
			
		||||
        if (isTS) {
 | 
			
		||||
          return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath));
 | 
			
		||||
        } else {
 | 
			
		||||
          return loadCjsDefault(filepath, arguments[2]);
 | 
			
		||||
        }
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        if (e.code === "ERR_REQUIRE_ASYNC_MODULE" || e.code === "ERR_REQUIRE_CYCLE_MODULE" && asyncModules.has(filepath)) {
 | 
			
		||||
          asyncModules.add(filepath);
 | 
			
		||||
          if (!(async != null ? async : async = yield* (0, _async.isAsync)())) {
 | 
			
		||||
            throw new _configError.default(tlaError, filepath);
 | 
			
		||||
          }
 | 
			
		||||
        } else if (e.code === "ERR_REQUIRE_ESM" || type === "esm") {} else {
 | 
			
		||||
          throw e;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    case "auto esm":
 | 
			
		||||
      if (async != null ? async : async = yield* (0, _async.isAsync)()) {
 | 
			
		||||
        const promise = isTS ? ensureTsSupport(filepath, ext, () => loadMjsFromPath(filepath)) : loadMjsFromPath(filepath);
 | 
			
		||||
        return (yield* (0, _async.waitFor)(promise)).default;
 | 
			
		||||
      }
 | 
			
		||||
      if (isTS) {
 | 
			
		||||
        throw new _configError.default(tsNotSupportedError(ext), filepath);
 | 
			
		||||
      } else {
 | 
			
		||||
        throw new _configError.default(esmError, filepath);
 | 
			
		||||
      }
 | 
			
		||||
    default:
 | 
			
		||||
      throw new Error("Internal Babel error: unreachable code.");
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
function ensureTsSupport(filepath, ext, callback) {
 | 
			
		||||
  if (process.features.typescript || require.extensions[".ts"] || require.extensions[".cts"] || require.extensions[".mts"]) {
 | 
			
		||||
    return callback();
 | 
			
		||||
  }
 | 
			
		||||
  if (ext !== ".cts") {
 | 
			
		||||
    throw new _configError.default(tsNotSupportedError(ext), filepath);
 | 
			
		||||
  }
 | 
			
		||||
  const opts = {
 | 
			
		||||
    babelrc: false,
 | 
			
		||||
    configFile: false,
 | 
			
		||||
    sourceType: "unambiguous",
 | 
			
		||||
    sourceMaps: "inline",
 | 
			
		||||
    sourceFileName: _path().basename(filepath),
 | 
			
		||||
    presets: [[getTSPreset(filepath), Object.assign({
 | 
			
		||||
      onlyRemoveTypeImports: true,
 | 
			
		||||
      optimizeConstEnums: true
 | 
			
		||||
    }, {
 | 
			
		||||
      allowDeclareFields: true
 | 
			
		||||
    })]]
 | 
			
		||||
  };
 | 
			
		||||
  let handler = function (m, filename) {
 | 
			
		||||
    if (handler && filename.endsWith(".cts")) {
 | 
			
		||||
      try {
 | 
			
		||||
        return m._compile((0, _transformFile.transformFileSync)(filename, Object.assign({}, opts, {
 | 
			
		||||
          filename
 | 
			
		||||
        })).code, filename);
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        const packageJson = require("@babel/preset-typescript/package.json");
 | 
			
		||||
        if (_semver().lt(packageJson.version, "7.21.4")) {
 | 
			
		||||
          console.error("`.cts` configuration file failed to load, please try to update `@babel/preset-typescript`.");
 | 
			
		||||
        }
 | 
			
		||||
        throw error;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return require.extensions[".js"](m, filename);
 | 
			
		||||
  };
 | 
			
		||||
  require.extensions[ext] = handler;
 | 
			
		||||
  try {
 | 
			
		||||
    return callback();
 | 
			
		||||
  } finally {
 | 
			
		||||
    if (require.extensions[ext] === handler) delete require.extensions[ext];
 | 
			
		||||
    handler = undefined;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
function getTSPreset(filepath) {
 | 
			
		||||
  try {
 | 
			
		||||
    return require("@babel/preset-typescript");
 | 
			
		||||
  } catch (error) {
 | 
			
		||||
    if (error.code !== "MODULE_NOT_FOUND") throw error;
 | 
			
		||||
    let message = "You appear to be using a .cts file as Babel configuration, but the `@babel/preset-typescript` package was not found: please install it!";
 | 
			
		||||
    {
 | 
			
		||||
      if (process.versions.pnp) {
 | 
			
		||||
        message += `
 | 
			
		||||
If you are using Yarn Plug'n'Play, you may also need to add the following configuration to your .yarnrc.yml file:
 | 
			
		||||
 | 
			
		||||
packageExtensions:
 | 
			
		||||
\t"@babel/core@*":
 | 
			
		||||
\t\tpeerDependencies:
 | 
			
		||||
\t\t\t"@babel/preset-typescript": "*"
 | 
			
		||||
`;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    throw new _configError.default(message, filepath);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=module-types.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/files/module-types.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/files/module-types.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										61
									
								
								node_modules/@babel/core/lib/config/files/package.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								node_modules/@babel/core/lib/config/files/package.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.findPackageData = findPackageData;
 | 
			
		||||
function _path() {
 | 
			
		||||
  const data = require("path");
 | 
			
		||||
  _path = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _utils = require("./utils.js");
 | 
			
		||||
var _configError = require("../../errors/config-error.js");
 | 
			
		||||
const PACKAGE_FILENAME = "package.json";
 | 
			
		||||
const readConfigPackage = (0, _utils.makeStaticFileCache)((filepath, content) => {
 | 
			
		||||
  let options;
 | 
			
		||||
  try {
 | 
			
		||||
    options = JSON.parse(content);
 | 
			
		||||
  } catch (err) {
 | 
			
		||||
    throw new _configError.default(`Error while parsing JSON - ${err.message}`, filepath);
 | 
			
		||||
  }
 | 
			
		||||
  if (!options) throw new Error(`${filepath}: No config detected`);
 | 
			
		||||
  if (typeof options !== "object") {
 | 
			
		||||
    throw new _configError.default(`Config returned typeof ${typeof options}`, filepath);
 | 
			
		||||
  }
 | 
			
		||||
  if (Array.isArray(options)) {
 | 
			
		||||
    throw new _configError.default(`Expected config object but found array`, filepath);
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    filepath,
 | 
			
		||||
    dirname: _path().dirname(filepath),
 | 
			
		||||
    options
 | 
			
		||||
  };
 | 
			
		||||
});
 | 
			
		||||
function* findPackageData(filepath) {
 | 
			
		||||
  let pkg = null;
 | 
			
		||||
  const directories = [];
 | 
			
		||||
  let isPackage = true;
 | 
			
		||||
  let dirname = _path().dirname(filepath);
 | 
			
		||||
  while (!pkg && _path().basename(dirname) !== "node_modules") {
 | 
			
		||||
    directories.push(dirname);
 | 
			
		||||
    pkg = yield* readConfigPackage(_path().join(dirname, PACKAGE_FILENAME));
 | 
			
		||||
    const nextLoc = _path().dirname(dirname);
 | 
			
		||||
    if (dirname === nextLoc) {
 | 
			
		||||
      isPackage = false;
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    dirname = nextLoc;
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    filepath,
 | 
			
		||||
    directories,
 | 
			
		||||
    pkg,
 | 
			
		||||
    isPackage
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=package.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/files/package.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/files/package.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":["_path","data","require","_utils","_configError","PACKAGE_FILENAME","readConfigPackage","makeStaticFileCache","filepath","content","options","JSON","parse","err","ConfigError","message","Error","Array","isArray","dirname","path","findPackageData","pkg","directories","isPackage","basename","push","join","nextLoc"],"sources":["../../../src/config/files/package.ts"],"sourcesContent":["import path from \"node:path\";\nimport type { Handler } from \"gensync\";\nimport { makeStaticFileCache } from \"./utils.ts\";\n\nimport type { ConfigFile, FilePackageData } from \"./types.ts\";\n\nimport ConfigError from \"../../errors/config-error.ts\";\n\nconst PACKAGE_FILENAME = \"package.json\";\n\nconst readConfigPackage = makeStaticFileCache(\n  (filepath, content): ConfigFile => {\n    let options;\n    try {\n      options = JSON.parse(content) as unknown;\n    } catch (err) {\n      throw new ConfigError(\n        `Error while parsing JSON - ${err.message}`,\n        filepath,\n      );\n    }\n\n    if (!options) throw new Error(`${filepath}: No config detected`);\n\n    if (typeof options !== \"object\") {\n      throw new ConfigError(\n        `Config returned typeof ${typeof options}`,\n        filepath,\n      );\n    }\n    if (Array.isArray(options)) {\n      throw new ConfigError(`Expected config object but found array`, filepath);\n    }\n\n    return {\n      filepath,\n      dirname: path.dirname(filepath),\n      options,\n    };\n  },\n);\n\n/**\n * Find metadata about the package that this file is inside of. Resolution\n * of Babel's config requires general package information to decide when to\n * search for .babelrc files\n */\nexport function* findPackageData(filepath: string): Handler<FilePackageData> {\n  let pkg = null;\n  const directories = [];\n  let isPackage = true;\n\n  let dirname = path.dirname(filepath);\n  while (!pkg && path.basename(dirname) !== \"node_modules\") {\n    directories.push(dirname);\n\n    pkg = yield* readConfigPackage(path.join(dirname, PACKAGE_FILENAME));\n\n    const nextLoc = path.dirname(dirname);\n    if (dirname === nextLoc) {\n      isPackage = false;\n      break;\n    }\n    dirname = nextLoc;\n  }\n\n  return { filepath, directories, pkg, isPackage };\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AAIA,IAAAE,YAAA,GAAAF,OAAA;AAEA,MAAMG,gBAAgB,GAAG,cAAc;AAEvC,MAAMC,iBAAiB,GAAG,IAAAC,0BAAmB,EAC3C,CAACC,QAAQ,EAAEC,OAAO,KAAiB;EACjC,IAAIC,OAAO;EACX,IAAI;IACFA,OAAO,GAAGC,IAAI,CAACC,KAAK,CAACH,OAAO,CAAY;EAC1C,CAAC,CAAC,OAAOI,GAAG,EAAE;IACZ,MAAM,IAAIC,oBAAW,CACnB,8BAA8BD,GAAG,CAACE,OAAO,EAAE,EAC3CP,QACF,CAAC;EACH;EAEA,IAAI,CAACE,OAAO,EAAE,MAAM,IAAIM,KAAK,CAAC,GAAGR,QAAQ,sBAAsB,CAAC;EAEhE,IAAI,OAAOE,OAAO,KAAK,QAAQ,EAAE;IAC/B,MAAM,IAAII,oBAAW,CACnB,0BAA0B,OAAOJ,OAAO,EAAE,EAC1CF,QACF,CAAC;EACH;EACA,IAAIS,KAAK,CAACC,OAAO,CAACR,OAAO,CAAC,EAAE;IAC1B,MAAM,IAAII,oBAAW,CAAC,wCAAwC,EAAEN,QAAQ,CAAC;EAC3E;EAEA,OAAO;IACLA,QAAQ;IACRW,OAAO,EAAEC,MAAGA,CAAC,CAACD,OAAO,CAACX,QAAQ,CAAC;IAC/BE;EACF,CAAC;AACH,CACF,CAAC;AAOM,UAAUW,eAAeA,CAACb,QAAgB,EAA4B;EAC3E,IAAIc,GAAG,GAAG,IAAI;EACd,MAAMC,WAAW,GAAG,EAAE;EACtB,IAAIC,SAAS,GAAG,IAAI;EAEpB,IAAIL,OAAO,GAAGC,MAAGA,CAAC,CAACD,OAAO,CAACX,QAAQ,CAAC;EACpC,OAAO,CAACc,GAAG,IAAIF,MAAGA,CAAC,CAACK,QAAQ,CAACN,OAAO,CAAC,KAAK,cAAc,EAAE;IACxDI,WAAW,CAACG,IAAI,CAACP,OAAO,CAAC;IAEzBG,GAAG,GAAG,OAAOhB,iBAAiB,CAACc,MAAGA,CAAC,CAACO,IAAI,CAACR,OAAO,EAAEd,gBAAgB,CAAC,CAAC;IAEpE,MAAMuB,OAAO,GAAGR,MAAGA,CAAC,CAACD,OAAO,CAACA,OAAO,CAAC;IACrC,IAAIA,OAAO,KAAKS,OAAO,EAAE;MACvBJ,SAAS,GAAG,KAAK;MACjB;IACF;IACAL,OAAO,GAAGS,OAAO;EACnB;EAEA,OAAO;IAAEpB,QAAQ;IAAEe,WAAW;IAAED,GAAG;IAAEE;EAAU,CAAC;AAClD;AAAC","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										230
									
								
								node_modules/@babel/core/lib/config/files/plugins.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										230
									
								
								node_modules/@babel/core/lib/config/files/plugins.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,230 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.loadPlugin = loadPlugin;
 | 
			
		||||
exports.loadPreset = loadPreset;
 | 
			
		||||
exports.resolvePreset = exports.resolvePlugin = void 0;
 | 
			
		||||
function _debug() {
 | 
			
		||||
  const data = require("debug");
 | 
			
		||||
  _debug = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
function _path() {
 | 
			
		||||
  const data = require("path");
 | 
			
		||||
  _path = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _async = require("../../gensync-utils/async.js");
 | 
			
		||||
var _moduleTypes = require("./module-types.js");
 | 
			
		||||
function _url() {
 | 
			
		||||
  const data = require("url");
 | 
			
		||||
  _url = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _importMetaResolve = require("../../vendor/import-meta-resolve.js");
 | 
			
		||||
require("module");
 | 
			
		||||
function _fs() {
 | 
			
		||||
  const data = require("fs");
 | 
			
		||||
  _fs = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
const debug = _debug()("babel:config:loading:files:plugins");
 | 
			
		||||
const EXACT_RE = /^module:/;
 | 
			
		||||
const BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-plugin-)/;
 | 
			
		||||
const BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-preset-)/;
 | 
			
		||||
const BABEL_PLUGIN_ORG_RE = /^(@babel\/)(?!plugin-|[^/]+\/)/;
 | 
			
		||||
const BABEL_PRESET_ORG_RE = /^(@babel\/)(?!preset-|[^/]+\/)/;
 | 
			
		||||
const OTHER_PLUGIN_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-plugin(?:-|\/|$)|[^/]+\/)/;
 | 
			
		||||
const OTHER_PRESET_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-preset(?:-|\/|$)|[^/]+\/)/;
 | 
			
		||||
const OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/;
 | 
			
		||||
const resolvePlugin = exports.resolvePlugin = resolveStandardizedName.bind(null, "plugin");
 | 
			
		||||
const resolvePreset = exports.resolvePreset = resolveStandardizedName.bind(null, "preset");
 | 
			
		||||
function* loadPlugin(name, dirname) {
 | 
			
		||||
  const {
 | 
			
		||||
    filepath,
 | 
			
		||||
    loader
 | 
			
		||||
  } = resolvePlugin(name, dirname, yield* (0, _async.isAsync)());
 | 
			
		||||
  const value = yield* requireModule("plugin", loader, filepath);
 | 
			
		||||
  debug("Loaded plugin %o from %o.", name, dirname);
 | 
			
		||||
  return {
 | 
			
		||||
    filepath,
 | 
			
		||||
    value
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function* loadPreset(name, dirname) {
 | 
			
		||||
  const {
 | 
			
		||||
    filepath,
 | 
			
		||||
    loader
 | 
			
		||||
  } = resolvePreset(name, dirname, yield* (0, _async.isAsync)());
 | 
			
		||||
  const value = yield* requireModule("preset", loader, filepath);
 | 
			
		||||
  debug("Loaded preset %o from %o.", name, dirname);
 | 
			
		||||
  return {
 | 
			
		||||
    filepath,
 | 
			
		||||
    value
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function standardizeName(type, name) {
 | 
			
		||||
  if (_path().isAbsolute(name)) return name;
 | 
			
		||||
  const isPreset = type === "preset";
 | 
			
		||||
  return name.replace(isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE, `babel-${type}-`).replace(isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE, `$1${type}-`).replace(isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE, `$1babel-${type}-`).replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`).replace(EXACT_RE, "");
 | 
			
		||||
}
 | 
			
		||||
function* resolveAlternativesHelper(type, name) {
 | 
			
		||||
  const standardizedName = standardizeName(type, name);
 | 
			
		||||
  const {
 | 
			
		||||
    error,
 | 
			
		||||
    value
 | 
			
		||||
  } = yield standardizedName;
 | 
			
		||||
  if (!error) return value;
 | 
			
		||||
  if (error.code !== "MODULE_NOT_FOUND") throw error;
 | 
			
		||||
  if (standardizedName !== name && !(yield name).error) {
 | 
			
		||||
    error.message += `\n- If you want to resolve "${name}", use "module:${name}"`;
 | 
			
		||||
  }
 | 
			
		||||
  if (!(yield standardizeName(type, "@babel/" + name)).error) {
 | 
			
		||||
    error.message += `\n- Did you mean "@babel/${name}"?`;
 | 
			
		||||
  }
 | 
			
		||||
  const oppositeType = type === "preset" ? "plugin" : "preset";
 | 
			
		||||
  if (!(yield standardizeName(oppositeType, name)).error) {
 | 
			
		||||
    error.message += `\n- Did you accidentally pass a ${oppositeType} as a ${type}?`;
 | 
			
		||||
  }
 | 
			
		||||
  if (type === "plugin") {
 | 
			
		||||
    const transformName = standardizedName.replace("-proposal-", "-transform-");
 | 
			
		||||
    if (transformName !== standardizedName && !(yield transformName).error) {
 | 
			
		||||
      error.message += `\n- Did you mean "${transformName}"?`;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  error.message += `\n
 | 
			
		||||
Make sure that all the Babel plugins and presets you are using
 | 
			
		||||
are defined as dependencies or devDependencies in your package.json
 | 
			
		||||
file. It's possible that the missing plugin is loaded by a preset
 | 
			
		||||
you are using that forgot to add the plugin to its dependencies: you
 | 
			
		||||
can workaround this problem by explicitly adding the missing package
 | 
			
		||||
to your top-level package.json.
 | 
			
		||||
`;
 | 
			
		||||
  throw error;
 | 
			
		||||
}
 | 
			
		||||
function tryRequireResolve(id, dirname) {
 | 
			
		||||
  try {
 | 
			
		||||
    if (dirname) {
 | 
			
		||||
      return {
 | 
			
		||||
        error: null,
 | 
			
		||||
        value: (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, {
 | 
			
		||||
          paths: [b]
 | 
			
		||||
        }, M = require("module")) => {
 | 
			
		||||
          let f = M._findPath(r, M._nodeModulePaths(b).concat(b));
 | 
			
		||||
          if (f) return f;
 | 
			
		||||
          f = new Error(`Cannot resolve module '${r}'`);
 | 
			
		||||
          f.code = "MODULE_NOT_FOUND";
 | 
			
		||||
          throw f;
 | 
			
		||||
        })(id, {
 | 
			
		||||
          paths: [dirname]
 | 
			
		||||
        })
 | 
			
		||||
      };
 | 
			
		||||
    } else {
 | 
			
		||||
      return {
 | 
			
		||||
        error: null,
 | 
			
		||||
        value: require.resolve(id)
 | 
			
		||||
      };
 | 
			
		||||
    }
 | 
			
		||||
  } catch (error) {
 | 
			
		||||
    return {
 | 
			
		||||
      error,
 | 
			
		||||
      value: null
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
function tryImportMetaResolve(id, options) {
 | 
			
		||||
  try {
 | 
			
		||||
    return {
 | 
			
		||||
      error: null,
 | 
			
		||||
      value: (0, _importMetaResolve.resolve)(id, options)
 | 
			
		||||
    };
 | 
			
		||||
  } catch (error) {
 | 
			
		||||
    return {
 | 
			
		||||
      error,
 | 
			
		||||
      value: null
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
function resolveStandardizedNameForRequire(type, name, dirname) {
 | 
			
		||||
  const it = resolveAlternativesHelper(type, name);
 | 
			
		||||
  let res = it.next();
 | 
			
		||||
  while (!res.done) {
 | 
			
		||||
    res = it.next(tryRequireResolve(res.value, dirname));
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    loader: "require",
 | 
			
		||||
    filepath: res.value
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function resolveStandardizedNameForImport(type, name, dirname) {
 | 
			
		||||
  const parentUrl = (0, _url().pathToFileURL)(_path().join(dirname, "./babel-virtual-resolve-base.js")).href;
 | 
			
		||||
  const it = resolveAlternativesHelper(type, name);
 | 
			
		||||
  let res = it.next();
 | 
			
		||||
  while (!res.done) {
 | 
			
		||||
    res = it.next(tryImportMetaResolve(res.value, parentUrl));
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    loader: "auto",
 | 
			
		||||
    filepath: (0, _url().fileURLToPath)(res.value)
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function resolveStandardizedName(type, name, dirname, allowAsync) {
 | 
			
		||||
  if (!_moduleTypes.supportsESM || !allowAsync) {
 | 
			
		||||
    return resolveStandardizedNameForRequire(type, name, dirname);
 | 
			
		||||
  }
 | 
			
		||||
  try {
 | 
			
		||||
    const resolved = resolveStandardizedNameForImport(type, name, dirname);
 | 
			
		||||
    if (!(0, _fs().existsSync)(resolved.filepath)) {
 | 
			
		||||
      throw Object.assign(new Error(`Could not resolve "${name}" in file ${dirname}.`), {
 | 
			
		||||
        type: "MODULE_NOT_FOUND"
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
    return resolved;
 | 
			
		||||
  } catch (e) {
 | 
			
		||||
    try {
 | 
			
		||||
      return resolveStandardizedNameForRequire(type, name, dirname);
 | 
			
		||||
    } catch (e2) {
 | 
			
		||||
      if (e.type === "MODULE_NOT_FOUND") throw e;
 | 
			
		||||
      if (e2.type === "MODULE_NOT_FOUND") throw e2;
 | 
			
		||||
      throw e;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
{
 | 
			
		||||
  var LOADING_MODULES = new Set();
 | 
			
		||||
}
 | 
			
		||||
function* requireModule(type, loader, name) {
 | 
			
		||||
  {
 | 
			
		||||
    if (!(yield* (0, _async.isAsync)()) && LOADING_MODULES.has(name)) {
 | 
			
		||||
      throw new Error(`Reentrant ${type} detected trying to load "${name}". This module is not ignored ` + "and is trying to load itself while compiling itself, leading to a dependency cycle. " + 'We recommend adding it to your "ignore" list in your babelrc, or to a .babelignore.');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  try {
 | 
			
		||||
    {
 | 
			
		||||
      LOADING_MODULES.add(name);
 | 
			
		||||
    }
 | 
			
		||||
    {
 | 
			
		||||
      return yield* (0, _moduleTypes.default)(name, loader, `You appear to be using a native ECMAScript module ${type}, ` + "which is only supported when running Babel asynchronously " + "or when using the Node.js `--experimental-require-module` flag.", `You appear to be using a ${type} that contains top-level await, ` + "which is only supported when running Babel asynchronously.", true);
 | 
			
		||||
    }
 | 
			
		||||
  } catch (err) {
 | 
			
		||||
    err.message = `[BABEL]: ${err.message} (While processing: ${name})`;
 | 
			
		||||
    throw err;
 | 
			
		||||
  } finally {
 | 
			
		||||
    {
 | 
			
		||||
      LOADING_MODULES.delete(name);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=plugins.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/files/plugins.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/files/plugins.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										5
									
								
								node_modules/@babel/core/lib/config/files/types.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								node_modules/@babel/core/lib/config/files/types.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=types.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/files/types.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/files/types.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":[],"sources":["../../../src/config/files/types.ts"],"sourcesContent":["import type { InputOptions } from \"../index.ts\";\n\nexport type ConfigFile = {\n  filepath: string;\n  dirname: string;\n  options: InputOptions & { babel?: unknown };\n};\n\nexport type IgnoreFile = {\n  filepath: string;\n  dirname: string;\n  ignore: Array<RegExp>;\n};\n\nexport type RelativeConfig = {\n  // The actual config, either from package.json#babel, .babelrc, or\n  // .babelrc.js, if there was one.\n  config: ConfigFile | null;\n  // The .babelignore, if there was one.\n  ignore: IgnoreFile | null;\n};\n\nexport type FilePackageData = {\n  // The file in the package.\n  filepath: string;\n  // Any ancestor directories of the file that are within the package.\n  directories: Array<string>;\n  // The contents of the package.json. May not be found if the package just\n  // terminated at a node_modules folder without finding one.\n  pkg: ConfigFile | null;\n  // True if a package.json or node_modules folder was found while traversing\n  // the directory structure.\n  isPackage: boolean;\n};\n"],"mappings":"","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										36
									
								
								node_modules/@babel/core/lib/config/files/utils.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								node_modules/@babel/core/lib/config/files/utils.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.makeStaticFileCache = makeStaticFileCache;
 | 
			
		||||
var _caching = require("../caching.js");
 | 
			
		||||
var fs = require("../../gensync-utils/fs.js");
 | 
			
		||||
function _fs2() {
 | 
			
		||||
  const data = require("fs");
 | 
			
		||||
  _fs2 = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
function makeStaticFileCache(fn) {
 | 
			
		||||
  return (0, _caching.makeStrongCache)(function* (filepath, cache) {
 | 
			
		||||
    const cached = cache.invalidate(() => fileMtime(filepath));
 | 
			
		||||
    if (cached === null) {
 | 
			
		||||
      return null;
 | 
			
		||||
    }
 | 
			
		||||
    return fn(filepath, yield* fs.readFile(filepath, "utf8"));
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
function fileMtime(filepath) {
 | 
			
		||||
  if (!_fs2().existsSync(filepath)) return null;
 | 
			
		||||
  try {
 | 
			
		||||
    return +_fs2().statSync(filepath).mtime;
 | 
			
		||||
  } catch (e) {
 | 
			
		||||
    if (e.code !== "ENOENT" && e.code !== "ENOTDIR") throw e;
 | 
			
		||||
  }
 | 
			
		||||
  return null;
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=utils.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/files/utils.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/files/utils.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":["_caching","require","fs","_fs2","data","makeStaticFileCache","fn","makeStrongCache","filepath","cache","cached","invalidate","fileMtime","readFile","nodeFs","existsSync","statSync","mtime","e","code"],"sources":["../../../src/config/files/utils.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport { makeStrongCache } from \"../caching.ts\";\nimport type { CacheConfigurator } from \"../caching.ts\";\nimport * as fs from \"../../gensync-utils/fs.ts\";\nimport nodeFs from \"node:fs\";\n\nexport function makeStaticFileCache<T>(\n  fn: (filepath: string, contents: string) => T,\n) {\n  return makeStrongCache(function* (\n    filepath: string,\n    cache: CacheConfigurator<void>,\n  ): Handler<null | T> {\n    const cached = cache.invalidate(() => fileMtime(filepath));\n\n    if (cached === null) {\n      return null;\n    }\n\n    return fn(filepath, yield* fs.readFile(filepath, \"utf8\"));\n  });\n}\n\nfunction fileMtime(filepath: string): number | null {\n  if (!nodeFs.existsSync(filepath)) return null;\n\n  try {\n    return +nodeFs.statSync(filepath).mtime;\n  } catch (e) {\n    if (e.code !== \"ENOENT\" && e.code !== \"ENOTDIR\") throw e;\n  }\n\n  return null;\n}\n"],"mappings":";;;;;;AAEA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,EAAA,GAAAD,OAAA;AACA,SAAAE,KAAA;EAAA,MAAAC,IAAA,GAAAH,OAAA;EAAAE,IAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,SAASC,mBAAmBA,CACjCC,EAA6C,EAC7C;EACA,OAAO,IAAAC,wBAAe,EAAC,WACrBC,QAAgB,EAChBC,KAA8B,EACX;IACnB,MAAMC,MAAM,GAAGD,KAAK,CAACE,UAAU,CAAC,MAAMC,SAAS,CAACJ,QAAQ,CAAC,CAAC;IAE1D,IAAIE,MAAM,KAAK,IAAI,EAAE;MACnB,OAAO,IAAI;IACb;IAEA,OAAOJ,EAAE,CAACE,QAAQ,EAAE,OAAON,EAAE,CAACW,QAAQ,CAACL,QAAQ,EAAE,MAAM,CAAC,CAAC;EAC3D,CAAC,CAAC;AACJ;AAEA,SAASI,SAASA,CAACJ,QAAgB,EAAiB;EAClD,IAAI,CAACM,KAAKA,CAAC,CAACC,UAAU,CAACP,QAAQ,CAAC,EAAE,OAAO,IAAI;EAE7C,IAAI;IACF,OAAO,CAACM,KAAKA,CAAC,CAACE,QAAQ,CAACR,QAAQ,CAAC,CAACS,KAAK;EACzC,CAAC,CAAC,OAAOC,CAAC,EAAE;IACV,IAAIA,CAAC,CAACC,IAAI,KAAK,QAAQ,IAAID,CAAC,CAACC,IAAI,KAAK,SAAS,EAAE,MAAMD,CAAC;EAC1D;EAEA,OAAO,IAAI;AACb;AAAC","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										312
									
								
								node_modules/@babel/core/lib/config/full.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										312
									
								
								node_modules/@babel/core/lib/config/full.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,312 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.default = void 0;
 | 
			
		||||
function _gensync() {
 | 
			
		||||
  const data = require("gensync");
 | 
			
		||||
  _gensync = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _async = require("../gensync-utils/async.js");
 | 
			
		||||
var _util = require("./util.js");
 | 
			
		||||
var context = require("../index.js");
 | 
			
		||||
var _plugin = require("./plugin.js");
 | 
			
		||||
var _item = require("./item.js");
 | 
			
		||||
var _configChain = require("./config-chain.js");
 | 
			
		||||
var _deepArray = require("./helpers/deep-array.js");
 | 
			
		||||
function _traverse() {
 | 
			
		||||
  const data = require("@babel/traverse");
 | 
			
		||||
  _traverse = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _caching = require("./caching.js");
 | 
			
		||||
var _options = require("./validation/options.js");
 | 
			
		||||
var _plugins = require("./validation/plugins.js");
 | 
			
		||||
var _configApi = require("./helpers/config-api.js");
 | 
			
		||||
var _partial = require("./partial.js");
 | 
			
		||||
var _configError = require("../errors/config-error.js");
 | 
			
		||||
var _default = exports.default = _gensync()(function* loadFullConfig(inputOpts) {
 | 
			
		||||
  var _opts$assumptions;
 | 
			
		||||
  const result = yield* (0, _partial.default)(inputOpts);
 | 
			
		||||
  if (!result) {
 | 
			
		||||
    return null;
 | 
			
		||||
  }
 | 
			
		||||
  const {
 | 
			
		||||
    options,
 | 
			
		||||
    context,
 | 
			
		||||
    fileHandling
 | 
			
		||||
  } = result;
 | 
			
		||||
  if (fileHandling === "ignored") {
 | 
			
		||||
    return null;
 | 
			
		||||
  }
 | 
			
		||||
  const optionDefaults = {};
 | 
			
		||||
  const {
 | 
			
		||||
    plugins,
 | 
			
		||||
    presets
 | 
			
		||||
  } = options;
 | 
			
		||||
  if (!plugins || !presets) {
 | 
			
		||||
    throw new Error("Assertion failure - plugins and presets exist");
 | 
			
		||||
  }
 | 
			
		||||
  const presetContext = Object.assign({}, context, {
 | 
			
		||||
    targets: options.targets
 | 
			
		||||
  });
 | 
			
		||||
  const toDescriptor = item => {
 | 
			
		||||
    const desc = (0, _item.getItemDescriptor)(item);
 | 
			
		||||
    if (!desc) {
 | 
			
		||||
      throw new Error("Assertion failure - must be config item");
 | 
			
		||||
    }
 | 
			
		||||
    return desc;
 | 
			
		||||
  };
 | 
			
		||||
  const presetsDescriptors = presets.map(toDescriptor);
 | 
			
		||||
  const initialPluginsDescriptors = plugins.map(toDescriptor);
 | 
			
		||||
  const pluginDescriptorsByPass = [[]];
 | 
			
		||||
  const passes = [];
 | 
			
		||||
  const externalDependencies = [];
 | 
			
		||||
  const ignored = yield* enhanceError(context, function* recursePresetDescriptors(rawPresets, pluginDescriptorsPass) {
 | 
			
		||||
    const presets = [];
 | 
			
		||||
    for (let i = 0; i < rawPresets.length; i++) {
 | 
			
		||||
      const descriptor = rawPresets[i];
 | 
			
		||||
      if (descriptor.options !== false) {
 | 
			
		||||
        try {
 | 
			
		||||
          var preset = yield* loadPresetDescriptor(descriptor, presetContext);
 | 
			
		||||
        } catch (e) {
 | 
			
		||||
          if (e.code === "BABEL_UNKNOWN_OPTION") {
 | 
			
		||||
            (0, _options.checkNoUnwrappedItemOptionPairs)(rawPresets, i, "preset", e);
 | 
			
		||||
          }
 | 
			
		||||
          throw e;
 | 
			
		||||
        }
 | 
			
		||||
        externalDependencies.push(preset.externalDependencies);
 | 
			
		||||
        if (descriptor.ownPass) {
 | 
			
		||||
          presets.push({
 | 
			
		||||
            preset: preset.chain,
 | 
			
		||||
            pass: []
 | 
			
		||||
          });
 | 
			
		||||
        } else {
 | 
			
		||||
          presets.unshift({
 | 
			
		||||
            preset: preset.chain,
 | 
			
		||||
            pass: pluginDescriptorsPass
 | 
			
		||||
          });
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (presets.length > 0) {
 | 
			
		||||
      pluginDescriptorsByPass.splice(1, 0, ...presets.map(o => o.pass).filter(p => p !== pluginDescriptorsPass));
 | 
			
		||||
      for (const {
 | 
			
		||||
        preset,
 | 
			
		||||
        pass
 | 
			
		||||
      } of presets) {
 | 
			
		||||
        if (!preset) return true;
 | 
			
		||||
        pass.push(...preset.plugins);
 | 
			
		||||
        const ignored = yield* recursePresetDescriptors(preset.presets, pass);
 | 
			
		||||
        if (ignored) return true;
 | 
			
		||||
        preset.options.forEach(opts => {
 | 
			
		||||
          (0, _util.mergeOptions)(optionDefaults, opts);
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  })(presetsDescriptors, pluginDescriptorsByPass[0]);
 | 
			
		||||
  if (ignored) return null;
 | 
			
		||||
  const opts = optionDefaults;
 | 
			
		||||
  (0, _util.mergeOptions)(opts, options);
 | 
			
		||||
  const pluginContext = Object.assign({}, presetContext, {
 | 
			
		||||
    assumptions: (_opts$assumptions = opts.assumptions) != null ? _opts$assumptions : {}
 | 
			
		||||
  });
 | 
			
		||||
  yield* enhanceError(context, function* loadPluginDescriptors() {
 | 
			
		||||
    pluginDescriptorsByPass[0].unshift(...initialPluginsDescriptors);
 | 
			
		||||
    for (const descs of pluginDescriptorsByPass) {
 | 
			
		||||
      const pass = [];
 | 
			
		||||
      passes.push(pass);
 | 
			
		||||
      for (let i = 0; i < descs.length; i++) {
 | 
			
		||||
        const descriptor = descs[i];
 | 
			
		||||
        if (descriptor.options !== false) {
 | 
			
		||||
          try {
 | 
			
		||||
            var plugin = yield* loadPluginDescriptor(descriptor, pluginContext);
 | 
			
		||||
          } catch (e) {
 | 
			
		||||
            if (e.code === "BABEL_UNKNOWN_PLUGIN_PROPERTY") {
 | 
			
		||||
              (0, _options.checkNoUnwrappedItemOptionPairs)(descs, i, "plugin", e);
 | 
			
		||||
            }
 | 
			
		||||
            throw e;
 | 
			
		||||
          }
 | 
			
		||||
          pass.push(plugin);
 | 
			
		||||
          externalDependencies.push(plugin.externalDependencies);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  })();
 | 
			
		||||
  opts.plugins = passes[0];
 | 
			
		||||
  opts.presets = passes.slice(1).filter(plugins => plugins.length > 0).map(plugins => ({
 | 
			
		||||
    plugins
 | 
			
		||||
  }));
 | 
			
		||||
  opts.passPerPreset = opts.presets.length > 0;
 | 
			
		||||
  return {
 | 
			
		||||
    options: opts,
 | 
			
		||||
    passes: passes,
 | 
			
		||||
    externalDependencies: (0, _deepArray.finalize)(externalDependencies)
 | 
			
		||||
  };
 | 
			
		||||
});
 | 
			
		||||
function enhanceError(context, fn) {
 | 
			
		||||
  return function* (arg1, arg2) {
 | 
			
		||||
    try {
 | 
			
		||||
      return yield* fn(arg1, arg2);
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      if (!/^\[BABEL\]/.test(e.message)) {
 | 
			
		||||
        var _context$filename;
 | 
			
		||||
        e.message = `[BABEL] ${(_context$filename = context.filename) != null ? _context$filename : "unknown file"}: ${e.message}`;
 | 
			
		||||
      }
 | 
			
		||||
      throw e;
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
const makeDescriptorLoader = apiFactory => (0, _caching.makeWeakCache)(function* ({
 | 
			
		||||
  value,
 | 
			
		||||
  options,
 | 
			
		||||
  dirname,
 | 
			
		||||
  alias
 | 
			
		||||
}, cache) {
 | 
			
		||||
  if (options === false) throw new Error("Assertion failure");
 | 
			
		||||
  options = options || {};
 | 
			
		||||
  const externalDependencies = [];
 | 
			
		||||
  let item = value;
 | 
			
		||||
  if (typeof value === "function") {
 | 
			
		||||
    const factory = (0, _async.maybeAsync)(value, `You appear to be using an async plugin/preset, but Babel has been called synchronously`);
 | 
			
		||||
    const api = Object.assign({}, context, apiFactory(cache, externalDependencies));
 | 
			
		||||
    try {
 | 
			
		||||
      item = yield* factory(api, options, dirname);
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      if (alias) {
 | 
			
		||||
        e.message += ` (While processing: ${JSON.stringify(alias)})`;
 | 
			
		||||
      }
 | 
			
		||||
      throw e;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (!item || typeof item !== "object") {
 | 
			
		||||
    throw new Error("Plugin/Preset did not return an object.");
 | 
			
		||||
  }
 | 
			
		||||
  if ((0, _async.isThenable)(item)) {
 | 
			
		||||
    yield* [];
 | 
			
		||||
    throw new Error(`You appear to be using a promise as a plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, ` + `you may need to upgrade your @babel/core version. ` + `As an alternative, you can prefix the promise with "await". ` + `(While processing: ${JSON.stringify(alias)})`);
 | 
			
		||||
  }
 | 
			
		||||
  if (externalDependencies.length > 0 && (!cache.configured() || cache.mode() === "forever")) {
 | 
			
		||||
    let error = `A plugin/preset has external untracked dependencies ` + `(${externalDependencies[0]}), but the cache `;
 | 
			
		||||
    if (!cache.configured()) {
 | 
			
		||||
      error += `has not been configured to be invalidated when the external dependencies change. `;
 | 
			
		||||
    } else {
 | 
			
		||||
      error += ` has been configured to never be invalidated. `;
 | 
			
		||||
    }
 | 
			
		||||
    error += `Plugins/presets should configure their cache to be invalidated when the external ` + `dependencies change, for example using \`api.cache.invalidate(() => ` + `statSync(filepath).mtimeMs)\` or \`api.cache.never()\`\n` + `(While processing: ${JSON.stringify(alias)})`;
 | 
			
		||||
    throw new Error(error);
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    value: item,
 | 
			
		||||
    options,
 | 
			
		||||
    dirname,
 | 
			
		||||
    alias,
 | 
			
		||||
    externalDependencies: (0, _deepArray.finalize)(externalDependencies)
 | 
			
		||||
  };
 | 
			
		||||
});
 | 
			
		||||
const pluginDescriptorLoader = makeDescriptorLoader(_configApi.makePluginAPI);
 | 
			
		||||
const presetDescriptorLoader = makeDescriptorLoader(_configApi.makePresetAPI);
 | 
			
		||||
const instantiatePlugin = (0, _caching.makeWeakCache)(function* ({
 | 
			
		||||
  value,
 | 
			
		||||
  options,
 | 
			
		||||
  dirname,
 | 
			
		||||
  alias,
 | 
			
		||||
  externalDependencies
 | 
			
		||||
}, cache) {
 | 
			
		||||
  const pluginObj = (0, _plugins.validatePluginObject)(value);
 | 
			
		||||
  const plugin = Object.assign({}, pluginObj);
 | 
			
		||||
  if (plugin.visitor) {
 | 
			
		||||
    plugin.visitor = _traverse().default.explode(Object.assign({}, plugin.visitor));
 | 
			
		||||
  }
 | 
			
		||||
  if (plugin.inherits) {
 | 
			
		||||
    const inheritsDescriptor = {
 | 
			
		||||
      name: undefined,
 | 
			
		||||
      alias: `${alias}$inherits`,
 | 
			
		||||
      value: plugin.inherits,
 | 
			
		||||
      options,
 | 
			
		||||
      dirname
 | 
			
		||||
    };
 | 
			
		||||
    const inherits = yield* (0, _async.forwardAsync)(loadPluginDescriptor, run => {
 | 
			
		||||
      return cache.invalidate(data => run(inheritsDescriptor, data));
 | 
			
		||||
    });
 | 
			
		||||
    plugin.pre = chainMaybeAsync(inherits.pre, plugin.pre);
 | 
			
		||||
    plugin.post = chainMaybeAsync(inherits.post, plugin.post);
 | 
			
		||||
    plugin.manipulateOptions = chainMaybeAsync(inherits.manipulateOptions, plugin.manipulateOptions);
 | 
			
		||||
    plugin.visitor = _traverse().default.visitors.merge([inherits.visitor || {}, plugin.visitor || {}]);
 | 
			
		||||
    if (inherits.externalDependencies.length > 0) {
 | 
			
		||||
      if (externalDependencies.length === 0) {
 | 
			
		||||
        externalDependencies = inherits.externalDependencies;
 | 
			
		||||
      } else {
 | 
			
		||||
        externalDependencies = (0, _deepArray.finalize)([externalDependencies, inherits.externalDependencies]);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return new _plugin.default(plugin, options, alias, externalDependencies);
 | 
			
		||||
});
 | 
			
		||||
function* loadPluginDescriptor(descriptor, context) {
 | 
			
		||||
  if (descriptor.value instanceof _plugin.default) {
 | 
			
		||||
    if (descriptor.options) {
 | 
			
		||||
      throw new Error("Passed options to an existing Plugin instance will not work.");
 | 
			
		||||
    }
 | 
			
		||||
    return descriptor.value;
 | 
			
		||||
  }
 | 
			
		||||
  return yield* instantiatePlugin(yield* pluginDescriptorLoader(descriptor, context), context);
 | 
			
		||||
}
 | 
			
		||||
const needsFilename = val => val && typeof val !== "function";
 | 
			
		||||
const validateIfOptionNeedsFilename = (options, descriptor) => {
 | 
			
		||||
  if (needsFilename(options.test) || needsFilename(options.include) || needsFilename(options.exclude)) {
 | 
			
		||||
    const formattedPresetName = descriptor.name ? `"${descriptor.name}"` : "/* your preset */";
 | 
			
		||||
    throw new _configError.default([`Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`, `\`\`\``, `babel.transformSync(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`, `\`\`\``, `See https://babeljs.io/docs/en/options#filename for more information.`].join("\n"));
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
const validatePreset = (preset, context, descriptor) => {
 | 
			
		||||
  if (!context.filename) {
 | 
			
		||||
    var _options$overrides;
 | 
			
		||||
    const {
 | 
			
		||||
      options
 | 
			
		||||
    } = preset;
 | 
			
		||||
    validateIfOptionNeedsFilename(options, descriptor);
 | 
			
		||||
    (_options$overrides = options.overrides) == null || _options$overrides.forEach(overrideOptions => validateIfOptionNeedsFilename(overrideOptions, descriptor));
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
const instantiatePreset = (0, _caching.makeWeakCacheSync)(({
 | 
			
		||||
  value,
 | 
			
		||||
  dirname,
 | 
			
		||||
  alias,
 | 
			
		||||
  externalDependencies
 | 
			
		||||
}) => {
 | 
			
		||||
  return {
 | 
			
		||||
    options: (0, _options.validate)("preset", value),
 | 
			
		||||
    alias,
 | 
			
		||||
    dirname,
 | 
			
		||||
    externalDependencies
 | 
			
		||||
  };
 | 
			
		||||
});
 | 
			
		||||
function* loadPresetDescriptor(descriptor, context) {
 | 
			
		||||
  const preset = instantiatePreset(yield* presetDescriptorLoader(descriptor, context));
 | 
			
		||||
  validatePreset(preset, context, descriptor);
 | 
			
		||||
  return {
 | 
			
		||||
    chain: yield* (0, _configChain.buildPresetChain)(preset, context),
 | 
			
		||||
    externalDependencies: preset.externalDependencies
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function chainMaybeAsync(a, b) {
 | 
			
		||||
  if (!a) return b;
 | 
			
		||||
  if (!b) return a;
 | 
			
		||||
  return function (...args) {
 | 
			
		||||
    const res = a.apply(this, args);
 | 
			
		||||
    if (res && typeof res.then === "function") {
 | 
			
		||||
      return res.then(() => b.apply(this, args));
 | 
			
		||||
    }
 | 
			
		||||
    return b.apply(this, args);
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=full.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/full.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/full.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										84
									
								
								node_modules/@babel/core/lib/config/helpers/config-api.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								node_modules/@babel/core/lib/config/helpers/config-api.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,84 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.makeConfigAPI = makeConfigAPI;
 | 
			
		||||
exports.makePluginAPI = makePluginAPI;
 | 
			
		||||
exports.makePresetAPI = makePresetAPI;
 | 
			
		||||
function _semver() {
 | 
			
		||||
  const data = require("semver");
 | 
			
		||||
  _semver = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _index = require("../../index.js");
 | 
			
		||||
var _caching = require("../caching.js");
 | 
			
		||||
function makeConfigAPI(cache) {
 | 
			
		||||
  const env = value => cache.using(data => {
 | 
			
		||||
    if (value === undefined) return data.envName;
 | 
			
		||||
    if (typeof value === "function") {
 | 
			
		||||
      return (0, _caching.assertSimpleType)(value(data.envName));
 | 
			
		||||
    }
 | 
			
		||||
    return (Array.isArray(value) ? value : [value]).some(entry => {
 | 
			
		||||
      if (typeof entry !== "string") {
 | 
			
		||||
        throw new Error("Unexpected non-string value");
 | 
			
		||||
      }
 | 
			
		||||
      return entry === data.envName;
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
  const caller = cb => cache.using(data => (0, _caching.assertSimpleType)(cb(data.caller)));
 | 
			
		||||
  return {
 | 
			
		||||
    version: _index.version,
 | 
			
		||||
    cache: cache.simple(),
 | 
			
		||||
    env,
 | 
			
		||||
    async: () => false,
 | 
			
		||||
    caller,
 | 
			
		||||
    assertVersion
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function makePresetAPI(cache, externalDependencies) {
 | 
			
		||||
  const targets = () => JSON.parse(cache.using(data => JSON.stringify(data.targets)));
 | 
			
		||||
  const addExternalDependency = ref => {
 | 
			
		||||
    externalDependencies.push(ref);
 | 
			
		||||
  };
 | 
			
		||||
  return Object.assign({}, makeConfigAPI(cache), {
 | 
			
		||||
    targets,
 | 
			
		||||
    addExternalDependency
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
function makePluginAPI(cache, externalDependencies) {
 | 
			
		||||
  const assumption = name => cache.using(data => data.assumptions[name]);
 | 
			
		||||
  return Object.assign({}, makePresetAPI(cache, externalDependencies), {
 | 
			
		||||
    assumption
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
function assertVersion(range) {
 | 
			
		||||
  if (typeof range === "number") {
 | 
			
		||||
    if (!Number.isInteger(range)) {
 | 
			
		||||
      throw new Error("Expected string or integer value.");
 | 
			
		||||
    }
 | 
			
		||||
    range = `^${range}.0.0-0`;
 | 
			
		||||
  }
 | 
			
		||||
  if (typeof range !== "string") {
 | 
			
		||||
    throw new Error("Expected string or integer value.");
 | 
			
		||||
  }
 | 
			
		||||
  if (range === "*" || _semver().satisfies(_index.version, range)) return;
 | 
			
		||||
  const limit = Error.stackTraceLimit;
 | 
			
		||||
  if (typeof limit === "number" && limit < 25) {
 | 
			
		||||
    Error.stackTraceLimit = 25;
 | 
			
		||||
  }
 | 
			
		||||
  const err = new Error(`Requires Babel "${range}", but was loaded with "${_index.version}". ` + `If you are sure you have a compatible version of @babel/core, ` + `it is likely that something in your build process is loading the ` + `wrong version. Inspect the stack trace of this error to look for ` + `the first entry that doesn't mention "@babel/core" or "babel-core" ` + `to see what is calling Babel.`);
 | 
			
		||||
  if (typeof limit === "number") {
 | 
			
		||||
    Error.stackTraceLimit = limit;
 | 
			
		||||
  }
 | 
			
		||||
  throw Object.assign(err, {
 | 
			
		||||
    code: "BABEL_VERSION_UNSUPPORTED",
 | 
			
		||||
    version: _index.version,
 | 
			
		||||
    range
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=config-api.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/helpers/config-api.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/helpers/config-api.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										23
									
								
								node_modules/@babel/core/lib/config/helpers/deep-array.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								node_modules/@babel/core/lib/config/helpers/deep-array.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.finalize = finalize;
 | 
			
		||||
exports.flattenToSet = flattenToSet;
 | 
			
		||||
function finalize(deepArr) {
 | 
			
		||||
  return Object.freeze(deepArr);
 | 
			
		||||
}
 | 
			
		||||
function flattenToSet(arr) {
 | 
			
		||||
  const result = new Set();
 | 
			
		||||
  const stack = [arr];
 | 
			
		||||
  while (stack.length > 0) {
 | 
			
		||||
    for (const el of stack.pop()) {
 | 
			
		||||
      if (Array.isArray(el)) stack.push(el);else result.add(el);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return result;
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=deep-array.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/helpers/deep-array.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/helpers/deep-array.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":["finalize","deepArr","Object","freeze","flattenToSet","arr","result","Set","stack","length","el","pop","Array","isArray","push","add"],"sources":["../../../src/config/helpers/deep-array.ts"],"sourcesContent":["export type DeepArray<T> = Array<T | ReadonlyDeepArray<T>>;\n\n// Just to make sure that DeepArray<T> is not assignable to ReadonlyDeepArray<T>\ndeclare const __marker: unique symbol;\nexport type ReadonlyDeepArray<T> = ReadonlyArray<T | ReadonlyDeepArray<T>> & {\n  [__marker]: true;\n};\n\nexport function finalize<T>(deepArr: DeepArray<T>): ReadonlyDeepArray<T> {\n  return Object.freeze(deepArr) as ReadonlyDeepArray<T>;\n}\n\nexport function flattenToSet<T extends string>(\n  arr: ReadonlyDeepArray<T>,\n): Set<T> {\n  const result = new Set<T>();\n  const stack = [arr];\n  while (stack.length > 0) {\n    for (const el of stack.pop()) {\n      if (Array.isArray(el)) stack.push(el as ReadonlyDeepArray<T>);\n      else result.add(el as T);\n    }\n  }\n  return result;\n}\n"],"mappings":";;;;;;;AAQO,SAASA,QAAQA,CAAIC,OAAqB,EAAwB;EACvE,OAAOC,MAAM,CAACC,MAAM,CAACF,OAAO,CAAC;AAC/B;AAEO,SAASG,YAAYA,CAC1BC,GAAyB,EACjB;EACR,MAAMC,MAAM,GAAG,IAAIC,GAAG,CAAI,CAAC;EAC3B,MAAMC,KAAK,GAAG,CAACH,GAAG,CAAC;EACnB,OAAOG,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;IACvB,KAAK,MAAMC,EAAE,IAAIF,KAAK,CAACG,GAAG,CAAC,CAAC,EAAE;MAC5B,IAAIC,KAAK,CAACC,OAAO,CAACH,EAAE,CAAC,EAAEF,KAAK,CAACM,IAAI,CAACJ,EAA0B,CAAC,CAAC,KACzDJ,MAAM,CAACS,GAAG,CAACL,EAAO,CAAC;IAC1B;EACF;EACA,OAAOJ,MAAM;AACf;AAAC","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										12
									
								
								node_modules/@babel/core/lib/config/helpers/environment.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								node_modules/@babel/core/lib/config/helpers/environment.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.getEnv = getEnv;
 | 
			
		||||
function getEnv(defaultValue = "development") {
 | 
			
		||||
  return process.env.BABEL_ENV || process.env.NODE_ENV || defaultValue;
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=environment.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/helpers/environment.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/helpers/environment.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":["getEnv","defaultValue","process","env","BABEL_ENV","NODE_ENV"],"sources":["../../../src/config/helpers/environment.ts"],"sourcesContent":["export function getEnv(defaultValue: string = \"development\"): string {\n  return process.env.BABEL_ENV || process.env.NODE_ENV || defaultValue;\n}\n"],"mappings":";;;;;;AAAO,SAASA,MAAMA,CAACC,YAAoB,GAAG,aAAa,EAAU;EACnE,OAAOC,OAAO,CAACC,GAAG,CAACC,SAAS,IAAIF,OAAO,CAACC,GAAG,CAACE,QAAQ,IAAIJ,YAAY;AACtE;AAAC","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										93
									
								
								node_modules/@babel/core/lib/config/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								node_modules/@babel/core/lib/config/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,93 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.createConfigItem = createConfigItem;
 | 
			
		||||
exports.createConfigItemAsync = createConfigItemAsync;
 | 
			
		||||
exports.createConfigItemSync = createConfigItemSync;
 | 
			
		||||
Object.defineProperty(exports, "default", {
 | 
			
		||||
  enumerable: true,
 | 
			
		||||
  get: function () {
 | 
			
		||||
    return _full.default;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
exports.loadOptions = loadOptions;
 | 
			
		||||
exports.loadOptionsAsync = loadOptionsAsync;
 | 
			
		||||
exports.loadOptionsSync = loadOptionsSync;
 | 
			
		||||
exports.loadPartialConfig = loadPartialConfig;
 | 
			
		||||
exports.loadPartialConfigAsync = loadPartialConfigAsync;
 | 
			
		||||
exports.loadPartialConfigSync = loadPartialConfigSync;
 | 
			
		||||
function _gensync() {
 | 
			
		||||
  const data = require("gensync");
 | 
			
		||||
  _gensync = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _full = require("./full.js");
 | 
			
		||||
var _partial = require("./partial.js");
 | 
			
		||||
var _item = require("./item.js");
 | 
			
		||||
var _rewriteStackTrace = require("../errors/rewrite-stack-trace.js");
 | 
			
		||||
const loadPartialConfigRunner = _gensync()(_partial.loadPartialConfig);
 | 
			
		||||
function loadPartialConfigAsync(...args) {
 | 
			
		||||
  return (0, _rewriteStackTrace.beginHiddenCallStack)(loadPartialConfigRunner.async)(...args);
 | 
			
		||||
}
 | 
			
		||||
function loadPartialConfigSync(...args) {
 | 
			
		||||
  return (0, _rewriteStackTrace.beginHiddenCallStack)(loadPartialConfigRunner.sync)(...args);
 | 
			
		||||
}
 | 
			
		||||
function loadPartialConfig(opts, callback) {
 | 
			
		||||
  if (callback !== undefined) {
 | 
			
		||||
    (0, _rewriteStackTrace.beginHiddenCallStack)(loadPartialConfigRunner.errback)(opts, callback);
 | 
			
		||||
  } else if (typeof opts === "function") {
 | 
			
		||||
    (0, _rewriteStackTrace.beginHiddenCallStack)(loadPartialConfigRunner.errback)(undefined, opts);
 | 
			
		||||
  } else {
 | 
			
		||||
    {
 | 
			
		||||
      return loadPartialConfigSync(opts);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
function* loadOptionsImpl(opts) {
 | 
			
		||||
  var _config$options;
 | 
			
		||||
  const config = yield* (0, _full.default)(opts);
 | 
			
		||||
  return (_config$options = config == null ? void 0 : config.options) != null ? _config$options : null;
 | 
			
		||||
}
 | 
			
		||||
const loadOptionsRunner = _gensync()(loadOptionsImpl);
 | 
			
		||||
function loadOptionsAsync(...args) {
 | 
			
		||||
  return (0, _rewriteStackTrace.beginHiddenCallStack)(loadOptionsRunner.async)(...args);
 | 
			
		||||
}
 | 
			
		||||
function loadOptionsSync(...args) {
 | 
			
		||||
  return (0, _rewriteStackTrace.beginHiddenCallStack)(loadOptionsRunner.sync)(...args);
 | 
			
		||||
}
 | 
			
		||||
function loadOptions(opts, callback) {
 | 
			
		||||
  if (callback !== undefined) {
 | 
			
		||||
    (0, _rewriteStackTrace.beginHiddenCallStack)(loadOptionsRunner.errback)(opts, callback);
 | 
			
		||||
  } else if (typeof opts === "function") {
 | 
			
		||||
    (0, _rewriteStackTrace.beginHiddenCallStack)(loadOptionsRunner.errback)(undefined, opts);
 | 
			
		||||
  } else {
 | 
			
		||||
    {
 | 
			
		||||
      return loadOptionsSync(opts);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
const createConfigItemRunner = _gensync()(_item.createConfigItem);
 | 
			
		||||
function createConfigItemAsync(...args) {
 | 
			
		||||
  return (0, _rewriteStackTrace.beginHiddenCallStack)(createConfigItemRunner.async)(...args);
 | 
			
		||||
}
 | 
			
		||||
function createConfigItemSync(...args) {
 | 
			
		||||
  return (0, _rewriteStackTrace.beginHiddenCallStack)(createConfigItemRunner.sync)(...args);
 | 
			
		||||
}
 | 
			
		||||
function createConfigItem(target, options, callback) {
 | 
			
		||||
  if (callback !== undefined) {
 | 
			
		||||
    (0, _rewriteStackTrace.beginHiddenCallStack)(createConfigItemRunner.errback)(target, options, callback);
 | 
			
		||||
  } else if (typeof options === "function") {
 | 
			
		||||
    (0, _rewriteStackTrace.beginHiddenCallStack)(createConfigItemRunner.errback)(target, undefined, callback);
 | 
			
		||||
  } else {
 | 
			
		||||
    {
 | 
			
		||||
      return createConfigItemSync(target, options);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=index.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										67
									
								
								node_modules/@babel/core/lib/config/item.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								node_modules/@babel/core/lib/config/item.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.createConfigItem = createConfigItem;
 | 
			
		||||
exports.createItemFromDescriptor = createItemFromDescriptor;
 | 
			
		||||
exports.getItemDescriptor = getItemDescriptor;
 | 
			
		||||
function _path() {
 | 
			
		||||
  const data = require("path");
 | 
			
		||||
  _path = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _configDescriptors = require("./config-descriptors.js");
 | 
			
		||||
function createItemFromDescriptor(desc) {
 | 
			
		||||
  return new ConfigItem(desc);
 | 
			
		||||
}
 | 
			
		||||
function* createConfigItem(value, {
 | 
			
		||||
  dirname = ".",
 | 
			
		||||
  type
 | 
			
		||||
} = {}) {
 | 
			
		||||
  const descriptor = yield* (0, _configDescriptors.createDescriptor)(value, _path().resolve(dirname), {
 | 
			
		||||
    type,
 | 
			
		||||
    alias: "programmatic item"
 | 
			
		||||
  });
 | 
			
		||||
  return createItemFromDescriptor(descriptor);
 | 
			
		||||
}
 | 
			
		||||
const CONFIG_ITEM_BRAND = Symbol.for("@babel/core@7 - ConfigItem");
 | 
			
		||||
function getItemDescriptor(item) {
 | 
			
		||||
  if (item != null && item[CONFIG_ITEM_BRAND]) {
 | 
			
		||||
    return item._descriptor;
 | 
			
		||||
  }
 | 
			
		||||
  return undefined;
 | 
			
		||||
}
 | 
			
		||||
class ConfigItem {
 | 
			
		||||
  constructor(descriptor) {
 | 
			
		||||
    this._descriptor = void 0;
 | 
			
		||||
    this[CONFIG_ITEM_BRAND] = true;
 | 
			
		||||
    this.value = void 0;
 | 
			
		||||
    this.options = void 0;
 | 
			
		||||
    this.dirname = void 0;
 | 
			
		||||
    this.name = void 0;
 | 
			
		||||
    this.file = void 0;
 | 
			
		||||
    this._descriptor = descriptor;
 | 
			
		||||
    Object.defineProperty(this, "_descriptor", {
 | 
			
		||||
      enumerable: false
 | 
			
		||||
    });
 | 
			
		||||
    Object.defineProperty(this, CONFIG_ITEM_BRAND, {
 | 
			
		||||
      enumerable: false
 | 
			
		||||
    });
 | 
			
		||||
    this.value = this._descriptor.value;
 | 
			
		||||
    this.options = this._descriptor.options;
 | 
			
		||||
    this.dirname = this._descriptor.dirname;
 | 
			
		||||
    this.name = this._descriptor.name;
 | 
			
		||||
    this.file = this._descriptor.file ? {
 | 
			
		||||
      request: this._descriptor.file.request,
 | 
			
		||||
      resolved: this._descriptor.file.resolved
 | 
			
		||||
    } : undefined;
 | 
			
		||||
    Object.freeze(this);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
Object.freeze(ConfigItem.prototype);
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=item.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/item.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/item.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										158
									
								
								node_modules/@babel/core/lib/config/partial.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								node_modules/@babel/core/lib/config/partial.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,158 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.default = loadPrivatePartialConfig;
 | 
			
		||||
exports.loadPartialConfig = loadPartialConfig;
 | 
			
		||||
function _path() {
 | 
			
		||||
  const data = require("path");
 | 
			
		||||
  _path = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _plugin = require("./plugin.js");
 | 
			
		||||
var _util = require("./util.js");
 | 
			
		||||
var _item = require("./item.js");
 | 
			
		||||
var _configChain = require("./config-chain.js");
 | 
			
		||||
var _environment = require("./helpers/environment.js");
 | 
			
		||||
var _options = require("./validation/options.js");
 | 
			
		||||
var _index = require("./files/index.js");
 | 
			
		||||
var _resolveTargets = require("./resolve-targets.js");
 | 
			
		||||
const _excluded = ["showIgnoredFiles"];
 | 
			
		||||
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
 | 
			
		||||
function resolveRootMode(rootDir, rootMode) {
 | 
			
		||||
  switch (rootMode) {
 | 
			
		||||
    case "root":
 | 
			
		||||
      return rootDir;
 | 
			
		||||
    case "upward-optional":
 | 
			
		||||
      {
 | 
			
		||||
        const upwardRootDir = (0, _index.findConfigUpwards)(rootDir);
 | 
			
		||||
        return upwardRootDir === null ? rootDir : upwardRootDir;
 | 
			
		||||
      }
 | 
			
		||||
    case "upward":
 | 
			
		||||
      {
 | 
			
		||||
        const upwardRootDir = (0, _index.findConfigUpwards)(rootDir);
 | 
			
		||||
        if (upwardRootDir !== null) return upwardRootDir;
 | 
			
		||||
        throw Object.assign(new Error(`Babel was run with rootMode:"upward" but a root could not ` + `be found when searching upward from "${rootDir}".\n` + `One of the following config files must be in the directory tree: ` + `"${_index.ROOT_CONFIG_FILENAMES.join(", ")}".`), {
 | 
			
		||||
          code: "BABEL_ROOT_NOT_FOUND",
 | 
			
		||||
          dirname: rootDir
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    default:
 | 
			
		||||
      throw new Error(`Assertion failure - unknown rootMode value.`);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
function* loadPrivatePartialConfig(inputOpts) {
 | 
			
		||||
  if (inputOpts != null && (typeof inputOpts !== "object" || Array.isArray(inputOpts))) {
 | 
			
		||||
    throw new Error("Babel options must be an object, null, or undefined");
 | 
			
		||||
  }
 | 
			
		||||
  const args = inputOpts ? (0, _options.validate)("arguments", inputOpts) : {};
 | 
			
		||||
  const {
 | 
			
		||||
    envName = (0, _environment.getEnv)(),
 | 
			
		||||
    cwd = ".",
 | 
			
		||||
    root: rootDir = ".",
 | 
			
		||||
    rootMode = "root",
 | 
			
		||||
    caller,
 | 
			
		||||
    cloneInputAst = true
 | 
			
		||||
  } = args;
 | 
			
		||||
  const absoluteCwd = _path().resolve(cwd);
 | 
			
		||||
  const absoluteRootDir = resolveRootMode(_path().resolve(absoluteCwd, rootDir), rootMode);
 | 
			
		||||
  const filename = typeof args.filename === "string" ? _path().resolve(cwd, args.filename) : undefined;
 | 
			
		||||
  const showConfigPath = yield* (0, _index.resolveShowConfigPath)(absoluteCwd);
 | 
			
		||||
  const context = {
 | 
			
		||||
    filename,
 | 
			
		||||
    cwd: absoluteCwd,
 | 
			
		||||
    root: absoluteRootDir,
 | 
			
		||||
    envName,
 | 
			
		||||
    caller,
 | 
			
		||||
    showConfig: showConfigPath === filename
 | 
			
		||||
  };
 | 
			
		||||
  const configChain = yield* (0, _configChain.buildRootChain)(args, context);
 | 
			
		||||
  if (!configChain) return null;
 | 
			
		||||
  const merged = {
 | 
			
		||||
    assumptions: {}
 | 
			
		||||
  };
 | 
			
		||||
  configChain.options.forEach(opts => {
 | 
			
		||||
    (0, _util.mergeOptions)(merged, opts);
 | 
			
		||||
  });
 | 
			
		||||
  const options = Object.assign({}, merged, {
 | 
			
		||||
    targets: (0, _resolveTargets.resolveTargets)(merged, absoluteRootDir),
 | 
			
		||||
    cloneInputAst,
 | 
			
		||||
    babelrc: false,
 | 
			
		||||
    configFile: false,
 | 
			
		||||
    browserslistConfigFile: false,
 | 
			
		||||
    passPerPreset: false,
 | 
			
		||||
    envName: context.envName,
 | 
			
		||||
    cwd: context.cwd,
 | 
			
		||||
    root: context.root,
 | 
			
		||||
    rootMode: "root",
 | 
			
		||||
    filename: typeof context.filename === "string" ? context.filename : undefined,
 | 
			
		||||
    plugins: configChain.plugins.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor)),
 | 
			
		||||
    presets: configChain.presets.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor))
 | 
			
		||||
  });
 | 
			
		||||
  return {
 | 
			
		||||
    options,
 | 
			
		||||
    context,
 | 
			
		||||
    fileHandling: configChain.fileHandling,
 | 
			
		||||
    ignore: configChain.ignore,
 | 
			
		||||
    babelrc: configChain.babelrc,
 | 
			
		||||
    config: configChain.config,
 | 
			
		||||
    files: configChain.files
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function* loadPartialConfig(opts) {
 | 
			
		||||
  let showIgnoredFiles = false;
 | 
			
		||||
  if (typeof opts === "object" && opts !== null && !Array.isArray(opts)) {
 | 
			
		||||
    var _opts = opts;
 | 
			
		||||
    ({
 | 
			
		||||
      showIgnoredFiles
 | 
			
		||||
    } = _opts);
 | 
			
		||||
    opts = _objectWithoutPropertiesLoose(_opts, _excluded);
 | 
			
		||||
    _opts;
 | 
			
		||||
  }
 | 
			
		||||
  const result = yield* loadPrivatePartialConfig(opts);
 | 
			
		||||
  if (!result) return null;
 | 
			
		||||
  const {
 | 
			
		||||
    options,
 | 
			
		||||
    babelrc,
 | 
			
		||||
    ignore,
 | 
			
		||||
    config,
 | 
			
		||||
    fileHandling,
 | 
			
		||||
    files
 | 
			
		||||
  } = result;
 | 
			
		||||
  if (fileHandling === "ignored" && !showIgnoredFiles) {
 | 
			
		||||
    return null;
 | 
			
		||||
  }
 | 
			
		||||
  (options.plugins || []).forEach(item => {
 | 
			
		||||
    if (item.value instanceof _plugin.default) {
 | 
			
		||||
      throw new Error("Passing cached plugin instances is not supported in " + "babel.loadPartialConfig()");
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
  return new PartialConfig(options, babelrc ? babelrc.filepath : undefined, ignore ? ignore.filepath : undefined, config ? config.filepath : undefined, fileHandling, files);
 | 
			
		||||
}
 | 
			
		||||
class PartialConfig {
 | 
			
		||||
  constructor(options, babelrc, ignore, config, fileHandling, files) {
 | 
			
		||||
    this.options = void 0;
 | 
			
		||||
    this.babelrc = void 0;
 | 
			
		||||
    this.babelignore = void 0;
 | 
			
		||||
    this.config = void 0;
 | 
			
		||||
    this.fileHandling = void 0;
 | 
			
		||||
    this.files = void 0;
 | 
			
		||||
    this.options = options;
 | 
			
		||||
    this.babelignore = ignore;
 | 
			
		||||
    this.babelrc = babelrc;
 | 
			
		||||
    this.config = config;
 | 
			
		||||
    this.fileHandling = fileHandling;
 | 
			
		||||
    this.files = files;
 | 
			
		||||
    Object.freeze(this);
 | 
			
		||||
  }
 | 
			
		||||
  hasFilesystemConfig() {
 | 
			
		||||
    return this.babelrc !== undefined || this.config !== undefined;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
Object.freeze(PartialConfig.prototype);
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=partial.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/partial.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/partial.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										38
									
								
								node_modules/@babel/core/lib/config/pattern-to-regex.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								node_modules/@babel/core/lib/config/pattern-to-regex.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.default = pathToPattern;
 | 
			
		||||
function _path() {
 | 
			
		||||
  const data = require("path");
 | 
			
		||||
  _path = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
const sep = `\\${_path().sep}`;
 | 
			
		||||
const endSep = `(?:${sep}|$)`;
 | 
			
		||||
const substitution = `[^${sep}]+`;
 | 
			
		||||
const starPat = `(?:${substitution}${sep})`;
 | 
			
		||||
const starPatLast = `(?:${substitution}${endSep})`;
 | 
			
		||||
const starStarPat = `${starPat}*?`;
 | 
			
		||||
const starStarPatLast = `${starPat}*?${starPatLast}?`;
 | 
			
		||||
function escapeRegExp(string) {
 | 
			
		||||
  return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&");
 | 
			
		||||
}
 | 
			
		||||
function pathToPattern(pattern, dirname) {
 | 
			
		||||
  const parts = _path().resolve(dirname, pattern).split(_path().sep);
 | 
			
		||||
  return new RegExp(["^", ...parts.map((part, i) => {
 | 
			
		||||
    const last = i === parts.length - 1;
 | 
			
		||||
    if (part === "**") return last ? starStarPatLast : starStarPat;
 | 
			
		||||
    if (part === "*") return last ? starPatLast : starPat;
 | 
			
		||||
    if (part.indexOf("*.") === 0) {
 | 
			
		||||
      return substitution + escapeRegExp(part.slice(1)) + (last ? endSep : sep);
 | 
			
		||||
    }
 | 
			
		||||
    return escapeRegExp(part) + (last ? endSep : sep);
 | 
			
		||||
  })].join(""));
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=pattern-to-regex.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/pattern-to-regex.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/pattern-to-regex.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":["_path","data","require","sep","path","endSep","substitution","starPat","starPatLast","starStarPat","starStarPatLast","escapeRegExp","string","replace","pathToPattern","pattern","dirname","parts","resolve","split","RegExp","map","part","i","last","length","indexOf","slice","join"],"sources":["../../src/config/pattern-to-regex.ts"],"sourcesContent":["import path from \"node:path\";\n\nconst sep = `\\\\${path.sep}`;\nconst endSep = `(?:${sep}|$)`;\n\nconst substitution = `[^${sep}]+`;\n\nconst starPat = `(?:${substitution}${sep})`;\nconst starPatLast = `(?:${substitution}${endSep})`;\n\nconst starStarPat = `${starPat}*?`;\nconst starStarPatLast = `${starPat}*?${starPatLast}?`;\n\nfunction escapeRegExp(string: string) {\n  return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\");\n}\n\n/**\n * Implement basic pattern matching that will allow users to do the simple\n * tests with * and **. If users want full complex pattern matching, then can\n * always use regex matching, or function validation.\n */\nexport default function pathToPattern(\n  pattern: string,\n  dirname: string,\n): RegExp {\n  const parts = path.resolve(dirname, pattern).split(path.sep);\n\n  return new RegExp(\n    [\n      \"^\",\n      ...parts.map((part, i) => {\n        const last = i === parts.length - 1;\n\n        // ** matches 0 or more path parts.\n        if (part === \"**\") return last ? starStarPatLast : starStarPat;\n\n        // * matches 1 path part.\n        if (part === \"*\") return last ? starPatLast : starPat;\n\n        // *.ext matches a wildcard with an extension.\n        if (part.indexOf(\"*.\") === 0) {\n          return (\n            substitution + escapeRegExp(part.slice(1)) + (last ? endSep : sep)\n          );\n        }\n\n        // Otherwise match the pattern text.\n        return escapeRegExp(part) + (last ? endSep : sep);\n      }),\n    ].join(\"\"),\n  );\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,MAAME,GAAG,GAAG,KAAKC,MAAGA,CAAC,CAACD,GAAG,EAAE;AAC3B,MAAME,MAAM,GAAG,MAAMF,GAAG,KAAK;AAE7B,MAAMG,YAAY,GAAG,KAAKH,GAAG,IAAI;AAEjC,MAAMI,OAAO,GAAG,MAAMD,YAAY,GAAGH,GAAG,GAAG;AAC3C,MAAMK,WAAW,GAAG,MAAMF,YAAY,GAAGD,MAAM,GAAG;AAElD,MAAMI,WAAW,GAAG,GAAGF,OAAO,IAAI;AAClC,MAAMG,eAAe,GAAG,GAAGH,OAAO,KAAKC,WAAW,GAAG;AAErD,SAASG,YAAYA,CAACC,MAAc,EAAE;EACpC,OAAOA,MAAM,CAACC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACtD;AAOe,SAASC,aAAaA,CACnCC,OAAe,EACfC,OAAe,EACP;EACR,MAAMC,KAAK,GAAGb,MAAGA,CAAC,CAACc,OAAO,CAACF,OAAO,EAAED,OAAO,CAAC,CAACI,KAAK,CAACf,MAAGA,CAAC,CAACD,GAAG,CAAC;EAE5D,OAAO,IAAIiB,MAAM,CACf,CACE,GAAG,EACH,GAAGH,KAAK,CAACI,GAAG,CAAC,CAACC,IAAI,EAAEC,CAAC,KAAK;IACxB,MAAMC,IAAI,GAAGD,CAAC,KAAKN,KAAK,CAACQ,MAAM,GAAG,CAAC;IAGnC,IAAIH,IAAI,KAAK,IAAI,EAAE,OAAOE,IAAI,GAAGd,eAAe,GAAGD,WAAW;IAG9D,IAAIa,IAAI,KAAK,GAAG,EAAE,OAAOE,IAAI,GAAGhB,WAAW,GAAGD,OAAO;IAGrD,IAAIe,IAAI,CAACI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;MAC5B,OACEpB,YAAY,GAAGK,YAAY,CAACW,IAAI,CAACK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAIH,IAAI,GAAGnB,MAAM,GAAGF,GAAG,CAAC;IAEtE;IAGA,OAAOQ,YAAY,CAACW,IAAI,CAAC,IAAIE,IAAI,GAAGnB,MAAM,GAAGF,GAAG,CAAC;EACnD,CAAC,CAAC,CACH,CAACyB,IAAI,CAAC,EAAE,CACX,CAAC;AACH;AAAC","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										33
									
								
								node_modules/@babel/core/lib/config/plugin.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								node_modules/@babel/core/lib/config/plugin.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.default = void 0;
 | 
			
		||||
var _deepArray = require("./helpers/deep-array.js");
 | 
			
		||||
class Plugin {
 | 
			
		||||
  constructor(plugin, options, key, externalDependencies = (0, _deepArray.finalize)([])) {
 | 
			
		||||
    this.key = void 0;
 | 
			
		||||
    this.manipulateOptions = void 0;
 | 
			
		||||
    this.post = void 0;
 | 
			
		||||
    this.pre = void 0;
 | 
			
		||||
    this.visitor = void 0;
 | 
			
		||||
    this.parserOverride = void 0;
 | 
			
		||||
    this.generatorOverride = void 0;
 | 
			
		||||
    this.options = void 0;
 | 
			
		||||
    this.externalDependencies = void 0;
 | 
			
		||||
    this.key = plugin.name || key;
 | 
			
		||||
    this.manipulateOptions = plugin.manipulateOptions;
 | 
			
		||||
    this.post = plugin.post;
 | 
			
		||||
    this.pre = plugin.pre;
 | 
			
		||||
    this.visitor = plugin.visitor || {};
 | 
			
		||||
    this.parserOverride = plugin.parserOverride;
 | 
			
		||||
    this.generatorOverride = plugin.generatorOverride;
 | 
			
		||||
    this.options = options;
 | 
			
		||||
    this.externalDependencies = externalDependencies;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
exports.default = Plugin;
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=plugin.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/plugin.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/plugin.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":["_deepArray","require","Plugin","constructor","plugin","options","key","externalDependencies","finalize","manipulateOptions","post","pre","visitor","parserOverride","generatorOverride","name","exports","default"],"sources":["../../src/config/plugin.ts"],"sourcesContent":["import { finalize } from \"./helpers/deep-array.ts\";\nimport type { ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\nimport type { PluginObject } from \"./validation/plugins.ts\";\n\nexport default class Plugin {\n  key: string | undefined | null;\n  manipulateOptions?: PluginObject[\"manipulateOptions\"];\n  post?: PluginObject[\"post\"];\n  pre?: PluginObject[\"pre\"];\n  visitor: PluginObject[\"visitor\"];\n\n  parserOverride?: PluginObject[\"parserOverride\"];\n  generatorOverride?: PluginObject[\"generatorOverride\"];\n\n  options: object;\n\n  externalDependencies: ReadonlyDeepArray<string>;\n\n  constructor(\n    plugin: PluginObject,\n    options: object,\n    key?: string,\n    externalDependencies: ReadonlyDeepArray<string> = finalize([]),\n  ) {\n    this.key = plugin.name || key;\n\n    this.manipulateOptions = plugin.manipulateOptions;\n    this.post = plugin.post;\n    this.pre = plugin.pre;\n    this.visitor = plugin.visitor || {};\n    this.parserOverride = plugin.parserOverride;\n    this.generatorOverride = plugin.generatorOverride;\n\n    this.options = options;\n    this.externalDependencies = externalDependencies;\n  }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAIe,MAAMC,MAAM,CAAC;EAc1BC,WAAWA,CACTC,MAAoB,EACpBC,OAAe,EACfC,GAAY,EACZC,oBAA+C,GAAG,IAAAC,mBAAQ,EAAC,EAAE,CAAC,EAC9D;IAAA,KAlBFF,GAAG;IAAA,KACHG,iBAAiB;IAAA,KACjBC,IAAI;IAAA,KACJC,GAAG;IAAA,KACHC,OAAO;IAAA,KAEPC,cAAc;IAAA,KACdC,iBAAiB;IAAA,KAEjBT,OAAO;IAAA,KAEPE,oBAAoB;IAQlB,IAAI,CAACD,GAAG,GAAGF,MAAM,CAACW,IAAI,IAAIT,GAAG;IAE7B,IAAI,CAACG,iBAAiB,GAAGL,MAAM,CAACK,iBAAiB;IACjD,IAAI,CAACC,IAAI,GAAGN,MAAM,CAACM,IAAI;IACvB,IAAI,CAACC,GAAG,GAAGP,MAAM,CAACO,GAAG;IACrB,IAAI,CAACC,OAAO,GAAGR,MAAM,CAACQ,OAAO,IAAI,CAAC,CAAC;IACnC,IAAI,CAACC,cAAc,GAAGT,MAAM,CAACS,cAAc;IAC3C,IAAI,CAACC,iBAAiB,GAAGV,MAAM,CAACU,iBAAiB;IAEjD,IAAI,CAACT,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,oBAAoB,GAAGA,oBAAoB;EAClD;AACF;AAACS,OAAA,CAAAC,OAAA,GAAAf,MAAA;AAAA","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										113
									
								
								node_modules/@babel/core/lib/config/printer.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								node_modules/@babel/core/lib/config/printer.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,113 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.ConfigPrinter = exports.ChainFormatter = void 0;
 | 
			
		||||
function _gensync() {
 | 
			
		||||
  const data = require("gensync");
 | 
			
		||||
  _gensync = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
const ChainFormatter = exports.ChainFormatter = {
 | 
			
		||||
  Programmatic: 0,
 | 
			
		||||
  Config: 1
 | 
			
		||||
};
 | 
			
		||||
const Formatter = {
 | 
			
		||||
  title(type, callerName, filepath) {
 | 
			
		||||
    let title = "";
 | 
			
		||||
    if (type === ChainFormatter.Programmatic) {
 | 
			
		||||
      title = "programmatic options";
 | 
			
		||||
      if (callerName) {
 | 
			
		||||
        title += " from " + callerName;
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      title = "config " + filepath;
 | 
			
		||||
    }
 | 
			
		||||
    return title;
 | 
			
		||||
  },
 | 
			
		||||
  loc(index, envName) {
 | 
			
		||||
    let loc = "";
 | 
			
		||||
    if (index != null) {
 | 
			
		||||
      loc += `.overrides[${index}]`;
 | 
			
		||||
    }
 | 
			
		||||
    if (envName != null) {
 | 
			
		||||
      loc += `.env["${envName}"]`;
 | 
			
		||||
    }
 | 
			
		||||
    return loc;
 | 
			
		||||
  },
 | 
			
		||||
  *optionsAndDescriptors(opt) {
 | 
			
		||||
    const content = Object.assign({}, opt.options);
 | 
			
		||||
    delete content.overrides;
 | 
			
		||||
    delete content.env;
 | 
			
		||||
    const pluginDescriptors = [...(yield* opt.plugins())];
 | 
			
		||||
    if (pluginDescriptors.length) {
 | 
			
		||||
      content.plugins = pluginDescriptors.map(d => descriptorToConfig(d));
 | 
			
		||||
    }
 | 
			
		||||
    const presetDescriptors = [...(yield* opt.presets())];
 | 
			
		||||
    if (presetDescriptors.length) {
 | 
			
		||||
      content.presets = [...presetDescriptors].map(d => descriptorToConfig(d));
 | 
			
		||||
    }
 | 
			
		||||
    return JSON.stringify(content, undefined, 2);
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
function descriptorToConfig(d) {
 | 
			
		||||
  var _d$file;
 | 
			
		||||
  let name = (_d$file = d.file) == null ? void 0 : _d$file.request;
 | 
			
		||||
  if (name == null) {
 | 
			
		||||
    if (typeof d.value === "object") {
 | 
			
		||||
      name = d.value;
 | 
			
		||||
    } else if (typeof d.value === "function") {
 | 
			
		||||
      name = `[Function: ${d.value.toString().slice(0, 50)} ... ]`;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (name == null) {
 | 
			
		||||
    name = "[Unknown]";
 | 
			
		||||
  }
 | 
			
		||||
  if (d.options === undefined) {
 | 
			
		||||
    return name;
 | 
			
		||||
  } else if (d.name == null) {
 | 
			
		||||
    return [name, d.options];
 | 
			
		||||
  } else {
 | 
			
		||||
    return [name, d.options, d.name];
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
class ConfigPrinter {
 | 
			
		||||
  constructor() {
 | 
			
		||||
    this._stack = [];
 | 
			
		||||
  }
 | 
			
		||||
  configure(enabled, type, {
 | 
			
		||||
    callerName,
 | 
			
		||||
    filepath
 | 
			
		||||
  }) {
 | 
			
		||||
    if (!enabled) return () => {};
 | 
			
		||||
    return (content, index, envName) => {
 | 
			
		||||
      this._stack.push({
 | 
			
		||||
        type,
 | 
			
		||||
        callerName,
 | 
			
		||||
        filepath,
 | 
			
		||||
        content,
 | 
			
		||||
        index,
 | 
			
		||||
        envName
 | 
			
		||||
      });
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
  static *format(config) {
 | 
			
		||||
    let title = Formatter.title(config.type, config.callerName, config.filepath);
 | 
			
		||||
    const loc = Formatter.loc(config.index, config.envName);
 | 
			
		||||
    if (loc) title += ` ${loc}`;
 | 
			
		||||
    const content = yield* Formatter.optionsAndDescriptors(config.content);
 | 
			
		||||
    return `${title}\n${content}`;
 | 
			
		||||
  }
 | 
			
		||||
  *output() {
 | 
			
		||||
    if (this._stack.length === 0) return "";
 | 
			
		||||
    const configs = yield* _gensync().all(this._stack.map(s => ConfigPrinter.format(s)));
 | 
			
		||||
    return configs.join("\n\n");
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
exports.ConfigPrinter = ConfigPrinter;
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=printer.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/printer.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/printer.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										41
									
								
								node_modules/@babel/core/lib/config/resolve-targets-browser.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								node_modules/@babel/core/lib/config/resolve-targets-browser.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.resolveBrowserslistConfigFile = resolveBrowserslistConfigFile;
 | 
			
		||||
exports.resolveTargets = resolveTargets;
 | 
			
		||||
function _helperCompilationTargets() {
 | 
			
		||||
  const data = require("@babel/helper-compilation-targets");
 | 
			
		||||
  _helperCompilationTargets = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
function resolveBrowserslistConfigFile(browserslistConfigFile, configFilePath) {
 | 
			
		||||
  return undefined;
 | 
			
		||||
}
 | 
			
		||||
function resolveTargets(options, root) {
 | 
			
		||||
  const optTargets = options.targets;
 | 
			
		||||
  let targets;
 | 
			
		||||
  if (typeof optTargets === "string" || Array.isArray(optTargets)) {
 | 
			
		||||
    targets = {
 | 
			
		||||
      browsers: optTargets
 | 
			
		||||
    };
 | 
			
		||||
  } else if (optTargets) {
 | 
			
		||||
    if ("esmodules" in optTargets) {
 | 
			
		||||
      targets = Object.assign({}, optTargets, {
 | 
			
		||||
        esmodules: "intersect"
 | 
			
		||||
      });
 | 
			
		||||
    } else {
 | 
			
		||||
      targets = optTargets;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return (0, _helperCompilationTargets().default)(targets, {
 | 
			
		||||
    ignoreBrowserslistConfig: true,
 | 
			
		||||
    browserslistEnv: options.browserslistEnv
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=resolve-targets-browser.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/resolve-targets-browser.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/resolve-targets-browser.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":["_helperCompilationTargets","data","require","resolveBrowserslistConfigFile","browserslistConfigFile","configFilePath","undefined","resolveTargets","options","root","optTargets","targets","Array","isArray","browsers","Object","assign","esmodules","getTargets","ignoreBrowserslistConfig","browserslistEnv"],"sources":["../../src/config/resolve-targets-browser.ts"],"sourcesContent":["/* c8 ignore start */\n\nimport type { InputOptions } from \"./validation/options.ts\";\nimport getTargets, {\n  type InputTargets,\n} from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nexport function resolveBrowserslistConfigFile(\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  browserslistConfigFile: string,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  configFilePath: string,\n): string | void {\n  return undefined;\n}\n\nexport function resolveTargets(\n  options: InputOptions,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  root: string,\n): Targets {\n  const optTargets = options.targets;\n  let targets: InputTargets;\n\n  if (typeof optTargets === \"string\" || Array.isArray(optTargets)) {\n    targets = { browsers: optTargets };\n  } else if (optTargets) {\n    if (\"esmodules\" in optTargets) {\n      targets = { ...optTargets, esmodules: \"intersect\" };\n    } else {\n      // https://github.com/microsoft/TypeScript/issues/17002\n      targets = optTargets as InputTargets;\n    }\n  }\n\n  return getTargets(targets, {\n    ignoreBrowserslistConfig: true,\n    browserslistEnv: options.browserslistEnv,\n  });\n}\n"],"mappings":";;;;;;;AAGA,SAAAA,0BAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,yBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAMO,SAASE,6BAA6BA,CAE3CC,sBAA8B,EAE9BC,cAAsB,EACP;EACf,OAAOC,SAAS;AAClB;AAEO,SAASC,cAAcA,CAC5BC,OAAqB,EAErBC,IAAY,EACH;EACT,MAAMC,UAAU,GAAGF,OAAO,CAACG,OAAO;EAClC,IAAIA,OAAqB;EAEzB,IAAI,OAAOD,UAAU,KAAK,QAAQ,IAAIE,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,EAAE;IAC/DC,OAAO,GAAG;MAAEG,QAAQ,EAAEJ;IAAW,CAAC;EACpC,CAAC,MAAM,IAAIA,UAAU,EAAE;IACrB,IAAI,WAAW,IAAIA,UAAU,EAAE;MAC7BC,OAAO,GAAAI,MAAA,CAAAC,MAAA,KAAQN,UAAU;QAAEO,SAAS,EAAE;MAAW,EAAE;IACrD,CAAC,MAAM;MAELN,OAAO,GAAGD,UAA0B;IACtC;EACF;EAEA,OAAO,IAAAQ,mCAAU,EAACP,OAAO,EAAE;IACzBQ,wBAAwB,EAAE,IAAI;IAC9BC,eAAe,EAAEZ,OAAO,CAACY;EAC3B,CAAC,CAAC;AACJ;AAAC","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										61
									
								
								node_modules/@babel/core/lib/config/resolve-targets.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								node_modules/@babel/core/lib/config/resolve-targets.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.resolveBrowserslistConfigFile = resolveBrowserslistConfigFile;
 | 
			
		||||
exports.resolveTargets = resolveTargets;
 | 
			
		||||
function _path() {
 | 
			
		||||
  const data = require("path");
 | 
			
		||||
  _path = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
function _helperCompilationTargets() {
 | 
			
		||||
  const data = require("@babel/helper-compilation-targets");
 | 
			
		||||
  _helperCompilationTargets = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
({});
 | 
			
		||||
function resolveBrowserslistConfigFile(browserslistConfigFile, configFileDir) {
 | 
			
		||||
  return _path().resolve(configFileDir, browserslistConfigFile);
 | 
			
		||||
}
 | 
			
		||||
function resolveTargets(options, root) {
 | 
			
		||||
  const optTargets = options.targets;
 | 
			
		||||
  let targets;
 | 
			
		||||
  if (typeof optTargets === "string" || Array.isArray(optTargets)) {
 | 
			
		||||
    targets = {
 | 
			
		||||
      browsers: optTargets
 | 
			
		||||
    };
 | 
			
		||||
  } else if (optTargets) {
 | 
			
		||||
    if ("esmodules" in optTargets) {
 | 
			
		||||
      targets = Object.assign({}, optTargets, {
 | 
			
		||||
        esmodules: "intersect"
 | 
			
		||||
      });
 | 
			
		||||
    } else {
 | 
			
		||||
      targets = optTargets;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  const {
 | 
			
		||||
    browserslistConfigFile
 | 
			
		||||
  } = options;
 | 
			
		||||
  let configFile;
 | 
			
		||||
  let ignoreBrowserslistConfig = false;
 | 
			
		||||
  if (typeof browserslistConfigFile === "string") {
 | 
			
		||||
    configFile = browserslistConfigFile;
 | 
			
		||||
  } else {
 | 
			
		||||
    ignoreBrowserslistConfig = browserslistConfigFile === false;
 | 
			
		||||
  }
 | 
			
		||||
  return (0, _helperCompilationTargets().default)(targets, {
 | 
			
		||||
    ignoreBrowserslistConfig,
 | 
			
		||||
    configFile,
 | 
			
		||||
    configPath: root,
 | 
			
		||||
    browserslistEnv: options.browserslistEnv
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=resolve-targets.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/resolve-targets.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/resolve-targets.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":["_path","data","require","_helperCompilationTargets","resolveBrowserslistConfigFile","browserslistConfigFile","configFileDir","path","resolve","resolveTargets","options","root","optTargets","targets","Array","isArray","browsers","Object","assign","esmodules","configFile","ignoreBrowserslistConfig","getTargets","configPath","browserslistEnv"],"sources":["../../src/config/resolve-targets.ts"],"sourcesContent":["type browserType = typeof import(\"./resolve-targets-browser\");\ntype nodeType = typeof import(\"./resolve-targets\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of index-browser, since this file may be replaced at bundle time with index-browser.\n({}) as any as browserType as nodeType;\n\nimport type { InputOptions } from \"./validation/options.ts\";\nimport path from \"node:path\";\nimport getTargets, {\n  type InputTargets,\n} from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nexport function resolveBrowserslistConfigFile(\n  browserslistConfigFile: string,\n  configFileDir: string,\n): string | undefined {\n  return path.resolve(configFileDir, browserslistConfigFile);\n}\n\nexport function resolveTargets(options: InputOptions, root: string): Targets {\n  const optTargets = options.targets;\n  let targets: InputTargets;\n\n  if (typeof optTargets === \"string\" || Array.isArray(optTargets)) {\n    targets = { browsers: optTargets };\n  } else if (optTargets) {\n    if (\"esmodules\" in optTargets) {\n      targets = { ...optTargets, esmodules: \"intersect\" };\n    } else {\n      // https://github.com/microsoft/TypeScript/issues/17002\n      targets = optTargets as InputTargets;\n    }\n  }\n\n  const { browserslistConfigFile } = options;\n  let configFile;\n  let ignoreBrowserslistConfig = false;\n  if (typeof browserslistConfigFile === \"string\") {\n    configFile = browserslistConfigFile;\n  } else {\n    ignoreBrowserslistConfig = browserslistConfigFile === false;\n  }\n\n  return getTargets(targets, {\n    ignoreBrowserslistConfig,\n    configFile,\n    configPath: root,\n    browserslistEnv: options.browserslistEnv,\n  });\n}\n"],"mappings":";;;;;;;AAQA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,0BAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,yBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAJA,CAAC,CAAC,CAAC;AAUI,SAASG,6BAA6BA,CAC3CC,sBAA8B,EAC9BC,aAAqB,EACD;EACpB,OAAOC,MAAGA,CAAC,CAACC,OAAO,CAACF,aAAa,EAAED,sBAAsB,CAAC;AAC5D;AAEO,SAASI,cAAcA,CAACC,OAAqB,EAAEC,IAAY,EAAW;EAC3E,MAAMC,UAAU,GAAGF,OAAO,CAACG,OAAO;EAClC,IAAIA,OAAqB;EAEzB,IAAI,OAAOD,UAAU,KAAK,QAAQ,IAAIE,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,EAAE;IAC/DC,OAAO,GAAG;MAAEG,QAAQ,EAAEJ;IAAW,CAAC;EACpC,CAAC,MAAM,IAAIA,UAAU,EAAE;IACrB,IAAI,WAAW,IAAIA,UAAU,EAAE;MAC7BC,OAAO,GAAAI,MAAA,CAAAC,MAAA,KAAQN,UAAU;QAAEO,SAAS,EAAE;MAAW,EAAE;IACrD,CAAC,MAAM;MAELN,OAAO,GAAGD,UAA0B;IACtC;EACF;EAEA,MAAM;IAAEP;EAAuB,CAAC,GAAGK,OAAO;EAC1C,IAAIU,UAAU;EACd,IAAIC,wBAAwB,GAAG,KAAK;EACpC,IAAI,OAAOhB,sBAAsB,KAAK,QAAQ,EAAE;IAC9Ce,UAAU,GAAGf,sBAAsB;EACrC,CAAC,MAAM;IACLgB,wBAAwB,GAAGhB,sBAAsB,KAAK,KAAK;EAC7D;EAEA,OAAO,IAAAiB,mCAAU,EAACT,OAAO,EAAE;IACzBQ,wBAAwB;IACxBD,UAAU;IACVG,UAAU,EAAEZ,IAAI;IAChBa,eAAe,EAAEd,OAAO,CAACc;EAC3B,CAAC,CAAC;AACJ;AAAC","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										31
									
								
								node_modules/@babel/core/lib/config/util.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								node_modules/@babel/core/lib/config/util.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.isIterableIterator = isIterableIterator;
 | 
			
		||||
exports.mergeOptions = mergeOptions;
 | 
			
		||||
function mergeOptions(target, source) {
 | 
			
		||||
  for (const k of Object.keys(source)) {
 | 
			
		||||
    if ((k === "parserOpts" || k === "generatorOpts" || k === "assumptions") && source[k]) {
 | 
			
		||||
      const parserOpts = source[k];
 | 
			
		||||
      const targetObj = target[k] || (target[k] = {});
 | 
			
		||||
      mergeDefaultFields(targetObj, parserOpts);
 | 
			
		||||
    } else {
 | 
			
		||||
      const val = source[k];
 | 
			
		||||
      if (val !== undefined) target[k] = val;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
function mergeDefaultFields(target, source) {
 | 
			
		||||
  for (const k of Object.keys(source)) {
 | 
			
		||||
    const val = source[k];
 | 
			
		||||
    if (val !== undefined) target[k] = val;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
function isIterableIterator(value) {
 | 
			
		||||
  return !!value && typeof value.next === "function" && typeof value[Symbol.iterator] === "function";
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=util.js.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/@babel/core/lib/config/util.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@babel/core/lib/config/util.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"names":["mergeOptions","target","source","k","Object","keys","parserOpts","targetObj","mergeDefaultFields","val","undefined","isIterableIterator","value","next","Symbol","iterator"],"sources":["../../src/config/util.ts"],"sourcesContent":["import type { InputOptions, ResolvedOptions } from \"./validation/options.ts\";\n\nexport function mergeOptions(\n  target: InputOptions | ResolvedOptions,\n  source: InputOptions,\n): void {\n  for (const k of Object.keys(source)) {\n    if (\n      (k === \"parserOpts\" || k === \"generatorOpts\" || k === \"assumptions\") &&\n      source[k]\n    ) {\n      const parserOpts = source[k];\n      const targetObj = target[k] || (target[k] = {});\n      mergeDefaultFields(targetObj, parserOpts);\n    } else {\n      //@ts-expect-error k must index source\n      const val = source[k];\n      //@ts-expect-error assigning source to target\n      if (val !== undefined) target[k] = val as any;\n    }\n  }\n}\n\nfunction mergeDefaultFields<T extends object>(target: T, source: T) {\n  for (const k of Object.keys(source) as (keyof T)[]) {\n    const val = source[k];\n    if (val !== undefined) target[k] = val;\n  }\n}\n\nexport function isIterableIterator(value: any): value is IterableIterator<any> {\n  return (\n    !!value &&\n    typeof value.next === \"function\" &&\n    typeof value[Symbol.iterator] === \"function\"\n  );\n}\n"],"mappings":";;;;;;;AAEO,SAASA,YAAYA,CAC1BC,MAAsC,EACtCC,MAAoB,EACd;EACN,KAAK,MAAMC,CAAC,IAAIC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,EAAE;IACnC,IACE,CAACC,CAAC,KAAK,YAAY,IAAIA,CAAC,KAAK,eAAe,IAAIA,CAAC,KAAK,aAAa,KACnED,MAAM,CAACC,CAAC,CAAC,EACT;MACA,MAAMG,UAAU,GAAGJ,MAAM,CAACC,CAAC,CAAC;MAC5B,MAAMI,SAAS,GAAGN,MAAM,CAACE,CAAC,CAAC,KAAKF,MAAM,CAACE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;MAC/CK,kBAAkB,CAACD,SAAS,EAAED,UAAU,CAAC;IAC3C,CAAC,MAAM;MAEL,MAAMG,GAAG,GAAGP,MAAM,CAACC,CAAC,CAAC;MAErB,IAAIM,GAAG,KAAKC,SAAS,EAAET,MAAM,CAACE,CAAC,CAAC,GAAGM,GAAU;IAC/C;EACF;AACF;AAEA,SAASD,kBAAkBA,CAAmBP,MAAS,EAAEC,MAAS,EAAE;EAClE,KAAK,MAAMC,CAAC,IAAIC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,EAAiB;IAClD,MAAMO,GAAG,GAAGP,MAAM,CAACC,CAAC,CAAC;IACrB,IAAIM,GAAG,KAAKC,SAAS,EAAET,MAAM,CAACE,CAAC,CAAC,GAAGM,GAAG;EACxC;AACF;AAEO,SAASE,kBAAkBA,CAACC,KAAU,EAAkC;EAC7E,OACE,CAAC,CAACA,KAAK,IACP,OAAOA,KAAK,CAACC,IAAI,KAAK,UAAU,IAChC,OAAOD,KAAK,CAACE,MAAM,CAACC,QAAQ,CAAC,KAAK,UAAU;AAEhD;AAAC","ignoreList":[]}
 | 
			
		||||
							
								
								
									
										277
									
								
								node_modules/@babel/core/lib/config/validation/option-assertions.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										277
									
								
								node_modules/@babel/core/lib/config/validation/option-assertions.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,277 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, "__esModule", {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.access = access;
 | 
			
		||||
exports.assertArray = assertArray;
 | 
			
		||||
exports.assertAssumptions = assertAssumptions;
 | 
			
		||||
exports.assertBabelrcSearch = assertBabelrcSearch;
 | 
			
		||||
exports.assertBoolean = assertBoolean;
 | 
			
		||||
exports.assertCallerMetadata = assertCallerMetadata;
 | 
			
		||||
exports.assertCompact = assertCompact;
 | 
			
		||||
exports.assertConfigApplicableTest = assertConfigApplicableTest;
 | 
			
		||||
exports.assertConfigFileSearch = assertConfigFileSearch;
 | 
			
		||||
exports.assertFunction = assertFunction;
 | 
			
		||||
exports.assertIgnoreList = assertIgnoreList;
 | 
			
		||||
exports.assertInputSourceMap = assertInputSourceMap;
 | 
			
		||||
exports.assertObject = assertObject;
 | 
			
		||||
exports.assertPluginList = assertPluginList;
 | 
			
		||||
exports.assertRootMode = assertRootMode;
 | 
			
		||||
exports.assertSourceMaps = assertSourceMaps;
 | 
			
		||||
exports.assertSourceType = assertSourceType;
 | 
			
		||||
exports.assertString = assertString;
 | 
			
		||||
exports.assertTargets = assertTargets;
 | 
			
		||||
exports.msg = msg;
 | 
			
		||||
function _helperCompilationTargets() {
 | 
			
		||||
  const data = require("@babel/helper-compilation-targets");
 | 
			
		||||
  _helperCompilationTargets = function () {
 | 
			
		||||
    return data;
 | 
			
		||||
  };
 | 
			
		||||
  return data;
 | 
			
		||||
}
 | 
			
		||||
var _options = require("./options.js");
 | 
			
		||||
function msg(loc) {
 | 
			
		||||
  switch (loc.type) {
 | 
			
		||||
    case "root":
 | 
			
		||||
      return ``;
 | 
			
		||||
    case "env":
 | 
			
		||||
      return `${msg(loc.parent)}.env["${loc.name}"]`;
 | 
			
		||||
    case "overrides":
 | 
			
		||||
      return `${msg(loc.parent)}.overrides[${loc.index}]`;
 | 
			
		||||
    case "option":
 | 
			
		||||
      return `${msg(loc.parent)}.${loc.name}`;
 | 
			
		||||
    case "access":
 | 
			
		||||
      return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`;
 | 
			
		||||
    default:
 | 
			
		||||
      throw new Error(`Assertion failure: Unknown type ${loc.type}`);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
function access(loc, name) {
 | 
			
		||||
  return {
 | 
			
		||||
    type: "access",
 | 
			
		||||
    name,
 | 
			
		||||
    parent: loc
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
function assertRootMode(loc, value) {
 | 
			
		||||
  if (value !== undefined && value !== "root" && value !== "upward" && value !== "upward-optional") {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be a "root", "upward", "upward-optional" or undefined`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertSourceMaps(loc, value) {
 | 
			
		||||
  if (value !== undefined && typeof value !== "boolean" && value !== "inline" && value !== "both") {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be a boolean, "inline", "both", or undefined`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertCompact(loc, value) {
 | 
			
		||||
  if (value !== undefined && typeof value !== "boolean" && value !== "auto") {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be a boolean, "auto", or undefined`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertSourceType(loc, value) {
 | 
			
		||||
  if (value !== undefined && value !== "module" && value !== "commonjs" && value !== "script" && value !== "unambiguous") {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be "module", "commonjs", "script", "unambiguous", or undefined`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertCallerMetadata(loc, value) {
 | 
			
		||||
  const obj = assertObject(loc, value);
 | 
			
		||||
  if (obj) {
 | 
			
		||||
    if (typeof obj.name !== "string") {
 | 
			
		||||
      throw new Error(`${msg(loc)} set but does not contain "name" property string`);
 | 
			
		||||
    }
 | 
			
		||||
    for (const prop of Object.keys(obj)) {
 | 
			
		||||
      const propLoc = access(loc, prop);
 | 
			
		||||
      const value = obj[prop];
 | 
			
		||||
      if (value != null && typeof value !== "boolean" && typeof value !== "string" && typeof value !== "number") {
 | 
			
		||||
        throw new Error(`${msg(propLoc)} must be null, undefined, a boolean, a string, or a number.`);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertInputSourceMap(loc, value) {
 | 
			
		||||
  if (value !== undefined && typeof value !== "boolean" && (typeof value !== "object" || !value)) {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be a boolean, object, or undefined`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertString(loc, value) {
 | 
			
		||||
  if (value !== undefined && typeof value !== "string") {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be a string, or undefined`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertFunction(loc, value) {
 | 
			
		||||
  if (value !== undefined && typeof value !== "function") {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be a function, or undefined`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertBoolean(loc, value) {
 | 
			
		||||
  if (value !== undefined && typeof value !== "boolean") {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be a boolean, or undefined`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertObject(loc, value) {
 | 
			
		||||
  if (value !== undefined && (typeof value !== "object" || Array.isArray(value) || !value)) {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be an object, or undefined`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertArray(loc, value) {
 | 
			
		||||
  if (value != null && !Array.isArray(value)) {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be an array, or undefined`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertIgnoreList(loc, value) {
 | 
			
		||||
  const arr = assertArray(loc, value);
 | 
			
		||||
  arr == null || arr.forEach((item, i) => assertIgnoreItem(access(loc, i), item));
 | 
			
		||||
  return arr;
 | 
			
		||||
}
 | 
			
		||||
function assertIgnoreItem(loc, value) {
 | 
			
		||||
  if (typeof value !== "string" && typeof value !== "function" && !(value instanceof RegExp)) {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be an array of string/Function/RegExp values, or undefined`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertConfigApplicableTest(loc, value) {
 | 
			
		||||
  if (value === undefined) {
 | 
			
		||||
    return value;
 | 
			
		||||
  }
 | 
			
		||||
  if (Array.isArray(value)) {
 | 
			
		||||
    value.forEach((item, i) => {
 | 
			
		||||
      if (!checkValidTest(item)) {
 | 
			
		||||
        throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`);
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  } else if (!checkValidTest(value)) {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be a string/Function/RegExp, or an array of those`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function checkValidTest(value) {
 | 
			
		||||
  return typeof value === "string" || typeof value === "function" || value instanceof RegExp;
 | 
			
		||||
}
 | 
			
		||||
function assertConfigFileSearch(loc, value) {
 | 
			
		||||
  if (value !== undefined && typeof value !== "boolean" && typeof value !== "string") {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be a undefined, a boolean, a string, ` + `got ${JSON.stringify(value)}`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertBabelrcSearch(loc, value) {
 | 
			
		||||
  if (value === undefined || typeof value === "boolean") {
 | 
			
		||||
    return value;
 | 
			
		||||
  }
 | 
			
		||||
  if (Array.isArray(value)) {
 | 
			
		||||
    value.forEach((item, i) => {
 | 
			
		||||
      if (!checkValidTest(item)) {
 | 
			
		||||
        throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`);
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  } else if (!checkValidTest(value)) {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` + `or an array of those, got ${JSON.stringify(value)}`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertPluginList(loc, value) {
 | 
			
		||||
  const arr = assertArray(loc, value);
 | 
			
		||||
  if (arr) {
 | 
			
		||||
    arr.forEach((item, i) => assertPluginItem(access(loc, i), item));
 | 
			
		||||
  }
 | 
			
		||||
  return arr;
 | 
			
		||||
}
 | 
			
		||||
function assertPluginItem(loc, value) {
 | 
			
		||||
  if (Array.isArray(value)) {
 | 
			
		||||
    if (value.length === 0) {
 | 
			
		||||
      throw new Error(`${msg(loc)} must include an object`);
 | 
			
		||||
    }
 | 
			
		||||
    if (value.length > 3) {
 | 
			
		||||
      throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`);
 | 
			
		||||
    }
 | 
			
		||||
    assertPluginTarget(access(loc, 0), value[0]);
 | 
			
		||||
    if (value.length > 1) {
 | 
			
		||||
      const opts = value[1];
 | 
			
		||||
      if (opts !== undefined && opts !== false && (typeof opts !== "object" || Array.isArray(opts) || opts === null)) {
 | 
			
		||||
        throw new Error(`${msg(access(loc, 1))} must be an object, false, or undefined`);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (value.length === 3) {
 | 
			
		||||
      const name = value[2];
 | 
			
		||||
      if (name !== undefined && typeof name !== "string") {
 | 
			
		||||
        throw new Error(`${msg(access(loc, 2))} must be a string, or undefined`);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  } else {
 | 
			
		||||
    assertPluginTarget(loc, value);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertPluginTarget(loc, value) {
 | 
			
		||||
  if ((typeof value !== "object" || !value) && typeof value !== "string" && typeof value !== "function") {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be a string, object, function`);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertTargets(loc, value) {
 | 
			
		||||
  if ((0, _helperCompilationTargets().isBrowsersQueryValid)(value)) return value;
 | 
			
		||||
  if (typeof value !== "object" || !value || Array.isArray(value)) {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be a string, an array of strings or an object`);
 | 
			
		||||
  }
 | 
			
		||||
  const browsersLoc = access(loc, "browsers");
 | 
			
		||||
  const esmodulesLoc = access(loc, "esmodules");
 | 
			
		||||
  assertBrowsersList(browsersLoc, value.browsers);
 | 
			
		||||
  assertBoolean(esmodulesLoc, value.esmodules);
 | 
			
		||||
  for (const key of Object.keys(value)) {
 | 
			
		||||
    const val = value[key];
 | 
			
		||||
    const subLoc = access(loc, key);
 | 
			
		||||
    if (key === "esmodules") assertBoolean(subLoc, val);else if (key === "browsers") assertBrowsersList(subLoc, val);else if (!hasOwnProperty.call(_helperCompilationTargets().TargetNames, key)) {
 | 
			
		||||
      const validTargets = Object.keys(_helperCompilationTargets().TargetNames).join(", ");
 | 
			
		||||
      throw new Error(`${msg(subLoc)} is not a valid target. Supported targets are ${validTargets}`);
 | 
			
		||||
    } else assertBrowserVersion(subLoc, val);
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
function assertBrowsersList(loc, value) {
 | 
			
		||||
  if (value !== undefined && !(0, _helperCompilationTargets().isBrowsersQueryValid)(value)) {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be undefined, a string or an array of strings`);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
function assertBrowserVersion(loc, value) {
 | 
			
		||||
  if (typeof value === "number" && Math.round(value) === value) return;
 | 
			
		||||
  if (typeof value === "string") return;
 | 
			
		||||
  throw new Error(`${msg(loc)} must be a string or an integer number`);
 | 
			
		||||
}
 | 
			
		||||
function assertAssumptions(loc, value) {
 | 
			
		||||
  if (value === undefined) return;
 | 
			
		||||
  if (typeof value !== "object" || value === null) {
 | 
			
		||||
    throw new Error(`${msg(loc)} must be an object or undefined.`);
 | 
			
		||||
  }
 | 
			
		||||
  let root = loc;
 | 
			
		||||
  do {
 | 
			
		||||
    root = root.parent;
 | 
			
		||||
  } while (root.type !== "root");
 | 
			
		||||
  const inPreset = root.source === "preset";
 | 
			
		||||
  for (const name of Object.keys(value)) {
 | 
			
		||||
    const subLoc = access(loc, name);
 | 
			
		||||
    if (!_options.assumptionsNames.has(name)) {
 | 
			
		||||
      throw new Error(`${msg(subLoc)} is not a supported assumption.`);
 | 
			
		||||
    }
 | 
			
		||||
    if (typeof value[name] !== "boolean") {
 | 
			
		||||
      throw new Error(`${msg(subLoc)} must be a boolean.`);
 | 
			
		||||
    }
 | 
			
		||||
    if (inPreset && value[name] === false) {
 | 
			
		||||
      throw new Error(`${msg(subLoc)} cannot be set to 'false' inside presets.`);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
0 && 0;
 | 
			
		||||
 | 
			
		||||
//# sourceMappingURL=option-assertions.js.map
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user