From e6da99d08c32d8176040713c8bb4f7033373ec01 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Sat, 24 Apr 2021 19:07:04 -0300 Subject: [PATCH 001/313] adds development warning --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b76542b..155a7e8 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

-# proxbox +# proxbox (In Development!) Netbox plugin which integrates Proxmox and Netbox using proxmoxer and pynetbox. It is currently able to get the following information from Proxmox: From e86d9d9006fea249925933af83c33da8d73b529d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volker=20von=20Hoe=C3=9Flin?= Date: Tue, 21 Dec 2021 09:41:49 +0100 Subject: [PATCH 002/313] fix template path for netbox 3.x --- netbox_proxbox/templates/netbox_proxbox/proxmox_vm.html | 4 ++-- .../templates/netbox_proxbox/proxmox_vm_delete.html | 4 ++-- netbox_proxbox/templates/netbox_proxbox/proxmox_vm_edit.html | 4 ++-- .../templates/netbox_proxbox/proxmox_vm_full_update.html | 4 ++-- netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm.html index d4b5808..f567182 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm.html @@ -1,5 +1,5 @@ -{% extends 'base.html' %} +{% extends 'base/layout.html' %} {% load helpers %} @@ -99,4 +99,4 @@

{% block title %}{{ proxmoxvm }}{% endblock %}

-{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_delete.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_delete.html index dd446e5..fd45d93 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_delete.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_delete.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} +{% extends 'base/layout.html' %} {% load form_helpers %} {% block content %} @@ -19,4 +19,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_edit.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_edit.html index e18472f..c7b12a2 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_edit.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_edit.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} +{% extends 'base/layout.html' %} {% block content %}
@@ -67,4 +67,4 @@

-{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 5ef25ca..e8be638 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -1,5 +1,5 @@ \ No newline at end of file +--> diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html index e59a942..816ac4d 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html @@ -1,4 +1,4 @@ -{% extends 'base.html' %} +{% extends 'base/layout.html' %} {% load render_table from django_tables2 %} {% block content %} @@ -84,4 +84,4 @@

{% block title %}All Proxmox Virtual Machines (in Development, Wait!){% endb -{% endblock %} \ No newline at end of file +{% endblock %} From 34d723198c374bf59d0a1f484a38479297b451d2 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Tue, 15 Feb 2022 20:45:04 -0300 Subject: [PATCH 003/313] correct mispelling word --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 82c60a1..c3c77c4 100755 --- a/README.md +++ b/README.md @@ -260,7 +260,7 @@ Issues and pull requests are welcomed. ## 6. Roadmap - Start using custom models to optimize the use of the Plugin and stop using 'Custom Fields' -- Automatically remove Nodes on Netbox when removed on Promox (as it already happens with Virutal Machines and Containers) +- Automatically remove Nodes on Netbox when removed on Promox (as it already happens with Virtual Machines and Containers) - Add individual update of VM/CT's and Nodes (currently is only possible to update all at once) - Add periodic update of the whole environment so that the user does not need to manually click the update button. - Create virtual machines and containers directly on Netbox, having no need to access Proxmox. From b3eb6b93bf98d4a7db33db54cf18eec10782d666 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 19 Feb 2022 16:26:23 +0000 Subject: [PATCH 004/313] temporary disables Netbox SSL verification --- netbox_proxbox/proxbox_api/plugins_config.py | 38 +++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/netbox_proxbox/proxbox_api/plugins_config.py b/netbox_proxbox/proxbox_api/plugins_config.py index a9a580c..cef017e 100755 --- a/netbox_proxbox/proxbox_api/plugins_config.py +++ b/netbox_proxbox/proxbox_api/plugins_config.py @@ -3,6 +3,7 @@ # Netbox import pynetbox +import requests # Default Plugins settings from netbox_proxbox import ProxboxConfig @@ -124,7 +125,7 @@ verify_ssl=PROXMOX_SSL ) except: - print('Error trying to initialize Proxmox Session using TOKEN provided') + raise RuntimeError(f'Error trying to initialize Proxmox Session using TOKEN (token_name: {token_name} and token_value: {token_value} provided') # If token not provided, start session using user and passwd else: @@ -137,23 +138,26 @@ verify_ssl=PROXMOX_SSL ) except: - print('Error trying to initialize Proxmox Session using USER and PASSWORD') + raise RuntimeError(f'Error trying to initialize Proxmox Session using USER {user} and PASSWORD') # # NETBOX SESSION # -if NETBOX_SSL == False: - try: - NETBOX = 'http://{}:{}'.format(NETBOX, NETBOX_PORT) - # Inicia sessão com NETBOX - NETBOX_SESSION = pynetbox.api( - NETBOX, - token=NETBOX_TOKEN - ) - except: - print('Error trying to initialize Netbox Session using TOKEN provided') -elif NETBOX_SSL == True: - print("Netbox using SSL not developed yet, try using HTTP without SSL.") - -else: - print('Unexpected Error ocurred') \ No newline at end of file +# TODO: CREATES SSL VERIFICATION - Issue #32 +try: + # CHANGE SSL VERIFICATION TO FALSE + session = requests.Session() + session.verify = False + + NETBOX = 'http://{}:{}'.format(NETBOX, NETBOX_PORT) + + # Start NETBOX session + NETBOX_SESSION = pynetbox.api( + NETBOX, + token=NETBOX_TOKEN + ) + # DISABLES SSL VERIFICATION + NETBOX_SESSION.http_session = session + +except: + raise RuntimeError(f"Error trying to initialize Netbox Session using TOKEN {NETBOX_TOKEN} provided.") \ No newline at end of file From 500fc161c20044484f1345ff3ca26d08ac0c4fa1 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Sat, 19 Feb 2022 17:33:48 +0000 Subject: [PATCH 005/313] fix variable names --- netbox_proxbox/proxbox_api/plugins_config.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/netbox_proxbox/proxbox_api/plugins_config.py b/netbox_proxbox/proxbox_api/plugins_config.py index cef017e..91dc122 100755 --- a/netbox_proxbox/proxbox_api/plugins_config.py +++ b/netbox_proxbox/proxbox_api/plugins_config.py @@ -125,7 +125,7 @@ verify_ssl=PROXMOX_SSL ) except: - raise RuntimeError(f'Error trying to initialize Proxmox Session using TOKEN (token_name: {token_name} and token_value: {token_value} provided') + raise RuntimeError(f'Error trying to initialize Proxmox Session using TOKEN (token_name: {PROXMOX_TOKEN_NAME} and token_value: {PROXMOX_TOKEN_VALUE} provided') # If token not provided, start session using user and passwd else: @@ -138,7 +138,7 @@ verify_ssl=PROXMOX_SSL ) except: - raise RuntimeError(f'Error trying to initialize Proxmox Session using USER {user} and PASSWORD') + raise RuntimeError(f'Error trying to initialize Proxmox Session using USER {PROXMOX_USER} and PASSWORD') # # NETBOX SESSION From 48031a49bfa777079d8b47e49396bc0d889f5234 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Sat, 19 Feb 2022 20:01:45 +0000 Subject: [PATCH 006/313] Created ProxmoxFullUpdate view for /proxbox/full_update, also a basic template to render update info --- .../proxmox_vm_full_update.html | 75 ++++++++++++++++++- netbox_proxbox/urls.py | 19 +---- netbox_proxbox/views.py | 25 +++++++ 3 files changed, 98 insertions(+), 21 deletions(-) diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index e8be638..45a45d2 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -1,4 +1,4 @@ - + diff --git a/netbox_proxbox/urls.py b/netbox_proxbox/urls.py index 4cffa17..a420ace 100755 --- a/netbox_proxbox/urls.py +++ b/netbox_proxbox/urls.py @@ -8,27 +8,12 @@ ProxmoxVMEditView, ProxmoxVMListView, ProxmoxVMView, + ProxmoxFullUpdate, ) from netbox_proxbox import proxbox_api import json -# This function is located on the wrong place -# Lately, it will have it's own template to display full update result -def full_update_view(request): - update_all_result = proxbox_api.update.all(remove_unused = True) - update_all_json = json.dumps(update_all_result, indent = 4) - - ''' - remove_all_result = proxbox_api.remove.all() - remove_all_json = json.dumps(remove_all_result, indent= 4) - ''' - - # html = "

Update all Proxmox information

{}

Remove all useless information (like deleted VMs)

{}".format(update_all_json, remove_all_json) - html = "

Sync Netbox information based on Proxmox, updating and removing data.

{}".format(update_all_json) - return HttpResponse(html) - - urlpatterns = [ path("", ProxmoxVMListView.as_view(), name="proxmoxvm_list"), # = plugins/netbox_proxmoxvm/ | example: plugins/netbox_proxmoxvm/1/ @@ -41,5 +26,5 @@ def full_update_view(request): # Proxbox API full update #path("full_update/", ProxmoxVMFullUpdate.as_view(), name="proxmoxvm_full_update") - path("full_update/", full_update_view, name="proxmoxvm_full_update") + path("full_update/", ProxmoxFullUpdate.as_view(), name="proxmoxvm_full_update") ] diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index dac2532..6aec2b6 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -15,6 +15,31 @@ from .models import ProxmoxVM from .tables import ProxmoxVMTable +from netbox_proxbox import proxbox_api +import json + +class ProxmoxFullUpdate(PermissionRequiredMixin, View): + """Full Update of Proxmox information on Netbox.""" + + # Define permission + permission_required = "netbox_proxbox.view_proxmoxvm" + + # service incoming GET HTTP requests + # 'pk' value is passed to get() via URL defined in urls.py + def get(self, request): + """Get request.""" + + update_all_result = proxbox_api.update.all(remove_unused = True) + update_all_json = json.dumps(update_all_result, indent = 4) + + # render() renders provided template and uses it to create a well-formed web response + return render( + request, + "netbox_proxbox/proxmox_vm_full_update.html", + { + "proxmox": update_all_result, + }, + ) class ProxmoxVMView(PermissionRequiredMixin, View): """Display Virtual Machine details""" From 430a986590d2cc1bf7af93bff363ca0634b07637 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Wed, 23 Feb 2022 19:51:35 +0000 Subject: [PATCH 007/313] creates proxbox custom layout template that allows custom footer in plugin --- netbox_proxbox/settings.py | 123 ++++ .../netbox_proxbox/proxbox_layout.html | 199 ++++++ .../proxmox_vm_full_update.html | 45 +- .../netbox_proxbox/proxmox_vm_list.html | 132 ++-- settings.py | 629 ++++++++++++++++++ 5 files changed, 1030 insertions(+), 98 deletions(-) create mode 100644 netbox_proxbox/settings.py create mode 100644 netbox_proxbox/templates/netbox_proxbox/proxbox_layout.html create mode 100644 settings.py diff --git a/netbox_proxbox/settings.py b/netbox_proxbox/settings.py new file mode 100644 index 0000000..d267a90 --- /dev/null +++ b/netbox_proxbox/settings.py @@ -0,0 +1,123 @@ +""" +Django settings for TEST project. + +Generated by 'django-admin startproject' using Django 4.0.2. + +For more information on this file, see +https://docs.djangoproject.com/en/4.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/4.0/ref/settings/ +""" + +from pathlib import Path + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-insecure-hg(t-yxi1(mmcb@=@^a(#8yzs@yovl^j(jyx=b2ui$9!^=f@!b' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'TEST.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'TEST.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/4.0/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/4.0/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/4.0/howto/static-files/ + +STATIC_URL = 'static/' + +# Default primary key field type +# https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' diff --git a/netbox_proxbox/templates/netbox_proxbox/proxbox_layout.html b/netbox_proxbox/templates/netbox_proxbox/proxbox_layout.html new file mode 100644 index 0000000..a33b526 --- /dev/null +++ b/netbox_proxbox/templates/netbox_proxbox/proxbox_layout.html @@ -0,0 +1,199 @@ +{# Base layout for the core NetBox UI w/navbar and page content #} +{% extends 'base/base.html' %} +{% load helpers %} +{% load search %} +{% load static %} + +{% block layout %} + +
+
+ {# Sidebar #} + {% include 'base/sidenav.html' %} + + {# Body #} +
+ + {# Netbox Logo, only visible when printing #} +
+ NetBox logo +
+ + {# Top bar #} + + + {% if config.BANNER_TOP %} +
+ {{ config.BANNER_TOP|safe }} +
+ {% endif %} + + {% if config.MAINTENANCE_MODE %} + + {% endif %} + + {# Page header #} + {% block header %} +
+ + {# Title #} +
+ {# Center-align title in object-edit views #} + +

{% block title %}Proxmox Full Update{% endblock %}

+ + {% block subtitle %}{% endblock %} +
+ + {# Controls #} + {% block controls %}{% endblock controls %} + +
+ {% endblock header %} + + {# Page content #} +
+ {% block tabs %}{% endblock %} + {% block content-wrapper %} +
+ + {% block content %} + {% endblock %} + +
+ {% endblock %} +
+ + {% if config.BANNER_BOTTOM %} +
+ {{ config.BANNER_BOTTOM|safe }} +
+ {% endif %} + + {# BS5 pop-up modals #} + {% block modals %}{% endblock %} + + {# Page footer #} +
+ + {# Proxbox Custom Footer #} + {% block plugin-info %} +
+
+ {# Proxbox - Docs & Community Links #} +
+ +
+ + {# Proxbox - Info #} +
+ Proxbox (v0.0.3) +
+
+
+ {% endblock %} + +
+ + {# Docs & Community Links #} +
+ +
+ + {# System Info #} +
+ {% annotated_now %} {% now 'T' %} + {{ settings.HOSTNAME }} (v{{ settings.VERSION }}) +
+ +
+
+ +
+ +
+
+{% endblock layout %} \ No newline at end of file diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 45a45d2..5f84779 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -1,11 +1,5 @@ - -{% extends 'base/layout.html' %} - -{% load helpers %} - -{% block header %} -

{% block title %}Proxmox Full Update{% endblock %}

-{% endblock %} +{# Base layout for the core Proxbox w/navbar and page content #} +{% extends 'proxbox_layout.html' %} {% block content %}

Nodes

@@ -32,7 +26,7 @@

Nodes



Virtual Machines and Containers

- + @@ -59,23 +53,30 @@

Virtual Machines and Containers

{% endfor %}
- -

Remove unused VM/CT

+

Logs:

    {% for deleted in proxmox.remove_unused %} -
  • VM/CT Name: {{ deleted.name }}
  • -
  • Logs: -
      - {% for log in deleted.log %} -
    • {{ log }}
    • - {% endfor %} -
    -
  • -
  • Updated: {{ deleted.result }}
  • + + {# Check amount of logs #} + {% if deleted.log|length > 1 %} +
  • {{ deleted.name }} +
      + {% for log in deleted.log %} +
    • {{ log }}
    • + {% endfor %} +
    +
  • + + {% else %} + {# If only 01 log #} +
  • {{ deleted.name }} - {% for log in deleted.log %}{{ log }}{% endfor %}
  • + {% endif %} + + +
    {% endfor %}
-{% endblock %} - +{% endblock %} \ No newline at end of file diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html index 816ac4d..baea2a3 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html @@ -1,87 +1,67 @@ -{% extends 'base/layout.html' %} +{% extends 'proxbox_layout.html' %} {% load render_table from django_tables2 %} {% block content %} - - - - -
- {% if perms.netbox_proxbox.add_proxmoxvm %} - Proxmox Full Update - {% endif %} -
- -

{% block title %}All Proxmox Virtual Machines (in Development, Wait!){% endblock %}

-
-
- - {% render_table table %} +
+ {% if perms.netbox_proxbox.add_proxmoxvm %} + Proxmox Full Update + {% endif %}
- -
-
-
- - Search -
-
-
- - {% for field in filter_form.visible_fields %} -
- - {% if field.name == "q" %} -
+ +

{% block title %}All Proxmox Virtual Machines (in Development, Wait!){% endblock %}

+
+
+ + {% render_table table %} +
+ +
+
+
+ + Search +
+
+ + + {% for field in filter_form.visible_fields %} +
- - - - + {% if field.name == "q" %} +
+ + + + + +
+ + {% else %} + {{ field.label_tag }} + {{ field }} + {% endif %} +
+ {% endfor %} +
+ + + Clear +
- - {% else %} - {{ field.label_tag }} - {{ field }} - {% endif %} -
- {% endfor %} -
- - - Clear - -
- + +
-
{% endblock %} diff --git a/settings.py b/settings.py new file mode 100644 index 0000000..d5a7bfa --- /dev/null +++ b/settings.py @@ -0,0 +1,629 @@ +import importlib +import logging +import os +import platform +import re +import socket +import sys +import warnings +from urllib.parse import urlsplit + +from django.contrib.messages import constants as messages +from django.core.exceptions import ImproperlyConfigured, ValidationError +from django.core.validators import URLValidator + +from netbox.config import PARAMS + + +# +# Environment setup +# + +VERSION = '3.1.8' + +# Hostname +HOSTNAME = platform.node() + +# Set the base directory two levels up +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + +# Validate Python version +if sys.version_info < (3, 7): + raise RuntimeError( + f"NetBox requires Python 3.7 or later. (Currently installed: Python {platform.python_version()})" + ) +if sys.version_info < (3, 8): + warnings.warn( + f"NetBox v3.2 will require Python 3.8 or later. (Currently installed: Python {platform.python_version()})" + ) + + +# +# Configuration import +# + +# Import configuration parameters +try: + from netbox import configuration +except ModuleNotFoundError as e: + if getattr(e, 'name') == 'configuration': + raise ImproperlyConfigured( + "Configuration file is not present. Please define netbox/netbox/configuration.py per the documentation." + ) + raise + +# Warn on removed config parameters +if hasattr(configuration, 'CACHE_TIMEOUT'): + warnings.warn( + "The CACHE_TIMEOUT configuration parameter was removed in v3.0.0 and no longer has any effect." + ) +if hasattr(configuration, 'RELEASE_CHECK_TIMEOUT'): + warnings.warn( + "The RELEASE_CHECK_TIMEOUT configuration parameter was removed in v3.0.0 and no longer has any effect." + ) + +# Enforce required configuration parameters +for parameter in ['ALLOWED_HOSTS', 'DATABASE', 'SECRET_KEY', 'REDIS']: + if not hasattr(configuration, parameter): + raise ImproperlyConfigured( + "Required parameter {} is missing from configuration.py.".format(parameter) + ) + +# Set required parameters +ALLOWED_HOSTS = getattr(configuration, 'ALLOWED_HOSTS') +DATABASE = getattr(configuration, 'DATABASE') +REDIS = getattr(configuration, 'REDIS') +SECRET_KEY = getattr(configuration, 'SECRET_KEY') + +# Set static config parameters +ADMINS = getattr(configuration, 'ADMINS', []) +BASE_PATH = getattr(configuration, 'BASE_PATH', '') +if BASE_PATH: + BASE_PATH = BASE_PATH.strip('/') + '/' # Enforce trailing slash only +CORS_ORIGIN_ALLOW_ALL = getattr(configuration, 'CORS_ORIGIN_ALLOW_ALL', False) +CORS_ORIGIN_REGEX_WHITELIST = getattr(configuration, 'CORS_ORIGIN_REGEX_WHITELIST', []) +CORS_ORIGIN_WHITELIST = getattr(configuration, 'CORS_ORIGIN_WHITELIST', []) +DATE_FORMAT = getattr(configuration, 'DATE_FORMAT', 'N j, Y') +DATETIME_FORMAT = getattr(configuration, 'DATETIME_FORMAT', 'N j, Y g:i a') +DEBUG = getattr(configuration, 'DEBUG', False) +DEVELOPER = getattr(configuration, 'DEVELOPER', False) +DOCS_ROOT = getattr(configuration, 'DOCS_ROOT', os.path.join(os.path.dirname(BASE_DIR), 'docs')) +EMAIL = getattr(configuration, 'EMAIL', {}) +EXEMPT_VIEW_PERMISSIONS = getattr(configuration, 'EXEMPT_VIEW_PERMISSIONS', []) +HTTP_PROXIES = getattr(configuration, 'HTTP_PROXIES', None) +INTERNAL_IPS = getattr(configuration, 'INTERNAL_IPS', ('127.0.0.1', '::1')) +LOGGING = getattr(configuration, 'LOGGING', {}) +LOGIN_PERSISTENCE = getattr(configuration, 'LOGIN_PERSISTENCE', False) +LOGIN_REQUIRED = getattr(configuration, 'LOGIN_REQUIRED', False) +LOGIN_TIMEOUT = getattr(configuration, 'LOGIN_TIMEOUT', None) +MEDIA_ROOT = getattr(configuration, 'MEDIA_ROOT', os.path.join(BASE_DIR, 'media')).rstrip('/') +METRICS_ENABLED = getattr(configuration, 'METRICS_ENABLED', False) +PLUGINS = getattr(configuration, 'PLUGINS', []) +PLUGINS_CONFIG = getattr(configuration, 'PLUGINS_CONFIG', {}) +RELEASE_CHECK_URL = getattr(configuration, 'RELEASE_CHECK_URL', None) +REMOTE_AUTH_AUTO_CREATE_USER = getattr(configuration, 'REMOTE_AUTH_AUTO_CREATE_USER', False) +REMOTE_AUTH_BACKEND = getattr(configuration, 'REMOTE_AUTH_BACKEND', 'netbox.authentication.RemoteUserBackend') +REMOTE_AUTH_DEFAULT_GROUPS = getattr(configuration, 'REMOTE_AUTH_DEFAULT_GROUPS', []) +REMOTE_AUTH_DEFAULT_PERMISSIONS = getattr(configuration, 'REMOTE_AUTH_DEFAULT_PERMISSIONS', {}) +REMOTE_AUTH_ENABLED = getattr(configuration, 'REMOTE_AUTH_ENABLED', False) +REMOTE_AUTH_HEADER = getattr(configuration, 'REMOTE_AUTH_HEADER', 'HTTP_REMOTE_USER') +REMOTE_AUTH_GROUP_HEADER = getattr(configuration, 'REMOTE_AUTH_GROUP_HEADER', 'HTTP_REMOTE_USER_GROUP') +REMOTE_AUTH_GROUP_SYNC_ENABLED = getattr(configuration, 'REMOTE_AUTH_GROUP_SYNC_ENABLED', False) +REMOTE_AUTH_SUPERUSER_GROUPS = getattr(configuration, 'REMOTE_AUTH_SUPERUSER_GROUPS', []) +REMOTE_AUTH_SUPERUSERS = getattr(configuration, 'REMOTE_AUTH_SUPERUSERS', []) +REMOTE_AUTH_STAFF_GROUPS = getattr(configuration, 'REMOTE_AUTH_STAFF_GROUPS', []) +REMOTE_AUTH_STAFF_USERS = getattr(configuration, 'REMOTE_AUTH_STAFF_USERS', []) +REMOTE_AUTH_GROUP_SEPARATOR = getattr(configuration, 'REMOTE_AUTH_GROUP_SEPARATOR', '|') +REPORTS_ROOT = getattr(configuration, 'REPORTS_ROOT', os.path.join(BASE_DIR, 'reports')).rstrip('/') +RQ_DEFAULT_TIMEOUT = getattr(configuration, 'RQ_DEFAULT_TIMEOUT', 300) +SCRIPTS_ROOT = getattr(configuration, 'SCRIPTS_ROOT', os.path.join(BASE_DIR, 'scripts')).rstrip('/') +SESSION_FILE_PATH = getattr(configuration, 'SESSION_FILE_PATH', None) +SESSION_COOKIE_NAME = getattr(configuration, 'SESSION_COOKIE_NAME', 'sessionid') +SHORT_DATE_FORMAT = getattr(configuration, 'SHORT_DATE_FORMAT', 'Y-m-d') +SHORT_DATETIME_FORMAT = getattr(configuration, 'SHORT_DATETIME_FORMAT', 'Y-m-d H:i') +SHORT_TIME_FORMAT = getattr(configuration, 'SHORT_TIME_FORMAT', 'H:i:s') +STORAGE_BACKEND = getattr(configuration, 'STORAGE_BACKEND', None) +STORAGE_CONFIG = getattr(configuration, 'STORAGE_CONFIG', {}) +TIME_FORMAT = getattr(configuration, 'TIME_FORMAT', 'g:i a') +TIME_ZONE = getattr(configuration, 'TIME_ZONE', 'UTC') + +# Check for hard-coded dynamic config parameters +for param in PARAMS: + if hasattr(configuration, param.name): + globals()[param.name] = getattr(configuration, param.name) + +# Validate update repo URL and timeout +if RELEASE_CHECK_URL: + validator = URLValidator( + message=( + "RELEASE_CHECK_URL must be a valid API URL. Example: " + "https://api.github.com/repos/netbox-community/netbox" + ) + ) + try: + validator(RELEASE_CHECK_URL) + except ValidationError as err: + raise ImproperlyConfigured(str(err)) + + +# +# Database +# + +# Only PostgreSQL is supported +if METRICS_ENABLED: + DATABASE.update({ + 'ENGINE': 'django_prometheus.db.backends.postgresql' + }) +else: + DATABASE.update({ + 'ENGINE': 'django.db.backends.postgresql' + }) + +DATABASES = { + 'default': DATABASE, +} + + +# +# Media storage +# + +if STORAGE_BACKEND is not None: + DEFAULT_FILE_STORAGE = STORAGE_BACKEND + + # django-storages + if STORAGE_BACKEND.startswith('storages.'): + + try: + import storages.utils + except ModuleNotFoundError as e: + if getattr(e, 'name') == 'storages': + raise ImproperlyConfigured( + f"STORAGE_BACKEND is set to {STORAGE_BACKEND} but django-storages is not present. It can be " + f"installed by running 'pip install django-storages'." + ) + raise e + + # Monkey-patch django-storages to fetch settings from STORAGE_CONFIG + def _setting(name, default=None): + if name in STORAGE_CONFIG: + return STORAGE_CONFIG[name] + return globals().get(name, default) + storages.utils.setting = _setting + +if STORAGE_CONFIG and STORAGE_BACKEND is None: + warnings.warn( + "STORAGE_CONFIG has been set in configuration.py but STORAGE_BACKEND is not defined. STORAGE_CONFIG will be " + "ignored." + ) + + +# +# Redis +# + +# Background task queuing +if 'tasks' not in REDIS: + raise ImproperlyConfigured( + "REDIS section in configuration.py is missing the 'tasks' subsection." + ) +TASKS_REDIS = REDIS['tasks'] +TASKS_REDIS_HOST = TASKS_REDIS.get('HOST', 'localhost') +TASKS_REDIS_PORT = TASKS_REDIS.get('PORT', 6379) +TASKS_REDIS_SENTINELS = TASKS_REDIS.get('SENTINELS', []) +TASKS_REDIS_USING_SENTINEL = all([ + isinstance(TASKS_REDIS_SENTINELS, (list, tuple)), + len(TASKS_REDIS_SENTINELS) > 0 +]) +TASKS_REDIS_SENTINEL_SERVICE = TASKS_REDIS.get('SENTINEL_SERVICE', 'default') +TASKS_REDIS_SENTINEL_TIMEOUT = TASKS_REDIS.get('SENTINEL_TIMEOUT', 10) +TASKS_REDIS_PASSWORD = TASKS_REDIS.get('PASSWORD', '') +TASKS_REDIS_DATABASE = TASKS_REDIS.get('DATABASE', 0) +TASKS_REDIS_SSL = TASKS_REDIS.get('SSL', False) +TASKS_REDIS_SKIP_TLS_VERIFY = TASKS_REDIS.get('INSECURE_SKIP_TLS_VERIFY', False) + +# Caching +if 'caching' not in REDIS: + raise ImproperlyConfigured( + "REDIS section in configuration.py is missing caching subsection." + ) +CACHING_REDIS_HOST = REDIS['caching'].get('HOST', 'localhost') +CACHING_REDIS_PORT = REDIS['caching'].get('PORT', 6379) +CACHING_REDIS_DATABASE = REDIS['caching'].get('DATABASE', 0) +CACHING_REDIS_PASSWORD = REDIS['caching'].get('PASSWORD', '') +CACHING_REDIS_SENTINELS = REDIS['caching'].get('SENTINELS', []) +CACHING_REDIS_SENTINEL_SERVICE = REDIS['caching'].get('SENTINEL_SERVICE', 'default') +CACHING_REDIS_PROTO = 'rediss' if REDIS['caching'].get('SSL', False) else 'redis' +CACHING_REDIS_SKIP_TLS_VERIFY = REDIS['caching'].get('INSECURE_SKIP_TLS_VERIFY', False) + +CACHES = { + 'default': { + 'BACKEND': 'django_redis.cache.RedisCache', + 'LOCATION': f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_HOST}:{CACHING_REDIS_PORT}/{CACHING_REDIS_DATABASE}', + 'OPTIONS': { + 'CLIENT_CLASS': 'django_redis.client.DefaultClient', + 'PASSWORD': CACHING_REDIS_PASSWORD, + } + } +} +if CACHING_REDIS_SENTINELS: + DJANGO_REDIS_CONNECTION_FACTORY = 'django_redis.pool.SentinelConnectionFactory' + CACHES['default']['LOCATION'] = f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_SENTINEL_SERVICE}/{CACHING_REDIS_DATABASE}' + CACHES['default']['OPTIONS']['CLIENT_CLASS'] = 'django_redis.client.SentinelClient' + CACHES['default']['OPTIONS']['SENTINELS'] = CACHING_REDIS_SENTINELS +if CACHING_REDIS_SKIP_TLS_VERIFY: + CACHES['default']['OPTIONS'].setdefault('CONNECTION_POOL_KWARGS', {}) + CACHES['default']['OPTIONS']['CONNECTION_POOL_KWARGS']['ssl_cert_reqs'] = False + + +# +# Sessions +# + +if LOGIN_TIMEOUT is not None: + # Django default is 1209600 seconds (14 days) + SESSION_COOKIE_AGE = LOGIN_TIMEOUT +SESSION_SAVE_EVERY_REQUEST = bool(LOGIN_PERSISTENCE) +if SESSION_FILE_PATH is not None: + SESSION_ENGINE = 'django.contrib.sessions.backends.file' + + +# +# Email +# + +EMAIL_HOST = EMAIL.get('SERVER') +EMAIL_HOST_USER = EMAIL.get('USERNAME') +EMAIL_HOST_PASSWORD = EMAIL.get('PASSWORD') +EMAIL_PORT = EMAIL.get('PORT', 25) +EMAIL_SSL_CERTFILE = EMAIL.get('SSL_CERTFILE') +EMAIL_SSL_KEYFILE = EMAIL.get('SSL_KEYFILE') +EMAIL_SUBJECT_PREFIX = '[NetBox] ' +EMAIL_USE_SSL = EMAIL.get('USE_SSL', False) +EMAIL_USE_TLS = EMAIL.get('USE_TLS', False) +EMAIL_TIMEOUT = EMAIL.get('TIMEOUT', 10) +SERVER_EMAIL = EMAIL.get('FROM_EMAIL') + + +# +# Django +# + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'django.contrib.humanize', + 'corsheaders', + 'debug_toolbar', + 'graphiql_debug_toolbar', + 'django_filters', + 'django_tables2', + 'django_prometheus', + 'graphene_django', + 'mptt', + 'rest_framework', + 'social_django', + 'taggit', + 'timezone_field', + 'circuits', + 'dcim', + 'ipam', + 'extras', + 'tenancy', + 'users', + 'utilities', + 'virtualization', + 'wireless', + 'django_rq', # Must come after extras to allow overriding management commands + 'drf_yasg', +] + +# Middleware +MIDDLEWARE = [ + 'graphiql_debug_toolbar.middleware.DebugToolbarMiddleware', + 'django_prometheus.middleware.PrometheusBeforeMiddleware', + 'corsheaders.middleware.CorsMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'django.middleware.security.SecurityMiddleware', + 'netbox.middleware.ExceptionHandlingMiddleware', + 'netbox.middleware.RemoteUserMiddleware', + 'netbox.middleware.LoginRequiredMiddleware', + 'netbox.middleware.DynamicConfigMiddleware', + 'netbox.middleware.APIVersionMiddleware', + 'netbox.middleware.ObjectChangeMiddleware', + 'django_prometheus.middleware.PrometheusAfterMiddleware', +] + +ROOT_URLCONF = 'netbox.urls' + +TEMPLATES_DIR = BASE_DIR + '/templates' +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [TEMPLATES_DIR], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.template.context_processors.media', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + 'netbox.context_processors.settings_and_registry', + ], + }, + }, +] + +# Set up authentication backends +AUTHENTICATION_BACKENDS = [ + REMOTE_AUTH_BACKEND, + 'netbox.authentication.ObjectPermissionBackend', +] + +# Internationalization +LANGUAGE_CODE = 'en-us' +USE_I18N = True +USE_TZ = True + +# WSGI +WSGI_APPLICATION = 'netbox.wsgi.application' +SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') +USE_X_FORWARDED_HOST = True +X_FRAME_OPTIONS = 'SAMEORIGIN' + +# Static files (CSS, JavaScript, Images) +STATIC_ROOT = BASE_DIR + '/static' +STATIC_URL = f'/{BASE_PATH}static/' +STATICFILES_DIRS = ( + os.path.join(BASE_DIR, 'project-static', 'dist'), + os.path.join(BASE_DIR, 'project-static', 'img'), + ('docs', os.path.join(BASE_DIR, 'project-static', 'docs')), # Prefix with /docs +) + +# Media +MEDIA_URL = '/{}media/'.format(BASE_PATH) + +# Disable default limit of 1000 fields per request. Needed for bulk deletion of objects. (Added in Django 1.10.) +DATA_UPLOAD_MAX_NUMBER_FIELDS = None + +# Messages +MESSAGE_TAGS = { + messages.ERROR: 'danger', +} + +# Authentication URLs +LOGIN_URL = f'/{BASE_PATH}login/' +LOGIN_REDIRECT_URL = f'/{BASE_PATH}' + +CSRF_TRUSTED_ORIGINS = ALLOWED_HOSTS + +DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' + +# Exclude potentially sensitive models from wildcard view exemption. These may still be exempted +# by specifying the model individually in the EXEMPT_VIEW_PERMISSIONS configuration parameter. +EXEMPT_EXCLUDE_MODELS = ( + ('auth', 'group'), + ('auth', 'user'), + ('users', 'objectpermission'), +) + +# All URLs starting with a string listed here are exempt from login enforcement +EXEMPT_PATHS = ( + f'/{BASE_PATH}api/', + f'/{BASE_PATH}graphql/', + f'/{BASE_PATH}login/', + f'/{BASE_PATH}oauth/', + f'/{BASE_PATH}metrics', +) + + +# +# Django social auth +# + +# Load all SOCIAL_AUTH_* settings from the user configuration +for param in dir(configuration): + if param.startswith('SOCIAL_AUTH_'): + globals()[param] = getattr(configuration, param) + +SOCIAL_AUTH_JSONFIELD_ENABLED = True + + +# +# Django Prometheus +# + +PROMETHEUS_EXPORT_MIGRATIONS = False + + +# +# Django filters +# + +FILTERS_NULL_CHOICE_LABEL = 'None' +FILTERS_NULL_CHOICE_VALUE = 'null' + + +# +# Django REST framework (API) +# + +REST_FRAMEWORK_VERSION = '.'.join(VERSION.split('-')[0].split('.')[:2]) # Use major.minor as API version +REST_FRAMEWORK = { + 'ALLOWED_VERSIONS': [REST_FRAMEWORK_VERSION], + 'COERCE_DECIMAL_TO_STRING': False, + 'DEFAULT_AUTHENTICATION_CLASSES': ( + 'rest_framework.authentication.SessionAuthentication', + 'netbox.api.authentication.TokenAuthentication', + ), + 'DEFAULT_FILTER_BACKENDS': ( + 'django_filters.rest_framework.DjangoFilterBackend', + ), + 'DEFAULT_METADATA_CLASS': 'netbox.api.metadata.BulkOperationMetadata', + 'DEFAULT_PAGINATION_CLASS': 'netbox.api.pagination.OptionalLimitOffsetPagination', + 'DEFAULT_PERMISSION_CLASSES': ( + 'netbox.api.authentication.TokenPermissions', + ), + 'DEFAULT_RENDERER_CLASSES': ( + 'rest_framework.renderers.JSONRenderer', + 'netbox.api.renderers.FormlessBrowsableAPIRenderer', + ), + 'DEFAULT_VERSION': REST_FRAMEWORK_VERSION, + 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.AcceptHeaderVersioning', + # 'PAGE_SIZE': PAGINATE_COUNT, + 'SCHEMA_COERCE_METHOD_NAMES': { + # Default mappings + 'retrieve': 'read', + 'destroy': 'delete', + # Custom operations + 'bulk_destroy': 'bulk_delete', + }, + 'VIEW_NAME_FUNCTION': 'utilities.api.get_view_name', +} + + +# +# Graphene +# + +GRAPHENE = { + # Avoids naming collision on models with 'type' field; see + # https://github.com/graphql-python/graphene-django/issues/185 + 'DJANGO_CHOICE_FIELD_ENUM_V3_NAMING': True, +} + + +# +# drf_yasg (OpenAPI/Swagger) +# + +SWAGGER_SETTINGS = { + 'DEFAULT_AUTO_SCHEMA_CLASS': 'utilities.custom_inspectors.NetBoxSwaggerAutoSchema', + 'DEFAULT_FIELD_INSPECTORS': [ + 'utilities.custom_inspectors.CustomFieldsDataFieldInspector', + 'utilities.custom_inspectors.JSONFieldInspector', + 'utilities.custom_inspectors.NullableBooleanFieldInspector', + 'utilities.custom_inspectors.ChoiceFieldInspector', + 'utilities.custom_inspectors.SerializedPKRelatedFieldInspector', + 'drf_yasg.inspectors.CamelCaseJSONFilter', + 'drf_yasg.inspectors.ReferencingSerializerInspector', + 'drf_yasg.inspectors.RelatedFieldInspector', + 'drf_yasg.inspectors.ChoiceFieldInspector', + 'drf_yasg.inspectors.FileFieldInspector', + 'drf_yasg.inspectors.DictFieldInspector', + 'drf_yasg.inspectors.SerializerMethodFieldInspector', + 'drf_yasg.inspectors.SimpleFieldInspector', + 'drf_yasg.inspectors.StringDefaultFieldInspector', + ], + 'DEFAULT_FILTER_INSPECTORS': [ + 'drf_yasg.inspectors.CoreAPICompatInspector', + ], + 'DEFAULT_INFO': 'netbox.urls.openapi_info', + 'DEFAULT_MODEL_DEPTH': 1, + 'DEFAULT_PAGINATOR_INSPECTORS': [ + 'utilities.custom_inspectors.NullablePaginatorInspector', + 'drf_yasg.inspectors.DjangoRestResponsePagination', + 'drf_yasg.inspectors.CoreAPICompatInspector', + ], + 'SECURITY_DEFINITIONS': { + 'Bearer': { + 'type': 'apiKey', + 'name': 'Authorization', + 'in': 'header', + } + }, + 'VALIDATOR_URL': None, +} + + +# +# Django RQ (Webhooks backend) +# + +if TASKS_REDIS_USING_SENTINEL: + RQ_PARAMS = { + 'SENTINELS': TASKS_REDIS_SENTINELS, + 'MASTER_NAME': TASKS_REDIS_SENTINEL_SERVICE, + 'DB': TASKS_REDIS_DATABASE, + 'PASSWORD': TASKS_REDIS_PASSWORD, + 'SOCKET_TIMEOUT': None, + 'CONNECTION_KWARGS': { + 'socket_connect_timeout': TASKS_REDIS_SENTINEL_TIMEOUT + }, + } +else: + RQ_PARAMS = { + 'HOST': TASKS_REDIS_HOST, + 'PORT': TASKS_REDIS_PORT, + 'DB': TASKS_REDIS_DATABASE, + 'PASSWORD': TASKS_REDIS_PASSWORD, + 'SSL': TASKS_REDIS_SSL, + 'SSL_CERT_REQS': None if TASKS_REDIS_SKIP_TLS_VERIFY else 'required', + 'DEFAULT_TIMEOUT': RQ_DEFAULT_TIMEOUT, + } + +RQ_QUEUES = { + 'high': RQ_PARAMS, + 'default': RQ_PARAMS, + 'low': RQ_PARAMS, +} + + +# +# Plugins +# + +for plugin_name in PLUGINS: + + # Import plugin module + try: + plugin = importlib.import_module(plugin_name) + except ModuleNotFoundError as e: + if getattr(e, 'name') == plugin_name: + raise ImproperlyConfigured( + "Unable to import plugin {}: Module not found. Check that the plugin module has been installed within the " + "correct Python environment.".format(plugin_name) + ) + raise e + + # Determine plugin config and add to INSTALLED_APPS. + try: + plugin_config = plugin.config + INSTALLED_APPS.append("{}.{}".format(plugin_config.__module__, plugin_config.__name__)) + except AttributeError: + raise ImproperlyConfigured( + "Plugin {} does not provide a 'config' variable. This should be defined in the plugin's __init__.py file " + "and point to the PluginConfig subclass.".format(plugin_name) + ) + + # Validate user-provided configuration settings and assign defaults + if plugin_name not in PLUGINS_CONFIG: + PLUGINS_CONFIG[plugin_name] = {} + plugin_config.validate(PLUGINS_CONFIG[plugin_name], VERSION) + + # Add middleware + plugin_middleware = plugin_config.middleware + if plugin_middleware and type(plugin_middleware) in (list, tuple): + MIDDLEWARE.extend(plugin_middleware) + + # Create RQ queues dedicated to the plugin + # we use the plugin name as a prefix for queue name's defined in the plugin config + # ex: mysuperplugin.mysuperqueue1 + if type(plugin_config.queues) is not list: + raise ImproperlyConfigured( + "Plugin {} queues must be a list.".format(plugin_name) + ) + RQ_QUEUES.update({ + f"{plugin_name}.{queue}": RQ_PARAMS for queue in plugin_config.queues + }) From a54dc3053fd3c55740da7e2ccb43168d0e9d34f0 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Wed, 23 Feb 2022 17:32:25 -0300 Subject: [PATCH 008/313] Adds additional instructions to PLUGIN config also makes some minor changes mainly into styling --- README.md | 103 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 90 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index c3c77c4..ad49c76 100755 --- a/README.md +++ b/README.md @@ -3,18 +3,19 @@

-# proxbox (In Development!) -**NOTE:** Although the Proxbox plugin is in development, it only use GET requests and there is no risk to harm your Proxmox environment by changing things incorrectly. +## Netbox Plugin which integrates [Proxmox](https://www.proxmox.com/) and [Netbox](https://netbox.readthedocs.io/)! -Netbox plugin which integrates Proxmox and Netbox using proxmoxer and pynetbox. +> **NOTE:** Although the Proxbox plugin is in development, it only use **GET requests** and there is **no risk to harm your Proxmox environment** by changing things incorrectly. + +
It is currently able to get the following information from Proxmox: -- Cluster name -- Nodes: +- **Cluster name** +- **Nodes:** - Status (online / offline) - Name -- Virtual Machines and Containers: +- **Virtual Machines and Containers:** - Status (online / offline) - Name - ID @@ -23,22 +24,32 @@ It is currently able to get the following information from Proxmox: - Memory - Node (Server) +--- + +
+ ### Versions + + The following table shows the Netbox and Proxmox versions compatible (tested) with Proxbox plugin. | netbox version | proxmox version | proxbox version | ------------- |-------------|-------------| -| >= 2.10.9 | >= v6.2.0 | v0.0.3 +| >= v3.0.0 | >= v6.2.0 | v0.0.3 + +
--- ### Summary [1. Installation](#1-installation) - [1.1. Install package](#11-install-package) - - [1.1.1. Using pip (production use)](#111-using-pip-production-use) + - [1.1.1. Using pip (production use)](#111-using-pip-production-use---not-working-yet) - [1.1.2. Using git (development use)](#112-using-git-development-use) - [1.2. Enable the Plugin](#12-enable-the-plugin) - [1.3. Configure Plugin](#13-configure-plugin) + - [1.3.1. Change Netbox 'configuration.py' to add PLUGIN parameters](#131-change-netbox-configurationpy-to-add-plugin-parameters) + - [1.3.2. Change Netbox 'settings.py' to include Proxbox Template directory](#132-change-netbox-settingspy-to-include-proxbox-template-directory) - [1.4. Run Database Migrations](#14-run-database-migrations) - [1.5 Restart WSGI Service](#15-restart-wsgi-service) @@ -66,7 +77,7 @@ The plugin is available as a Python package in pypi and can be installed with pi ### 1.1. Install package -#### 1.1.1. Using pip (production use - not working yet!) +#### 1.1.1. Using pip (production use - not working yet!){} Enter Netbox's virtual environment. ``` @@ -98,6 +109,7 @@ source /opt/netbox/venv/bin/activate python3 setup.py develop ``` +--- ### 1.2. Enable the Plugin @@ -106,8 +118,11 @@ Enable the plugin in **/opt/netbox/netbox/netbox/configuration.py**: PLUGINS = ['netbox_proxbox'] ``` +--- + ### 1.3. Configure Plugin +#### 1.3.1. Change Netbox '**[configuration.py](https://github.com/netbox-community/netbox/blob/develop/netbox/netbox/configuration.example.py)**' to add PLUGIN parameters The plugin's configuration is also located in **/opt/netbox/netbox/netbox/configuration.py**: Replace the values with your own following the [Configuration Parameters](#configuration-parameters) section. @@ -141,6 +156,64 @@ PLUGINS_CONFIG = { } ``` +
+ +#### 1.3.2. Change Netbox '**[settings.py](https://github.com/netbox-community/netbox/blob/develop/netbox/netbox/settings.py)**' to include Proxbox Template directory +Edit **/opt/netbox/netbox/netbox** and find TEMPLATE_DIR section + +- How it is configured: +```python +TEMPLATES_DIR = BASE_DIR + '/templates' +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [TEMPLATES_DIR], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.template.context_processors.media', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + 'netbox.context_processors.settings_and_registry', + ], + }, + }, +] +``` + +
+ +- How it is must be: +```python +TEMPLATES_DIR = BASE_DIR + '/templates' + +# PROXBOX CUSTOM TEMPLATE +PROXBOX_TEMPLATE_DIR = BASE_DIR + '/netbox-proxbox/netbox_proxbox/templates/netbox_proxbox' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [TEMPLATES_DIR, PROXBOX_TEMPLATE_DIR], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.template.context_processors.media', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + 'netbox.context_processors.settings_and_registry', + ], + }, + }, +] +``` +I did it because I had to change the **base/layout.html** from Netbox, since there is no **Jinja2 block** to fill with custom information into the **footer HTML tag** + +--- + ### 1.4. Run Database Migrations ``` @@ -148,6 +221,8 @@ PLUGINS_CONFIG = { (venv) $ python3 manage.py migrate ``` +--- + ### 1.5. Restart WSGI Service Restart the WSGI service to load the new plugin: @@ -190,7 +265,7 @@ The following options are available: To get Proxmox ID, Node and Type information, is necessary to configure Custom Fields. Below the parameters needed to make it work: ---- +
### 3.1. Custom Field Configuration @@ -206,7 +281,7 @@ Optional values (may be different) - [Custom Field] **Label:** [Proxmox] ID - [Custom Field] **Description:** Proxmox VM/CT ID ---- +
#### 3.1.2. Proxmox Node @@ -219,7 +294,7 @@ Optional values (may be different) - [Custom Field] **Label:** [Proxmox] Node - [Custom Field] **Description:** Proxmox Node (Server) ---- +
#### 3.1.3. Proxmox Type (qemu or lxc) @@ -233,7 +308,7 @@ Optional values (may be different) - [Custom Field] **Label:** [Proxmox] Type - [Custom Field] **Description:** Proxmox type (VM or CT) ---- +
### 3.2. Custom Field Example @@ -258,6 +333,8 @@ Developing tools for this project based on [ntc-netbox-plugin-onboarding](https: Issues and pull requests are welcomed. +--- + ## 6. Roadmap - Start using custom models to optimize the use of the Plugin and stop using 'Custom Fields' - Automatically remove Nodes on Netbox when removed on Promox (as it already happens with Virtual Machines and Containers) From b0e9944c38d3b17c152e59bc8605f297fc0c69c5 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Fri, 25 Feb 2022 12:45:09 -0300 Subject: [PATCH 009/313] Delete settings.py just a test --- netbox_proxbox/settings.py | 123 ------------------------------------- 1 file changed, 123 deletions(-) delete mode 100644 netbox_proxbox/settings.py diff --git a/netbox_proxbox/settings.py b/netbox_proxbox/settings.py deleted file mode 100644 index d267a90..0000000 --- a/netbox_proxbox/settings.py +++ /dev/null @@ -1,123 +0,0 @@ -""" -Django settings for TEST project. - -Generated by 'django-admin startproject' using Django 4.0.2. - -For more information on this file, see -https://docs.djangoproject.com/en/4.0/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/4.0/ref/settings/ -""" - -from pathlib import Path - -# Build paths inside the project like this: BASE_DIR / 'subdir'. -BASE_DIR = Path(__file__).resolve().parent.parent - - -# Quick-start development settings - unsuitable for production -# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'django-insecure-hg(t-yxi1(mmcb@=@^a(#8yzs@yovl^j(jyx=b2ui$9!^=f@!b' - -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True - -ALLOWED_HOSTS = [] - - -# Application definition - -INSTALLED_APPS = [ - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', -] - -MIDDLEWARE = [ - 'django.middleware.security.SecurityMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', -] - -ROOT_URLCONF = 'TEST.urls' - -TEMPLATES = [ - { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - ], - }, - }, -] - -WSGI_APPLICATION = 'TEST.wsgi.application' - - -# Database -# https://docs.djangoproject.com/en/4.0/ref/settings/#databases - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': BASE_DIR / 'db.sqlite3', - } -} - - -# Password validation -# https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators - -AUTH_PASSWORD_VALIDATORS = [ - { - 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', - }, -] - - -# Internationalization -# https://docs.djangoproject.com/en/4.0/topics/i18n/ - -LANGUAGE_CODE = 'en-us' - -TIME_ZONE = 'UTC' - -USE_I18N = True - -USE_TZ = True - - -# Static files (CSS, JavaScript, Images) -# https://docs.djangoproject.com/en/4.0/howto/static-files/ - -STATIC_URL = 'static/' - -# Default primary key field type -# https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field - -DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' From 2c19d936bf7fabc2a6806d9304eda655e1b6d52b Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Sat, 26 Feb 2022 04:18:53 +0000 Subject: [PATCH 010/313] Change Proxbox custom links to be like Pull Request #8733 --- .../netbox_proxbox/proxbox_layout.html | 102 +++++++----------- .../proxmox_vm_full_update.html | 36 +++++++ .../netbox_proxbox/proxmox_vm_list.html | 36 +++++++ 3 files changed, 108 insertions(+), 66 deletions(-) diff --git a/netbox_proxbox/templates/netbox_proxbox/proxbox_layout.html b/netbox_proxbox/templates/netbox_proxbox/proxbox_layout.html index a33b526..6692451 100644 --- a/netbox_proxbox/templates/netbox_proxbox/proxbox_layout.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxbox_layout.html @@ -110,88 +110,58 @@

{% block title %}Proxmox Full Update{% endblock %}

{# BS5 pop-up modals #} {% block modals %}{% endblock %} - + {# Page footer #}
- - {# Proxbox Custom Footer #} - {% block plugin-info %} -
+ {% block footer %}
- {# Proxbox - Docs & Community Links #} +
-
- {# Proxbox - Info #}
- Proxbox (v0.0.3) -
-
-
- {% endblock %} - -
- - {# Docs & Community Links #} -
- -
- - {# System Info #} -
{% annotated_now %} {% now 'T' %} {{ settings.HOSTNAME }} (v{{ settings.VERSION }}) +
+
- -
+ {% endblock footer %} -
diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 5f84779..d5ccf91 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -79,4 +79,40 @@

Logs:


{% endfor %} +{% endblock %} + +{% block footer_links %} + {{ block.super }} + + {# Proxbox Custom Links #} + {% endblock %} \ No newline at end of file diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html index baea2a3..34b73b9 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html @@ -65,3 +65,39 @@

{% block title %}All Proxmox Virtual Machines (in Development, Wait!){% endb

{% endblock %} + +{% block footer_links %} + {{ block.super }} + + {# Proxbox Custom Links #} + +{% endblock %} \ No newline at end of file From fc0d309d62b91c6fc18b51e7d59758601e233448 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Fri, 4 Mar 2022 18:57:40 -0300 Subject: [PATCH 011/313] Add observation to step 1.3.2 --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index ad49c76..2c65e83 100755 --- a/README.md +++ b/README.md @@ -159,6 +159,9 @@ PLUGINS_CONFIG = {
#### 1.3.2. Change Netbox '**[settings.py](https://github.com/netbox-community/netbox/blob/develop/netbox/netbox/settings.py)**' to include Proxbox Template directory + +> Probably on the next release of Netbox, it will not be necessary to make the configuration below! As the [Pull Request #8733](https://github.com/netbox-community/netbox/pull/8734) got merged to develop branch + Edit **/opt/netbox/netbox/netbox** and find TEMPLATE_DIR section - How it is configured: From 7d42f7172693357ff23a91d274c6a61a563b33c8 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Mon, 7 Mar 2022 20:26:28 +0000 Subject: [PATCH 012/313] fix conditional from 'remove' part of Full Update script --- netbox_proxbox/proxbox_api/update.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index c4ce002..817adc3 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -442,7 +442,8 @@ def all(**kwargs): if remove_unused == True: print('\nREMOVE UNUSED DATA...') remove_info = remove.all() - + else: + remove_info = False # # BUILD JSON RESULT # From 14766557f4ed0ef012b0d1fdfc4712edfb608890 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Mon, 7 Mar 2022 20:27:36 +0000 Subject: [PATCH 013/313] fix conditional from 'remove' part of Full Update script --- netbox_proxbox/proxbox_api/update.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index c4ce002..2f3d743 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -442,7 +442,8 @@ def all(**kwargs): if remove_unused == True: print('\nREMOVE UNUSED DATA...') remove_info = remove.all() - + else: + remove_info = False # # BUILD JSON RESULT # @@ -454,7 +455,6 @@ def all(**kwargs): return result - # Runs if script executed directly if __name__ == "__main__": print('#\n# COMPARE PROXMOX WITH NETBOX\n#') @@ -462,11 +462,4 @@ def all(**kwargs): print('____________________________________\n') print('#\n# COMPARE PROXMOX WITH NETBOX\n#') - remove.all() - - - - - - - + remove.all() \ No newline at end of file From 07bfaa864b2d5f3db8a30461ee7435a4f2812404 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Mon, 7 Mar 2022 20:37:21 +0000 Subject: [PATCH 014/313] add existence conditional when rendering elements --- .../proxmox_vm_full_update.html | 144 +++++++++--------- 1 file changed, 76 insertions(+), 68 deletions(-) diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index d5ccf91..1e9a10a 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -2,83 +2,91 @@ {% extends 'proxbox_layout.html' %} {% block content %} -

Nodes

- - + {% if proxmox.nodes %} +

Nodes

+
+ + + + + + + + + + {% for node in proxmox.nodes %} - - - + + + - - - {% for node in proxmox.nodes %} - - - - - - - {% endfor %} - -
Node status changedCluster changedUpdate result
Node status changedCluster changedUpdate result{{ node.changes.status }}{{ node.changes.cluster }}{{ node.result }}
{{ node.changes.status }}{{ node.changes.cluster }}{{ node.result }}
+ {% endfor %} + + -

-

Virtual Machines and Containers

+

+ {% endif %} + {% if proxmox.virtualmachines %} +

Virtual Machines and Containers

- - +
+ + + + + + + + + + + + + {% for virtualmachine in proxmox.virtualmachines %} - - - - - - - + + + + + + + - - - {% for virtualmachine in proxmox.virtualmachines %} - - - - - - - - - - {% endfor %} - -
VM/CT NameStatus changedCustom FieldsLocal contextResourcesTagUpdate result
VM/CT NameStatus changedCustom FieldsLocal contextResourcesTagUpdate result{{ virtualmachine.name }}{{ virtualmachine.changes.status }}{{ virtualmachine.changes.custom_fields }}{{ virtualmachine.changes.local_context }}{{ virtualmachine.changes.resources }}{{ virtualmachine.changes.tag }}{{ virtualmachine.result }}
{{ virtualmachine.name }}{{ virtualmachine.changes.status }}{{ virtualmachine.changes.custom_fields }}{{ virtualmachine.changes.local_context }}{{ virtualmachine.changes.resources }}{{ virtualmachine.changes.tag }}{{ virtualmachine.result }}
-

-

Remove unused VM/CT

-

Logs:

-
    - {% for deleted in proxmox.remove_unused %} - - {# Check amount of logs #} - {% if deleted.log|length > 1 %} -
  • {{ deleted.name }} -
      - {% for log in deleted.log %} -
    • {{ log }}
    • - {% endfor %} -
    -
  • + {% endfor %} + + + +

    + {% endif %} + {% if proxmox.remove_unused %} +

    Remove unused VM/CT

    +

    Logs:

    +
      + {% for deleted in proxmox.remove_unused %} + + {# Check amount of logs #} + {% if deleted.log|length > 1 %} +
    • {{ deleted.name }} +
        + {% for log in deleted.log %} +
      • {{ log }}
      • + {% endfor %} +
      +
    • + + {% else %} + {# If only 01 log #} +
    • {{ deleted.name }} - {% for log in deleted.log %}{{ log }}{% endfor %}
    • + {% endif %} - {% else %} - {# If only 01 log #} -
    • {{ deleted.name }} - {% for log in deleted.log %}{{ log }}{% endfor %}
    • - {% endif %} - - -
      - {% endfor %} -
    + +
    + {% endfor %} +
+ {% endif %} + {% endblock %} {% block footer_links %} From 40d329053695a16621b6729888ce800e76681cdb Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Mon, 7 Mar 2022 21:23:40 +0000 Subject: [PATCH 015/313] create base footer base file for Proxbox --- .../templates/netbox_proxbox/footer.html | 33 +++++++++++++++++++ .../proxmox_vm_full_update.html | 32 +----------------- .../netbox_proxbox/proxmox_vm_list.html | 32 +----------------- 3 files changed, 35 insertions(+), 62 deletions(-) create mode 100644 netbox_proxbox/templates/netbox_proxbox/footer.html diff --git a/netbox_proxbox/templates/netbox_proxbox/footer.html b/netbox_proxbox/templates/netbox_proxbox/footer.html new file mode 100644 index 0000000..c521ed7 --- /dev/null +++ b/netbox_proxbox/templates/netbox_proxbox/footer.html @@ -0,0 +1,33 @@ +{# Footer links for the core Proxbox #} +{# Proxbox Custom Links #} + + diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 1e9a10a..659804f 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -92,35 +92,5 @@

Logs:

{% block footer_links %} {{ block.super }} - {# Proxbox Custom Links #} - + {% include "footer.html" %} {% endblock %} \ No newline at end of file diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html index 34b73b9..2157699 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html @@ -69,35 +69,5 @@

{% block title %}All Proxmox Virtual Machines (in Development, Wait!){% endb {% block footer_links %} {{ block.super }} - {# Proxbox Custom Links #} - + {% include "footer.html" %} {% endblock %} \ No newline at end of file From 5c4030a30664b6b5adcea107bc9f8d0928db3a50 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Mon, 7 Mar 2022 21:32:06 +0000 Subject: [PATCH 016/313] delete 'proxbox_layout' template and change its 'extends' --- .../netbox_proxbox/proxbox_layout.html | 169 ------------------ .../proxmox_vm_full_update.html | 3 +- .../netbox_proxbox/proxmox_vm_list.html | 2 +- 3 files changed, 2 insertions(+), 172 deletions(-) delete mode 100644 netbox_proxbox/templates/netbox_proxbox/proxbox_layout.html diff --git a/netbox_proxbox/templates/netbox_proxbox/proxbox_layout.html b/netbox_proxbox/templates/netbox_proxbox/proxbox_layout.html deleted file mode 100644 index 6692451..0000000 --- a/netbox_proxbox/templates/netbox_proxbox/proxbox_layout.html +++ /dev/null @@ -1,169 +0,0 @@ -{# Base layout for the core NetBox UI w/navbar and page content #} -{% extends 'base/base.html' %} -{% load helpers %} -{% load search %} -{% load static %} - -{% block layout %} - -
-
- {# Sidebar #} - {% include 'base/sidenav.html' %} - - {# Body #} -
- - {# Netbox Logo, only visible when printing #} -
- NetBox logo -
- - {# Top bar #} - - - {% if config.BANNER_TOP %} -
- {{ config.BANNER_TOP|safe }} -
- {% endif %} - - {% if config.MAINTENANCE_MODE %} - - {% endif %} - - {# Page header #} - {% block header %} -
- - {# Title #} -
- {# Center-align title in object-edit views #} - -

{% block title %}Proxmox Full Update{% endblock %}

- - {% block subtitle %}{% endblock %} -
- - {# Controls #} - {% block controls %}{% endblock controls %} - -
- {% endblock header %} - - {# Page content #} -
- {% block tabs %}{% endblock %} - {% block content-wrapper %} -
- - {% block content %} - {% endblock %} - -
- {% endblock %} -
- - {% if config.BANNER_BOTTOM %} -
- {{ config.BANNER_BOTTOM|safe }} -
- {% endif %} - - {# BS5 pop-up modals #} - {% block modals %}{% endblock %} - - {# Page footer #} -
- {% block footer %} -
- -
- -
- -
- {% annotated_now %} {% now 'T' %} - {{ settings.HOSTNAME }} (v{{ settings.VERSION }}) -
- -
- {% endblock footer %} -
-
- -
-
-{% endblock layout %} \ No newline at end of file diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 659804f..8c2ba25 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -1,5 +1,4 @@ -{# Base layout for the core Proxbox w/navbar and page content #} -{% extends 'proxbox_layout.html' %} +{% extends 'base/layout.html' %} {% block content %} {% if proxmox.nodes %} diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html index 2157699..31bd2ef 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html @@ -1,4 +1,4 @@ -{% extends 'proxbox_layout.html' %} +{% extends 'base/layout.html' %} {% load render_table from django_tables2 %} {% block content %} From 052bd0836e8dc22e09d820c3c587bf65187ac074 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Sat, 12 Mar 2022 12:21:08 -0300 Subject: [PATCH 017/313] minor change --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2c65e83..c50feec 100755 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ The plugin is available as a Python package in pypi and can be installed with pi ### 1.1. Install package -#### 1.1.1. Using pip (production use - not working yet!){} +#### 1.1.1. Using pip (production use - not working yet!) Enter Netbox's virtual environment. ``` From 48466a07ba732f79f5ddf4ec49c64e5b62db6311 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Wed, 6 Apr 2022 02:35:31 +0000 Subject: [PATCH 018/313] Update 'settings.py' to conform with v3.2.0 --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c50feec..21edb0e 100755 --- a/README.md +++ b/README.md @@ -164,7 +164,7 @@ PLUGINS_CONFIG = { Edit **/opt/netbox/netbox/netbox** and find TEMPLATE_DIR section -- How it is configured: +- How it is configured (Netbox >= v3.2.0): ```python TEMPLATES_DIR = BASE_DIR + '/templates' TEMPLATES = [ @@ -173,6 +173,10 @@ TEMPLATES = [ 'DIRS': [TEMPLATES_DIR], 'APP_DIRS': True, 'OPTIONS': { + 'builtins': [ + 'utilities.templatetags.builtins.filters', + 'utilities.templatetags.builtins.tags', + ], 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', @@ -201,6 +205,10 @@ TEMPLATES = [ 'DIRS': [TEMPLATES_DIR, PROXBOX_TEMPLATE_DIR], 'APP_DIRS': True, 'OPTIONS': { + 'builtins': [ + 'utilities.templatetags.builtins.filters', + 'utilities.templatetags.builtins.tags', + ], 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', From 46bd8e2f4faa06900f5b2faad15a1463d9e2f67b Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Wed, 6 Apr 2022 02:39:23 +0000 Subject: [PATCH 019/313] Deletes useless 'settings.py' --- settings.py | 629 ---------------------------------------------------- 1 file changed, 629 deletions(-) delete mode 100644 settings.py diff --git a/settings.py b/settings.py deleted file mode 100644 index d5a7bfa..0000000 --- a/settings.py +++ /dev/null @@ -1,629 +0,0 @@ -import importlib -import logging -import os -import platform -import re -import socket -import sys -import warnings -from urllib.parse import urlsplit - -from django.contrib.messages import constants as messages -from django.core.exceptions import ImproperlyConfigured, ValidationError -from django.core.validators import URLValidator - -from netbox.config import PARAMS - - -# -# Environment setup -# - -VERSION = '3.1.8' - -# Hostname -HOSTNAME = platform.node() - -# Set the base directory two levels up -BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - -# Validate Python version -if sys.version_info < (3, 7): - raise RuntimeError( - f"NetBox requires Python 3.7 or later. (Currently installed: Python {platform.python_version()})" - ) -if sys.version_info < (3, 8): - warnings.warn( - f"NetBox v3.2 will require Python 3.8 or later. (Currently installed: Python {platform.python_version()})" - ) - - -# -# Configuration import -# - -# Import configuration parameters -try: - from netbox import configuration -except ModuleNotFoundError as e: - if getattr(e, 'name') == 'configuration': - raise ImproperlyConfigured( - "Configuration file is not present. Please define netbox/netbox/configuration.py per the documentation." - ) - raise - -# Warn on removed config parameters -if hasattr(configuration, 'CACHE_TIMEOUT'): - warnings.warn( - "The CACHE_TIMEOUT configuration parameter was removed in v3.0.0 and no longer has any effect." - ) -if hasattr(configuration, 'RELEASE_CHECK_TIMEOUT'): - warnings.warn( - "The RELEASE_CHECK_TIMEOUT configuration parameter was removed in v3.0.0 and no longer has any effect." - ) - -# Enforce required configuration parameters -for parameter in ['ALLOWED_HOSTS', 'DATABASE', 'SECRET_KEY', 'REDIS']: - if not hasattr(configuration, parameter): - raise ImproperlyConfigured( - "Required parameter {} is missing from configuration.py.".format(parameter) - ) - -# Set required parameters -ALLOWED_HOSTS = getattr(configuration, 'ALLOWED_HOSTS') -DATABASE = getattr(configuration, 'DATABASE') -REDIS = getattr(configuration, 'REDIS') -SECRET_KEY = getattr(configuration, 'SECRET_KEY') - -# Set static config parameters -ADMINS = getattr(configuration, 'ADMINS', []) -BASE_PATH = getattr(configuration, 'BASE_PATH', '') -if BASE_PATH: - BASE_PATH = BASE_PATH.strip('/') + '/' # Enforce trailing slash only -CORS_ORIGIN_ALLOW_ALL = getattr(configuration, 'CORS_ORIGIN_ALLOW_ALL', False) -CORS_ORIGIN_REGEX_WHITELIST = getattr(configuration, 'CORS_ORIGIN_REGEX_WHITELIST', []) -CORS_ORIGIN_WHITELIST = getattr(configuration, 'CORS_ORIGIN_WHITELIST', []) -DATE_FORMAT = getattr(configuration, 'DATE_FORMAT', 'N j, Y') -DATETIME_FORMAT = getattr(configuration, 'DATETIME_FORMAT', 'N j, Y g:i a') -DEBUG = getattr(configuration, 'DEBUG', False) -DEVELOPER = getattr(configuration, 'DEVELOPER', False) -DOCS_ROOT = getattr(configuration, 'DOCS_ROOT', os.path.join(os.path.dirname(BASE_DIR), 'docs')) -EMAIL = getattr(configuration, 'EMAIL', {}) -EXEMPT_VIEW_PERMISSIONS = getattr(configuration, 'EXEMPT_VIEW_PERMISSIONS', []) -HTTP_PROXIES = getattr(configuration, 'HTTP_PROXIES', None) -INTERNAL_IPS = getattr(configuration, 'INTERNAL_IPS', ('127.0.0.1', '::1')) -LOGGING = getattr(configuration, 'LOGGING', {}) -LOGIN_PERSISTENCE = getattr(configuration, 'LOGIN_PERSISTENCE', False) -LOGIN_REQUIRED = getattr(configuration, 'LOGIN_REQUIRED', False) -LOGIN_TIMEOUT = getattr(configuration, 'LOGIN_TIMEOUT', None) -MEDIA_ROOT = getattr(configuration, 'MEDIA_ROOT', os.path.join(BASE_DIR, 'media')).rstrip('/') -METRICS_ENABLED = getattr(configuration, 'METRICS_ENABLED', False) -PLUGINS = getattr(configuration, 'PLUGINS', []) -PLUGINS_CONFIG = getattr(configuration, 'PLUGINS_CONFIG', {}) -RELEASE_CHECK_URL = getattr(configuration, 'RELEASE_CHECK_URL', None) -REMOTE_AUTH_AUTO_CREATE_USER = getattr(configuration, 'REMOTE_AUTH_AUTO_CREATE_USER', False) -REMOTE_AUTH_BACKEND = getattr(configuration, 'REMOTE_AUTH_BACKEND', 'netbox.authentication.RemoteUserBackend') -REMOTE_AUTH_DEFAULT_GROUPS = getattr(configuration, 'REMOTE_AUTH_DEFAULT_GROUPS', []) -REMOTE_AUTH_DEFAULT_PERMISSIONS = getattr(configuration, 'REMOTE_AUTH_DEFAULT_PERMISSIONS', {}) -REMOTE_AUTH_ENABLED = getattr(configuration, 'REMOTE_AUTH_ENABLED', False) -REMOTE_AUTH_HEADER = getattr(configuration, 'REMOTE_AUTH_HEADER', 'HTTP_REMOTE_USER') -REMOTE_AUTH_GROUP_HEADER = getattr(configuration, 'REMOTE_AUTH_GROUP_HEADER', 'HTTP_REMOTE_USER_GROUP') -REMOTE_AUTH_GROUP_SYNC_ENABLED = getattr(configuration, 'REMOTE_AUTH_GROUP_SYNC_ENABLED', False) -REMOTE_AUTH_SUPERUSER_GROUPS = getattr(configuration, 'REMOTE_AUTH_SUPERUSER_GROUPS', []) -REMOTE_AUTH_SUPERUSERS = getattr(configuration, 'REMOTE_AUTH_SUPERUSERS', []) -REMOTE_AUTH_STAFF_GROUPS = getattr(configuration, 'REMOTE_AUTH_STAFF_GROUPS', []) -REMOTE_AUTH_STAFF_USERS = getattr(configuration, 'REMOTE_AUTH_STAFF_USERS', []) -REMOTE_AUTH_GROUP_SEPARATOR = getattr(configuration, 'REMOTE_AUTH_GROUP_SEPARATOR', '|') -REPORTS_ROOT = getattr(configuration, 'REPORTS_ROOT', os.path.join(BASE_DIR, 'reports')).rstrip('/') -RQ_DEFAULT_TIMEOUT = getattr(configuration, 'RQ_DEFAULT_TIMEOUT', 300) -SCRIPTS_ROOT = getattr(configuration, 'SCRIPTS_ROOT', os.path.join(BASE_DIR, 'scripts')).rstrip('/') -SESSION_FILE_PATH = getattr(configuration, 'SESSION_FILE_PATH', None) -SESSION_COOKIE_NAME = getattr(configuration, 'SESSION_COOKIE_NAME', 'sessionid') -SHORT_DATE_FORMAT = getattr(configuration, 'SHORT_DATE_FORMAT', 'Y-m-d') -SHORT_DATETIME_FORMAT = getattr(configuration, 'SHORT_DATETIME_FORMAT', 'Y-m-d H:i') -SHORT_TIME_FORMAT = getattr(configuration, 'SHORT_TIME_FORMAT', 'H:i:s') -STORAGE_BACKEND = getattr(configuration, 'STORAGE_BACKEND', None) -STORAGE_CONFIG = getattr(configuration, 'STORAGE_CONFIG', {}) -TIME_FORMAT = getattr(configuration, 'TIME_FORMAT', 'g:i a') -TIME_ZONE = getattr(configuration, 'TIME_ZONE', 'UTC') - -# Check for hard-coded dynamic config parameters -for param in PARAMS: - if hasattr(configuration, param.name): - globals()[param.name] = getattr(configuration, param.name) - -# Validate update repo URL and timeout -if RELEASE_CHECK_URL: - validator = URLValidator( - message=( - "RELEASE_CHECK_URL must be a valid API URL. Example: " - "https://api.github.com/repos/netbox-community/netbox" - ) - ) - try: - validator(RELEASE_CHECK_URL) - except ValidationError as err: - raise ImproperlyConfigured(str(err)) - - -# -# Database -# - -# Only PostgreSQL is supported -if METRICS_ENABLED: - DATABASE.update({ - 'ENGINE': 'django_prometheus.db.backends.postgresql' - }) -else: - DATABASE.update({ - 'ENGINE': 'django.db.backends.postgresql' - }) - -DATABASES = { - 'default': DATABASE, -} - - -# -# Media storage -# - -if STORAGE_BACKEND is not None: - DEFAULT_FILE_STORAGE = STORAGE_BACKEND - - # django-storages - if STORAGE_BACKEND.startswith('storages.'): - - try: - import storages.utils - except ModuleNotFoundError as e: - if getattr(e, 'name') == 'storages': - raise ImproperlyConfigured( - f"STORAGE_BACKEND is set to {STORAGE_BACKEND} but django-storages is not present. It can be " - f"installed by running 'pip install django-storages'." - ) - raise e - - # Monkey-patch django-storages to fetch settings from STORAGE_CONFIG - def _setting(name, default=None): - if name in STORAGE_CONFIG: - return STORAGE_CONFIG[name] - return globals().get(name, default) - storages.utils.setting = _setting - -if STORAGE_CONFIG and STORAGE_BACKEND is None: - warnings.warn( - "STORAGE_CONFIG has been set in configuration.py but STORAGE_BACKEND is not defined. STORAGE_CONFIG will be " - "ignored." - ) - - -# -# Redis -# - -# Background task queuing -if 'tasks' not in REDIS: - raise ImproperlyConfigured( - "REDIS section in configuration.py is missing the 'tasks' subsection." - ) -TASKS_REDIS = REDIS['tasks'] -TASKS_REDIS_HOST = TASKS_REDIS.get('HOST', 'localhost') -TASKS_REDIS_PORT = TASKS_REDIS.get('PORT', 6379) -TASKS_REDIS_SENTINELS = TASKS_REDIS.get('SENTINELS', []) -TASKS_REDIS_USING_SENTINEL = all([ - isinstance(TASKS_REDIS_SENTINELS, (list, tuple)), - len(TASKS_REDIS_SENTINELS) > 0 -]) -TASKS_REDIS_SENTINEL_SERVICE = TASKS_REDIS.get('SENTINEL_SERVICE', 'default') -TASKS_REDIS_SENTINEL_TIMEOUT = TASKS_REDIS.get('SENTINEL_TIMEOUT', 10) -TASKS_REDIS_PASSWORD = TASKS_REDIS.get('PASSWORD', '') -TASKS_REDIS_DATABASE = TASKS_REDIS.get('DATABASE', 0) -TASKS_REDIS_SSL = TASKS_REDIS.get('SSL', False) -TASKS_REDIS_SKIP_TLS_VERIFY = TASKS_REDIS.get('INSECURE_SKIP_TLS_VERIFY', False) - -# Caching -if 'caching' not in REDIS: - raise ImproperlyConfigured( - "REDIS section in configuration.py is missing caching subsection." - ) -CACHING_REDIS_HOST = REDIS['caching'].get('HOST', 'localhost') -CACHING_REDIS_PORT = REDIS['caching'].get('PORT', 6379) -CACHING_REDIS_DATABASE = REDIS['caching'].get('DATABASE', 0) -CACHING_REDIS_PASSWORD = REDIS['caching'].get('PASSWORD', '') -CACHING_REDIS_SENTINELS = REDIS['caching'].get('SENTINELS', []) -CACHING_REDIS_SENTINEL_SERVICE = REDIS['caching'].get('SENTINEL_SERVICE', 'default') -CACHING_REDIS_PROTO = 'rediss' if REDIS['caching'].get('SSL', False) else 'redis' -CACHING_REDIS_SKIP_TLS_VERIFY = REDIS['caching'].get('INSECURE_SKIP_TLS_VERIFY', False) - -CACHES = { - 'default': { - 'BACKEND': 'django_redis.cache.RedisCache', - 'LOCATION': f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_HOST}:{CACHING_REDIS_PORT}/{CACHING_REDIS_DATABASE}', - 'OPTIONS': { - 'CLIENT_CLASS': 'django_redis.client.DefaultClient', - 'PASSWORD': CACHING_REDIS_PASSWORD, - } - } -} -if CACHING_REDIS_SENTINELS: - DJANGO_REDIS_CONNECTION_FACTORY = 'django_redis.pool.SentinelConnectionFactory' - CACHES['default']['LOCATION'] = f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_SENTINEL_SERVICE}/{CACHING_REDIS_DATABASE}' - CACHES['default']['OPTIONS']['CLIENT_CLASS'] = 'django_redis.client.SentinelClient' - CACHES['default']['OPTIONS']['SENTINELS'] = CACHING_REDIS_SENTINELS -if CACHING_REDIS_SKIP_TLS_VERIFY: - CACHES['default']['OPTIONS'].setdefault('CONNECTION_POOL_KWARGS', {}) - CACHES['default']['OPTIONS']['CONNECTION_POOL_KWARGS']['ssl_cert_reqs'] = False - - -# -# Sessions -# - -if LOGIN_TIMEOUT is not None: - # Django default is 1209600 seconds (14 days) - SESSION_COOKIE_AGE = LOGIN_TIMEOUT -SESSION_SAVE_EVERY_REQUEST = bool(LOGIN_PERSISTENCE) -if SESSION_FILE_PATH is not None: - SESSION_ENGINE = 'django.contrib.sessions.backends.file' - - -# -# Email -# - -EMAIL_HOST = EMAIL.get('SERVER') -EMAIL_HOST_USER = EMAIL.get('USERNAME') -EMAIL_HOST_PASSWORD = EMAIL.get('PASSWORD') -EMAIL_PORT = EMAIL.get('PORT', 25) -EMAIL_SSL_CERTFILE = EMAIL.get('SSL_CERTFILE') -EMAIL_SSL_KEYFILE = EMAIL.get('SSL_KEYFILE') -EMAIL_SUBJECT_PREFIX = '[NetBox] ' -EMAIL_USE_SSL = EMAIL.get('USE_SSL', False) -EMAIL_USE_TLS = EMAIL.get('USE_TLS', False) -EMAIL_TIMEOUT = EMAIL.get('TIMEOUT', 10) -SERVER_EMAIL = EMAIL.get('FROM_EMAIL') - - -# -# Django -# - -INSTALLED_APPS = [ - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', - 'django.contrib.humanize', - 'corsheaders', - 'debug_toolbar', - 'graphiql_debug_toolbar', - 'django_filters', - 'django_tables2', - 'django_prometheus', - 'graphene_django', - 'mptt', - 'rest_framework', - 'social_django', - 'taggit', - 'timezone_field', - 'circuits', - 'dcim', - 'ipam', - 'extras', - 'tenancy', - 'users', - 'utilities', - 'virtualization', - 'wireless', - 'django_rq', # Must come after extras to allow overriding management commands - 'drf_yasg', -] - -# Middleware -MIDDLEWARE = [ - 'graphiql_debug_toolbar.middleware.DebugToolbarMiddleware', - 'django_prometheus.middleware.PrometheusBeforeMiddleware', - 'corsheaders.middleware.CorsMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'django.middleware.security.SecurityMiddleware', - 'netbox.middleware.ExceptionHandlingMiddleware', - 'netbox.middleware.RemoteUserMiddleware', - 'netbox.middleware.LoginRequiredMiddleware', - 'netbox.middleware.DynamicConfigMiddleware', - 'netbox.middleware.APIVersionMiddleware', - 'netbox.middleware.ObjectChangeMiddleware', - 'django_prometheus.middleware.PrometheusAfterMiddleware', -] - -ROOT_URLCONF = 'netbox.urls' - -TEMPLATES_DIR = BASE_DIR + '/templates' -TEMPLATES = [ - { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [TEMPLATES_DIR], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.template.context_processors.media', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - 'netbox.context_processors.settings_and_registry', - ], - }, - }, -] - -# Set up authentication backends -AUTHENTICATION_BACKENDS = [ - REMOTE_AUTH_BACKEND, - 'netbox.authentication.ObjectPermissionBackend', -] - -# Internationalization -LANGUAGE_CODE = 'en-us' -USE_I18N = True -USE_TZ = True - -# WSGI -WSGI_APPLICATION = 'netbox.wsgi.application' -SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') -USE_X_FORWARDED_HOST = True -X_FRAME_OPTIONS = 'SAMEORIGIN' - -# Static files (CSS, JavaScript, Images) -STATIC_ROOT = BASE_DIR + '/static' -STATIC_URL = f'/{BASE_PATH}static/' -STATICFILES_DIRS = ( - os.path.join(BASE_DIR, 'project-static', 'dist'), - os.path.join(BASE_DIR, 'project-static', 'img'), - ('docs', os.path.join(BASE_DIR, 'project-static', 'docs')), # Prefix with /docs -) - -# Media -MEDIA_URL = '/{}media/'.format(BASE_PATH) - -# Disable default limit of 1000 fields per request. Needed for bulk deletion of objects. (Added in Django 1.10.) -DATA_UPLOAD_MAX_NUMBER_FIELDS = None - -# Messages -MESSAGE_TAGS = { - messages.ERROR: 'danger', -} - -# Authentication URLs -LOGIN_URL = f'/{BASE_PATH}login/' -LOGIN_REDIRECT_URL = f'/{BASE_PATH}' - -CSRF_TRUSTED_ORIGINS = ALLOWED_HOSTS - -DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' - -# Exclude potentially sensitive models from wildcard view exemption. These may still be exempted -# by specifying the model individually in the EXEMPT_VIEW_PERMISSIONS configuration parameter. -EXEMPT_EXCLUDE_MODELS = ( - ('auth', 'group'), - ('auth', 'user'), - ('users', 'objectpermission'), -) - -# All URLs starting with a string listed here are exempt from login enforcement -EXEMPT_PATHS = ( - f'/{BASE_PATH}api/', - f'/{BASE_PATH}graphql/', - f'/{BASE_PATH}login/', - f'/{BASE_PATH}oauth/', - f'/{BASE_PATH}metrics', -) - - -# -# Django social auth -# - -# Load all SOCIAL_AUTH_* settings from the user configuration -for param in dir(configuration): - if param.startswith('SOCIAL_AUTH_'): - globals()[param] = getattr(configuration, param) - -SOCIAL_AUTH_JSONFIELD_ENABLED = True - - -# -# Django Prometheus -# - -PROMETHEUS_EXPORT_MIGRATIONS = False - - -# -# Django filters -# - -FILTERS_NULL_CHOICE_LABEL = 'None' -FILTERS_NULL_CHOICE_VALUE = 'null' - - -# -# Django REST framework (API) -# - -REST_FRAMEWORK_VERSION = '.'.join(VERSION.split('-')[0].split('.')[:2]) # Use major.minor as API version -REST_FRAMEWORK = { - 'ALLOWED_VERSIONS': [REST_FRAMEWORK_VERSION], - 'COERCE_DECIMAL_TO_STRING': False, - 'DEFAULT_AUTHENTICATION_CLASSES': ( - 'rest_framework.authentication.SessionAuthentication', - 'netbox.api.authentication.TokenAuthentication', - ), - 'DEFAULT_FILTER_BACKENDS': ( - 'django_filters.rest_framework.DjangoFilterBackend', - ), - 'DEFAULT_METADATA_CLASS': 'netbox.api.metadata.BulkOperationMetadata', - 'DEFAULT_PAGINATION_CLASS': 'netbox.api.pagination.OptionalLimitOffsetPagination', - 'DEFAULT_PERMISSION_CLASSES': ( - 'netbox.api.authentication.TokenPermissions', - ), - 'DEFAULT_RENDERER_CLASSES': ( - 'rest_framework.renderers.JSONRenderer', - 'netbox.api.renderers.FormlessBrowsableAPIRenderer', - ), - 'DEFAULT_VERSION': REST_FRAMEWORK_VERSION, - 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.AcceptHeaderVersioning', - # 'PAGE_SIZE': PAGINATE_COUNT, - 'SCHEMA_COERCE_METHOD_NAMES': { - # Default mappings - 'retrieve': 'read', - 'destroy': 'delete', - # Custom operations - 'bulk_destroy': 'bulk_delete', - }, - 'VIEW_NAME_FUNCTION': 'utilities.api.get_view_name', -} - - -# -# Graphene -# - -GRAPHENE = { - # Avoids naming collision on models with 'type' field; see - # https://github.com/graphql-python/graphene-django/issues/185 - 'DJANGO_CHOICE_FIELD_ENUM_V3_NAMING': True, -} - - -# -# drf_yasg (OpenAPI/Swagger) -# - -SWAGGER_SETTINGS = { - 'DEFAULT_AUTO_SCHEMA_CLASS': 'utilities.custom_inspectors.NetBoxSwaggerAutoSchema', - 'DEFAULT_FIELD_INSPECTORS': [ - 'utilities.custom_inspectors.CustomFieldsDataFieldInspector', - 'utilities.custom_inspectors.JSONFieldInspector', - 'utilities.custom_inspectors.NullableBooleanFieldInspector', - 'utilities.custom_inspectors.ChoiceFieldInspector', - 'utilities.custom_inspectors.SerializedPKRelatedFieldInspector', - 'drf_yasg.inspectors.CamelCaseJSONFilter', - 'drf_yasg.inspectors.ReferencingSerializerInspector', - 'drf_yasg.inspectors.RelatedFieldInspector', - 'drf_yasg.inspectors.ChoiceFieldInspector', - 'drf_yasg.inspectors.FileFieldInspector', - 'drf_yasg.inspectors.DictFieldInspector', - 'drf_yasg.inspectors.SerializerMethodFieldInspector', - 'drf_yasg.inspectors.SimpleFieldInspector', - 'drf_yasg.inspectors.StringDefaultFieldInspector', - ], - 'DEFAULT_FILTER_INSPECTORS': [ - 'drf_yasg.inspectors.CoreAPICompatInspector', - ], - 'DEFAULT_INFO': 'netbox.urls.openapi_info', - 'DEFAULT_MODEL_DEPTH': 1, - 'DEFAULT_PAGINATOR_INSPECTORS': [ - 'utilities.custom_inspectors.NullablePaginatorInspector', - 'drf_yasg.inspectors.DjangoRestResponsePagination', - 'drf_yasg.inspectors.CoreAPICompatInspector', - ], - 'SECURITY_DEFINITIONS': { - 'Bearer': { - 'type': 'apiKey', - 'name': 'Authorization', - 'in': 'header', - } - }, - 'VALIDATOR_URL': None, -} - - -# -# Django RQ (Webhooks backend) -# - -if TASKS_REDIS_USING_SENTINEL: - RQ_PARAMS = { - 'SENTINELS': TASKS_REDIS_SENTINELS, - 'MASTER_NAME': TASKS_REDIS_SENTINEL_SERVICE, - 'DB': TASKS_REDIS_DATABASE, - 'PASSWORD': TASKS_REDIS_PASSWORD, - 'SOCKET_TIMEOUT': None, - 'CONNECTION_KWARGS': { - 'socket_connect_timeout': TASKS_REDIS_SENTINEL_TIMEOUT - }, - } -else: - RQ_PARAMS = { - 'HOST': TASKS_REDIS_HOST, - 'PORT': TASKS_REDIS_PORT, - 'DB': TASKS_REDIS_DATABASE, - 'PASSWORD': TASKS_REDIS_PASSWORD, - 'SSL': TASKS_REDIS_SSL, - 'SSL_CERT_REQS': None if TASKS_REDIS_SKIP_TLS_VERIFY else 'required', - 'DEFAULT_TIMEOUT': RQ_DEFAULT_TIMEOUT, - } - -RQ_QUEUES = { - 'high': RQ_PARAMS, - 'default': RQ_PARAMS, - 'low': RQ_PARAMS, -} - - -# -# Plugins -# - -for plugin_name in PLUGINS: - - # Import plugin module - try: - plugin = importlib.import_module(plugin_name) - except ModuleNotFoundError as e: - if getattr(e, 'name') == plugin_name: - raise ImproperlyConfigured( - "Unable to import plugin {}: Module not found. Check that the plugin module has been installed within the " - "correct Python environment.".format(plugin_name) - ) - raise e - - # Determine plugin config and add to INSTALLED_APPS. - try: - plugin_config = plugin.config - INSTALLED_APPS.append("{}.{}".format(plugin_config.__module__, plugin_config.__name__)) - except AttributeError: - raise ImproperlyConfigured( - "Plugin {} does not provide a 'config' variable. This should be defined in the plugin's __init__.py file " - "and point to the PluginConfig subclass.".format(plugin_name) - ) - - # Validate user-provided configuration settings and assign defaults - if plugin_name not in PLUGINS_CONFIG: - PLUGINS_CONFIG[plugin_name] = {} - plugin_config.validate(PLUGINS_CONFIG[plugin_name], VERSION) - - # Add middleware - plugin_middleware = plugin_config.middleware - if plugin_middleware and type(plugin_middleware) in (list, tuple): - MIDDLEWARE.extend(plugin_middleware) - - # Create RQ queues dedicated to the plugin - # we use the plugin name as a prefix for queue name's defined in the plugin config - # ex: mysuperplugin.mysuperqueue1 - if type(plugin_config.queues) is not list: - raise ImproperlyConfigured( - "Plugin {} queues must be a list.".format(plugin_name) - ) - RQ_QUEUES.update({ - f"{plugin_name}.{queue}": RQ_PARAMS for queue in plugin_config.queues - }) From 1a09734746f16220505e21a0ba66e71b1ea5a652 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Wed, 27 Apr 2022 07:46:51 -0300 Subject: [PATCH 020/313] Fix github organization name --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c50feec..b60426d 100755 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ cd /opt/netbox/netbox Clone netbox-proxbox repository ``` -git clone https://github.com/N-Multifibra/netbox-proxbox.git +git clone https://github.com/netdevopsbr/netbox-proxbox.git ``` Install netbox-proxbox From 498e1e001e940c2f23f62b375244048bede086a6 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Sat, 30 Apr 2022 18:30:40 +0000 Subject: [PATCH 021/313] Add homepage view --- netbox_proxbox/navigation.py | 33 ++++++++++--------- .../templates/netbox_proxbox/home.html | 16 +++++++++ netbox_proxbox/urls.py | 7 +++- netbox_proxbox/views.py | 20 ++++++++++- 4 files changed, 59 insertions(+), 17 deletions(-) create mode 100644 netbox_proxbox/templates/netbox_proxbox/home.html diff --git a/netbox_proxbox/navigation.py b/netbox_proxbox/navigation.py index c105b45..59482d3 100755 --- a/netbox_proxbox/navigation.py +++ b/netbox_proxbox/navigation.py @@ -3,20 +3,23 @@ menu_items = ( PluginMenuItem( - link="plugins:netbox_proxbox:proxmoxvm_list", - link_text="Proxmox VM/CT", - buttons=( - PluginMenuButton( - # match the names of the path for create view defined in ./urls.py - link="plugins:netbox_proxbox:proxmoxvm_add", - # text that appears when hovering the ubtton - title="Add", - # font-awesome icon to use - icon_class="mdi mdi-plus-thick", # 'fa fa-plus' didn't work - # defines color button to green - color=ButtonColorChoices.GREEN, - permissions=["netbox_proxbox.add_proxmoxvm"], - ), - ), + link="plugins:netbox_proxbox:home", + link_text="Home", ), ) + +''' +buttons=( + PluginMenuButton( + # match the names of the path for create view defined in ./urls.py + link="plugins:netbox_proxbox:proxmoxvm_add", + # text that appears when hovering the ubtton + title="Add", + # font-awesome icon to use + icon_class="mdi mdi-plus-thick", # 'fa fa-plus' didn't work + # defines color button to green + color=ButtonColorChoices.GREEN, + permissions=["netbox_proxbox.add_proxmoxvm"], + ), +), +''' \ No newline at end of file diff --git a/netbox_proxbox/templates/netbox_proxbox/home.html b/netbox_proxbox/templates/netbox_proxbox/home.html new file mode 100644 index 0000000..17cb322 --- /dev/null +++ b/netbox_proxbox/templates/netbox_proxbox/home.html @@ -0,0 +1,16 @@ +{% extends 'base/layout.html' %} + +{% block content %} + {# Full Update Button#} +
+ {% if perms.netbox_proxbox.add_proxmoxvm %} + Proxmox Full Update + {% endif %} +
+{% endblock %} + +{% block footer_links %} + {{ block.super }} + + {% include "footer.html" %} +{% endblock %} \ No newline at end of file diff --git a/netbox_proxbox/urls.py b/netbox_proxbox/urls.py index a420ace..d870873 100755 --- a/netbox_proxbox/urls.py +++ b/netbox_proxbox/urls.py @@ -3,6 +3,7 @@ from django.urls import path from .views import ( + HomeView, ProxmoxVMCreateView, ProxmoxVMDeleteView, ProxmoxVMEditView, @@ -15,7 +16,11 @@ import json urlpatterns = [ - path("", ProxmoxVMListView.as_view(), name="proxmoxvm_list"), + # Home View + path('', HomeView.as_view(), name='home'), + + # Base Views + path("list/", ProxmoxVMListView.as_view(), name="proxmoxvm_list"), # = plugins/netbox_proxmoxvm/ | example: plugins/netbox_proxmoxvm/1/ # ProxmoxVMView.as_view() - as.view() is need so that our view class can process requests. # as_view() takes request and returns well-formed response, that is a class based view. diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index 6aec2b6..b2584f8 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -18,6 +18,20 @@ from netbox_proxbox import proxbox_api import json + +class HomeView(View): + """Homepage""" + template_name = 'netbox_proxbox/home.html' + + # service incoming GET HTTP requests + def get(self, request): + """Get request.""" + return render( + request, + self.template_name, + ) + + class ProxmoxFullUpdate(PermissionRequiredMixin, View): """Full Update of Proxmox information on Netbox.""" @@ -41,6 +55,7 @@ def get(self, request): }, ) + class ProxmoxVMView(PermissionRequiredMixin, View): """Display Virtual Machine details""" @@ -68,6 +83,7 @@ def get(self, request, pk): }, ) + class ProxmoxVMListView(PermissionRequiredMixin, View): """View for listing all existing Virtual Machines.""" @@ -106,7 +122,7 @@ def get(self, request): } ) - + # 'CreateView' is provided by Django class ProxmoxVMCreateView(PermissionRequiredMixin, CreateView): """View for creating a new ProxmoxVM instance.""" @@ -116,6 +132,7 @@ class ProxmoxVMCreateView(PermissionRequiredMixin, CreateView): form_class = ProxmoxVMForm template_name = "netbox_proxbox/proxmox_vm_edit.html" + class ProxmoxVMDeleteView(PermissionRequiredMixin, DeleteView): """View for deleting ProxmoxVM instance.""" @@ -129,6 +146,7 @@ class ProxmoxVMDeleteView(PermissionRequiredMixin, DeleteView): # template_name = points to the template that will be rendred when asked to confirm the deletion template_name = "netbox_proxbox/proxmox_vm_delete.html" + class ProxmoxVMEditView(PermissionRequiredMixin, UpdateView): """View for editing a ProxmoxVM instance.""" From d88e903a4a7cc2ac32f9aa6bdef22e3406bcb50f Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Sat, 30 Apr 2022 18:32:56 +0000 Subject: [PATCH 022/313] removes 'BaseTable' import and change inheritance --- netbox_proxbox/tables.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/netbox_proxbox/tables.py b/netbox_proxbox/tables.py index 2c79faf..05f97fc 100755 --- a/netbox_proxbox/tables.py +++ b/netbox_proxbox/tables.py @@ -1,10 +1,10 @@ # tables.py import django_tables2 as tables -from utilities.tables import BaseTable -from .models import ProxmoxVM +from netbox.tables import NetBoxTable, ChoiceFieldColumn +from .models import ProxmoxVM -class ProxmoxVMTable(BaseTable): +class ProxmoxVMTable(NetBoxTable): """Table for displaying BGP Peering objects.""" id = tables.LinkColumn() @@ -12,7 +12,7 @@ class ProxmoxVMTable(BaseTable): virtual_machine = tables.LinkColumn() proxmox_vm_id = tables.LinkColumn() - class Meta(BaseTable.Meta): + class Meta(NetBoxTable.Meta): model = ProxmoxVM fields = ( "id", From 4e1194954de500b23face369f70bee9257ec954d Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Sat, 7 May 2022 20:54:37 +0000 Subject: [PATCH 023/313] Version changed to v0.0.4] --- README.md | 4 +++- netbox_proxbox/__init__.py | 2 +- pyproject.toml | 2 +- setup.py | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 67bc8db..28218e9 100755 --- a/README.md +++ b/README.md @@ -35,7 +35,9 @@ The following table shows the Netbox and Proxmox versions compatible (tested) wi | netbox version | proxmox version | proxbox version | ------------- |-------------|-------------| -| >= v3.0.0 | >= v6.2.0 | v0.0.3 +| >= v3.2.0 | >= v6.2.0 | =v0.0.4 +| >= v3.0.0 < v3.2| >= v6.2.0 | =v0.0.3 +

diff --git a/netbox_proxbox/__init__.py b/netbox_proxbox/__init__.py index bcd2515..2a7b84c 100755 --- a/netbox_proxbox/__init__.py +++ b/netbox_proxbox/__init__.py @@ -5,7 +5,7 @@ class ProxboxConfig(PluginConfig): name = "netbox_proxbox" verbose_name = "Proxbox" description = "Integrates Proxmox and Netbox" - version = "0.0.3" + version = "0.0.4" author = "Emerson Felipe (@emersonfelipesp)" author_email = "emerson.felipe@nmultifibra.com.br" base_url = "proxbox" diff --git a/pyproject.toml b/pyproject.toml index 0de438f..d06ed72 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "netbox-proxbox" -version = "0.0.3" +version = "0.0.4" description = "Netbox Plugin - Integrate Proxmox and Netbox" authors = ["Emerson Felipe "] license = "Apache-2.0" diff --git a/setup.py b/setup.py index 15807b4..8f8be1c 100755 --- a/setup.py +++ b/setup.py @@ -37,7 +37,7 @@ setup( name="netbox-proxbox", - version="0.0.3.dev3", + version="0.0.4", author="Emerson Felipe", author_email="emerson.felipe@nmultifibra.com.br", description="Integration between Proxmox and Netbox", From d281777448c81ca86c2ea82af685110a92fec667 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Wed, 11 May 2022 15:21:54 -0300 Subject: [PATCH 024/313] Add error example to step 1.3.2 --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 52a2c20..dc62ca4 100755 --- a/README.md +++ b/README.md @@ -224,6 +224,10 @@ TEMPLATES = [ }, ] ``` + +### Example of error if not configuring the code above on `settings.py` +![image](https://user-images.githubusercontent.com/24397251/167919319-00c67a81-0679-4114-a66d-3e294b3ae28c.png) + I did it because I had to change the **base/layout.html** from Netbox, since there is no **Jinja2 block** to fill with custom information into the **footer HTML tag** --- From 68417abb688664feff1cb0eeee4774e1c6c07321 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Thu, 12 May 2022 11:49:44 -0300 Subject: [PATCH 025/313] Add new documentation section --- README.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index dc62ca4..4a3e545 100755 --- a/README.md +++ b/README.md @@ -1,8 +1,18 @@ -

- Proxbox logo -

+
+ + Proxbox logo + +
+ +
+ +### [New Documentation available!](https://docs.netbox.dev.br/en/netbox/plugins/netbox-proxbox) +
+
+
+ + -# proxbox ## Netbox Plugin which integrates [Proxmox](https://www.proxmox.com/) and [Netbox](https://netbox.readthedocs.io/)! From 2246dedaa4ff67fda71394e2d3e7ec82f1c40492 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Fri, 13 May 2022 11:59:17 -0300 Subject: [PATCH 026/313] Update README.md --- README.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4a3e545..88f088e 100755 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ The plugin is available as a Python package in pypi and can be installed with pi ### 1.1. Install package -#### 1.1.1. Using pip (production use - not working yet!) +#### 1.1.1. Using pip (production use - [not working yet!](https://github.com/netdevopsbr/netbox-proxbox/issues/37)) Enter Netbox's virtual environment. ``` @@ -177,7 +177,11 @@ PLUGINS_CONFIG = { Edit **/opt/netbox/netbox/netbox** and find TEMPLATE_DIR section -- How it is configured (Netbox >= v3.2.0): +
+ +### How it is configured by default (Netbox >= v3.2.0): +
+ ```python TEMPLATES_DIR = BASE_DIR + '/templates' TEMPLATES = [ @@ -205,7 +209,11 @@ TEMPLATES = [
-- How it is must be: +
+ +### How it MUST be configured to Proxbox work: +
+ ```python TEMPLATES_DIR = BASE_DIR + '/templates' @@ -215,7 +223,8 @@ PROXBOX_TEMPLATE_DIR = BASE_DIR + '/netbox-proxbox/netbox_proxbox/templates/netb TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [TEMPLATES_DIR, PROXBOX_TEMPLATE_DIR], + 'DIRS': [TEMPLATES_DIR, PROXBOX_TEMPLATE_DIR], # <--- IMPORTANT + # The Parameters below is equal to default Netbox config 'APP_DIRS': True, 'OPTIONS': { 'builtins': [ From 5e4676a7521e093b3452cb15fc6b41673604b147 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=20Kl=C3=A4rner?= Date: Thu, 19 May 2022 19:34:07 +0200 Subject: [PATCH 027/313] fix inconsistent indentation --- setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 8f8be1c..cf6e6d4 100755 --- a/setup.py +++ b/setup.py @@ -46,8 +46,8 @@ long_description_content_type="text/markdown", classifiers=[ "Programming Language :: Python :: 3", - "Framework :: Django", - "Operating System :: Unix", + "Framework :: Django", + "Operating System :: Unix", "License :: OSI Approved :: Apache Software License", ], keywords="netbox netbox-plugin plugin proxmox proxmoxer pynetbox", From f166c3d73efbc442c535348d5ecadf22eecb375e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=20Kl=C3=A4rner?= Date: Thu, 19 May 2022 20:09:12 +0200 Subject: [PATCH 028/313] specify that the README.md is needed --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index d06ed72..54d6e1a 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,6 +2,7 @@ name = "netbox-proxbox" version = "0.0.4" description = "Netbox Plugin - Integrate Proxmox and Netbox" +readme = "README.md" authors = ["Emerson Felipe "] license = "Apache-2.0" packages = [ From 52676da3d388b50dfc868075608f698102f6a4ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=20Kl=C3=A4rner?= Date: Thu, 19 May 2022 17:22:10 +0200 Subject: [PATCH 029/313] build an action to automatically push to PyPI --- .github/workflows/pypi.yml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .github/workflows/pypi.yml diff --git a/.github/workflows/pypi.yml b/.github/workflows/pypi.yml new file mode 100644 index 0000000..33c404f --- /dev/null +++ b/.github/workflows/pypi.yml @@ -0,0 +1,32 @@ +name: Upload Python Package + +on: + release: + types: + - created + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools wheel build + + - name: Build distributable + run: | + python -m build + + - name: Publish a Python distribution to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + user: __token__ + password: ${{ secrets.PYPI_API_TOKEN }} From df551362c896faae56356192a7cf965456b08e04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=20Kl=C3=A4rner?= Date: Thu, 19 May 2022 20:33:44 +0200 Subject: [PATCH 030/313] remove "not working" notice on pip install --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 88f088e..39c57b8 100755 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ The plugin is available as a Python package in pypi and can be installed with pi ### 1.1. Install package -#### 1.1.1. Using pip (production use - [not working yet!](https://github.com/netdevopsbr/netbox-proxbox/issues/37)) +#### 1.1.1. Using pip (production use) Enter Netbox's virtual environment. ``` From 5864718a29b268a4922ec8d88a215d4610b2092a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=20Kl=C3=A4rner?= Date: Fri, 20 May 2022 11:23:40 +0200 Subject: [PATCH 031/313] document when username and password are required --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 88f088e..c544456 100755 --- a/README.md +++ b/README.md @@ -147,8 +147,8 @@ PLUGINS_CONFIG = { 'proxmox': { 'domain': 'proxbox.example.com', # May also be IP address 'http_port': 8006, - 'user': 'root@pam', - 'password': 'Strong@P4ssword', + 'user': 'root@pam', # always required + 'password': 'Strong@P4ssword', # only required, if you don't want to use token based authentication 'token': { 'name': 'tokenID', # Only type the token name and not the 'user@pam:tokenID' format 'value': '039az154-23b2-4be0-8d20-b66abc8c4686' From 8e8286319cb8b770f3557e8d0788c4abcbcc7517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=20Kl=C3=A4rner?= Date: Fri, 20 May 2022 14:27:23 +0200 Subject: [PATCH 032/313] remove numpy and matplotlib - they do not seem to be in use --- pyproject.toml | 2 -- setup.py | 2 -- 2 files changed, 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d06ed72..4f73350 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,8 +23,6 @@ yamllint = "^1.26.1" [build-system] requires = [ "poetry-core>=1.0.0", - "numpy", - "matplotlib", "requests", "pynetbox", "proxmoxer" diff --git a/setup.py b/setup.py index 8f8be1c..fc06c95 100755 --- a/setup.py +++ b/setup.py @@ -18,8 +18,6 @@ requires = [ 'poetry', 'invoke', - 'numpy', - 'matplotlib', 'requests>=2', 'pynetbox>=5', 'paramiko>=2', From fba87f0ec44bcb5e20ca820923d54a5950e03a28 Mon Sep 17 00:00:00 2001 From: Emerson Felipe Date: Sat, 21 May 2022 18:21:33 -0300 Subject: [PATCH 033/313] Release of v0.0.5-beta1 --- netbox_proxbox/__init__.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/netbox_proxbox/__init__.py b/netbox_proxbox/__init__.py index 2a7b84c..80f0f8f 100755 --- a/netbox_proxbox/__init__.py +++ b/netbox_proxbox/__init__.py @@ -5,7 +5,7 @@ class ProxboxConfig(PluginConfig): name = "netbox_proxbox" verbose_name = "Proxbox" description = "Integrates Proxmox and Netbox" - version = "0.0.4" + version = "0.0.5-beta1" author = "Emerson Felipe (@emersonfelipesp)" author_email = "emerson.felipe@nmultifibra.com.br" base_url = "proxbox" diff --git a/setup.py b/setup.py index de87beb..388ec29 100755 --- a/setup.py +++ b/setup.py @@ -35,7 +35,7 @@ setup( name="netbox-proxbox", - version="0.0.4", + version="0.0.5-beta1", author="Emerson Felipe", author_email="emerson.felipe@nmultifibra.com.br", description="Integration between Proxmox and Netbox", From 34bd307dea8f4afe84d45d8f796caab2da4602f2 Mon Sep 17 00:00:00 2001 From: Chankster <442907+Chankster@users.noreply.github.com> Date: Thu, 2 Feb 2023 15:01:11 +0000 Subject: [PATCH 034/313] Update virtualmachine choices --- netbox_proxbox/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox_proxbox/models.py b/netbox_proxbox/models.py index d7535a1..af72e78 100755 --- a/netbox_proxbox/models.py +++ b/netbox_proxbox/models.py @@ -12,7 +12,7 @@ #from ipam.fields import IPAddressField # Class defined by Netbox to define (choice) the VM operational status -from virtualization.models import VirtualMachineStatusChoices +from virtualization.choices import VirtualMachineStatusChoices # 'RestrictedQuerySet' will make it possible to filter out objects # for which user doest nothave specific rights From e2ca251fa329d41ccca085c0c39174ff928f28d8 Mon Sep 17 00:00:00 2001 From: Chankster <442907+Chankster@users.noreply.github.com> Date: Thu, 2 Feb 2023 15:26:43 +0000 Subject: [PATCH 035/313] Clarify pynetbox config in README.md --- README.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 2725d60..3d18c48 100755 --- a/README.md +++ b/README.md @@ -138,9 +138,10 @@ PLUGINS = ['netbox_proxbox'] #### 1.3.1. Change Netbox '**[configuration.py](https://github.com/netbox-community/netbox/blob/develop/netbox/netbox/configuration.example.py)**' to add PLUGIN parameters The plugin's configuration is also located in **/opt/netbox/netbox/netbox/configuration.py**: -Replace the values with your own following the [Configuration Parameters](#configuration-parameters) section. +Replace the values with your own following the [Configuration Parameters](#2-configuration-parameters) section. + +**OBS:** You do not need to configure all the parameters, only the one's different from the default values. It means that if you have some value equal to the one below, you can skip its configuration. For netbox you should ensure the domain/port either targets gunicorn or a true http port that is not redirected to https. -**OBS:** You do not need to configure all the parameters, only the one's different from the default values. It means that if you have some value equal to the one below, you can skip its configuration. ```python PLUGINS_CONFIG = { 'netbox_proxbox': { @@ -156,8 +157,8 @@ PLUGINS_CONFIG = { 'ssl': False }, 'netbox': { - 'domain': 'netbox.example.com', # May also be IP address - 'http_port': 80, + 'domain': 'localhost', # Ensure localhost is added to ALLOWED_HOSTS + 'http_port': 8001, # Gunicorn port. 'token': '0dd7cddfaee3b38bbffbd2937d44c4a03f9c9d38', 'ssl': False, # There is no support to SSL on Netbox yet, so let it always False. 'settings': { @@ -284,8 +285,8 @@ The following options are available: * `proxmox.ssl`: (Bool) Defines the use of SSL (default: False). * `netbox`: (Dict) Netbox related configuration to use pynetbox. -* `netbox.domain`: (String) Domain or IP address of Netbox. -* `netbox.http_port`: (Integer) Netbox HTTP PORT (default: 80). +* `netbox.domain`: (String) Domain or IP address of Netbox. Ensure name or ip is added to `ALLOWED_HOSTS` +* `netbox.http_port`: (Integer) Netbox HTTP PORT (default: 8001). If you are not targeting gunicorn directly make sure the HTTP port is not redirected to HTTPS by your HTTP server. * `netbox.token`: (String) Netbox Token Value. * `netbox.ssl`: (Bool) Defines the use of SSL (default: False). - Proxbox doesn't support SSL on Netbox yet. * `netbox.settings`: (Dict) Default items of Netbox to be used by Proxbox. From 52995ebb5c17660ec3a0502207eeafa8dc64b041 Mon Sep 17 00:00:00 2001 From: Chankster <442907+Chankster@users.noreply.github.com> Date: Thu, 2 Feb 2023 16:12:59 +0000 Subject: [PATCH 036/313] Fix footer path --- README.md | 74 +------------------ .../templates/netbox_proxbox/home.html | 4 +- .../proxmox_vm_full_update.html | 4 +- .../netbox_proxbox/proxmox_vm_list.html | 4 +- 4 files changed, 7 insertions(+), 79 deletions(-) diff --git a/README.md b/README.md index 2725d60..98dbf6c 100755 --- a/README.md +++ b/README.md @@ -175,79 +175,7 @@ PLUGINS_CONFIG = { > Probably on the next release of Netbox, it will not be necessary to make the configuration below! As the [Pull Request #8733](https://github.com/netbox-community/netbox/pull/8734) got merged to develop branch -Edit **/opt/netbox/netbox/netbox** and find TEMPLATE_DIR section - -
- -### How it is configured by default (Netbox >= v3.2.0): -
- -```python -TEMPLATES_DIR = BASE_DIR + '/templates' -TEMPLATES = [ - { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [TEMPLATES_DIR], - 'APP_DIRS': True, - 'OPTIONS': { - 'builtins': [ - 'utilities.templatetags.builtins.filters', - 'utilities.templatetags.builtins.tags', - ], - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.template.context_processors.media', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - 'netbox.context_processors.settings_and_registry', - ], - }, - }, -] -``` - -
- -
- -### How it MUST be configured to Proxbox work: -
- -```python -TEMPLATES_DIR = BASE_DIR + '/templates' - -# PROXBOX CUSTOM TEMPLATE -PROXBOX_TEMPLATE_DIR = BASE_DIR + '/netbox-proxbox/netbox_proxbox/templates/netbox_proxbox' - -TEMPLATES = [ - { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [TEMPLATES_DIR, PROXBOX_TEMPLATE_DIR], # <--- IMPORTANT - # The Parameters below is equal to default Netbox config - 'APP_DIRS': True, - 'OPTIONS': { - 'builtins': [ - 'utilities.templatetags.builtins.filters', - 'utilities.templatetags.builtins.tags', - ], - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.template.context_processors.media', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - 'netbox.context_processors.settings_and_registry', - ], - }, - }, -] -``` - -### Example of error if not configuring the code above on `settings.py` -![image](https://user-images.githubusercontent.com/24397251/167919319-00c67a81-0679-4114-a66d-3e294b3ae28c.png) - -I did it because I had to change the **base/layout.html** from Netbox, since there is no **Jinja2 block** to fill with custom information into the **footer HTML tag** +**It is no longer necessary to modify the templates section in `settings.py` and you may revert any changes.** --- diff --git a/netbox_proxbox/templates/netbox_proxbox/home.html b/netbox_proxbox/templates/netbox_proxbox/home.html index 17cb322..02e22f8 100644 --- a/netbox_proxbox/templates/netbox_proxbox/home.html +++ b/netbox_proxbox/templates/netbox_proxbox/home.html @@ -12,5 +12,5 @@ {% block footer_links %} {{ block.super }} - {% include "footer.html" %} -{% endblock %} \ No newline at end of file + {% include "netbox_proxbox/footer.html" %} +{% endblock %} diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 8c2ba25..e48a3c4 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -91,5 +91,5 @@

Logs:

{% block footer_links %} {{ block.super }} - {% include "footer.html" %} -{% endblock %} \ No newline at end of file + {% include "netbox_proxbox/footer.html" %} +{% endblock %} diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html index 31bd2ef..287757c 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html @@ -69,5 +69,5 @@

{% block title %}All Proxmox Virtual Machines (in Development, Wait!){% endb {% block footer_links %} {{ block.super }} - {% include "footer.html" %} -{% endblock %} \ No newline at end of file + {% include "netbox_proxbox/footer.html" %} +{% endblock %} From c0319f4ee3da4d1db915449fff943cbb04775747 Mon Sep 17 00:00:00 2001 From: Chankster <442907+Chankster@users.noreply.github.com> Date: Thu, 2 Feb 2023 16:50:46 +0000 Subject: [PATCH 037/313] Update version and add dependencies --- pyproject.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index bf1b118..84aa8ea 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "netbox-proxbox" -version = "0.0.4" +version = "v0.0.5-beta1" description = "Netbox Plugin - Integrate Proxmox and Netbox" readme = "README.md" authors = ["Emerson Felipe "] @@ -11,6 +11,8 @@ packages = [ [tool.poetry.dependencies] python = "^3.8" +pynetbox = "^7.0.1" +proxmoxer = "^2.0.1" [tool.poetry.dev-dependencies] bandit = "^1.7.0" From c6e09aad0c535d6dc4aa82807133a8fa7c9f2988 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Fri, 17 Feb 2023 15:39:30 -0300 Subject: [PATCH 038/313] Update python minimum version --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 21c7c4e..be6c41d 100755 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.6, 3.7, 3.8] + python-version: [3.8, 3.9, 3.10] steps: - name: Check out repo From 466df74ddefa7e5f423fa276278472886e04d718 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Feb 2023 18:40:37 +0000 Subject: [PATCH 039/313] Bump gitpython from 3.1.14 to 3.1.30 Bumps [gitpython](https://github.com/gitpython-developers/GitPython) from 3.1.14 to 3.1.30. - [Release notes](https://github.com/gitpython-developers/GitPython/releases) - [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES) - [Commits](https://github.com/gitpython-developers/GitPython/compare/3.1.14...3.1.30) --- updated-dependencies: - dependency-name: gitpython dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 418 ++++++++++++++++++++++++++-------------------------- 1 file changed, 209 insertions(+), 209 deletions(-) mode change 100755 => 100644 poetry.lock diff --git a/poetry.lock b/poetry.lock old mode 100755 new mode 100644 index 5317d26..d03a52f --- a/poetry.lock +++ b/poetry.lock @@ -1,3 +1,5 @@ +# This file is automatically @generated by Poetry and should not be changed by hand. + [[package]] name = "appdirs" version = "1.4.4" @@ -5,6 +7,10 @@ description = "A small Python module for determining appropriate platform-specif category = "dev" optional = false python-versions = "*" +files = [ + {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, + {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, +] [[package]] name = "astroid" @@ -13,6 +19,10 @@ description = "An abstract syntax tree for Python with inference support." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "astroid-2.5.3-py3-none-any.whl", hash = "sha256:bea3f32799fbb8581f58431c12591bc20ce11cbc90ad82e2ea5717d94f2080d5"}, + {file = "astroid-2.5.3.tar.gz", hash = "sha256:ad63b8552c70939568966811a088ef0bc880f99a24a00834abd0e3681b514f91"}, +] [package.dependencies] lazy-object-proxy = ">=1.4.0" @@ -25,6 +35,10 @@ description = "Security oriented static analyser for python code." category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "bandit-1.7.0-py3-none-any.whl", hash = "sha256:216be4d044209fa06cf2a3e51b319769a51be8318140659719aa7a115c35ed07"}, + {file = "bandit-1.7.0.tar.gz", hash = "sha256:8a4c7415254d75df8ff3c3b15cfe9042ecee628a1e40b44c15a98890fbfc2608"}, +] [package.dependencies] colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} @@ -40,6 +54,9 @@ description = "The uncompromising code formatter." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "black-20.8b1.tar.gz", hash = "sha256:1c02557aa099101b9d21496f8a914e9ed2222ef70336404eeeac8edba836fbea"}, +] [package.dependencies] appdirs = "*" @@ -62,6 +79,10 @@ description = "Composable command line interface toolkit" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"}, + {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"}, +] [[package]] name = "colorama" @@ -70,6 +91,10 @@ description = "Cross-platform colored terminal text." category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, + {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, +] [[package]] name = "gitdb" @@ -78,17 +103,25 @@ description = "Git Object Database" category = "dev" optional = false python-versions = ">=3.4" +files = [ + {file = "gitdb-4.0.7-py3-none-any.whl", hash = "sha256:6c4cc71933456991da20917998acbe6cf4fb41eeaab7d6d67fbc05ecd4c865b0"}, + {file = "gitdb-4.0.7.tar.gz", hash = "sha256:96bf5c08b157a666fec41129e6d327235284cca4c81e92109260f353ba138005"}, +] [package.dependencies] smmap = ">=3.0.1,<5" [[package]] name = "gitpython" -version = "3.1.14" -description = "Python Git Library" +version = "3.1.30" +description = "GitPython is a python library used to interact with Git repositories" category = "dev" optional = false -python-versions = ">=3.4" +python-versions = ">=3.7" +files = [ + {file = "GitPython-3.1.30-py3-none-any.whl", hash = "sha256:cd455b0000615c60e286208ba540271af9fe531fa6a87cc590a7298785ab2882"}, + {file = "GitPython-3.1.30.tar.gz", hash = "sha256:769c2d83e13f5d938b7688479da374c4e3d49f71549aaf462b646db9602ea6f8"}, +] [package.dependencies] gitdb = ">=4.0.1,<5" @@ -100,6 +133,11 @@ description = "Pythonic task execution" category = "dev" optional = false python-versions = "*" +files = [ + {file = "invoke-1.5.0-py2-none-any.whl", hash = "sha256:da7c2d0be71be83ffd6337e078ef9643f41240024d6b2659e7b46e0b251e339f"}, + {file = "invoke-1.5.0-py3-none-any.whl", hash = "sha256:7e44d98a7dc00c91c79bac9e3007276965d2c96884b3c22077a9f04042bd6d90"}, + {file = "invoke-1.5.0.tar.gz", hash = "sha256:f0c560075b5fb29ba14dad44a7185514e94970d1b9d57dcd3723bec5fed92650"}, +] [[package]] name = "isort" @@ -108,11 +146,15 @@ description = "A Python utility / library to sort Python imports." category = "dev" optional = false python-versions = ">=3.6,<4.0" +files = [ + {file = "isort-5.8.0-py3-none-any.whl", hash = "sha256:2bb1680aad211e3c9944dbce1d4ba09a989f04e238296c87fe2139faa26d655d"}, + {file = "isort-5.8.0.tar.gz", hash = "sha256:0a943902919f65c5684ac4e0154b1ad4fac6dcaa5d9f3426b732f1c8b5419be6"}, +] [package.extras] -pipfile_deprecated_finder = ["pipreqs", "requirementslib"] -requirements_deprecated_finder = ["pipreqs", "pip-api"] colors = ["colorama (>=0.4.3,<0.5.0)"] +pipfile-deprecated-finder = ["pipreqs", "requirementslib"] +requirements-deprecated-finder = ["pip-api", "pipreqs"] [[package]] name = "lazy-object-proxy" @@ -121,6 +163,30 @@ description = "A fast and thorough lazy object proxy." category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +files = [ + {file = "lazy-object-proxy-1.6.0.tar.gz", hash = "sha256:489000d368377571c6f982fba6497f2aa13c6d1facc40660963da62f5c379726"}, + {file = "lazy_object_proxy-1.6.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:c6938967f8528b3668622a9ed3b31d145fab161a32f5891ea7b84f6b790be05b"}, + {file = "lazy_object_proxy-1.6.0-cp27-cp27m-win32.whl", hash = "sha256:ebfd274dcd5133e0afae738e6d9da4323c3eb021b3e13052d8cbd0e457b1256e"}, + {file = "lazy_object_proxy-1.6.0-cp27-cp27m-win_amd64.whl", hash = "sha256:ed361bb83436f117f9917d282a456f9e5009ea12fd6de8742d1a4752c3017e93"}, + {file = "lazy_object_proxy-1.6.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d900d949b707778696fdf01036f58c9876a0d8bfe116e8d220cfd4b15f14e741"}, + {file = "lazy_object_proxy-1.6.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5743a5ab42ae40caa8421b320ebf3a998f89c85cdc8376d6b2e00bd12bd1b587"}, + {file = "lazy_object_proxy-1.6.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:bf34e368e8dd976423396555078def5cfc3039ebc6fc06d1ae2c5a65eebbcde4"}, + {file = "lazy_object_proxy-1.6.0-cp36-cp36m-win32.whl", hash = "sha256:b579f8acbf2bdd9ea200b1d5dea36abd93cabf56cf626ab9c744a432e15c815f"}, + {file = "lazy_object_proxy-1.6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:4f60460e9f1eb632584c9685bccea152f4ac2130e299784dbaf9fae9f49891b3"}, + {file = "lazy_object_proxy-1.6.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d7124f52f3bd259f510651450e18e0fd081ed82f3c08541dffc7b94b883aa981"}, + {file = "lazy_object_proxy-1.6.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:22ddd618cefe54305df49e4c069fa65715be4ad0e78e8d252a33debf00f6ede2"}, + {file = "lazy_object_proxy-1.6.0-cp37-cp37m-win32.whl", hash = "sha256:9d397bf41caad3f489e10774667310d73cb9c4258e9aed94b9ec734b34b495fd"}, + {file = "lazy_object_proxy-1.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:24a5045889cc2729033b3e604d496c2b6f588c754f7a62027ad4437a7ecc4837"}, + {file = "lazy_object_proxy-1.6.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:17e0967ba374fc24141738c69736da90e94419338fd4c7c7bef01ee26b339653"}, + {file = "lazy_object_proxy-1.6.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:410283732af311b51b837894fa2f24f2c0039aa7f220135192b38fcc42bd43d3"}, + {file = "lazy_object_proxy-1.6.0-cp38-cp38-win32.whl", hash = "sha256:85fb7608121fd5621cc4377a8961d0b32ccf84a7285b4f1d21988b2eae2868e8"}, + {file = "lazy_object_proxy-1.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:d1c2676e3d840852a2de7c7d5d76407c772927addff8d742b9808fe0afccebdf"}, + {file = "lazy_object_proxy-1.6.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:b865b01a2e7f96db0c5d12cfea590f98d8c5ba64ad222300d93ce6ff9138bcad"}, + {file = "lazy_object_proxy-1.6.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:4732c765372bd78a2d6b2150a6e99d00a78ec963375f236979c0626b97ed8e43"}, + {file = "lazy_object_proxy-1.6.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:9698110e36e2df951c7c36b6729e96429c9c32b3331989ef19976592c5f3c77a"}, + {file = "lazy_object_proxy-1.6.0-cp39-cp39-win32.whl", hash = "sha256:1fee665d2638491f4d6e55bd483e15ef21f6c8c2095f235fef72601021e64f61"}, + {file = "lazy_object_proxy-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:f5144c75445ae3ca2057faac03fda5a902eff196702b0a24daf1d6ce0650514b"}, +] [[package]] name = "mccabe" @@ -129,6 +195,10 @@ description = "McCabe checker, plugin for flake8" category = "dev" optional = false python-versions = "*" +files = [ + {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, + {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, +] [[package]] name = "mypy-extensions" @@ -137,6 +207,10 @@ description = "Experimental type system extensions for programs checked with the category = "dev" optional = false python-versions = "*" +files = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, +] [[package]] name = "pathspec" @@ -145,6 +219,10 @@ description = "Utility library for gitignore style pattern matching of file path category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "pathspec-0.8.1-py2.py3-none-any.whl", hash = "sha256:aa0cb481c4041bf52ffa7b0d8fa6cd3e88a2ca4879c533c9153882ee2556790d"}, + {file = "pathspec-0.8.1.tar.gz", hash = "sha256:86379d6b86d75816baba717e64b1a3a3469deb93bb76d613c9ce79edc5cb68fd"}, +] [[package]] name = "pbr" @@ -153,6 +231,10 @@ description = "Python Build Reasonableness" category = "dev" optional = false python-versions = ">=2.6" +files = [ + {file = "pbr-5.5.1-py2.py3-none-any.whl", hash = "sha256:b236cde0ac9a6aedd5e3c34517b423cd4fd97ef723849da6b0d2231142d89c00"}, + {file = "pbr-5.5.1.tar.gz", hash = "sha256:5fad80b613c402d5b7df7bd84812548b2a61e9977387a80a5fc5c396492b13c9"}, +] [[package]] name = "pydocstyle" @@ -161,6 +243,10 @@ description = "Python docstring style checker" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pydocstyle-6.0.0-py3-none-any.whl", hash = "sha256:d4449cf16d7e6709f63192146706933c7a334af7c0f083904799ccb851c50f6d"}, + {file = "pydocstyle-6.0.0.tar.gz", hash = "sha256:164befb520d851dbcf0e029681b91f4f599c62c5cd8933fd54b1bfbd50e89e1f"}, +] [package.dependencies] snowballstemmer = "*" @@ -172,6 +258,10 @@ description = "python code static checker" category = "dev" optional = false python-versions = "~=3.6" +files = [ + {file = "pylint-2.7.4-py3-none-any.whl", hash = "sha256:209d712ec870a0182df034ae19f347e725c1e615b2269519ab58a35b3fcbbe7a"}, + {file = "pylint-2.7.4.tar.gz", hash = "sha256:bd38914c7731cdc518634a8d3c5585951302b6e2b6de60fbb3f7a0220e21eeee"}, +] [package.dependencies] astroid = ">=2.5.2,<2.7" @@ -181,7 +271,7 @@ mccabe = ">=0.6,<0.7" toml = ">=0.7.1" [package.extras] -docs = ["sphinx (==3.5.1)", "python-docs-theme (==2020.12)"] +docs = ["python-docs-theme (==2020.12)", "sphinx (==3.5.1)"] [[package]] name = "pylint-django" @@ -190,14 +280,18 @@ description = "A Pylint plugin to help Pylint understand the Django web framewor category = "dev" optional = false python-versions = "*" +files = [ + {file = "pylint-django-2.4.3.tar.gz", hash = "sha256:a5a4515209a6237d1d390a4a307d53f53baaf4f058ecf4bb556c775d208f6b0d"}, + {file = "pylint_django-2.4.3-py3-none-any.whl", hash = "sha256:dc5ed27bb7662d73444ccd15a0b3964ed6ced6cc2712b85db616102062d2ec35"}, +] [package.dependencies] pylint = ">=2.0" pylint-plugin-utils = ">=0.5" [package.extras] -for_tests = ["django-tables2", "factory-boy", "coverage", "pytest"] -with_django = ["django"] +for-tests = ["coverage", "django-tables2", "factory-boy", "pytest"] +with-django = ["Django"] [[package]] name = "pylint-plugin-utils" @@ -206,6 +300,10 @@ description = "Utilities and helpers for writing Pylint plugins" category = "dev" optional = false python-versions = "*" +files = [ + {file = "pylint-plugin-utils-0.6.tar.gz", hash = "sha256:57625dcca20140f43731311cd8fd879318bf45a8b0fd17020717a8781714a25a"}, + {file = "pylint_plugin_utils-0.6-py3-none-any.whl", hash = "sha256:2f30510e1c46edf268d3a195b2849bd98a1b9433229bb2ba63b8d776e1fc4d0a"}, +] [package.dependencies] pylint = ">=1.7" @@ -217,197 +315,7 @@ description = "YAML parser and emitter for Python" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" - -[[package]] -name = "regex" -version = "2021.4.4" -description = "Alternative regular expression module, to replace re." -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "six" -version = "1.15.0" -description = "Python 2 and 3 compatibility utilities" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" - -[[package]] -name = "smmap" -version = "4.0.0" -description = "A pure Python implementation of a sliding window memory map manager" -category = "dev" -optional = false -python-versions = ">=3.5" - -[[package]] -name = "snowballstemmer" -version = "2.1.0" -description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "stevedore" -version = "3.3.0" -description = "Manage dynamic plugins for Python applications" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -pbr = ">=2.0.0,<2.1.0 || >2.1.0" - -[[package]] -name = "toml" -version = "0.10.2" -description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" - -[[package]] -name = "typed-ast" -version = "1.4.3" -description = "a fork of Python 2 and 3 ast modules with type comment support" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "typing-extensions" -version = "3.7.4.3" -description = "Backported and Experimental Type Hints for Python 3.5+" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "wrapt" -version = "1.12.1" -description = "Module for decorators, wrappers and monkey patching." -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "yamllint" -version = "1.26.1" -description = "A linter for YAML files." -category = "dev" -optional = false -python-versions = ">=3.5.*" - -[package.dependencies] -pathspec = ">=0.5.3" -pyyaml = "*" - -[metadata] -lock-version = "1.1" -python-versions = "^3.8" -content-hash = "819e6223b4c80e786f9fc16ff97b0feddff2cf35727e446f8179893b0e0db4fb" - -[metadata.files] -appdirs = [ - {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, - {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, -] -astroid = [ - {file = "astroid-2.5.3-py3-none-any.whl", hash = "sha256:bea3f32799fbb8581f58431c12591bc20ce11cbc90ad82e2ea5717d94f2080d5"}, - {file = "astroid-2.5.3.tar.gz", hash = "sha256:ad63b8552c70939568966811a088ef0bc880f99a24a00834abd0e3681b514f91"}, -] -bandit = [ - {file = "bandit-1.7.0-py3-none-any.whl", hash = "sha256:216be4d044209fa06cf2a3e51b319769a51be8318140659719aa7a115c35ed07"}, - {file = "bandit-1.7.0.tar.gz", hash = "sha256:8a4c7415254d75df8ff3c3b15cfe9042ecee628a1e40b44c15a98890fbfc2608"}, -] -black = [ - {file = "black-20.8b1.tar.gz", hash = "sha256:1c02557aa099101b9d21496f8a914e9ed2222ef70336404eeeac8edba836fbea"}, -] -click = [ - {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"}, - {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"}, -] -colorama = [ - {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, - {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, -] -gitdb = [ - {file = "gitdb-4.0.7-py3-none-any.whl", hash = "sha256:6c4cc71933456991da20917998acbe6cf4fb41eeaab7d6d67fbc05ecd4c865b0"}, - {file = "gitdb-4.0.7.tar.gz", hash = "sha256:96bf5c08b157a666fec41129e6d327235284cca4c81e92109260f353ba138005"}, -] -gitpython = [ - {file = "GitPython-3.1.14-py3-none-any.whl", hash = "sha256:3283ae2fba31c913d857e12e5ba5f9a7772bbc064ae2bb09efafa71b0dd4939b"}, - {file = "GitPython-3.1.14.tar.gz", hash = "sha256:be27633e7509e58391f10207cd32b2a6cf5b908f92d9cd30da2e514e1137af61"}, -] -invoke = [ - {file = "invoke-1.5.0-py2-none-any.whl", hash = "sha256:da7c2d0be71be83ffd6337e078ef9643f41240024d6b2659e7b46e0b251e339f"}, - {file = "invoke-1.5.0-py3-none-any.whl", hash = "sha256:7e44d98a7dc00c91c79bac9e3007276965d2c96884b3c22077a9f04042bd6d90"}, - {file = "invoke-1.5.0.tar.gz", hash = "sha256:f0c560075b5fb29ba14dad44a7185514e94970d1b9d57dcd3723bec5fed92650"}, -] -isort = [ - {file = "isort-5.8.0-py3-none-any.whl", hash = "sha256:2bb1680aad211e3c9944dbce1d4ba09a989f04e238296c87fe2139faa26d655d"}, - {file = "isort-5.8.0.tar.gz", hash = "sha256:0a943902919f65c5684ac4e0154b1ad4fac6dcaa5d9f3426b732f1c8b5419be6"}, -] -lazy-object-proxy = [ - {file = "lazy-object-proxy-1.6.0.tar.gz", hash = "sha256:489000d368377571c6f982fba6497f2aa13c6d1facc40660963da62f5c379726"}, - {file = "lazy_object_proxy-1.6.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:c6938967f8528b3668622a9ed3b31d145fab161a32f5891ea7b84f6b790be05b"}, - {file = "lazy_object_proxy-1.6.0-cp27-cp27m-win32.whl", hash = "sha256:ebfd274dcd5133e0afae738e6d9da4323c3eb021b3e13052d8cbd0e457b1256e"}, - {file = "lazy_object_proxy-1.6.0-cp27-cp27m-win_amd64.whl", hash = "sha256:ed361bb83436f117f9917d282a456f9e5009ea12fd6de8742d1a4752c3017e93"}, - {file = "lazy_object_proxy-1.6.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d900d949b707778696fdf01036f58c9876a0d8bfe116e8d220cfd4b15f14e741"}, - {file = "lazy_object_proxy-1.6.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5743a5ab42ae40caa8421b320ebf3a998f89c85cdc8376d6b2e00bd12bd1b587"}, - {file = "lazy_object_proxy-1.6.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:bf34e368e8dd976423396555078def5cfc3039ebc6fc06d1ae2c5a65eebbcde4"}, - {file = "lazy_object_proxy-1.6.0-cp36-cp36m-win32.whl", hash = "sha256:b579f8acbf2bdd9ea200b1d5dea36abd93cabf56cf626ab9c744a432e15c815f"}, - {file = "lazy_object_proxy-1.6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:4f60460e9f1eb632584c9685bccea152f4ac2130e299784dbaf9fae9f49891b3"}, - {file = "lazy_object_proxy-1.6.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d7124f52f3bd259f510651450e18e0fd081ed82f3c08541dffc7b94b883aa981"}, - {file = "lazy_object_proxy-1.6.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:22ddd618cefe54305df49e4c069fa65715be4ad0e78e8d252a33debf00f6ede2"}, - {file = "lazy_object_proxy-1.6.0-cp37-cp37m-win32.whl", hash = "sha256:9d397bf41caad3f489e10774667310d73cb9c4258e9aed94b9ec734b34b495fd"}, - {file = "lazy_object_proxy-1.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:24a5045889cc2729033b3e604d496c2b6f588c754f7a62027ad4437a7ecc4837"}, - {file = "lazy_object_proxy-1.6.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:17e0967ba374fc24141738c69736da90e94419338fd4c7c7bef01ee26b339653"}, - {file = "lazy_object_proxy-1.6.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:410283732af311b51b837894fa2f24f2c0039aa7f220135192b38fcc42bd43d3"}, - {file = "lazy_object_proxy-1.6.0-cp38-cp38-win32.whl", hash = "sha256:85fb7608121fd5621cc4377a8961d0b32ccf84a7285b4f1d21988b2eae2868e8"}, - {file = "lazy_object_proxy-1.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:d1c2676e3d840852a2de7c7d5d76407c772927addff8d742b9808fe0afccebdf"}, - {file = "lazy_object_proxy-1.6.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:b865b01a2e7f96db0c5d12cfea590f98d8c5ba64ad222300d93ce6ff9138bcad"}, - {file = "lazy_object_proxy-1.6.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:4732c765372bd78a2d6b2150a6e99d00a78ec963375f236979c0626b97ed8e43"}, - {file = "lazy_object_proxy-1.6.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:9698110e36e2df951c7c36b6729e96429c9c32b3331989ef19976592c5f3c77a"}, - {file = "lazy_object_proxy-1.6.0-cp39-cp39-win32.whl", hash = "sha256:1fee665d2638491f4d6e55bd483e15ef21f6c8c2095f235fef72601021e64f61"}, - {file = "lazy_object_proxy-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:f5144c75445ae3ca2057faac03fda5a902eff196702b0a24daf1d6ce0650514b"}, -] -mccabe = [ - {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, - {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, -] -mypy-extensions = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, -] -pathspec = [ - {file = "pathspec-0.8.1-py2.py3-none-any.whl", hash = "sha256:aa0cb481c4041bf52ffa7b0d8fa6cd3e88a2ca4879c533c9153882ee2556790d"}, - {file = "pathspec-0.8.1.tar.gz", hash = "sha256:86379d6b86d75816baba717e64b1a3a3469deb93bb76d613c9ce79edc5cb68fd"}, -] -pbr = [ - {file = "pbr-5.5.1-py2.py3-none-any.whl", hash = "sha256:b236cde0ac9a6aedd5e3c34517b423cd4fd97ef723849da6b0d2231142d89c00"}, - {file = "pbr-5.5.1.tar.gz", hash = "sha256:5fad80b613c402d5b7df7bd84812548b2a61e9977387a80a5fc5c396492b13c9"}, -] -pydocstyle = [ - {file = "pydocstyle-6.0.0-py3-none-any.whl", hash = "sha256:d4449cf16d7e6709f63192146706933c7a334af7c0f083904799ccb851c50f6d"}, - {file = "pydocstyle-6.0.0.tar.gz", hash = "sha256:164befb520d851dbcf0e029681b91f4f599c62c5cd8933fd54b1bfbd50e89e1f"}, -] -pylint = [ - {file = "pylint-2.7.4-py3-none-any.whl", hash = "sha256:209d712ec870a0182df034ae19f347e725c1e615b2269519ab58a35b3fcbbe7a"}, - {file = "pylint-2.7.4.tar.gz", hash = "sha256:bd38914c7731cdc518634a8d3c5585951302b6e2b6de60fbb3f7a0220e21eeee"}, -] -pylint-django = [ - {file = "pylint-django-2.4.3.tar.gz", hash = "sha256:a5a4515209a6237d1d390a4a307d53f53baaf4f058ecf4bb556c775d208f6b0d"}, - {file = "pylint_django-2.4.3-py3-none-any.whl", hash = "sha256:dc5ed27bb7662d73444ccd15a0b3964ed6ced6cc2712b85db616102062d2ec35"}, -] -pylint-plugin-utils = [ - {file = "pylint-plugin-utils-0.6.tar.gz", hash = "sha256:57625dcca20140f43731311cd8fd879318bf45a8b0fd17020717a8781714a25a"}, - {file = "pylint_plugin_utils-0.6-py3-none-any.whl", hash = "sha256:2f30510e1c46edf268d3a195b2849bd98a1b9433229bb2ba63b8d776e1fc4d0a"}, -] -pyyaml = [ +files = [ {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"}, {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"}, {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"}, @@ -438,7 +346,15 @@ pyyaml = [ {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"}, {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, ] -regex = [ + +[[package]] +name = "regex" +version = "2021.4.4" +description = "Alternative regular expression module, to replace re." +category = "dev" +optional = false +python-versions = "*" +files = [ {file = "regex-2021.4.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:619d71c59a78b84d7f18891fe914446d07edd48dc8328c8e149cbe0929b4e000"}, {file = "regex-2021.4.4-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:47bf5bf60cf04d72bf6055ae5927a0bd9016096bf3d742fa50d9bf9f45aa0711"}, {file = "regex-2021.4.4-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:281d2fd05555079448537fe108d79eb031b403dac622621c78944c235f3fcf11"}, @@ -481,27 +397,78 @@ regex = [ {file = "regex-2021.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:97f29f57d5b84e73fbaf99ab3e26134e6687348e95ef6b48cfd2c06807005a07"}, {file = "regex-2021.4.4.tar.gz", hash = "sha256:52ba3d3f9b942c49d7e4bc105bb28551c44065f139a65062ab7912bef10c9afb"}, ] -six = [ + +[[package]] +name = "six" +version = "1.15.0" +description = "Python 2 and 3 compatibility utilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, ] -smmap = [ + +[[package]] +name = "smmap" +version = "4.0.0" +description = "A pure Python implementation of a sliding window memory map manager" +category = "dev" +optional = false +python-versions = ">=3.5" +files = [ {file = "smmap-4.0.0-py2.py3-none-any.whl", hash = "sha256:a9a7479e4c572e2e775c404dcd3080c8dc49f39918c2cf74913d30c4c478e3c2"}, {file = "smmap-4.0.0.tar.gz", hash = "sha256:7e65386bd122d45405ddf795637b7f7d2b532e7e401d46bbe3fb49b9986d5182"}, ] -snowballstemmer = [ + +[[package]] +name = "snowballstemmer" +version = "2.1.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +category = "dev" +optional = false +python-versions = "*" +files = [ {file = "snowballstemmer-2.1.0-py2.py3-none-any.whl", hash = "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2"}, {file = "snowballstemmer-2.1.0.tar.gz", hash = "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"}, ] -stevedore = [ + +[[package]] +name = "stevedore" +version = "3.3.0" +description = "Manage dynamic plugins for Python applications" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ {file = "stevedore-3.3.0-py3-none-any.whl", hash = "sha256:50d7b78fbaf0d04cd62411188fa7eedcb03eb7f4c4b37005615ceebe582aa82a"}, {file = "stevedore-3.3.0.tar.gz", hash = "sha256:3a5bbd0652bf552748871eaa73a4a8dc2899786bc497a2aa1fcb4dcdb0debeee"}, ] -toml = [ + +[package.dependencies] +pbr = ">=2.0.0,<2.1.0 || >2.1.0" + +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, ] -typed-ast = [ + +[[package]] +name = "typed-ast" +version = "1.4.3" +description = "a fork of Python 2 and 3 ast modules with type comment support" +category = "dev" +optional = false +python-versions = "*" +files = [ {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6"}, {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075"}, {file = "typed_ast-1.4.3-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528"}, @@ -533,14 +500,47 @@ typed-ast = [ {file = "typed_ast-1.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c"}, {file = "typed_ast-1.4.3.tar.gz", hash = "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65"}, ] -typing-extensions = [ + +[[package]] +name = "typing-extensions" +version = "3.7.4.3" +description = "Backported and Experimental Type Hints for Python 3.5+" +category = "dev" +optional = false +python-versions = "*" +files = [ {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"}, {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"}, {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"}, ] -wrapt = [ + +[[package]] +name = "wrapt" +version = "1.12.1" +description = "Module for decorators, wrappers and monkey patching." +category = "dev" +optional = false +python-versions = "*" +files = [ {file = "wrapt-1.12.1.tar.gz", hash = "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"}, ] -yamllint = [ + +[[package]] +name = "yamllint" +version = "1.26.1" +description = "A linter for YAML files." +category = "dev" +optional = false +python-versions = ">=3.5.*" +files = [ {file = "yamllint-1.26.1.tar.gz", hash = "sha256:87d9462b3ed7e9dfa19caa177f7a77cd9888b3dc4044447d6ae0ab233bcd1324"}, ] + +[package.dependencies] +pathspec = ">=0.5.3" +pyyaml = "*" + +[metadata] +lock-version = "2.0" +python-versions = "^3.8" +content-hash = "819e6223b4c80e786f9fc16ff97b0feddff2cf35727e446f8179893b0e0db4fb" From 2022a789b206a796eb79808bc2b060b5859d4785 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Fri, 17 Feb 2023 15:43:28 -0300 Subject: [PATCH 040/313] Update ci.yml --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index be6c41d..52ae576 100755 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.8, 3.9, 3.10] + python-version: ['3.8', '3.9', '3.10'] steps: - name: Check out repo From e3240595af83b007f45799ae9cd21f8e5462e6cb Mon Sep 17 00:00:00 2001 From: root Date: Tue, 21 Feb 2023 13:45:02 +0000 Subject: [PATCH 041/313] Add plugin configuration on home view --- .../templates/netbox_proxbox/home.html | 128 +++++++++++++++++- netbox_proxbox/views.py | 8 ++ 2 files changed, 131 insertions(+), 5 deletions(-) diff --git a/netbox_proxbox/templates/netbox_proxbox/home.html b/netbox_proxbox/templates/netbox_proxbox/home.html index 02e22f8..b245d86 100644 --- a/netbox_proxbox/templates/netbox_proxbox/home.html +++ b/netbox_proxbox/templates/netbox_proxbox/home.html @@ -1,12 +1,130 @@ {% extends 'base/layout.html' %} + {% block content %} - {# Full Update Button#} -
- {% if perms.netbox_proxbox.add_proxmoxvm %} - Proxmox Full Update - {% endif %} + + +
+ + {# Full Update Button#} +
+ {% if perms.netbox_proxbox.add_proxmoxvm %} + Proxmox Full Update + {% endif %} +
+
+
+

+ Proxbox Configuration +

+
+ +
+
+
Proxmox
+
+ + + + {% if configuration.netbox_proxbox.proxmox.domain %} + + {% else %} + + {% endif %} + + + + {% if configuration.netbox_proxbox.proxmox.http_port %} + + {% else %} + + {% endif %} + + + + {% if configuration.netbox_proxbox.proxmox.user %} + + {% else %} + + {% endif %} + + + + {% if configuration.netbox_proxbox.proxmox.password %} + + {% else %} + + {% endif %} + + + {% if configuration.netbox_proxbox.proxmox.token.name %} + + {% else %} + + {% endif %} + + + {% if configuration.netbox_proxbox.proxmox.token.value %} + + {% else %} + + {% endif %} + + + + {% if configuration.netbox_proxbox.proxmox.ssl %} + + {% else %} + + {% endif %} + +
Domain / IP{{ configuration.netbox_proxbox.proxmox.domain }}{{ default_config.proxmox.domain }} (default)
HTTP Port{{ configuration.netbox_proxbox.proxmox.http_port }}{{ default_config.proxmox.http_port }} (default)
Proxmox User{{ configuration.netbox_proxbox.proxmox.user }}{{ default_config.proxmox.user }} (default)
Proxmox Passwordpassword defined in configuration.py{{ default_config.proxmox.password }} (default)
Token Name{{ configuration.netbox_proxbox.proxmox.token.name }}{{ default_config.proxmox.token.name }} (default)
Token Value{{ configuration.netbox_proxbox.proxmox.token.value }}{{ default_config.proxmox.token.value }} (default)
SSL{{ configuration.netbox_proxbox.proxmox.ssl }}{{ default_config.proxmox.ssl }} (default)
+
+
+
+
+
+
Netbox
+
+ + + + {% if configuration.netbox_proxbox.netbox.domain %} + + {% else %} + + {% endif %} + + + + {% if configuration.netbox_proxbox.netbox.http_port %} + + {% else %} + + {% endif %} + + + + {% if configuration.netbox_proxbox.netbox.token %} + + {% else %} + + {% endif %} + + + + {% if configuration.netbox_proxbox.netbox.ssl %} + + {% else %} + + {% endif %} + +
Domain / IP{{ configuration.netbox_proxbox.netbox.domain }}{{ default_config.netbox.domain }} (default)
HTTP Port{{ configuration.netbox_proxbox.netbox.http_port }}{{ default_config.netbox.http_port }} (default)
Token{{ configuration.netbox_proxbox.netbox.token }}{{ default_config.netbox.token }} (default)
SSL{{ configuration.netbox_proxbox.netbox.ssl }}{{ default_config.netbox.ssl }} (default)
+
+
+
+ {% endblock %} {% block footer_links %} diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index b2584f8..e7ad6bd 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -18,6 +18,10 @@ from netbox_proxbox import proxbox_api import json +from netbox import configuration + +from . import ProxboxConfig + class HomeView(View): """Homepage""" @@ -29,6 +33,10 @@ def get(self, request): return render( request, self.template_name, + { + "configuration": configuration.PLUGINS_CONFIG, + "default_config": ProxboxConfig.default_settings + } ) From a528844a1497edee3864fa164860a38da080ba1e Mon Sep 17 00:00:00 2001 From: JEAN-FRANCOIS GUILLAUME Date: Mon, 27 Feb 2023 14:07:00 +0100 Subject: [PATCH 042/313] adding missing use of PROXMOX_PORT --- netbox_proxbox/proxbox_api/plugins_config.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/netbox_proxbox/proxbox_api/plugins_config.py b/netbox_proxbox/proxbox_api/plugins_config.py index 91dc122..796c0f3 100755 --- a/netbox_proxbox/proxbox_api/plugins_config.py +++ b/netbox_proxbox/proxbox_api/plugins_config.py @@ -119,6 +119,7 @@ # Start PROXMOX session using TOKEN PROXMOX_SESSION = ProxmoxAPI( PROXMOX, + port=PROXMOX_PORT, user=PROXMOX_USER, token_name=PROXMOX_TOKEN_NAME, token_value=PROXMOX_TOKEN_VALUE, @@ -133,6 +134,7 @@ # Start PROXMOX session using USER CREDENTIALS PROXMOX_SESSION = ProxmoxAPI( PROXMOX, + port=PROXMOX_PORT, user=PROXMOX_USER, password=PROXMOX_PASSWORD, verify_ssl=PROXMOX_SSL @@ -160,4 +162,4 @@ NETBOX_SESSION.http_session = session except: - raise RuntimeError(f"Error trying to initialize Netbox Session using TOKEN {NETBOX_TOKEN} provided.") \ No newline at end of file + raise RuntimeError(f"Error trying to initialize Netbox Session using TOKEN {NETBOX_TOKEN} provided.") From 9fbf424e4d818329aba3a4996dce8418af9939fd Mon Sep 17 00:00:00 2001 From: JEAN-FRANCOIS GUILLAUME Date: Mon, 27 Feb 2023 16:51:11 +0100 Subject: [PATCH 043/313] first pass on getting ip from proxmox. qemu for now --- .../proxbox_api/updates/virtual_machine.py | 78 ++++++++++++++----- 1 file changed, 60 insertions(+), 18 deletions(-) diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index 6f1a717..a399d29 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -18,9 +18,6 @@ create, ) - - - # Update "status" field on Netbox Virtual Machine based on Proxmox information def status(netbox_vm, proxmox_vm): # False = status not changed on Netbox @@ -61,7 +58,6 @@ def status(netbox_vm, proxmox_vm): return status_updated - def site(**kwargs): # If site_id equals to 0, consider it is not configured by user and must be created by Proxbox site_id = kwargs.get('site_id', 0) @@ -104,7 +100,6 @@ def http_update_custom_fields(**kwargs): return r.status_code - # Update 'custom_fields' field on Netbox Virtual Machine based on Proxbox def custom_fields(netbox_vm, proxmox_vm): # Create the new 'custom_field' with info from Proxmox @@ -218,11 +213,6 @@ def local_context_data(netbox_vm, proxmox_vm): return False - - - - - # Updates following fields based on Proxmox: "vcpus", "memory", "disk", if necessary. def resources(netbox_vm, proxmox_vm): # Save values from Proxmox @@ -238,8 +228,6 @@ def resources(netbox_vm, proxmox_vm): # JSON with new resources info new_resources_json = {} - - # Compare VCPU if netbox_vm.vcpus != None: @@ -252,8 +240,6 @@ def resources(netbox_vm, proxmox_vm): elif netbox_vm.vcpus == None: new_resources_json["vcpus"] = vcpus - - # Compare Memory if netbox_vm.memory != None: if netbox_vm.memory != memory_Mb: @@ -262,8 +248,6 @@ def resources(netbox_vm, proxmox_vm): elif netbox_vm.memory == None: new_resources_json["memory"] = memory_Mb - - # Compare Disk if netbox_vm.disk != None: if netbox_vm.disk != disk_Gb: @@ -271,8 +255,6 @@ def resources(netbox_vm, proxmox_vm): elif netbox_vm.disk == None: new_resources_json["disk"] = disk_Gb - - # If new information found, save it to Netbox object. if len(new_resources_json) > 0: @@ -283,3 +265,63 @@ def resources(netbox_vm, proxmox_vm): else: return False +def interfaces(netbox_vm, proxmox_vm): + vm_config = proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get() + for interface in [{key:val} for key,val in proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get().items() if re.search('^net*', key) is not None]: + for ifname in interface: + _mac_addr = '' + _mtu = 1500 + _vlan = None + for _conf_str in interface[ifname].split(','): + _k_s =_conf_str.split('=') + if re.match("[0-9a-f]{2}([-:]?)[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", _k_s[1].lower()): + _mac_addr =_k_s[1].lower() + elif _k_s[0] == 'mtu': + if int(_k_s[1]) > 1: + _mtu = int(_k_s[1]) + elif _k_s[0] == 'tag': + _vlan = int(_k_s[1]) + netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=_mac_addr)) + if len(netbox_interface): + if len(netbox_interface) == 1: + netbox_interface = netbox_interface[0] + netbox_netif = {'name': netbox_interface.name, 'mac_address': netbox_interface.mac_address.lower(), 'mtu': netbox_interface.mtu} + proxmox_netif = {'name': ifname, 'mac_address': _mac_addr, 'mtu': _mtu} + if not netbox_netif == proxmox_netif: + netbox_interface = nb.virtualization.interfaces.update([{'id':netbox_interface.id, 'mac_address': _mac_addr, 'mtu': _mtu}]) + elif len(netbox_interface) > 1: + print('[ERROR] too many results') + else: + netbox_interface = nb.virtualization.interfaces.create(name=ifname, virtual_machine=netbox_vm.id, mac_address=_mac_addr, mtu=_mtu) + return True + +def interfaces_ips(netbox_vm, proxmox_vm): + if proxmox_vm['status'] == 'running': + if int(proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get()['agent']): + try: + for netif in proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).agent.get('network-get-interfaces')['result']: + if netif['name'].lower() != 'lo': + netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=netif['hardware-address'])) + if len(netbox_interface): + if len(netbox_interface) == 1: + netbox_interface = netbox_interface[0] + if 'ip-addresses' in netif: + for addr in netif['ip-addresses']: + proxmox_ipaddr = '%(address)s/%(netmask)s' % {'address': addr['ip-address'],'netmask': addr['prefix']} + netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=proxmox_ipaddr)) + if len(netbox_ipaddr): + if len(netbox_ipaddr) == 1: + netbox_ipaddr = netbox_ipaddr[0] + netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) + elif len(netbox_ipaddr) > 1: + print('[ERROR] too many results') + else: + netbox_ipaddr = nb.ipam.ip_addresses.create(address=proxmox_ipaddr) + netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) + elif len(netbox_interface) > 1: + print('[ERROR] too many results') + else: + print('[ERROR] interface in proxmox is not defined in netbox') + except ResourceException as e: + print('[ERROR]' + str(e)) + From 552f93d215afb14000e889ae56a099242d82f4bb Mon Sep 17 00:00:00 2001 From: JEAN-FRANCOIS GUILLAUME Date: Wed, 1 Mar 2023 11:55:06 +0100 Subject: [PATCH 044/313] adding lxc --- .../proxbox_api/updates/virtual_machine.py | 110 +++++++++++++----- 1 file changed, 81 insertions(+), 29 deletions(-) diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index a399d29..4bfe441 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -264,16 +264,20 @@ def resources(netbox_vm, proxmox_vm): return True else: return False - def interfaces(netbox_vm, proxmox_vm): - vm_config = proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get() - for interface in [{key:val} for key,val in proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get().items() if re.search('^net*', key) is not None]: + if proxmox_vm['type'] == 'qemu': + vm_config = proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get() + elif proxmox_vm['type'] == 'lxc': + vm_config = proxmox.nodes(proxmox_vm['node']).lxc(proxmox_vm['vmid']).config.get() + else: + return False + for interface in [{key:val} for key,val in vm_config.items() if re.search('^net*', key) is not None]: for ifname in interface: _mac_addr = '' _mtu = 1500 _vlan = None for _conf_str in interface[ifname].split(','): - _k_s =_conf_str.split('=') + _k_s =_conf_str.split('=') if re.match("[0-9a-f]{2}([-:]?)[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", _k_s[1].lower()): _mac_addr =_k_s[1].lower() elif _k_s[0] == 'mtu': @@ -291,37 +295,85 @@ def interfaces(netbox_vm, proxmox_vm): netbox_interface = nb.virtualization.interfaces.update([{'id':netbox_interface.id, 'mac_address': _mac_addr, 'mtu': _mtu}]) elif len(netbox_interface) > 1: print('[ERROR] too many results') + return False else: netbox_interface = nb.virtualization.interfaces.create(name=ifname, virtual_machine=netbox_vm.id, mac_address=_mac_addr, mtu=_mtu) return True def interfaces_ips(netbox_vm, proxmox_vm): if proxmox_vm['status'] == 'running': - if int(proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get()['agent']): - try: - for netif in proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).agent.get('network-get-interfaces')['result']: - if netif['name'].lower() != 'lo': - netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=netif['hardware-address'])) - if len(netbox_interface): - if len(netbox_interface) == 1: - netbox_interface = netbox_interface[0] - if 'ip-addresses' in netif: - for addr in netif['ip-addresses']: - proxmox_ipaddr = '%(address)s/%(netmask)s' % {'address': addr['ip-address'],'netmask': addr['prefix']} - netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=proxmox_ipaddr)) - if len(netbox_ipaddr): - if len(netbox_ipaddr) == 1: - netbox_ipaddr = netbox_ipaddr[0] + if proxmox_vm['type'] == 'qemu': + if int(proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get()['agent']): + try: + for netif in proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).agent.get('network-get-interfaces')['result']: + if netif['name'].lower() != 'lo': + netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=netif['hardware-address'])) + if len(netbox_interface): + if len(netbox_interface) == 1: + netbox_interface = netbox_interface[0] + if 'ip-addresses' in netif: + for addr in netif['ip-addresses']: + proxmox_ipaddr = '%(address)s/%(netmask)s' % {'address': addr['ip-address'],'netmask': addr['prefix']} + netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=proxmox_ipaddr)) + if len(netbox_ipaddr): + if len(netbox_ipaddr) == 1: + netbox_ipaddr = netbox_ipaddr[0] + if netbox_ipaddr.assigned_object_id != netbox_interface.id: + netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) + elif len(netbox_ipaddr) > 1: + print('[ERROR] too many results') + return False + else: + netbox_ipaddr = nb.ipam.ip_addresses.create(address=proxmox_ipaddr) netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) - elif len(netbox_ipaddr) > 1: - print('[ERROR] too many results') - else: - netbox_ipaddr = nb.ipam.ip_addresses.create(address=proxmox_ipaddr) + elif len(netbox_interface) > 1: + print('[ERROR] too many results') + return False + else: + print('[ERROR] interface in proxmox is not defined in netbox') + return False + except ResourceException as e: + print('[ERROR]' + str(e)) + return False + elif proxmox_vm['type'] == 'lxc': + vm_config = proxmox.nodes(proxmox_vm['node']).lxc(proxmox_vm['vmid']).config.get() + for interface in [{key:val} for key,val in vm_config.items() if re.search('^net*', key) is not None]: + for ifname in interface: + _mac_addr = '' + _mtu = 1500 + proxmox_ipaddr = None + for _conf_str in interface[ifname].split(','): + _k_s =_conf_str.split('=') + if re.match("[0-9a-f]{2}([-:]?)[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", _k_s[1].lower()): + _mac_addr =_k_s[1].lower() + elif _k_s[0] == 'ip': + if _k_s[1] != 'dhcp': + proxmox_ipaddr = _k_s[1] + elif _k_s[0] == 'ip6': + if _k_s[1] != 'auto' and _k_s[1] != 'dhcp': + proxmox_ipaddr = _k_s[1] + netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=_mac_addr)) + if len(netbox_interface): + if len(netbox_interface) == 1: + netbox_interface = netbox_interface[0] + if proxmox_ipaddr is not None: + netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=proxmox_ipaddr)) + if len(netbox_ipaddr): + if len(netbox_ipaddr) == 1: + netbox_ipaddr = netbox_ipaddr[0] + if netbox_ipaddr.assigned_object_id != netbox_interface.id: netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) - elif len(netbox_interface) > 1: - print('[ERROR] too many results') - else: - print('[ERROR] interface in proxmox is not defined in netbox') - except ResourceException as e: - print('[ERROR]' + str(e)) + elif len(netbox_ipaddr) > 1: + print('[ERROR] too many results') + return False + else: + netbox_ipaddr = nb.ipam.ip_addresses.create(address=proxmox_ipaddr) + netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) + elif len(netbox_interface) > 1: + print('[ERROR] too many results') + return False + else: + print('[ERROR]' + str(e)) + return False + return True From ed25caef14688a1744250533cea2e9bcbcad6221 Mon Sep 17 00:00:00 2001 From: JEAN-FRANCOIS GUILLAUME Date: Wed, 1 Mar 2023 17:56:52 +0100 Subject: [PATCH 045/313] rework of interfaces import + adding deleting old interfaces --- .../proxbox_api/updates/virtual_machine.py | 53 ++++++++++++++----- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index 4bfe441..e86b93a 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -264,20 +264,24 @@ def resources(netbox_vm, proxmox_vm): return True else: return False + def interfaces(netbox_vm, proxmox_vm): + updated = False if proxmox_vm['type'] == 'qemu': vm_config = proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get() elif proxmox_vm['type'] == 'lxc': vm_config = proxmox.nodes(proxmox_vm['node']).lxc(proxmox_vm['vmid']).config.get() else: return False + _pmx_if = [] + _ntb_if = [] for interface in [{key:val} for key,val in vm_config.items() if re.search('^net*', key) is not None]: for ifname in interface: _mac_addr = '' _mtu = 1500 _vlan = None for _conf_str in interface[ifname].split(','): - _k_s =_conf_str.split('=') + _k_s =_conf_str.split('=') if re.match("[0-9a-f]{2}([-:]?)[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", _k_s[1].lower()): _mac_addr =_k_s[1].lower() elif _k_s[0] == 'mtu': @@ -285,20 +289,41 @@ def interfaces(netbox_vm, proxmox_vm): _mtu = int(_k_s[1]) elif _k_s[0] == 'tag': _vlan = int(_k_s[1]) - netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=_mac_addr)) - if len(netbox_interface): - if len(netbox_interface) == 1: - netbox_interface = netbox_interface[0] - netbox_netif = {'name': netbox_interface.name, 'mac_address': netbox_interface.mac_address.lower(), 'mtu': netbox_interface.mtu} - proxmox_netif = {'name': ifname, 'mac_address': _mac_addr, 'mtu': _mtu} - if not netbox_netif == proxmox_netif: - netbox_interface = nb.virtualization.interfaces.update([{'id':netbox_interface.id, 'mac_address': _mac_addr, 'mtu': _mtu}]) - elif len(netbox_interface) > 1: - print('[ERROR] too many results') - return False + _pmx_if.append({'name': ifname, 'mac_address': _mac_addr, 'mtu': _mtu}) + + for interface in nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id): + _ntb_if.append({'name': interface.name, 'mac_address': interface.mac_address.lower(), 'mtu': interface.mtu}) + + for pmx_if_mac in [_if['mac_address'] for _if in _pmx_if]: + pmx_if = next((_if for _if in _pmx_if if _if['mac_address'] == pmx_if_mac), None) + if pmx_if is not None: + if pmx_if_mac not in [_if['mac_address'] for _if in _ntb_if]: + netbox_interface = nb.virtualization.interfaces.create(virtual_machine=netbox_vm.id, name=pmx_if['name'], mac_address=pmx_if_mac, mtu=pmx_if['mtu']) + updated = True else: - netbox_interface = nb.virtualization.interfaces.create(name=ifname, virtual_machine=netbox_vm.id, mac_address=_mac_addr, mtu=_mtu) - return True + if pmx_if not in _ntb_if: + netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=pmx_if_mac)) + if len(netbox_interface) == 1: + netbox_interface = netbox_interface[0] + netbox_interface = nb.virtualization.interfaces.update([{'id': netbox_interface.id, 'name': pmx_if['name'], 'mac_address': pmx_if_mac, 'mtu': pmx_if['mtu']}]) + updated = True + elif len(netbox_interface) > 1: + print('[ERROR] too many results') + return False + else: + print('[ERROR] something went wrong while getting interface config from proxmox') + + for ntb_if_mac in [_if['mac_address'] for _if in _ntb_if]: + if ntb_if_mac not in [_if['mac_address'] for _if in _pmx_if]: + netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=ntb_if_mac)) + if len(netbox_interface) == 1: + netbox_interface = netbox_interface[0] + netbox_interface.delete() + updated = True + elif len(netbox_interface) > 1: + print('[ERROR] too many results') + return False + return updated def interfaces_ips(netbox_vm, proxmox_vm): if proxmox_vm['status'] == 'running': From c3d4253f051368936df961d5fa8b1f2902d17532 Mon Sep 17 00:00:00 2001 From: JEAN-FRANCOIS GUILLAUME Date: Thu, 2 Mar 2023 12:29:44 +0100 Subject: [PATCH 046/313] rework of ips import + adding deleting old ips --- netbox_proxbox/proxbox_api/update.py | 8 +- .../proxbox_api/updates/virtual_machine.py | 153 +++++++++++------- 2 files changed, 98 insertions(+), 63 deletions(-) diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 2f3d743..2476255 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -35,6 +35,10 @@ def vm_full_update(netbox_vm, proxmox_vm): # Update 'resources', like CPU, Memory and Disk, if necessary. resources_updated = updates.virtual_machine.resources(netbox_vm, proxmox_vm) + interfaces_updated = updates.virtual_machine.interfaces(netbox_vm, proxmox_vm) + + ips_updated = updates.virtual_machine.interfaces_ips(netbox_vm, proxmox_vm) + tag_updated = updates.extras.tag(netbox_vm) #changes = [custom_fields_updated, status_updated, local_context_updated, resources_updated] @@ -43,6 +47,8 @@ def vm_full_update(netbox_vm, proxmox_vm): "custom_fields" : custom_fields_updated, "local_context" : local_context_updated, "resources" : resources_updated, + "interfaces": interfaces_updated, + "ips": ips_updated, "tag" : tag_updated } @@ -462,4 +468,4 @@ def all(**kwargs): print('____________________________________\n') print('#\n# COMPARE PROXMOX WITH NETBOX\n#') - remove.all() \ No newline at end of file + remove.all() diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index e86b93a..cff2faa 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -265,6 +265,7 @@ def resources(netbox_vm, proxmox_vm): else: return False + def interfaces(netbox_vm, proxmox_vm): updated = False if proxmox_vm['type'] == 'qemu': @@ -272,7 +273,9 @@ def interfaces(netbox_vm, proxmox_vm): elif proxmox_vm['type'] == 'lxc': vm_config = proxmox.nodes(proxmox_vm['node']).lxc(proxmox_vm['vmid']).config.get() else: + print('[ERROR] Unknown or unmanaged proxmox_vm_type') return False + _pmx_if = [] _ntb_if = [] for interface in [{key:val} for key,val in vm_config.items() if re.search('^net*', key) is not None]: @@ -312,51 +315,49 @@ def interfaces(netbox_vm, proxmox_vm): return False else: print('[ERROR] something went wrong while getting interface config from proxmox') + return False for ntb_if_mac in [_if['mac_address'] for _if in _ntb_if]: if ntb_if_mac not in [_if['mac_address'] for _if in _pmx_if]: netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=ntb_if_mac)) - if len(netbox_interface) == 1: - netbox_interface = netbox_interface[0] - netbox_interface.delete() - updated = True - elif len(netbox_interface) > 1: - print('[ERROR] too many results') + if len(netbox_interface): + if len(netbox_interface) == 1: + netbox_interface = netbox_interface[0] + netbox_interface.delete() + updated = True + elif len(netbox_interface) > 1: + print('[ERROR] too many results') + return False + else: + print('[ERROR] something went wrong while getting interface config from netbox') return False return updated + def interfaces_ips(netbox_vm, proxmox_vm): + updated = False if proxmox_vm['status'] == 'running': + _pmx_ips = [] + _ntb_ips = [] if proxmox_vm['type'] == 'qemu': if int(proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get()['agent']): try: - for netif in proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).agent.get('network-get-interfaces')['result']: - if netif['name'].lower() != 'lo': - netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=netif['hardware-address'])) - if len(netbox_interface): - if len(netbox_interface) == 1: - netbox_interface = netbox_interface[0] - if 'ip-addresses' in netif: - for addr in netif['ip-addresses']: - proxmox_ipaddr = '%(address)s/%(netmask)s' % {'address': addr['ip-address'],'netmask': addr['prefix']} - netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=proxmox_ipaddr)) - if len(netbox_ipaddr): - if len(netbox_ipaddr) == 1: - netbox_ipaddr = netbox_ipaddr[0] - if netbox_ipaddr.assigned_object_id != netbox_interface.id: - netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) - elif len(netbox_ipaddr) > 1: - print('[ERROR] too many results') - return False - else: - netbox_ipaddr = nb.ipam.ip_addresses.create(address=proxmox_ipaddr) - netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) - elif len(netbox_interface) > 1: - print('[ERROR] too many results') - return False - else: - print('[ERROR] interface in proxmox is not defined in netbox') - return False + for interface in proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).agent.get('network-get-interfaces')['result']: + if interface['name'].lower() != 'lo': + _mac = interface['hardware-address'].lower() + _if = {_mac: []} + if 'ip-addresses' in interface: + for addr in interface['ip-addresses']: + _if[_mac].append('%(address)s/%(netmask)s'.lower() % {'address': addr['ip-address'],'netmask': addr['prefix']}) + _pmx_ips.append(_if) + + for interface in nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id): + _mac = interface['mac_address'].lower() + _if = {_mac: []} + for ip in nb.ipam.ip_addresses.filter(virtual_machine_id=netbox_vm.id): + if ip.assigned_object_id == interface.id: + _if[_mac].append(ip.address.lower()) + _ntb_ips.append(_if) except ResourceException as e: print('[ERROR]' + str(e)) return False @@ -365,40 +366,68 @@ def interfaces_ips(netbox_vm, proxmox_vm): for interface in [{key:val} for key,val in vm_config.items() if re.search('^net*', key) is not None]: for ifname in interface: _mac_addr = '' - _mtu = 1500 - proxmox_ipaddr = None + proxmox_ipaddr = [] for _conf_str in interface[ifname].split(','): _k_s =_conf_str.split('=') if re.match("[0-9a-f]{2}([-:]?)[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", _k_s[1].lower()): _mac_addr =_k_s[1].lower() elif _k_s[0] == 'ip': if _k_s[1] != 'dhcp': - proxmox_ipaddr = _k_s[1] + proxmox_ipaddr.append(_k_s[1]) elif _k_s[0] == 'ip6': if _k_s[1] != 'auto' and _k_s[1] != 'dhcp': - proxmox_ipaddr = _k_s[1] - netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=_mac_addr)) - if len(netbox_interface): - if len(netbox_interface) == 1: - netbox_interface = netbox_interface[0] - if proxmox_ipaddr is not None: - netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=proxmox_ipaddr)) - if len(netbox_ipaddr): - if len(netbox_ipaddr) == 1: - netbox_ipaddr = netbox_ipaddr[0] - if netbox_ipaddr.assigned_object_id != netbox_interface.id: - netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) - elif len(netbox_ipaddr) > 1: - print('[ERROR] too many results') - return False - else: - netbox_ipaddr = nb.ipam.ip_addresses.create(address=proxmox_ipaddr) - netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) - elif len(netbox_interface) > 1: - print('[ERROR] too many results') - return False - else: - print('[ERROR]' + str(e)) - return False - - return True + proxmox_ipaddr.append(_k_s[1]) + _pmx_ips.append({_mac_addr: proxmox_ipaddr}) + + for interface in nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id): + _mac = interface['mac_address'].lower() + _if = {_mac: []} + for ip in nb.ipam.ip_addresses.filter(virtual_machine_id=netbox_vm.id): + if ip.assigned_object_id == interface.id: + _if[_mac].append(ip.address.lower()) + _ntb_ips.append(_if) + + for pmx_mac in [list(x)[0] for x in _pmx_ips]: + if pmx_mac not in [list(y)[0] for y in _ntb_ips]: + print('[ERROR] interface with mac_address %(pmx_mac)s from %(vm_name)s qemu-guest-agent is not defined in netbox' % {'pmx_mac': pmx_mac, 'vm_name': proxmox_vm['name']}) + else: + ntb_ips = next((_ips[pmx_mac] for _ips in _ntb_ips if list(_ips)[0] == pmx_mac), None) + pmx_ips = next((_ips[pmx_mac] for _ips in _pmx_ips if list(_ips)[0] == pmx_mac), None) + for pmx_ip in pmx_ips: + if pmx_ip not in ntb_ips: + netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=pmx_ip)) + netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=pmx_mac)) + if len(netbox_interface): + if len(netbox_interface) == 1: + netbox_interface = netbox_interface[0] + elif len(netbox_interface) > 1: + netbox_interface = None + print('[ERROR] too many results') + else: + netbox_interface = None + print('[ERROR] something went wrong while getting interface object from netbox') + if netbox_interface is not None: + if len(netbox_ipaddr): + if len(netbox_ipaddr) == 1: + netbox_ipaddr = netbox_ipaddr[0] + if netbox_ipaddr.assigned_object_id != netbox_interface.id: + netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) + updated = True + elif len(netbox_ipaddr) > 1: + print('[ERROR] too many results') + else: + netbox_ipaddr = nb.ipam.ip_addresses.create(address=pmx_ip) + netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) + updated = True + for ntb_ip in ntb_ips: + if ntb_ip not in pmx_ips: + netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=ntb_ip)) + if len(netbox_ipaddr): + if len(netbox_ipaddr) == 1: + netbox_ipaddr[0].delete() + updated = True + elif len(netbox_ipaddr) > 1: + print('[ERROR] too many results') + else: + print('[ERROR] something went wrong while getting ip object from netbox') + return updated From c5abbfaa4184809ca2c819c895e93f8e1a81526e Mon Sep 17 00:00:00 2001 From: JEAN-FRANCOIS GUILLAUME Date: Thu, 2 Mar 2023 18:08:49 +0100 Subject: [PATCH 047/313] adding node interfaces retrieval + vms get mtu from bridge if mtu=1 --- netbox_proxbox/proxbox_api/update.py | 5 +- netbox_proxbox/proxbox_api/updates/node.py | 128 ++++++++++++++++++ .../proxbox_api/updates/virtual_machine.py | 10 +- 3 files changed, 141 insertions(+), 2 deletions(-) diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 2476255..3eeb3b9 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -62,9 +62,12 @@ def node_full_update(netbox_node, proxmox_json, proxmox_cluster): status_updated = updates.node.status(netbox_node, proxmox_json) cluster_updated = updates.node.cluster(netbox_node, proxmox_json, proxmox_cluster) + interfaces_updated = updates.node.interfaces(netbox_node, proxmox_json) + changes = { "status" : status_updated, - "cluster" : cluster_updated + "cluster" : cluster_updated, + "interfaces": interfaces_updated } return changes diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index 03f0789..e62c0e9 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -82,3 +82,131 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): cluster_updated = False return cluster_updated + + +def interfaces(netbox_node, proxmox_json): + updated = False + _int_port = ['OVSIntPort'] + _lag_port = ['OVSBond'] + _brg_port = ['OVSBridge'] + _pmx_iface = [] + _ntb_iface = [{'name': iface.name, 'mtu' : int(iface.mtu), 'tagged_vlans': [int(x['vid']) for x in iface.tagged_vlans]} for iface in nb.dcim.interfaces.filter(device_id=netbox_node.id)] + _eth = [iface for iface in proxmox.nodes(proxmox_json['name']).network.get() if iface['type'] == 'eth'] + _virt = [iface for iface in proxmox.nodes(proxmox_json['name']).network.get() if iface['type'] in _int_port] + _bond = [iface for iface in proxmox.nodes(proxmox_json['name']).network.get() if iface['type'] in _lag_port] + _bridge = [iface for iface in proxmox.nodes(proxmox_json['name']).network.get() if iface['type'] in _brg_port] + + for iface in _eth: + ntb_iface = list(nb.dcim.interfaces.filter(device_id=netbox_node.id, name=iface['iface'])) + if iface.get('ovs_tag') is not None: + _tagged_vlans = [int(iface.get('ovs_tag'))] + else: + _tagged_vlans = [] + _pmx_iface.append({'name': iface['iface'], 'mtu' : int(iface.get('mtu', 1500)), 'tagged_vlans': _tagged_vlans}) + pmx_if = next((_if for _if in _pmx_iface if _if['name'] == iface['iface']), None) + if not len(ntb_iface): + if len(_tagged_vlans): + ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=pmx_if['name'], type='other', mtu=pmx_if['mtu'], mode='tagged', tagged_vlans=[nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]) + else: + ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=pmx_if['name'], type='other', mtu=pmx_if['mtu']) + updated = True + else: + if len(ntb_iface) == 1: + ntb_iface = ntb_iface[0] + ntb_if = next((_if for _if in _ntb_iface if _if['name'] == iface['iface']), None) + if pmx_if != ntb_if: + if len(pmx_if['tagged_vlans']): + nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu'], 'mode': 'tagged', 'tagged_vlans': [nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]}]) + else: + nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu']}]) + updated = True + + for iface in _bond: + ntb_iface = list(nb.dcim.interfaces.filter(device_id=netbox_node.id, name=iface['iface'])) + if iface.get('ovs_tag') is not None: + _tagged_vlans = [int(iface.get('ovs_tag'))] + else: + _tagged_vlans = [] + _pmx_iface.append({'name': iface['iface'], 'mtu' : int(iface.get('mtu', 1500)), 'tagged_vlans': _tagged_vlans}) + if not len(ntb_iface): + if len(_tagged_vlans): + ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='lag', mtu=int(iface.get('mtu', 1500)), mode='tagged', tagged_vlans=[nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]) + else: + ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='lag', mtu=int(iface.get('mtu', 1500))) + else: + if len(ntb_iface) == 1: + ntb_iface = ntb_iface[0] + pmx_if = next((_if for _if in _pmx_iface if _if['name'] == iface['iface']), None) + ntb_if = next((_if for _if in _ntb_iface if _if['name'] == iface['iface']), None) + if pmx_if != ntb_if: + if len(pmx_if['tagged_vlans']): + nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu'], 'mode': 'tagged', 'tagged_vlans': [nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]}]) + else: + nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu']}]) + updated = True + if 'ovs_bonds' in iface: + for _sif in iface['ovs_bonds'].split(' '): + _nb_iface = list(nb.dcim.interfaces.filter(device_id=netbox_node.id, name=_sif)) + if len(_nb_iface) == 1: + nb.dcim.interfaces.update([{'id': _nb_iface[0].id, 'lag': {'id': ntb_iface.id}}]) + + for iface in _virt: + ntb_iface = list(nb.dcim.interfaces.filter(device_id=netbox_node.id, name=iface['iface'])) + if iface.get('ovs_tag') is not None: + _tagged_vlans = [int(iface.get('ovs_tag'))] + else: + _tagged_vlans = [] + _pmx_iface.append({'name': iface['iface'], 'mtu' : int(iface.get('mtu', 1500)), 'tagged_vlans': _tagged_vlans}) + if not len(ntb_iface): + if len(_tagged_vlans): + ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='virtual', mtu=int(iface.get('mtu', 1500)), mode='tagged', tagged_vlans=[nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]) + else: + ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='virtual', mtu=int(iface.get('mtu', 1500))) + else: + if len(ntb_iface) == 1: + ntb_iface = ntb_iface[0] + pmx_if = next((_if for _if in _pmx_iface if _if['name'] == iface['iface']), None) + ntb_if = next((_if for _if in _ntb_iface if _if['name'] == iface['iface']), None) + if pmx_if != ntb_if: + if len(pmx_if['tagged_vlans']): + nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu'], 'mode': 'tagged', 'tagged_vlans': [nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]}]) + else: + nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu']}]) + updated = True + + for iface in _bridge: + ntb_iface = list(nb.dcim.interfaces.filter(device_id=netbox_node.id, name=iface['iface'])) + if iface.get('ovs_tag') is not None: + _tagged_vlans = [int(iface.get('ovs_tag'))] + else: + _tagged_vlans = [] + _pmx_iface.append({'name': iface['iface'], 'mtu' : int(iface.get('mtu', 1500)), 'tagged_vlans': _tagged_vlans}) + if not len(ntb_iface): + if len(_tagged_vlans): + ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='bridge', mtu=int(iface.get('mtu', 1500)), mode='tagged', tagged_vlans=[nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]) + else: + ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='bridge', mtu=int(iface.get('mtu', 1500))) + else: + if len(ntb_iface) == 1: + ntb_iface = ntb_iface[0] + pmx_if = next((_if for _if in _pmx_iface if _if['name'] == iface['iface']), None) + ntb_if = next((_if for _if in _ntb_iface if _if['name'] == iface['iface']), None) + if pmx_if != ntb_if: + if len(pmx_if['tagged_vlans']): + nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu'], 'mode': 'tagged', 'tagged_vlans': [nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]}]) + else: + nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu']}]) + updated = True + if 'ovs_ports' in iface: + for _sif in iface['ovs_ports'].split(' '): + _nb_iface = list(nb.dcim.interfaces.filter(device_id=netbox_node.id, name=_sif)) + if len(_nb_iface) == 1: + nb.dcim.interfaces.update([{'id': _nb_iface[0].id, 'bridge': {'id': ntb_iface.id}}]) + + for iface in [x.get('name') for x in _ntb_iface]: + if iface not in [x.get('name') for x in _pmx_iface]: + ntb_iface = list(nb.dcim.interfaces.filter(device_id=netbox_node.id, name=iface['name'])) + if len(ntb_iface) == 1: + ntb_iface[0].delete() + + return updated diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index cff2faa..17dcf88 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -283,12 +283,20 @@ def interfaces(netbox_vm, proxmox_vm): _mac_addr = '' _mtu = 1500 _vlan = None + _bridge = None for _conf_str in interface[ifname].split(','): _k_s =_conf_str.split('=') if re.match("[0-9a-f]{2}([-:]?)[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", _k_s[1].lower()): _mac_addr =_k_s[1].lower() + elif _k_s[0] == 'bridge': + _bridge = _k_s[1].lower() elif _k_s[0] == 'mtu': - if int(_k_s[1]) > 1: + if int(_k_s[1]) == 1: + if _bridge is not None: + node = nb.dcim.devices.get(name=proxmox_vm['node']) + brg = nb.dcim.interfaces.get(device_id=node.id, name=_bridge) + _mtu = brg.mtu + else: _mtu = int(_k_s[1]) elif _k_s[0] == 'tag': _vlan = int(_k_s[1]) From 376b610e2c402debb60ea5ddfe2fe91825ec55ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20GUILLAUME?= Date: Wed, 8 Mar 2023 09:45:48 +0100 Subject: [PATCH 048/313] Update node.py forgot the imports ... --- netbox_proxbox/proxbox_api/updates/node.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index e62c0e9..8f4de4a 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -1,5 +1,13 @@ -from .. import ( - create, +from ..plugins_config import ( + PROXMOX, + PROXMOX_PORT, + PROXMOX_USER, + PROXMOX_PASSWORD, + PROXMOX_SSL, + NETBOX, + NETBOX_TOKEN, + PROXMOX_SESSION as proxmox, + NETBOX_SESSION as nb, ) # Update STATUS field on /dcim/device/{id} From 6cbb58a82a8d0f07be972c4c938e01dd989f415a Mon Sep 17 00:00:00 2001 From: JEAN-FRANCOIS GUILLAUME Date: Wed, 8 Mar 2023 20:23:02 +0100 Subject: [PATCH 049/313] correcting missing imports --- netbox_proxbox/proxbox_api/update.py | 10 +++------ netbox_proxbox/proxbox_api/updates/node.py | 5 ++++- .../proxbox_api/updates/virtual_machine.py | 21 +++++++++++++++++-- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 3eeb3b9..3d35dd9 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -17,8 +17,6 @@ remove, ) - - # Call all functions to update Virtual Machine def vm_full_update(netbox_vm, proxmox_vm): changes = {} @@ -34,9 +32,8 @@ def vm_full_update(netbox_vm, proxmox_vm): # Update 'resources', like CPU, Memory and Disk, if necessary. resources_updated = updates.virtual_machine.resources(netbox_vm, proxmox_vm) - + interfaces_updated = updates.virtual_machine.interfaces(netbox_vm, proxmox_vm) - ips_updated = updates.virtual_machine.interfaces_ips(netbox_vm, proxmox_vm) tag_updated = updates.extras.tag(netbox_vm) @@ -47,9 +44,9 @@ def vm_full_update(netbox_vm, proxmox_vm): "custom_fields" : custom_fields_updated, "local_context" : local_context_updated, "resources" : resources_updated, + "tag" : tag_updated, "interfaces": interfaces_updated, - "ips": ips_updated, - "tag" : tag_updated + "ips": ips_updated } return changes @@ -61,7 +58,6 @@ def node_full_update(netbox_node, proxmox_json, proxmox_cluster): status_updated = updates.node.status(netbox_node, proxmox_json) cluster_updated = updates.node.cluster(netbox_node, proxmox_json, proxmox_cluster) - interfaces_updated = updates.node.interfaces(netbox_node, proxmox_json) changes = { diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index 8f4de4a..788931a 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -10,6 +10,10 @@ NETBOX_SESSION as nb, ) +from .. import ( + create, +) + # Update STATUS field on /dcim/device/{id} def status(netbox_node, proxmox_node): # @@ -91,7 +95,6 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): return cluster_updated - def interfaces(netbox_node, proxmox_json): updated = False _int_port = ['OVSIntPort'] diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index 17dcf88..fe714e7 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -1,5 +1,6 @@ import requests import json +import re # PLUGIN_CONFIG variables from ..plugins_config import ( @@ -18,6 +19,9 @@ create, ) +from proxmoxer.core import ResourceException + + # Update "status" field on Netbox Virtual Machine based on Proxmox information def status(netbox_vm, proxmox_vm): # False = status not changed on Netbox @@ -58,6 +62,7 @@ def status(netbox_vm, proxmox_vm): return status_updated + def site(**kwargs): # If site_id equals to 0, consider it is not configured by user and must be created by Proxbox site_id = kwargs.get('site_id', 0) @@ -100,6 +105,7 @@ def http_update_custom_fields(**kwargs): return r.status_code + # Update 'custom_fields' field on Netbox Virtual Machine based on Proxbox def custom_fields(netbox_vm, proxmox_vm): # Create the new 'custom_field' with info from Proxmox @@ -213,6 +219,11 @@ def local_context_data(netbox_vm, proxmox_vm): return False + + + + + # Updates following fields based on Proxmox: "vcpus", "memory", "disk", if necessary. def resources(netbox_vm, proxmox_vm): # Save values from Proxmox @@ -228,6 +239,8 @@ def resources(netbox_vm, proxmox_vm): # JSON with new resources info new_resources_json = {} + + # Compare VCPU if netbox_vm.vcpus != None: @@ -240,6 +253,8 @@ def resources(netbox_vm, proxmox_vm): elif netbox_vm.vcpus == None: new_resources_json["vcpus"] = vcpus + + # Compare Memory if netbox_vm.memory != None: if netbox_vm.memory != memory_Mb: @@ -248,6 +263,8 @@ def resources(netbox_vm, proxmox_vm): elif netbox_vm.memory == None: new_resources_json["memory"] = memory_Mb + + # Compare Disk if netbox_vm.disk != None: if netbox_vm.disk != disk_Gb: @@ -255,6 +272,8 @@ def resources(netbox_vm, proxmox_vm): elif netbox_vm.disk == None: new_resources_json["disk"] = disk_Gb + + # If new information found, save it to Netbox object. if len(new_resources_json) > 0: @@ -265,7 +284,6 @@ def resources(netbox_vm, proxmox_vm): else: return False - def interfaces(netbox_vm, proxmox_vm): updated = False if proxmox_vm['type'] == 'qemu': @@ -341,7 +359,6 @@ def interfaces(netbox_vm, proxmox_vm): return False return updated - def interfaces_ips(netbox_vm, proxmox_vm): updated = False if proxmox_vm['status'] == 'running': From 2ed6b6acb835b31abae921a4fec068917b22e6ae Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 9 Mar 2023 18:29:43 +0000 Subject: [PATCH 050/313] If PROXMOX_SSL is set to 'False', disable urllib3 'InsecureRequestWarning' message --- netbox_proxbox/proxbox_api/plugins_config.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/netbox_proxbox/proxbox_api/plugins_config.py b/netbox_proxbox/proxbox_api/plugins_config.py index 796c0f3..fa8150a 100755 --- a/netbox_proxbox/proxbox_api/plugins_config.py +++ b/netbox_proxbox/proxbox_api/plugins_config.py @@ -116,6 +116,11 @@ # Check if token was provided if PROXMOX_TOKEN_VALUE != None and len(PROXMOX_TOKEN_VALUE) > 0: try: + if PROXMOX_SSL == False: + # DISABLE SSL WARNING + import urllib3 + urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + # Start PROXMOX session using TOKEN PROXMOX_SESSION = ProxmoxAPI( PROXMOX, From 531eea0b096d9fce23a5443eaea701a1cf46c8ac Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 9 Mar 2023 19:12:49 +0000 Subject: [PATCH 051/313] fix some minor errors related to interface and IP address creation --- .../proxbox_api/updates/virtual_machine.py | 91 ++++++++++++------- 1 file changed, 58 insertions(+), 33 deletions(-) diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index fe714e7..1649ec2 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -286,13 +286,16 @@ def resources(netbox_vm, proxmox_vm): def interfaces(netbox_vm, proxmox_vm): updated = False - if proxmox_vm['type'] == 'qemu': - vm_config = proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get() - elif proxmox_vm['type'] == 'lxc': - vm_config = proxmox.nodes(proxmox_vm['node']).lxc(proxmox_vm['vmid']).config.get() - else: - print('[ERROR] Unknown or unmanaged proxmox_vm_type') - return False + try: + if proxmox_vm['type'] == 'qemu': + vm_config = proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get() + elif proxmox_vm['type'] == 'lxc': + vm_config = proxmox.nodes(proxmox_vm['node']).lxc(proxmox_vm['vmid']).config.get() + else: + print('[ERROR] Unknown or unmanaged proxmox_vm_type') + except Exception as error: + print(f"[ERROR] Unknown or unmanaged proxmox_vm_type\n > {error}") + return _pmx_if = [] _ntb_if = [] @@ -327,8 +330,14 @@ def interfaces(netbox_vm, proxmox_vm): pmx_if = next((_if for _if in _pmx_if if _if['mac_address'] == pmx_if_mac), None) if pmx_if is not None: if pmx_if_mac not in [_if['mac_address'] for _if in _ntb_if]: - netbox_interface = nb.virtualization.interfaces.create(virtual_machine=netbox_vm.id, name=pmx_if['name'], mac_address=pmx_if_mac, mtu=pmx_if['mtu']) - updated = True + try: + if nb.virtualization.interfaces.get(virtual_machine=netbox_vm.id, name=pmx_if['name']): + print("Interface already exist.") + else: + # Create interface if does not exist. + netbox_interface = nb.virtualization.interfaces.create(virtual_machine=netbox_vm.id, name=pmx_if['name'], mac_address=pmx_if_mac, mtu=pmx_if['mtu']) + updated = True + except Exception as error: print(error) else: if pmx_if not in _ntb_if: netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=pmx_if_mac)) @@ -365,11 +374,20 @@ def interfaces_ips(netbox_vm, proxmox_vm): _pmx_ips = [] _ntb_ips = [] if proxmox_vm['type'] == 'qemu': - if int(proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get()['agent']): + agent = proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get().get("agent") + print(agent) + if agent: try: for interface in proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).agent.get('network-get-interfaces')['result']: + print(proxmox_vm['node']) + print(interface, '\n') + if interface['name'].lower() != 'lo': - _mac = interface['hardware-address'].lower() + _mac = interface.get("hardware-address") + + if _mac: + _mac = _mac.lower() + _if = {_mac: []} if 'ip-addresses' in interface: for addr in interface['ip-addresses']: @@ -420,30 +438,37 @@ def interfaces_ips(netbox_vm, proxmox_vm): pmx_ips = next((_ips[pmx_mac] for _ips in _pmx_ips if list(_ips)[0] == pmx_mac), None) for pmx_ip in pmx_ips: if pmx_ip not in ntb_ips: - netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=pmx_ip)) - netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=pmx_mac)) - if len(netbox_interface): - if len(netbox_interface) == 1: - netbox_interface = netbox_interface[0] - elif len(netbox_interface) > 1: - netbox_interface = None - print('[ERROR] too many results') - else: - netbox_interface = None - print('[ERROR] something went wrong while getting interface object from netbox') - if netbox_interface is not None: - if len(netbox_ipaddr): - if len(netbox_ipaddr) == 1: - netbox_ipaddr = netbox_ipaddr[0] - if netbox_ipaddr.assigned_object_id != netbox_interface.id: - netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) - updated = True - elif len(netbox_ipaddr) > 1: + try: + netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=pmx_ip)) + print(f"netbox_ipaddr: {netbox_ipaddr}") + + netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=pmx_mac)) + if len(netbox_interface): + if len(netbox_interface) == 1: + netbox_interface = netbox_interface[0] + elif len(netbox_interface) > 1: + netbox_interface = None print('[ERROR] too many results') else: - netbox_ipaddr = nb.ipam.ip_addresses.create(address=pmx_ip) - netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) - updated = True + netbox_interface = None + print('[ERROR] something went wrong while getting interface object from netbox') + if netbox_interface is not None: + if len(netbox_ipaddr): + if len(netbox_ipaddr) == 1: + netbox_ipaddr = netbox_ipaddr[0] + if netbox_ipaddr.assigned_object_id != netbox_interface.id: + netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) + updated = True + elif len(netbox_ipaddr) > 1: + print('[ERROR] too many results') + else: + netbox_ipaddr = nb.ipam.ip_addresses.create(address=pmx_ip) + netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) + updated = True + + except Exception as error: print(error) + + for ntb_ip in ntb_ips: if ntb_ip not in pmx_ips: netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=ntb_ip)) From b23894bd289b8593e3ec0009e473ca2a0cc79c2d Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Fri, 10 Mar 2023 01:27:58 +0000 Subject: [PATCH 052/313] testing: using native djang_tables2 module --- netbox_proxbox/example.py | 1 + netbox_proxbox/tables.py | 35 +++++++++++++++---- .../proxmox_vm_full_update.html | 2 ++ .../netbox_proxbox/update_result.html | 7 ++++ netbox_proxbox/views.py | 20 ++++++++--- 5 files changed, 54 insertions(+), 11 deletions(-) create mode 100644 netbox_proxbox/example.py create mode 100644 netbox_proxbox/templates/netbox_proxbox/update_result.html diff --git a/netbox_proxbox/example.py b/netbox_proxbox/example.py new file mode 100644 index 0000000..8d125ac --- /dev/null +++ b/netbox_proxbox/example.py @@ -0,0 +1 @@ +example = {'virtualmachines': [{'name': 'EVE-NG', 'changes': {'status': False, 'custom_fields': None, 'local_context': True, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'containerlab', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'NS1', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'wikijs-test', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'ISPTools', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'RSYSLOG-CGNAT', 'changes': {'status': False, 'custom_fields': None, 'local_context': True, 'resources': None, 'tag': False, 'interfaces': None, 'ips': False}, 'result': True}, {'name': 'SPEEDTEST', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'TESTE-DEFENSE-IA', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'KRILL-RPKI-AS265234', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'netbox-dev2', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'VM-TESTE', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': None, 'ips': False}, 'result': True}, {'name': 'elastiflow', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'ELK-NETFLOW', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'ZEUS', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'SPEEDTEST-OOKLA', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'RADIUS-BKP', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'ZABBIX-GRAFANA', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'netbox-template', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'VMforDocker', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'Win10-LAB', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'netbox-beta', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'testing', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'teste', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'netbox-v3-dev', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'Ubuntu-SRV-20.04', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'DOKUWIKI-PUBLICO-OLD', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'wikijs-testing', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'WIN10-ALVOCOM', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'asstat-deb10', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'EVE-NG', 'changes': {'status': False, 'custom_fields': None, 'local_context': True, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'ELASTIC-ISAC', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': None, 'ips': False}, 'result': True}, {'name': 'nfsen-debian', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'PNETLAB', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'ZABBIX', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'GRAYLOG', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'NS3', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'netbox-devop2', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'DEFENSE-IA', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'LAB-GRAFANA', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'BKP', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'Ubuntu-SRV-20.04', 'changes': {'status': False, 'custom_fields': None, 'local_context': True, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'NetDev-CentOs-LAB', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'GenieACS', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': None, 'ips': False}, 'result': True}, {'name': 'vault', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'KRILL-RPKI-AS268881', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'netbox-v3-huawei', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'RSYSLOG-CGNAT', 'changes': {'status': False, 'custom_fields': None, 'local_context': True, 'resources': None, 'tag': False, 'interfaces': None, 'ips': False}, 'result': True}, {'name': 'NS4', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'planos', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}, {'name': 'speedtest-servers', 'changes': {'status': False, 'custom_fields': None, 'local_context': False, 'resources': None, 'tag': False, 'interfaces': False, 'ips': False}, 'result': True}], 'nodes': [{'changes': {'status': False, 'cluster': False, 'interfaces': False}, 'result': True}, {'changes': {'status': False, 'cluster': False, 'interfaces': False}, 'result': True}, {'changes': {'status': False, 'cluster': False, 'interfaces': False}, 'result': True}], 'remove_unused': [{'name': 'DEFENSE', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> DEFENSE']}, {'name': 'DOKUWIKI-PUBLICO-OLD', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> DOKUWIKI-PUBLICO-OLD']}, {'name': 'ELASTIC-ISAC', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> ELASTIC-ISAC']}, {'name': 'ELK-NETFLOW', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> ELK-NETFLOW']}, {'name': 'EVE-NG', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> EVE-NG']}, {'name': 'GRAYLOG', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> GRAYLOG']}, {'name': 'GenieACS', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> GenieACS']}, {'name': 'ISPTools', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> ISPTools']}, {'name': 'BKP', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> BKP']}, {'name': 'KRILL-RPKI-AS265234', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> KRILL-RPKI-AS265234']}, {'name': 'KRILL-RPKI-AS268881', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> KRILL-RPKI-AS268881']}, {'name': 'LAB-GRAFANA', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> LAB-GRAFANA']}, {'name': 'LAB-ZABBIX-6', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> LAB-ZABBIX-6']}, {'name': 'NS1', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> NS1']}, {'name': 'NS3', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> NS3']}, {'name': 'NS4', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> NS4']}, {'name': 'NetDev-CentOs-LAB', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> NetDev-CentOs-LAB']}, {'name': 'PNETLAB', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> PNETLAB']}, {'name': 'RADIUS-BKP', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> RADIUS-BKP']}, {'name': 'RSYSLOG-CGNAT', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> RSYSLOG-CGNAT']}, {'name': 'SPEEDTEST', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> SPEEDTEST']}, {'name': 'SPEEDTEST-OOKLA', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> SPEEDTEST-OOKLA']}, {'name': 'TESTE-DEFENSE-IA', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> TESTE-DEFENSE-IA']}, {'name': 'Ubuntu-SRV-20.04', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> Ubuntu-SRV-20.04']}, {'name': 'VM-TESTE', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> VM-TESTE']}, {'name': 'VMforDocker', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> VMforDocker']}, {'name': 'WIN10-ALVOCOM', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> WIN10-ALVOCOM']}, {'name': 'Win10-LAB', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> Win10-LAB']}, {'name': 'ZABBIX-GRAFANA', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> ZABBIX-GRAFANA']}, {'name': 'ZEUS', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> ZEUS']}, {'name': 'asstat-deb10', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> asstat-deb10']}, {'name': 'containerlab', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> containerlab']}, {'name': 'elastiflow', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> elastiflow']}, {'name': 'testing', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> testing']}, {'name': 'netbox-beta', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> netbox-beta']}, {'name': 'netbox-dev2', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> netbox-dev2']}, {'name': 'netbox-devop2', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> netbox-devop2']}, {'name': 'netbox-template', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> netbox-template']}, {'name': 'netbox-v3-dev', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> netbox-v3-dev']}, {'name': 'netbox-v3-huawei', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> netbox-v3-huawei']}, {'name': 'nfsen-debian', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> nfsen-debian']}, {'name': 'planos', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> planos']}, {'name': 'speedtest-servers', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> speedtest-servers']}, {'name': 'teste', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> teste']}, {'name': 'vault', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> vault']}, {'name': 'wikijs-test', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> wikijs-test']}, {'name': 'wikijs-testing', 'result': False, 'log': ['[OK] VM exists on both systems (Netbox and Proxmox) -> wikijs-testing']}]} \ No newline at end of file diff --git a/netbox_proxbox/tables.py b/netbox_proxbox/tables.py index 05f97fc..6f06390 100755 --- a/netbox_proxbox/tables.py +++ b/netbox_proxbox/tables.py @@ -1,16 +1,16 @@ # tables.py -import django_tables2 as tables +import django_tables2 as table -from netbox.tables import NetBoxTable, ChoiceFieldColumn +from netbox.tables import NetBoxTable from .models import ProxmoxVM class ProxmoxVMTable(NetBoxTable): """Table for displaying BGP Peering objects.""" - id = tables.LinkColumn() - cluster = tables.LinkColumn() - virtual_machine = tables.LinkColumn() - proxmox_vm_id = tables.LinkColumn() + id = table.LinkColumn() + cluster = table.LinkColumn() + virtual_machine = table.LinkColumn() + proxmox_vm_id = table.LinkColumn() class Meta(NetBoxTable.Meta): model = ProxmoxVM @@ -22,4 +22,25 @@ class Meta(NetBoxTable.Meta): "type", "node", "cluster", - ) \ No newline at end of file + ) + +class VMUpdateResult(table.Table): + """Table for displaying VM/CT update results""" + + name = table.Column() + changes = table.Column() + + ''' + status = tables.Column() + custom_fields = tables.Column() + local_context = tables.Column() + resources = tables.Column() + tag = tables.Column() + result = tables.Column() + ''' + + class Meta(NetBoxTable.Meta): + fields = ('name', 'changes') + default_columns = ('name', 'changes') + #fields = ('name', 'status', 'custom_fields', 'local_context', 'resources', 'tag', 'result') + #default_columns = ('name', 'status', 'custom_fields', 'local_context', 'resources', 'tag', 'result') \ No newline at end of file diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index e48a3c4..5b08c98 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -1,6 +1,8 @@ {% extends 'base/layout.html' %} +{% load render_table from django_tables2 %} {% block content %} + {% render_table table %} {% if proxmox.nodes %}

Nodes

diff --git a/netbox_proxbox/templates/netbox_proxbox/update_result.html b/netbox_proxbox/templates/netbox_proxbox/update_result.html new file mode 100644 index 0000000..bb6ce44 --- /dev/null +++ b/netbox_proxbox/templates/netbox_proxbox/update_result.html @@ -0,0 +1,7 @@ +{% extends 'base/layout.html' %} + + +{% block content %} +

TESTE

+ +{% endblock %} \ No newline at end of file diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index e7ad6bd..40bf0b6 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -13,7 +13,7 @@ from .filters import ProxmoxVMFilter from .forms import ProxmoxVMForm, ProxmoxVMFilterForm from .models import ProxmoxVM -from .tables import ProxmoxVMTable +from .tables import ProxmoxVMTable, VMUpdateResult from netbox_proxbox import proxbox_api import json @@ -46,20 +46,32 @@ class ProxmoxFullUpdate(PermissionRequiredMixin, View): # Define permission permission_required = "netbox_proxbox.view_proxmoxvm" + from .example import example + + data = [{ + "name": 'teste', + "changes": 'changes-teste' + }] + + table = VMUpdateResult(example.get("virtualmachines")) + + # service incoming GET HTTP requests # 'pk' value is passed to get() via URL defined in urls.py def get(self, request): """Get request.""" - update_all_result = proxbox_api.update.all(remove_unused = True) - update_all_json = json.dumps(update_all_result, indent = 4) + #update_all_result = proxbox_api.update.all(remove_unused = True) + #update_all_json = json.dumps(update_all_result, indent = 4) + #print(update_all_result) # render() renders provided template and uses it to create a well-formed web response return render( request, "netbox_proxbox/proxmox_vm_full_update.html", { - "proxmox": update_all_result, + "proxmox": self.example, + "table": self.table }, ) From d912b4580316a39a79f717b440559d11dac80c70 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Fri, 10 Mar 2023 13:22:38 +0000 Subject: [PATCH 053/313] template tebles changed to render_table feature --- netbox_proxbox/tables.py | 27 +++++++-- .../proxmox_vm_full_update.html | 59 ++----------------- netbox_proxbox/views.py | 37 ++++++++++-- 3 files changed, 59 insertions(+), 64 deletions(-) diff --git a/netbox_proxbox/tables.py b/netbox_proxbox/tables.py index 6f06390..2630b3f 100755 --- a/netbox_proxbox/tables.py +++ b/netbox_proxbox/tables.py @@ -28,7 +28,13 @@ class VMUpdateResult(table.Table): """Table for displaying VM/CT update results""" name = table.Column() - changes = table.Column() + status = table.Column() + custom_fields = table.Column() + local_context = table.Column() + resources = table.Column() + tag = table.Column() + interfaces = table.Column() + ips = table.Column() ''' status = tables.Column() @@ -40,7 +46,20 @@ class VMUpdateResult(table.Table): ''' class Meta(NetBoxTable.Meta): - fields = ('name', 'changes') - default_columns = ('name', 'changes') + fields = ('name', 'status', 'custom_fields', 'local_context', 'resources', 'tag', 'interfaces', 'ips') + default_columns = ('name') #fields = ('name', 'status', 'custom_fields', 'local_context', 'resources', 'tag', 'result') - #default_columns = ('name', 'status', 'custom_fields', 'local_context', 'resources', 'tag', 'result') \ No newline at end of file + #default_columns = ('name', 'status', 'custom_fields', 'local_context', 'resources', 'tag', 'result') + +class NodeUpdateResult(table.Table): + """Table for displaying VM/CT update results""" + + status = table.Column() + cluster = table.Column() + interfaces = table.Column() + result = table.Column() + + + class Meta(NetBoxTable.Meta): + fields = ('status', 'cluster', 'interfaces', 'result') + default_columns = ('name') \ No newline at end of file diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 5b08c98..423d100 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -2,64 +2,13 @@ {% load render_table from django_tables2 %} {% block content %} - {% render_table table %} - {% if proxmox.nodes %} -

Nodes

-
- - - - - +

Virtual Machines and Containers

+ {% render_table virtualmachines_table %} - - - - {% for node in proxmox.nodes %} - - - - +

Nodes

+ {% render_table nodes_table %} - - {% endfor %} - -
Node status changedCluster changedUpdate result
{{ node.changes.status }}{{ node.changes.cluster }}{{ node.result }}
-

- {% endif %} - {% if proxmox.virtualmachines %} -

Virtual Machines and Containers

- - - - - - - - - - - - - - - {% for virtualmachine in proxmox.virtualmachines %} - - - - - - - - - - {% endfor %} - -
VM/CT NameStatus changedCustom FieldsLocal contextResourcesTagUpdate result
{{ virtualmachine.name }}{{ virtualmachine.changes.status }}{{ virtualmachine.changes.custom_fields }}{{ virtualmachine.changes.local_context }}{{ virtualmachine.changes.resources }}{{ virtualmachine.changes.tag }}{{ virtualmachine.result }}
- -

- {% endif %} {% if proxmox.remove_unused %}

Remove unused VM/CT

Logs:

diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index 40bf0b6..b44e198 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -13,7 +13,7 @@ from .filters import ProxmoxVMFilter from .forms import ProxmoxVMForm, ProxmoxVMFilterForm from .models import ProxmoxVM -from .tables import ProxmoxVMTable, VMUpdateResult +from .tables import ProxmoxVMTable, VMUpdateResult, NodeUpdateResult from netbox_proxbox import proxbox_api import json @@ -53,8 +53,35 @@ class ProxmoxFullUpdate(PermissionRequiredMixin, View): "changes": 'changes-teste' }] - table = VMUpdateResult(example.get("virtualmachines")) - + vm_table = [] + for row in example.get("virtualmachines"): + json = { + "name": row["name"], + "status": row["changes"]["status"], + "custom_fields": row["changes"]["custom_fields"], + "local_context": row["changes"]["local_context"], + "resources": row["changes"]["resources"], + "tag": row["changes"]["tag"], + "interfaces": row["changes"]["interfaces"], + "ips": row["changes"]["ips"], + } + vm_table.append(json) + + virtualmachines_table = VMUpdateResult(vm_table) + + node_table = [] + for row in example.get("nodes"): + json = { + "status": row["changes"]["status"], + "cluster": row["changes"]["cluster"], + "interfaces": row["changes"]["interfaces"], + "result": row["result"] + } + node_table.append(json) + + #'nodes': [{'changes': {'status': False, 'cluster': False, 'interfaces': False}, 'result': True}, {'changes': {'status': False, 'cluster': False, 'interfaces': False}, 'result': True}, {'changes': {'status': False, 'cluster': False, 'interfaces': False}, 'result': True}], + nodes_table = NodeUpdateResult(node_table) + # service incoming GET HTTP requests # 'pk' value is passed to get() via URL defined in urls.py @@ -70,8 +97,8 @@ def get(self, request): request, "netbox_proxbox/proxmox_vm_full_update.html", { - "proxmox": self.example, - "table": self.table + "nodes_table": self.nodes_table, + "virtualmachines_table": self.virtualmachines_table }, ) From c9f5b03cebe69d4a702ba5d4e6353d520979a970 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Fri, 10 Mar 2023 17:11:15 +0000 Subject: [PATCH 054/313] adjust tables style to show like netbox tables --- netbox_proxbox/tables.py | 16 ++----- .../proxmox_vm_full_update.html | 46 ++++++------------- netbox_proxbox/views.py | 17 ++----- 3 files changed, 22 insertions(+), 57 deletions(-) diff --git a/netbox_proxbox/tables.py b/netbox_proxbox/tables.py index 2630b3f..d7dd4de 100755 --- a/netbox_proxbox/tables.py +++ b/netbox_proxbox/tables.py @@ -29,21 +29,12 @@ class VMUpdateResult(table.Table): name = table.Column() status = table.Column() - custom_fields = table.Column() - local_context = table.Column() + custom_fields = table.Column(verbose_name = "Custom Fields") + local_context = table.Column(verbose_name = "Local Context") resources = table.Column() tag = table.Column() interfaces = table.Column() - ips = table.Column() - - ''' - status = tables.Column() - custom_fields = tables.Column() - local_context = tables.Column() - resources = tables.Column() - tag = tables.Column() - result = tables.Column() - ''' + ips = table.Column(verbose_name = "IP Address") class Meta(NetBoxTable.Meta): fields = ('name', 'status', 'custom_fields', 'local_context', 'resources', 'tag', 'interfaces', 'ips') @@ -51,6 +42,7 @@ class Meta(NetBoxTable.Meta): #fields = ('name', 'status', 'custom_fields', 'local_context', 'resources', 'tag', 'result') #default_columns = ('name', 'status', 'custom_fields', 'local_context', 'resources', 'tag', 'result') + class NodeUpdateResult(table.Table): """Table for displaying VM/CT update results""" diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 423d100..48f1b6c 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -3,40 +3,22 @@ {% block content %}

Virtual Machines and Containers

- {% render_table virtualmachines_table %} +
+
+
+ {% render_table virtualmachines_table %} +
+
+

Nodes

- {% render_table nodes_table %} - - - {% if proxmox.remove_unused %} -

Remove unused VM/CT

-

Logs:

-
    - {% for deleted in proxmox.remove_unused %} - - {# Check amount of logs #} - {% if deleted.log|length > 1 %} -
  • {{ deleted.name }} -
      - {% for log in deleted.log %} -
    • {{ log }}
    • - {% endfor %} -
    -
  • - - {% else %} - {# If only 01 log #} -
  • {{ deleted.name }} - {% for log in deleted.log %}{{ log }}{% endfor %}
  • - {% endif %} - - - -
    - {% endfor %} -
- {% endif %} - +
+
+
+ {% render_table nodes_table %} +
+
+
{% endblock %} {% block footer_links %} diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index b44e198..2014bd8 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -46,15 +46,12 @@ class ProxmoxFullUpdate(PermissionRequiredMixin, View): # Define permission permission_required = "netbox_proxbox.view_proxmoxvm" - from .example import example - data = [{ - "name": 'teste', - "changes": 'changes-teste' - }] + update_all_result = proxbox_api.update.all(remove_unused = True) + print(update_all_result) vm_table = [] - for row in example.get("virtualmachines"): + for row in update_all_result.get("virtualmachines"): json = { "name": row["name"], "status": row["changes"]["status"], @@ -70,7 +67,7 @@ class ProxmoxFullUpdate(PermissionRequiredMixin, View): virtualmachines_table = VMUpdateResult(vm_table) node_table = [] - for row in example.get("nodes"): + for row in update_all_result.get("nodes"): json = { "status": row["changes"]["status"], "cluster": row["changes"]["cluster"], @@ -79,7 +76,6 @@ class ProxmoxFullUpdate(PermissionRequiredMixin, View): } node_table.append(json) - #'nodes': [{'changes': {'status': False, 'cluster': False, 'interfaces': False}, 'result': True}, {'changes': {'status': False, 'cluster': False, 'interfaces': False}, 'result': True}, {'changes': {'status': False, 'cluster': False, 'interfaces': False}, 'result': True}], nodes_table = NodeUpdateResult(node_table) @@ -88,11 +84,6 @@ class ProxmoxFullUpdate(PermissionRequiredMixin, View): def get(self, request): """Get request.""" - #update_all_result = proxbox_api.update.all(remove_unused = True) - #update_all_json = json.dumps(update_all_result, indent = 4) - #print(update_all_result) - - # render() renders provided template and uses it to create a well-formed web response return render( request, "netbox_proxbox/proxmox_vm_full_update.html", From ed6626ed8ebe3e64b2d10a7e172cbca3694951b5 Mon Sep 17 00:00:00 2001 From: Gskill75 <45794145+Gskill75@users.noreply.github.com> Date: Sun, 12 Mar 2023 20:31:33 +0100 Subject: [PATCH 055/313] fix interface creation --- netbox_proxbox/proxbox_api/updates/virtual_machine.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index 1649ec2..abbd09a 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -331,11 +331,11 @@ def interfaces(netbox_vm, proxmox_vm): if pmx_if is not None: if pmx_if_mac not in [_if['mac_address'] for _if in _ntb_if]: try: - if nb.virtualization.interfaces.get(virtual_machine=netbox_vm.id, name=pmx_if['name']): + if nb.virtualization.interfaces.get(virtual_machine_id=netbox_vm.id, name=pmx_if['name']): print("Interface already exist.") else: # Create interface if does not exist. - netbox_interface = nb.virtualization.interfaces.create(virtual_machine=netbox_vm.id, name=pmx_if['name'], mac_address=pmx_if_mac, mtu=pmx_if['mtu']) + netbox_interface = nb.virtualization.interfaces.create(virtual_machine_id=netbox_vm.id, name=pmx_if['name'], mac_address=pmx_if_mac, mtu=pmx_if['mtu']) updated = True except Exception as error: print(error) else: From 2c2bf3eb6a4d07e6222f2370d351c50b1fe6bde7 Mon Sep 17 00:00:00 2001 From: Gskill75 <45794145+Gskill75@users.noreply.github.com> Date: Sun, 12 Mar 2023 21:26:27 +0100 Subject: [PATCH 056/313] add required field virtual_machine --- netbox_proxbox/proxbox_api/updates/virtual_machine.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index abbd09a..b91455c 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -331,16 +331,16 @@ def interfaces(netbox_vm, proxmox_vm): if pmx_if is not None: if pmx_if_mac not in [_if['mac_address'] for _if in _ntb_if]: try: - if nb.virtualization.interfaces.get(virtual_machine_id=netbox_vm.id, name=pmx_if['name']): + if nb.virtualization.interfaces.get(virtual_machine_id=netbox_vm.id, virtual_machine=netbox_vm.name, name=pmx_if['name']): print("Interface already exist.") else: # Create interface if does not exist. - netbox_interface = nb.virtualization.interfaces.create(virtual_machine_id=netbox_vm.id, name=pmx_if['name'], mac_address=pmx_if_mac, mtu=pmx_if['mtu']) + netbox_interface = nb.virtualization.interfaces.create(virtual_machine_id=netbox_vm.id, virtual_machine=netbox_vm.name, name=pmx_if['name'], mac_address=pmx_if_mac, mtu=pmx_if['mtu']) updated = True except Exception as error: print(error) else: if pmx_if not in _ntb_if: - netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=pmx_if_mac)) + netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, virtual_machine=netbox_vm.name, mac_address=pmx_if_mac)) if len(netbox_interface) == 1: netbox_interface = netbox_interface[0] netbox_interface = nb.virtualization.interfaces.update([{'id': netbox_interface.id, 'name': pmx_if['name'], 'mac_address': pmx_if_mac, 'mtu': pmx_if['mtu']}]) From a3771db8bcc0d61494059639771b0121cb8c1990 Mon Sep 17 00:00:00 2001 From: Gskill75 <45794145+Gskill75@users.noreply.github.com> Date: Sun, 12 Mar 2023 21:31:42 +0100 Subject: [PATCH 057/313] test workflow --- netbox_proxbox/proxbox_api/updates/virtual_machine.py | 1 + 1 file changed, 1 insertion(+) diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index b91455c..1ad806f 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -481,3 +481,4 @@ def interfaces_ips(netbox_vm, proxmox_vm): else: print('[ERROR] something went wrong while getting ip object from netbox') return updated +# \ No newline at end of file From 4983797a6da6880bd39319f4a0fdc29deeaa2235 Mon Sep 17 00:00:00 2001 From: Gskill75 <45794145+Gskill75@users.noreply.github.com> Date: Sun, 12 Mar 2023 22:53:51 +0100 Subject: [PATCH 058/313] fix error vmid --- netbox_proxbox/proxbox_api/updates/virtual_machine.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index 1ad806f..478b5e1 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -335,12 +335,12 @@ def interfaces(netbox_vm, proxmox_vm): print("Interface already exist.") else: # Create interface if does not exist. - netbox_interface = nb.virtualization.interfaces.create(virtual_machine_id=netbox_vm.id, virtual_machine=netbox_vm.name, name=pmx_if['name'], mac_address=pmx_if_mac, mtu=pmx_if['mtu']) + netbox_interface = nb.virtualization.interfaces.create(virtual_machine_id=netbox_vm.id, virtual_machine=netbox_vm.id, name=pmx_if['name'], mac_address=pmx_if_mac, mtu=pmx_if['mtu']) updated = True except Exception as error: print(error) else: if pmx_if not in _ntb_if: - netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, virtual_machine=netbox_vm.name, mac_address=pmx_if_mac)) + netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, virtual_machine=netbox_vm.id, mac_address=pmx_if_mac)) if len(netbox_interface) == 1: netbox_interface = netbox_interface[0] netbox_interface = nb.virtualization.interfaces.update([{'id': netbox_interface.id, 'name': pmx_if['name'], 'mac_address': pmx_if_mac, 'mtu': pmx_if['mtu']}]) @@ -481,4 +481,3 @@ def interfaces_ips(netbox_vm, proxmox_vm): else: print('[ERROR] something went wrong while getting ip object from netbox') return updated -# \ No newline at end of file From be8085fffbe35dea360a96c95224fab2f7ccc6dc Mon Sep 17 00:00:00 2001 From: Gskill75 <45794145+Gskill75@users.noreply.github.com> Date: Mon, 13 Mar 2023 20:04:45 +0100 Subject: [PATCH 059/313] delete lower attribute on interface.mac_address --- netbox_proxbox/proxbox_api/updates/virtual_machine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index 478b5e1..c9df811 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -324,7 +324,7 @@ def interfaces(netbox_vm, proxmox_vm): _pmx_if.append({'name': ifname, 'mac_address': _mac_addr, 'mtu': _mtu}) for interface in nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id): - _ntb_if.append({'name': interface.name, 'mac_address': interface.mac_address.lower(), 'mtu': interface.mtu}) + _ntb_if.append({'name': interface.name, 'mac_address': interface.mac_address, 'mtu': interface.mtu}) for pmx_if_mac in [_if['mac_address'] for _if in _pmx_if]: pmx_if = next((_if for _if in _pmx_if if _if['mac_address'] == pmx_if_mac), None) From 2be70410a69f49684dd4c24fef86e50e3414423e Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 16 Mar 2023 19:21:07 +0000 Subject: [PATCH 060/313] change how json is returned to adapt to table display --- netbox_proxbox/proxbox_api/remove.py | 1 + netbox_proxbox/proxbox_api/update.py | 9 ++++--- netbox_proxbox/views.py | 36 ++++++++++++++++------------ 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/netbox_proxbox/proxbox_api/remove.py b/netbox_proxbox/proxbox_api/remove.py index 71e9e6b..1df7a7d 100755 --- a/netbox_proxbox/proxbox_api/remove.py +++ b/netbox_proxbox/proxbox_api/remove.py @@ -175,6 +175,7 @@ def all(): json_vm_all.append(json_vm) + print(f"json_vm: {json_vm}") return json_vm_all \ No newline at end of file diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 3d35dd9..e78b4ac 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -275,8 +275,10 @@ def virtual_machine(**kwargs): if vm_on_netbox == True: # Update Netbox information - full_update = vm_full_update(netbox_vm, proxmox_json) - json_vm["changes"] = full_update + full_update = vm_full_update(netbox_vm, proxmox_json) + + # 'changes' json + json_vm = full_update full_update_list = list(full_update.values()) @@ -301,7 +303,7 @@ def virtual_machine(**kwargs): if netbox_vm != None: # Update rest of configuration full_update = vm_full_update(netbox_vm, proxmox_json) - json_vm["changes"] = full_update + json_vm = full_update full_update_list = list(full_update.values()) @@ -331,6 +333,7 @@ def virtual_machine(**kwargs): # Unexpected error json_vm["result"] = False + print('(update) json_vm:', json_vm) return json_vm diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index 2014bd8..7596bd8 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -39,19 +39,12 @@ def get(self, request): } ) - -class ProxmoxFullUpdate(PermissionRequiredMixin, View): - """Full Update of Proxmox information on Netbox.""" - - # Define permission - permission_required = "netbox_proxbox.view_proxmoxvm" - - - update_all_result = proxbox_api.update.all(remove_unused = True) - print(update_all_result) +''' +def table_data(): + json_result = proxbox_api.update.all(remove_unused = True) vm_table = [] - for row in update_all_result.get("virtualmachines"): + for row in json_result.get("virtualmachines"): json = { "name": row["name"], "status": row["changes"]["status"], @@ -67,7 +60,7 @@ class ProxmoxFullUpdate(PermissionRequiredMixin, View): virtualmachines_table = VMUpdateResult(vm_table) node_table = [] - for row in update_all_result.get("nodes"): + for row in json_result.get("nodes"): json = { "status": row["changes"]["status"], "cluster": row["changes"]["cluster"], @@ -77,7 +70,20 @@ class ProxmoxFullUpdate(PermissionRequiredMixin, View): node_table.append(json) nodes_table = NodeUpdateResult(node_table) - + + + return [virtualmachines_table, nodes_table] +''' + +class ProxmoxFullUpdate(PermissionRequiredMixin, View): + """Full Update of Proxmox information on Netbox.""" + + # Define permission + permission_required = "netbox_proxbox.view_proxmoxvm" + + + data = proxbox_api.update.all(remove_unused = True) + print(data) # service incoming GET HTTP requests # 'pk' value is passed to get() via URL defined in urls.py @@ -88,8 +94,8 @@ def get(self, request): request, "netbox_proxbox/proxmox_vm_full_update.html", { - "nodes_table": self.nodes_table, - "virtualmachines_table": self.virtualmachines_table + "virtualmachines_table": VMUpdateResult(self.data["virtualmachines"]), + "nodes_table": NodeUpdateResult(self.data["nodes"]) }, ) From bf6b4c16754b78b3cf49f58447fd39b0192d2659 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Fri, 17 Mar 2023 12:24:10 +0000 Subject: [PATCH 061/313] Update to v0.0.5 --- README.md | 7 +++--- netbox_proxbox/__init__.py | 2 +- netbox_proxbox/proxbox_api/update.py | 12 +++++++--- .../proxbox_api/updates/virtual_machine.py | 5 +---- .../templates/netbox_proxbox/home.html | 22 +++++++++---------- .../proxmox_vm_full_update.html | 9 -------- netbox_proxbox/views.py | 7 +----- pyproject.toml | 2 +- setup.py | 2 +- 9 files changed, 29 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index beac0d2..22ebd00 100755 --- a/README.md +++ b/README.md @@ -44,10 +44,11 @@ Proxbox is currently able to get the following information from Proxmox: The following table shows the Netbox and Proxmox versions compatible (tested) with Proxbox plugin. -| netbox version | proxmox version | proxbox version +| netbox version | proxmox version | proxbox version | | ------------- |-------------|-------------| -| >= v3.2.0 | >= v6.2.0 | =v0.0.4 -| >= v3.0.0 < v3.2| >= v6.2.0 | =v0.0.3 +| >= v3.4.0 | >= v6.2.0 | =v0.0.5 | +| >= v3.2.0 | >= v6.2.0 | =v0.0.4 | +| >= v3.0.0 < v3.2 | >= v6.2.0 | =v0.0.3 |
diff --git a/netbox_proxbox/__init__.py b/netbox_proxbox/__init__.py index 80f0f8f..054f72f 100755 --- a/netbox_proxbox/__init__.py +++ b/netbox_proxbox/__init__.py @@ -5,7 +5,7 @@ class ProxboxConfig(PluginConfig): name = "netbox_proxbox" verbose_name = "Proxbox" description = "Integrates Proxmox and Netbox" - version = "0.0.5-beta1" + version = "0.0.5" author = "Emerson Felipe (@emersonfelipesp)" author_email = "emerson.felipe@nmultifibra.com.br" base_url = "proxbox" diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index e78b4ac..1bbe3b1 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -277,8 +277,15 @@ def virtual_machine(**kwargs): # Update Netbox information full_update = vm_full_update(netbox_vm, proxmox_json) - # 'changes' json - json_vm = full_update + # I made this way since dict.update didn't work + json_vm["status"] = full_update["status"] + json_vm["custom_fields"] = full_update["custom_fields"] + json_vm["local_context"] = full_update["local_context"] + json_vm["resources"] = full_update["resources"] + json_vm["tag"] = full_update["tag"] + json_vm["interfaces"] = full_update["interfaces"] + json_vm["ips"] = full_update["ips"] + full_update_list = list(full_update.values()) @@ -333,7 +340,6 @@ def virtual_machine(**kwargs): # Unexpected error json_vm["result"] = False - print('(update) json_vm:', json_vm) return json_vm diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index c9df811..a46a432 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -375,12 +375,10 @@ def interfaces_ips(netbox_vm, proxmox_vm): _ntb_ips = [] if proxmox_vm['type'] == 'qemu': agent = proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get().get("agent") - print(agent) + if agent: try: for interface in proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).agent.get('network-get-interfaces')['result']: - print(proxmox_vm['node']) - print(interface, '\n') if interface['name'].lower() != 'lo': _mac = interface.get("hardware-address") @@ -440,7 +438,6 @@ def interfaces_ips(netbox_vm, proxmox_vm): if pmx_ip not in ntb_ips: try: netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=pmx_ip)) - print(f"netbox_ipaddr: {netbox_ipaddr}") netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=pmx_mac)) if len(netbox_interface): diff --git a/netbox_proxbox/templates/netbox_proxbox/home.html b/netbox_proxbox/templates/netbox_proxbox/home.html index b245d86..7243803 100644 --- a/netbox_proxbox/templates/netbox_proxbox/home.html +++ b/netbox_proxbox/templates/netbox_proxbox/home.html @@ -25,7 +25,7 @@
Proxmox
- + {% if configuration.netbox_proxbox.proxmox.domain %} {% else %} @@ -33,7 +33,7 @@
Proxmox
{% endif %} - + {% if configuration.netbox_proxbox.proxmox.http_port %} {% else %} @@ -41,7 +41,7 @@
Proxmox
{% endif %} - + {% if configuration.netbox_proxbox.proxmox.user %} {% else %} @@ -49,21 +49,21 @@
Proxmox
{% endif %} - + {% if configuration.netbox_proxbox.proxmox.password %} {% else %} {% endif %} - + {% if configuration.netbox_proxbox.proxmox.token.name %} {% else %} {% endif %} - + {% if configuration.netbox_proxbox.proxmox.token.value %} {% else %} @@ -71,7 +71,7 @@
Proxmox
{% endif %} - + {% if configuration.netbox_proxbox.proxmox.ssl %} {% else %} @@ -88,7 +88,7 @@
Netbox
Domain / IPDomain / IP{{ configuration.netbox_proxbox.proxmox.domain }}
HTTP PortHTTP Port{{ configuration.netbox_proxbox.proxmox.http_port }}
Proxmox UserProxmox User{{ configuration.netbox_proxbox.proxmox.user }}
Proxmox PasswordProxmox Passwordpassword defined in configuration.py{{ default_config.proxmox.password }} (default)
Token NameToken Name{{ configuration.netbox_proxbox.proxmox.token.name }}{{ default_config.proxmox.token.name }} (default)
Token ValueToken Value{{ configuration.netbox_proxbox.proxmox.token.value }}
SSLSSL{{ configuration.netbox_proxbox.proxmox.ssl }}
- + {% if configuration.netbox_proxbox.netbox.domain %} {% else %} @@ -96,7 +96,7 @@
Netbox
{% endif %} - + {% if configuration.netbox_proxbox.netbox.http_port %} {% else %} @@ -104,7 +104,7 @@
Netbox
{% endif %} - + {% if configuration.netbox_proxbox.netbox.token %} {% else %} @@ -112,7 +112,7 @@
Netbox
{% endif %} - + {% if configuration.netbox_proxbox.netbox.ssl %} {% else %} diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 48f1b6c..edd56f3 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -10,15 +10,6 @@

Virtual Machines and Containers

- -

Nodes

-
-
-
- {% render_table nodes_table %} -
-
-
{% endblock %} {% block footer_links %} diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index 7596bd8..c0c356c 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -81,10 +81,6 @@ class ProxmoxFullUpdate(PermissionRequiredMixin, View): # Define permission permission_required = "netbox_proxbox.view_proxmoxvm" - - data = proxbox_api.update.all(remove_unused = True) - print(data) - # service incoming GET HTTP requests # 'pk' value is passed to get() via URL defined in urls.py def get(self, request): @@ -94,8 +90,7 @@ def get(self, request): request, "netbox_proxbox/proxmox_vm_full_update.html", { - "virtualmachines_table": VMUpdateResult(self.data["virtualmachines"]), - "nodes_table": NodeUpdateResult(self.data["nodes"]) + "virtualmachines_table": VMUpdateResult(proxbox_api.update.all(remove_unused = True)["virtualmachines"]), }, ) diff --git a/pyproject.toml b/pyproject.toml index 84aa8ea..3e20384 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "netbox-proxbox" -version = "v0.0.5-beta1" +version = "v0.0.5" description = "Netbox Plugin - Integrate Proxmox and Netbox" readme = "README.md" authors = ["Emerson Felipe "] diff --git a/setup.py b/setup.py index 388ec29..3bc93e7 100755 --- a/setup.py +++ b/setup.py @@ -35,7 +35,7 @@ setup( name="netbox-proxbox", - version="0.0.5-beta1", + version="0.0.5", author="Emerson Felipe", author_email="emerson.felipe@nmultifibra.com.br", description="Integration between Proxmox and Netbox", From eb18bac23176edee870ae60103758c385763a021 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Fri, 17 Mar 2023 17:42:12 +0000 Subject: [PATCH 062/313] Rollback the use of django_tables2 since I wasn't able to add child element to
Domain / IPDomain / IP{{ configuration.netbox_proxbox.netbox.domain }}
HTTP PortHTTP Port{{ configuration.netbox_proxbox.netbox.http_port }}
TokenToken{{ configuration.netbox_proxbox.netbox.token }}
SSLSSL{{ configuration.netbox_proxbox.netbox.ssl }} --- netbox_proxbox/proxbox_api/update.py | 6 +- netbox_proxbox/tables.py | 8 +- .../proxmox_vm_full_update.html | 167 +++++++++++++++++- netbox_proxbox/views.py | 2 +- 4 files changed, 175 insertions(+), 8 deletions(-) diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 1bbe3b1..b61f5ee 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -366,7 +366,7 @@ def nodes(**kwargs): # Update rest of configuration full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) - json_node["changes"] = full_update + json_node = full_update full_update_list = list(full_update.values()) @@ -377,6 +377,7 @@ def nodes(**kwargs): print('[OK] NODE already updated. -> {}'.format(proxmox_node_name)) # return True as the node was successfully created. + json_node["name"] = proxmox_node_name json_node["result"] = True # Error with node creation @@ -390,7 +391,7 @@ def nodes(**kwargs): # Update Netbox node information, if necessary. full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) - json_node["changes"] = full_update + json_node = full_update full_update_list = list(full_update.values()) @@ -401,6 +402,7 @@ def nodes(**kwargs): print('[OK] NODE already updated. -> {}'.format(proxmox_node_name)) # return True as the node was successfully created. + json_node["name"] = proxmox_node_name json_node["result"] = True diff --git a/netbox_proxbox/tables.py b/netbox_proxbox/tables.py index d7dd4de..3444c9b 100755 --- a/netbox_proxbox/tables.py +++ b/netbox_proxbox/tables.py @@ -6,7 +6,7 @@ class ProxmoxVMTable(NetBoxTable): """Table for displaying BGP Peering objects.""" - + print(f"\n\n\ntable.Column: {dir(table.Column)}\n\n\n") id = table.LinkColumn() cluster = table.LinkColumn() virtual_machine = table.LinkColumn() @@ -28,11 +28,11 @@ class VMUpdateResult(table.Table): """Table for displaying VM/CT update results""" name = table.Column() - status = table.Column() + status = table.Column(attrs={"span": {"class": "badge bg-green"}}) custom_fields = table.Column(verbose_name = "Custom Fields") local_context = table.Column(verbose_name = "Local Context") resources = table.Column() - tag = table.Column() + tag = table.Column(attrs={"span": {"class": "badge bg-green"}}) interfaces = table.Column() ips = table.Column(verbose_name = "IP Address") @@ -46,7 +46,7 @@ class Meta(NetBoxTable.Meta): class NodeUpdateResult(table.Table): """Table for displaying VM/CT update results""" - status = table.Column() + status = table.Column(attrs={"span": {"class": "badge bg-green"}}) cluster = table.Column() interfaces = table.Column() result = table.Column() diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index edd56f3..0388b7f 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -6,7 +6,172 @@

Virtual Machines and Containers

- {% render_table virtualmachines_table %} + {% if proxmox.nodes %} +

Nodes

+ + + + + + + + + + + + {% for node in proxmox.nodes %} + + + + + + + {% endfor %} + +
NameNode status changedCluster changedInterface changedUpdate result
+ + {{ node.name }} + + + {% if node.status %} + + {{ node.status }} + + {% else %} + + {{ node.status }} + + {% endif %} + + {% if node.cluster %} + + {{ node.cluster }} + + {% else %} + + {{ node.cluster }} + + {% endif %} + + {% if node.interfaces %} + + {{ node.interfaces }} + + {% else %} + + {{ node.interfaces }} + + {% endif %} + + {% if node.result %} + + {{ node.result }} + + {% else %} + + {{ node.result }} + + {% endif %} +
+ +

+ {% endif %} + {% if proxmox.virtualmachines %} +

Virtual Machines and Containers

+ + + + + + + + + + + + + + + {% for virtualmachine in proxmox.virtualmachines %} + + + + + + + + + + {% endfor %} + +
VM/CT NameStatus changedCustom FieldsLocal contextResourcesTagUpdate result
+ + {{ virtualmachine.name }} + + + {% if virtualmachine.status %} + + {{ virtualmachine.status }} + + {% else %} + + {{ virtualmachine.status }} + + {% endif %} + + {% if virtualmachine.custom_fields %} + + {{ virtualmachine.custom_fields }} + + {% else %} + + {{ virtualmachine.custom_fields }} + + {% endif %} + + {% if virtualmachine.local_context %} + + {{ virtualmachine.local_context }} + + {% else %} + + {{ virtualmachine.local_context }} + + {% endif %} + + {% if virtualmachine.resources %} + + {{ virtualmachine.resources }} + + {% else %} + + {{ virtualmachine.resources }} + + {% endif %} + + {% if virtualmachine.tag %} + + {{ virtualmachine.tag }} + + {% else %} + + {{ virtualmachine.tag }} + + {% endif %} + + {% if virtualmachine.result %} + + {{ virtualmachine.result }} + + {% else %} + + {{ virtualmachine.result }} + + {% endif %} +
+ +

+ {% endif %}
diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index c0c356c..a3bc8fc 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -90,7 +90,7 @@ def get(self, request): request, "netbox_proxbox/proxmox_vm_full_update.html", { - "virtualmachines_table": VMUpdateResult(proxbox_api.update.all(remove_unused = True)["virtualmachines"]), + "proxmox": proxbox_api.update.all(remove_unused = True), }, ) From ca24338c1692d9897113cfc6e49735f1251d778b Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Fri, 17 Mar 2023 19:06:21 +0000 Subject: [PATCH 063/313] Add link to Virtual Machines and Nodes on update result table --- netbox_proxbox/proxbox_api/update.py | 4 ++++ netbox_proxbox/tables.py | 1 - .../netbox_proxbox/proxmox_vm_full_update.html | 18 ++++++++++++------ .../netbox_proxbox/proxmox_vm_list.html | 6 ++++++ netbox_proxbox/urls.py | 2 ++ 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index b61f5ee..8a5275b 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -278,6 +278,7 @@ def virtual_machine(**kwargs): full_update = vm_full_update(netbox_vm, proxmox_json) # I made this way since dict.update didn't work + json_vm["vm_id"] = netbox_vm.id json_vm["status"] = full_update["status"] json_vm["custom_fields"] = full_update["custom_fields"] json_vm["local_context"] = full_update["local_context"] @@ -311,6 +312,7 @@ def virtual_machine(**kwargs): # Update rest of configuration full_update = vm_full_update(netbox_vm, proxmox_json) json_vm = full_update + json_vm["vm_id"] = netbox_vm.id full_update_list = list(full_update.values()) @@ -377,6 +379,7 @@ def nodes(**kwargs): print('[OK] NODE already updated. -> {}'.format(proxmox_node_name)) # return True as the node was successfully created. + json_node["node_id"] = netbox_node.id json_node["name"] = proxmox_node_name json_node["result"] = True @@ -402,6 +405,7 @@ def nodes(**kwargs): print('[OK] NODE already updated. -> {}'.format(proxmox_node_name)) # return True as the node was successfully created. + json_node["node_id"] = netbox_node.id json_node["name"] = proxmox_node_name json_node["result"] = True diff --git a/netbox_proxbox/tables.py b/netbox_proxbox/tables.py index 3444c9b..39c7244 100755 --- a/netbox_proxbox/tables.py +++ b/netbox_proxbox/tables.py @@ -6,7 +6,6 @@ class ProxmoxVMTable(NetBoxTable): """Table for displaying BGP Peering objects.""" - print(f"\n\n\ntable.Column: {dir(table.Column)}\n\n\n") id = table.LinkColumn() cluster = table.LinkColumn() virtual_machine = table.LinkColumn() diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 0388b7f..87910a6 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -2,16 +2,18 @@ {% load render_table from django_tables2 %} {% block content %} -

Virtual Machines and Containers

+
+

Virtual Machines and Containers

+
{% if proxmox.nodes %} -

Nodes

+

Nodes

- + @@ -23,7 +25,9 @@

Nodes

+ + + + + + + {% endfor %} + +
NameNode Name Node status changed Cluster changed Interface changed
- {{ node.name }} + + {{ node.name }} + @@ -77,7 +81,7 @@

Nodes



{% endif %} {% if proxmox.virtualmachines %} -

Virtual Machines and Containers

+

Virtual Machines and Containers

@@ -96,7 +100,9 @@

Virtual Machines and Containers

{% endif %} - - - -
- {{ virtualmachine.name }} + + {{ virtualmachine.name }} + diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html index 287757c..7311513 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html @@ -2,6 +2,12 @@ {% load render_table from django_tables2 %} {% block content %} +

TESTE TESTE TESTE

+ + + {{ virtualmachine.name }} + +
{% if perms.netbox_proxbox.add_proxmoxvm %} Proxmox Full Update diff --git a/netbox_proxbox/urls.py b/netbox_proxbox/urls.py index d870873..433c589 100755 --- a/netbox_proxbox/urls.py +++ b/netbox_proxbox/urls.py @@ -29,6 +29,8 @@ path("/delete/", ProxmoxVMDeleteView.as_view(), name="proxmoxvm_delete"), path("/edit/", ProxmoxVMEditView.as_view(), name="proxmoxvm_edit"), + + # Proxbox API full update #path("full_update/", ProxmoxVMFullUpdate.as_view(), name="proxmoxvm_full_update") path("full_update/", ProxmoxFullUpdate.as_view(), name="proxmoxvm_full_update") From 0befcae7e47da35bc94ce4dfa5aca0c0662d5b04 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Fri, 17 Mar 2023 19:41:01 +0000 Subject: [PATCH 064/313] replace title with image of both systems integrated --- .../static/netbox_proxbox/proxmox-logo.svg | 243 ++++++++++++++++++ netbox_proxbox/static/proxmox-logo.svg | 243 ++++++++++++++++++ .../templates/netbox_proxbox/home.html | 18 +- .../proxmox_vm_full_update.html | 1 - .../netbox_proxbox/proxmox_vm_list.html | 2 - 5 files changed, 501 insertions(+), 6 deletions(-) create mode 100644 netbox_proxbox/static/netbox_proxbox/proxmox-logo.svg create mode 100644 netbox_proxbox/static/proxmox-logo.svg diff --git a/netbox_proxbox/static/netbox_proxbox/proxmox-logo.svg b/netbox_proxbox/static/netbox_proxbox/proxmox-logo.svg new file mode 100644 index 0000000..bc5d22a --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/proxmox-logo.svg @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/netbox_proxbox/static/proxmox-logo.svg b/netbox_proxbox/static/proxmox-logo.svg new file mode 100644 index 0000000..bc5d22a --- /dev/null +++ b/netbox_proxbox/static/proxmox-logo.svg @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/netbox_proxbox/templates/netbox_proxbox/home.html b/netbox_proxbox/templates/netbox_proxbox/home.html index 7243803..804e397 100644 --- a/netbox_proxbox/templates/netbox_proxbox/home.html +++ b/netbox_proxbox/templates/netbox_proxbox/home.html @@ -1,5 +1,5 @@ {% extends 'base/layout.html' %} - +{% load static %} {% block content %} @@ -13,6 +13,8 @@ {% endif %}

+ +

Proxbox Configuration @@ -21,7 +23,12 @@

-
Proxmox
+
+
+ + Proxmox Logo + +
@@ -84,7 +91,12 @@
Proxmox
-
Netbox
+
+
+ + Netbox Logo + +
diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 87910a6..7d8ba28 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -1,5 +1,4 @@ {% extends 'base/layout.html' %} -{% load render_table from django_tables2 %} {% block content %}
diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html index 7311513..ad3b1f3 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_list.html @@ -2,8 +2,6 @@ {% load render_table from django_tables2 %} {% block content %} -

TESTE TESTE TESTE

- {{ virtualmachine.name }} From 5f093094e90621e87cc1f15e8bd832c0295753d8 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 20 Mar 2023 12:14:45 +0000 Subject: [PATCH 065/313] fix duplicate update due to case sensitive mismatch --- netbox_proxbox/proxbox_api/updates/virtual_machine.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index a46a432..64a0a3f 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -308,7 +308,7 @@ def interfaces(netbox_vm, proxmox_vm): for _conf_str in interface[ifname].split(','): _k_s =_conf_str.split('=') if re.match("[0-9a-f]{2}([-:]?)[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", _k_s[1].lower()): - _mac_addr =_k_s[1].lower() + _mac_addr =_k_s[1].upper() elif _k_s[0] == 'bridge': _bridge = _k_s[1].lower() elif _k_s[0] == 'mtu': @@ -324,7 +324,7 @@ def interfaces(netbox_vm, proxmox_vm): _pmx_if.append({'name': ifname, 'mac_address': _mac_addr, 'mtu': _mtu}) for interface in nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id): - _ntb_if.append({'name': interface.name, 'mac_address': interface.mac_address, 'mtu': interface.mtu}) + _ntb_if.append({'name': interface.name, 'mac_address': interface.mac_address.upper(), 'mtu': interface.mtu}) for pmx_if_mac in [_if['mac_address'] for _if in _pmx_if]: pmx_if = next((_if for _if in _pmx_if if _if['mac_address'] == pmx_if_mac), None) From 7a426e7e2b324f78fa21fb1b1d7898bb86043462 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 20 Mar 2023 12:55:17 +0000 Subject: [PATCH 066/313] Add try-except and other if to check cluster name --- netbox_proxbox/proxbox_api/updates/node.py | 44 ++++++++++++---------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index 788931a..b9d07a3 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -59,9 +59,26 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): # # Compare CLUSTER # - if proxmox_cluster != None: - # If cluster is filled, but different from actual cluster, update it. - if netbox_node.cluster.name != proxmox_cluster['name']: + try: + if proxmox_cluster != None and netbox_node != None: + # If cluster is not filled or even filled, but different from actual cluster, update it. + if netbox_node.cluster.name != proxmox_cluster['name'] or netbox_node.cluster.name == None: + # Search for Proxmox Cluster using create.cluster() function + cluster_id = create.virtualization.cluster().id + + # Use Cluster ID to update NODE information + netbox_node.cluster.id = cluster_id + + if netbox_node.save() == True: + cluster_updated = True + else: + cluster_updated = False + + else: + cluster_updated = False + + # If cluster is empty, update it. + elif proxmox_cluster == None: # Search for Proxmox Cluster using create.cluster() function cluster_id = create.virtualization.cluster().id @@ -72,26 +89,15 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): cluster_updated = True else: cluster_updated = False - + + # If cluster was not empty and also not different, do not make any change. else: cluster_updated = False + + except Exception as error: + print(f"[ERROR] {error}") - # If cluster is empty, update it. - elif proxmox_cluster == None: - # Search for Proxmox Cluster using create.cluster() function - cluster_id = create.virtualization.cluster().id - - # Use Cluster ID to update NODE information - netbox_node.cluster.id = cluster_id - if netbox_node.save() == True: - cluster_updated = True - else: - cluster_updated = False - - # If cluster was not empty and also not different, do not make any change. - else: - cluster_updated = False return cluster_updated From 29a818a2686568083cc0f6a2631fcdf5347d5da4 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 20 Mar 2023 13:14:24 +0000 Subject: [PATCH 067/313] Declare 'cluster_updated' variable before try-except --- netbox_proxbox/proxbox_api/updates/node.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index b9d07a3..6b48dc6 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -59,6 +59,7 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): # # Compare CLUSTER # + cluster_updated = False try: if proxmox_cluster != None and netbox_node != None: # If cluster is not filled or even filled, but different from actual cluster, update it. @@ -93,7 +94,7 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): # If cluster was not empty and also not different, do not make any change. else: cluster_updated = False - + except Exception as error: print(f"[ERROR] {error}") From 719a10f3f9a64ead7b59d767e715484336eaa4ed Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 20 Mar 2023 13:26:43 +0000 Subject: [PATCH 068/313] add more print to help debugging --- netbox_proxbox/proxbox_api/updates/node.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index 6b48dc6..22c806f 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -60,6 +60,7 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): # Compare CLUSTER # cluster_updated = False + try: if proxmox_cluster != None and netbox_node != None: # If cluster is not filled or even filled, but different from actual cluster, update it. @@ -96,7 +97,7 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): cluster_updated = False except Exception as error: - print(f"[ERROR] {error}") + print(f"[ERROR] {error}\n netbox_node: {netbox_node}\n> netbox_node.cluster.id: {netbox_node.cluster.id}\n> proxmox_cluster: {proxmox_cluster}") From 6b71aa95d8900037d993c21f53147e0796d79e38 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 20 Mar 2023 13:40:24 +0000 Subject: [PATCH 069/313] check if 'netbox_node' is None --- netbox_proxbox/proxbox_api/updates/node.py | 54 +++++++++++----------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index 22c806f..0d57574 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -61,10 +61,27 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): # cluster_updated = False - try: - if proxmox_cluster != None and netbox_node != None: - # If cluster is not filled or even filled, but different from actual cluster, update it. - if netbox_node.cluster.name != proxmox_cluster['name'] or netbox_node.cluster.name == None: + if netbox_node != None: + try: + if proxmox_cluster != None and netbox_node != None: + # If cluster is not filled or even filled, but different from actual cluster, update it. + if netbox_node.cluster.name != proxmox_cluster['name'] or netbox_node.cluster.name == None: + # Search for Proxmox Cluster using create.cluster() function + cluster_id = create.virtualization.cluster().id + + # Use Cluster ID to update NODE information + netbox_node.cluster.id = cluster_id + + if netbox_node.save() == True: + cluster_updated = True + else: + cluster_updated = False + + else: + cluster_updated = False + + # If cluster is empty, update it. + elif proxmox_cluster == None: # Search for Proxmox Cluster using create.cluster() function cluster_id = create.virtualization.cluster().id @@ -75,31 +92,16 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): cluster_updated = True else: cluster_updated = False - - else: - cluster_updated = False - - # If cluster is empty, update it. - elif proxmox_cluster == None: - # Search for Proxmox Cluster using create.cluster() function - cluster_id = create.virtualization.cluster().id - - # Use Cluster ID to update NODE information - netbox_node.cluster.id = cluster_id - - if netbox_node.save() == True: - cluster_updated = True + + # If cluster was not empty and also not different, do not make any change. else: cluster_updated = False - - # If cluster was not empty and also not different, do not make any change. - else: - cluster_updated = False - - except Exception as error: - print(f"[ERROR] {error}\n netbox_node: {netbox_node}\n> netbox_node.cluster.id: {netbox_node.cluster.id}\n> proxmox_cluster: {proxmox_cluster}") - + except Exception as error: + print(f"[ERROR] {error}\n netbox_node: {netbox_node}\n> netbox_node.cluster.id: {netbox_node.cluster.id}\n> proxmox_cluster: {proxmox_cluster}") + else: + print(f"netbox_node: {netbox_node}") + cluster_updated = False return cluster_updated From 10538769385327548132a74cbd7a118d438fd99b Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 20 Mar 2023 13:48:15 +0000 Subject: [PATCH 070/313] add netbox_node print to help debugging --- netbox_proxbox/proxbox_api/update.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 8a5275b..a8f40af 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -356,6 +356,7 @@ def nodes(**kwargs): # Search netbox using VM name netbox_search = nb.dcim.devices.get(name = proxmox_node_name) + print(f"(1) netbox_search: {netbox_search}") # Search node on Netbox with Proxmox node name gotten if nb.dcim.devices.get(name = proxmox_node_name) == None: @@ -391,6 +392,7 @@ def nodes(**kwargs): else: # If node already exist, try updating it. netbox_node = netbox_search + print(f"(1) netbox_node: {netbox_node}") # Update Netbox node information, if necessary. full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) From 15b350333c83ce7befb30e1ac55f51f1ecd246d7 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 20 Mar 2023 13:58:49 +0000 Subject: [PATCH 071/313] add more prints --- netbox_proxbox/proxbox_api/update.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index a8f40af..6e2640f 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -393,6 +393,9 @@ def nodes(**kwargs): # If node already exist, try updating it. netbox_node = netbox_search print(f"(1) netbox_node: {netbox_node}") + print(f"> netbox_node.id: {netbox_node.id}") + print(f"> netbox_node.cluster: {netbox_node.cluster}") + print(f"> netbox_node.cluster.id: {netbox_node.cluster.id}") # Update Netbox node information, if necessary. full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) From 67d389d373a1d2fea5e46a84fd2c95982c00be5c Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 20 Mar 2023 14:08:34 +0000 Subject: [PATCH 072/313] remove prints as error was found, now I will work on definitive solution --- netbox_proxbox/proxbox_api/update.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 6e2640f..8a5275b 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -356,7 +356,6 @@ def nodes(**kwargs): # Search netbox using VM name netbox_search = nb.dcim.devices.get(name = proxmox_node_name) - print(f"(1) netbox_search: {netbox_search}") # Search node on Netbox with Proxmox node name gotten if nb.dcim.devices.get(name = proxmox_node_name) == None: @@ -392,10 +391,6 @@ def nodes(**kwargs): else: # If node already exist, try updating it. netbox_node = netbox_search - print(f"(1) netbox_node: {netbox_node}") - print(f"> netbox_node.id: {netbox_node.id}") - print(f"> netbox_node.cluster: {netbox_node.cluster}") - print(f"> netbox_node.cluster.id: {netbox_node.cluster.id}") # Update Netbox node information, if necessary. full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) From 0c0e28139e711be5ea94326ee8d64d1f5d14a546 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 20 Mar 2023 19:02:09 +0000 Subject: [PATCH 073/313] create device with '(2)' appended if it already exists on Netbox --- netbox_proxbox/proxbox_api/create/dcim.py | 5 ++ netbox_proxbox/proxbox_api/update.py | 85 +++++++++++++++++----- netbox_proxbox/proxbox_api/updates/node.py | 5 +- 3 files changed, 75 insertions(+), 20 deletions(-) diff --git a/netbox_proxbox/proxbox_api/create/dcim.py b/netbox_proxbox/proxbox_api/create/dcim.py index 6aad84b..8ee50cc 100755 --- a/netbox_proxbox/proxbox_api/create/dcim.py +++ b/netbox_proxbox/proxbox_api/create/dcim.py @@ -148,6 +148,11 @@ def node(proxmox_node): node_json["status"] = 'active' node_json["tags"] = [extras.tag().id] node_json["cluster"] = virtualization.cluster().id + + # If device already exists, append (2) to final of the name + check_duplicate = proxmox_node.get("duplicate", False) + if check_duplicate: + node_json["name"] = f"{proxmox_node['name']} (2)" # Create Node with json 'node_json' try: diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 8a5275b..4d25837 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -17,6 +17,8 @@ remove, ) +from .create import extras + # Call all functions to update Virtual Machine def vm_full_update(netbox_vm, proxmox_vm): changes = {} @@ -54,6 +56,9 @@ def vm_full_update(netbox_vm, proxmox_vm): def node_full_update(netbox_node, proxmox_json, proxmox_cluster): + print(f"netbox_node: {netbox_node} | {type(netbox_node)}") + print(f"proxmox_json: {proxmox_json} | {type(proxmox_json)}") + print(f"proxmox_cluster: {proxmox_cluster} | {type(proxmox_cluster)}") changes = {} status_updated = updates.node.status(netbox_node, proxmox_json) @@ -347,6 +352,7 @@ def virtual_machine(**kwargs): def nodes(**kwargs): + print("\n\nNODES TESTE\n\n") proxmox_cluster = kwargs.get('proxmox_cluster') proxmox_json = kwargs.get('proxmox_json') @@ -356,9 +362,9 @@ def nodes(**kwargs): # Search netbox using VM name netbox_search = nb.dcim.devices.get(name = proxmox_node_name) - + print(f"netbox_search: {netbox_search}") # Search node on Netbox with Proxmox node name gotten - if nb.dcim.devices.get(name = proxmox_node_name) == None: + if netbox_search == None: # If node does not exist, create it. netbox_node = create.dcim.node(proxmox_json) @@ -389,25 +395,70 @@ def nodes(**kwargs): json_node["result"] = False else: - # If node already exist, try updating it. - netbox_node = netbox_search + print("device found") + try: + # Check if Proxbox tag exist. + print(netbox_search.tags) - # Update Netbox node information, if necessary. - full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) - json_node = full_update + search_tag = netbox_search.tags.index(extras.tag()) + print(f"search_tag: {search_tag}") - full_update_list = list(full_update.values()) + # If node already exist, try updating it. + netbox_node = netbox_search - # Analyze if update was successful - if True in full_update_list: - print('[OK] NODE updated. -> {}'.format(proxmox_node_name)) - else: - print('[OK] NODE already updated. -> {}'.format(proxmox_node_name)) + # Update Netbox node information, if necessary. + full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) + json_node = full_update + + full_update_list = list(full_update.values()) + + # Analyze if update was successful + if True in full_update_list: + print('[OK] NODE updated. -> {}'.format(proxmox_node_name)) + else: + print('[OK] NODE already updated. -> {}'.format(proxmox_node_name)) - # return True as the node was successfully created. - json_node["node_id"] = netbox_node.id - json_node["name"] = proxmox_node_name - json_node["result"] = True + # return True as the node was successfully created. + json_node["node_id"] = netbox_node.id + json_node["name"] = proxmox_node_name + json_node["result"] = True + + except ValueError as error: + # Tag was not found within device, so there is already existing device. + print(f"[WARNING] Device with the same name as {netbox_search.name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") + + proxmox_json["duplicate"] = True + + # If node does not exist, create it. + netbox_node = create.dcim.node(proxmox_json) + + # Node created + if netbox_node != None: + print("[OK] Node created! -> {}".format(proxmox_node_name)) + + # Update rest of configuration + full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) + json_node = full_update + + full_update_list = list(full_update.values()) + + # Analyze if update was successful + if True in full_update_list: + print('[OK] NODE updated. -> {}'.format(proxmox_node_name)) + else: + print('[OK] NODE already updated. -> {}'.format(proxmox_node_name)) + + # return True as the node was successfully created. + json_node["node_id"] = netbox_node.id + json_node["name"] = proxmox_node_name + json_node["result"] = True + + # Error with node creation + else: + print('[ERROR] Something went wrong when creating the node.-> {}'.format(proxmox_node_name)) + json_node["result"] = False + + diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index 0d57574..deeae74 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -63,7 +63,7 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): if netbox_node != None: try: - if proxmox_cluster != None and netbox_node != None: + if proxmox_cluster != None: # If cluster is not filled or even filled, but different from actual cluster, update it. if netbox_node.cluster.name != proxmox_cluster['name'] or netbox_node.cluster.name == None: # Search for Proxmox Cluster using create.cluster() function @@ -98,9 +98,8 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): cluster_updated = False except Exception as error: - print(f"[ERROR] {error}\n netbox_node: {netbox_node}\n> netbox_node.cluster.id: {netbox_node.cluster.id}\n> proxmox_cluster: {proxmox_cluster}") + print(f"[ERROR] {error}") else: - print(f"netbox_node: {netbox_node}") cluster_updated = False return cluster_updated From afc4572b6967123831c5f7f67a59214aebad75a2 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 20 Mar 2023 21:05:35 +0000 Subject: [PATCH 074/313] Add comment with information about the original device which was duplicated and fix minor bugs --- netbox_proxbox/proxbox_api/create/dcim.py | 18 +++++- netbox_proxbox/proxbox_api/update.py | 78 ++++++++--------------- 2 files changed, 45 insertions(+), 51 deletions(-) diff --git a/netbox_proxbox/proxbox_api/create/dcim.py b/netbox_proxbox/proxbox_api/create/dcim.py index 8ee50cc..24f73f8 100755 --- a/netbox_proxbox/proxbox_api/create/dcim.py +++ b/netbox_proxbox/proxbox_api/create/dcim.py @@ -10,7 +10,8 @@ virtualization, ) - +from netbox.configuration import PLUGINS_CONFIG +proxbox_user_cfg = PLUGINS_CONFIG # # dcim.manufacturers @@ -154,9 +155,24 @@ def node(proxmox_node): if check_duplicate: node_json["name"] = f"{proxmox_node['name']} (2)" + + original_device = proxmox_node.get("netbox_original_device", None) + if original_device: + print(f"proxbox_user_cfg: {proxbox_user_cfg}") + cfg = proxbox_user_cfg.get("netbox_proxbox").get("netbox") + domain = cfg.get("domain", 'netbox.example.com') + http_port = cfg.get("http_port", 80) + node_json["comments"] = f"The original device has the following info:
**Device ID:** {original_device.id}
**Name:** {original_device.name}" + + #"configuration": configuration.PLUGINS_CONFIG, + #"default_config": ProxboxConfig.default_settings + #https://{{ configuration.netbox_proxbox.proxmox.domain }}:{{ configuration.netbox_proxbox.proxmox.http_port }}" target="_blank" + + print(f"(node) node_json: {node_json}") # Create Node with json 'node_json' try: netbox_obj = nb.dcim.devices.create(node_json) + print(f"netbox_obj: {netbox_obj}") except: print("[proxbox_api.create.node] Creation of NODE failed.") diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 4d25837..05eb54a 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -56,9 +56,6 @@ def vm_full_update(netbox_vm, proxmox_vm): def node_full_update(netbox_node, proxmox_json, proxmox_cluster): - print(f"netbox_node: {netbox_node} | {type(netbox_node)}") - print(f"proxmox_json: {proxmox_json} | {type(proxmox_json)}") - print(f"proxmox_cluster: {proxmox_cluster} | {type(proxmox_cluster)}") changes = {} status_updated = updates.node.status(netbox_node, proxmox_json) @@ -352,19 +349,12 @@ def virtual_machine(**kwargs): def nodes(**kwargs): - print("\n\nNODES TESTE\n\n") proxmox_cluster = kwargs.get('proxmox_cluster') proxmox_json = kwargs.get('proxmox_json') proxmox_node_name = proxmox_json.get("name") - json_node = {} - - # Search netbox using VM name - netbox_search = nb.dcim.devices.get(name = proxmox_node_name) - print(f"netbox_search: {netbox_search}") - # Search node on Netbox with Proxmox node name gotten - if netbox_search == None: + def create_node(): # If node does not exist, create it. netbox_node = create.dcim.node(proxmox_json) @@ -375,6 +365,8 @@ def nodes(**kwargs): # Update rest of configuration full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) json_node = full_update + json_node["result"] = True + json_node["node_id"] = netbox_node.id full_update_list = list(full_update.values()) @@ -383,25 +375,39 @@ def nodes(**kwargs): print('[OK] NODE updated. -> {}'.format(proxmox_node_name)) else: print('[OK] NODE already updated. -> {}'.format(proxmox_node_name)) + + return json_node + + # Error with node creation + else: + print('[ERROR] Something went wrong when creating the node.-> {}'.format(proxmox_node_name)) + json_node = {} + json_node["result"] = False + + return json_node + + # Search netbox using VM name + netbox_search = nb.dcim.devices.get(name = proxmox_node_name) + # Search node on Netbox with Proxmox node name gotten + if netbox_search == None: + # If node does not exist, create it. + json_node = create_node() + + # Node created + if json_node != None: # return True as the node was successfully created. - json_node["node_id"] = netbox_node.id json_node["name"] = proxmox_node_name - json_node["result"] = True - + # Error with node creation else: print('[ERROR] Something went wrong when creating the node.-> {}'.format(proxmox_node_name)) json_node["result"] = False else: - print("device found") try: # Check if Proxbox tag exist. - print(netbox_search.tags) - search_tag = netbox_search.tags.index(extras.tag()) - print(f"search_tag: {search_tag}") # If node already exist, try updating it. netbox_node = netbox_search @@ -428,39 +434,11 @@ def nodes(**kwargs): print(f"[WARNING] Device with the same name as {netbox_search.name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") proxmox_json["duplicate"] = True - - # If node does not exist, create it. - netbox_node = create.dcim.node(proxmox_json) - - # Node created - if netbox_node != None: - print("[OK] Node created! -> {}".format(proxmox_node_name)) - - # Update rest of configuration - full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) - json_node = full_update - - full_update_list = list(full_update.values()) - - # Analyze if update was successful - if True in full_update_list: - print('[OK] NODE updated. -> {}'.format(proxmox_node_name)) - else: - print('[OK] NODE already updated. -> {}'.format(proxmox_node_name)) - - # return True as the node was successfully created. - json_node["node_id"] = netbox_node.id - json_node["name"] = proxmox_node_name - json_node["result"] = True - - # Error with node creation - else: - print('[ERROR] Something went wrong when creating the node.-> {}'.format(proxmox_node_name)) - json_node["result"] = False - - - + proxmox_json["netbox_original_device"] = netbox_search + json_node = create_node() + # return True as the node was successfully created. + json_node["name"] = proxmox_node_name return json_node From 40013891725852e568e6318a5563d4b6f9de78eb Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Tue, 21 Mar 2023 17:20:05 +0000 Subject: [PATCH 075/313] Add 'Show JSON result' button on botton of page to show raw json result --- .../proxmox_vm_full_update.html | 25 +++++++++++++++++-- netbox_proxbox/views.py | 16 ++++++++++-- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 7d8ba28..776fbc0 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -24,9 +24,13 @@

Nodes

{% endif %} - - - -
- + {% if node.node_id %} + + {{ node.name }} + + {% else %} {{ node.name }} - + {% endif %} @@ -180,6 +184,23 @@

Virtual Machines and Containers

+ +

+ +

+
+
+
{{ proxmox_json }}
+
+
+ + + + + + {% endblock %} {% block footer_links %} diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index a3bc8fc..5569e9c 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -3,7 +3,9 @@ # 'View' is a django subclass. Basic type of class-based views from django.views import View from django.views.generic.edit import CreateView, DeleteView, UpdateView -from django_tables2 import RequestConfig + +from django.views.decorators.cache import never_cache + # Enables permissions for views using Django authentication system. # PermissionRequiredMixin = will handle permission checks logic and will plug into the # Netbox's existing authorization system. @@ -23,6 +25,7 @@ from . import ProxboxConfig + class HomeView(View): """Homepage""" template_name = 'netbox_proxbox/home.html' @@ -75,22 +78,31 @@ def table_data(): return [virtualmachines_table, nodes_table] ''' + class ProxmoxFullUpdate(PermissionRequiredMixin, View): """Full Update of Proxmox information on Netbox.""" # Define permission permission_required = "netbox_proxbox.view_proxmoxvm" + + + # service incoming GET HTTP requests # 'pk' value is passed to get() via URL defined in urls.py def get(self, request): """Get request.""" + json_result = proxbox_api.update.all(remove_unused = True) + + import json + return render( request, "netbox_proxbox/proxmox_vm_full_update.html", { - "proxmox": proxbox_api.update.all(remove_unused = True), + "proxmox": json_result, + "proxmox_json": json.dumps(json_result, indent=4) }, ) From f8b4118617baba54b7a0e95effb1368388f47c64 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Tue, 21 Mar 2023 18:43:23 +0000 Subject: [PATCH 076/313] Fix minor bugs related to creating duplicated device --- netbox_proxbox/proxbox_api/create/dcim.py | 54 ++++++++++++------- netbox_proxbox/proxbox_api/update.py | 6 ++- .../proxmox_vm_full_update.html | 8 +-- 3 files changed, 41 insertions(+), 27 deletions(-) diff --git a/netbox_proxbox/proxbox_api/create/dcim.py b/netbox_proxbox/proxbox_api/create/dcim.py index 24f73f8..cac03be 100755 --- a/netbox_proxbox/proxbox_api/create/dcim.py +++ b/netbox_proxbox/proxbox_api/create/dcim.py @@ -10,9 +10,6 @@ virtualization, ) -from netbox.configuration import PLUGINS_CONFIG -proxbox_user_cfg = PLUGINS_CONFIG - # # dcim.manufacturers # @@ -153,33 +150,52 @@ def node(proxmox_node): # If device already exists, append (2) to final of the name check_duplicate = proxmox_node.get("duplicate", False) if check_duplicate: + # Redefine name appending (2) to final node_json["name"] = f"{proxmox_node['name']} (2)" original_device = proxmox_node.get("netbox_original_device", None) if original_device: - print(f"proxbox_user_cfg: {proxbox_user_cfg}") - cfg = proxbox_user_cfg.get("netbox_proxbox").get("netbox") - domain = cfg.get("domain", 'netbox.example.com') - http_port = cfg.get("http_port", 80) node_json["comments"] = f"The original device has the following info:
**Device ID:** {original_device.id}
**Name:** {original_device.name}" - #"configuration": configuration.PLUGINS_CONFIG, - #"default_config": ProxboxConfig.default_settings - #https://{{ configuration.netbox_proxbox.proxmox.domain }}:{{ configuration.netbox_proxbox.proxmox.http_port }}" target="_blank" - - print(f"(node) node_json: {node_json}") - # Create Node with json 'node_json' - try: - netbox_obj = nb.dcim.devices.create(node_json) - print(f"netbox_obj: {netbox_obj}") - except: - print("[proxbox_api.create.node] Creation of NODE failed.") + print(f"(node) node_json: {node_json}") netbox_obj = None + search_device = None + + # Create Node with json 'node_json' + try: + # GET + search_device = nb.dcim.devices.get( + name = node_json["name"], + cluster = node_json["cluster"] + ) + return search_device + except Exception as error: + print(error) + + try: + # CREATE + if search_device == None: + netbox_obj = nb.dcim.devices.create(node_json) + return netbox_obj + except Exception as error: + print(error) + + finally: + print("[proxbox_api.create.node] Creation of NODE failed.") + netbox_obj = None + # If NODE is not DUPLICATED, then CREATE it. else: - return netbox_obj + # Create Node with json 'node_json' + try: + netbox_obj = nb.dcim.devices.create(node_json) + + except: + print("[proxbox_api.create.node] Creation of NODE failed.") + netbox_obj = None + return netbox_obj # In case nothing works, returns error netbox_obj = None diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 05eb54a..4febc62 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -356,6 +356,7 @@ def nodes(**kwargs): def create_node(): # If node does not exist, create it. + print(f"proxmox_json: {proxmox_json}") netbox_node = create.dcim.node(proxmox_json) # Node created @@ -380,7 +381,8 @@ def create_node(): # Error with node creation else: - print('[ERROR] Something went wrong when creating the node.-> {}'.format(proxmox_node_name)) + print('netbox_node: ', netbox_node) + print('[ERROR] Something went wrong when creating the node.-> {} (2)'.format(proxmox_node_name)) json_node = {} json_node["result"] = False @@ -389,11 +391,13 @@ def create_node(): # Search netbox using VM name netbox_search = nb.dcim.devices.get(name = proxmox_node_name) + print(f"\nnetbox_search: {netbox_search}\n") # Search node on Netbox with Proxmox node name gotten if netbox_search == None: # If node does not exist, create it. json_node = create_node() + print(f"node created: {json_node}") # Node created if json_node != None: # return True as the node was successfully created. diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 776fbc0..275eb40 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -184,7 +184,7 @@

Virtual Machines and Containers

- +

- + {% if virtualmachine.vm_id %} + + {{ virtualmachine.name }} + + {% else %} {{ virtualmachine.name }} - + {% endif %} {% if virtualmachine.status %} {{ virtualmachine.status }} - + {% else %} {{ virtualmachine.status }} From b3900a33af239cd0e71b91e49149240e2a53a96c Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Wed, 22 Mar 2023 14:02:11 +0000 Subject: [PATCH 078/313] Add 'show configuration' to view raw config and link to examples --- netbox_proxbox/proxbox_api/create/extras.py | 4 +- .../proxbox_api/create/virtualization.py | 2 +- .../templates/netbox_proxbox/home.html | 85 ++++++++++++++++--- netbox_proxbox/views.py | 14 +-- 4 files changed, 86 insertions(+), 19 deletions(-) diff --git a/netbox_proxbox/proxbox_api/create/extras.py b/netbox_proxbox/proxbox_api/create/extras.py index 67da512..963c86f 100755 --- a/netbox_proxbox/proxbox_api/create/extras.py +++ b/netbox_proxbox/proxbox_api/create/extras.py @@ -26,7 +26,7 @@ def tag(): description = "Proxbox Identifier (used to identify the items the plugin created)" ) except: - return "Error creating the '{0}' tag. Possible errors: the name '{0}' or slug '{1}' is already used.".format(proxbox_tag_name, proxbox_tag_slug) + return f"Error creating the '{proxbox_tag_name}' tag. Possible errors: the name '{proxbox_tag_name}' or slug '{proxbox_tag_slug}' is already used." else: tag = proxbox_tag @@ -75,7 +75,7 @@ def role(**kwargs): vm_role = True ) except: - return "Error creating the '{0}' role. Possible errors: the name '{0}' or slug '{1}' is already used.".format(role_proxbox_name, role_proxbox_slug) + return f"Error creating the '{role_proxbox_name}' role. Possible errors: the name '{role_proxbox_name}' or slug '{role_proxbox_slug}' is already used." # If basic role already created, use it. else: diff --git a/netbox_proxbox/proxbox_api/create/virtualization.py b/netbox_proxbox/proxbox_api/create/virtualization.py index cf74447..ea9cb7a 100755 --- a/netbox_proxbox/proxbox_api/create/virtualization.py +++ b/netbox_proxbox/proxbox_api/create/virtualization.py @@ -109,7 +109,7 @@ def virtual_machine(proxmox_vm, duplicate): if duplicate: print("VM/CT is duplicated") - vm_json["name"] = f"{proxmox_vm['name']} + (2)" + vm_json["name"] = f"{proxmox_vm['name']} (2)" else: vm_json["name"] = proxmox_vm['name'] diff --git a/netbox_proxbox/templates/netbox_proxbox/home.html b/netbox_proxbox/templates/netbox_proxbox/home.html index 804e397..1602cab 100644 --- a/netbox_proxbox/templates/netbox_proxbox/home.html +++ b/netbox_proxbox/templates/netbox_proxbox/home.html @@ -2,8 +2,6 @@ {% load static %} {% block content %} - -
{# Full Update Button#} @@ -32,7 +30,7 @@

- + {% if configuration.netbox_proxbox.proxmox.domain %} {% else %} @@ -69,7 +67,7 @@

{% else %}

{% endif %} - + {% if configuration.netbox_proxbox.proxmox.token.value %} @@ -77,7 +75,7 @@

{% endif %} - + {% if configuration.netbox_proxbox.proxmox.ssl %} @@ -85,6 +83,18 @@

{% endif %} + + + +
Domain / IPDomain / IP{{ configuration.netbox_proxbox.proxmox.domain }}{{ default_config.proxmox.token.name }} (default)
Token Value{{ configuration.netbox_proxbox.proxmox.token.value }}{{ default_config.proxmox.token.value }} (default)
SSL{{ configuration.netbox_proxbox.proxmox.ssl }}{{ default_config.proxmox.ssl }} (default)
PLUGINS_CONFIG (example) + +

Click Here to View!

+
+

@@ -99,7 +109,7 @@

- + {% if configuration.netbox_proxbox.netbox.domain %} @@ -107,7 +117,7 @@

{% endif %} - + {% if configuration.netbox_proxbox.netbox.http_port %} @@ -115,14 +125,14 @@

{% endif %} - + {% if configuration.netbox_proxbox.netbox.token %} {% else %} {% endif %} - + {% if configuration.netbox_proxbox.netbox.ssl %} @@ -131,12 +141,67 @@

{% endif %} + + + +
Domain / IP{{ configuration.netbox_proxbox.netbox.domain }}{{ default_config.netbox.domain }} (default)
HTTP Port{{ configuration.netbox_proxbox.netbox.http_port }}{{ default_config.netbox.http_port }} (default)
Token{{ configuration.netbox_proxbox.netbox.token }}{{ default_config.netbox.token }} (default)
SSL{{ default_config.netbox.ssl }} (default)
ProxboxConfig Class + +

Click Here to View

+
+
+ +
+ + + + +

+ +

+
+
+
+
+
+ +

Configuration (PLUGINS_CONFIG)

+
+ +
+
{{ configuration_json }}
+
+
+
+ +
+
+
+ +

Default Config

+
+ +
+
{{ default_config_json }}
+
- {% endblock %} {% block footer_links %} diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index 5569e9c..4ed893c 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -24,8 +24,6 @@ from . import ProxboxConfig - - class HomeView(View): """Homepage""" template_name = 'netbox_proxbox/home.html' @@ -33,12 +31,18 @@ class HomeView(View): # service incoming GET HTTP requests def get(self, request): """Get request.""" + + plugin_configuration = configuration.PLUGINS_CONFIG + default_config = ProxboxConfig.default_settings + return render( request, self.template_name, { - "configuration": configuration.PLUGINS_CONFIG, - "default_config": ProxboxConfig.default_settings + "configuration": plugin_configuration, + "default_config": default_config, + "configuration_json": json.dumps(plugin_configuration, indent=4), + "default_config_json": json.dumps(default_config, indent=4) } ) @@ -95,8 +99,6 @@ def get(self, request): json_result = proxbox_api.update.all(remove_unused = True) - import json - return render( request, "netbox_proxbox/proxmox_vm_full_update.html", From 1c179ae0e81eaa942959f10a62eb2eaf21b03112 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Wed, 22 Mar 2023 14:18:05 +0000 Subject: [PATCH 079/313] transform example links into buttons --- .../templates/netbox_proxbox/home.html | 43 ++++++++----------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/netbox_proxbox/templates/netbox_proxbox/home.html b/netbox_proxbox/templates/netbox_proxbox/home.html index 1602cab..88892f9 100644 --- a/netbox_proxbox/templates/netbox_proxbox/home.html +++ b/netbox_proxbox/templates/netbox_proxbox/home.html @@ -83,19 +83,16 @@

{{ default_config.proxmox.ssl }} (default)
PLUGINS_CONFIG (example) - -

Click Here to View!

-
-
+
+ +
@@ -141,20 +138,16 @@

{{ default_config.netbox.ssl }} (default)
ProxboxConfig Class - -

Click Here to View

-
-
- +
+ +
From 4aba25cad0a3d840b2aa261bd702c6599eb4409d Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Wed, 22 Mar 2023 14:38:39 +0000 Subject: [PATCH 080/313] minor changes --- netbox_proxbox/templates/netbox_proxbox/home.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox_proxbox/templates/netbox_proxbox/home.html b/netbox_proxbox/templates/netbox_proxbox/home.html index 88892f9..8e95eb1 100644 --- a/netbox_proxbox/templates/netbox_proxbox/home.html +++ b/netbox_proxbox/templates/netbox_proxbox/home.html @@ -155,7 +155,7 @@

From f7e22f83013fc3d7716920a96e14bb6a1b8750b1 Mon Sep 17 00:00:00 2001 From: JEAN-FRANCOIS GUILLAUME Date: Wed, 22 Mar 2023 17:11:08 +0100 Subject: [PATCH 081/313] correcting missing mtu and wrong identifier --- netbox_proxbox/proxbox_api/updates/node.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index 6b48dc6..bd18003 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -108,7 +108,7 @@ def interfaces(netbox_node, proxmox_json): _lag_port = ['OVSBond'] _brg_port = ['OVSBridge'] _pmx_iface = [] - _ntb_iface = [{'name': iface.name, 'mtu' : int(iface.mtu), 'tagged_vlans': [int(x['vid']) for x in iface.tagged_vlans]} for iface in nb.dcim.interfaces.filter(device_id=netbox_node.id)] + _ntb_iface = [{'name': iface.name, 'mtu' : int(iface.mtu) if iface.mtu else 1500, 'tagged_vlans': [int(x['vid']) for x in iface.tagged_vlans]} for iface in nb.dcim.interfaces.filter(device_id=netbox_node.id)] _eth = [iface for iface in proxmox.nodes(proxmox_json['name']).network.get() if iface['type'] == 'eth'] _virt = [iface for iface in proxmox.nodes(proxmox_json['name']).network.get() if iface['type'] in _int_port] _bond = [iface for iface in proxmox.nodes(proxmox_json['name']).network.get() if iface['type'] in _lag_port] @@ -223,8 +223,9 @@ def interfaces(netbox_node, proxmox_json): for iface in [x.get('name') for x in _ntb_iface]: if iface not in [x.get('name') for x in _pmx_iface]: - ntb_iface = list(nb.dcim.interfaces.filter(device_id=netbox_node.id, name=iface['name'])) + ntb_iface = list(nb.dcim.interfaces.filter(device_id=netbox_node.id, name=iface)) if len(ntb_iface) == 1: - ntb_iface[0].delete() + if not ntb_iface[0].mgmt_only: + ntb_iface[0].delete() return updated From fc370ed4341bb5a02e71e0735dacb4289a2d9c6a Mon Sep 17 00:00:00 2001 From: JEAN-FRANCOIS GUILLAUME Date: Thu, 23 Mar 2023 10:01:28 +0100 Subject: [PATCH 082/313] adding custom field to keep interface --- README.md | 10 ++++++++++ netbox_proxbox/proxbox_api/updates/node.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 22ebd00..c422af3 100755 --- a/README.md +++ b/README.md @@ -74,6 +74,7 @@ The following table shows the Netbox and Proxmox versions compatible (tested) wi - [3.1.1. Proxmox ID](#311-proxmox-id) - [3.1.2. Proxmox Node](#312-proxmox-node) - [3.1.3. Proxmox Type](#313-proxmox-type-qemu-or-lxc) + - [3.1.4. Proxmox Keep Interface](#314-proxmox-keep-interface) - [3.2. Custom Field Example](#32-custom-field-example) [4. Usage](#4-usage) @@ -277,6 +278,15 @@ Optional values (may be different)
+#### 3.1.4. Proxmox Keep Interface + +Required values (must be equal) +- [Custom Field] **Type:** Boolean (true/false) +- [Custom Field] **Name:** proxmox_keep_interface +- [Assignment] **Content-type:** DCIM > Interface + +
+ ### 3.2. Custom Field Example ![custom field image](etc/img/custom_field_example.png?raw=true "preview") diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index bd18003..99b1e61 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -225,7 +225,7 @@ def interfaces(netbox_node, proxmox_json): if iface not in [x.get('name') for x in _pmx_iface]: ntb_iface = list(nb.dcim.interfaces.filter(device_id=netbox_node.id, name=iface)) if len(ntb_iface) == 1: - if not ntb_iface[0].mgmt_only: + if not ntb_iface[0].mgmt_only or not ntb_iface[0].custom_fields.get('proxmox_keep_interface', False): ntb_iface[0].delete() return updated From 8adc2a198ff0195038d4412b68652f20f2a41013 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 23 Mar 2023 15:23:14 +0000 Subject: [PATCH 083/313] create cluster with '(2)' appended if it already exists on Netbox --- netbox_proxbox/proxbox_api/create/dcim.py | 8 ++- .../proxbox_api/create/virtualization.py | 68 ++++++++++++++++--- netbox_proxbox/proxbox_api/remove.py | 23 +++---- netbox_proxbox/proxbox_api/update.py | 13 ++-- 4 files changed, 83 insertions(+), 29 deletions(-) diff --git a/netbox_proxbox/proxbox_api/create/dcim.py b/netbox_proxbox/proxbox_api/create/dcim.py index b7e4bfb..c3105f7 100755 --- a/netbox_proxbox/proxbox_api/create/dcim.py +++ b/netbox_proxbox/proxbox_api/create/dcim.py @@ -135,7 +135,11 @@ def node(proxmox_node): node_json["site"] = site(site_id = NETBOX_SITE_ID).id node_json["status"] = 'active' node_json["tags"] = [extras.tag().id] - node_json["cluster"] = virtualization.cluster().id + + cluster = virtualization.cluster() + if cluster: + if cluster != None: + node_json["cluster"] = cluster.id # If device already exists, append (2) to final of the name check_duplicate = proxmox_node.get("duplicate", False) @@ -148,8 +152,6 @@ def node(proxmox_node): if original_device: node_json["comments"] = f"The original device has the following info:
**Device ID:** {original_device.id}
**Name:** {original_device.name}" - - print(f"(node) node_json: {node_json}") netbox_obj = None search_device = None diff --git a/netbox_proxbox/proxbox_api/create/virtualization.py b/netbox_proxbox/proxbox_api/create/virtualization.py index ea9cb7a..08b2e2e 100755 --- a/netbox_proxbox/proxbox_api/create/virtualization.py +++ b/netbox_proxbox/proxbox_api/create/virtualization.py @@ -63,13 +63,52 @@ def cluster(): # Verify if there any cluster created with: # Name equal to Proxmox's Cluster name # Cluster type equal to 'proxmox' - cluster_proxbox = nb.virtualization.clusters.get( - name = proxmox_cluster_name, - type = cluster_type().slug - ) + try: + cluster_proxbox = nb.virtualization.clusters.get( + name = proxmox_cluster_name, + type = cluster_type().slug + ) + except ValueError as error: + print(f"[ERROR] More than one cluster is created with the name '{proxmox_cluster_name}', making proxbox to abort update.\n > {error}") + return + + nb_cluster_name = None + try: + if cluster_proxbox != None: + nb_cluster_name = cluster_proxbox.name + except Exception as error: + print(f"[ERROR] {error}") - # If no 'cluster' found, create one using the name from Proxmox - if cluster_proxbox == None: + duplicate = False + try: + # Check if Proxbox tag exist. + if cluster_proxbox != None: + search_tag = cluster_proxbox.tags.index(extras.tag()) + except ValueError as error: + print(f"[WARNING] Cluster with the same name as {nb_cluster_name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") + cluster_proxbox = False + duplicate = True + + # If 'cluster' is found, check for duplicated and create another one, if necessary: + if cluster_proxbox != None: + # Check if it is duplicated: + if duplicate == True: + proxmox_cluster_name = f"{proxmox_cluster_name} (2)" + + # Check if duplicated device was already created. + try: + print(proxmox_cluster_name) + search_device = nb.virtualization.clusters.get( + name = proxmox_cluster_name + ) + + if search_device != None: + return search_device + + except Exception as error: + print(f"[ERROR] {error}") + else: + return cluster_proxbox try: # Create the cluster with only name and cluster_type @@ -78,14 +117,24 @@ def cluster(): type = cluster_type().id, tags = [extras.tag().id] ) + return cluster except: return f"Error creating the '{proxmox_cluster_name}' cluster. Possible errors: the name '{proxmox_cluster_name}' is already used." - + + # If no Cluster is found, create one. else: - cluster = cluster_proxbox + try: + # Create the cluster with only name and cluster_type + cluster = nb.virtualization.clusters.create( + name = proxmox_cluster_name, + type = cluster_type().id, + tags = [extras.tag().id] + ) + return cluster + except: + return f"Error creating the '{proxmox_cluster_name}' cluster. Possible errors: the name '{proxmox_cluster_name}' is already used." - return cluster @@ -120,7 +169,6 @@ def virtual_machine(proxmox_vm, duplicate): # Create VM/CT with json 'vm_json' try: - print(f"vm_json: {vm_json}") netbox_obj = nb.virtualization.virtual_machines.create(vm_json) return netbox_obj diff --git a/netbox_proxbox/proxbox_api/remove.py b/netbox_proxbox/proxbox_api/remove.py index 1df7a7d..bf21ce1 100755 --- a/netbox_proxbox/proxbox_api/remove.py +++ b/netbox_proxbox/proxbox_api/remove.py @@ -19,7 +19,7 @@ def is_vm_on_proxmox(netbox_vm): # Analyze local_context of VM if local_context == None: - print('[WARNING] "local_context_data" not filled. -> {}'.format(netbox_name)) + print(f'[WARNING] "local_context_data" not filled. -> {netbox_name}') else: # "proxmox" key of "local_context_data" @@ -27,7 +27,7 @@ def is_vm_on_proxmox(netbox_vm): # If null value, returns error if proxmox_json == None: - print("[WARNING] 'local_context_data' does not have 'proxmox' json key -> {}".format(netbox_name)) + print(f"[WARNING] 'local_context_data' does not have 'proxmox' json key -> {netbox_name}") else: # Netbox VM/CT ID @@ -35,7 +35,7 @@ def is_vm_on_proxmox(netbox_vm): # If null value, returns error if netbox_id == None: - print("[WARNING] 'proxmox' doest not have 'id' key -> {}".format(netbox_name)) + print(f"[WARNING] 'proxmox' doest not have 'id' key -> {netbox_name}") # List names of VM/CT's from Proxmox @@ -73,14 +73,14 @@ def is_vm_on_proxmox(netbox_vm): local_context = netbox_vm.local_context_data if local_context != None: - print("[OK] 'local_context' updated' -> {}".format(netbox_name)) + print(f"[OK] 'local_context' updated' -> {netbox_name}") proxmox_json = local_context.get("proxmox") netbox_id = proxmox_json.get("id") else: - print("[ERROR] 'local_context' is empty -> {}".format(netbox_name)) + print(f"[ERROR] 'local_context' is empty -> {netbox_name}") else: - print("[WARNING] 'local_context' was not updated (error or already updated) -> {}".format(netbox_name)) + print(f"[WARNING] 'local_context' was not updated (error or already updated) -> {netbox_name}") # Search VM on Proxmox by using ID @@ -97,7 +97,7 @@ def is_vm_on_proxmox(netbox_vm): if id_on_px == True: return True else: - print("[WARNING] NAME exists on Proxmox, but ID does not. -> {}".format(netbox_name)) + print(f"[WARNING] NAME exists on Proxmox, but ID does not. -> {netbox_name}") return True # Comparison failed, not able to find VM on Proxmox @@ -121,7 +121,7 @@ def all(): vm_on_proxmox = is_vm_on_proxmox(nb_vm_each) if vm_on_proxmox == True: - log_message = '[OK] VM exists on both systems (Netbox and Proxmox) -> {}'.format(netbox_name) + log_message = f'[OK] VM exists on both systems (Netbox and Proxmox) -> {netbox_name}' print(log_message) log.append(log_message) @@ -129,7 +129,7 @@ def all(): # If VM does not exist on Proxmox, delete VM on Netbox. elif vm_on_proxmox == False: - log_message = "[WARNING] VM exists on Netbox, but not on Proxmox. Delete it! -> {}".format(netbox_name) + log_message = f"[WARNING] VM exists on Netbox, but not on Proxmox. Delete it! -> {netbox_name}" print(log_message) log.append(log_message) @@ -147,12 +147,12 @@ def all(): delete_vm = netbox_obj.delete() else: - log_message = "[ERROR] VM will not be removed because the 'Proxbox' tag was not found. -> {}".format(netbox_name) + log_message = f"[ERROR] VM will not be removed because the 'Proxbox' tag was not found. -> {netbox_name}" print(log_message) log.append(log_message) elif len(netbox_obj.tags) == 0: - log_message = "[ERROR] VM will not be removed because the 'Proxbox' tag was not found. There is no tag configured.-> {}".format(netbox_name) + log_message = f"[ERROR] VM will not be removed because the 'Proxbox' tag was not found. There is no tag configured.-> {netbox_name}" print(log_message) log.append(log_message) @@ -175,7 +175,6 @@ def all(): json_vm_all.append(json_vm) - print(f"json_vm: {json_vm}") return json_vm_all \ No newline at end of file diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 8b6e72b..a8466d1 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -258,8 +258,9 @@ def virtual_machine(**kwargs): duplicate = False try: # Check if Proxbox tag exist. - search_tag = netbox_vm.tags.index(extras.tag()) - except Exception as error: + if netbox_vm != None: + search_tag = netbox_vm.tags.index(extras.tag()) + except ValueError as error: print(f"[WARNING] Virtual Machine or Container with the same name as {netbox_vm.name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") netbox_vm = False duplicate = True @@ -411,7 +412,7 @@ def create_node(): json_node["name"] = proxmox_node_name json_node["result"] = True - except ValueError as error: + except Exception as error: # Tag was not found within device, so there is already existing device. print(f"[WARNING] Device with the same name as {netbox_search.name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") @@ -436,7 +437,11 @@ def all(**kwargs): # cluster = create.virtualization.cluster() print('\n\n\nCLUSTER...') - print(f'[OK] CLUSTER created. -> {cluster.name}') + + try: + print(f'[OK] CLUSTER created. -> {cluster.name}') + except: + print(f"[OK] Cluster created. -> {cluster}") proxmox_cluster = cluster_all[0] # From 1febec89603ff6ee85281e8f7666422e4a875bc3 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 23 Mar 2023 15:26:37 +0000 Subject: [PATCH 084/313] comment 'RequestConfig' so that it pass the action validation --- netbox_proxbox/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index 4ed893c..8284e4c 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -164,7 +164,7 @@ def get(self, request): table = ProxmoxVMTable(self.queryset) # RequestConfig is used to configure pagination of 25 object per page - RequestConfig(request, paginate={"per_page": 25}).configure(table) + #RequestConfig(request, paginate={"per_page": 25}).configure(table) return render( request, "netbox_proxbox/proxmox_vm_list.html", From 47f3eca424e7749591dd9ed5ce18ca450703f543 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 23 Mar 2023 20:38:48 +0000 Subject: [PATCH 085/313] change all print() to logging. --- netbox_proxbox/proxbox_api/create/dcim.py | 14 ++++-- .../proxbox_api/create/virtualization.py | 15 +++--- netbox_proxbox/proxbox_api/remove.py | 28 ++++++----- netbox_proxbox/proxbox_api/update.py | 50 ++++++++++--------- netbox_proxbox/proxbox_api/updates/node.py | 4 +- .../proxbox_api/updates/virtual_machine.py | 41 +++++++-------- 6 files changed, 82 insertions(+), 70 deletions(-) diff --git a/netbox_proxbox/proxbox_api/create/dcim.py b/netbox_proxbox/proxbox_api/create/dcim.py index c3105f7..28cfc4a 100755 --- a/netbox_proxbox/proxbox_api/create/dcim.py +++ b/netbox_proxbox/proxbox_api/create/dcim.py @@ -10,6 +10,8 @@ virtualization, ) +import logging + # # dcim.manufacturers # @@ -66,7 +68,9 @@ def device_type(): tags = [extras.tag().id] ) except: - return f"Error creating the '{proxbox_device_type_model}' device type. Possible errors: the model '{proxbox_device_type_model}' or slug '{proxbox_device_type_slug}' is already used." + log_message = f"Error creating the '{proxbox_device_type_model}' device type. Possible errors: the model '{proxbox_device_type_model}' or slug '{proxbox_device_type_slug}' is already used." + logging.error(log_message) + return log_message else: device_type = proxbox_device_types @@ -164,7 +168,7 @@ def node(proxmox_node): ) return search_device except Exception as error: - print(error) + logging.error(error) try: # CREATE @@ -172,10 +176,10 @@ def node(proxmox_node): netbox_obj = nb.dcim.devices.create(node_json) return netbox_obj except Exception as error: - print(error) + logging.error(error) finally: - print("[proxbox_api.create.node] Creation of NODE failed.") + logging.error("[proxbox_api.create.node] Creation of NODE failed.") netbox_obj = None # If NODE is not DUPLICATED, then CREATE it. @@ -185,7 +189,7 @@ def node(proxmox_node): netbox_obj = nb.dcim.devices.create(node_json) except: - print("[proxbox_api.create.node] Creation of NODE failed.") + logging.error("[proxbox_api.create.node] Creation of NODE failed.") netbox_obj = None return netbox_obj diff --git a/netbox_proxbox/proxbox_api/create/virtualization.py b/netbox_proxbox/proxbox_api/create/virtualization.py index 08b2e2e..56feaef 100755 --- a/netbox_proxbox/proxbox_api/create/virtualization.py +++ b/netbox_proxbox/proxbox_api/create/virtualization.py @@ -12,6 +12,8 @@ extras, ) +import logging + # # virtualization.cluster_types # @@ -69,7 +71,7 @@ def cluster(): type = cluster_type().slug ) except ValueError as error: - print(f"[ERROR] More than one cluster is created with the name '{proxmox_cluster_name}', making proxbox to abort update.\n > {error}") + logging.error(f"[ERROR] More than one cluster is created with the name '{proxmox_cluster_name}', making proxbox to abort update.\n > {error}") return nb_cluster_name = None @@ -77,7 +79,7 @@ def cluster(): if cluster_proxbox != None: nb_cluster_name = cluster_proxbox.name except Exception as error: - print(f"[ERROR] {error}") + logging.error(f"[ERROR] {error}") duplicate = False try: @@ -85,7 +87,7 @@ def cluster(): if cluster_proxbox != None: search_tag = cluster_proxbox.tags.index(extras.tag()) except ValueError as error: - print(f"[WARNING] Cluster with the same name as {nb_cluster_name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") + logging.warning(f"[WARNING] Cluster with the same name as {nb_cluster_name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") cluster_proxbox = False duplicate = True @@ -97,7 +99,6 @@ def cluster(): # Check if duplicated device was already created. try: - print(proxmox_cluster_name) search_device = nb.virtualization.clusters.get( name = proxmox_cluster_name ) @@ -106,7 +107,7 @@ def cluster(): return search_device except Exception as error: - print(f"[ERROR] {error}") + logging.error(f"[ERROR] {error}") else: return cluster_proxbox @@ -157,7 +158,7 @@ def virtual_machine(proxmox_vm, duplicate): vm_json["status"] = 'offline' if duplicate: - print("VM/CT is duplicated") + logging.warning("[WARNING] VM/CT is duplicated") vm_json["name"] = f"{proxmox_vm['name']} (2)" else: vm_json["name"] = proxmox_vm['name'] @@ -173,7 +174,7 @@ def virtual_machine(proxmox_vm, duplicate): return netbox_obj except: - print("[proxbox.create.virtual_machine] Creation of VM/CT failed.") + logging.error("[proxbox.create.virtual_machine] Creation of VM/CT failed.") netbox_obj = None diff --git a/netbox_proxbox/proxbox_api/remove.py b/netbox_proxbox/proxbox_api/remove.py index bf21ce1..9556d4b 100755 --- a/netbox_proxbox/proxbox_api/remove.py +++ b/netbox_proxbox/proxbox_api/remove.py @@ -6,6 +6,8 @@ NETBOX_SESSION as nb, ) +import logging + # Verify if VM/CT exists on Proxmox def is_vm_on_proxmox(netbox_vm): # Get json of all virtual machines from Proxmox @@ -19,7 +21,7 @@ def is_vm_on_proxmox(netbox_vm): # Analyze local_context of VM if local_context == None: - print(f'[WARNING] "local_context_data" not filled. -> {netbox_name}') + logging.warning(f'[WARNING] "local_context_data" not filled. -> {netbox_name}') else: # "proxmox" key of "local_context_data" @@ -27,7 +29,7 @@ def is_vm_on_proxmox(netbox_vm): # If null value, returns error if proxmox_json == None: - print(f"[WARNING] 'local_context_data' does not have 'proxmox' json key -> {netbox_name}") + logging.warning(f"[WARNING] 'local_context_data' does not have 'proxmox' json key -> {netbox_name}") else: # Netbox VM/CT ID @@ -35,7 +37,7 @@ def is_vm_on_proxmox(netbox_vm): # If null value, returns error if netbox_id == None: - print(f"[WARNING] 'proxmox' doest not have 'id' key -> {netbox_name}") + logging.warning(f"[WARNING] 'proxmox' doest not have 'id' key -> {netbox_name}") # List names of VM/CT's from Proxmox @@ -73,14 +75,14 @@ def is_vm_on_proxmox(netbox_vm): local_context = netbox_vm.local_context_data if local_context != None: - print(f"[OK] 'local_context' updated' -> {netbox_name}") + logging.info(f"[OK] 'local_context' updated' -> {netbox_name}") proxmox_json = local_context.get("proxmox") netbox_id = proxmox_json.get("id") else: - print(f"[ERROR] 'local_context' is empty -> {netbox_name}") + logging.error(f"[ERROR] 'local_context' is empty -> {netbox_name}") else: - print(f"[WARNING] 'local_context' was not updated (error or already updated) -> {netbox_name}") + logging.warning(f"[WARNING] 'local_context' was not updated (error or already updated) -> {netbox_name}") # Search VM on Proxmox by using ID @@ -97,7 +99,7 @@ def is_vm_on_proxmox(netbox_vm): if id_on_px == True: return True else: - print(f"[WARNING] NAME exists on Proxmox, but ID does not. -> {netbox_name}") + logging.warning(f"[WARNING] NAME exists on Proxmox, but ID does not. -> {netbox_name}") return True # Comparison failed, not able to find VM on Proxmox @@ -122,7 +124,7 @@ def all(): if vm_on_proxmox == True: log_message = f'[OK] VM exists on both systems (Netbox and Proxmox) -> {netbox_name}' - print(log_message) + logging.info(log_message) log.append(log_message) json_vm["result"] = False @@ -130,7 +132,7 @@ def all(): # If VM does not exist on Proxmox, delete VM on Netbox. elif vm_on_proxmox == False: log_message = f"[WARNING] VM exists on Netbox, but not on Proxmox. Delete it! -> {netbox_name}" - print(log_message) + logging.info(log_message) log.append(log_message) # Only delete VM that has proxbox tag registered @@ -148,25 +150,25 @@ def all(): else: log_message = f"[ERROR] VM will not be removed because the 'Proxbox' tag was not found. -> {netbox_name}" - print(log_message) + logging.info(log_message) log.append(log_message) elif len(netbox_obj.tags) == 0: log_message = f"[ERROR] VM will not be removed because the 'Proxbox' tag was not found. There is no tag configured.-> {netbox_name}" - print(log_message) + logging.info(log_message) log.append(log_message) if delete_vm == True: log_message = "[OK] VM successfully removed from Netbox." - print(log_message) + logging.info(log_message) log.append(log_message) json_vm["result"] = True else: log_message = '[ERROR] Unexpected error trying to verify if VM exist on Proxmox' - print(log_message) + logging.error(log_message) log.append(log_message) json_vm["result"] = False diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index a8466d1..0b0b5b5 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -19,6 +19,8 @@ from .create import extras +import logging + # Call all functions to update Virtual Machine def vm_full_update(netbox_vm, proxmox_vm): changes = {} @@ -143,7 +145,7 @@ def virtual_machine(**kwargs): if proxmox_id != None: proxmox_id_type = type(proxmox_id) if 'int' not in str(proxmox_id_type): - print(f'[ERROR] "proxmox_id" MUST be integer. Type used: {proxmox_id_type}') + logging.error(f'[ERROR] "proxmox_id" MUST be integer. Type used: {proxmox_id_type}') #return False json_vm["result"] = False @@ -154,7 +156,7 @@ def virtual_machine(**kwargs): if id != None: id_type = type(id) if 'int' not in str(id_type): - print(f'[ERROR] "id" MUST be integer. Type used: {id_type}') + logging.error(f'[ERROR] "id" MUST be integer. Type used: {id_type}') #return False json_vm["result"] = False @@ -166,7 +168,7 @@ def virtual_machine(**kwargs): if name != None: name_type = type(name) if 'str' not in str(name_type): - print(f'[ERROR] "name" MUST be string. Type used: {name_type}') + logging.error(f'[ERROR] "name" MUST be string. Type used: {name_type}') #return False json_vm["result"] = False @@ -205,7 +207,7 @@ def virtual_machine(**kwargs): # Analyze search result and returns error, if null value. if proxmox_json == None: - print("[ERROR] Error to get Proxmox Virtual Machine using 'proxmox_id'") + logging.error("[ERROR] Error to get Proxmox Virtual Machine using 'proxmox_id'") json_vm["result"] = False proxmox_vm_name = proxmox_json['name'] @@ -217,7 +219,7 @@ def virtual_machine(**kwargs): # Analyze search result and returns error, if null value. if proxmox_json == None: - print("[ERROR] Error to get Proxmox Virtual Machine using 'proxmox_name'") + logging.error("[ERROR] Error to get Proxmox Virtual Machine using 'proxmox_name'") json_vm["result"] = False proxmox_vm_name = proxmox_json['name'] @@ -230,7 +232,7 @@ def virtual_machine(**kwargs): # Analyze search result and returns error, if null value. if proxmox_json == None: - print("[ERROR] Error to get Proxmox Virtual Machine using 'proxmox_id'") + logging.error("[ERROR] Error to get Proxmox Virtual Machine using 'proxmox_id'") json_vm["result"] = False proxmox_vm_name = proxmox_json['name'] @@ -243,7 +245,7 @@ def virtual_machine(**kwargs): # Analyze search result and returns error, if null value. if proxmox_json == None: - print("[ERROR] Error to get Proxmox Virtual Machine using 'proxmox_name'") + logging.error("[ERROR] Error to get Proxmox Virtual Machine using 'proxmox_name'") json_vm["result"] = False proxmox_vm_name = proxmox_json['name'] @@ -261,7 +263,7 @@ def virtual_machine(**kwargs): if netbox_vm != None: search_tag = netbox_vm.tags.index(extras.tag()) except ValueError as error: - print(f"[WARNING] Virtual Machine or Container with the same name as {netbox_vm.name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") + logging.warning(f"[WARNING] Virtual Machine or Container with the same name as {netbox_vm.name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") netbox_vm = False duplicate = True @@ -284,16 +286,16 @@ def virtual_machine(**kwargs): # Analyze if VM needed to be updated on Netbox if True in full_update_list: - print(f'[OK] VM updated. -> {proxmox_vm_name}') + logging.info(f'[OK] VM updated. -> {proxmox_vm_name}') else: - print(f'[OK] VM already updated. -> {proxmox_vm_name}') + logging.info(f'[OK] VM already updated. -> {proxmox_vm_name}') # In case none of condition works, return True anyway, since VM already exist. json_vm["result"] = True # If VM does not exist, create it on Netbox else: - print(f'[OK] VM does not exist on Netbox -> {proxmox_vm_name}') + logging.info(f'[OK] VM does not exist on Netbox -> {proxmox_vm_name}') # Analyze if VM was sucessfully created. netbox_vm = create.virtualization.virtual_machine(proxmox_json, duplicate) @@ -309,20 +311,20 @@ def virtual_machine(**kwargs): # Analyze if update was successful if True in full_update_list: - print(f'[OK] VM created -> {netbox_vm.name}') + logging.info(f'[OK] VM created -> {netbox_vm.name}') # VM fully updated json_vm["result"] = True else: - print(f'[OK] VM created, but full update failed -> {proxmox_vm_name}') + logging.info(f'[OK] VM created, but full update failed -> {proxmox_vm_name}') # VM created with basic information json_vm["result"] = True else: - print(f'[ERROR] VM not created. -> {proxmox_vm_name}') + logging.error(f'[ERROR] VM not created. -> {proxmox_vm_name}') # VM not created json_vm["result"] = False @@ -343,7 +345,7 @@ def create_node(): # Node created if netbox_node != None: - print(f"[OK] Node created! -> {proxmox_node_name}") + logging.info(f"[OK] Node created! -> {proxmox_node_name}") # Update rest of configuration full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) @@ -355,15 +357,15 @@ def create_node(): # Analyze if update was successful if True in full_update_list: - print(f'[OK] NODE updated. -> {proxmox_node_name}') + logging.info(f'[OK] NODE updated. -> {proxmox_node_name}') else: - print(f'[OK] NODE already updated. -> {proxmox_node_name}') + logging.info(f'[OK] NODE already updated. -> {proxmox_node_name}') return json_node # Error with node creation else: - print(f'[ERROR] Something went wrong when creating the node.-> {proxmox_node_name} (2)') + logging.error(f'[ERROR] Something went wrong when creating the node.-> {proxmox_node_name} (2)') json_node = {} json_node["result"] = False @@ -384,7 +386,7 @@ def create_node(): # Error with node creation else: - print(f'[ERROR] Something went wrong when creating the node.-> {proxmox_node_name}') + logging.error(f'[ERROR] Something went wrong when creating the node.-> {proxmox_node_name}') json_node["result"] = False else: @@ -403,9 +405,9 @@ def create_node(): # Analyze if update was successful if True in full_update_list: - print(f'[OK] NODE updated. -> {proxmox_node_name}') + logging.info(f'[OK] NODE updated. -> {proxmox_node_name}') else: - print(f'[OK] NODE already updated. -> {proxmox_node_name}') + logging.info(f'[OK] NODE already updated. -> {proxmox_node_name}') # return True as the node was successfully created. json_node["node_id"] = netbox_node.id @@ -414,7 +416,7 @@ def create_node(): except Exception as error: # Tag was not found within device, so there is already existing device. - print(f"[WARNING] Device with the same name as {netbox_search.name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") + logging.warning(f"[WARNING] Device with the same name as {netbox_search.name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") proxmox_json["duplicate"] = True proxmox_json["netbox_original_device"] = netbox_search @@ -439,9 +441,9 @@ def all(**kwargs): print('\n\n\nCLUSTER...') try: - print(f'[OK] CLUSTER created. -> {cluster.name}') + logging.info(f'[OK] CLUSTER created. -> {cluster.name}') except: - print(f"[OK] Cluster created. -> {cluster}") + logging.info(f"[OK] Cluster created. -> {cluster}") proxmox_cluster = cluster_all[0] # diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index 7e4cc1c..b57aaff 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -14,6 +14,8 @@ create, ) +import logging + # Update STATUS field on /dcim/device/{id} def status(netbox_node, proxmox_node): # @@ -98,7 +100,7 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): cluster_updated = False except Exception as error: - print(f"[ERROR] {error}") + logging.error(f"[ERROR] {error}") else: cluster_updated = False diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index 64a0a3f..c1dc232 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -21,6 +21,7 @@ from proxmoxer.core import ResourceException +import logging # Update "status" field on Netbox Virtual Machine based on Proxmox information def status(netbox_vm, proxmox_vm): @@ -113,7 +114,7 @@ def custom_fields(netbox_vm, proxmox_vm): # Check if there is 'custom_field' configured on Netbox if len(netbox_vm.custom_fields) == 0: - print("[ERROR] There's no 'Custom Fields' registered by the Netbox Plugin user") + logging.error("[ERROR] There's no 'Custom Fields' registered by the Netbox Plugin user") # If any 'custom_field' configured, get it and update, if necessary. elif len(netbox_vm.custom_fields) > 0: @@ -129,21 +130,21 @@ def custom_fields(netbox_vm, proxmox_vm): if netbox_vm.custom_fields.get("proxmox_id") != proxmox_vm['vmid']: custom_fields_update["proxmox_id"] = proxmox_vm['vmid'] else: - print("[ERROR] 'proxmox_id' custom field not registered yet or configured incorrectly]") + logging.error("[ERROR] 'proxmox_id' custom field not registered yet or configured incorrectly]") # Custom Field 'proxmox_node' if 'proxmox_node' in custom_fields_names: if netbox_vm.custom_fields.get("proxmox_node") != proxmox_vm['node']: custom_fields_update["proxmox_node"] = proxmox_vm['node'] else: - print("[ERROR] 'proxmox_node' custom field not registered yet or configured incorrectly") + logging.error("[ERROR] 'proxmox_node' custom field not registered yet or configured incorrectly") # Custom Field 'proxmox_type' if 'proxmox_type' in custom_fields_names: if netbox_vm.custom_fields.get("proxmox_type") != proxmox_vm['type']: custom_fields_update["proxmox_type"] = proxmox_vm['type'] else: - print("[ERROR] 'proxmox_type' custom field not registered yet or configured incorrectly") + logging.error("[ERROR] 'proxmox_type' custom field not registered yet or configured incorrectly") @@ -162,7 +163,7 @@ def custom_fields(netbox_vm, proxmox_vm): # Verify HTTP reply CODE if custom_field_updated != 200: - print("[ERROR] Some error occured trying to update 'custom_fields' through HTTP Request. HTTP Code: {}. -> {}".format(custom_field_updated, netbox_vm.name)) + logging.error("[ERROR] Some error occured trying to update 'custom_fields' through HTTP Request. HTTP Code: {}. -> {}".format(custom_field_updated, netbox_vm.name)) return False else: @@ -292,9 +293,9 @@ def interfaces(netbox_vm, proxmox_vm): elif proxmox_vm['type'] == 'lxc': vm_config = proxmox.nodes(proxmox_vm['node']).lxc(proxmox_vm['vmid']).config.get() else: - print('[ERROR] Unknown or unmanaged proxmox_vm_type') + logging.error('[ERROR] Unknown or unmanaged proxmox_vm_type') except Exception as error: - print(f"[ERROR] Unknown or unmanaged proxmox_vm_type\n > {error}") + logging.error(f"[ERROR] Unknown or unmanaged proxmox_vm_type\n > {error}") return _pmx_if = [] @@ -332,7 +333,7 @@ def interfaces(netbox_vm, proxmox_vm): if pmx_if_mac not in [_if['mac_address'] for _if in _ntb_if]: try: if nb.virtualization.interfaces.get(virtual_machine_id=netbox_vm.id, virtual_machine=netbox_vm.name, name=pmx_if['name']): - print("Interface already exist.") + logging.warning("[WARNING] Interface already exist.") else: # Create interface if does not exist. netbox_interface = nb.virtualization.interfaces.create(virtual_machine_id=netbox_vm.id, virtual_machine=netbox_vm.id, name=pmx_if['name'], mac_address=pmx_if_mac, mtu=pmx_if['mtu']) @@ -346,10 +347,10 @@ def interfaces(netbox_vm, proxmox_vm): netbox_interface = nb.virtualization.interfaces.update([{'id': netbox_interface.id, 'name': pmx_if['name'], 'mac_address': pmx_if_mac, 'mtu': pmx_if['mtu']}]) updated = True elif len(netbox_interface) > 1: - print('[ERROR] too many results') + logging.error('[ERROR] Too many results') return False else: - print('[ERROR] something went wrong while getting interface config from proxmox') + logging.error('[ERROR] Something went wrong while getting interface config from proxmox') return False for ntb_if_mac in [_if['mac_address'] for _if in _ntb_if]: @@ -361,10 +362,10 @@ def interfaces(netbox_vm, proxmox_vm): netbox_interface.delete() updated = True elif len(netbox_interface) > 1: - print('[ERROR] too many results') + logging.error('[ERROR] Too many results') return False else: - print('[ERROR] something went wrong while getting interface config from netbox') + logging.error('[ERROR] Something went wrong while getting interface config from netbox') return False return updated @@ -400,7 +401,7 @@ def interfaces_ips(netbox_vm, proxmox_vm): _if[_mac].append(ip.address.lower()) _ntb_ips.append(_if) except ResourceException as e: - print('[ERROR]' + str(e)) + logging.error('[ERROR]' + str(e)) return False elif proxmox_vm['type'] == 'lxc': vm_config = proxmox.nodes(proxmox_vm['node']).lxc(proxmox_vm['vmid']).config.get() @@ -430,7 +431,7 @@ def interfaces_ips(netbox_vm, proxmox_vm): for pmx_mac in [list(x)[0] for x in _pmx_ips]: if pmx_mac not in [list(y)[0] for y in _ntb_ips]: - print('[ERROR] interface with mac_address %(pmx_mac)s from %(vm_name)s qemu-guest-agent is not defined in netbox' % {'pmx_mac': pmx_mac, 'vm_name': proxmox_vm['name']}) + logging.error('[ERROR] interface with mac_address %(pmx_mac)s from %(vm_name)s qemu-guest-agent is not defined in netbox' % {'pmx_mac': pmx_mac, 'vm_name': proxmox_vm['name']}) else: ntb_ips = next((_ips[pmx_mac] for _ips in _ntb_ips if list(_ips)[0] == pmx_mac), None) pmx_ips = next((_ips[pmx_mac] for _ips in _pmx_ips if list(_ips)[0] == pmx_mac), None) @@ -445,10 +446,10 @@ def interfaces_ips(netbox_vm, proxmox_vm): netbox_interface = netbox_interface[0] elif len(netbox_interface) > 1: netbox_interface = None - print('[ERROR] too many results') + logging.error('[ERROR] Too many results') else: netbox_interface = None - print('[ERROR] something went wrong while getting interface object from netbox') + logging.error('[ERROR] Something went wrong while getting interface object from netbox') if netbox_interface is not None: if len(netbox_ipaddr): if len(netbox_ipaddr) == 1: @@ -457,13 +458,13 @@ def interfaces_ips(netbox_vm, proxmox_vm): netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) updated = True elif len(netbox_ipaddr) > 1: - print('[ERROR] too many results') + logging.error('[ERROR] Too many results') else: netbox_ipaddr = nb.ipam.ip_addresses.create(address=pmx_ip) netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) updated = True - except Exception as error: print(error) + except Exception as error: logging.error(error) for ntb_ip in ntb_ips: @@ -474,7 +475,7 @@ def interfaces_ips(netbox_vm, proxmox_vm): netbox_ipaddr[0].delete() updated = True elif len(netbox_ipaddr) > 1: - print('[ERROR] too many results') + logging.error('[ERROR] Too many results') else: - print('[ERROR] something went wrong while getting ip object from netbox') + logging.error('[ERROR] Something went wrong while getting ip object from netbox') return updated From cef11104688c671166dc40684282e811c50dc361 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 23 Mar 2023 20:43:31 +0000 Subject: [PATCH 086/313] Add logging section to README --- README.md | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c422af3..acf6eb1 100755 --- a/README.md +++ b/README.md @@ -79,9 +79,11 @@ The following table shows the Netbox and Proxmox versions compatible (tested) wi [4. Usage](#4-usage) -[5. Contributing](#5-contributing) +[5. Enable Logs][#5-enable-logs] -[6. Roadmap](#6-roadmap) +[6. Contributing](#5-contributing) + +[7. Roadmap](#6-roadmap) --- @@ -305,14 +307,39 @@ It will redirect you to a new page and you just have to wait until the plugin ru --- -## 5. Contributing +## 5. Enable Logs + +So that Proxbox plugin logs what is happening to the terminal, copy the following code and paste to `configuration.py` Netbox configuration file: + +```python +LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, + 'handlers': { + 'console': { + 'class': 'logging.StreamHandler', + }, + }, + 'root': { + 'handlers': ['console'], + 'level': 'INFO', + }, +} +``` + +You can customize this using the following link: [Django Docs - Logging](https://docs.djangoproject.com/en/4.1/topics/logging/). +Although the above standard configuration should do the trick to things work. + +--- + +## 6. Contributing Developing tools for this project based on [ntc-netbox-plugin-onboarding](https://github.com/networktocode/ntc-netbox-plugin-onboarding) repo. Issues and pull requests are welcomed. --- -## 6. Roadmap +## 7. Roadmap - Start using custom models to optimize the use of the Plugin and stop using 'Custom Fields' - Automatically remove Nodes on Netbox when removed on Promox (as it already happens with Virtual Machines and Containers) - Add individual update of VM/CT's and Nodes (currently is only possible to update all at once) From 08067048d330c8e203ee265165e458c35ced52a1 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 23 Mar 2023 20:44:23 +0000 Subject: [PATCH 087/313] fix wrong markdown link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index acf6eb1..2d74b59 100755 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ The following table shows the Netbox and Proxmox versions compatible (tested) wi [4. Usage](#4-usage) -[5. Enable Logs][#5-enable-logs] +[5. Enable Logs](#5-enable-logs) [6. Contributing](#5-contributing) From 0584f6f2b0ca43074340dba60b9dbde67e2e79be Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 23 Mar 2023 20:44:55 +0000 Subject: [PATCH 088/313] fix another markdown links typo's --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2d74b59..59cc7c6 100755 --- a/README.md +++ b/README.md @@ -81,9 +81,9 @@ The following table shows the Netbox and Proxmox versions compatible (tested) wi [5. Enable Logs](#5-enable-logs) -[6. Contributing](#5-contributing) +[6. Contributing](#6-contributing) -[7. Roadmap](#6-roadmap) +[7. Roadmap](#7-roadmap) --- From 4f09e817ec1ef9abce71c2ce5ecad1e2cd4379c7 Mon Sep 17 00:00:00 2001 From: Robin Dittrich Date: Fri, 24 Mar 2023 08:31:36 +0100 Subject: [PATCH 089/313] Fixed the mgmt_only and proxmox_keep_interface bool logic --- netbox_proxbox/proxbox_api/updates/node.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index b57aaff..c8f5f8c 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -229,7 +229,7 @@ def interfaces(netbox_node, proxmox_json): if iface not in [x.get('name') for x in _pmx_iface]: ntb_iface = list(nb.dcim.interfaces.filter(device_id=netbox_node.id, name=iface)) if len(ntb_iface) == 1: - if not ntb_iface[0].mgmt_only or not ntb_iface[0].custom_fields.get('proxmox_keep_interface', False): + if not ntb_iface[0].mgmt_only and not ntb_iface[0].custom_fields.get('proxmox_keep_interface', False): ntb_iface[0].delete() return updated From 42a2bc5affd8c9ba643bb3d2690053428f28b443 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Tue, 28 Mar 2023 12:08:47 +0000 Subject: [PATCH 090/313] Create FastAPI app and make all functions assynchronous --- netbox_proxbox/main.py | 14 +++++ netbox_proxbox/proxbox_api/create/dcim.py | 39 ++++++++---- netbox_proxbox/proxbox_api/create/extras.py | 4 +- .../proxbox_api/create/virtualization.py | 38 +++++++---- netbox_proxbox/proxbox_api/remove.py | 6 +- netbox_proxbox/proxbox_api/update.py | 63 ++++++++++--------- netbox_proxbox/proxbox_api/updates/extras.py | 8 ++- netbox_proxbox/proxbox_api/updates/node.py | 10 +-- .../proxbox_api/updates/virtual_machine.py | 16 ++--- netbox_proxbox/views.py | 14 +++-- setup.py | 7 ++- 11 files changed, 136 insertions(+), 83 deletions(-) create mode 100644 netbox_proxbox/main.py diff --git a/netbox_proxbox/main.py b/netbox_proxbox/main.py new file mode 100644 index 0000000..39aef4f --- /dev/null +++ b/netbox_proxbox/main.py @@ -0,0 +1,14 @@ +from fastapi import FastAPI +from netbox_proxbox import proxbox_api + +app = FastAPI() + + +@app.get("/full_update") +async def full_update(): + json_result = await proxbox_api.update.all() + return json_result + +@app.get("/items/{item_id}") +async def read_item(item_id: int): + return {"item_id": item_id} \ No newline at end of file diff --git a/netbox_proxbox/proxbox_api/create/dcim.py b/netbox_proxbox/proxbox_api/create/dcim.py index 28cfc4a..d81c006 100755 --- a/netbox_proxbox/proxbox_api/create/dcim.py +++ b/netbox_proxbox/proxbox_api/create/dcim.py @@ -15,7 +15,7 @@ # # dcim.manufacturers # -def manufacturer(): +async def manufacturer(): proxbox_manufacturer_name = 'Proxbox Basic Manufacturer' proxbox_manufacturer_slug = 'proxbox-manufacturer' proxbox_manufacturer_desc = 'Manufacturer Proxbox will use if none is configured by user in PLUGINS_CONFIG' @@ -46,7 +46,7 @@ def manufacturer(): # # dcim.device_types # -def device_type(): +async def device_type(): proxbox_device_type_model = 'Proxbox Model' proxbox_device_type_slug = 'proxbox-model' proxbox_device_type_comments = "Device Type Proxbox will use when creating the Cluster's Nodes. When the Node is created, you can change the device type to the actual server model." @@ -61,11 +61,11 @@ def device_type(): try: # If Proxbox manufacturer does not exist, create one. device_type = nb.dcim.device_types.create( - manufacturer = manufacturer().id, + manufacturer = await manufacturer().id, model = proxbox_device_type_model, slug = proxbox_device_type_slug, comments = proxbox_device_type_comments, - tags = [extras.tag().id] + tags = await [extras.tag().id] ) except: log_message = f"Error creating the '{proxbox_device_type_model}' device type. Possible errors: the model '{proxbox_device_type_model}' or slug '{proxbox_device_type_slug}' is already used." @@ -81,7 +81,7 @@ def device_type(): # # dcim.sites # -def site(**kwargs): +async def site(**kwargs): # If site_id equals to 0, consider it is not configured by user and must be created by Proxbox site_id = kwargs.get('site_id', 0) @@ -130,20 +130,33 @@ def site(**kwargs): # # dcim.devices (nodes) # -def node(proxmox_node): +async def node(proxmox_node): # Create json with basic NODE information node_json = {} node_json["name"] = proxmox_node['name'] - node_json["device_role"] = extras.role(role_id = NETBOX_NODE_ROLE_ID).id - node_json["device_type"] = device_type().id - node_json["site"] = site(site_id = NETBOX_SITE_ID).id + + device_role = await extras.role(role_id = NETBOX_NODE_ROLE_ID) + node_json["device_role"] = device_role.id + + device_type_id = await device_type() + node_json["device_type"] = device_type_id.id + + site_id = await site(site_id = NETBOX_SITE_ID) + node_json["site"] = site_id.id + node_json["status"] = 'active' - node_json["tags"] = [extras.tag().id] - cluster = virtualization.cluster() + tags_id = await extras.tag() + tags_id = tags_id.id + node_json["tags"] = [tags_id] + + cluster = await virtualization.cluster() if cluster: - if cluster != None: - node_json["cluster"] = cluster.id + if isinstance(cluster, str): + print(cluster) + return + + node_json["cluster"] = cluster.id # If device already exists, append (2) to final of the name check_duplicate = proxmox_node.get("duplicate", False) diff --git a/netbox_proxbox/proxbox_api/create/extras.py b/netbox_proxbox/proxbox_api/create/extras.py index 963c86f..7cdce61 100755 --- a/netbox_proxbox/proxbox_api/create/extras.py +++ b/netbox_proxbox/proxbox_api/create/extras.py @@ -6,7 +6,7 @@ # # extras.tags # -def tag(): +async def tag(): proxbox_tag_name = 'Proxbox' proxbox_tag_slug = 'proxbox' @@ -40,7 +40,7 @@ def tag(): # dcim.device_roles # # OBS: this function is here and not in ./dcim.py since it is used by both NODE and VIRTUAL MACHINE. -def role(**kwargs): +async def role(**kwargs): # If role_id equals to 0, consider it is not configured by user and must be created by Proxbox role_id = kwargs.get("role_id", 0) diff --git a/netbox_proxbox/proxbox_api/create/virtualization.py b/netbox_proxbox/proxbox_api/create/virtualization.py index 56feaef..a312b55 100755 --- a/netbox_proxbox/proxbox_api/create/virtualization.py +++ b/netbox_proxbox/proxbox_api/create/virtualization.py @@ -17,7 +17,7 @@ # # virtualization.cluster_types # -def cluster_type(): +async def cluster_type(): # # Cluster Type # @@ -54,7 +54,7 @@ def cluster_type(): # # virtualization.clusters # -def cluster(): +async def cluster(): # # Cluster # @@ -66,9 +66,10 @@ def cluster(): # Name equal to Proxmox's Cluster name # Cluster type equal to 'proxmox' try: + cluster_type_slug = await cluster_type() cluster_proxbox = nb.virtualization.clusters.get( name = proxmox_cluster_name, - type = cluster_type().slug + type = cluster_type_slug.slug ) except ValueError as error: logging.error(f"[ERROR] More than one cluster is created with the name '{proxmox_cluster_name}', making proxbox to abort update.\n > {error}") @@ -85,7 +86,8 @@ def cluster(): try: # Check if Proxbox tag exist. if cluster_proxbox != None: - search_tag = cluster_proxbox.tags.index(extras.tag()) + tag = await extras.tag() + search_tag = cluster_proxbox.tags.index(tag) except ValueError as error: logging.warning(f"[WARNING] Cluster with the same name as {nb_cluster_name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") cluster_proxbox = False @@ -113,10 +115,14 @@ def cluster(): try: # Create the cluster with only name and cluster_type + + cluster_type_id = await cluster_type() + tags_id = await extras.tag() + cluster = nb.virtualization.clusters.create( name = proxmox_cluster_name, - type = cluster_type().id, - tags = [extras.tag().id] + type = cluster_type_id.id, + tags = [tags_id.id] ) return cluster except: @@ -126,10 +132,13 @@ def cluster(): else: try: # Create the cluster with only name and cluster_type + cluster_type_id = await cluster_type() + tags_id = await extras.tag() + cluster = nb.virtualization.clusters.create( name = proxmox_cluster_name, - type = cluster_type().id, - tags = [extras.tag().id] + type = cluster_type_id.id, + tags = [tags_id.id] ) return cluster except: @@ -147,7 +156,7 @@ def cluster(): # # virtualization.virtual_machines # -def virtual_machine(proxmox_vm, duplicate): +async def virtual_machine(proxmox_vm, duplicate): # Create json with basic VM/CT information vm_json = {} netbox_obj = None @@ -163,10 +172,15 @@ def virtual_machine(proxmox_vm, duplicate): else: vm_json["name"] = proxmox_vm['name'] + cluster_obj = await cluster() vm_json["status"] = 'active' - vm_json["cluster"] = cluster().id - vm_json["role"] = extras.role(role_id = NETBOX_VM_ROLE_ID).id - vm_json["tags"] = [extras.tag().id] + vm_json["cluster"] = cluster_obj.id + + role_id = await extras.role(role_id = NETBOX_VM_ROLE_ID) + vm_json["role"] = role_id.id + + tags_id = await extras.tag() + vm_json["tags"] = [tags_id.id] # Create VM/CT with json 'vm_json' try: diff --git a/netbox_proxbox/proxbox_api/remove.py b/netbox_proxbox/proxbox_api/remove.py index 9556d4b..b9c6d1e 100755 --- a/netbox_proxbox/proxbox_api/remove.py +++ b/netbox_proxbox/proxbox_api/remove.py @@ -9,7 +9,7 @@ import logging # Verify if VM/CT exists on Proxmox -def is_vm_on_proxmox(netbox_vm): +async def is_vm_on_proxmox(netbox_vm): # Get json of all virtual machines from Proxmox all_proxmox_vms = proxmox.cluster.resources.get(type='vm') @@ -69,7 +69,7 @@ def is_vm_on_proxmox(netbox_vm): # If 'local_context' is null, try updating it to be able to get ID from VM if local_context == None: - local_context_updated = updates.local_context_data(netbox_vm, all_proxmox_vms[name_index]) + local_context_updated = await updates.local_context_data(netbox_vm, all_proxmox_vms[name_index]) if local_context_updated == True: local_context = netbox_vm.local_context_data @@ -105,7 +105,7 @@ def is_vm_on_proxmox(netbox_vm): # Comparison failed, not able to find VM on Proxmox return False -def all(): +async def all(): json_vm_all = [] # Get all VM/CTs from Netbox diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 0b0b5b5..a3cd4a3 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -22,25 +22,25 @@ import logging # Call all functions to update Virtual Machine -def vm_full_update(netbox_vm, proxmox_vm): +async def vm_full_update(netbox_vm, proxmox_vm): changes = {} # Update 'status' field, if necessary. - status_updated = updates.virtual_machine.status(netbox_vm, proxmox_vm) + status_updated = await updates.virtual_machine.status(netbox_vm, proxmox_vm) # Update 'custom_fields' field, if necessary. - custom_fields_updated = updates.virtual_machine.custom_fields(netbox_vm, proxmox_vm) + custom_fields_updated = await updates.virtual_machine.custom_fields(netbox_vm, proxmox_vm) # Update 'local_context_data' json, if necessary. - local_context_updated = updates.virtual_machine.local_context_data(netbox_vm, proxmox_vm) + local_context_updated = await updates.virtual_machine.local_context_data(netbox_vm, proxmox_vm) # Update 'resources', like CPU, Memory and Disk, if necessary. - resources_updated = updates.virtual_machine.resources(netbox_vm, proxmox_vm) + resources_updated = await updates.virtual_machine.resources(netbox_vm, proxmox_vm) - interfaces_updated = updates.virtual_machine.interfaces(netbox_vm, proxmox_vm) - ips_updated = updates.virtual_machine.interfaces_ips(netbox_vm, proxmox_vm) + interfaces_updated = await updates.virtual_machine.interfaces(netbox_vm, proxmox_vm) + ips_updated = await updates.virtual_machine.interfaces_ips(netbox_vm, proxmox_vm) - tag_updated = updates.extras.tag(netbox_vm) + tag_updated = await updates.extras.tag(netbox_vm) #changes = [custom_fields_updated, status_updated, local_context_updated, resources_updated] changes = { @@ -57,12 +57,12 @@ def vm_full_update(netbox_vm, proxmox_vm): -def node_full_update(netbox_node, proxmox_json, proxmox_cluster): +async def node_full_update(netbox_node, proxmox_json, proxmox_cluster): changes = {} - status_updated = updates.node.status(netbox_node, proxmox_json) - cluster_updated = updates.node.cluster(netbox_node, proxmox_json, proxmox_cluster) - interfaces_updated = updates.node.interfaces(netbox_node, proxmox_json) + status_updated = await updates.node.status(netbox_node, proxmox_json) + cluster_updated = await updates.node.cluster(netbox_node, proxmox_json, proxmox_cluster) + interfaces_updated = await updates.node.interfaces(netbox_node, proxmox_json) changes = { "status" : status_updated, @@ -126,7 +126,7 @@ def search_by_id(id): # Makes all necessary checks so that VM/CT exist on Netbox. -def virtual_machine(**kwargs): +async def virtual_machine(**kwargs): # JSON containing the result of the VM changes json_vm = {} @@ -261,7 +261,9 @@ def virtual_machine(**kwargs): try: # Check if Proxbox tag exist. if netbox_vm != None: - search_tag = netbox_vm.tags.index(extras.tag()) + tag = await extras.tag() + search_tag = netbox_vm.tags.index(tag) + except ValueError as error: logging.warning(f"[WARNING] Virtual Machine or Container with the same name as {netbox_vm.name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") netbox_vm = False @@ -270,7 +272,7 @@ def virtual_machine(**kwargs): # VM Found: if netbox_vm: # Update Netbox information - full_update = vm_full_update(netbox_vm, proxmox_json) + full_update = await vm_full_update(netbox_vm, proxmox_json) # I made this way since dict.update didn't work json_vm["vm_id"] = netbox_vm.id @@ -298,12 +300,12 @@ def virtual_machine(**kwargs): logging.info(f'[OK] VM does not exist on Netbox -> {proxmox_vm_name}') # Analyze if VM was sucessfully created. - netbox_vm = create.virtualization.virtual_machine(proxmox_json, duplicate) + netbox_vm = await create.virtualization.virtual_machine(proxmox_json, duplicate) # VM created with basic information if netbox_vm != None: # Update rest of configuration - full_update = vm_full_update(netbox_vm, proxmox_json) + full_update = await vm_full_update(netbox_vm, proxmox_json) json_vm = full_update json_vm["vm_id"] = netbox_vm.id @@ -333,22 +335,22 @@ def virtual_machine(**kwargs): -def nodes(**kwargs): +async def nodes(**kwargs): proxmox_cluster = kwargs.get('proxmox_cluster') proxmox_json = kwargs.get('proxmox_json') proxmox_node_name = proxmox_json.get("name") - def create_node(): + async def create_node(): # If node does not exist, create it. - netbox_node = create.dcim.node(proxmox_json) + netbox_node = await create.dcim.node(proxmox_json) # Node created if netbox_node != None: logging.info(f"[OK] Node created! -> {proxmox_node_name}") # Update rest of configuration - full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) + full_update = await node_full_update(netbox_node, proxmox_json, proxmox_cluster) json_node = full_update json_node["result"] = True json_node["node_id"] = netbox_node.id @@ -377,7 +379,7 @@ def create_node(): # Search node on Netbox with Proxmox node name gotten if netbox_search == None: # If node does not exist, create it. - json_node = create_node() + json_node = await create_node() # Node created if json_node != None: @@ -392,13 +394,14 @@ def create_node(): else: try: # Check if Proxbox tag exist. - search_tag = netbox_search.tags.index(extras.tag()) + tag = await extras.tag() + search_tag = netbox_search.tags.index(tag) # If node already exist, try updating it. netbox_node = netbox_search # Update Netbox node information, if necessary. - full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) + full_update = await node_full_update(netbox_node, proxmox_json, proxmox_cluster) json_node = full_update full_update_list = list(full_update.values()) @@ -421,7 +424,7 @@ def create_node(): proxmox_json["duplicate"] = True proxmox_json["netbox_original_device"] = netbox_search - json_node = create_node() + json_node = await create_node() # return True as the node was successfully created. json_node["name"] = proxmox_node_name @@ -430,14 +433,14 @@ def create_node(): # Makes everything needed so that VIRTUAL MACHINES / CONTAINERS, NODES and CLUSTER exists on Netbox -def all(**kwargs): +async def all(**kwargs): print("[Proxbox - Netbox plugin | Update All]") cluster_all = proxmox.cluster.status.get() # # CLUSTER # - cluster = create.virtualization.cluster() + cluster = await create.virtualization.cluster() print('\n\n\nCLUSTER...') try: @@ -455,7 +458,7 @@ def all(**kwargs): # Get all NODES from Proxmox for px_node_each in proxmox_nodes: - node_updated = nodes(proxmox_json = px_node_each, proxmox_cluster = proxmox_cluster) + node_updated = await nodes(proxmox_json = px_node_each, proxmox_cluster = proxmox_cluster) nodes_list.append(node_updated) @@ -469,7 +472,7 @@ def all(**kwargs): print('\nUPDATE ALL...') # Get all VM/CTs from Proxmox for px_vm_each in proxmox.cluster.resources.get(type='vm'): - vm_updated = virtual_machine(proxmox_json = px_vm_each) + vm_updated = await virtual_machine(proxmox_json = px_vm_each) virtualmachines_list.append(vm_updated) @@ -479,7 +482,7 @@ def all(**kwargs): # Remove Netbox's old data if remove_unused == True: print('\nREMOVE UNUSED DATA...') - remove_info = remove.all() + remove_info = await remove.all() else: remove_info = False # diff --git a/netbox_proxbox/proxbox_api/updates/extras.py b/netbox_proxbox/proxbox_api/updates/extras.py index 8658b0d..e195092 100755 --- a/netbox_proxbox/proxbox_api/updates/extras.py +++ b/netbox_proxbox/proxbox_api/updates/extras.py @@ -2,7 +2,7 @@ create, ) -def tag(netbox_vm): +async def tag(netbox_vm): # Get current tags tags = netbox_vm.tags @@ -12,9 +12,11 @@ def tag(netbox_vm): tags_name.append(tag.name) + tags = await create.extras.tag() + # If Proxbox not found int Netbox tag's list, update object with the tag. - if create.extras.tag().name not in tags_name: - tags.append(create.extras.tag().id) + if tags.name not in tags_name: + tags.append(tags.id) netbox_vm.tags = tags diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index b57aaff..17c1d94 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -17,7 +17,7 @@ import logging # Update STATUS field on /dcim/device/{id} -def status(netbox_node, proxmox_node): +async def status(netbox_node, proxmox_node): # # Compare STATUS # @@ -57,7 +57,7 @@ def status(netbox_node, proxmox_node): # Update CLUSTER field on /dcim/device/{id} -def cluster(netbox_node, proxmox_node, proxmox_cluster): +async def cluster(netbox_node, proxmox_node, proxmox_cluster): # # Compare CLUSTER # @@ -69,7 +69,7 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): # If cluster is not filled or even filled, but different from actual cluster, update it. if netbox_node.cluster.name != proxmox_cluster['name'] or netbox_node.cluster.name == None: # Search for Proxmox Cluster using create.cluster() function - cluster_id = create.virtualization.cluster().id + cluster_id = await create.virtualization.cluster().id # Use Cluster ID to update NODE information netbox_node.cluster.id = cluster_id @@ -85,7 +85,7 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): # If cluster is empty, update it. elif proxmox_cluster == None: # Search for Proxmox Cluster using create.cluster() function - cluster_id = create.virtualization.cluster().id + cluster_id = await create.virtualization.cluster().id # Use Cluster ID to update NODE information netbox_node.cluster.id = cluster_id @@ -106,7 +106,7 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): return cluster_updated -def interfaces(netbox_node, proxmox_json): +async def interfaces(netbox_node, proxmox_json): updated = False _int_port = ['OVSIntPort'] _lag_port = ['OVSBond'] diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index c1dc232..b41c00b 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -24,7 +24,7 @@ import logging # Update "status" field on Netbox Virtual Machine based on Proxmox information -def status(netbox_vm, proxmox_vm): +async def status(netbox_vm, proxmox_vm): # False = status not changed on Netbox # True = status changed on Netbox status_updated = False @@ -64,14 +64,14 @@ def status(netbox_vm, proxmox_vm): -def site(**kwargs): +async def site(**kwargs): # If site_id equals to 0, consider it is not configured by user and must be created by Proxbox site_id = kwargs.get('site_id', 0) # Function that modifies 'custom_field' of Netbox Virtual Machine. # It uses HTTP Request and not Pynetbox (as I was not able to). -def http_update_custom_fields(**kwargs): +async def http_update_custom_fields(**kwargs): # Saves kwargs variables domain_with_http = kwargs.get('domain_with_http') token = kwargs.get('token') @@ -108,7 +108,7 @@ def http_update_custom_fields(**kwargs): # Update 'custom_fields' field on Netbox Virtual Machine based on Proxbox -def custom_fields(netbox_vm, proxmox_vm): +async def custom_fields(netbox_vm, proxmox_vm): # Create the new 'custom_field' with info from Proxmox custom_fields_update = {} @@ -177,7 +177,7 @@ def custom_fields(netbox_vm, proxmox_vm): # Update 'local_context_data' field on Netbox Virtual Machine based on Proxbox -def local_context_data(netbox_vm, proxmox_vm): +async def local_context_data(netbox_vm, proxmox_vm): current_local_context = netbox_vm.local_context_data proxmox_values = {} @@ -226,7 +226,7 @@ def local_context_data(netbox_vm, proxmox_vm): # Updates following fields based on Proxmox: "vcpus", "memory", "disk", if necessary. -def resources(netbox_vm, proxmox_vm): +async def resources(netbox_vm, proxmox_vm): # Save values from Proxmox vcpus = float(proxmox_vm["maxcpu"]) @@ -285,7 +285,7 @@ def resources(netbox_vm, proxmox_vm): else: return False -def interfaces(netbox_vm, proxmox_vm): +async def interfaces(netbox_vm, proxmox_vm): updated = False try: if proxmox_vm['type'] == 'qemu': @@ -369,7 +369,7 @@ def interfaces(netbox_vm, proxmox_vm): return False return updated -def interfaces_ips(netbox_vm, proxmox_vm): +async def interfaces_ips(netbox_vm, proxmox_vm): updated = False if proxmox_vm['status'] == 'running': _pmx_ips = [] diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index 8284e4c..c01ed40 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -1,5 +1,6 @@ from django.shortcuts import get_object_or_404, render from django.urls import reverse_lazy + # 'View' is a django subclass. Basic type of class-based views from django.views import View from django.views.generic.edit import CreateView, DeleteView, UpdateView @@ -24,6 +25,11 @@ from . import ProxboxConfig +import requests + +async def get_json_result(): + return await proxbox_api.update.all(remove_unused = True) + class HomeView(View): """Homepage""" template_name = 'netbox_proxbox/home.html' @@ -88,16 +94,16 @@ class ProxmoxFullUpdate(PermissionRequiredMixin, View): # Define permission permission_required = "netbox_proxbox.view_proxmoxvm" - - - # service incoming GET HTTP requests # 'pk' value is passed to get() via URL defined in urls.py def get(self, request): """Get request.""" - json_result = proxbox_api.update.all(remove_unused = True) + json_result = None + try: + json_result = requests.get('http://localhost:8004/full_update').json() + except Exception as error: print(error) return render( request, diff --git a/setup.py b/setup.py index 3bc93e7..ca4fea0 100755 --- a/setup.py +++ b/setup.py @@ -21,8 +21,9 @@ 'requests>=2', 'pynetbox>=5', 'paramiko>=2', - 'proxmoxer>=1' - + 'proxmoxer>=1', + 'fastapi[all]', + 'uvicorn[standard]', ] dev_requires = [ @@ -61,5 +62,5 @@ extras_require={ "dev": dev_requires, }, - python_requires= '>=3.6', + python_requires= '>=3.9', ) From d7e6ba589e078cfa73a7d00205132515038e242b Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Tue, 28 Mar 2023 14:14:45 +0000 Subject: [PATCH 091/313] Add FastAPI example to README and to HomeView --- README.md | 51 ++-- netbox_proxbox/__init__.py | 6 +- netbox_proxbox/main.py | 2 + netbox_proxbox/proxbox_api/plugins_config.py | 15 +- .../static/netbox_proxbox/fastapi_logo.png | Bin 0 -> 14936 bytes netbox_proxbox/static/proxmox-logo.svg | 243 ------------------ .../templates/netbox_proxbox/home.html | 37 +++ netbox_proxbox/views.py | 27 +- 8 files changed, 109 insertions(+), 272 deletions(-) create mode 100644 netbox_proxbox/static/netbox_proxbox/fastapi_logo.png delete mode 100644 netbox_proxbox/static/proxmox-logo.svg diff --git a/README.md b/README.md index 59cc7c6..7673b62 100755 --- a/README.md +++ b/README.md @@ -148,30 +148,35 @@ Replace the values with your own following the [Configuration Parameters](#2-con ```python PLUGINS_CONFIG = { - 'netbox_proxbox': { - 'proxmox': { - 'domain': 'proxbox.example.com', # May also be IP address - 'http_port': 8006, - 'user': 'root@pam', # always required - 'password': 'Strong@P4ssword', # only required, if you don't want to use token based authentication - 'token': { - 'name': 'tokenID', # Only type the token name and not the 'user@pam:tokenID' format - 'value': '039az154-23b2-4be0-8d20-b66abc8c4686' - }, - 'ssl': False - }, - 'netbox': { - 'domain': 'localhost', # Ensure localhost is added to ALLOWED_HOSTS - 'http_port': 8001, # Gunicorn port. - 'token': '0dd7cddfaee3b38bbffbd2937d44c4a03f9c9d38', - 'ssl': False, # There is no support to SSL on Netbox yet, so let it always False. - 'settings': { - 'virtualmachine_role_id' : 0, - 'node_role_id' : 0, - 'site_id': 0 - } - } + 'netbox_proxbox': { + 'proxmox': { + 'domain': 'proxbox.example.com', # May also be IP address + 'http_port': 8006, + 'user': 'root@pam', # always required + 'password': 'Strong@P4ssword', # only required, if you don't want to use token based authentication + 'token': { + 'name': 'tokenID', # Only type the token name and not the 'user@pam:tokenID' format + 'value': '039az154-23b2-4be0-8d20-b66abc8c4686' + }, + 'ssl': False + }, + 'netbox': { + 'domain': 'localhost', # Ensure localhost is added to ALLOWED_HOSTS + 'http_port': 8001, # Gunicorn port. + 'token': '0dd7cddfaee3b38bbffbd2937d44c4a03f9c9d38', + 'ssl': False, # There is no support to SSL on Netbox yet, so let it always False. + 'settings': { + 'virtualmachine_role_id' : 0, + 'node_role_id' : 0, + 'site_id': 0 + } + }, + 'fastapi': { + 'uvicorn_host' : '0.0.0.0', + 'uvicorn_port' : '8002', } + } +} ```
diff --git a/netbox_proxbox/__init__.py b/netbox_proxbox/__init__.py index 054f72f..537ec71 100755 --- a/netbox_proxbox/__init__.py +++ b/netbox_proxbox/__init__.py @@ -32,7 +32,11 @@ class ProxboxConfig(PluginConfig): 'node_role_id' : 0, 'site_id': 0 } - } + }, + 'fastapi': { + 'uvicorn_host' : '0.0.0.0', + 'uvicorn_port' : '8002', + }, } config = ProxboxConfig diff --git a/netbox_proxbox/main.py b/netbox_proxbox/main.py index 39aef4f..ac58890 100644 --- a/netbox_proxbox/main.py +++ b/netbox_proxbox/main.py @@ -1,9 +1,11 @@ +import uvicorn from fastapi import FastAPI from netbox_proxbox import proxbox_api app = FastAPI() + @app.get("/full_update") async def full_update(): json_result = await proxbox_api.update.all() diff --git a/netbox_proxbox/proxbox_api/plugins_config.py b/netbox_proxbox/proxbox_api/plugins_config.py index fa8150a..c476583 100755 --- a/netbox_proxbox/proxbox_api/plugins_config.py +++ b/netbox_proxbox/proxbox_api/plugins_config.py @@ -20,6 +20,7 @@ DEFAULT_PLUGINS_CONFIG = ProxboxConfig.default_settings DEFAULT_PROXMOX_SETTING = DEFAULT_PLUGINS_CONFIG.get("proxmox") DEFAULT_NETBOX_SETTING = DEFAULT_PLUGINS_CONFIG.get("netbox") +DEFAULT_FASTAPI_SETTING = DEFAULT_PLUGINS_CONFIG.get("fastapi") # # Proxmox related settings @@ -65,7 +66,7 @@ USER_PLUGINS_CONFIG = PLUGINS_CONFIG.get("netbox_proxbox") PROXMOX_SETTING = USER_PLUGINS_CONFIG.get("proxmox", DEFAULT_PROXMOX_SETTING) NETBOX_SETTING = USER_PLUGINS_CONFIG.get("netbox", DEFAULT_NETBOX_SETTING) - +FASTAPI_SETTING = USER_PLUGINS_CONFIG.get("fastapi", DEFAULT_FASTAPI_SETTING) # # Proxmox related settings # @@ -103,10 +104,20 @@ NETBOX_NODE_ROLE_ID = NETBOX_SETTINGS.get("node_role_id", DEFAULT_NETBOX_NODE_ROLE_ID) NETBOX_SITE_ID = NETBOX_SETTINGS.get("site_id", DEFAULT_NETBOX_SITE_ID) +# +# FastAPI (uvicorn) related settings +# +if FASTAPI_SETTING != None: + DEFAULT_FASTAPI_HOST = DEFAULT_FASTAPI_SETTING.get("uvicorn_host") + DEFAULT_FASTAPI_PORT = DEFAULT_FASTAPI_SETTING.get("uvicorn_port") + + FASTAPI_HOST = FASTAPI_SETTING.get("uvicorn_host", DEFAULT_FASTAPI_HOST) + FASTAPI_PORT = FASTAPI_SETTING.get("uvicorn_port", DEFAULT_FASTAPI_PORT) + #################################################################################################### # # -# WITH PLUGIN CONFIGURED, STARTS BOTH PROXMOX AND NETBOX SESSION # +# WITH PLUGIN CONFIGURED, STARTS PROXMOX, NETBOX AND UVICORN SESSIONS # # # #################################################################################################### diff --git a/netbox_proxbox/static/netbox_proxbox/fastapi_logo.png b/netbox_proxbox/static/netbox_proxbox/fastapi_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c6d93c4d652abc064ccf717d3245c2462ac0ab GIT binary patch literal 14936 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 literal 0 HcmV?d00001 diff --git a/netbox_proxbox/static/proxmox-logo.svg b/netbox_proxbox/static/proxmox-logo.svg deleted file mode 100644 index bc5d22a..0000000 --- a/netbox_proxbox/static/proxmox-logo.svg +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/netbox_proxbox/templates/netbox_proxbox/home.html b/netbox_proxbox/templates/netbox_proxbox/home.html index 8e95eb1..3239eec 100644 --- a/netbox_proxbox/templates/netbox_proxbox/home.html +++ b/netbox_proxbox/templates/netbox_proxbox/home.html @@ -151,6 +151,43 @@

+
+
+
+
+ Netbox Logo +
+
+ + + + {% if configuration.netbox_proxbox.fastapi.uvicorn_host %} + + {% else %} + + {% endif %} + + + + {% if configuration.netbox_proxbox.fastapi.uvicorn_port %} + + {% else %} + + {% endif %} + +
Uvicorn Host{{ configuration.netbox_proxbox.fastapi.uvicorn_host }}{{ default_config.fastapi.uvicorn_host }} (default)
Uvicorn Port{{ configuration.netbox_proxbox.fastapi.uvicorn_port }}{{ default_config.fastapi.uvicorn_port }} (default)
+
+ +
+
+
+

diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index c01ed40..031a65b 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -24,11 +24,32 @@ from netbox import configuration from . import ProxboxConfig - import requests -async def get_json_result(): - return await proxbox_api.update.all(remove_unused = True) +import logging + + +# Deploy FastAPI with uvicorn instance +try: + import subprocess + + # Import config + fastapi_host = proxbox_api.plugins_config.FASTAPI_HOST + fastapi_port = proxbox_api.plugins_config.FASTAPI_PORT + + # Check if there's already a process running with the same port + output = str(subprocess.run(["sudo", "netstat", "-tuln", "|", "grep", fastapi_port], capture_output=True).stdout) + if f"{fastapi_port}" in output: + raise Exception(f"Port '{fastapi_port}' is already being used.\nUnable to spawn uvicorn process, you'll have to change the port or kill the proccess running.\nTo do this, change 'PLUGINS_CONFIG' variable in 'configuration.py' Netbox") + + # Spawn uvicorn process + uvicorn_spawn = ["uvicorn", "netbox-proxbox.netbox_proxbox.main:app", "--host", str(fastapi_host), "--port", str(fastapi_port)] + subprocess.Popen(uvicorn_spawn) +except Exception as error: + log_message = f"[ERROR] {error}" + logging.error(log_message) + raise Exception(log_message) + class HomeView(View): """Homepage""" From f3bc0743f12287e1830cca23432bdb19951ac819 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Tue, 28 Mar 2023 14:43:47 +0000 Subject: [PATCH 092/313] Add development verification to know if use '--reload' uvicorn parameter or not. --- netbox_proxbox/main.py | 4 +++- .../templates/netbox_proxbox/home.html | 4 +++- netbox_proxbox/views.py | 17 ++++++++++++++--- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/netbox_proxbox/main.py b/netbox_proxbox/main.py index ac58890..bd6de58 100644 --- a/netbox_proxbox/main.py +++ b/netbox_proxbox/main.py @@ -4,7 +4,9 @@ app = FastAPI() - +@app.get("/") +async def root(): + return {"message": "Hello World! dsdsasdad"} @app.get("/full_update") async def full_update(): diff --git a/netbox_proxbox/templates/netbox_proxbox/home.html b/netbox_proxbox/templates/netbox_proxbox/home.html index 3239eec..398b5d8 100644 --- a/netbox_proxbox/templates/netbox_proxbox/home.html +++ b/netbox_proxbox/templates/netbox_proxbox/home.html @@ -155,7 +155,9 @@


- Netbox Logo + + Netbox Logo +
diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index 031a65b..3e70dd8 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -38,13 +38,24 @@ fastapi_port = proxbox_api.plugins_config.FASTAPI_PORT # Check if there's already a process running with the same port - output = str(subprocess.run(["sudo", "netstat", "-tuln", "|", "grep", fastapi_port], capture_output=True).stdout) + output = str(subprocess.run(["sudo", "netstat", "-tuln"], capture_output=True).stdout) if f"{fastapi_port}" in output: raise Exception(f"Port '{fastapi_port}' is already being used.\nUnable to spawn uvicorn process, you'll have to change the port or kill the proccess running.\nTo do this, change 'PLUGINS_CONFIG' variable in 'configuration.py' Netbox") - # Spawn uvicorn process - uvicorn_spawn = ["uvicorn", "netbox-proxbox.netbox_proxbox.main:app", "--host", str(fastapi_host), "--port", str(fastapi_port)] + uvicorn_spawn = None + # Check if Netbox is running in development mode + psaux = str(subprocess.run(["sudo", "ps", "aux"], capture_output=True).stdout) + if "manage.py runserver" in psaux: + if ":8000" in psaux: + # Spawn uvicorn process with '--reload' option + print("Django Development (manage.py runserver) process was found, running uvicorn with '--reload' parameter.") + uvicorn_spawn = ["uvicorn", "netbox-proxbox.netbox_proxbox.main:app", "--host", str(fastapi_host), "--port", str(fastapi_port), "--reload"] + else: + # Spawn uvicorn process + print("Only Django production process was found. Running uvicorn without '--reload' parameter.") + uvicorn_spawn = ["uvicorn", "netbox-proxbox.netbox_proxbox.main:app", "--host", str(fastapi_host), "--port", str(fastapi_port)] subprocess.Popen(uvicorn_spawn) + except Exception as error: log_message = f"[ERROR] {error}" logging.error(log_message) From 67cf78e976e6d079be32957fbea4b916829d0fc5 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Tue, 28 Mar 2023 15:13:49 +0000 Subject: [PATCH 093/313] Add HTML code to homepage of FastAPI --- netbox_proxbox/main.py | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/netbox_proxbox/main.py b/netbox_proxbox/main.py index bd6de58..f92d8b2 100644 --- a/netbox_proxbox/main.py +++ b/netbox_proxbox/main.py @@ -1,12 +1,41 @@ import uvicorn from fastapi import FastAPI +from fastapi.responses import HTMLResponse from netbox_proxbox import proxbox_api app = FastAPI() @app.get("/") -async def root(): - return {"message": "Hello World! dsdsasdad"} +async def root(response_class=HTMLResponse): + html_content = """ + + + FastAPI | Home + + +
+

FastAPI instance

+

It is running so Proxbox can use fome of the useful features like: +
+
+ + + Websocket + + +
+ + + Assynchronous code (async / await) + + + +

+
+ + + """ + return HTMLResponse(content=html_content, status_code=200) @app.get("/full_update") async def full_update(): From 334cc6348e30dbdf2f1fd97ea797177f777fbde3 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Wed, 29 Mar 2023 20:32:35 +0000 Subject: [PATCH 094/313] Add 'deploy_uvicorn' module to deploy FastAPI and add Jinja2 templates --- netbox_proxbox/__init__.py | 2 +- netbox_proxbox/deploy_uvicorn.py | 78 ++++++++ netbox_proxbox/fastapi_templates/fastapi.html | 26 +++ netbox_proxbox/main.py | 184 ++++++++++++++---- netbox_proxbox/templates/fastapi.html | 26 +++ netbox_proxbox/templates/websocket.html | 31 +++ netbox_proxbox/views.py | 6 +- 7 files changed, 317 insertions(+), 36 deletions(-) create mode 100644 netbox_proxbox/deploy_uvicorn.py create mode 100644 netbox_proxbox/fastapi_templates/fastapi.html create mode 100644 netbox_proxbox/templates/fastapi.html create mode 100644 netbox_proxbox/templates/websocket.html diff --git a/netbox_proxbox/__init__.py b/netbox_proxbox/__init__.py index 537ec71..5e6f378 100755 --- a/netbox_proxbox/__init__.py +++ b/netbox_proxbox/__init__.py @@ -41,4 +41,4 @@ class ProxboxConfig(PluginConfig): config = ProxboxConfig -from . import proxbox_api \ No newline at end of file +from . import proxbox_api diff --git a/netbox_proxbox/deploy_uvicorn.py b/netbox_proxbox/deploy_uvicorn.py new file mode 100644 index 0000000..2a3286e --- /dev/null +++ b/netbox_proxbox/deploy_uvicorn.py @@ -0,0 +1,78 @@ +from . import proxbox_api + +# Import config +fastapi_host = proxbox_api.plugins_config.FASTAPI_HOST +fastapi_port = proxbox_api.plugins_config.FASTAPI_PORT + +import logging + + +def deploy(): + # Deploy FastAPI with uvicorn instance + try: + import subprocess + + # Import config + fastapi_host = proxbox_api.plugins_config.FASTAPI_HOST + fastapi_port = proxbox_api.plugins_config.FASTAPI_PORT + + uvicorn_spawn = None + # Check if Netbox is running in development mode + psaux = str(subprocess.run(["sudo", "ps", "aux"], capture_output=True).stdout) + + # Check Uvicorn is running + if f"uvicorn netbox-proxbox.netbox_proxbox.main:app --host {str(fastapi_host)} --port {str(fastapi_port)}" in psaux: + log_message = "[OK] FastAPI (uvicorn) is already running." + logging.info(log_message) + return { + 'fastapi_host': fastapi_host, + 'fastapi_port': fastapi_port, + } + + # Check if there's already a process running with the same port + output = str(subprocess.run(["sudo", "netstat", "-tuln"], capture_output=True).stdout) + if f"{fastapi_port}" in output: + log_message = f"[ERROR] Port '{fastapi_port}' is already being used.\nUnable to spawn uvicorn process, you'll have to change the port or kill the proccess running.\nTo do this, change 'PLUGINS_CONFIG' variable in 'configuration.py' Netbox" + logging.error(log_message) + + # Increment Port by one. + fastapi_port = str(int(fastapi_port) + 1) + + logging.info(f"[INFO] Since the port is already being used, Proxbox will try to increment the port number by one ({fastapi_port}) and deploy de proccess:") + + # Check again if there's already a process running with the same port + output_2 = str(subprocess.run(["sudo", "netstat", "-tuln"], capture_output=True).stdout) + + if f"{fastapi_port}" in output: + log_message = f"[ERROR] Port '{fastapi_port}' is already being used." + logging.error(log_message) + + # Increment Port by one. + fastapi_port = str(int(fastapi_port) + 1) + + + # Check if Django is running + if "manage.py runserver" in psaux: + if ":8000" in psaux: + # Spawn uvicorn process with '--reload' option + print("Django Development (manage.py runserver) process was found, running uvicorn with '--reload' parameter.") + uvicorn_spawn = ["uvicorn", "netbox-proxbox.netbox_proxbox.main:app", "--host", str(fastapi_host), "--port", str(fastapi_port), "--reload"] + else: + # Spawn uvicorn process + print("Only Django production process was found. Running uvicorn without '--reload' parameter.") + uvicorn_spawn = ["uvicorn", "netbox-proxbox.netbox_proxbox.main:app", "--host", str(fastapi_host), "--port", str(fastapi_port)] + subprocess.Popen(uvicorn_spawn) + + except Exception as error: + log_message = f"[ERROR] {error}" + logging.error(log_message) + raise Exception(log_message) + + return { + 'fastapi_host': fastapi_host, + 'fastapi_port': fastapi_port, + } + +result = deploy() +fastapi_host = result.get("fastapi_host", None) +fastapi_port = result.get("fastapi_port", None) \ No newline at end of file diff --git a/netbox_proxbox/fastapi_templates/fastapi.html b/netbox_proxbox/fastapi_templates/fastapi.html new file mode 100644 index 0000000..489a092 --- /dev/null +++ b/netbox_proxbox/fastapi_templates/fastapi.html @@ -0,0 +1,26 @@ + + + FastAPI | Home + + +
+

FastAPI instance

+

It is running so Proxbox can use fome of the useful features like: +
+
+ + + Websocket + + +
+ + + Assynchronous code (async / await) + + + +

+
+ + \ No newline at end of file diff --git a/netbox_proxbox/main.py b/netbox_proxbox/main.py index f92d8b2..7e6a0fa 100644 --- a/netbox_proxbox/main.py +++ b/netbox_proxbox/main.py @@ -1,41 +1,39 @@ import uvicorn -from fastapi import FastAPI +from fastapi import FastAPI, WebSocket, Request from fastapi.responses import HTMLResponse +from fastapi.staticfiles import StaticFiles +from fastapi.templating import Jinja2Templates + from netbox_proxbox import proxbox_api +# Import config +from .deploy_uvicorn import ( + fastapi_host, + fastapi_port, +) + +# PLUGIN_CONFIG variables +from .proxbox_api.plugins_config import ( + NETBOX_SESSION as nb, + PROXMOX_SESSION as proxmox, +) + +print(f"fastapi_host: {fastapi_host}") +print(f"fastapi_port: {fastapi_port}") + app = FastAPI() -@app.get("/") -async def root(response_class=HTMLResponse): - html_content = """ - - - FastAPI | Home - - -
-

FastAPI instance

-

It is running so Proxbox can use fome of the useful features like: -
-
- - - Websocket - - -
- - - Assynchronous code (async / await) - - - -

-
- - - """ - return HTMLResponse(content=html_content, status_code=200) +app.mount("/static", StaticFiles(directory="static"), name="static") + +from pathlib import Path +BASE_PATH = Path(__file__).resolve().parent +templates = Jinja2Templates(directory=str(BASE_PATH / "templates")) + + +@app.get("/jinja", response_class=HTMLResponse) +async def jinja(request: Request): + return templates.TemplateResponse("fastapi.html", {"request": request}) + @app.get("/full_update") async def full_update(): @@ -44,4 +42,124 @@ async def full_update(): @app.get("/items/{item_id}") async def read_item(item_id: int): - return {"item_id": item_id} \ No newline at end of file + return {"item_id": item_id} + +@app.get("/") +async def get(request: Request): + return templates.TemplateResponse("websocket.html", + { + "request": request, + "fastapi_host": fastapi_host, + "fastapi_port": fastapi_port, + }, + ) + +@app.websocket("/ws") +async def websocket_endpoint(websocket: WebSocket): + + from .proxbox_api.plugins_config import ( + PROXMOX, + PROXMOX_PORT, + PROXMOX_USER, + PROXMOX_PASSWORD, + PROXMOX_SSL, + NETBOX, + NETBOX_TOKEN, + PROXMOX_SESSION as proxmox, + NETBOX_SESSION as nb, + ) + + from .proxbox_api import ( + updates, + create, + remove, + ) + + from .proxbox_api.update import ( + nodes, + virtual_machine, + ) + from .proxbox_api.create import extras + + import logging + + await websocket.accept() + while True: + #data = await websocket.receive_text() + + #await websocket.send_text(f"Message text was: {data}") + + # Makes everything needed so that VIRTUAL MACHINES / CONTAINERS, NODES and CLUSTER exists on Netbox + await websocket.send_text("teste websocket") + print("[Proxbox - Netbox plugin | Update All]") + cluster_all = proxmox.cluster.status.get() + print(f"cluster_all: {cluster_all}") + + # + # CLUSTER + # + print("pre-cluster") + cluster = await create.virtualization.cluster() + print('\n\n\nCLUSTER...') + print(f"cluster: {cluster}") + + try: + logging.info(f'[OK] CLUSTER created. -> {cluster.name}') + except: + logging.info(f"[OK] Cluster created. -> {cluster}") + + proxmox_cluster = cluster_all[0] + # + # NODES + # + await websocket.send_text("NODES...") + print('\n\n\nNODES...') + nodes_list = [] + proxmox_nodes = cluster_all[1:] + + # Get all NODES from Proxmox + for px_node_each in proxmox_nodes: + node_updated = await nodes(proxmox_json = px_node_each, proxmox_cluster = proxmox_cluster) + await websocket.send_json(node_updated) + nodes_list.append(node_updated) + + + # + # VIRTUAL MACHINES / CONTAINERS + # + await websocket.send_text("VIRTUAL MACHINES...") + print('\n\n\nVIRTUAL MACHINES...') + virtualmachines_list = [] + + await websocket.send_text("UPDATE ALL...") + print('\nUPDATE ALL...') + # Get all VM/CTs from Proxmox + for px_vm_each in proxmox.cluster.resources.get(type='vm'): + vm_updated = await virtual_machine(proxmox_json = px_vm_each) + await websocket.send_json(vm_updated) + virtualmachines_list.append(vm_updated) + + remove_unused = False + # + # + # Get "remove_unused" passed on function call + # remove_unused = kwargs.get("remove_unused", False) + # + # + + # Remove Netbox's old data + if remove_unused == True: + await websocket.send_text("REMOVE UNUSED DATA...") + print('\nREMOVE UNUSED DATA...') + remove_info = await remove.all() + else: + remove_info = False + # + # BUILD JSON RESULT + # + result = {} + result["virtualmachines"] = virtualmachines_list + result["nodes"] = nodes_list + result["remove_unused"] = remove_info + + websocket.close() \ No newline at end of file diff --git a/netbox_proxbox/templates/fastapi.html b/netbox_proxbox/templates/fastapi.html new file mode 100644 index 0000000..489a092 --- /dev/null +++ b/netbox_proxbox/templates/fastapi.html @@ -0,0 +1,26 @@ + + + FastAPI | Home + + +
+

FastAPI instance

+

It is running so Proxbox can use fome of the useful features like: +
+
+ + + Websocket + + +
+ + + Assynchronous code (async / await) + + + +

+
+ + \ No newline at end of file diff --git a/netbox_proxbox/templates/websocket.html b/netbox_proxbox/templates/websocket.html new file mode 100644 index 0000000..ed2f586 --- /dev/null +++ b/netbox_proxbox/templates/websocket.html @@ -0,0 +1,31 @@ + + + + Chat + + +

WebSocket Chat (ws://localhost:{{ fastapi_port }}/ws)

+
+ + + +
    +
+ + + \ No newline at end of file diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index 3e70dd8..023a4c2 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -28,7 +28,9 @@ import logging +from . import deploy_uvicorn +''' # Deploy FastAPI with uvicorn instance try: import subprocess @@ -60,7 +62,7 @@ log_message = f"[ERROR] {error}" logging.error(log_message) raise Exception(log_message) - +''' class HomeView(View): """Homepage""" @@ -134,7 +136,7 @@ def get(self, request): json_result = None try: - json_result = requests.get('http://localhost:8004/full_update').json() + json_result = requests.get(f'http://localhost:{fastapi_port}/full_update').json() except Exception as error: print(error) return render( From 199841e96d2ca3ac4d71da1e55c6e0633688d70f Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Wed, 29 Mar 2023 20:33:57 +0000 Subject: [PATCH 095/313] Add more required packages to setup --- setup.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/setup.py b/setup.py index ca4fea0..e088f6c 100755 --- a/setup.py +++ b/setup.py @@ -23,7 +23,13 @@ 'paramiko>=2', 'proxmoxer>=1', 'fastapi[all]', + 'starlette', 'uvicorn[standard]', + 'websockets', + 'jinja2', + 'ujson>=5.7.0', + 'orjson>=3.8.9', + 'httpcore', ] dev_requires = [ From 34d05d69a3866858424a4ee7a5e0490644f2cae0 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 6 Apr 2023 14:32:02 +0000 Subject: [PATCH 096/313] add 'requirements.txt' with proxbox dependencies --- requirements.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..6159f8a --- /dev/null +++ b/requirements.txt @@ -0,0 +1,19 @@ +poetry +invoke +requests>=2 +pynetbox>=5 +paramiko>=2 +proxmoxer>=1 +fastapi[all] +starlette +uvicorn[standard] +websockets +jinja2 +ujson>=5.7.0 +orjson>=3.8.9 +httpcore +pytest>=3.7 +check-manifest +twine +setuptools +wheel From fdb6c685689cd673bca6daf03b417cc361f815ff Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 6 Apr 2023 14:33:28 +0000 Subject: [PATCH 097/313] minor adjust to uvicorn deploy when checking existing service using port --- netbox_proxbox/deploy_uvicorn.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/netbox_proxbox/deploy_uvicorn.py b/netbox_proxbox/deploy_uvicorn.py index 2a3286e..c5738a2 100644 --- a/netbox_proxbox/deploy_uvicorn.py +++ b/netbox_proxbox/deploy_uvicorn.py @@ -31,8 +31,8 @@ def deploy(): # Check if there's already a process running with the same port output = str(subprocess.run(["sudo", "netstat", "-tuln"], capture_output=True).stdout) - if f"{fastapi_port}" in output: - log_message = f"[ERROR] Port '{fastapi_port}' is already being used.\nUnable to spawn uvicorn process, you'll have to change the port or kill the proccess running.\nTo do this, change 'PLUGINS_CONFIG' variable in 'configuration.py' Netbox" + if f":{fastapi_port}" in output: + log_message = f"[ERROR] Port '{fastapi_port}' is already being used.\n > Unable to spawn uvicorn process, you'll have to change the port or kill the proccess running.\nTo do this, change 'PLUGINS_CONFIG' variable in 'configuration.py' Netbox" logging.error(log_message) # Increment Port by one. @@ -43,8 +43,8 @@ def deploy(): # Check again if there's already a process running with the same port output_2 = str(subprocess.run(["sudo", "netstat", "-tuln"], capture_output=True).stdout) - if f"{fastapi_port}" in output: - log_message = f"[ERROR] Port '{fastapi_port}' is already being used." + if f":{fastapi_port}" in output: + log_message = f"[ERROR] Port '{fastapi_port}' is already being used. (2)\n > Proxbox won't try running it to avoid unexpected troubles.\n > Try using following shell commands:\n -> 'ps aux | grep :{fastapi_port}'\n -> 'netstat -tuln | grep :{fastapi_port}'" logging.error(log_message) # Increment Port by one. From 504b5766a8d61cbecb4df1c44bbd0dd4320e9513 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 6 Apr 2023 15:30:15 +0000 Subject: [PATCH 098/313] Add search for proccess to inform user about existing uvicorn proccess --- netbox_proxbox/deploy_uvicorn.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/netbox_proxbox/deploy_uvicorn.py b/netbox_proxbox/deploy_uvicorn.py index c5738a2..1b7f259 100644 --- a/netbox_proxbox/deploy_uvicorn.py +++ b/netbox_proxbox/deploy_uvicorn.py @@ -24,6 +24,21 @@ def deploy(): if f"uvicorn netbox-proxbox.netbox_proxbox.main:app --host {str(fastapi_host)} --port {str(fastapi_port)}" in psaux: log_message = "[OK] FastAPI (uvicorn) is already running." logging.info(log_message) + + psaux = str(psaux) + psaux_array = psaux.split("\\n") + + # Find the PID and command used to deploy existing uvicorn + for line in psaux_array: + line_array = line.split() + try: + command = f"{line_array[10]} {line_array[11]} {line_array[12]} {line_array[13]} {line_array[14]} {line_array[15]} {line_array[16]}" + if "uvicorn" in command: + pid_int = line_array[1] + print(f" > PID: {pid_int}\n > Command: {command}\n -> If it not intended to have this proccess running, issue the following command to kill the proccess: 'kill -9 {pid_int}'") + except Exception as error: + pass + return { 'fastapi_host': fastapi_host, 'fastapi_port': fastapi_port, From eef5f2da2d8498b92d8d1cecb1ec342e7c884c2a Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 6 Apr 2023 18:53:07 +0000 Subject: [PATCH 099/313] change uvicorn spawn to gunicorn workers --- netbox_proxbox/deploy_uvicorn.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/netbox_proxbox/deploy_uvicorn.py b/netbox_proxbox/deploy_uvicorn.py index 1b7f259..1470f70 100644 --- a/netbox_proxbox/deploy_uvicorn.py +++ b/netbox_proxbox/deploy_uvicorn.py @@ -16,12 +16,18 @@ def deploy(): fastapi_host = proxbox_api.plugins_config.FASTAPI_HOST fastapi_port = proxbox_api.plugins_config.FASTAPI_PORT + # Gunicorn proccess + gunicorn_proccess = "gunicorn netbox-proxbox.netbox_proxbox.main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8030" + gunicorn_proccess = gunicorn_proccess.split() + gunicorn_proccess[7] = f"{fastapi_host}:{fastapi_port}" + uvicorn_spawn = None # Check if Netbox is running in development mode psaux = str(subprocess.run(["sudo", "ps", "aux"], capture_output=True).stdout) - + + worker_class = "uvicorn.workers.UvicornWorker" # Check Uvicorn is running - if f"uvicorn netbox-proxbox.netbox_proxbox.main:app --host {str(fastapi_host)} --port {str(fastapi_port)}" in psaux: + if f"gunicorn netbox-proxbox.netbox_proxbox.main:app --workers 4 --worker-class {worker_class} --bind {str(fastapi_host)}:{str(fastapi_port)}" in psaux: log_message = "[OK] FastAPI (uvicorn) is already running." logging.info(log_message) @@ -33,9 +39,11 @@ def deploy(): line_array = line.split() try: command = f"{line_array[10]} {line_array[11]} {line_array[12]} {line_array[13]} {line_array[14]} {line_array[15]} {line_array[16]}" - if "uvicorn" in command: + if "gunicron netbox-proxbox.netbox_proxbox.main" in command: pid_int = line_array[1] - print(f" > PID: {pid_int}\n > Command: {command}\n -> If it not intended to have this proccess running, issue the following command to kill the proccess: 'kill -9 {pid_int}'") + print(f" > PID: {pid_int}\n > Command: {command}\n -> Proxbox will kill t he proccess using the following command: 'kill $(pgrep -P {pid_int})' and 'kill -9 {pid_int}'") + subproccess.run(["kill", "$(pgrep", "-P", f"{pid_int})"]) + subproccess.run(["kill", "-9", {pid_int}]) except Exception as error: pass @@ -63,22 +71,24 @@ def deploy(): logging.error(log_message) # Increment Port by one. - fastapi_port = str(int(fastapi_port) + 1) - + fastapi_port = str(int(fastapi_port) + 1) # Check if Django is running if "manage.py runserver" in psaux: if ":8000" in psaux: # Spawn uvicorn process with '--reload' option print("Django Development (manage.py runserver) process was found, running uvicorn with '--reload' parameter.") - uvicorn_spawn = ["uvicorn", "netbox-proxbox.netbox_proxbox.main:app", "--host", str(fastapi_host), "--port", str(fastapi_port), "--reload"] + uvicorn_spawn = gunicorn_proccess else: # Spawn uvicorn process print("Only Django production process was found. Running uvicorn without '--reload' parameter.") - uvicorn_spawn = ["uvicorn", "netbox-proxbox.netbox_proxbox.main:app", "--host", str(fastapi_host), "--port", str(fastapi_port)] + + uvicorn_spawn = gunicorn_proccess + subprocess.Popen(uvicorn_spawn) except Exception as error: + log_message = f"[ERROR] {error}" logging.error(log_message) raise Exception(log_message) From cb29a4057641c4b9a2c62ece3060f29e2474d484 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Wed, 12 Apr 2023 13:19:11 +0000 Subject: [PATCH 100/313] saves work --- netbox_proxbox/fastapi_templates/fastapi.html | 26 - netbox_proxbox/main.py | 143 +++-- netbox_proxbox/proxbox_api/create/dcim.py | 40 +- .../proxbox_api/create/virtualization.py | 51 +- netbox_proxbox/proxbox_api/update.py | 13 +- netbox_proxbox/proxbox_api/virtual_machine.py | 543 ++++++++++++++++++ netbox_proxbox/templates/websocket.html | 2 +- netbox_proxbox/views.py | 73 +-- psaux.txt | 76 +++ 9 files changed, 792 insertions(+), 175 deletions(-) delete mode 100644 netbox_proxbox/fastapi_templates/fastapi.html create mode 100644 netbox_proxbox/proxbox_api/virtual_machine.py create mode 100644 psaux.txt diff --git a/netbox_proxbox/fastapi_templates/fastapi.html b/netbox_proxbox/fastapi_templates/fastapi.html deleted file mode 100644 index 489a092..0000000 --- a/netbox_proxbox/fastapi_templates/fastapi.html +++ /dev/null @@ -1,26 +0,0 @@ - - - FastAPI | Home - - -
-

FastAPI instance

-

It is running so Proxbox can use fome of the useful features like: -
-
- - - Websocket - - -
- - - Assynchronous code (async / await) - - - -

-
- - \ No newline at end of file diff --git a/netbox_proxbox/main.py b/netbox_proxbox/main.py index 7e6a0fa..a1a4c05 100644 --- a/netbox_proxbox/main.py +++ b/netbox_proxbox/main.py @@ -4,6 +4,8 @@ from fastapi.staticfiles import StaticFiles from fastapi.templating import Jinja2Templates +import requests + from netbox_proxbox import proxbox_api # Import config @@ -18,6 +20,36 @@ PROXMOX_SESSION as proxmox, ) + +from .proxbox_api.plugins_config import ( + PROXMOX, + PROXMOX_PORT, + PROXMOX_USER, + PROXMOX_PASSWORD, + PROXMOX_SSL, + NETBOX, + NETBOX_TOKEN, + PROXMOX_SESSION as proxmox, + NETBOX_SESSION as nb, +) + +from .proxbox_api import ( + updates, + create, + remove, +) + +from .proxbox_api.update import ( + nodes, + virtual_machine, +) +from .proxbox_api.create import extras + +import logging + +from typing import Annotated +from fastapi import Depends, FastAPI + print(f"fastapi_host: {fastapi_host}") print(f"fastapi_port: {fastapi_port}") @@ -37,13 +69,55 @@ async def jinja(request: Request): @app.get("/full_update") async def full_update(): - json_result = await proxbox_api.update.all() + #json_result = await proxbox_api.update.all() return json_result @app.get("/items/{item_id}") async def read_item(item_id: int): return {"item_id": item_id} +''' +html = """ + + + + Chat + + +

WebSocket Chat

+
+ + + +
    +
+ + + +""" + + +@app.get("/") +async def get(): + return HTMLResponse(html) +''' + + @app.get("/") async def get(request: Request): return templates.TemplateResponse("websocket.html", @@ -54,54 +128,55 @@ async def get(request: Request): }, ) -@app.websocket("/ws") -async def websocket_endpoint(websocket: WebSocket): +@app.get("/cluster/") +async def cluster( + cluster: Annotated[any, Depends(create.virtualization.cluster)] +): + return cluster - from .proxbox_api.plugins_config import ( - PROXMOX, - PROXMOX_PORT, - PROXMOX_USER, - PROXMOX_PASSWORD, - PROXMOX_SSL, - NETBOX, - NETBOX_TOKEN, - PROXMOX_SESSION as proxmox, - NETBOX_SESSION as nb, - ) +@app.get("/nodes/") +async def nodes( + proxmox_json +): + return "nodes" - from .proxbox_api import ( - updates, - create, - remove, - ) - - from .proxbox_api.update import ( - nodes, - virtual_machine, - ) - from .proxbox_api.create import extras - - import logging +@app.get("/virtual-machines/") +async def virtual_machine(update: str = "individual"): + print(update) + print(type(update)) +@app.websocket("/ws") +async def websocket_endpoint(websocket: WebSocket): + print("WEBSOCKET RUNNING...") + await websocket.accept() while True: - #data = await websocket.receive_text() - - #await websocket.send_text(f"Message text was: {data}") + data = await websocket.receive_text() + await websocket.send_text(f"Message text was: {data}") # Makes everything needed so that VIRTUAL MACHINES / CONTAINERS, NODES and CLUSTER exists on Netbox - await websocket.send_text("teste websocket") + await websocket.send_text("teste websocket 1") + + + + await websocket.send_text(f"FASTAPI_PORT: {fastapi_port}") print("[Proxbox - Netbox plugin | Update All]") cluster_all = proxmox.cluster.status.get() print(f"cluster_all: {cluster_all}") + + # # CLUSTER # - print("pre-cluster") - cluster = await create.virtualization.cluster() + print("pre-cluster...") + cluster = requests.get(f'http://localhost:{fastapi_port}/cluster') print('\n\n\nCLUSTER...') print(f"cluster: {cluster}") + + print(cluster) + await websocket.send_text(cluster) + return try: logging.info(f'[OK] CLUSTER created. -> {cluster.name}') @@ -116,6 +191,8 @@ async def websocket_endpoint(websocket: WebSocket): print('\n\n\nNODES...') nodes_list = [] proxmox_nodes = cluster_all[1:] + + print(f"proxmox_nodes: {proxmox_nodes}") # Get all NODES from Proxmox for px_node_each in proxmox_nodes: diff --git a/netbox_proxbox/proxbox_api/create/dcim.py b/netbox_proxbox/proxbox_api/create/dcim.py index d81c006..e96e918 100755 --- a/netbox_proxbox/proxbox_api/create/dcim.py +++ b/netbox_proxbox/proxbox_api/create/dcim.py @@ -1,16 +1,14 @@ # PLUGIN_CONFIG variables -from ..plugins_config import ( - NETBOX_SESSION as nb, - NETBOX_NODE_ROLE_ID, - NETBOX_SITE_ID, -) +import logging -from . import ( - extras, - virtualization, -) +from typing import Annotated +from fastapi import Depends, FastAPI + +from ..plugins_config import NETBOX_NODE_ROLE_ID +from ..plugins_config import NETBOX_SESSION as nb +from ..plugins_config import NETBOX_SITE_ID +from . import extras, virtualization -import logging # # dcim.manufacturers @@ -46,7 +44,10 @@ async def manufacturer(): # # dcim.device_types # -async def device_type(): +async def device_type( + manufacturer = Annotated[any, Depends(manufacturer, use_cache=False)], + tags = Annotated[any, Depends(extras.tag, use_cache=False)] + ): proxbox_device_type_model = 'Proxbox Model' proxbox_device_type_slug = 'proxbox-model' proxbox_device_type_comments = "Device Type Proxbox will use when creating the Cluster's Nodes. When the Node is created, you can change the device type to the actual server model." @@ -61,11 +62,11 @@ async def device_type(): try: # If Proxbox manufacturer does not exist, create one. device_type = nb.dcim.device_types.create( - manufacturer = await manufacturer().id, + manufacturer = manufacturer.id, model = proxbox_device_type_model, slug = proxbox_device_type_slug, comments = proxbox_device_type_comments, - tags = await [extras.tag().id] + tags = [tags.id] ) except: log_message = f"Error creating the '{proxbox_device_type_model}' device type. Possible errors: the model '{proxbox_device_type_model}' or slug '{proxbox_device_type_slug}' is already used." @@ -81,7 +82,10 @@ async def device_type(): # # dcim.sites # -async def site(**kwargs): +async def site( + tags = Annotated[any, Depends(extras.tag, use_cache=False)], + **kwargs, + ): # If site_id equals to 0, consider it is not configured by user and must be created by Proxbox site_id = kwargs.get('site_id', 0) @@ -112,7 +116,7 @@ async def site(**kwargs): name = site_proxbox_name, slug = site_proxbox_slug, status = 'active', - tags = [extras.tag().id] + tags = [tags.id] ) except: return f"Error creating the '{site_proxbox_name}' site. Possible errors: the name '{site_proxbox_name}' or slug '{site_proxbox_slug}' is already used." @@ -130,7 +134,10 @@ async def site(**kwargs): # # dcim.devices (nodes) # -async def node(proxmox_node): +async def node( + proxmox_node, + cluster = Annotated[any, Depends(virtualization.cluster, use_cache=False)], + ): # Create json with basic NODE information node_json = {} node_json["name"] = proxmox_node['name'] @@ -150,7 +157,6 @@ async def node(proxmox_node): tags_id = tags_id.id node_json["tags"] = [tags_id] - cluster = await virtualization.cluster() if cluster: if isinstance(cluster, str): print(cluster) diff --git a/netbox_proxbox/proxbox_api/create/virtualization.py b/netbox_proxbox/proxbox_api/create/virtualization.py index a312b55..6cebf75 100755 --- a/netbox_proxbox/proxbox_api/create/virtualization.py +++ b/netbox_proxbox/proxbox_api/create/virtualization.py @@ -1,3 +1,4 @@ +import logging import sys # PLUGIN_CONFIG variables @@ -8,11 +9,10 @@ ) -from . import ( - extras, -) +from . import extras -import logging +from typing import Annotated +from fastapi import Depends, FastAPI # # virtualization.cluster_types @@ -24,25 +24,29 @@ async def cluster_type(): cluster_type_name = 'Proxmox' cluster_type_slug = 'proxmox' - cluster_type_proxbox = nb.virtualization.cluster_types.get( - name = cluster_type_name, - slug = cluster_type_slug - ) + cluster_type_proxbox = None + try: + cluster_type_proxbox = nb.virtualization.cluster_types.get( + name = cluster_type_name, + slug = cluster_type_slug, + ) + except Exception as error: print(f"[ERROR] Trying to get existing cluster_type.\n > {error}") + print(f"\n\n\ncluster_type_proxbox: {cluster_type_proxbox}\n\n\n") # If no 'cluster_type' found, create one if cluster_type_proxbox == None: - try: cluster_type = nb.virtualization.cluster_types.create( name = cluster_type_name, slug = cluster_type_slug, - description = 'Proxmox Virtual Environment. Open-source server management platform' + description = 'Proxmox Virtual Environment. Open-source server management platform', + ) except Exception as request_error: - raise RuntimeError(f"Error creating the '{cluster_type_name}' cluster type.") from request_error + raise RuntimeError(f"Error creating the '{cluster_type_name}' cluster type.\n > {request_error}") from request_error - else: - cluster_type = cluster_type_proxbox + + cluster_type = cluster_type_proxbox return cluster_type @@ -54,7 +58,10 @@ async def cluster_type(): # # virtualization.clusters # -async def cluster(): +async def cluster( + cluster_type_obj: str | None = Depends(cluster_type, use_cache=False), + tag_obj = Annotated[any, Depends(extras.tag, use_cache=False)], + ): # # Cluster # @@ -66,10 +73,9 @@ async def cluster(): # Name equal to Proxmox's Cluster name # Cluster type equal to 'proxmox' try: - cluster_type_slug = await cluster_type() cluster_proxbox = nb.virtualization.clusters.get( name = proxmox_cluster_name, - type = cluster_type_slug.slug + type = cluster_type_obj.slug ) except ValueError as error: logging.error(f"[ERROR] More than one cluster is created with the name '{proxmox_cluster_name}', making proxbox to abort update.\n > {error}") @@ -86,8 +92,7 @@ async def cluster(): try: # Check if Proxbox tag exist. if cluster_proxbox != None: - tag = await extras.tag() - search_tag = cluster_proxbox.tags.index(tag) + search_tag = cluster_proxbox.tags.index(tag_obj) except ValueError as error: logging.warning(f"[WARNING] Cluster with the same name as {nb_cluster_name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") cluster_proxbox = False @@ -109,20 +114,20 @@ async def cluster(): return search_device except Exception as error: - logging.error(f"[ERROR] {error}") + logging.error(f"[ERROR] TESTE {error}") else: return cluster_proxbox try: # Create the cluster with only name and cluster_type - cluster_type_id = await cluster_type() - tags_id = await extras.tag() + #cluster_type_id = await cluster_type() + #tags_id = await extras.tag() cluster = nb.virtualization.clusters.create( name = proxmox_cluster_name, - type = cluster_type_id.id, - tags = [tags_id.id] + type = cluster_type.id, + tags = [tag.id] ) return cluster except: diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index a3cd4a3..1bfa8e4 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -20,6 +20,7 @@ from .create import extras import logging +import json # Call all functions to update Virtual Machine async def vm_full_update(netbox_vm, proxmox_vm): @@ -431,9 +432,11 @@ async def create_node(): return json_node - +''' # Makes everything needed so that VIRTUAL MACHINES / CONTAINERS, NODES and CLUSTER exists on Netbox -async def all(**kwargs): +async def all(websocket, **kwargs): + + await websocket.send_text("teste websocket") print("[Proxbox - Netbox plugin | Update All]") cluster_all = proxmox.cluster.status.get() @@ -459,7 +462,7 @@ async def all(**kwargs): # Get all NODES from Proxmox for px_node_each in proxmox_nodes: node_updated = await nodes(proxmox_json = px_node_each, proxmox_cluster = proxmox_cluster) - + await websocket.send_json(node_updated) nodes_list.append(node_updated) @@ -473,7 +476,7 @@ async def all(**kwargs): # Get all VM/CTs from Proxmox for px_vm_each in proxmox.cluster.resources.get(type='vm'): vm_updated = await virtual_machine(proxmox_json = px_vm_each) - + await websocket.send_json(vm_updated) virtualmachines_list.append(vm_updated) # Get "remove_unused" passed on function call @@ -494,7 +497,7 @@ async def all(**kwargs): result["remove_unused"] = remove_info return result - +''' # Runs if script executed directly if __name__ == "__main__": diff --git a/netbox_proxbox/proxbox_api/virtual_machine.py b/netbox_proxbox/proxbox_api/virtual_machine.py new file mode 100644 index 0000000..bde7233 --- /dev/null +++ b/netbox_proxbox/proxbox_api/virtual_machine.py @@ -0,0 +1,543 @@ +# PLUGIN_CONFIG variables +from .plugins_config import ( + NETBOX_SESSION as nb, + PROXMOX_SESSION as proxmox, + NETBOX_VM_ROLE_ID, + +) + +from .create import ( + extras, +) + +from .create.virtualization import ( + cluster +) + +import logging + +# +# UPDATE +# +import requests +import json +import re + + +from proxmoxer.core import ResourceException + +from typing import Annotated +from fastapi import Depends, FastAPI +# +# CREATE +# +# +# virtualization.virtual_machines +# +# async def virtual_machine(proxmox_vm, duplicate): +class VirtualMachine: + async def create( + proxmox_vm, + duplicate, + cluster: Annotated[any, Depends(cluster)], + role_id: Annotated[any, Depends(extras.role)], + tags_id: Annotated[any, Depends(extras.tag)] + ): + cluster_obj = cluster + + # Create json with basic VM/CT information + vm_json = {} + netbox_obj = None + + if proxmox_vm['status'] == 'running': + vm_json["status"] = 'active' + elif proxmox_vm == 'stopped': + vm_json["status"] = 'offline' + + if duplicate: + logging.warning("[WARNING] VM/CT is duplicated") + vm_json["name"] = f"{proxmox_vm['name']} (2)" + else: + vm_json["name"] = proxmox_vm['name'] + + cluster_obj = await cluster() + vm_json["status"] = 'active' + vm_json["cluster"] = cluster_obj.id + + vm_json["role"] = role_id.id + + vm_json["tags"] = [tags_id.id] + + # Create VM/CT with json 'vm_json' + try: + netbox_obj = nb.virtualization.virtual_machines.create(vm_json) + return netbox_obj + + except: + logging.error("[proxbox.create.virtual_machine] Creation of VM/CT failed.") + netbox_obj = None + + + return netbox_obj + + + # Update "status" field on Netbox Virtual Machine based on Proxmox information + async def status(netbox_vm, proxmox_vm): + # False = status not changed on Netbox + # True = status changed on Netbox + status_updated = False + + # [ running, stopped ] + proxmox_status = proxmox_vm['status'] + + # [ offline, active, planned, staged, failed, decommissioning ] + netbox_status = netbox_vm.status.value + + if (proxmox_status == 'running' and netbox_status == 'active') or (proxmox_status == 'stopped' and netbox_status == 'offline'): + # Status not updated + status_updated = False + + # Change status to active on Netbox if it's offline + elif proxmox_status == 'stopped' and netbox_status == 'active': + netbox_vm.status.value = 'offline' + netbox_vm.save() + + # Status updated + status_updated = True + + # Change status to offline on Netbox if it's active + elif proxmox_status == 'running' and netbox_status == 'offline': + netbox_vm.status.value = 'active' + netbox_vm.save() + + # Status updated + status_updated = True + + # Status not expected + else: + # Status doesn't need to change + status_updated = False + + return status_updated + + + + async def site(**kwargs): + # If site_id equals to 0, consider it is not configured by user and must be created by Proxbox + site_id = kwargs.get('site_id', 0) + + + # Function that modifies 'custom_field' of Netbox Virtual Machine. + # It uses HTTP Request and not Pynetbox (as I was not able to). + async def http_update_custom_fields(**kwargs): + # Saves kwargs variables + domain_with_http = kwargs.get('domain_with_http') + token = kwargs.get('token') + vm_id = kwargs.get('vm_id', 0) + vm_name = kwargs.get('vm_name') + vm_cluster = kwargs.get('vm_cluster') + custom_fields = kwargs.get('custom_fields') + + # + # HTTP PATCH Request (partially update) + # + # URL + url = '{}/api/virtualization/virtual-machines/{}/'.format(domain_with_http, vm_id) + + # HTTP Request Headers + headers = { + "Authorization": "Token {}".format(token), + "Content-Type" : "application/json" + } + + # HTTP Request Body + body = { + "name": vm_name, + "cluster": vm_cluster, + "custom_fields": custom_fields + } + + # Makes the request and saves it to var + r = requests.patch(url, data = json.dumps(body), headers = headers) + + # Return HTTP Status Code + return r.status_code + + + + # Update 'custom_fields' field on Netbox Virtual Machine based on Proxbox + async def custom_fields(netbox_vm, proxmox_vm): + # Create the new 'custom_field' with info from Proxmox + custom_fields_update = {} + + # Check if there is 'custom_field' configured on Netbox + if len(netbox_vm.custom_fields) == 0: + logging.error("[ERROR] There's no 'Custom Fields' registered by the Netbox Plugin user") + + # If any 'custom_field' configured, get it and update, if necessary. + elif len(netbox_vm.custom_fields) > 0: + + # Get current configured custom_fields + custom_fields_names = list(netbox_vm.custom_fields.keys()) + + # + # VERIFY IF CUSTOM_FIELDS EXISTS AND THEN UPDATE INFORMATION, IF NECESSARY. + # + # Custom Field 'proxmox_id' + if 'proxmox_id' in custom_fields_names: + if netbox_vm.custom_fields.get("proxmox_id") != proxmox_vm['vmid']: + custom_fields_update["proxmox_id"] = proxmox_vm['vmid'] + else: + logging.error("[ERROR] 'proxmox_id' custom field not registered yet or configured incorrectly]") + + # Custom Field 'proxmox_node' + if 'proxmox_node' in custom_fields_names: + if netbox_vm.custom_fields.get("proxmox_node") != proxmox_vm['node']: + custom_fields_update["proxmox_node"] = proxmox_vm['node'] + else: + logging.error("[ERROR] 'proxmox_node' custom field not registered yet or configured incorrectly") + + # Custom Field 'proxmox_type' + if 'proxmox_type' in custom_fields_names: + if netbox_vm.custom_fields.get("proxmox_type") != proxmox_vm['type']: + custom_fields_update["proxmox_type"] = proxmox_vm['type'] + else: + logging.error("[ERROR] 'proxmox_type' custom field not registered yet or configured incorrectly") + + + + # Only updates information if changes found + if len(custom_fields_update) > 0: + + # As pynetbox does not have a way to update custom_fields, use API HTTP request + custom_field_updated = http_update_custom_fields( + domain_with_http = NETBOX, + token = NETBOX_TOKEN, + vm_id = netbox_vm.id, + vm_name = netbox_vm.name, + vm_cluster = netbox_vm.cluster.id, + custom_fields = custom_fields_update + ) + + # Verify HTTP reply CODE + if custom_field_updated != 200: + logging.error("[ERROR] Some error occured trying to update 'custom_fields' through HTTP Request. HTTP Code: {}. -> {}".format(custom_field_updated, netbox_vm.name)) + return False + + else: + # If none error occured, considers VM updated. + return True + + return False + + + + + + # Update 'local_context_data' field on Netbox Virtual Machine based on Proxbox + async def local_context_data(netbox_vm, proxmox_vm): + current_local_context = netbox_vm.local_context_data + + proxmox_values = {} + + # Add and change values from Proxmox + proxmox_values["name"] = proxmox_vm["name"] + proxmox_values["url"] = "https://{}:{}".format(PROXMOX, PROXMOX_PORT) # URL + proxmox_values["id"] = proxmox_vm["vmid"] # VM ID + proxmox_values["node"] = proxmox_vm["node"] + proxmox_values["type"] = proxmox_vm["type"] + + maxmem = int(int(proxmox_vm["maxmem"]) / 1000000000) # Convert bytes to gigabytes + proxmox_values["memory"] = "{} {}".format(maxmem, 'GB') # Add the 'GB' unit of measurement + + maxdisk = int(int(proxmox_vm["maxdisk"]) / 1000000000) # Convert bytes to gigabytes + proxmox_values["disk"] = "{} {}".format(maxdisk, 'GB') # Add the 'GB' unit of measurement + + proxmox_values["vcpu"] = proxmox_vm["maxcpu"] # Add the 'GB' unit of measurement + + + # Verify if 'local_context' is empty and if true, creates initial values. + if current_local_context == None: + netbox_vm.local_context_data = {"proxmox" : proxmox_values} + netbox_vm.save() + return True + + # Compare current Netbox values with Porxmox values + elif current_local_context.get('proxmox') != proxmox_values: + # Update 'proxmox' key on 'local_context_data' + current_local_context.update(proxmox = proxmox_values) + + netbox_vm.local_context_data = current_local_context + netbox_vm.save() + return True + + # If 'local_context_data' already updated + else: + return False + + return False + + + + + + + + # Updates following fields based on Proxmox: "vcpus", "memory", "disk", if necessary. + async def resources(netbox_vm, proxmox_vm): + # Save values from Proxmox + vcpus = float(proxmox_vm["maxcpu"]) + + # Convert bytes to megabytes and then convert float to integer + memory_Mb = proxmox_vm["maxmem"] + memory_Mb = int(memory_Mb / 1000000) + + # Convert bytes to gigabytes and then convert float to integer + disk_Gb = proxmox_vm["maxdisk"] + disk_Gb = int(disk_Gb / 1000000000) + + # JSON with new resources info + new_resources_json = {} + + + + # Compare VCPU + if netbox_vm.vcpus != None: + # Convert Netbox VCPUs to float, since it is coming as string from Netbox + netbox_vm.vcpus = float(netbox_vm.vcpus) + + if netbox_vm.vcpus != vcpus: + new_resources_json["vcpus"] = vcpus + + elif netbox_vm.vcpus == None: + new_resources_json["vcpus"] = vcpus + + + + # Compare Memory + if netbox_vm.memory != None: + if netbox_vm.memory != memory_Mb: + new_resources_json["memory"] = memory_Mb + + elif netbox_vm.memory == None: + new_resources_json["memory"] = memory_Mb + + + + # Compare Disk + if netbox_vm.disk != None: + if netbox_vm.disk != disk_Gb: + new_resources_json["disk"] = disk_Gb + + elif netbox_vm.disk == None: + new_resources_json["disk"] = disk_Gb + + + + # If new information found, save it to Netbox object. + if len(new_resources_json) > 0: + resources_updated = netbox_vm.update(new_resources_json) + + if resources_updated == True: + return True + else: + return False + + async def interfaces(netbox_vm, proxmox_vm): + updated = False + try: + if proxmox_vm['type'] == 'qemu': + vm_config = proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get() + elif proxmox_vm['type'] == 'lxc': + vm_config = proxmox.nodes(proxmox_vm['node']).lxc(proxmox_vm['vmid']).config.get() + else: + logging.error('[ERROR] Unknown or unmanaged proxmox_vm_type') + except Exception as error: + logging.error(f"[ERROR] Unknown or unmanaged proxmox_vm_type\n > {error}") + return + + _pmx_if = [] + _ntb_if = [] + for interface in [{key:val} for key,val in vm_config.items() if re.search('^net*', key) is not None]: + for ifname in interface: + _mac_addr = '' + _mtu = 1500 + _vlan = None + _bridge = None + for _conf_str in interface[ifname].split(','): + _k_s =_conf_str.split('=') + if re.match("[0-9a-f]{2}([-:]?)[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", _k_s[1].lower()): + _mac_addr =_k_s[1].upper() + elif _k_s[0] == 'bridge': + _bridge = _k_s[1].lower() + elif _k_s[0] == 'mtu': + if int(_k_s[1]) == 1: + if _bridge is not None: + node = nb.dcim.devices.get(name=proxmox_vm['node']) + brg = nb.dcim.interfaces.get(device_id=node.id, name=_bridge) + _mtu = brg.mtu + else: + _mtu = int(_k_s[1]) + elif _k_s[0] == 'tag': + _vlan = int(_k_s[1]) + _pmx_if.append({'name': ifname, 'mac_address': _mac_addr, 'mtu': _mtu}) + + for interface in nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id): + _ntb_if.append({'name': interface.name, 'mac_address': interface.mac_address.upper(), 'mtu': interface.mtu}) + + for pmx_if_mac in [_if['mac_address'] for _if in _pmx_if]: + pmx_if = next((_if for _if in _pmx_if if _if['mac_address'] == pmx_if_mac), None) + if pmx_if is not None: + if pmx_if_mac not in [_if['mac_address'] for _if in _ntb_if]: + try: + if nb.virtualization.interfaces.get(virtual_machine_id=netbox_vm.id, virtual_machine=netbox_vm.name, name=pmx_if['name']): + logging.warning("[WARNING] Interface already exist.") + else: + # Create interface if does not exist. + netbox_interface = nb.virtualization.interfaces.create(virtual_machine_id=netbox_vm.id, virtual_machine=netbox_vm.id, name=pmx_if['name'], mac_address=pmx_if_mac, mtu=pmx_if['mtu']) + updated = True + except Exception as error: print(error) + else: + if pmx_if not in _ntb_if: + netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, virtual_machine=netbox_vm.id, mac_address=pmx_if_mac)) + if len(netbox_interface) == 1: + netbox_interface = netbox_interface[0] + netbox_interface = nb.virtualization.interfaces.update([{'id': netbox_interface.id, 'name': pmx_if['name'], 'mac_address': pmx_if_mac, 'mtu': pmx_if['mtu']}]) + updated = True + elif len(netbox_interface) > 1: + logging.error('[ERROR] Too many results') + return False + else: + logging.error('[ERROR] Something went wrong while getting interface config from proxmox') + return False + + for ntb_if_mac in [_if['mac_address'] for _if in _ntb_if]: + if ntb_if_mac not in [_if['mac_address'] for _if in _pmx_if]: + netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=ntb_if_mac)) + if len(netbox_interface): + if len(netbox_interface) == 1: + netbox_interface = netbox_interface[0] + netbox_interface.delete() + updated = True + elif len(netbox_interface) > 1: + logging.error('[ERROR] Too many results') + return False + else: + logging.error('[ERROR] Something went wrong while getting interface config from netbox') + return False + return updated + + async def interfaces_ips(netbox_vm, proxmox_vm): + updated = False + if proxmox_vm['status'] == 'running': + _pmx_ips = [] + _ntb_ips = [] + if proxmox_vm['type'] == 'qemu': + agent = proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).config.get().get("agent") + + if agent: + try: + for interface in proxmox.nodes(proxmox_vm['node']).qemu(proxmox_vm['vmid']).agent.get('network-get-interfaces')['result']: + + if interface['name'].lower() != 'lo': + _mac = interface.get("hardware-address") + + if _mac: + _mac = _mac.lower() + + _if = {_mac: []} + if 'ip-addresses' in interface: + for addr in interface['ip-addresses']: + _if[_mac].append('%(address)s/%(netmask)s'.lower() % {'address': addr['ip-address'],'netmask': addr['prefix']}) + _pmx_ips.append(_if) + + for interface in nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id): + _mac = interface['mac_address'].lower() + _if = {_mac: []} + for ip in nb.ipam.ip_addresses.filter(virtual_machine_id=netbox_vm.id): + if ip.assigned_object_id == interface.id: + _if[_mac].append(ip.address.lower()) + _ntb_ips.append(_if) + except ResourceException as e: + logging.error('[ERROR]' + str(e)) + return False + elif proxmox_vm['type'] == 'lxc': + vm_config = proxmox.nodes(proxmox_vm['node']).lxc(proxmox_vm['vmid']).config.get() + for interface in [{key:val} for key,val in vm_config.items() if re.search('^net*', key) is not None]: + for ifname in interface: + _mac_addr = '' + proxmox_ipaddr = [] + for _conf_str in interface[ifname].split(','): + _k_s =_conf_str.split('=') + if re.match("[0-9a-f]{2}([-:]?)[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", _k_s[1].lower()): + _mac_addr =_k_s[1].lower() + elif _k_s[0] == 'ip': + if _k_s[1] != 'dhcp': + proxmox_ipaddr.append(_k_s[1]) + elif _k_s[0] == 'ip6': + if _k_s[1] != 'auto' and _k_s[1] != 'dhcp': + proxmox_ipaddr.append(_k_s[1]) + _pmx_ips.append({_mac_addr: proxmox_ipaddr}) + + for interface in nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id): + _mac = interface['mac_address'].lower() + _if = {_mac: []} + for ip in nb.ipam.ip_addresses.filter(virtual_machine_id=netbox_vm.id): + if ip.assigned_object_id == interface.id: + _if[_mac].append(ip.address.lower()) + _ntb_ips.append(_if) + + for pmx_mac in [list(x)[0] for x in _pmx_ips]: + if pmx_mac not in [list(y)[0] for y in _ntb_ips]: + logging.error('[ERROR] interface with mac_address %(pmx_mac)s from %(vm_name)s qemu-guest-agent is not defined in netbox' % {'pmx_mac': pmx_mac, 'vm_name': proxmox_vm['name']}) + else: + ntb_ips = next((_ips[pmx_mac] for _ips in _ntb_ips if list(_ips)[0] == pmx_mac), None) + pmx_ips = next((_ips[pmx_mac] for _ips in _pmx_ips if list(_ips)[0] == pmx_mac), None) + for pmx_ip in pmx_ips: + if pmx_ip not in ntb_ips: + try: + netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=pmx_ip)) + + netbox_interface = list(nb.virtualization.interfaces.filter(virtual_machine_id=netbox_vm.id, mac_address=pmx_mac)) + if len(netbox_interface): + if len(netbox_interface) == 1: + netbox_interface = netbox_interface[0] + elif len(netbox_interface) > 1: + netbox_interface = None + logging.error('[ERROR] Too many results') + else: + netbox_interface = None + logging.error('[ERROR] Something went wrong while getting interface object from netbox') + if netbox_interface is not None: + if len(netbox_ipaddr): + if len(netbox_ipaddr) == 1: + netbox_ipaddr = netbox_ipaddr[0] + if netbox_ipaddr.assigned_object_id != netbox_interface.id: + netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) + updated = True + elif len(netbox_ipaddr) > 1: + logging.error('[ERROR] Too many results') + else: + netbox_ipaddr = nb.ipam.ip_addresses.create(address=pmx_ip) + netbox_ipaddr = nb.ipam.ip_addresses.update([{'id': netbox_ipaddr.id, 'assigned_object_id': netbox_interface.id, 'assigned_object_type': 'virtualization.vminterface'}]) + updated = True + + except Exception as error: logging.error(error) + + + for ntb_ip in ntb_ips: + if ntb_ip not in pmx_ips: + netbox_ipaddr = list(nb.ipam.ip_addresses.filter(address=ntb_ip)) + if len(netbox_ipaddr): + if len(netbox_ipaddr) == 1: + netbox_ipaddr[0].delete() + updated = True + elif len(netbox_ipaddr) > 1: + logging.error('[ERROR] Too many results') + else: + logging.error('[ERROR] Something went wrong while getting ip object from netbox') + return updated + + # + # REMOVE + # diff --git a/netbox_proxbox/templates/websocket.html b/netbox_proxbox/templates/websocket.html index ed2f586..7cf537d 100644 --- a/netbox_proxbox/templates/websocket.html +++ b/netbox_proxbox/templates/websocket.html @@ -1,7 +1,7 @@ - Chat + Chat Websocket

WebSocket Chat (ws://localhost:{{ fastapi_port }}/ws)

diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index 023a4c2..3f93ff9 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -30,39 +30,6 @@ from . import deploy_uvicorn -''' -# Deploy FastAPI with uvicorn instance -try: - import subprocess - - # Import config - fastapi_host = proxbox_api.plugins_config.FASTAPI_HOST - fastapi_port = proxbox_api.plugins_config.FASTAPI_PORT - - # Check if there's already a process running with the same port - output = str(subprocess.run(["sudo", "netstat", "-tuln"], capture_output=True).stdout) - if f"{fastapi_port}" in output: - raise Exception(f"Port '{fastapi_port}' is already being used.\nUnable to spawn uvicorn process, you'll have to change the port or kill the proccess running.\nTo do this, change 'PLUGINS_CONFIG' variable in 'configuration.py' Netbox") - - uvicorn_spawn = None - # Check if Netbox is running in development mode - psaux = str(subprocess.run(["sudo", "ps", "aux"], capture_output=True).stdout) - if "manage.py runserver" in psaux: - if ":8000" in psaux: - # Spawn uvicorn process with '--reload' option - print("Django Development (manage.py runserver) process was found, running uvicorn with '--reload' parameter.") - uvicorn_spawn = ["uvicorn", "netbox-proxbox.netbox_proxbox.main:app", "--host", str(fastapi_host), "--port", str(fastapi_port), "--reload"] - else: - # Spawn uvicorn process - print("Only Django production process was found. Running uvicorn without '--reload' parameter.") - uvicorn_spawn = ["uvicorn", "netbox-proxbox.netbox_proxbox.main:app", "--host", str(fastapi_host), "--port", str(fastapi_port)] - subprocess.Popen(uvicorn_spawn) - -except Exception as error: - log_message = f"[ERROR] {error}" - logging.error(log_message) - raise Exception(log_message) -''' class HomeView(View): """Homepage""" @@ -86,42 +53,6 @@ def get(self, request): } ) -''' -def table_data(): - json_result = proxbox_api.update.all(remove_unused = True) - - vm_table = [] - for row in json_result.get("virtualmachines"): - json = { - "name": row["name"], - "status": row["changes"]["status"], - "custom_fields": row["changes"]["custom_fields"], - "local_context": row["changes"]["local_context"], - "resources": row["changes"]["resources"], - "tag": row["changes"]["tag"], - "interfaces": row["changes"]["interfaces"], - "ips": row["changes"]["ips"], - } - vm_table.append(json) - - virtualmachines_table = VMUpdateResult(vm_table) - - node_table = [] - for row in json_result.get("nodes"): - json = { - "status": row["changes"]["status"], - "cluster": row["changes"]["cluster"], - "interfaces": row["changes"]["interfaces"], - "result": row["result"] - } - node_table.append(json) - - nodes_table = NodeUpdateResult(node_table) - - - return [virtualmachines_table, nodes_table] -''' - class ProxmoxFullUpdate(PermissionRequiredMixin, View): """Full Update of Proxmox information on Netbox.""" @@ -134,9 +65,11 @@ class ProxmoxFullUpdate(PermissionRequiredMixin, View): def get(self, request): """Get request.""" + + from .deploy_uvicorn import fastapi_port json_result = None try: - json_result = requests.get(f'http://localhost:{fastapi_port}/full_update').json() + json_result = requests.get(f'http://localhost:{fastapi_port}/').json() except Exception as error: print(error) return render( diff --git a/psaux.txt b/psaux.txt new file mode 100644 index 0000000..48639dc --- /dev/null +++ b/psaux.txt @@ -0,0 +1,76 @@ +USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND +root 1 0.0 0.1 170104 10988 ? Ss 14:28 0:00 /sbin/init +root 53 0.0 0.6 100720 52408 ? Ss 14:29 0:00 /lib/systemd/systemd-journald +systemd+ 94 0.0 0.0 27264 7700 ? Ss 14:29 0:00 /lib/systemd/systemd-networkd +systemd+ 104 0.0 0.1 24472 11856 ? Ss 14:29 0:00 /lib/systemd/systemd-resolved +root 106 0.0 0.0 232600 7048 ? Ssl 14:29 0:00 /usr/lib/accountsservice/accounts-daemon +avahi 108 0.0 0.0 8532 4044 ? Ss 14:29 0:01 avahi-daemon: running [netbox-proxbox-dev.local] +root 110 0.0 0.0 3820 2456 ? Ss 14:29 0:00 /usr/sbin/cron -f +message+ 111 0.0 0.0 7780 4740 ? Ss 14:29 0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only +root 112 0.0 0.2 256052 18256 ? Ssl 14:29 0:00 /usr/sbin/NetworkManager --no-daemon +root 116 0.0 0.0 234056 8296 ? Ssl 14:29 0:00 /usr/lib/policykit-1/polkitd --no-debug +syslog 118 0.0 0.0 154708 4128 ? Ssl 14:29 0:00 /usr/sbin/rsyslogd -n -iNONE +root 120 0.0 0.0 230000 5568 ? Ssl 14:29 0:00 /usr/libexec/switcheroo-control +root 122 0.0 0.0 17348 7520 ? Ss 14:29 0:00 /lib/systemd/systemd-logind +root 124 0.0 0.0 13688 4960 ? Ss 14:29 0:00 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant +avahi 127 0.0 0.0 8340 320 ? S 14:29 0:00 avahi-daemon: chroot helper +root 143 0.0 0.1 241368 10884 ? Ssl 14:29 0:00 /usr/sbin/ModemManager +root 157 0.0 0.0 2632 1824 pts/7 Ss+ 14:29 0:00 /sbin/agetty -o -p -- \u --noclear --keep-baud console 115200,38400,9600 linux +root 158 0.0 0.0 2632 1832 pts/0 Ss+ 14:29 0:00 /sbin/agetty -o -p -- \u --noclear --keep-baud tty1 115200,38400,9600 linux +root 159 0.0 0.0 2632 1824 pts/1 Ss+ 14:29 0:00 /sbin/agetty -o -p -- \u --noclear --keep-baud tty2 115200,38400,9600 linux +root 167 0.0 0.0 12180 6836 ? Ss 14:29 0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups +redis 172 0.0 0.0 47220 5004 ? Ssl 14:29 0:02 /usr/bin/redis-server 127.0.0.1:6379 +netbox 174 0.0 0.2 27716 22804 ? Ss 14:29 0:00 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi +root 242 0.0 0.0 51208 1556 ? Ss 14:29 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; +www-data 243 0.0 0.0 51764 5248 ? S 14:29 0:00 nginx: worker process +www-data 244 0.0 0.0 51764 5248 ? S 14:29 0:00 nginx: worker process +www-data 245 0.0 0.0 51764 5248 ? S 14:29 0:00 nginx: worker process +www-data 246 0.0 0.0 51764 5248 ? S 14:29 0:00 nginx: worker process +www-data 247 0.0 0.0 51764 5248 ? S 14:29 0:00 nginx: worker process +www-data 248 0.0 0.0 51764 5248 ? S 14:29 0:00 nginx: worker process +www-data 249 0.0 0.0 51764 5248 ? S 14:29 0:00 nginx: worker process +www-data 250 0.0 0.0 51764 5248 ? S 14:29 0:00 nginx: worker process +postgres 273 0.0 0.3 212704 28752 ? Ss 14:29 0:00 /usr/lib/postgresql/12/bin/postgres -D /var/lib/postgresql/12/main -c config_file=/etc/postgresql/12/main/postgresql.conf +root 360 0.0 0.0 38068 4624 ? Ss 14:29 0:00 /usr/lib/postfix/sbin/master -w +postfix 362 0.0 0.0 38384 6084 ? S 14:29 0:00 qmgr -l -t unix -u +postgres 364 0.0 0.0 212828 7900 ? Ss 14:29 0:00 postgres: 12/main: checkpointer +postgres 365 0.0 0.0 212704 5868 ? Ss 14:29 0:00 postgres: 12/main: background writer +postgres 366 0.0 0.1 212704 10052 ? Ss 14:29 0:00 postgres: 12/main: walwriter +postgres 367 0.0 0.0 213376 8392 ? Ss 14:29 0:00 postgres: 12/main: autovacuum launcher +postgres 368 0.0 0.0 67468 5480 ? Ss 14:29 0:00 postgres: 12/main: stats collector +postgres 369 0.0 0.0 213132 6672 ? Ss 14:29 0:00 postgres: 12/main: logical replication launcher +netbox 379 0.0 1.1 129124 96860 ? S 14:29 0:01 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi +netbox 380 0.0 1.1 129128 96876 ? S 14:29 0:01 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi +netbox 381 0.0 1.1 129128 96916 ? S 14:29 0:01 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi +netbox 382 0.0 1.1 129132 96924 ? S 14:29 0:01 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi +netbox 383 0.0 1.1 129132 96936 ? S 14:29 0:01 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi +postfix 404 0.0 0.0 38136 5868 ? S 14:29 0:00 local -t unix +postfix 405 0.0 0.0 38136 5860 ? S 14:29 0:00 local -t unix +root 408 0.0 0.0 233908 7932 ? Ssl 14:29 0:00 /usr/sbin/gdm3 +root 443 0.0 0.1 13948 9020 ? Ss 14:29 0:01 sshd: root@notty +root 446 0.0 0.1 18836 9292 ? Ss 14:30 0:00 /lib/systemd/systemd --user +root 447 0.0 0.0 171512 3992 ? S 14:30 0:00 (sd-pam) +root 471 0.0 0.0 4028 3280 ? Ss 14:30 0:00 bash +root 516 0.0 0.0 2608 532 ? S 14:30 0:00 sh /root/.vscode-server/bin/b7886d7461186a5eac768481578c1d7ca80e2d21/bin/code-server --start-server --host=127.0.0.1 --accept-server-license-terms --enable-remote-auto-shutdown --port=0 --telemetry-level all --connection-token-file /root/.vscode-server/.b7886d7461186a5eac768481578c1d7ca80e2d21.token +root 526 0.0 1.0 950652 91376 ? Sl 14:30 0:07 /root/.vscode-server/bin/b7886d7461186a5eac768481578c1d7ca80e2d21/node /root/.vscode-server/bin/b7886d7461186a5eac768481578c1d7ca80e2d21/out/server-main.js --start-server --host=127.0.0.1 --accept-server-license-terms --enable-remote-auto-shutdown --port=0 --telemetry-level all --connection-token-file /root/.vscode-server/.b7886d7461186a5eac768481578c1d7ca80e2d21.token +root 767 0.0 0.7 689280 59920 ? Sl 14:30 0:04 /root/.vscode-server/bin/b7886d7461186a5eac768481578c1d7ca80e2d21/node /root/.vscode-server/bin/b7886d7461186a5eac768481578c1d7ca80e2d21/out/bootstrap-fork --type=ptyHost --logsPath /root/.vscode-server/data/logs/20230406T143003 +root 793 0.0 3.4 1142872 292048 ? Sl 14:30 1:44 /root/.vscode-server/bin/b7886d7461186a5eac768481578c1d7ca80e2d21/node /root/.vscode-server/bin/b7886d7461186a5eac768481578c1d7ca80e2d21/out/bootstrap-fork --type=extensionHost --transformURIs --useHostProxy=false +root 837 0.0 0.0 4464 3992 pts/6 Ss 14:30 0:00 /bin/bash --init-file /root/.vscode-server/bin/b7886d7461186a5eac768481578c1d7ca80e2d21/out/vs/workbench/contrib/terminal/browser/media/shellIntegration-bash.sh +root 1037 0.0 0.2 162984 23196 pts/6 Sl 14:30 0:00 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/uvicorn netbox-proxbox.netbox_proxbox.main:app --host 0.0.0.0 --port 8021 --reload +root 1038 0.0 0.1 14176 11076 pts/6 S 14:30 0:00 /opt/netbox/venv/bin/python3 -c from multiprocessing.resource_tracker import main;main(4) +root 1130 0.0 1.3 11438788 111804 ? Sl 14:31 0:01 /root/.vscode-server/bin/b7886d7461186a5eac768481578c1d7ca80e2d21/node /root/.vscode-server/extensions/visualstudioexptteam.intellicode-api-usage-examples-0.2.7/dist/server/server.js --node-ipc --clientProcessId=793 +root 1152 0.0 0.3 182108 30408 ? Sl 14:31 0:01 /opt/netbox/venv/bin/python3 /root/.vscode-server/extensions/ms-python.isort-2022.8.0/bundled/tool/server.py +root 1155 0.0 0.5 126216 47352 ? Sl 14:31 0:03 /opt/netbox/venv/bin/python3 /root/.vscode-server/extensions/ms-python.flake8-2023.4.0/bundled/tool/lsp_server.py +root 1156 0.0 1.4 270304 117640 ? Sl 14:31 0:08 /opt/netbox/venv/bin/python3 /root/.vscode-server/extensions/ms-python.pylint-2023.4.0/bundled/tool/lsp_server.py +root 1180 0.0 11.2 1695856 944820 ? Rl 14:31 33:32 /root/.vscode-server/bin/b7886d7461186a5eac768481578c1d7ca80e2d21/node /root/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.10/dist/server.bundle.js --cancellationReceive=file:b5b68ba6f40e61e3f6efd160afc9cefc1be324405c --node-ipc --clientProcessId=793 +root 1190 0.0 0.0 4488 3868 pts/7 Ss 14:31 0:00 /bin/bash --init-file /root/.vscode-server/bin/b7886d7461186a5eac768481578c1d7ca80e2d21/out/vs/workbench/contrib/terminal/browser/media/shellIntegration-bash.sh +root 1661 0.0 1.3 835800 109432 ? Sl 14:32 0:29 /root/.vscode-server/bin/b7886d7461186a5eac768481578c1d7ca80e2d21/node /root/.vscode-server/bin/b7886d7461186a5eac768481578c1d7ca80e2d21/out/bootstrap-fork --type=fileWatcher +root 1950 0.0 0.7 90584 62328 pts/6 S 14:35 0:00 /opt/netbox/venv/bin/python3 -c from multiprocessing.spawn import spawn_main; spawn_main(tracker_fd=5, pipe_handle=10) --multiprocessing-fork +root 2323 0.0 1.1 127388 96728 pts/6 S+ 14:37 0:01 python3 manage.py runserver 0.0.0.0:8000 --insecure +postfix 4164 0.0 0.0 38332 6108 ? S 14:50 0:00 pickup -l -t unix -u -c +postfix 4739 0.0 0.0 38436 6164 ? S 14:56 0:00 cleanup -z -t unix -u -c +postfix 4741 0.0 0.0 38340 6196 ? S 14:56 0:00 trivial-rewrite -n rewrite -t unix -u -c +root 5025 0.0 0.0 2508 512 ? S 15:03 0:00 sleep 180 +root 5046 0.0 1.9 270400 165500 pts/6 Sl+ 15:04 0:06 /opt/netbox/venv/bin/python3 manage.py runserver 0.0.0.0:8000 --insecure +postgres 5092 0.0 0.2 214520 16920 ? Ss 15:04 0:00 postgres: 12/main: netbox netbox ::1(53604) idle +root 5143 0.0 0.0 5892 2832 pts/7 R+ 15:04 0:00 ps aux From 0fc786d351388c4925e69cb09dadfb61fb8bcf65 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Wed, 12 Apr 2023 13:35:13 +0000 Subject: [PATCH 101/313] check if fastapi host and port is configured and warn user about it --- netbox_proxbox/deploy_uvicorn.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/netbox_proxbox/deploy_uvicorn.py b/netbox_proxbox/deploy_uvicorn.py index 1470f70..c306397 100644 --- a/netbox_proxbox/deploy_uvicorn.py +++ b/netbox_proxbox/deploy_uvicorn.py @@ -100,4 +100,11 @@ def deploy(): result = deploy() fastapi_host = result.get("fastapi_host", None) -fastapi_port = result.get("fastapi_port", None) \ No newline at end of file +fastapi_port = result.get("fastapi_port", None) + +if fastapi_host == None and fastapi_port == None: + logging.error("[ERROR] FastAPI Host and FastAPI Port not configured by user at 'configuration.py'") +if fastapi_host == None: + logging.error("[ERROR] FastAPI Host not configured by user at 'configuration.py'") +if fastapi_error == None: + logging.error("[ERROR] FastAPI Port not configured by user at 'configuration.py'") From 991fe849e56daa69009a2e070ea9163d1c762dfb Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Wed, 12 Apr 2023 14:39:32 +0000 Subject: [PATCH 102/313] remove all() function --- netbox_proxbox/proxbox_api/update.py | 73 ++-------------------------- 1 file changed, 4 insertions(+), 69 deletions(-) diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 1bfa8e4..52935e1 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -375,7 +375,10 @@ async def create_node(): return json_node # Search netbox using VM name - netbox_search = nb.dcim.devices.get(name = proxmox_node_name) + try: + netbox_search = nb.dcim.devices.get(name = proxmox_node_name) + except Exception as error: + logging.error(f"[ERROR] Netbox returned more than one result for '{proxmox_node_name}'\n > {error}") # Search node on Netbox with Proxmox node name gotten if netbox_search == None: @@ -431,74 +434,6 @@ async def create_node(): return json_node - -''' -# Makes everything needed so that VIRTUAL MACHINES / CONTAINERS, NODES and CLUSTER exists on Netbox -async def all(websocket, **kwargs): - - await websocket.send_text("teste websocket") - print("[Proxbox - Netbox plugin | Update All]") - cluster_all = proxmox.cluster.status.get() - - # - # CLUSTER - # - cluster = await create.virtualization.cluster() - print('\n\n\nCLUSTER...') - - try: - logging.info(f'[OK] CLUSTER created. -> {cluster.name}') - except: - logging.info(f"[OK] Cluster created. -> {cluster}") - - proxmox_cluster = cluster_all[0] - # - # NODES - # - print('\n\n\nNODES...') - nodes_list = [] - proxmox_nodes = cluster_all[1:] - - # Get all NODES from Proxmox - for px_node_each in proxmox_nodes: - node_updated = await nodes(proxmox_json = px_node_each, proxmox_cluster = proxmox_cluster) - await websocket.send_json(node_updated) - nodes_list.append(node_updated) - - - # - # VIRTUAL MACHINES / CONTAINERS - # - print('\n\n\nVIRTUAL MACHINES...') - virtualmachines_list = [] - - print('\nUPDATE ALL...') - # Get all VM/CTs from Proxmox - for px_vm_each in proxmox.cluster.resources.get(type='vm'): - vm_updated = await virtual_machine(proxmox_json = px_vm_each) - await websocket.send_json(vm_updated) - virtualmachines_list.append(vm_updated) - - # Get "remove_unused" passed on function call - remove_unused = kwargs.get("remove_unused", False) - - # Remove Netbox's old data - if remove_unused == True: - print('\nREMOVE UNUSED DATA...') - remove_info = await remove.all() - else: - remove_info = False - # - # BUILD JSON RESULT - # - result = {} - result["virtualmachines"] = virtualmachines_list - result["nodes"] = nodes_list - result["remove_unused"] = remove_info - - return result -''' - # Runs if script executed directly if __name__ == "__main__": print('#\n# COMPARE PROXMOX WITH NETBOX\n#') From e86e32005ea63d13ab5e8487b09539dabcf8c123 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Tue, 18 Apr 2023 12:59:07 +0000 Subject: [PATCH 103/313] saves work --- .../{deploy_uvicorn.py => deploy_fastapi.py} | 118 ++++++++++++++---- netbox_proxbox/main.py | 10 +- .../proxbox_api/create/virtualization.py | 16 +-- netbox_proxbox/views.py | 6 +- 4 files changed, 110 insertions(+), 40 deletions(-) rename netbox_proxbox/{deploy_uvicorn.py => deploy_fastapi.py} (51%) diff --git a/netbox_proxbox/deploy_uvicorn.py b/netbox_proxbox/deploy_fastapi.py similarity index 51% rename from netbox_proxbox/deploy_uvicorn.py rename to netbox_proxbox/deploy_fastapi.py index c306397..b296298 100644 --- a/netbox_proxbox/deploy_uvicorn.py +++ b/netbox_proxbox/deploy_fastapi.py @@ -6,24 +6,91 @@ import logging +import subprocess +import sys + +def kill_proccess(**kwargs): + # Get vars from fucntion calll + name = kwargs.get("name", None) + psaux = kwargs.get("psaux", None) + + # Check if variable is filled + if psaux == None: + logging.error("[ERROR] Variable 'psaux' was not informed when calling 'kill_proccess' function") + return + if name == None: + logging.error("[ERROR] Variable 'name' was not informed when calling 'kill_proccess' function") + return + + # Split 'ps aux' output into list + psaux_array = psaux.split("\\n") + + # Find the PID and command used to deploy existing uvicorn + for line in psaux_array: + if line == None: + logging.error(f"[ERROR] ps aux line is empty\n > {line}") + + # Split words in line into list + line_array = line.split() + + command = None + pid_int = None + try: + if len(line_array) > 10: + if "[gunicorn]" in line_array[10] and "" in line_array[11]: + pid_int = line_array[1] + if "[uvicorn]" in line_array[10] and "" in line_array[11]: + pid_int = line_array[1] + + for line in line_array: + if name in line and app_type in line: + pid_int = line_array[1] + + if pid_int != None: + print(f"pid_int: {pid_int}") + print(f" > PID: '{pid_int}'\n > Command: {command}\n -> Proxbox will kill t he proccess using the following command: 'kill -9 {pid_int}'") + + try: + # Try kill proccess (and subprocess) + subprocess.run(["kill", "-9", str(pid_int)]) + + except Exception as error: + logging.error(f"[ERROR] Coudn't kill proccess.\n > {error}") + else: + logging.error(f"[ERROR] Not possible to get proccess name since the proccess line contains less than 10 words.\n > Proccess line: {line}") + + except Exception as error: + logging.error(f"[ERROR] Unable to kill existing proccess to use the specified port.\n > {error}") + pass + def deploy(): # Deploy FastAPI with uvicorn instance + import subprocess + + psaux = None + + try: + # Check if Netbox is running in development mode + psaux = str(subprocess.run(["sudo", "ps", "aux"], capture_output=True).stdout) + except Exception as error: + logging.error(f"[ERROR] Not able to get 'ps aux' output\n > {error}") + try: - import subprocess - # Import config fastapi_host = proxbox_api.plugins_config.FASTAPI_HOST fastapi_port = proxbox_api.plugins_config.FASTAPI_PORT # Gunicorn proccess - gunicorn_proccess = "gunicorn netbox-proxbox.netbox_proxbox.main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8030" + gunicorn_proccess = f"gunicorn netbox-proxbox.netbox_proxbox.main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind {fastapi_host}:{fastapi_port}" gunicorn_proccess = gunicorn_proccess.split() - gunicorn_proccess[7] = f"{fastapi_host}:{fastapi_port}" - + + # Uvicorn proccess (development mode) + uvicorn_proccess = f"uvicorn netbox-proxbox.netbox_proxbox.main:app --host {fastapi_host} --port {fastapi_port} --reload" + uvicorn_proccess = uvicorn_proccess.split() + uvicorn_spawn = None - # Check if Netbox is running in development mode - psaux = str(subprocess.run(["sudo", "ps", "aux"], capture_output=True).stdout) + worker_class = "uvicorn.workers.UvicornWorker" # Check Uvicorn is running @@ -31,21 +98,13 @@ def deploy(): log_message = "[OK] FastAPI (uvicorn) is already running." logging.info(log_message) - psaux = str(psaux) - psaux_array = psaux.split("\\n") - - # Find the PID and command used to deploy existing uvicorn - for line in psaux_array: - line_array = line.split() - try: - command = f"{line_array[10]} {line_array[11]} {line_array[12]} {line_array[13]} {line_array[14]} {line_array[15]} {line_array[16]}" - if "gunicron netbox-proxbox.netbox_proxbox.main" in command: - pid_int = line_array[1] - print(f" > PID: {pid_int}\n > Command: {command}\n -> Proxbox will kill t he proccess using the following command: 'kill $(pgrep -P {pid_int})' and 'kill -9 {pid_int}'") - subproccess.run(["kill", "$(pgrep", "-P", f"{pid_int})"]) - subproccess.run(["kill", "-9", {pid_int}]) - except Exception as error: - pass + if psaux != None: + # Try to kill existing proccess + kill_proccess( + app_type = "gunicorn", + name = "netbox-proxbox.netbox_proxbox.main", + psaux = str(psaux) + ) return { 'fastapi_host': fastapi_host, @@ -55,9 +114,17 @@ def deploy(): # Check if there's already a process running with the same port output = str(subprocess.run(["sudo", "netstat", "-tuln"], capture_output=True).stdout) if f":{fastapi_port}" in output: - log_message = f"[ERROR] Port '{fastapi_port}' is already being used.\n > Unable to spawn uvicorn process, you'll have to change the port or kill the proccess running.\nTo do this, change 'PLUGINS_CONFIG' variable in 'configuration.py' Netbox" + log_message = f"[ERROR] Port '{fastapi_port}' is already being used.\n > Unable to spawn uvicorn process, you'll have to change the port or kill the proccess running.\n > To do this, change 'PLUGINS_CONFIG' variable in 'configuration.py' Netbox" logging.error(log_message) + if psaux != None: + # Try to kill existing proccess + kill_proccess( + app_type = "uvicorn", + name = "netbox-proxbox.netbox_proxbox.main:app", + psaux = str(psaux), + ) + # Increment Port by one. fastapi_port = str(int(fastapi_port) + 1) @@ -78,7 +145,7 @@ def deploy(): if ":8000" in psaux: # Spawn uvicorn process with '--reload' option print("Django Development (manage.py runserver) process was found, running uvicorn with '--reload' parameter.") - uvicorn_spawn = gunicorn_proccess + uvicorn_spawn = uvicorn_proccess else: # Spawn uvicorn process print("Only Django production process was found. Running uvicorn without '--reload' parameter.") @@ -88,7 +155,6 @@ def deploy(): subprocess.Popen(uvicorn_spawn) except Exception as error: - log_message = f"[ERROR] {error}" logging.error(log_message) raise Exception(log_message) @@ -106,5 +172,5 @@ def deploy(): logging.error("[ERROR] FastAPI Host and FastAPI Port not configured by user at 'configuration.py'") if fastapi_host == None: logging.error("[ERROR] FastAPI Host not configured by user at 'configuration.py'") -if fastapi_error == None: +if fastapi_port == None: logging.error("[ERROR] FastAPI Port not configured by user at 'configuration.py'") diff --git a/netbox_proxbox/main.py b/netbox_proxbox/main.py index a1a4c05..71c38a5 100644 --- a/netbox_proxbox/main.py +++ b/netbox_proxbox/main.py @@ -9,7 +9,7 @@ from netbox_proxbox import proxbox_api # Import config -from .deploy_uvicorn import ( +from .deploy_fastapi import ( fastapi_host, fastapi_port, ) @@ -169,10 +169,12 @@ async def websocket_endpoint(websocket: WebSocket): # # CLUSTER # - print("pre-cluster...") + print("pre-cluster.....") cluster = requests.get(f'http://localhost:{fastapi_port}/cluster') - print('\n\n\nCLUSTER...') - print(f"cluster: {cluster}") + print(f"cluster_0: {cluster}") + return + print('\n\n\nCLUSTER.....') + print(f"cluster:: {cluster.text}") print(cluster) await websocket.send_text(cluster) diff --git a/netbox_proxbox/proxbox_api/create/virtualization.py b/netbox_proxbox/proxbox_api/create/virtualization.py index 6cebf75..96b4bdd 100755 --- a/netbox_proxbox/proxbox_api/create/virtualization.py +++ b/netbox_proxbox/proxbox_api/create/virtualization.py @@ -59,9 +59,10 @@ async def cluster_type(): # virtualization.clusters # async def cluster( - cluster_type_obj: str | None = Depends(cluster_type, use_cache=False), - tag_obj = Annotated[any, Depends(extras.tag, use_cache=False)], + cluster_type_obj: str | None = Depends(cluster_type, use_cache=False), + tag_obj: any = Depends(extras.tag), ): + print(f"tag_obj: {tag_obj}") # # Cluster # @@ -92,9 +93,10 @@ async def cluster( try: # Check if Proxbox tag exist. if cluster_proxbox != None: - search_tag = cluster_proxbox.tags.index(tag_obj) + print(f"cluster_proxbox: {cluster_proxbox}\n{type(cluster_proxbox)}") + search_tag = cluster_proxbox.tags.index(tag_obj.id) except ValueError as error: - logging.warning(f"[WARNING] Cluster with the same name as {nb_cluster_name} already exists.\n> Proxbox will create another one with (2) in the name\n{error}") + logging.warning(f"[WARNING] Cluster with the same name as {nb_cluster_name} already exists.\n> Proxbox will create another one with (2) in the name\n > {error}") cluster_proxbox = False duplicate = True @@ -127,7 +129,7 @@ async def cluster( cluster = nb.virtualization.clusters.create( name = proxmox_cluster_name, type = cluster_type.id, - tags = [tag.id] + tags = [tag_obj.id] ) return cluster except: @@ -148,8 +150,8 @@ async def cluster( return cluster except: return f"Error creating the '{proxmox_cluster_name}' cluster. Possible errors: the name '{proxmox_cluster_name}' is already used." - - + + return cluster diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index 3f93ff9..fc3ce1c 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -28,7 +28,7 @@ import logging -from . import deploy_uvicorn +from . import deploy_fastapi class HomeView(View): @@ -49,7 +49,7 @@ def get(self, request): "configuration": plugin_configuration, "default_config": default_config, "configuration_json": json.dumps(plugin_configuration, indent=4), - "default_config_json": json.dumps(default_config, indent=4) + "default_config_json": json.dumps(default_config, indent=4), } ) @@ -66,7 +66,7 @@ def get(self, request): """Get request.""" - from .deploy_uvicorn import fastapi_port + from .deploy_fastapi import fastapi_port json_result = None try: json_result = requests.get(f'http://localhost:{fastapi_port}/').json() From 8dd27dcf0ea001e5453cfd9f2a713973f06a9b97 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Thu, 20 Apr 2023 10:20:57 -0300 Subject: [PATCH 104/313] Add section "8 - Get Help from Community!" --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 59cc7c6..5265ebc 100755 --- a/README.md +++ b/README.md @@ -85,6 +85,8 @@ The following table shows the Netbox and Proxmox versions compatible (tested) wi [7. Roadmap](#7-roadmap) +[8. Get Help from Community!](#8-get-help-from-community) + --- ## 1. Installation @@ -346,3 +348,12 @@ Issues and pull requests are welcomed. - Add periodic update of the whole environment so that the user does not need to manually click the update button. - Create virtual machines and containers directly on Netbox, having no need to access Proxmox. - Add 'Console' button to enable console access to virtual machines + +--- + +## 8. Get Help from Community! +If you are struggling to get Proxbox working, feel free to contact someone from community (including me) to help you. +Below some of the communities available: +- **[Official - Slack Community (english)](https://netdev.chat/)** +- **[Community Discord Channel - 🇧🇷 (pt-br)](https://discord.gg/X6FudvXW)** +- **[Community Telegram Chat - 🇧🇷 (pt-br)](https://t.me/netboxbr)** From 2d23569e64c9517fc03afdb278fdab3748bec46f Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Thu, 20 Apr 2023 16:18:24 -0300 Subject: [PATCH 105/313] Create FUNDING.yml --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..d6e0348 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: emersonfelipesp From 5a5cf959d7f49c4675bffe8fc2be57817c1001b2 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Tue, 2 May 2023 16:38:23 -0300 Subject: [PATCH 106/313] Add 'best effort' warning at the top of the page --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5265ebc..1df78d2 100755 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +> Although **Proxbox is under constant development**, I do it with **best effort** and **spare time**. I have no financial gain with this and hope you guys understand, as I know it is pretty useful to some people. If you want to **speed up its development**, solve the problem or create new features with your own code and create a Pull Request so that I can **review** it. **I also would like to appreciate the people who already contributed with code or/and bug reports.** Without this help, surely Proxbox would be much less useful as it is already today to several environments! +
Proxbox logo From 69db5a68d1eab5dd2b55cc612389fd81a58bc636 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Tue, 2 May 2023 16:39:36 -0300 Subject: [PATCH 107/313] Add anchor link to 'Pull Request' Redirects to: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1df78d2..53b9afc 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -> Although **Proxbox is under constant development**, I do it with **best effort** and **spare time**. I have no financial gain with this and hope you guys understand, as I know it is pretty useful to some people. If you want to **speed up its development**, solve the problem or create new features with your own code and create a Pull Request so that I can **review** it. **I also would like to appreciate the people who already contributed with code or/and bug reports.** Without this help, surely Proxbox would be much less useful as it is already today to several environments! +> Although **Proxbox is under constant development**, I do it with **best effort** and **spare time**. I have no financial gain with this and hope you guys understand, as I know it is pretty useful to some people. If you want to **speed up its development**, solve the problem or create new features with your own code and create a **[Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)** so that I can **review** it. **I also would like to appreciate the people who already contributed with code or/and bug reports.** Without this help, surely Proxbox would be much less useful as it is already today to several environments!
From 3b96c1f803f98e22600356c79df43aaccdea6a60 Mon Sep 17 00:00:00 2001 From: Evgeniy Kozhuhovskiy Date: Thu, 11 May 2023 18:11:24 +0530 Subject: [PATCH 108/313] support for custom BASE_URL --- netbox_proxbox/proxbox_api/plugins_config.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/netbox_proxbox/proxbox_api/plugins_config.py b/netbox_proxbox/proxbox_api/plugins_config.py index fa8150a..7b2f6f6 100755 --- a/netbox_proxbox/proxbox_api/plugins_config.py +++ b/netbox_proxbox/proxbox_api/plugins_config.py @@ -11,6 +11,14 @@ # PLUGIN_CONFIG variable defined by user in Netbox 'configuration.py' file from netbox.settings import PLUGINS_CONFIG +# support for custom BASE_PATH + +try: + from netbox.settings import BASE_PATH + DEFAULT_BASE_PATH = '/' + BASE_PATH +except ImportError: + DEFAULT_BASE_PATH = '' + #################################################################################################### # # # DEFAULT VARIABLES DEFINED BY ProxboxConfig CLASS ON PROXBOX PLUGIN CONFIGURATION (__init__.py) # @@ -156,7 +164,7 @@ session = requests.Session() session.verify = False - NETBOX = 'http://{}:{}'.format(NETBOX, NETBOX_PORT) + NETBOX = 'http://{}:{}{}'.format(NETBOX, NETBOX_PORT, DEFAULT_BASE_PATH) # Start NETBOX session NETBOX_SESSION = pynetbox.api( From 0ffa6ae2380a5fc9a30df4e44bbcae93f5721a6e Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 22 May 2023 13:52:55 +0000 Subject: [PATCH 109/313] Add docs initial pages --- docs/.icons/favicon.ico | Bin 0 -> 1174 bytes docs/.icons/netbox_icon.svg | 20 ++++ docs/_theme/main.html | 9 ++ docs/configuration/index.md | 1 + docs/configuration/required-parameters.md | 1 + docs/extra.css | 29 ++++++ docs/features/api-integration.md | 1 + docs/features/background-jobs.md | 1 + docs/features/backup.md | 1 + docs/features/containers.md | 1 + docs/features/monitoring.md | 1 + docs/features/network.md | 1 + docs/features/storage.md | 1 + docs/features/synchronized-data.md | 1 + docs/features/virtual-machine.md | 1 + docs/features/vlan-management.md | 1 + docs/installation/index.md | 1 + docs/installation/upgrading.md | 1 + docs/introduction.md | 1 + docs/mkdocs.yml | 109 ++++++++++++++++++++++ docs/models/containers.md | 1 + docs/models/others.md | 1 + docs/models/virtual-machine.md | 1 + docs/release-notes/index.md | 1 + docs/release-notes/version-0.0.1.md | 1 + docs/release-notes/version-0.0.2.md | 1 + docs/release-notes/version-0.0.3.md | 1 + docs/release-notes/version-0.0.4.md | 1 + docs/release-notes/version-0.0.5.md | 1 + docs/release-notes/version-0.0.6.md | 1 + mkdocs.yml | 109 ++++++++++++++++++++++ 31 files changed, 301 insertions(+) create mode 100644 docs/.icons/favicon.ico create mode 100644 docs/.icons/netbox_icon.svg create mode 100644 docs/_theme/main.html create mode 100644 docs/configuration/index.md create mode 100644 docs/configuration/required-parameters.md create mode 100644 docs/extra.css create mode 100644 docs/features/api-integration.md create mode 100644 docs/features/background-jobs.md create mode 100644 docs/features/backup.md create mode 100644 docs/features/containers.md create mode 100644 docs/features/monitoring.md create mode 100644 docs/features/network.md create mode 100644 docs/features/storage.md create mode 100644 docs/features/synchronized-data.md create mode 100644 docs/features/virtual-machine.md create mode 100644 docs/features/vlan-management.md create mode 100644 docs/installation/index.md create mode 100644 docs/installation/upgrading.md create mode 100644 docs/introduction.md create mode 100644 docs/mkdocs.yml create mode 100644 docs/models/containers.md create mode 100644 docs/models/others.md create mode 100644 docs/models/virtual-machine.md create mode 100644 docs/release-notes/index.md create mode 100644 docs/release-notes/version-0.0.1.md create mode 100644 docs/release-notes/version-0.0.2.md create mode 100644 docs/release-notes/version-0.0.3.md create mode 100644 docs/release-notes/version-0.0.4.md create mode 100644 docs/release-notes/version-0.0.5.md create mode 100644 docs/release-notes/version-0.0.6.md create mode 100644 mkdocs.yml diff --git a/docs/.icons/favicon.ico b/docs/.icons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..bb1051549be3493bd24ca9e9015214ca5766acb7 GIT binary patch literal 1174 zcmV;H1Zn$;P)dp*5D>JXD@j)6O*NL-DFO#-A2Fe&XMSC#<30tz{xAD3DI zm!*-nNWDw4mGMwM0#c7KS=}Y;oPL72)$ek0_7C$bUpC5hFdm-X0q+b)S_P82hdmsDfTu;)UC4^Kz6%Nh7J#CDD<#PKy55i5xqy2e zQ0jZ?Nr+vhH%Gwu_`2F&=Bmg6Q>u5~b=TX!Kq(Fo3rv)?C_T?G1&_|RtTUv@@}0N2 zo6d^bz6&-YL9qnRTqo@XCiE?jc!^A(y%#tVF!Tb3#*u)b7cexA1Pr}^p>ZT&=miXo zBLPD%U}!uW0#vF4mFlgu+8Y6R3(V_{F`H^`uTZHzRjGae{sQh*sZT>RXTbI}f zxMO!gWeH5Z^an^?P6ww=l^~UFy-z4315TWGK+a^9@nEVs%2iKWs8mm=f1eNl%14{r zC3XfTuDar1)>Y>3$1K14vbH7=Vo_4}@ow-NOSy>$U5|M6vawidg=gahs^DV>e5AP_ z2Rs}BO1tQve_2vr7PBg;`yk+J3mHGHvL!F@(>-yW7sxN?2kJ}x@0^Z+N^6^u3pAD7 zdx1sw+B}ZLRc8V!j4zkYi<0`uQ0?+@B$k*`{|)8{CYZASSsaNA=y(TI7{C9PI1A+D zSH9F~y#qca<89E2fI~ALS`cuE#zVy&kh_o(u!pnlHDlYC?$>y! zPciEXOQQ* + + + + + + + + + + + + + + + + + + + diff --git a/docs/_theme/main.html b/docs/_theme/main.html new file mode 100644 index 0000000..94e2ee8 --- /dev/null +++ b/docs/_theme/main.html @@ -0,0 +1,9 @@ +{% extends "base.html" %} + +{% block site_meta %} + {{ super() }} + {# Disable search indexing unless we're building for ReadTheDocs (see #10496) #} + {% if page.canonical_url != 'https://docs.netbox.dev/' %} + + {% endif %} +{% endblock %} \ No newline at end of file diff --git a/docs/configuration/index.md b/docs/configuration/index.md new file mode 100644 index 0000000..6f6f72b --- /dev/null +++ b/docs/configuration/index.md @@ -0,0 +1 @@ +# ProxBox Configuration \ No newline at end of file diff --git a/docs/configuration/required-parameters.md b/docs/configuration/required-parameters.md new file mode 100644 index 0000000..f94f86a --- /dev/null +++ b/docs/configuration/required-parameters.md @@ -0,0 +1 @@ +# Required Parameters \ No newline at end of file diff --git a/docs/extra.css b/docs/extra.css new file mode 100644 index 0000000..297c57b --- /dev/null +++ b/docs/extra.css @@ -0,0 +1,29 @@ +/* Images */ +img { + display: block; + margin-left: auto; + margin-right: auto; +} + +/* Tables */ +table { + margin-bottom: 24px; + width: 100%; +} +th { + padding: 6px; + font-weight: bold; +} +td { + padding: 6px; +} +/* Remove table header coloring. */ +.md-typeset table:not([class]) th { + color: unset !important; + background-color: unset !important; +} +thead tr { + /* Colorize table headers. */ + background-color: var(--md-code-bg-color); + color: var(--md-code-fg-color); +} \ No newline at end of file diff --git a/docs/features/api-integration.md b/docs/features/api-integration.md new file mode 100644 index 0000000..e6a3791 --- /dev/null +++ b/docs/features/api-integration.md @@ -0,0 +1 @@ +# API Integration \ No newline at end of file diff --git a/docs/features/background-jobs.md b/docs/features/background-jobs.md new file mode 100644 index 0000000..2592389 --- /dev/null +++ b/docs/features/background-jobs.md @@ -0,0 +1 @@ +# Background Jobs \ No newline at end of file diff --git a/docs/features/backup.md b/docs/features/backup.md new file mode 100644 index 0000000..13f9800 --- /dev/null +++ b/docs/features/backup.md @@ -0,0 +1 @@ +# Backups & Proxmox Backup Server \ No newline at end of file diff --git a/docs/features/containers.md b/docs/features/containers.md new file mode 100644 index 0000000..e9190fd --- /dev/null +++ b/docs/features/containers.md @@ -0,0 +1 @@ +# Containers \ No newline at end of file diff --git a/docs/features/monitoring.md b/docs/features/monitoring.md new file mode 100644 index 0000000..23a9669 --- /dev/null +++ b/docs/features/monitoring.md @@ -0,0 +1 @@ +# Monitoring & Observability \ No newline at end of file diff --git a/docs/features/network.md b/docs/features/network.md new file mode 100644 index 0000000..0fffc3b --- /dev/null +++ b/docs/features/network.md @@ -0,0 +1 @@ +# Network (IPAM) \ No newline at end of file diff --git a/docs/features/storage.md b/docs/features/storage.md new file mode 100644 index 0000000..19c72df --- /dev/null +++ b/docs/features/storage.md @@ -0,0 +1 @@ +# Storage \ No newline at end of file diff --git a/docs/features/synchronized-data.md b/docs/features/synchronized-data.md new file mode 100644 index 0000000..dfdf6c7 --- /dev/null +++ b/docs/features/synchronized-data.md @@ -0,0 +1 @@ +# Synchronized Data \ No newline at end of file diff --git a/docs/features/virtual-machine.md b/docs/features/virtual-machine.md new file mode 100644 index 0000000..b7c78b7 --- /dev/null +++ b/docs/features/virtual-machine.md @@ -0,0 +1 @@ +# Virtual Machine \ No newline at end of file diff --git a/docs/features/vlan-management.md b/docs/features/vlan-management.md new file mode 100644 index 0000000..aded309 --- /dev/null +++ b/docs/features/vlan-management.md @@ -0,0 +1 @@ +# VLAN Management \ No newline at end of file diff --git a/docs/installation/index.md b/docs/installation/index.md new file mode 100644 index 0000000..f34d65b --- /dev/null +++ b/docs/installation/index.md @@ -0,0 +1 @@ +# Installation \ No newline at end of file diff --git a/docs/installation/upgrading.md b/docs/installation/upgrading.md new file mode 100644 index 0000000..47ef05f --- /dev/null +++ b/docs/installation/upgrading.md @@ -0,0 +1 @@ +# Upgrading ProxBox \ No newline at end of file diff --git a/docs/introduction.md b/docs/introduction.md new file mode 100644 index 0000000..f6ecaa6 --- /dev/null +++ b/docs/introduction.md @@ -0,0 +1 @@ +# Introduction \ No newline at end of file diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml new file mode 100644 index 0000000..0de6da4 --- /dev/null +++ b/docs/mkdocs.yml @@ -0,0 +1,109 @@ +site_name: ProxBox Documentation (NetBox Plugin) +site_dir: ./site +site_url: https://proxbox.netbox.dev.br/ +docs_dir: ./docs +repo_name: netdevopsbr/netbox-proxbox +repo_url: https://github.com/netdevopsbr/netbox-proxbox +theme: + name: material + custom_dir: docs/_theme/ + icon: + repo: fontawesome/brands/github + language: pt-BR + palette: + - media: "(prefers-color-scheme: light)" + scheme: default + toggle: + icon: material/lightbulb-outline + name: Switch to Dark Mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + toggle: + icon: material/lightbulb + name: Switch to Light Mode + features: + - navigation.instant + - navigation.tracking + - search.suggest + - search.highlight + - navigation.footer + - navigation.path + - navigation.top + - toc.follow + - toc.integrate +plugins: + - search + - social +extra: + social: + - icon: fontawesome/brands/github + link: https://github.com/netdevopsbr/netbox-proxbox + - icon: fontawesome/brands/slack + link: https://netdev.chat/ + - icon: fontawesome/brands/telegram + link: https://t.me/netboxbr + - icon: fontawesome/brands/discord + link: https://discord.gg/9N3V4mpMXU + homepage: https://netboxlabs.com +extra_css: + - https://cdn.materialdesignicons.com/5.4.55/css/materialdesignicons.min.css + - extra.css +markdown_extensions: + - attr_list + - def_list + - md_in_html + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - admonition + - abbr + - toc: + permalink: true + toc_depth: 4 + - tables + - footnotes + - pymdownx.emoji: + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - pymdownx.tabbed: + alternate_style: true +extra_javascript: + - 'https://cdn.jsdelivr.net/npm/@material-icons/iconfont/material-icons.min.js' +nav: + - Introduction: 'introduction.md' + - Installing & Upgrade: + - Installing Proxbox: 'installation/index.md' + - Upgrading Proxbox: 'installation/upgrading.md' + - Features: + - Virtual Machine (VM): 'features/virtual-machine.md' + - Containers (LXC): 'features/containers.md' + - Network (IPAM): 'features/network.md' + - VLAN Management: 'features/vlan-management.md' + - Storage: 'features/storage.md' + - Backup: 'features/backup.md' + - Monitoring: 'features/monitoring.md' + - Synchronized Data: 'features/synchronized-data.md' + - Background Jobs: 'features/background-jobs.md' + - API & Integration: 'features/api-integration.md' + - Configuration: + - Configuring ProxBox: 'configuration/index.md' + - Required Parameters: 'configuration/required-parameters.md' + - Data Model: + - Virtual Machine (VM): 'models/virtual-machine.md' + - Containers (LXC): 'models/containers.md' + - Others: 'models/others.md' + - Release Notes: + - Summary: 'release-notes/index.md' + - Version 0.0.6: 'release-notes/version-0.0.1.md' + - Version 0.0.5: 'release-notes/version-0.0.1.md' + - Version 0.0.4: 'release-notes/version-0.0.1.md' + - Version 0.0.3: 'release-notes/version-0.0.1.md' + - Version 0.0.2: 'release-notes/version-0.0.1.md' + - Version 0.0.1: 'release-notes/version-0.0.1.md' \ No newline at end of file diff --git a/docs/models/containers.md b/docs/models/containers.md new file mode 100644 index 0000000..e48a1bc --- /dev/null +++ b/docs/models/containers.md @@ -0,0 +1 @@ +# Containers (Data Model) \ No newline at end of file diff --git a/docs/models/others.md b/docs/models/others.md new file mode 100644 index 0000000..a4d0677 --- /dev/null +++ b/docs/models/others.md @@ -0,0 +1 @@ +# Others Data Models \ No newline at end of file diff --git a/docs/models/virtual-machine.md b/docs/models/virtual-machine.md new file mode 100644 index 0000000..eea5b0b --- /dev/null +++ b/docs/models/virtual-machine.md @@ -0,0 +1 @@ +# Virtual Machine (Data Model) \ No newline at end of file diff --git a/docs/release-notes/index.md b/docs/release-notes/index.md new file mode 100644 index 0000000..27870e5 --- /dev/null +++ b/docs/release-notes/index.md @@ -0,0 +1 @@ +# Summary \ No newline at end of file diff --git a/docs/release-notes/version-0.0.1.md b/docs/release-notes/version-0.0.1.md new file mode 100644 index 0000000..af103d1 --- /dev/null +++ b/docs/release-notes/version-0.0.1.md @@ -0,0 +1 @@ +# Version 0.0.1 \ No newline at end of file diff --git a/docs/release-notes/version-0.0.2.md b/docs/release-notes/version-0.0.2.md new file mode 100644 index 0000000..a8c1eaf --- /dev/null +++ b/docs/release-notes/version-0.0.2.md @@ -0,0 +1 @@ +# Version 0.0.2 \ No newline at end of file diff --git a/docs/release-notes/version-0.0.3.md b/docs/release-notes/version-0.0.3.md new file mode 100644 index 0000000..ed704f1 --- /dev/null +++ b/docs/release-notes/version-0.0.3.md @@ -0,0 +1 @@ +# Version 0.0.3 \ No newline at end of file diff --git a/docs/release-notes/version-0.0.4.md b/docs/release-notes/version-0.0.4.md new file mode 100644 index 0000000..6d071fc --- /dev/null +++ b/docs/release-notes/version-0.0.4.md @@ -0,0 +1 @@ +# Version 0.0.4 \ No newline at end of file diff --git a/docs/release-notes/version-0.0.5.md b/docs/release-notes/version-0.0.5.md new file mode 100644 index 0000000..7a25611 --- /dev/null +++ b/docs/release-notes/version-0.0.5.md @@ -0,0 +1 @@ +# Version 0.0.5 \ No newline at end of file diff --git a/docs/release-notes/version-0.0.6.md b/docs/release-notes/version-0.0.6.md new file mode 100644 index 0000000..38e5944 --- /dev/null +++ b/docs/release-notes/version-0.0.6.md @@ -0,0 +1 @@ +# Version 0.0.6 \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..0de6da4 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,109 @@ +site_name: ProxBox Documentation (NetBox Plugin) +site_dir: ./site +site_url: https://proxbox.netbox.dev.br/ +docs_dir: ./docs +repo_name: netdevopsbr/netbox-proxbox +repo_url: https://github.com/netdevopsbr/netbox-proxbox +theme: + name: material + custom_dir: docs/_theme/ + icon: + repo: fontawesome/brands/github + language: pt-BR + palette: + - media: "(prefers-color-scheme: light)" + scheme: default + toggle: + icon: material/lightbulb-outline + name: Switch to Dark Mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + toggle: + icon: material/lightbulb + name: Switch to Light Mode + features: + - navigation.instant + - navigation.tracking + - search.suggest + - search.highlight + - navigation.footer + - navigation.path + - navigation.top + - toc.follow + - toc.integrate +plugins: + - search + - social +extra: + social: + - icon: fontawesome/brands/github + link: https://github.com/netdevopsbr/netbox-proxbox + - icon: fontawesome/brands/slack + link: https://netdev.chat/ + - icon: fontawesome/brands/telegram + link: https://t.me/netboxbr + - icon: fontawesome/brands/discord + link: https://discord.gg/9N3V4mpMXU + homepage: https://netboxlabs.com +extra_css: + - https://cdn.materialdesignicons.com/5.4.55/css/materialdesignicons.min.css + - extra.css +markdown_extensions: + - attr_list + - def_list + - md_in_html + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - admonition + - abbr + - toc: + permalink: true + toc_depth: 4 + - tables + - footnotes + - pymdownx.emoji: + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - pymdownx.tabbed: + alternate_style: true +extra_javascript: + - 'https://cdn.jsdelivr.net/npm/@material-icons/iconfont/material-icons.min.js' +nav: + - Introduction: 'introduction.md' + - Installing & Upgrade: + - Installing Proxbox: 'installation/index.md' + - Upgrading Proxbox: 'installation/upgrading.md' + - Features: + - Virtual Machine (VM): 'features/virtual-machine.md' + - Containers (LXC): 'features/containers.md' + - Network (IPAM): 'features/network.md' + - VLAN Management: 'features/vlan-management.md' + - Storage: 'features/storage.md' + - Backup: 'features/backup.md' + - Monitoring: 'features/monitoring.md' + - Synchronized Data: 'features/synchronized-data.md' + - Background Jobs: 'features/background-jobs.md' + - API & Integration: 'features/api-integration.md' + - Configuration: + - Configuring ProxBox: 'configuration/index.md' + - Required Parameters: 'configuration/required-parameters.md' + - Data Model: + - Virtual Machine (VM): 'models/virtual-machine.md' + - Containers (LXC): 'models/containers.md' + - Others: 'models/others.md' + - Release Notes: + - Summary: 'release-notes/index.md' + - Version 0.0.6: 'release-notes/version-0.0.1.md' + - Version 0.0.5: 'release-notes/version-0.0.1.md' + - Version 0.0.4: 'release-notes/version-0.0.1.md' + - Version 0.0.3: 'release-notes/version-0.0.1.md' + - Version 0.0.2: 'release-notes/version-0.0.1.md' + - Version 0.0.1: 'release-notes/version-0.0.1.md' \ No newline at end of file From b57da9772c34c26865a0c1d813b9ca05f59cd07b Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 22 May 2023 13:55:34 +0000 Subject: [PATCH 110/313] Add GitHub Action to auto-deploy docs and CNAME file --- .github/workflows/docs.yml | 49 ++++++++++++++++++++++++++++++++++++++ CNAME | 1 + 2 files changed, 50 insertions(+) create mode 100644 .github/workflows/docs.yml create mode 100644 CNAME diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..05b1f7f --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,49 @@ +name: docs +on: + push: + branches: + - master + - main +permissions: + contents: write +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: 3.x + - uses: actions/cache@v2 + with: + key: ${{ github.ref }} + path: .cache + - name: Install APT packages + run: | + sudo apt install python3-pip python3-apt python3-cffi python3-brotli -y + sudo apt install libharfbuzz0b libpangoft2-1.0-0 libgtk-3-dev gcc -y + - name: Install PIP packages + run: | + sudo pip3 install Markdown==3.3 + sudo pip3 install mkdocs-material + sudo pip3 install mkdocs-minify-plugin + sudo pip3 install mkdocs-redirects + sudo pip3 install pillow cairosvg + - name: Deploy MkDocs Page + run: sudo mkdocs gh-deploy --force + - name: Git Commit staged + run: | + sudo git config --global --add user.name emersonfelipesp + sudo git config --global --add user.email emersonfelipe.2003@gmail.com + sudo git add . + sudo git commit -m "Saves 'site' html pages" + - name: Git checkout to 'gh-pages' branch + run: | + sudo git checkout gh-pages + sudo git push --set-upstream origin gh-pages + - name: Change custom domain + run: | + sudo echo 'docs.netbox.dev.br' > CNAME + sudo git add CNAME + sudo git commit -m "Change custom domain to 'proxbox.netbox.dev.br'" + sudo git push diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..a3cebbe --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +proxbox.netbox.dev.br \ No newline at end of file From c2fbc5a77abe4ce750a77f16888582b3474d8565 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 22 May 2023 14:01:50 +0000 Subject: [PATCH 111/313] Change language to 'eng' and minor fixes --- .github/workflows/docs.yml | 49 +++++++++++++++++ CNAME | 1 + mkdocs.yml | 109 +++++++++++++++++++++++++++++++++++++ 3 files changed, 159 insertions(+) create mode 100644 .github/workflows/docs.yml create mode 100644 CNAME create mode 100644 mkdocs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..05b1f7f --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,49 @@ +name: docs +on: + push: + branches: + - master + - main +permissions: + contents: write +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: 3.x + - uses: actions/cache@v2 + with: + key: ${{ github.ref }} + path: .cache + - name: Install APT packages + run: | + sudo apt install python3-pip python3-apt python3-cffi python3-brotli -y + sudo apt install libharfbuzz0b libpangoft2-1.0-0 libgtk-3-dev gcc -y + - name: Install PIP packages + run: | + sudo pip3 install Markdown==3.3 + sudo pip3 install mkdocs-material + sudo pip3 install mkdocs-minify-plugin + sudo pip3 install mkdocs-redirects + sudo pip3 install pillow cairosvg + - name: Deploy MkDocs Page + run: sudo mkdocs gh-deploy --force + - name: Git Commit staged + run: | + sudo git config --global --add user.name emersonfelipesp + sudo git config --global --add user.email emersonfelipe.2003@gmail.com + sudo git add . + sudo git commit -m "Saves 'site' html pages" + - name: Git checkout to 'gh-pages' branch + run: | + sudo git checkout gh-pages + sudo git push --set-upstream origin gh-pages + - name: Change custom domain + run: | + sudo echo 'docs.netbox.dev.br' > CNAME + sudo git add CNAME + sudo git commit -m "Change custom domain to 'proxbox.netbox.dev.br'" + sudo git push diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..a3cebbe --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +proxbox.netbox.dev.br \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..70f972d --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,109 @@ +site_name: ProxBox Documentation (NetBox Plugin) +site_dir: ./site +site_url: https://proxbox.netbox.dev.br/ +docs_dir: ./docs +repo_name: netdevopsbr/netbox-proxbox +repo_url: https://github.com/netdevopsbr/netbox-proxbox +theme: + name: material + custom_dir: docs/_theme/ + icon: + repo: fontawesome/brands/github + language: en + palette: + - media: "(prefers-color-scheme: light)" + scheme: default + toggle: + icon: material/lightbulb-outline + name: Switch to Dark Mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + toggle: + icon: material/lightbulb + name: Switch to Light Mode + features: + - navigation.instant + - navigation.tracking + - search.suggest + - search.highlight + - navigation.footer + - navigation.path + - navigation.top + - toc.follow + - toc.integrate +plugins: + - search + - social +extra: + social: + - icon: fontawesome/brands/github + link: https://github.com/netdevopsbr/netbox-proxbox + - icon: fontawesome/brands/slack + link: https://netdev.chat/ + - icon: fontawesome/brands/telegram + link: https://t.me/netboxbr + - icon: fontawesome/brands/discord + link: https://discord.gg/9N3V4mpMXU + homepage: https://netboxlabs.com +extra_css: + - https://cdn.materialdesignicons.com/5.4.55/css/materialdesignicons.min.css + - extra.css +markdown_extensions: + - attr_list + - def_list + - md_in_html + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - admonition + - abbr + - toc: + permalink: true + toc_depth: 4 + - tables + - footnotes + - pymdownx.emoji: + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - pymdownx.tabbed: + alternate_style: true +extra_javascript: + - 'https://cdn.jsdelivr.net/npm/@material-icons/iconfont/material-icons.min.js' +nav: + - Introduction: 'introduction.md' + - Installing & Upgrade: + - Installing Proxbox: 'installation/index.md' + - Upgrading Proxbox: 'installation/upgrading.md' + - Features: + - Virtual Machine (VM): 'features/virtual-machine.md' + - Containers (LXC): 'features/containers.md' + - Network (IPAM): 'features/network.md' + - VLAN Management: 'features/vlan-management.md' + - Storage: 'features/storage.md' + - Backup: 'features/backup.md' + - Monitoring: 'features/monitoring.md' + - Synchronized Data: 'features/synchronized-data.md' + - Background Jobs: 'features/background-jobs.md' + - API & Integration: 'features/api-integration.md' + - Configuration: + - Configuring ProxBox: 'configuration/index.md' + - Required Parameters: 'configuration/required-parameters.md' + - Data Model: + - Virtual Machine (VM): 'models/virtual-machine.md' + - Containers (LXC): 'models/containers.md' + - Others: 'models/others.md' + - Release Notes: + - Summary: 'release-notes/index.md' + - Version 0.0.6: 'release-notes/version-0.0.1.md' + - Version 0.0.5: 'release-notes/version-0.0.1.md' + - Version 0.0.4: 'release-notes/version-0.0.1.md' + - Version 0.0.3: 'release-notes/version-0.0.1.md' + - Version 0.0.2: 'release-notes/version-0.0.1.md' + - Version 0.0.1: 'release-notes/version-0.0.1.md' \ No newline at end of file From 1577fb9df09ca60bbdbdd3f6cc559fcd06225278 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 22 May 2023 14:19:54 +0000 Subject: [PATCH 112/313] Copy README to introduction.md and add images --- docs/etc/img/custom_field_example.png | Bin 0 -> 20065 bytes docs/etc/img/proxbox-full-logo.png | Bin 0 -> 15814 bytes docs/etc/img/proxbox.png | Bin 0 -> 20720 bytes docs/etc/img/proxbox_full_update_button.png | Bin 0 -> 1005 bytes docs/introduction.md | 362 +++++++++++++++++++- 5 files changed, 361 insertions(+), 1 deletion(-) create mode 100755 docs/etc/img/custom_field_example.png create mode 100755 docs/etc/img/proxbox-full-logo.png create mode 100755 docs/etc/img/proxbox.png create mode 100755 docs/etc/img/proxbox_full_update_button.png diff --git a/docs/etc/img/custom_field_example.png b/docs/etc/img/custom_field_example.png new file mode 100755 index 0000000000000000000000000000000000000000..f8d2d58b6476fe1d1f6f593a1346cdfb51239942 GIT binary patch literal 20065 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 literal 0 HcmV?d00001 diff --git a/docs/etc/img/proxbox-full-logo.png b/docs/etc/img/proxbox-full-logo.png new file mode 100755 index 0000000000000000000000000000000000000000..866ef33a7bcf110c2409d291f872eec1584363e2 GIT binary patch literal 15814 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 literal 0 HcmV?d00001 diff --git a/docs/etc/img/proxbox.png b/docs/etc/img/proxbox.png new file mode 100755 index 0000000000000000000000000000000000000000..1b14d9fa734e339aee7465c065dbef733c5b7bf0 GIT binary patch literal 20720 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 literal 0 HcmV?d00001 diff --git a/docs/etc/img/proxbox_full_update_button.png b/docs/etc/img/proxbox_full_update_button.png new file mode 100755 index 0000000000000000000000000000000000000000..ac07e0c3b0c3bcd8b61a21059a4c2471dfe75158 GIT binary patch literal 1005 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1A<9JK~#8N?VP=C z6fqFTc_M_Mr2)a?P*H&RiUe&Q0|FEgQWA+*AW_n$i>^t-Ns&+@Qlv4SvDZ5@p1aHD z_Rb{wkMtAS^~ZX~zw;f<-U|psgDB$t{_{6{`hF0ezTFP@Uwj5&RLHB3-wxO_3Kowp zo`3ie9=zNR4`1zuM{j-tFe>B~`SmP%M!vClWFp=41^_T7(eOGh&%&nD z|5kH!k&~Bv?qxy<=bufs%)z9ww_s<@}io}yAl(S%WgVPu-MC=n!O1(k#SS?ya2vR>gw>z74 zXy>tX8)u`8X(OJhqnOvry{eT$&&T6cZuOdIzH9xyHH;&k7b4-R05ghilj!EwiPgof zk{9B+h34nWPimTT;ip&3>$W>s#pCt*(M~+Ou?AhN$UyP* z{PpIJC*CX(GIvb8Qr}Vwy?)tu{(6VgMm%SO{IA-WX#U~c_pQgy6R&=DZns~xF$ezF z_LZznyi^NapM;jlsiTDHl8(Jqj zUpyjjP>#|!Z)7!gmJkcYi{v>|#2n<90pc;8C?#zFT#KpbXV)j!6Wi2(pwwEarsjiF z+U?%-aTDo?rNsj+x%r9H8i;qRfq0+^5D$PsKs?X{hzFVg@jw$G9%w=l53jHQ>q5Q4 zVqAdYf Although **Proxbox is under constant development**, I do it with **best effort** and **spare time**. I have no financial gain with this and hope you guys understand, as I know it is pretty useful to some people. If you want to **speed up its development**, solve the problem or create new features with your own code and create a **[Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)** so that I can **review** it. **I also would like to appreciate the people who already contributed with code or/and bug reports.** Without this help, surely Proxbox would be much less useful as it is already today to several environments! + +
+ + Proxbox logo + +
+ +
+ +### [New Documentation available!](https://proxbox.netbox.dev.br/) +
+
+
+ + + + +## Netbox Plugin which integrates [Proxmox](https://www.proxmox.com/) and [Netbox](https://netbox.readthedocs.io/)! + +> **NOTE:** Although the Proxbox plugin is in development, it only use **GET requests** and there is **no risk to harm your Proxmox environment** by changing things incorrectly. + +
+ +Proxbox is currently able to get the following information from Proxmox: + +- **Cluster name** +- **Nodes:** + - Status (online / offline) + - Name +- **Virtual Machines and Containers:** + - Status (online / offline) + - Name + - ID + - CPU + - Disk + - Memory + - Node (Server) + +--- + +
+ +### Versions + + +The following table shows the Netbox and Proxmox versions compatible (tested) with Proxbox plugin. + +| netbox version | proxmox version | proxbox version | +| ------------- |-------------|-------------| +| >= v3.4.0 | >= v6.2.0 | =v0.0.5 | +| >= v3.2.0 | >= v6.2.0 | =v0.0.4 | +| >= v3.0.0 < v3.2 | >= v6.2.0 | =v0.0.3 | + + +
+ +--- + +### Summary +[1. Installation](#1-installation) +- [1.1. Install package](#11-install-package) + - [1.1.1. Using pip (production use)](#111-using-pip-production-use---not-working-yet) + - [1.1.2. Using git (development use)](#112-using-git-development-use) +- [1.2. Enable the Plugin](#12-enable-the-plugin) +- [1.3. Configure Plugin](#13-configure-plugin) + - [1.3.1. Change Netbox 'configuration.py' to add PLUGIN parameters](#131-change-netbox-configurationpy-to-add-plugin-parameters) + - [1.3.2. Change Netbox 'settings.py' to include Proxbox Template directory](#132-change-netbox-settingspy-to-include-proxbox-template-directory) +- [1.4. Run Database Migrations](#14-run-database-migrations) +- [1.5 Restart WSGI Service](#15-restart-wsgi-service) + +[2. Configuration Parameters](#2-configuration-parameters) + +[3. Custom Fields](#3-custom-fields) +- [3.1. Custom Field Configuration](#31-custom-field-configuration) + - [3.1.1. Proxmox ID](#311-proxmox-id) + - [3.1.2. Proxmox Node](#312-proxmox-node) + - [3.1.3. Proxmox Type](#313-proxmox-type-qemu-or-lxc) + - [3.1.4. Proxmox Keep Interface](#314-proxmox-keep-interface) +- [3.2. Custom Field Example](#32-custom-field-example) + +[4. Usage](#4-usage) + +[5. Enable Logs](#5-enable-logs) + +[6. Contributing](#6-contributing) + +[7. Roadmap](#7-roadmap) + +[8. Get Help from Community!](#8-get-help-from-community) + +--- + +## 1. Installation + +The instructions below detail the process for installing and enabling Proxbox plugin. +The plugin is available as a Python package in pypi and can be installed with pip. + +### 1.1. Install package + +#### 1.1.1. Using pip (production use) + +Enter Netbox's virtual environment. +``` +source /opt/netbox/venv/bin/activate +``` + +Install the plugin package. +``` +(venv) $ pip install netbox-proxbox +``` + +#### 1.1.2. Using git (development use) +**OBS:** This method is recommend for testing and development purposes and is not for production use. + +Move to netbox main folder +``` +cd /opt/netbox/netbox +``` + +Clone netbox-proxbox repository +``` +git clone https://github.com/netdevopsbr/netbox-proxbox.git +``` + +Install netbox-proxbox +``` +cd netbox-proxbox +source /opt/netbox/venv/bin/activate +python3 setup.py develop +``` + +--- + +### 1.2. Enable the Plugin + +Enable the plugin in **/opt/netbox/netbox/netbox/configuration.py**: +```python +PLUGINS = ['netbox_proxbox'] +``` + +--- + +### 1.3. Configure Plugin + +#### 1.3.1. Change Netbox '**[configuration.py](https://github.com/netbox-community/netbox/blob/develop/netbox/netbox/configuration.example.py)**' to add PLUGIN parameters +The plugin's configuration is also located in **/opt/netbox/netbox/netbox/configuration.py**: + +Replace the values with your own following the [Configuration Parameters](#2-configuration-parameters) section. + +**OBS:** You do not need to configure all the parameters, only the one's different from the default values. It means that if you have some value equal to the one below, you can skip its configuration. For netbox you should ensure the domain/port either targets gunicorn or a true http port that is not redirected to https. + +```python +PLUGINS_CONFIG = { + 'netbox_proxbox': { + 'proxmox': { + 'domain': 'proxbox.example.com', # May also be IP address + 'http_port': 8006, + 'user': 'root@pam', # always required + 'password': 'Strong@P4ssword', # only required, if you don't want to use token based authentication + 'token': { + 'name': 'tokenID', # Only type the token name and not the 'user@pam:tokenID' format + 'value': '039az154-23b2-4be0-8d20-b66abc8c4686' + }, + 'ssl': False + }, + 'netbox': { + 'domain': 'localhost', # Ensure localhost is added to ALLOWED_HOSTS + 'http_port': 8001, # Gunicorn port. + 'token': '0dd7cddfaee3b38bbffbd2937d44c4a03f9c9d38', + 'ssl': False, # There is no support to SSL on Netbox yet, so let it always False. + 'settings': { + 'virtualmachine_role_id' : 0, + 'node_role_id' : 0, + 'site_id': 0 + } + } + } +``` + +
+ +#### 1.3.2. Change Netbox '**[settings.py](https://github.com/netbox-community/netbox/blob/develop/netbox/netbox/settings.py)**' to include Proxbox Template directory + +> Probably on the next release of Netbox, it will not be necessary to make the configuration below! As the [Pull Request #8733](https://github.com/netbox-community/netbox/pull/8734) got merged to develop branch + +**It is no longer necessary to modify the templates section in `settings.py` and you may revert any changes.** + +--- + +### 1.4. Run Database Migrations + +``` +(venv) $ cd /opt/netbox/netbox/ +(venv) $ python3 manage.py migrate +``` + +--- + +### 1.5. Restart WSGI Service + +Restart the WSGI service to load the new plugin: +``` +# sudo systemctl restart netbox +``` + +--- + +## 2. Configuration Parameters + +The following options are available: + +* `proxmox`: (Dict) Proxmox related configuration to use proxmoxer. +* `proxmox.domain`: (String) Domain or IP address of Proxmox. +* `proxmox.http_port`: (Integer) Proxmox HTTP port (default: 8006). +* `proxmox.user`: (String) Proxmox Username. +* `proxmox.password`: (String) Proxmox Password. +* `proxmox.token`: (Dict) Contains Proxmox TokenID (name) and Token Value (value). +* `proxmox.token.name`: (String) Proxmox TokenID. +* `proxmox.token.value`: (String) Proxmox Token Value. +* `proxmox.ssl`: (Bool) Defines the use of SSL (default: False). + +* `netbox`: (Dict) Netbox related configuration to use pynetbox. +* `netbox.domain`: (String) Domain or IP address of Netbox. Ensure name or ip is added to `ALLOWED_HOSTS` +* `netbox.http_port`: (Integer) Netbox HTTP PORT (default: 8001). If you are not targeting gunicorn directly make sure the HTTP port is not redirected to HTTPS by your HTTP server. +* `netbox.token`: (String) Netbox Token Value. +* `netbox.ssl`: (Bool) Defines the use of SSL (default: False). - Proxbox doesn't support SSL on Netbox yet. +* `netbox.settings`: (Dict) Default items of Netbox to be used by Proxbox. + - If not configured, Proxbox will automatically create a basic configuration to make it work. + - The ID of each item can be easily found on the URL of the item you want to use. +* `netbox.settings.virtualmachine_role_id`: (Integer) Role ID to be used by Proxbox when creating Virtual Machines +* `netbox.settings.node_role_id`: (Integer) Role ID to be used by Proxbox when creating Nodes (Devices) +* `netbox.settings.site_id` (Integer) Site ID to be used by Proxbox when creating Nodes (Devices) + +--- + +## 3. Custom Fields + +To get Proxmox ID, Node and Type information, is necessary to configure Custom Fields. +Below the parameters needed to make it work: + +
+ +### 3.1. Custom Field Configuration + +#### 3.1.1. Proxmox ID + +Required values (must be equal) +- [Custom Field] **Type:** Integer +- [Custom Field] **Name:** proxmox_id +- [Assignment] **Content-type:** Virtualization > virtual machine +- [Validation Rules] **Minimum value:** 0 + +Optional values (may be different) +- [Custom Field] **Label:** [Proxmox] ID +- [Custom Field] **Description:** Proxmox VM/CT ID + +
+ +#### 3.1.2. Proxmox Node + +Required values (must be equal) +- [Custom Field] **Type:** Text +- [Custom Field] **Name:** proxmox_node +- [Assignment] **Content-type:** Virtualization > virtual machine + +Optional values (may be different) +- [Custom Field] **Label:** [Proxmox] Node +- [Custom Field] **Description:** Proxmox Node (Server) + +
+ +#### 3.1.3. Proxmox Type (qemu or lxc) + +Required values (must be equal) +- [Custom Field] **Type:** Selection +- [Custom Field] **Name:** proxmox_type +- [Assignment] **Content-type:** Virtualization > virtual machine +- [Choices] **Choices:** qemu,lxc + +Optional values (may be different) +- [Custom Field] **Label:** [Proxmox] Type +- [Custom Field] **Description:** Proxmox type (VM or CT) + +
+ +#### 3.1.4. Proxmox Keep Interface + +Required values (must be equal) +- [Custom Field] **Type:** Boolean (true/false) +- [Custom Field] **Name:** proxmox_keep_interface +- [Assignment] **Content-type:** DCIM > Interface + +
+ +### 3.2. Custom Field Example + +![custom field image](etc/img/custom_field_example.png?raw=true "preview") + +--- + +## 4. Usage + +If everything is working correctly, you should see in Netbox's navigation the **Proxmox VM/CT** button in **Plugins** dropdown list. + +On **Proxmox VM/CT** page, click button ![full update button](etc/img/proxbox_full_update_button.png?raw=true "preview") + +It will redirect you to a new page and you just have to wait until the plugin runs through all Proxmox Cluster and create the VMs and CTs in Netbox. + +**OBS:** Due the time it takes to full update the information, your web brouse might show a timeout page (like HTTP Code 504) even though it actually worked. + +--- + +## 5. Enable Logs + +So that Proxbox plugin logs what is happening to the terminal, copy the following code and paste to `configuration.py` Netbox configuration file: + +```python +LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, + 'handlers': { + 'console': { + 'class': 'logging.StreamHandler', + }, + }, + 'root': { + 'handlers': ['console'], + 'level': 'INFO', + }, +} +``` + +You can customize this using the following link: [Django Docs - Logging](https://docs.djangoproject.com/en/4.1/topics/logging/). +Although the above standard configuration should do the trick to things work. + +--- + +## 6. Contributing +Developing tools for this project based on [ntc-netbox-plugin-onboarding](https://github.com/networktocode/ntc-netbox-plugin-onboarding) repo. + +Issues and pull requests are welcomed. + +--- + +## 7. Roadmap +- Start using custom models to optimize the use of the Plugin and stop using 'Custom Fields' +- Automatically remove Nodes on Netbox when removed on Promox (as it already happens with Virtual Machines and Containers) +- Add individual update of VM/CT's and Nodes (currently is only possible to update all at once) +- Add periodic update of the whole environment so that the user does not need to manually click the update button. +- Create virtual machines and containers directly on Netbox, having no need to access Proxmox. +- Add 'Console' button to enable console access to virtual machines + +--- + +## 8. Get Help from Community! +If you are struggling to get Proxbox working, feel free to contact someone from community (including me) to help you. +Below some of the communities available: +- **[Official - Slack Community (english)](https://netdev.chat/)** +- **[Community Discord Channel - 🇧🇷 (pt-br)](https://discord.gg/X6FudvXW)** +- **[Community Telegram Chat - 🇧🇷 (pt-br)](https://t.me/netboxbr)** \ No newline at end of file From 22da268eec1e81ed40cd886ad405995c534c1eba Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 22 May 2023 15:32:50 +0000 Subject: [PATCH 113/313] Add 'roadmap.md' page --- docs/mkdocs.yml | 3 ++- docs/roadmap.md | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 docs/roadmap.md diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 0de6da4..3f08671 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -106,4 +106,5 @@ nav: - Version 0.0.4: 'release-notes/version-0.0.1.md' - Version 0.0.3: 'release-notes/version-0.0.1.md' - Version 0.0.2: 'release-notes/version-0.0.1.md' - - Version 0.0.1: 'release-notes/version-0.0.1.md' \ No newline at end of file + - Version 0.0.1: 'release-notes/version-0.0.1.md' + - Roadmap: 'roadmap.md' \ No newline at end of file diff --git a/docs/roadmap.md b/docs/roadmap.md new file mode 100644 index 0000000..8c5e06d --- /dev/null +++ b/docs/roadmap.md @@ -0,0 +1,14 @@ +# Roadmap + +- Automatically remove Nodes on Netbox when removed on Promox (as it already happens with Virtual Machines and Containers) +- Add **individual update of VM/CT's and Nodes** (currently is only possible to update all at once) +- **Create virtual machines and containers directly on Netbox**, having no need to access Proxmox GUI. +- Add **'Console'** button to enable console access to virtual machines +- Full adoption of **FastAPI framework** +- **Background Jobs to sync data between the systems** +- Add **periodic update of the whole environment** so that the user does not need to manually click the update button. +- Improve Documentation +- Translate Documentation to Portuguese (pt-br) for brazilian community +- **Multi-Cluster suppport** + +If you wish to have another feature or functionality not present today and not mentioned here, checkout **[Issues](https://github.com/netdevopsbr/netbox-proxbox/issues)** and/or **[Discussions](https://github.com/orgs/netdevopsbr/discussions)** to view if there's already ongoing work. If not, feel free to start **opening a discussion** and expects feedback from community so that it is approved and transferred to GitHub Issues. \ No newline at end of file From 9737c05fe8c2ef03b089fe8dc65acc4c1004e67d Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Mon, 29 May 2023 11:46:07 -0300 Subject: [PATCH 114/313] Update README.md to http://proxbox.netbox.dev.br/ Docs --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 53b9afc..0b2dcc0 100755 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ > Although **Proxbox is under constant development**, I do it with **best effort** and **spare time**. I have no financial gain with this and hope you guys understand, as I know it is pretty useful to some people. If you want to **speed up its development**, solve the problem or create new features with your own code and create a **[Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)** so that I can **review** it. **I also would like to appreciate the people who already contributed with code or/and bug reports.** Without this help, surely Proxbox would be much less useful as it is already today to several environments!
- + Proxbox logo
-### [New Documentation available!](https://docs.netbox.dev.br/en/netbox/plugins/netbox-proxbox) +### [New Documentation available!](http://proxbox.netbox.dev.br/)

From f3015331cb5fd792784267d50ba23daf7bbc44e0 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 29 May 2023 19:35:08 +0000 Subject: [PATCH 115/313] Change remaining URLs to proxbox.netbox.dev.br --- .github/workflows/docs.yml | 2 +- docs/CNAME | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 docs/CNAME diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 05b1f7f..eed6dbe 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -43,7 +43,7 @@ jobs: sudo git push --set-upstream origin gh-pages - name: Change custom domain run: | - sudo echo 'docs.netbox.dev.br' > CNAME + sudo echo 'proxbox.netbox.dev.br' > CNAME sudo git add CNAME sudo git commit -m "Change custom domain to 'proxbox.netbox.dev.br'" sudo git push diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 0000000..a3cebbe --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +proxbox.netbox.dev.br \ No newline at end of file From cb5a8871744ba657cd3437394ab022cb01935a22 Mon Sep 17 00:00:00 2001 From: Langlais115 Date: Wed, 31 May 2023 11:43:22 +0200 Subject: [PATCH 116/313] Add curly bracket fix #117 Fix missing curly bracket --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0b2dcc0..f0cec9d 100755 --- a/README.md +++ b/README.md @@ -176,6 +176,7 @@ PLUGINS_CONFIG = { } } } +} ```
From 76c7b79552dbb3a6a06b8b0cae60cbfd27497c53 Mon Sep 17 00:00:00 2001 From: Emerson Pereira Date: Thu, 29 Jun 2023 14:21:32 -0300 Subject: [PATCH 117/313] Update docs.yml changing master to develop branch --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index eed6dbe..e72d1d6 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -2,7 +2,7 @@ name: docs on: push: branches: - - master + - develop - main permissions: contents: write From 75021d0a5bdeb43b81295417dff05fdb152096fd Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 29 Jun 2023 18:12:14 +0000 Subject: [PATCH 118/313] Modify index.md page to test it --- docs/configuration/index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/configuration/index.md b/docs/configuration/index.md index 6f6f72b..d20e41b 100644 --- a/docs/configuration/index.md +++ b/docs/configuration/index.md @@ -1 +1,3 @@ -# ProxBox Configuration \ No newline at end of file +# ProxBox Configuration + +How to configure Proxbox! Ongoing work. \ No newline at end of file From 28bfd77c23a2d8e1e83651a8feed2cd0295bfa73 Mon Sep 17 00:00:00 2001 From: devopstales <42894256+devopstales@users.noreply.github.com> Date: Thu, 6 Jul 2023 21:24:53 +0200 Subject: [PATCH 119/313] feat(Multi server): Add multi server support https://github.com/netdevopsbr/netbox-proxbox/issues/33 Signed-off-by: devopstales <42894256+devopstales@users.noreply.github.com> --- netbox_proxbox/__init__.py | 24 +-- netbox_proxbox/proxbox_api/create/dcim.py | 4 +- .../proxbox_api/create/virtualization.py | 17 +-- netbox_proxbox/proxbox_api/plugins_config.py | 142 +++++++++-------- netbox_proxbox/proxbox_api/remove.py | 13 +- netbox_proxbox/proxbox_api/update.py | 143 ++++++++++++++---- netbox_proxbox/proxbox_api/updates/node.py | 12 +- .../proxbox_api/updates/virtual_machine.py | 18 +-- 8 files changed, 224 insertions(+), 149 deletions(-) diff --git a/netbox_proxbox/__init__.py b/netbox_proxbox/__init__.py index 054f72f..5b409ba 100755 --- a/netbox_proxbox/__init__.py +++ b/netbox_proxbox/__init__.py @@ -11,17 +11,19 @@ class ProxboxConfig(PluginConfig): base_url = "proxbox" required_settings = [] default_settings = { - 'proxmox': { - 'domain': 'proxbox.example.com', # May also be IP address - 'http_port': 8006, - 'user': 'root@pam', - 'password': 'Strong@P4ssword', - 'token': { - 'name': 'tokenID', - 'value': '039az154-23b2-4be0-8d20-b66abc8c4686' - }, - 'ssl': False - }, + 'proxmox': [ + { + 'domain': 'proxbox.example.com', # May also be IP address + 'http_port': 8006, + 'user': 'root@pam', + 'password': 'Strong@P4ssword', + 'token': { + 'name': 'tokenID', + 'value': '039az154-23b2-4be0-8d20-b66abc8c4686' + }, + 'ssl': False + } + ], 'netbox': { 'domain': 'netbox.example.com', # May also be IP address 'http_port': 80, diff --git a/netbox_proxbox/proxbox_api/create/dcim.py b/netbox_proxbox/proxbox_api/create/dcim.py index 28cfc4a..a1f47c1 100755 --- a/netbox_proxbox/proxbox_api/create/dcim.py +++ b/netbox_proxbox/proxbox_api/create/dcim.py @@ -130,7 +130,7 @@ def site(**kwargs): # # dcim.devices (nodes) # -def node(proxmox_node): +def node(proxmox, proxmox_node): # Create json with basic NODE information node_json = {} node_json["name"] = proxmox_node['name'] @@ -140,7 +140,7 @@ def node(proxmox_node): node_json["status"] = 'active' node_json["tags"] = [extras.tag().id] - cluster = virtualization.cluster() + cluster = virtualization.cluster(proxmox) if cluster: if cluster != None: node_json["cluster"] = cluster.id diff --git a/netbox_proxbox/proxbox_api/create/virtualization.py b/netbox_proxbox/proxbox_api/create/virtualization.py index 56feaef..a092697 100755 --- a/netbox_proxbox/proxbox_api/create/virtualization.py +++ b/netbox_proxbox/proxbox_api/create/virtualization.py @@ -3,9 +3,7 @@ # PLUGIN_CONFIG variables from ..plugins_config import ( NETBOX_SESSION as nb, - PROXMOX_SESSION as proxmox, NETBOX_VM_ROLE_ID, - ) from . import ( @@ -54,7 +52,7 @@ def cluster_type(): # # virtualization.clusters # -def cluster(): +def cluster(proxmox): # # Cluster # @@ -135,19 +133,10 @@ def cluster(): except: return f"Error creating the '{proxmox_cluster_name}' cluster. Possible errors: the name '{proxmox_cluster_name}' is already used." - - - - - - - - - # # virtualization.virtual_machines # -def virtual_machine(proxmox_vm, duplicate): +def virtual_machine(proxmox, proxmox_vm, duplicate): # Create json with basic VM/CT information vm_json = {} netbox_obj = None @@ -164,7 +153,7 @@ def virtual_machine(proxmox_vm, duplicate): vm_json["name"] = proxmox_vm['name'] vm_json["status"] = 'active' - vm_json["cluster"] = cluster().id + vm_json["cluster"] = cluster(proxmox).id vm_json["role"] = extras.role(role_id = NETBOX_VM_ROLE_ID).id vm_json["tags"] = [extras.tag().id] diff --git a/netbox_proxbox/proxbox_api/plugins_config.py b/netbox_proxbox/proxbox_api/plugins_config.py index 7b2f6f6..cf1eef7 100755 --- a/netbox_proxbox/proxbox_api/plugins_config.py +++ b/netbox_proxbox/proxbox_api/plugins_config.py @@ -74,23 +74,6 @@ PROXMOX_SETTING = USER_PLUGINS_CONFIG.get("proxmox", DEFAULT_PROXMOX_SETTING) NETBOX_SETTING = USER_PLUGINS_CONFIG.get("netbox", DEFAULT_NETBOX_SETTING) -# -# Proxmox related settings -# -# API URI -PROXMOX = PROXMOX_SETTING.get("domain", DEFAULT_PROXMOX) -PROXMOX_PORT = PROXMOX_SETTING.get("http_port", DEFAULT_PROXMOX_PORT) -PROXMOX_SSL = PROXMOX_SETTING.get("ssl", DEFAULT_PROXMOX_SSL) - -# ACCESS -PROXMOX_USER = PROXMOX_SETTING.get("user", DEFAULT_PROXMOX_USER) -PROXMOX_PASSWORD = PROXMOX_SETTING.get("password", DEFAULT_PROXMOX_PASSWORD) - -PROXMOX_TOKEN = PROXMOX_SETTING.get("token", DEFAULT_PROXMOX_TOKEN) -if PROXMOX_TOKEN != None: - PROXMOX_TOKEN_NAME = PROXMOX_TOKEN.get("name", DEFAULT_PROXMOX_TOKEN_NAME) - PROXMOX_TOKEN_VALUE = PROXMOX_TOKEN.get("value", DEFAULT_PROXMOX_TOKEN_VALUE) - # # NETBOX RELATED SETTINGS # @@ -111,49 +94,88 @@ NETBOX_NODE_ROLE_ID = NETBOX_SETTINGS.get("node_role_id", DEFAULT_NETBOX_NODE_ROLE_ID) NETBOX_SITE_ID = NETBOX_SETTINGS.get("site_id", DEFAULT_NETBOX_SITE_ID) - -#################################################################################################### -# # -# WITH PLUGIN CONFIGURED, STARTS BOTH PROXMOX AND NETBOX SESSION # -# # -#################################################################################################### - -# -# PROXMOX SESSION -# -# Check if token was provided -if PROXMOX_TOKEN_VALUE != None and len(PROXMOX_TOKEN_VALUE) > 0: - try: - if PROXMOX_SSL == False: - # DISABLE SSL WARNING - import urllib3 - urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) - - # Start PROXMOX session using TOKEN - PROXMOX_SESSION = ProxmoxAPI( - PROXMOX, - port=PROXMOX_PORT, - user=PROXMOX_USER, - token_name=PROXMOX_TOKEN_NAME, - token_value=PROXMOX_TOKEN_VALUE, - verify_ssl=PROXMOX_SSL - ) - except: - raise RuntimeError(f'Error trying to initialize Proxmox Session using TOKEN (token_name: {PROXMOX_TOKEN_NAME} and token_value: {PROXMOX_TOKEN_VALUE} provided') - -# If token not provided, start session using user and passwd -else: - try: - # Start PROXMOX session using USER CREDENTIALS - PROXMOX_SESSION = ProxmoxAPI( - PROXMOX, - port=PROXMOX_PORT, - user=PROXMOX_USER, - password=PROXMOX_PASSWORD, - verify_ssl=PROXMOX_SSL - ) - except: - raise RuntimeError(f'Error trying to initialize Proxmox Session using USER {PROXMOX_USER} and PASSWORD') +PROXMOX_SESSIONS = {} + +def get_proxmox_session(PROXMOX_SETTING): + # + # Proxmox related settings + # + # API URI + PROXMOX = PROXMOX_SETTING.get("domain", DEFAULT_PROXMOX) + PROXMOX_PORT = PROXMOX_SETTING.get("http_port", DEFAULT_PROXMOX_PORT) + PROXMOX_SSL = PROXMOX_SETTING.get("ssl", DEFAULT_PROXMOX_SSL) + + # ACCESS + PROXMOX_USER = PROXMOX_SETTING.get("user", DEFAULT_PROXMOX_USER) + PROXMOX_PASSWORD = PROXMOX_SETTING.get("password", DEFAULT_PROXMOX_PASSWORD) + + PROXMOX_TOKEN = PROXMOX_SETTING.get("token", DEFAULT_PROXMOX_TOKEN) + if PROXMOX_TOKEN != None: + PROXMOX_TOKEN_NAME = PROXMOX_TOKEN.get("name", DEFAULT_PROXMOX_TOKEN_NAME) + PROXMOX_TOKEN_VALUE = PROXMOX_TOKEN.get("value", DEFAULT_PROXMOX_TOKEN_VALUE) + + output = { + 'PROXMOX': PROXMOX, + 'PROXMOX_PORT': PROXMOX_PORT, + 'PROXMOX_SSL': PROXMOX_SSL, + 'PROXMOX_TOKEN': PROXMOX_TOKEN, + 'PROXMOX_TOKEN_NAME': PROXMOX_TOKEN_NAME, + 'PROXMOX_TOKEN_VALUE': PROXMOX_TOKEN_VALUE + } + #################################################################################################### + # # + # WITH PLUGIN CONFIGURED, STARTS BOTH PROXMOX AND NETBOX SESSION # + # # + #################################################################################################### + + # + # PROXMOX SESSION + # + # Check if token was provided + if PROXMOX_TOKEN_VALUE != None and len(PROXMOX_TOKEN_VALUE) > 0: + try: + if PROXMOX_SSL == False: + # DISABLE SSL WARNING + import urllib3 + urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + + # Start PROXMOX session using TOKEN + PROXMOX_SESSION = ProxmoxAPI( + PROXMOX, + port=PROXMOX_PORT, + user=PROXMOX_USER, + token_name=PROXMOX_TOKEN_NAME, + token_value=PROXMOX_TOKEN_VALUE, + verify_ssl=PROXMOX_SSL + ) + output['PROXMOX_SESSION'] = PROXMOX_SESSION + return output + except: + raise RuntimeError(f'Error trying to initialize Proxmox Session using TOKEN (token_name: {PROXMOX_TOKEN_NAME} and token_value: {PROXMOX_TOKEN_VALUE} provided') + return None + + # If token not provided, start session using user and passwd + else: + try: + # Start PROXMOX session using USER CREDENTIALS + PROXMOX_SESSION = ProxmoxAPI( + PROXMOX, + port=PROXMOX_PORT, + user=PROXMOX_USER, + password=PROXMOX_PASSWORD, + verify_ssl=PROXMOX_SSL + ) + output['PROXMOX_SESSION'] = PROXMOX_SESSION + return output + except: + raise RuntimeError(f'Error trying to initialize Proxmox Session using USER {PROXMOX_USER} and PASSWORD') + return None + +for s in PROXMOX_SETTING: + P_Setting = get_proxmox_session(s) + if P_Setting is not None: + v = P_Setting['PROXMOX'] + PROXMOX_SESSIONS[v] = P_Setting # # NETBOX SESSION diff --git a/netbox_proxbox/proxbox_api/remove.py b/netbox_proxbox/proxbox_api/remove.py index 9556d4b..fe7fb2e 100755 --- a/netbox_proxbox/proxbox_api/remove.py +++ b/netbox_proxbox/proxbox_api/remove.py @@ -2,15 +2,18 @@ # PLUGIN_CONFIG variables from .plugins_config import ( - PROXMOX_SESSION as proxmox, NETBOX_SESSION as nb, ) import logging # Verify if VM/CT exists on Proxmox -def is_vm_on_proxmox(netbox_vm): +def is_vm_on_proxmox(proxmox_session, netbox_vm): # Get json of all virtual machines from Proxmox + proxmox = proxmox_session.get('PROXMOX_SESSION') + PROXMOX = proxmox_session.get('PROXMOX') + PROXMOX_PORT = proxmox_session.get('PROXMOX_PORT') + all_proxmox_vms = proxmox.cluster.resources.get(type='vm') # Netbox name @@ -69,7 +72,7 @@ def is_vm_on_proxmox(netbox_vm): # If 'local_context' is null, try updating it to be able to get ID from VM if local_context == None: - local_context_updated = updates.local_context_data(netbox_vm, all_proxmox_vms[name_index]) + local_context_updated = updates.local_context_data(netbox_vm, all_proxmox_vms[name_index], PROXMOX, PROXMOX_PORT) if local_context_updated == True: local_context = netbox_vm.local_context_data @@ -105,7 +108,7 @@ def is_vm_on_proxmox(netbox_vm): # Comparison failed, not able to find VM on Proxmox return False -def all(): +def all(proxmox_session): json_vm_all = [] # Get all VM/CTs from Netbox @@ -120,7 +123,7 @@ def all(): json_vm["name"] = netbox_name # Verify if VM exists on Proxmox - vm_on_proxmox = is_vm_on_proxmox(nb_vm_each) + vm_on_proxmox = is_vm_on_proxmox(proxmox_session, nb_vm_each) if vm_on_proxmox == True: log_message = f'[OK] VM exists on both systems (Netbox and Proxmox) -> {netbox_name}' diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 0b0b5b5..b9086cb 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -1,13 +1,10 @@ +import time +from threading import Thread # PLUGIN_CONFIG variables from .plugins_config import ( - PROXMOX, - PROXMOX_PORT, - PROXMOX_USER, - PROXMOX_PASSWORD, - PROXMOX_SSL, NETBOX, NETBOX_TOKEN, - PROXMOX_SESSION as proxmox, + PROXMOX_SESSIONS as proxmox_sessions, NETBOX_SESSION as nb, ) @@ -22,7 +19,10 @@ import logging # Call all functions to update Virtual Machine -def vm_full_update(netbox_vm, proxmox_vm): +def vm_full_update(proxmox_session, netbox_vm, proxmox_vm): + proxmox = proxmox_session.get('PROXMOX_SESSION') + PROXMOX = proxmox_session.get('PROXMOX') + PROXMOX_PORT = proxmox_session.get('PROXMOX_PORT') changes = {} # Update 'status' field, if necessary. @@ -32,13 +32,13 @@ def vm_full_update(netbox_vm, proxmox_vm): custom_fields_updated = updates.virtual_machine.custom_fields(netbox_vm, proxmox_vm) # Update 'local_context_data' json, if necessary. - local_context_updated = updates.virtual_machine.local_context_data(netbox_vm, proxmox_vm) + local_context_updated = updates.virtual_machine.local_context_data(netbox_vm, proxmox_vm, PROXMOX, PROXMOX_PORT) # Update 'resources', like CPU, Memory and Disk, if necessary. resources_updated = updates.virtual_machine.resources(netbox_vm, proxmox_vm) - interfaces_updated = updates.virtual_machine.interfaces(netbox_vm, proxmox_vm) - ips_updated = updates.virtual_machine.interfaces_ips(netbox_vm, proxmox_vm) + interfaces_updated = updates.virtual_machine.interfaces(proxmox,netbox_vm, proxmox_vm) + ips_updated = updates.virtual_machine.interfaces_ips(proxmox, netbox_vm, proxmox_vm) tag_updated = updates.extras.tag(netbox_vm) @@ -57,11 +57,11 @@ def vm_full_update(netbox_vm, proxmox_vm): -def node_full_update(netbox_node, proxmox_json, proxmox_cluster): +def node_full_update(proxmox, netbox_node, proxmox_json, proxmox_cluster): changes = {} status_updated = updates.node.status(netbox_node, proxmox_json) - cluster_updated = updates.node.cluster(netbox_node, proxmox_json, proxmox_cluster) + cluster_updated = updates.node.cluster(proxmox, netbox_node, proxmox_json, proxmox_cluster) interfaces_updated = updates.node.interfaces(netbox_node, proxmox_json) changes = { @@ -73,7 +73,7 @@ def node_full_update(netbox_node, proxmox_json, proxmox_cluster): return changes -def search_by_proxmox_id(proxmox_id): +def search_by_proxmox_id(proxmox, proxmox_id): all_proxmox_vms = proxmox.cluster.resources.get(type='vm') for px_vm in all_proxmox_vms: @@ -88,7 +88,7 @@ def search_by_proxmox_id(proxmox_id): -def search_by_proxmox_name(proxmox_name): +def search_by_proxmox_name(proxmox, proxmox_name): all_proxmox_vms = proxmox.cluster.resources.get(type='vm') for px_vm in all_proxmox_vms: @@ -104,7 +104,7 @@ def search_by_proxmox_name(proxmox_name): def search_by_id(id): - # Save Netbox VirtualMachine object + # Get Netbox VirtualMachine object netbox_obj = nb.virtualization.virtual_machines.get(id) proxmox_name = netbox_obj.name @@ -127,6 +127,9 @@ def search_by_id(id): # Makes all necessary checks so that VM/CT exist on Netbox. def virtual_machine(**kwargs): + print('[OK] STARTING PROCESS FOR VIRTUAL MACHINE') + proxmox_session = kwargs.get('proxmox_session') + proxmox = proxmox_session.get('PROXMOX_SESSION') # JSON containing the result of the VM changes json_vm = {} @@ -203,7 +206,7 @@ def virtual_machine(**kwargs): # Search using Proxmox ID if 'int' in str(search_result_type): - proxmox_json = search_by_proxmox_id(search_result) + proxmox_json = search_by_proxmox_id(proxmox, search_result) # Analyze search result and returns error, if null value. if proxmox_json == None: @@ -215,7 +218,7 @@ def virtual_machine(**kwargs): # Search using Proxmox NAME elif 'str' in str(search_result_type): - proxmox_json = search_by_proxmox_name(search_result) + proxmox_json = search_by_proxmox_name(proxmox, search_result) # Analyze search result and returns error, if null value. if proxmox_json == None: @@ -228,7 +231,7 @@ def virtual_machine(**kwargs): else: # Search VM JSON of Proxmox using argument 'proxmox_id' if proxmox_id != None: - proxmox_json = search_by_proxmox_id(proxmox_id) + proxmox_json = search_by_proxmox_id(proxmox, proxmox_id) # Analyze search result and returns error, if null value. if proxmox_json == None: @@ -241,7 +244,7 @@ def virtual_machine(**kwargs): else: # Search using Proxmox NAME if name != None: - proxmox_json = search_by_proxmox_name(name) + proxmox_json = search_by_proxmox_name(proxmox, name) # Analyze search result and returns error, if null value. if proxmox_json == None: @@ -255,8 +258,30 @@ def virtual_machine(**kwargs): return False # Search Netbox object by name gotten from Proxmox - netbox_vm = nb.virtualization.virtual_machines.get(name = proxmox_vm_name) + # netbox_vm = nb.virtualization.virtual_machines.get(name = proxmox_vm_name) + print('[OK] Getting node') + node = proxmox_json['node'] + cluster = None + try: + cluster = kwargs.get('cluster') + print('[OK] Getting cluster') + except Exception as e: + cluster = None + if cluster is None: + cluster = create.virtualization.cluster(proxmox) + + print('[OK] Getting vmid') + vmid = proxmox_json['vmid'] + print('[OK] Getting getting vm from netbox for {} , {}, {}'.format(cluster.name, vmid, node)) + netbox_vm_all = nb.virtualization.virtual_machines.filter(cluster=cluster.name, cf_proxmox_id=vmid, + cf_proxmox_node=node) + + netbox_vm = None + for vm in netbox_vm_all: + netbox_vm = vm + break # ???? + duplicate = False try: # Check if Proxbox tag exist. @@ -270,7 +295,7 @@ def virtual_machine(**kwargs): # VM Found: if netbox_vm: # Update Netbox information - full_update = vm_full_update(netbox_vm, proxmox_json) + full_update = vm_full_update(proxmox_session, netbox_vm, proxmox_json) # I made this way since dict.update didn't work json_vm["vm_id"] = netbox_vm.id @@ -298,12 +323,12 @@ def virtual_machine(**kwargs): logging.info(f'[OK] VM does not exist on Netbox -> {proxmox_vm_name}') # Analyze if VM was sucessfully created. - netbox_vm = create.virtualization.virtual_machine(proxmox_json, duplicate) + netbox_vm = create.virtualization.virtual_machine(proxmox, proxmox_json, duplicate) # VM created with basic information if netbox_vm != None: # Update rest of configuration - full_update = vm_full_update(netbox_vm, proxmox_json) + full_update = vm_full_update(proxmox_session, netbox_vm, proxmox_json) json_vm = full_update json_vm["vm_id"] = netbox_vm.id @@ -329,6 +354,7 @@ def virtual_machine(**kwargs): # VM not created json_vm["result"] = False + print('[OK] FINISH PROCESS FOR VIRTUAL MACHINE') return json_vm @@ -336,12 +362,13 @@ def virtual_machine(**kwargs): def nodes(**kwargs): proxmox_cluster = kwargs.get('proxmox_cluster') proxmox_json = kwargs.get('proxmox_json') + proxmox = kwargs.get('proxmox') proxmox_node_name = proxmox_json.get("name") def create_node(): # If node does not exist, create it. - netbox_node = create.dcim.node(proxmox_json) + netbox_node = create.dcim.node(proxmox, proxmox_json) # Node created if netbox_node != None: @@ -398,7 +425,7 @@ def create_node(): netbox_node = netbox_search # Update Netbox node information, if necessary. - full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) + full_update = node_full_update(proxmox, netbox_node, proxmox_json, proxmox_cluster) json_node = full_update full_update_list = list(full_update.values()) @@ -427,17 +454,68 @@ def create_node(): return json_node - +def run_process_in_thread(proxmox_session, key, result, index, **kwargs): + output = {} + try: + print("Processing data for: {0}".format(key)) + output = process_all_in_session(proxmox_session, **kwargs) + result[index] = output + except Exception as e: + message = "OS error: {0}".format(e) + print(message) + result[index] = { + 'message': message + } + return output # Makes everything needed so that VIRTUAL MACHINES / CONTAINERS, NODES and CLUSTER exists on Netbox def all(**kwargs): + run_with_threads = kwargs.get("run_with_threads", True) + start_time = time.time() + result = [] + if run_with_threads: + print("Start process with threading") + threads = [None] * len(proxmox_sessions) + results = [None] * len(proxmox_sessions) + i = 0 + for key in proxmox_sessions: + proxmox_session = proxmox_sessions[key] + threads[i] = Thread(target=run_process_in_thread, args=(proxmox_session, key, results, i), kwargs=kwargs) + threads[i].start() + i = i + 1 + + p = len(threads) + r = range(p) + for i in r: + threads[(p - 1) - i].join() + else: + print("Start process Sequential") + for key in proxmox_sessions: + try: + session = proxmox_sessions[key] + print("Processing data for: {0}".format(key)) + output = process_all_in_session(session, **kwargs) + result.append(output) + except Exception as e: + message = "OS error: {0}".format(e) + print(message) + output = { + 'message': message + } + result.append(output) + + print("--- %s seconds ---" % (time.time() - start_time)) + return results + +def process_all_in_session(proxmox_session, **kwargs): print("[Proxbox - Netbox plugin | Update All]") + proxmox = proxmox_session.get('PROXMOX_SESSION') cluster_all = proxmox.cluster.status.get() # # CLUSTER # - cluster = create.virtualization.cluster() + cluster = create.virtualization.cluster(proxmox) print('\n\n\nCLUSTER...') try: @@ -455,8 +533,7 @@ def all(**kwargs): # Get all NODES from Proxmox for px_node_each in proxmox_nodes: - node_updated = nodes(proxmox_json = px_node_each, proxmox_cluster = proxmox_cluster) - + node_updated = nodes(proxmox_json = px_node_each, proxmox_cluster = proxmox_cluster, proxmox = proxmox) nodes_list.append(node_updated) @@ -468,9 +545,9 @@ def all(**kwargs): print('\nUPDATE ALL...') # Get all VM/CTs from Proxmox - for px_vm_each in proxmox.cluster.resources.get(type='vm'): - vm_updated = virtual_machine(proxmox_json = px_vm_each) - + node_vms_all = proxmox.cluster.resources.get(type='vm') + for px_vm_each in node_vms_all: + vm_updated = virtual_machine(proxmox_json = px_vm_each, proxmox_session = proxmox_session, cluster = cluster) virtualmachines_list.append(vm_updated) # Get "remove_unused" passed on function call @@ -479,7 +556,7 @@ def all(**kwargs): # Remove Netbox's old data if remove_unused == True: print('\nREMOVE UNUSED DATA...') - remove_info = remove.all() + remove_info = remove.all(proxmox_session) else: remove_info = False # diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index c8f5f8c..3a6c340 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -1,12 +1,6 @@ from ..plugins_config import ( - PROXMOX, - PROXMOX_PORT, - PROXMOX_USER, - PROXMOX_PASSWORD, - PROXMOX_SSL, NETBOX, NETBOX_TOKEN, - PROXMOX_SESSION as proxmox, NETBOX_SESSION as nb, ) @@ -57,7 +51,7 @@ def status(netbox_node, proxmox_node): # Update CLUSTER field on /dcim/device/{id} -def cluster(netbox_node, proxmox_node, proxmox_cluster): +def cluster(proxmox, netbox_node, proxmox_node, proxmox_cluster): # # Compare CLUSTER # @@ -69,7 +63,7 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): # If cluster is not filled or even filled, but different from actual cluster, update it. if netbox_node.cluster.name != proxmox_cluster['name'] or netbox_node.cluster.name == None: # Search for Proxmox Cluster using create.cluster() function - cluster_id = create.virtualization.cluster().id + cluster_id = create.virtualization.cluster(proxmox).id # Use Cluster ID to update NODE information netbox_node.cluster.id = cluster_id @@ -106,7 +100,7 @@ def cluster(netbox_node, proxmox_node, proxmox_cluster): return cluster_updated -def interfaces(netbox_node, proxmox_json): +def interfaces(proxmox, netbox_node, proxmox_json): updated = False _int_port = ['OVSIntPort'] _lag_port = ['OVSBond'] diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index c1dc232..9ad2273 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -4,14 +4,8 @@ # PLUGIN_CONFIG variables from ..plugins_config import ( - PROXMOX, - PROXMOX_PORT, - PROXMOX_USER, - PROXMOX_PASSWORD, - PROXMOX_SSL, NETBOX, NETBOX_TOKEN, - PROXMOX_SESSION as proxmox, NETBOX_SESSION as nb, ) @@ -177,7 +171,7 @@ def custom_fields(netbox_vm, proxmox_vm): # Update 'local_context_data' field on Netbox Virtual Machine based on Proxbox -def local_context_data(netbox_vm, proxmox_vm): +def local_context_data(netbox_vm, proxmox_vm, PROXMOX, PROXMOX_PORT): current_local_context = netbox_vm.local_context_data proxmox_values = {} @@ -219,12 +213,6 @@ def local_context_data(netbox_vm, proxmox_vm): return False - - - - - - # Updates following fields based on Proxmox: "vcpus", "memory", "disk", if necessary. def resources(netbox_vm, proxmox_vm): # Save values from Proxmox @@ -285,7 +273,7 @@ def resources(netbox_vm, proxmox_vm): else: return False -def interfaces(netbox_vm, proxmox_vm): +def interfaces(proxmox, netbox_vm, proxmox_vm): updated = False try: if proxmox_vm['type'] == 'qemu': @@ -369,7 +357,7 @@ def interfaces(netbox_vm, proxmox_vm): return False return updated -def interfaces_ips(netbox_vm, proxmox_vm): +def interfaces_ips(proxmox, netbox_vm, proxmox_vm): updated = False if proxmox_vm['status'] == 'running': _pmx_ips = [] From 5310468b2cb4d40cd808a8f897d2ab872f74e202 Mon Sep 17 00:00:00 2001 From: devopstales <42894256+devopstales@users.noreply.github.com> Date: Sat, 8 Jul 2023 10:44:42 +0200 Subject: [PATCH 120/313] feat(Multi server): Update missing components https://github.com/netdevopsbr/netbox-proxbox/issues/33 Signed-off-by: devopstales <42894256+devopstales@users.noreply.github.com> --- netbox_proxbox/proxbox_api/plugins_config.py | 14 ++++++-------- netbox_proxbox/proxbox_api/remove.py | 6 +++--- netbox_proxbox/proxbox_api/update.py | 9 ++++++--- .../proxbox_api/updates/virtual_machine.py | 2 +- reinstall.sh | 9 +++++++++ 5 files changed, 25 insertions(+), 15 deletions(-) create mode 100755 reinstall.sh diff --git a/netbox_proxbox/proxbox_api/plugins_config.py b/netbox_proxbox/proxbox_api/plugins_config.py index cf1eef7..df7e70d 100755 --- a/netbox_proxbox/proxbox_api/plugins_config.py +++ b/netbox_proxbox/proxbox_api/plugins_config.py @@ -33,15 +33,15 @@ # Proxmox related settings # # API URI -DEFAULT_PROXMOX = DEFAULT_PROXMOX_SETTING.get("domain") -DEFAULT_PROXMOX_PORT = DEFAULT_PROXMOX_SETTING.get("http_port") -DEFAULT_PROXMOX_SSL = DEFAULT_PROXMOX_SETTING.get("ssl") +DEFAULT_PROXMOX = DEFAULT_PROXMOX_SETTING[0].get("domain") +DEFAULT_PROXMOX_PORT = DEFAULT_PROXMOX_SETTING[0].get("http_port") +DEFAULT_PROXMOX_SSL = DEFAULT_PROXMOX_SETTING[0].get("ssl") # ACCESS -DEFAULT_PROXMOX_USER = DEFAULT_PROXMOX_SETTING.get("user") -DEFAULT_PROXMOX_PASSWORD = DEFAULT_PROXMOX_SETTING.get("password") +DEFAULT_PROXMOX_USER = DEFAULT_PROXMOX_SETTING[0].get("user") +DEFAULT_PROXMOX_PASSWORD = DEFAULT_PROXMOX_SETTING[0].get("password") -DEFAULT_PROXMOX_TOKEN = DEFAULT_PROXMOX_SETTING.get("token") +DEFAULT_PROXMOX_TOKEN = DEFAULT_PROXMOX_SETTING[0].get("token") DEFAULT_PROXMOX_TOKEN_NAME = DEFAULT_PROXMOX_TOKEN.get("name", None) DEFAULT_PROXMOX_TOKEN_VALUE = DEFAULT_PROXMOX_TOKEN.get("value", None) @@ -152,7 +152,6 @@ def get_proxmox_session(PROXMOX_SETTING): return output except: raise RuntimeError(f'Error trying to initialize Proxmox Session using TOKEN (token_name: {PROXMOX_TOKEN_NAME} and token_value: {PROXMOX_TOKEN_VALUE} provided') - return None # If token not provided, start session using user and passwd else: @@ -169,7 +168,6 @@ def get_proxmox_session(PROXMOX_SETTING): return output except: raise RuntimeError(f'Error trying to initialize Proxmox Session using USER {PROXMOX_USER} and PASSWORD') - return None for s in PROXMOX_SETTING: P_Setting = get_proxmox_session(s) diff --git a/netbox_proxbox/proxbox_api/remove.py b/netbox_proxbox/proxbox_api/remove.py index fe7fb2e..a87dca0 100755 --- a/netbox_proxbox/proxbox_api/remove.py +++ b/netbox_proxbox/proxbox_api/remove.py @@ -108,11 +108,11 @@ def is_vm_on_proxmox(proxmox_session, netbox_vm): # Comparison failed, not able to find VM on Proxmox return False -def all(proxmox_session): +def all(proxmox_session, cluster): json_vm_all = [] - # Get all VM/CTs from Netbox - netbox_all_vms = nb.virtualization.virtual_machines.all() + # Get VM/CTs of the specific cluster from Netbox + netbox_all_vms = nb.virtualization.virtual_machines.filter(cluster=cluster.name) for nb_vm_each in netbox_all_vms: json_vm = {} diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index b9086cb..5270fd9 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -37,7 +37,7 @@ def vm_full_update(proxmox_session, netbox_vm, proxmox_vm): # Update 'resources', like CPU, Memory and Disk, if necessary. resources_updated = updates.virtual_machine.resources(netbox_vm, proxmox_vm) - interfaces_updated = updates.virtual_machine.interfaces(proxmox,netbox_vm, proxmox_vm) + interfaces_updated = updates.virtual_machine.interfaces(proxmox, netbox_vm, proxmox_vm) ips_updated = updates.virtual_machine.interfaces_ips(proxmox, netbox_vm, proxmox_vm) tag_updated = updates.extras.tag(netbox_vm) @@ -62,7 +62,7 @@ def node_full_update(proxmox, netbox_node, proxmox_json, proxmox_cluster): status_updated = updates.node.status(netbox_node, proxmox_json) cluster_updated = updates.node.cluster(proxmox, netbox_node, proxmox_json, proxmox_cluster) - interfaces_updated = updates.node.interfaces(netbox_node, proxmox_json) + interfaces_updated = updates.node.interfaces(proxmox, netbox_node, proxmox_json) changes = { "status" : status_updated, @@ -394,6 +394,9 @@ def create_node(): else: logging.error(f'[ERROR] Something went wrong when creating the node.-> {proxmox_node_name} (2)') json_node = {} + json_node["status"] = None + json_node["cluster"] = None + json_node["interfaces"] = None json_node["result"] = False return json_node @@ -556,7 +559,7 @@ def process_all_in_session(proxmox_session, **kwargs): # Remove Netbox's old data if remove_unused == True: print('\nREMOVE UNUSED DATA...') - remove_info = remove.all(proxmox_session) + remove_info = remove.all(proxmox_session, cluster) else: remove_info = False # diff --git a/netbox_proxbox/proxbox_api/updates/virtual_machine.py b/netbox_proxbox/proxbox_api/updates/virtual_machine.py index 9ad2273..575bdc0 100755 --- a/netbox_proxbox/proxbox_api/updates/virtual_machine.py +++ b/netbox_proxbox/proxbox_api/updates/virtual_machine.py @@ -78,7 +78,7 @@ def http_update_custom_fields(**kwargs): # HTTP PATCH Request (partially update) # # URL - url = '{}/api/virtualization/virtual-machines/{}/'.format(domain_with_http, vm_id) + url = '{}api/virtualization/virtual-machines/{}/'.format(domain_with_http, vm_id) # HTTP Request Headers headers = { diff --git a/reinstall.sh b/reinstall.sh new file mode 100755 index 0000000..9e51666 --- /dev/null +++ b/reinstall.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +systemctl stop netbox.service + +pip3 uninstall netbox-proxbox -y + +python3 setup.py develop + +systemctl start netbox.service From 8edcf6584db764ea4e005e9179878c134d4b5235 Mon Sep 17 00:00:00 2001 From: devopstales <42894256+devopstales@users.noreply.github.com> Date: Sat, 8 Jul 2023 10:48:26 +0200 Subject: [PATCH 121/313] feat(Multi server): Update README and add custom fields csv https://github.com/netdevopsbr/netbox-proxbox/issues/33 Signed-off-by: devopstales <42894256+devopstales@users.noreply.github.com> --- README.md | 27 +++++++++++++++------------ netbox_custom_fields.csv | 5 +++++ 2 files changed, 20 insertions(+), 12 deletions(-) create mode 100644 netbox_custom_fields.csv diff --git a/README.md b/README.md index f0cec9d..75e8d30 100755 --- a/README.md +++ b/README.md @@ -153,17 +153,19 @@ Replace the values with your own following the [Configuration Parameters](#2-con ```python PLUGINS_CONFIG = { 'netbox_proxbox': { - 'proxmox': { - 'domain': 'proxbox.example.com', # May also be IP address - 'http_port': 8006, - 'user': 'root@pam', # always required - 'password': 'Strong@P4ssword', # only required, if you don't want to use token based authentication - 'token': { - 'name': 'tokenID', # Only type the token name and not the 'user@pam:tokenID' format - 'value': '039az154-23b2-4be0-8d20-b66abc8c4686' - }, - 'ssl': False - }, + 'proxmox': [ + { + 'domain': 'proxbox.example.com', # May also be IP address + 'http_port': 8006, + 'user': 'root@pam', # always required + 'password': 'Strong@P4ssword', # only required, if you don't want to use token based authentication + 'token': { + 'name': 'tokenID', # Only type the token name and not the 'user@pam:tokenID' format + 'value': '039az154-23b2-4be0-8d20-b66abc8c4686' + }, + 'ssl': False + } + ], 'netbox': { 'domain': 'localhost', # Ensure localhost is added to ALLOWED_HOSTS 'http_port': 8001, # Gunicorn port. @@ -194,6 +196,7 @@ PLUGINS_CONFIG = { ``` (venv) $ cd /opt/netbox/netbox/ (venv) $ python3 manage.py migrate +(venv) $ python3 manage.py collectstatic --no-input ``` --- @@ -211,7 +214,7 @@ Restart the WSGI service to load the new plugin: The following options are available: -* `proxmox`: (Dict) Proxmox related configuration to use proxmoxer. +* `proxmox`: (List) Proxmox related configuration to use proxmoxer. * `proxmox.domain`: (String) Domain or IP address of Proxmox. * `proxmox.http_port`: (Integer) Proxmox HTTP port (default: 8006). * `proxmox.user`: (String) Proxmox Username. diff --git a/netbox_custom_fields.csv b/netbox_custom_fields.csv new file mode 100644 index 0000000..5d69a33 --- /dev/null +++ b/netbox_custom_fields.csv @@ -0,0 +1,5 @@ +Name,Content types,Label,Group name,Type,Required,Description,ID,Default,Search weight,Filter logic,UI visibility,Cloneable,Display weight,Choices,Created,Last updated +proxmox_id,virtualization.virtualmachine,[Proxmox] ID,,Integer,False,Proxmox VM/CT ID,1,,1000,Loose,Read/Write,False,100,[],2023-07-06 12:49,2023-07-06 12:50 +proxmox_keep_interface,dcim.interface,,,Boolean (true/false),False,,4,,1000,Loose,Read/Write,False,100,[],2023-07-06 12:53,2023-07-06 12:53 +proxmox_node,virtualization.virtualmachine,[Proxmox] Node,,Text,False,Proxmox Node (Server),2,,1000,Loose,Read/Write,False,100,[],2023-07-06 12:51,2023-07-06 12:51 +proxmox_type,virtualization.virtualmachine,[Proxmox] Type,,Selection,False,Proxmox type (VM or CT),3,,1000,Loose,Read/Write,False,100,"['qemu', 'lxc']",2023-07-06 12:52,2023-07-06 12:52 From 0b39b777153ff4c312d327bfe89ae50ffd7e2419 Mon Sep 17 00:00:00 2001 From: devopstales <42894256+devopstales@users.noreply.github.com> Date: Sat, 8 Jul 2023 10:48:52 +0200 Subject: [PATCH 122/313] feat(Multi server): Update UI https://github.com/netdevopsbr/netbox-proxbox/issues/33 Signed-off-by: devopstales <42894256+devopstales@users.noreply.github.com> --- .../templates/netbox_proxbox/home.html | 46 +-- .../proxmox_vm_full_update.html | 344 +++++++++--------- 2 files changed, 197 insertions(+), 193 deletions(-) diff --git a/netbox_proxbox/templates/netbox_proxbox/home.html b/netbox_proxbox/templates/netbox_proxbox/home.html index 8e95eb1..1c64c40 100644 --- a/netbox_proxbox/templates/netbox_proxbox/home.html +++ b/netbox_proxbox/templates/netbox_proxbox/home.html @@ -19,11 +19,12 @@

+ {% for px in configuration.netbox_proxbox.proxmox %}
@@ -31,54 +32,54 @@

- {% if configuration.netbox_proxbox.proxmox.domain %} - + {% if px.domain %} + {% else %} {% endif %} - {% if configuration.netbox_proxbox.proxmox.http_port %} - + {% if px.http_port %} + {% else %} {% endif %} - {% if configuration.netbox_proxbox.proxmox.user %} - + {% if px.user %} + {% else %} {% endif %} - {% if configuration.netbox_proxbox.proxmox.password %} + {% if px.password %} {% else %} {% endif %} - {% if configuration.netbox_proxbox.proxmox.token.name %} - + {% if px.token.name %} + {% else %} {% endif %} - {% if configuration.netbox_proxbox.proxmox.token.value %} - + {% if px.token.value %} + {% else %} {% endif %} - {% if configuration.netbox_proxbox.proxmox.ssl %} - + {% if px.ssl %} + {% else %} {% endif %} @@ -96,6 +97,7 @@

+ {% endfor %}
@@ -108,32 +110,32 @@

Domain / IP{{ configuration.netbox_proxbox.proxmox.domain }}{{ px.domain }}{{ default_config.proxmox.domain }} (default)
HTTP Port{{ configuration.netbox_proxbox.proxmox.http_port }}{{ px.http_port }}{{ default_config.proxmox.http_port }} (default)
Proxmox User{{ configuration.netbox_proxbox.proxmox.user }}{{ px.user }}{{ default_config.proxmox.user }} (default)
Proxmox Passwordpassword defined in configuration.py{{ default_config.proxmox.password }} (default)
Token Name{{ configuration.netbox_proxbox.proxmox.token.name }}{{ px.token.name }}{{ default_config.proxmox.token.name }} (default)
Token Value{{ configuration.netbox_proxbox.proxmox.token.value }}{{ px.token.value }}{{ default_config.proxmox.token.value }} (default)
SSL{{ configuration.netbox_proxbox.proxmox.ssl }}{{ px.ssl }}{{ default_config.proxmox.ssl }} (default)
- {% if configuration.netbox_proxbox.netbox.domain %} - + {% if px.netbox.domain %} + {% else %} {% endif %} - {% if configuration.netbox_proxbox.netbox.http_port %} - + {% if px.netbox.http_port %} + {% else %} {% endif %} - {% if configuration.netbox_proxbox.netbox.token %} - + {% if px.netbox.token %} + {% else %} {% endif %} - {% if configuration.netbox_proxbox.netbox.ssl %} - + {% if px.netbox.ssl %} + {% else %} {% endif %} diff --git a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html index 21a8cb1..616073f 100755 --- a/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html +++ b/netbox_proxbox/templates/netbox_proxbox/proxmox_vm_full_update.html @@ -7,184 +7,186 @@

Virtual Machines and Containers

- {% if proxmox.nodes %} -

Nodes

-
Domain / IP{{ configuration.netbox_proxbox.netbox.domain }}{{ px.netbox.domain }}{{ default_config.netbox.domain }} (default)
HTTP Port{{ configuration.netbox_proxbox.netbox.http_port }}{{ px.netbox.http_port }}{{ default_config.netbox.http_port }} (default)
Token{{ configuration.netbox_proxbox.netbox.token }}{{ px.netbox.token }}{{ default_config.netbox.token }} (default)
SSL{{ configuration.netbox_proxbox.netbox.ssl }}{{ px.netbox.ssl }}{{ default_config.netbox.ssl }} (default)
- + {% for px in proxmox %} + {% if px.nodes %} +

Nodes

+
+ + + + + + + + + + + {% for node in px.nodes %} - - - - - - - - - {% for node in proxmox.nodes %} - - + - - - - - {% endfor %} - -
Node NameNode status changedCluster changedInterface changedUpdate result
Node NameNode status changedCluster changedInterface changedUpdate result
- - {% if node.node_id %} - + + + {% if node.node_id %} + + {{ node.name }} + + {% else %} {{ node.name }} - + {% endif %} + + + {% if node.status %} + + {{ node.status }} + {% else %} - {{ node.name }} + + {{ node.status }} + {% endif %} - - - {% if node.status %} - - {{ node.status }} - - {% else %} - - {{ node.status }} - - {% endif %} - - {% if node.cluster %} - - {{ node.cluster }} - - {% else %} - - {{ node.cluster }} - - {% endif %} - - {% if node.interfaces %} - - {{ node.interfaces }} - - {% else %} - - {{ node.interfaces }} - - {% endif %} - - {% if node.result %} - - {{ node.result }} - - {% else %} - - {{ node.result }} - - {% endif %} -
- -

- {% endif %} - {% if proxmox.virtualmachines %} -

Virtual Machines and Containers

- - - - - - - - - - - + + + - - - {% for virtualmachine in proxmox.virtualmachines %} - - +
VM/CT NameStatus changedCustom FieldsLocal contextResourcesTagUpdate result + {% if node.cluster %} + + {{ node.cluster }} + + {% else %} + + {{ node.cluster }} + + {% endif %} + + {% if node.interfaces %} + + {{ node.interfaces }} + + {% else %} + + {{ node.interfaces }} + + {% endif %} + + {% if node.result %} + + {{ node.result }} + + {% else %} + + {{ node.result }} + + {% endif %} +
- - {% if virtualmachine.vm_id %} - + {% endfor %} +
+ +

+ {% endif %} + {% if px.virtualmachines %} +

Virtual Machines and Containers

+ + + + + + + + + + + + + + + {% for virtualmachine in px.virtualmachines %} + + + - - - - - - - - {% endfor %} - -
VM/CT NameStatus changedCustom FieldsLocal contextResourcesTagUpdate result
+ + {% if virtualmachine.vm_id %} + + {{ virtualmachine.name }} + + {% else %} {{ virtualmachine.name }} - + {% endif %} + + + {% if virtualmachine.status %} + + {{ virtualmachine.status }} + {% else %} - {{ virtualmachine.name }} - {% endif %} - - - {% if virtualmachine.status %} - - {{ virtualmachine.status }} - - {% else %} - - {{ virtualmachine.status }} - - {% endif %} - - {% if virtualmachine.custom_fields %} - - {{ virtualmachine.custom_fields }} - - {% else %} - - {{ virtualmachine.custom_fields }} - - {% endif %} - - {% if virtualmachine.local_context %} - - {{ virtualmachine.local_context }} - - {% else %} - - {{ virtualmachine.local_context }} - - {% endif %} - - {% if virtualmachine.resources %} - - {{ virtualmachine.resources }} - - {% else %} - - {{ virtualmachine.resources }} - - {% endif %} - - {% if virtualmachine.tag %} - - {{ virtualmachine.tag }} - - {% else %} - - {{ virtualmachine.tag }} - - {% endif %} - - {% if virtualmachine.result %} - - {{ virtualmachine.result }} - - {% else %} - - {{ virtualmachine.result }} - - {% endif %} -
- -

- {% endif %} + + {{ virtualmachine.status }} + + {% endif %} +

+ {% if virtualmachine.custom_fields %} + + {{ virtualmachine.custom_fields }} + + {% else %} + + {{ virtualmachine.custom_fields }} + + {% endif %} + + {% if virtualmachine.local_context %} + + {{ virtualmachine.local_context }} + + {% else %} + + {{ virtualmachine.local_context }} + + {% endif %} + + {% if virtualmachine.resources %} + + {{ virtualmachine.resources }} + + {% else %} + + {{ virtualmachine.resources }} + + {% endif %} + + {% if virtualmachine.tag %} + + {{ virtualmachine.tag }} + + {% else %} + + {{ virtualmachine.tag }} + + {% endif %} + + {% if virtualmachine.result %} + + {{ virtualmachine.result }} + + {% else %} + + {{ virtualmachine.result }} + + {% endif %} +
+ +

+ {% endif %} + {% endfor %}
From 37fbd62cd9bc9404b8e2360fcd7d968b3ce9f565 Mon Sep 17 00:00:00 2001 From: devopstales <42894256+devopstales@users.noreply.github.com> Date: Sat, 8 Jul 2023 10:50:55 +0200 Subject: [PATCH 123/313] fix: Create non existing vlans https://github.com/netdevopsbr/netbox-proxbox/issues/110 Signed-off-by: devopstales <42894256+devopstales@users.noreply.github.com> --- netbox_proxbox/proxbox_api/updates/node.py | 38 +++++++++++++++++----- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/netbox_proxbox/proxbox_api/updates/node.py b/netbox_proxbox/proxbox_api/updates/node.py index 3a6c340..ca08318 100755 --- a/netbox_proxbox/proxbox_api/updates/node.py +++ b/netbox_proxbox/proxbox_api/updates/node.py @@ -112,6 +112,20 @@ def interfaces(proxmox, netbox_node, proxmox_json): _bond = [iface for iface in proxmox.nodes(proxmox_json['name']).network.get() if iface['type'] in _lag_port] _bridge = [iface for iface in proxmox.nodes(proxmox_json['name']).network.get() if iface['type'] in _brg_port] + def get_or_create_vlan(vlan_id): + # FIXME: we may need to specify the datacenter + # since users may have same vlan id in multiple dc + vlan = nb.ipam.vlans.get( + vid=vlan_id, + ) + if vlan is None: + vlan = nb.ipam.vlans.create( + name='VLAN {}'.format(vlan_id), + vid=vlan_id, + group=None, + ) + return vlan + for iface in _eth: ntb_iface = list(nb.dcim.interfaces.filter(device_id=netbox_node.id, name=iface['iface'])) if iface.get('ovs_tag') is not None: @@ -122,7 +136,8 @@ def interfaces(proxmox, netbox_node, proxmox_json): pmx_if = next((_if for _if in _pmx_iface if _if['name'] == iface['iface']), None) if not len(ntb_iface): if len(_tagged_vlans): - ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=pmx_if['name'], type='other', mtu=pmx_if['mtu'], mode='tagged', tagged_vlans=[nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]) + _nb_vlan = get_or_create_vlan(_tagged_vlans[0]) + ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=pmx_if['name'], type='other', mtu=pmx_if['mtu'], mode='tagged', tagged_vlans=[_nb_vlan.id]) else: ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=pmx_if['name'], type='other', mtu=pmx_if['mtu']) updated = True @@ -132,7 +147,8 @@ def interfaces(proxmox, netbox_node, proxmox_json): ntb_if = next((_if for _if in _ntb_iface if _if['name'] == iface['iface']), None) if pmx_if != ntb_if: if len(pmx_if['tagged_vlans']): - nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu'], 'mode': 'tagged', 'tagged_vlans': [nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]}]) + _nb_vlan = get_or_create_vlan(_tagged_vlans[0]) + nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu'], 'mode': 'tagged', 'tagged_vlans': [_nb_vlan.id]}]) else: nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu']}]) updated = True @@ -146,7 +162,8 @@ def interfaces(proxmox, netbox_node, proxmox_json): _pmx_iface.append({'name': iface['iface'], 'mtu' : int(iface.get('mtu', 1500)), 'tagged_vlans': _tagged_vlans}) if not len(ntb_iface): if len(_tagged_vlans): - ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='lag', mtu=int(iface.get('mtu', 1500)), mode='tagged', tagged_vlans=[nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]) + _nb_vlan = get_or_create_vlan(_tagged_vlans[0]) + ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='lag', mtu=int(iface.get('mtu', 1500)), mode='tagged', tagged_vlans=[_nb_vlan.id]) else: ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='lag', mtu=int(iface.get('mtu', 1500))) else: @@ -156,7 +173,8 @@ def interfaces(proxmox, netbox_node, proxmox_json): ntb_if = next((_if for _if in _ntb_iface if _if['name'] == iface['iface']), None) if pmx_if != ntb_if: if len(pmx_if['tagged_vlans']): - nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu'], 'mode': 'tagged', 'tagged_vlans': [nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]}]) + _nb_vlan = get_or_create_vlan(_tagged_vlans[0]) + nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu'], 'mode': 'tagged', 'tagged_vlans': [_nb_vlan.id]}]) else: nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu']}]) updated = True @@ -175,7 +193,8 @@ def interfaces(proxmox, netbox_node, proxmox_json): _pmx_iface.append({'name': iface['iface'], 'mtu' : int(iface.get('mtu', 1500)), 'tagged_vlans': _tagged_vlans}) if not len(ntb_iface): if len(_tagged_vlans): - ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='virtual', mtu=int(iface.get('mtu', 1500)), mode='tagged', tagged_vlans=[nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]) + _nb_vlan = get_or_create_vlan(_tagged_vlans[0]) + ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='virtual', mtu=int(iface.get('mtu', 1500)), mode='tagged', tagged_vlans=[_nb_vlan.id]) else: ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='virtual', mtu=int(iface.get('mtu', 1500))) else: @@ -185,7 +204,8 @@ def interfaces(proxmox, netbox_node, proxmox_json): ntb_if = next((_if for _if in _ntb_iface if _if['name'] == iface['iface']), None) if pmx_if != ntb_if: if len(pmx_if['tagged_vlans']): - nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu'], 'mode': 'tagged', 'tagged_vlans': [nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]}]) + _nb_vlan = get_or_create_vlan(_tagged_vlans[0]) + nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu'], 'mode': 'tagged', 'tagged_vlans': [_nb_vlan.id]}]) else: nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu']}]) updated = True @@ -199,7 +219,8 @@ def interfaces(proxmox, netbox_node, proxmox_json): _pmx_iface.append({'name': iface['iface'], 'mtu' : int(iface.get('mtu', 1500)), 'tagged_vlans': _tagged_vlans}) if not len(ntb_iface): if len(_tagged_vlans): - ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='bridge', mtu=int(iface.get('mtu', 1500)), mode='tagged', tagged_vlans=[nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]) + _nb_vlan = get_or_create_vlan(_tagged_vlans[0]) + ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='bridge', mtu=int(iface.get('mtu', 1500)), mode='tagged', tagged_vlans=[_nb_vlan.id]) else: ntb_iface = nb.dcim.interfaces.create(device=netbox_node.id, name=iface['iface'], type='bridge', mtu=int(iface.get('mtu', 1500))) else: @@ -209,7 +230,8 @@ def interfaces(proxmox, netbox_node, proxmox_json): ntb_if = next((_if for _if in _ntb_iface if _if['name'] == iface['iface']), None) if pmx_if != ntb_if: if len(pmx_if['tagged_vlans']): - nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu'], 'mode': 'tagged', 'tagged_vlans': [nb.ipam.vlans.get(vid=_tagged_vlans[0]).id]}]) + _nb_vlan = get_or_create_vlan(_tagged_vlans[0]) + nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu'], 'mode': 'tagged', 'tagged_vlans': [_nb_vlan.id]}]) else: nb.dcim.interfaces.update([{'id': ntb_iface.id, 'mtu': pmx_if['mtu']}]) updated = True From 482c570f9a41618e5518e6e514095e666d43dd7c Mon Sep 17 00:00:00 2001 From: devopstales <42894256+devopstales@users.noreply.github.com> Date: Sat, 8 Jul 2023 11:11:17 +0200 Subject: [PATCH 124/313] fix(Multi server): Proxmox password authentication Signed-off-by: devopstales <42894256+devopstales@users.noreply.github.com> --- netbox_proxbox/__init__.py | 2 +- netbox_proxbox/proxbox_api/plugins_config.py | 30 ++++++++++++++------ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/netbox_proxbox/__init__.py b/netbox_proxbox/__init__.py index 5b409ba..bfb25f8 100755 --- a/netbox_proxbox/__init__.py +++ b/netbox_proxbox/__init__.py @@ -18,7 +18,7 @@ class ProxboxConfig(PluginConfig): 'user': 'root@pam', 'password': 'Strong@P4ssword', 'token': { - 'name': 'tokenID', + 'name': 'proxbox', 'value': '039az154-23b2-4be0-8d20-b66abc8c4686' }, 'ssl': False diff --git a/netbox_proxbox/proxbox_api/plugins_config.py b/netbox_proxbox/proxbox_api/plugins_config.py index df7e70d..881f421 100755 --- a/netbox_proxbox/proxbox_api/plugins_config.py +++ b/netbox_proxbox/proxbox_api/plugins_config.py @@ -109,19 +109,26 @@ def get_proxmox_session(PROXMOX_SETTING): PROXMOX_USER = PROXMOX_SETTING.get("user", DEFAULT_PROXMOX_USER) PROXMOX_PASSWORD = PROXMOX_SETTING.get("password", DEFAULT_PROXMOX_PASSWORD) - PROXMOX_TOKEN = PROXMOX_SETTING.get("token", DEFAULT_PROXMOX_TOKEN) - if PROXMOX_TOKEN != None: - PROXMOX_TOKEN_NAME = PROXMOX_TOKEN.get("name", DEFAULT_PROXMOX_TOKEN_NAME) - PROXMOX_TOKEN_VALUE = PROXMOX_TOKEN.get("value", DEFAULT_PROXMOX_TOKEN_VALUE) - output = { 'PROXMOX': PROXMOX, 'PROXMOX_PORT': PROXMOX_PORT, 'PROXMOX_SSL': PROXMOX_SSL, - 'PROXMOX_TOKEN': PROXMOX_TOKEN, - 'PROXMOX_TOKEN_NAME': PROXMOX_TOKEN_NAME, - 'PROXMOX_TOKEN_VALUE': PROXMOX_TOKEN_VALUE + 'PROXMOX_TOKEN': None, + 'PROXMOX_TOKEN_NAME': None, + 'PROXMOX_TOKEN_VALUE': None } + + PROXMOX_TOKEN = PROXMOX_SETTING.get("token", DEFAULT_PROXMOX_TOKEN) + if PROXMOX_PASSWORD is None and PROXMOX_TOKEN is not None: + PROXMOX_TOKEN_NAME = PROXMOX_TOKEN.get("name", DEFAULT_PROXMOX_TOKEN_NAME) + PROXMOX_TOKEN_VALUE = PROXMOX_TOKEN.get("value", DEFAULT_PROXMOX_TOKEN_VALUE) + output["PROXMOX_TOKEN"] = PROXMOX_TOKEN + output["PROXMOX_TOKEN_NAME"] = PROXMOX_TOKEN_NAME + output["PROXMOX_TOKEN_VALUE"] = PROXMOX_TOKEN_VALUE + else: + PROXMOX_TOKEN_NAME = None + PROXMOX_TOKEN_VALUE = None + #################################################################################################### # # # WITH PLUGIN CONFIGURED, STARTS BOTH PROXMOX AND NETBOX SESSION # @@ -132,7 +139,7 @@ def get_proxmox_session(PROXMOX_SETTING): # PROXMOX SESSION # # Check if token was provided - if PROXMOX_TOKEN_VALUE != None and len(PROXMOX_TOKEN_VALUE) > 0: + if PROXMOX_TOKEN_VALUE is not None and len(PROXMOX_TOKEN_VALUE) > 0: try: if PROXMOX_SSL == False: # DISABLE SSL WARNING @@ -156,6 +163,11 @@ def get_proxmox_session(PROXMOX_SETTING): # If token not provided, start session using user and passwd else: try: + if PROXMOX_SSL == False: + # DISABLE SSL WARNING + import urllib3 + urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + # Start PROXMOX session using USER CREDENTIALS PROXMOX_SESSION = ProxmoxAPI( PROXMOX, From 0002900d22149e0bacb10732e95c4b56195db4d2 Mon Sep 17 00:00:00 2001 From: devopstales <42894256+devopstales@users.noreply.github.com> Date: Sun, 9 Jul 2023 10:49:28 +0200 Subject: [PATCH 125/313] feat(Multi server): Sync single cluster https://github.com/netdevopsbr/netbox-proxbox/issues/33 Signed-off-by: devopstales <42894256+devopstales@users.noreply.github.com> --- netbox_proxbox/proxbox_api/update.py | 29 +++++++++++++++++-- .../templates/netbox_proxbox/home.html | 19 +++++++++++- netbox_proxbox/urls.py | 4 ++- netbox_proxbox/views.py | 26 +++++++++++++++-- 4 files changed, 70 insertions(+), 8 deletions(-) diff --git a/netbox_proxbox/proxbox_api/update.py b/netbox_proxbox/proxbox_api/update.py index 5270fd9..80139c8 100755 --- a/netbox_proxbox/proxbox_api/update.py +++ b/netbox_proxbox/proxbox_api/update.py @@ -475,7 +475,7 @@ def run_process_in_thread(proxmox_session, key, result, index, **kwargs): def all(**kwargs): run_with_threads = kwargs.get("run_with_threads", True) start_time = time.time() - result = [] + results = [] if run_with_threads: print("Start process with threading") threads = [None] * len(proxmox_sessions) @@ -498,14 +498,37 @@ def all(**kwargs): session = proxmox_sessions[key] print("Processing data for: {0}".format(key)) output = process_all_in_session(session, **kwargs) - result.append(output) + results.append(output) except Exception as e: message = "OS error: {0}".format(e) print(message) output = { 'message': message } - result.append(output) + results.append(output) + + print("--- %s seconds ---" % (time.time() - start_time)) + return results + +def single(**kwargs): + proxmox_domain = kwargs.get("proxmox_domain", False) + start_time = time.time() + results = [] + for key in proxmox_sessions: + if key == proxmox_domain: + print("Start process Sequential") + try: + session = proxmox_sessions[key] + print("Processing data for: {0}".format(key)) + output = process_all_in_session(session, **kwargs) + results.append(output) + except Exception as e: + message = "OS error: {0}".format(e) + print(message) + output = { + 'message': message + } + results.append(output) print("--- %s seconds ---" % (time.time() - start_time)) return results diff --git a/netbox_proxbox/templates/netbox_proxbox/home.html b/netbox_proxbox/templates/netbox_proxbox/home.html index 1c64c40..fd4afb6 100644 --- a/netbox_proxbox/templates/netbox_proxbox/home.html +++ b/netbox_proxbox/templates/netbox_proxbox/home.html @@ -85,7 +85,24 @@

{% endif %}

-
+
+ {% if px.domain %} +
+ + + Proxmox Update +
+ {% else %} + Proxmox Update + {% endif %} +
+
+
+ +
+
+
+
+ + Telegram Logo + +
+
+ + + + + + + + + +
English (en)Join our Telegram Community
Português (pt-br)Participe de nossa comunidade no Telegram
+ +
+
+
+ +{% endblock %} \ No newline at end of file diff --git a/netbox_proxbox/urls.py b/netbox_proxbox/urls.py index 3aa932e..dd9a86f 100755 --- a/netbox_proxbox/urls.py +++ b/netbox_proxbox/urls.py @@ -11,6 +11,7 @@ # Home View path('', views.HomeView.as_view(), name='home'), path('contributing/', views.ContributingView.as_view(), name='contributing'), + path('community/', views.CommunityView.as_view(), name='community'), # Redirect to: "https://github.com/orgs/netdevopsbr/discussions" path('discussions/', views.DiscussionsView, name='discussions'), diff --git a/netbox_proxbox/views.py b/netbox_proxbox/views.py index 018c7e9..e4ee81a 100755 --- a/netbox_proxbox/views.py +++ b/netbox_proxbox/views.py @@ -68,6 +68,25 @@ def get(self, request): } ) + +class CommunityView(View): + """Community""" + template_name = 'netbox_proxbox/community.html' + + # service incoming GET HTTP requests + def get(self, request): + """Get request.""" + + title = "Join our Community!" + + return render( + request, + self.template_name, + { + "title": title, + } + ) + def DiscussionsView(request): external_url = "https://github.com/orgs/netdevopsbr/discussions" return redirect(external_url) @@ -80,7 +99,6 @@ def TelegramView(request): external_url = "https://t.me/netboxbr" return redirect(external_url) - ''' def table_data(): json_result = proxbox_api.update.all(remove_unused = True) From df27c084d05354895a5b66575099def453484056 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Thu, 20 Jul 2023 21:24:53 +0000 Subject: [PATCH 131/313] Add 'GitHub' and 'LinkedIn' sections --- .../static/netbox_proxbox/github.png | Bin 0 -> 8640 bytes .../static/netbox_proxbox/linkedin.png | Bin 0 -> 15115 bytes .../templates/netbox_proxbox/community.html | 80 +++++++++++++++++- 3 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 netbox_proxbox/static/netbox_proxbox/github.png create mode 100644 netbox_proxbox/static/netbox_proxbox/linkedin.png diff --git a/netbox_proxbox/static/netbox_proxbox/github.png b/netbox_proxbox/static/netbox_proxbox/github.png new file mode 100644 index 0000000000000000000000000000000000000000..9490ffc6d2e158b266f719d58365905c1c5060cb GIT binary patch literal 8640 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 literal 0 HcmV?d00001 diff --git a/netbox_proxbox/static/netbox_proxbox/linkedin.png b/netbox_proxbox/static/netbox_proxbox/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..cccea434fb843eb0cd09f65aff63f20973bd13f0 GIT binary patch literal 15115 zcmZX*cRbba`#AozR~+X>*&~%vS(#af98}0EBiR*YD|@e;vMNGkWQOdrIkr$nX4#u# zALBS2$M<=>>hR4^SFh;BU^z~{`8D%@3x|cTkpI~=45O(p5a<-L*f-z-|iy~0`j+y2A z=Y~_ThZ>dASlPG8D_Gf_jeV&Z|1MMLF_LD+?AY&TTsj9EV-tons}sg&FNj&qilPOn ztz*pVp}9S1HQR)pt}OPuAoPi;jchk@e^K69$Ar1Y2VCEYV>3zcH zjC87SJ11Af2EIM*!Gy9ef%~d$;|Ff7`HX&7gzOAjVW}K7=gCwglMZ z+TGDKU7tr>(K9b1?@$l5#RRf!_4I`EIc`9@6MO;=(8NH%m#J4lhZ7U>9~Cx}kGPAz zS=?D2-O^~h*Rf4n8wvnZ(8*;VeKg!p6lbxDtEAt_NfY^agTVn3k<8?+bB*dMW;Lf? zjtEG5U)lQPEt&1u4N14M+D-HOu0^G5c2BY8%D-+-_v=0 zq@B!|Dnr97WdY!|t_&|HD`X(2g=FvHL|ywr(gQsP5-S*2Yz}97{TLB|Ym;x8pJU{D<}xe91qJ>i+9O0eCc`p+iz2s19@vi{e(Cm4D+wNy(Q~N3n-dY7I=&=$h9dX z1_hphvSHpd+|{yBw*;8qr^_n{;oP&#r*5m?Aej>@gB{}_*ANMhrCR-9o@beXYf&Zbq`V)Jf&$5)Vi|Q}3EI9fUi-uW zs{3~q%ZMv3+K8_9LwFGh*CWTzRUVPuN!?@Lbs`78&TuXX{63r`q2yU;40}t~1aP;; z@^LV_59QBv|4t23B7tr{vMxO<4P>6tlRv+n7M*4OTCoLJEiN)`J=n|vNRQq2>sXOR z2NFS#oL$VTqwhle0lej9K5_>M;Un_^ME#SdL8XuATe~8ZQ%odU`)0gc06kRG!&Q6z zmzn%k;yEsc`Zs(ysOY^!C+FV2UH#on%GY}7q8)7Q zqoRGiV_Gy_6hgYRqBsXo6yv|A6=gkiMXxs(3bh?5qFkQ@*8J3+U#^mf#AXiKd{E-}JBo@_p)ZlGCE(Tm@m;)dn(XXIiL1uEkAo|_)WYBk(WwU3O zgC45$*?augnj`UR@6H%AdZy#ixnw%1s9@seP?}w|HlznA$k4tnQ$ND>#$6KLvV%3m zO)oL;iqQ7@yxQ}a*ieJB54i?XO%`z$5+$mM;%+>^dF%C7(L?*~OY_r?O1(zNnJ@Jv zG}uSyu4^L@zqU&so+10jPNH>S787(Q1d(u0HrS=d4>ir6=GLhPxusw8)14FEVrScQ zz2j*vkekz7f3eV*M3NiAxc2@aoCOM9*{MOHiHx%8Q&NJ$nZf@h zjWXudQP+r#TI%$9kO5GrGvglF)pMk-I$u&PLSgV0IUDboqx*nr%Sd!_IgH0LN@I_X zaCR9h|le!%M3&hD9_CJ7va+3@D?{utzHX=ems}9?)n&?5ME5r zNfd;am6(of1T|{#5#>d=)eOzlQ>+RCfw=6SG(fz0MiQe0hgY=9dW7VrybTJcgF@%4 zRVFW|>cwBOp=j-N?ntLc6TbF;T#J-9HAzW($Cy_X6@L8msPzQ`k^6JxtCE0ELA8d` z6_IhZHa;vAs{(!(7!;!F+@o}@3VN)&{!2Jzd^{UjNe>kr{|(#nGEWhi7T#ex%fs{d z1_NHhq&$sf=y@K?wlARIm?Fq48nyZy`pjt%q$SJ@3!?79FP8^r3en4RBDyN;_Y)BRl=EF=|!?{#jG@LaxAT zsD?)gKE2~b*avst=X;+IV@CJanvRUEf7HTcr12Gl?a>J7bcbb+Z$Q>&28p_C_Eh?< z606%5JHKEPP{GOKulAw-2KsFbfsVgI`#7`mwbG=HdYa5+FcmL+|!bPOv z&$TY0wU-NWrMLC>-5>2W=cmV;{=Cpb26bj0zLei_gId4<5)pn}Cs27)ckSiy1ZTm- zSpDeH*HVYB@}(GLs&Eel)Y)dODQ&C_Sv}TRn6L>7^o{Ab{T^43(dWYL3o{eUQ&))K z8U+p(*Kb1CYgl$w-dJL;m&tm*jg?JRaWW)Eh>>aCR5m zmjR%9xm1o1eSu4D=jNG|Uj1lt$6s*X`T^;928XjZZRB^QrD_yABCO4g^_++@f0iJV za|*{bXD2;n2~*cJ_dWzlx*U92-0Ym}t#(HZ+f8H_j%qe@bg3Ki5g>d63`j;_debWV z{p`;@oPcSDbO&6_ThPawSGlJ&(YQ$&w2zR z`01+Jz`W=r!G)(8eA9Y<+m-E5?yF8kxqrSC8(IOutS zhwkZl91`X7UKq5tFM~}k!%779yvH%0Y@dzpJGj1)bA-2?e*k67W-k;`%2!<n68toIYTI9vf!9HnYYY>oI*F-3ltjhpD+TgDG91Kya@U6j|D+XAda zKSh>jX0udL+e+h8y#QUYmOpX-+O}{4=Po9{%lXi`-Dd>bKaT~e$fc@ij|r&A?Rrwq zk6AtIe~`)t^JLkaTX8TLwq)Tm@vf2chqpi<(1Tf5MfK;$VU{+!PCu_r8;NZg3|p`; zJRalg;etBDBRPtM@_(fn`aWSFdW@y&LLlq5on1NNoPTgccWr}|=rA~(d9~MyLMQsY zDp&U_y*4-2KKyB=IAWC3_yV{@32)?4aCL2V5}4AVV`4?QOzUo$ggv@y`c)?dw8lRY zI}ZmQNhZh2VqRL`#B^$Dw>?;HJUCXKc2l^!7>zJ2<9*OV5*TdJ6oi|5*jwN`I_PTH z7H2<7pmJ#0eQ;jVgrF2!$18eHme=?gfTQb*@XuffT58nWUHnU{8GSYY&(00P-b0lp z(SiPv(@^l1-;HYm5F%6$5szi^9$D7rR}?zGJ)~dH>Dsj`MgM*uXO-16@%tLv1nJPa z(N@J879i*3C8iXMYPlhR8j@5ayXIknA^%mkb8Lgds;Wvol8IV+O6 zCU#!Sxx-r)Y~uO8ieeHrANY=7(UAm|n=OC#{a=-{ODWG3>M6(?b2aoyTiH=s)Jm-< z2Tf=lL8BL*4wG{1nY+Gs;Aq{v;rk7{Ls0n@m;Y2g+qS7}@KLqIa}7E1seb=1xv39N z`YuEE$eg^nDy{A3%=k%G_?L*TV4@y)&x@v;FJ$z9@mvzSS^;TwB-vD(8;Qxsd@Z4^MgHJ*6sZe^)H0 zyvpdCAdxzBR{Rd!R?<;#cs0Ak>zU)u+x>)rDiBc1JF(g)ny#YWxliFEK^55GTUoTzwU(zTN9vQe73hQiT9 zzv@pG3N7yHopJ1=2XYN2>Wf!og+KqT(qy4fn0958O- zrrWNS6&JjPRl?0k*Gf;l(eFOzKaz8JYpuw7V-v>lIy>Jk>f@lSmGq5}@VEZzzO`Vm z+mElQ{tk(xT3jM&>hl6^BcJ1$v8}n^HZ|VjNTspVI-~r>U z)iGJ1$kFyqmSeZ84oil~8-*jqkLn*jsz=I|^Lp9Lx6NG%2F(P+c+YrI)v>!K&UPjYzmc^Dbj>-p_r^mKtSF4~1^8Jwmx0YmC*m65?VJFfhA5R7gcgz+8VF z%eHQ+A83P6^1UNH`Ca%)f#0wW5-?!fX&jI{V~FxoDb+8Lp@+la!V$I(Cov(i=IB`2 zml<5g)H9`gKi+%ql{Jr6CO0JrlGTZ)MP_b)VwD!3&^vf=w4<8i4x zPl~-=JeLR$50A{@+oA>Is1h^v#>N>s-!RUf!wQ+gl2cS${=6 zJjr&nw9wjD>q|$-dO@$&Xh+1JpnF#|mwbPSnO!@n zc{WaQ%kh8?Ypb(}Tnu@-Q=K}&n0#%kdx=6yf!S5agQxmvOQJ9F$7p7i-NuF%FQa_8 z0UVZ6CVjBVwSkDjcWCyRI(rYkx40u=;cgp_^#1ue=U6Xm<25qQZP9lwR4iQ!=U|Gy zh0nfpC4<)ZP}Sk#D<}7JU_f_SreZO0snTq$Gnv>fecc}Lc3J@?v`KRi+>*S@fgb*e z^1<-m%aAg=&R5l{AccR(&zDEmuN`$5kej_P<@WSb^0l`jm)L_82;g(>VIq&wyJ(UY z>m}K_qOA8u>jvvlZFo0Rv{Uki-P&l1T+gO345{K5Y4zf{#P2~=wqBl}qMuV`QoS<% ze&U_H z285A0)6BCL~M_(zl&b!OS&&% z6ZQCqvlm>E4dRB^9d;N12Gh?ldiL9s=lunnA8o%?_e$p*ve%L7Qx~e7Rx)MUF|q1# zY$Khb!v;>hCa5mUWu}VC9usxXA6hR*^E^_;e%XC9j;ynP-inmleeFS9Y~sf)ok^hl zMd$o07%bg^wdL-Had%X3J?g2u=TD_bE#UUF+B`*IGlA!iiZv8memrn3Gw0(K^0{W@ zsxxk&omRqS=R<7Xq&`m(@GsP`+*pA>MqDP7rox8ao66%;36q2Z5&w&dE(j1d=>E;D ztI#vndZNhTpEHdRN3WX`X2n0iYDU{D|0*wY9Mew6U$AZ?c6=~PU)zL&Ym7Owhf1#) zSe*I*+NJ|O!0tGSiomYb53N`!xlays5dp@0Qyj?snA%BmHo=gMTz_IhB)}GRfq?q_ zGCQ5LH7gDNVMx|W#YK190bh#IEcu*3Dn)7aNhkJO1fFUwZhkGS8Pp7vDaHs{edIP1 zcf0S~ihM9}0k3R3PumV996t1OI)A_CU#kVQ`6f$g=8q^wKbpi0>?9J(u8!hE>7X{B zi*M}m_X)0M=>?L!4o~v34doGXnn8o%XNSk?XmTq}f^?i&KD6fhzn?##NO_AnZx@{H zb$bnzG5*Gc`R5aSgn~!8%rYFvBZ9PCyW=qz?5Yd~MTv^tv(g$3g9%bI_2~Ql328P? z%}m=RX%|T+XPsCpY(e9ibTA07vPM4K0$hVjcnNIs!TYb@l_E-PsFH_#JN&0ycQk2W z?+xt8VB)jm)uEFkc$|XyR87@OIz|#GTy2wG3$vh+Fe&2l1led7C&g$xM3CIudv>@O zro!qqsHcCE{!^`jX*$JyF<<2peQ+0|#OCs~qrPzAluH|WBRr9HwJ)dw>NF>`KO2GU z4OnpgC8$2vftuW}2sM zsovp0Q`ji*nR?gMI$EgX@VyKH>2;E1v@J6Kj_7Te32hjU5NqyFHiMQ0izffGRqEQ& zQJ)UXGN)l|c>>MGhEbL z4R;+fl{dKTs?=x!)YIN`w9VC^(oooNs2$JodU7>CHoorgS{4{ALb1Kr1r-z0D>HIQ zBrI_=Jh+Z%^MYsdpQYM)>dC*Q^5PoJ9RZCvsWU4e_qo!()~@PKkbisEhPS{_1(djV zvAu9zAuMwLPX5(cjF?^CwtFrfEaru<>Gg_y);mGDDP6JZ*|?A+a5ptRNY#Rbz|Jpm zf}`bXJuVem5iWi>Y%*v`Gt&Zg}c6J~G-S@)Myza@>XAVx;Wi+}gSs0#pvj zEiRnk6E-=%8&Zq3=zmbWEe3$KTy8r>!s2_y9)qf${>{8kR!akCU=HgON_~4>Y$3GE z1gHTi}H^X_<%61MM$)tiU zoFh6Ytvx?dOkm2Im6fBJcy=ZirkDy8u>*1M`M;}qd-kb_%^%SveLPArCS9U9cwwFa zqO}+^nB<*d1SvoeDpUvACd|G&iB)|`g$W#Wb8k}!J|>zj%J+c1GPTC++3|*;LHEl$ z)nIgFyp@VwPUVbx46D6-ANf_wSGp>wAn;i_RgbGXP#7yk$_8o>jLQzS77kWr(u*{V z=I*eVyUN$&|<%lHN=I(&;bhoVpiXhkK00dM^q) zMml&td?yp7Av&Luh2DOl**kJesr1V0>VMhw%W{IjHp5?iy1bOD>aoL4Z)YUR<67fd z^!828ayqt=9bSmQ6wp4UI+-ZZmHOh3S!ZSY0E zIMI$Awu;czD}Fw~IJv=m?|G-?13}cjZWqC_!PKO0YgY18MjYk;L1wwtH^&bQ=;jtb z>6me9J&1E0$%_(wSG$(CI@Z_t@r(KxN5K3a`R2r&Wvh6MjyW!@-+J}y>P2x%D}Pxn zKL@7)A=e(@^KB*NVkPj1^tXeC^!-7%|HW}JqD_sFbJ9$OP7DFA{}Cf?Jw$@u{%Plr zk4NTNX`Uq{Xt)nk{1VeoF|1Rnp321*gk?g#d;B-V@(GZs&-MnE0?&SC*c2Zg$5x&I zyVZG&;7kD8-`t!m z?Dnz=m2taXRKKc<^=#0Q-el#bA$mmcN%COmtLVr1d(AyRe4wNY8_!;_x0Ka!L-8uv zhbM&jwL5P)v7R;+1oQ2>>Z0JWYc{t?q&812Nzz#fGUdL$Jt`86P><5a*ROwMwcqrK zNz*!>rX%cA6}uK7R!E3$-$M#sr;@xYlQ&~r`qFs=d%dC0CT1;QqaQq$Cjn8`vvXZN zft{(iCog6E1PHY+7=<*oX5}||5)rdMW=3%G)0iNP;xdxq;D~!FR7!#W1V(zej$B&p zFAP`R<3b$!CpoMPQi|dr+Boi84^dQS(wG4trrS$zrw!69=vZr64#N0!y?ZvWrH=h& zA58$dVU<%wr5OK58Sb0vw!zU?=~yw!OfRQ5XKTw0!rG&T=D-JJ+p8b|E~&V=F2jkcxh_&y-d({*Z;>b z6mIa~d+-&h&h2&`!%y|2zGO}je|a!~&EI{mHtZ0$7@biJ-m#?s&$$HtHEhUpuK1_E z3tO%lz%_f%-`l}p8Qs9VX$|x)1P=-(jYUJ&DG!h;DKJSpGm-LVJ=~2UT3KmIBLM`h zIazt0tsLC-g$XMzGTkI0i2TGg|2tFP?jiAOleJ`7O`yr>j~Dzi;<)~9F`D*i(=x%! z>Q8Xn-6Y8LgpA*UqjOlR;KWT-@&@pL|6iB=FQ$*1hZH>VBgKnrazy)H)T|-2gv9QI zqrV2aNV#i%3m^LuYv=hG{_)%Yt~gY`hQ^gBsSiR{#fd&~UiqITNB8`|CDS@C2Wa(+ zZfSc47oP`@44AnatcV>QeK`Iu<9F~Z*xI})60K@6{+BE616V5()*8u?NXtsa36amn zf6tGi!C;IQ{x_;Q!HzHi?%in45Ky%AZ!~p6 z(4@{{bfk^eI7klVWQHU2P(C3fCx}Ze8765tU#Y}N{J|x*-omix^bP^@sBpJbAhyf9 z<@i}lt+QeLsZm41Rb`OP_jQJVKq;by4mN}<7-9Uko$KLZWB73c=~N=4IQ>d57$_5T zu0EriYh}+sSqpge@s<)v$)CE0!HO&jS8^v(-fD?TQ2_U;Ht_$um7fzhqPFkiNm3&8 zm!pI^ra9~qJEZ1ziz#;0v4W>Z=*HQAb$g_R=ybuKc=|+J2)yQC_1@lWoz(ea(8=~n zf^cdHQYSFU)ut&mLJs8ihuV*ZWv8hP15*)NhJek;|KDP9dF@ehMA8M-j@n=9&~26{ zi3~y630p;i_p`dAw&^w-u~N*oKTom2*3Hkp6^3PPz{`=*wy}b--Z0_BZhYEqzyH-> z2+R(D>+RCE-9J6RDzUfy6^x?aWz5sICH~Kd;PblDJ*og>!A~~B-`FBgGQ7W3N!TD+<(!V)5`8x4;^~S&{ z`csE$wixgEyw%^F*hz<)jx_AF5{B*8_GtlQvLOc~jpt9JZ*leRr04;aBA6@g3y)re zF|*%2jm_e|Y$iw>ESg%;!A;|*aZwWAYg{u3IN9qBLK2nVWTu=sd@Zj^6#Ws=Ak$!^W$r0!EF#g&5CMy!7usrN{0+2N&p0%5il1WE$^Iv19*?z3qt! z=n|0D9{YGo3ly4#zxWYrC%AavAiG&p<|W?%_`e3$j^sY-{JZMR`;T zT(j8NZ|c+fvCIFNBnG~UihbEvdtw68P8$UO{P%RUXnpY~b^276f?P}q%!fesV9$6HOH)SG1usGz6v{~BHp=F1{Cv!)?is(OyI?_ z7H7o&j+PvM6vEW#eX36kBN{C_g-Lu|wONJ`CfI8A2ii&QlvpNZ^>)E{lQBQ_EydjX zQ+RM*9@)>)zmvbt#<+%N44I2OHI`B(4(e%!(022zKHpD@`O{;jPwb3LCe+%VbFqLI zC~{Y|PMsKxTFoW?(F+6fb&{{99d`n;r<4vU#d>IlDm9e_d-Ko@a($&W}HVB;=Jn*Qdif}twj6EeaSn6-F!TD-zB@3-PQ6eE=|GOss z`)tl}j_96`Zv*y}jexm7w(OczT~6?@@d>bxw3ii@gN@t15DJOXolj5$5-oRV_S8#4p&(sg=BN^*LJ zF(k$F)M?rNX!6eo{c!`6xY6+3lyr!~;prutG&c5!`A_;+6x=(Tdrs1oKPL6MlbYSx2s2_ibv|HXtThTE@4$XA zTS*bOT3pB@LKW+;f_`6eYY1fpt;yL0r$SujBSI1C@0i9Crvt{V?pRge9{xK2Z&PfC zdetfZ@S1-QL zPVX~&`)@$`lpReqjY-@Ua>ah9P&rgTqSDMcwcqlfX)f3xVu9OPBzGVo!`{+NJv}<0 z00sLvGeL-Sn|73z-N7lH)5^+rNw0pez+lDKq2`c1^t}UyCORYijXVgjQV-cra6FfsA)Wb0w3JS;k=Q7&W!X%EfLUaXPMn!2G3Z()2g zOd8tRhq^{qkg4sf=96BrBrFMsYlM|c71D0#$Me~MO0{v7DFT5Y>B7B8y$7}f@;N+F z!-j?-5W1SuN+wZhYhX9w`^lntCN3VHr{dGDw*&zQ!RUMZBckjF1v?LuzDivzLIk&i z9oA#}mWF9auwk-9{&%QSn7ko)_e4v0kFcL^n1|#Czh@YAD~}Y8+C_&mg54`mDl&4)7U>dL8l1U2nIVR zLML^>UeuSCyLz7)0ucOPh4*MsE`Wk=F_)J9`=9Q_a5z$YdI+pa8<~(dSVtV0PYu1- zcPEF#9lsdQlwdBPrnwsIxp$)W(;wt)Fd`71!wv{}Q~6aATr$<5RIAv}cL&{phy*>& zN*N)%qaFkU)QC0KpRd0e-ziJQV>ux{9Ye51UI`S;iGbZwx;q$=VB-HSA`AF+ft8^$ zQef=%y@M#QV;CAEy8W5ZMJ(Rhx%gJ)%3LxvRCJ!#D(ff$>^8RHY~3^=DJsrP3qH@2 z-G6V3B71hASwe9eyg}pWv5U`4ivho@GYHY$-n)mgU`=z4U4w!#q!zmS1tQ^`rZgYF zmUq3E2f2+r*mFG-j=$lVqYNMLKC5*Q?9aHGGy8s{jq$l6yk+m{>H^rQuLEfYWFq8w zvFqyNVE^vu;)M>p05AcTEP5-IH8hoSKou(~XC*x0;B+I>g^TlwxcPvkoCCU7h!MM( zR$rkro%8Yo8G?#30-;=%bpZVPyS74FuupJzllrwE*w6J!_6M2CJ9g#F)4y*NE;|5a9g^GyP1kK)+@>T5H;8k%tobhbTl6^+dK&k zPqtyrd69RH6kzyr7h(+bYK$F>$z23{{oh}`Jj8OmZ@DW%1{8n+42%07*?|%TboV!s zG<4H!p!px*OSnsqsjMW^{S2-E`jWN8&8>zJXS)fKsVfc=MV21-8b*l`em1KM`|aC? zNG^b!|9RcDoAo5%1B*~ZLEp%2@HJJeS0zz^xbByB3f@{}1?}^e+s})3OA;VJ1j3u_ z6SLp>6iT_PT$S`C&YG3ddu2X75MWmaY`ONliFgzWEz25Z{$6m@c-apSxjfcGGfK*DVbYJboi%4-0MDV|Z${^bueAd!&Hjs+%VvQd$@XZOrTE!O`a>3G%!-E@h6@<^E!Q{Qk zO`(VAKAR)CWLfwHa#7tq6^szae-HsLatwXF%~vx$t`(cWJa`@t8FggJAlg3Fhy#kg z&qv~0f=3>0!Og9x$@N-xY?}%KjpMw7e8Z~`iGhfe8@rxLeJL!=H5v*H;GxY5JoKBi z?|=k9rwKu5vivF!H`5AfIce&pL8ka#K}( zKPydcm);cvzSkm=nxb1((w^=H%KJQKo>=p#Z=<^vfB@zSF^fJw-o5C?hI6?nom9ZXLT{NM-}4}3>n6S!+)LvI@HON$)sHLhz&KwP z&&Y&UC8EnMS()Xscd#M!}2K%OKo77AYhK1q!hvU8#vRR|iK{%Cm%C{%=e{bAiR1QI!cho#AZjmM(V| z+7}nCJL>WDBG0DNPZU0CM;r5W>CNyJIkb1#bGo31vceD9-VyN_(9$#TVu z6Z_^@Ou%PyI^ZM9IsIq4u}%4JUlQ5=6LF*FlAFcU1d^*V5+?cHqoiB`05Vf;G)kK- z8tcXIEeEX)1)3tohJ8M~6x01QtKXyjampWhAmrEb*qLJUg=fxz6XxQ<(u+3uuJG_< zn&HvY2b4Wp4)#oI5tSlB2ou(0jGO1j!kS_}ds7*wGg~EvdhB+Z!YYMZG-vAv75^VB_6@9n7J@pUS4{W4={%~L)p zTHP;FYiMu%)%`Ne>VA#G?~>&oEpwAD$JvJ!F_I&Cv&Wc{!1Agl&Wd-VJ3#K@F-d#U W#eyH#%CX>vz%7+K@WLDBLH`dSw(pPt literal 0 HcmV?d00001 diff --git a/netbox_proxbox/templates/netbox_proxbox/community.html b/netbox_proxbox/templates/netbox_proxbox/community.html index ea3a51a..b6117f3 100644 --- a/netbox_proxbox/templates/netbox_proxbox/community.html +++ b/netbox_proxbox/templates/netbox_proxbox/community.html @@ -33,7 +33,7 @@

-
+
+
+ +
+ + + + + + + + + +
English (en)Know more about @netdevopsbr and other opensource projects
Português (pt-br)Saiba mais sobre a @netdevopsbr e outros projetos opensource
+
+ +
+ +
+
+
+
+
+
+
+ + Telegram Logo + +
+
+ + + + + + + + + +
English (en)Would you like to know more about my work? Follow or connect with me!
Português (pt-br)Gostaria de saber mais sobre o meu trabalho? Me siga ou conecte-se comigo!
+ +
+
+
{% endblock %} \ No newline at end of file From beb16c882130b35808d0075cb8de87356eeb705e Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Fri, 21 Jul 2023 14:59:52 +0000 Subject: [PATCH 132/313] Add ']' to fix array error or urls.py module --- netbox_proxbox/urls.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/netbox_proxbox/urls.py b/netbox_proxbox/urls.py index b78c378..17f810b 100755 --- a/netbox_proxbox/urls.py +++ b/netbox_proxbox/urls.py @@ -30,4 +30,5 @@ # Proxbox API full update path("full_update/", views.ProxmoxFullUpdate.as_view(), name="proxmoxvm_full_update"), - path("single_update/", views.ProxmoxSingleUpdate.as_view(), name="proxmoxvm_single_update"), + path("single_update/", views.ProxmoxSingleUpdate.as_view(), name="proxmoxvm_single_update") +] From 9fb50902d419051ac5128041a32216ee62f233cf Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Fri, 21 Jul 2023 20:07:02 +0000 Subject: [PATCH 133/313] Add 'fastapi' app package to refactor proxbox backend --- netbox_proxbox/fastapi/__init__.py | 0 netbox_proxbox/{ => fastapi}/deploy_fastapi.py | 0 netbox_proxbox/fastapi/main.py | 8 ++++++++ netbox_proxbox/{main.py => fastapi/main_old.py} | 0 4 files changed, 8 insertions(+) create mode 100644 netbox_proxbox/fastapi/__init__.py rename netbox_proxbox/{ => fastapi}/deploy_fastapi.py (100%) create mode 100644 netbox_proxbox/fastapi/main.py rename netbox_proxbox/{main.py => fastapi/main_old.py} (100%) diff --git a/netbox_proxbox/fastapi/__init__.py b/netbox_proxbox/fastapi/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/netbox_proxbox/deploy_fastapi.py b/netbox_proxbox/fastapi/deploy_fastapi.py similarity index 100% rename from netbox_proxbox/deploy_fastapi.py rename to netbox_proxbox/fastapi/deploy_fastapi.py diff --git a/netbox_proxbox/fastapi/main.py b/netbox_proxbox/fastapi/main.py new file mode 100644 index 0000000..473417b --- /dev/null +++ b/netbox_proxbox/fastapi/main.py @@ -0,0 +1,8 @@ +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/") +async def root(): + return {"message": "Proxbox Backend"} diff --git a/netbox_proxbox/main.py b/netbox_proxbox/fastapi/main_old.py similarity index 100% rename from netbox_proxbox/main.py rename to netbox_proxbox/fastapi/main_old.py From 07799d2dce6434cc34ef0c94899aff185f6c4f60 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Sat, 22 Jul 2023 14:00:01 +0000 Subject: [PATCH 134/313] Add new main fastapi module and reorganize modules --- netbox_proxbox/fastapi/__init__.py | 0 netbox_proxbox/fastapi/main.py | 8 ---- netbox_proxbox/proxbox_api/__init__.py | 15 ------- .../deploy_fastapi.py | 0 netbox_proxbox/proxbox_api/main.py | 45 +++++++++++++++++++ .../{fastapi => proxbox_api}/main_old.py | 0 6 files changed, 45 insertions(+), 23 deletions(-) delete mode 100644 netbox_proxbox/fastapi/__init__.py delete mode 100644 netbox_proxbox/fastapi/main.py mode change 100755 => 100644 netbox_proxbox/proxbox_api/__init__.py rename netbox_proxbox/{fastapi => proxbox_api}/deploy_fastapi.py (100%) create mode 100644 netbox_proxbox/proxbox_api/main.py rename netbox_proxbox/{fastapi => proxbox_api}/main_old.py (100%) diff --git a/netbox_proxbox/fastapi/__init__.py b/netbox_proxbox/fastapi/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/netbox_proxbox/fastapi/main.py b/netbox_proxbox/fastapi/main.py deleted file mode 100644 index 473417b..0000000 --- a/netbox_proxbox/fastapi/main.py +++ /dev/null @@ -1,8 +0,0 @@ -from fastapi import FastAPI - -app = FastAPI() - - -@app.get("/") -async def root(): - return {"message": "Proxbox Backend"} diff --git a/netbox_proxbox/proxbox_api/__init__.py b/netbox_proxbox/proxbox_api/__init__.py old mode 100755 new mode 100644 index 0b8d82a..e69de29 --- a/netbox_proxbox/proxbox_api/__init__.py +++ b/netbox_proxbox/proxbox_api/__init__.py @@ -1,15 +0,0 @@ -from . import ( - update, - create, - updates, - remove, - plugins_config, -) - - - - - - - - diff --git a/netbox_proxbox/fastapi/deploy_fastapi.py b/netbox_proxbox/proxbox_api/deploy_fastapi.py similarity index 100% rename from netbox_proxbox/fastapi/deploy_fastapi.py rename to netbox_proxbox/proxbox_api/deploy_fastapi.py diff --git a/netbox_proxbox/proxbox_api/main.py b/netbox_proxbox/proxbox_api/main.py new file mode 100644 index 0000000..d3f28b1 --- /dev/null +++ b/netbox_proxbox/proxbox_api/main.py @@ -0,0 +1,45 @@ +from fastapi import FastAPI + +''' +from plugins_config import ( + NETBOX, + NETBOX_TOKEN, + PROXMOX_SESSIONS as proxmox_sessions, + NETBOX_SESSION as nb, +) +''' + +from proxmoxer import ProxmoxAPI + + +import urllib3 +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + +HOST = "X.X.X.X" +PORT = "" +USER = "@pam" +TOKEN_NAME = "" +TOKEN_VALUE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" +VERIFY_SSL = "" + +try: + # Start PROXMOX session using TOKEN + px = ProxmoxAPI( + HOST, + port=PORT, + user=USER, + token_name=TOKEN_NAME, + token_value=TOKEN_VALUE, + verify_ssl=VERIFY_SSL + ) +except: + raise RuntimeError(f'Error trying to initialize Proxmox Session using TOKEN (token_name: {PROXMOX_TOKEN_NAME} and token_value: {PROXMOX_TOKEN_VALUE} provided') + + +app = FastAPI() + + +@app.get("/proxmox/cluster/resources") +async def root(type: str | None = None): + return px.cluster.resources.get() + diff --git a/netbox_proxbox/fastapi/main_old.py b/netbox_proxbox/proxbox_api/main_old.py similarity index 100% rename from netbox_proxbox/fastapi/main_old.py rename to netbox_proxbox/proxbox_api/main_old.py From c4547c4e92dd249b02d58fcd21a89c5840e49b43 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Sat, 22 Jul 2023 19:28:10 +0000 Subject: [PATCH 135/313] Saves FastAPI work --- netbox_proxbox/api/main.py | 54 ++++++++++++++++++++++++++++++ netbox_proxbox/fastapi/main.py | 15 +++++++++ netbox_proxbox/proxbox_api/main.py | 9 +++++ 3 files changed, 78 insertions(+) create mode 100644 netbox_proxbox/api/main.py create mode 100644 netbox_proxbox/fastapi/main.py diff --git a/netbox_proxbox/api/main.py b/netbox_proxbox/api/main.py new file mode 100644 index 0000000..6306890 --- /dev/null +++ b/netbox_proxbox/api/main.py @@ -0,0 +1,54 @@ +from fastapi import FastAPI + +''' +from plugins_config import ( + NETBOX, + NETBOX_TOKEN, + PROXMOX_SESSIONS as proxmox_sessions, + NETBOX_SESSION as nb, +) +''' + +from proxmoxer import ProxmoxAPI + + +import urllib3 +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + +''' +HOST = "X.X.X.X" +PORT = "" +USER = "@pam" +TOKEN_NAME = "" +TOKEN_VALUE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" +VERIFY_SSL = "" +''' + +HOST = "10.0.30.9", +port = 8006, +USER = root@pam", +TOKEN_NAME = "root", +TOKEN_VALUE = "039ad154-23c2-4be0-8d20-b65bbb8c4686", +VERIFY_SSL = False + +try: + # Start PROXMOX session using TOKEN + px = ProxmoxAPI( + HOST, + port=PORT, + user=USER, + token_name=TOKEN_NAME, + token_value=TOKEN_VALUE, + verify_ssl=VERIFY_SSL + ) +except: + raise RuntimeError(f'Error trying to initialize Proxmox Session using TOKEN (token_name: {PROXMOX_TOKEN_NAME} and token_value: {PROXMOX_TOKEN_VALUE} provided') + + +app = FastAPI() + + +@app.get("/proxmox/cluster/resources") +async def root(type: str | None = None): + return px.cluster.resources.get() + diff --git a/netbox_proxbox/fastapi/main.py b/netbox_proxbox/fastapi/main.py new file mode 100644 index 0000000..cc12f9c --- /dev/null +++ b/netbox_proxbox/fastapi/main.py @@ -0,0 +1,15 @@ +from fastapi import FastAPI + +from netbox_proxbox.plugins_config import ( + NETBOX, + NETBOX_TOKEN, + PROXMOX_SESSIONS as proxmox_sessions, + NETBOX_SESSION as nb, +) + +app = FastAPI() + + +@app.get("/") +async def root(): + return {"message": "Proxbox Backend"} diff --git a/netbox_proxbox/proxbox_api/main.py b/netbox_proxbox/proxbox_api/main.py index d3f28b1..6306890 100644 --- a/netbox_proxbox/proxbox_api/main.py +++ b/netbox_proxbox/proxbox_api/main.py @@ -15,12 +15,21 @@ import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) +''' HOST = "X.X.X.X" PORT = "" USER = "@pam" TOKEN_NAME = "" TOKEN_VALUE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" VERIFY_SSL = "" +''' + +HOST = "10.0.30.9", +port = 8006, +USER = root@pam", +TOKEN_NAME = "root", +TOKEN_VALUE = "039ad154-23c2-4be0-8d20-b65bbb8c4686", +VERIFY_SSL = False try: # Start PROXMOX session using TOKEN From 8ef170b38faf0617ac4b594f0a580a9d9988757b Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Sat, 22 Jul 2023 20:34:59 +0000 Subject: [PATCH 136/313] Increase result message of '/proxmox' base path including api results --- netbox_proxbox/api/main.py | 72 ++++++++++++++++++++++++++++++++------ 1 file changed, 62 insertions(+), 10 deletions(-) diff --git a/netbox_proxbox/api/main.py b/netbox_proxbox/api/main.py index 6306890..aa7c8e6 100644 --- a/netbox_proxbox/api/main.py +++ b/netbox_proxbox/api/main.py @@ -24,11 +24,11 @@ VERIFY_SSL = "" ''' -HOST = "10.0.30.9", -port = 8006, -USER = root@pam", -TOKEN_NAME = "root", -TOKEN_VALUE = "039ad154-23c2-4be0-8d20-b65bbb8c4686", +HOST = "10.0.30.9" +PORT = 8006 +USER = "root@pam" +TOKEN_NAME = "root" +TOKEN_VALUE = "039ad154-23c2-4be0-8d20-b65bbb8c4686" VERIFY_SSL = False try: @@ -41,14 +41,66 @@ token_value=TOKEN_VALUE, verify_ssl=VERIFY_SSL ) -except: - raise RuntimeError(f'Error trying to initialize Proxmox Session using TOKEN (token_name: {PROXMOX_TOKEN_NAME} and token_value: {PROXMOX_TOKEN_VALUE} provided') +except Exception as error: + raise RuntimeError(f'Error trying to initialize Proxmox Session using TOKEN (token_name: {TOKEN_NAME} and token_value: {TOKEN_VALUE} provided\n > {error}') - +''' +api_hierarchy = { + "toplevel": ["access", "cluster", "nodes", "pools", "storage", "version"], + "secondlevel": { + "access": ["domains", "groups", "openid", "roles", "tfa", "users", "acl", "password", "permissions", "ticket"], + "cluster": ["acme", "backup", "backup-info", "ceph", "config", "firewall", "ha", "jobs", "mapping", "metrics", + "replication", "sdn", "log", "options", "resources", "status", "tasks"], + "nodes": "node_id", + "pools": "pool_id", + "storage": "storage_id", + }, + "thirdlevel": { + "node": ["apt", "capabilities", "ceph", "certificates", "disks", "firewall", "lxc", "network", "qemu", "replication", "scan", "sdn", "services", + "storage", "tasks", "vzdump", "aplinfo", "config", "dns", "execute", "hosts", "journal", "migrateall", "query-url-metadata", "report", + "rrd", "rrddata", "spiceshell", "startall", "stopall", "subscription", "syslog", "subscription", "syslog", "termproxy", + "time", "version", "vncshell", "vncwebsocket", "wakeonlan"] + } +} +''' + app = FastAPI() +@app.get("/proxmox") +async def proxmox(): + api_hierarchy = { + "access" : px.access.get(), + "cluster": px.cluster.get(), + "nodes": px.nodes.get(), + "pools": px.pools.get(), + "storage": px.storage.get(), + "version": px.version.get(), + } + + return { + "message": "Proxmox API", + "api_viewer": "https://pve.proxmox.com/pve-docs/api-viewer/", + "github": { + "netbox": "https://github.com/netbox-community/netbox", + "pynetbox": "https://github.com/netbox-community/pynetbox", + "proxmoxer": "https://github.com/proxmoxer/proxmoxer", + "netbox-proxbox": "https://github.com/netdevopsbr/netbox-proxbox" + }, + "api_base_results": api_hierarchy + } + return + +@app.get("/proxmox/{top_level}") +async def root( + top_level: str | None = None, +): + return px.get() -@app.get("/proxmox/cluster/resources") -async def root(type: str | None = None): +@app.get("/proxmox/{top_level}/{second_level}/{third_level}") +async def root( + top_level: str | None = None, + second_level: str | None = None, + third_level: str | None = None, +): return px.cluster.resources.get() From f4e136fa5cf799b4e35819d2bd69cd45207de053 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 13:23:36 +0000 Subject: [PATCH 137/313] Add static json response to '/' root FastAPI path --- netbox_proxbox/api/main.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/netbox_proxbox/api/main.py b/netbox_proxbox/api/main.py index aa7c8e6..38023cd 100644 --- a/netbox_proxbox/api/main.py +++ b/netbox_proxbox/api/main.py @@ -66,6 +66,21 @@ app = FastAPI() +@app.get("/") +async def root(): + return { + "message": "Proxbox Backend made in FastAPI framework", + "proxbox": { + "github": "https://github.com/netdevopsbr/netbox-proxbox", + "docs": "https://docs.netbox.dev.br", + }, + "fastapi": { + "github": "https://github.com/tiangolo/fastapi", + "website": "https://fastapi.tiangolo.com/", + "reason": "FastAPI was chosen because of performance and reliabilty." + } + } + @app.get("/proxmox") async def proxmox(): api_hierarchy = { From a796ec88511f57eabd346b1b2f7fa1237a0a4571 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 13:35:17 +0000 Subject: [PATCH 138/313] Add top-level endpoints like /cluster and /access --- netbox_proxbox/api/main.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/netbox_proxbox/api/main.py b/netbox_proxbox/api/main.py index 38023cd..925bc7a 100644 --- a/netbox_proxbox/api/main.py +++ b/netbox_proxbox/api/main.py @@ -109,7 +109,13 @@ async def proxmox(): async def root( top_level: str | None = None, ): - return px.get() + match top_level: + case "access": return px.access.get() + case "cluster": return px.cluster.get() + case "nodes": return px.nodes.get() + case "pools": return px.pools.get() + case "storage": return px.storage.get() + case "version": return px.version.get() @app.get("/proxmox/{top_level}/{second_level}/{third_level}") async def root( From f2eee32b41e45ba35287332b37a3e453393c02ff Mon Sep 17 00:00:00 2001 From: Jason Hollis <400979+CodeBleu@users.noreply.github.com> Date: Mon, 24 Jul 2023 11:19:28 -0400 Subject: [PATCH 139/313] Fixed README --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 952fbc7..53fb1a3 100755 --- a/README.md +++ b/README.md @@ -5,9 +5,9 @@ Proxbox logo
- +
- + ### [New Documentation available!](http://proxbox.netbox.dev.br/)

@@ -40,7 +40,7 @@ Proxbox is currently able to get the following information from Proxmox: ---
- + ### Versions @@ -190,10 +190,9 @@ PLUGINS_CONFIG = { } } } +``` -
- #### 1.3.2. Change Netbox '**[settings.py](https://github.com/netbox-community/netbox/blob/develop/netbox/netbox/settings.py)**' to include Proxbox Template directory > Probably on the next release of Netbox, it will not be necessary to make the configuration below! As the [Pull Request #8733](https://github.com/netbox-community/netbox/pull/8734) got merged to develop branch @@ -240,7 +239,7 @@ The following options are available: * `netbox.http_port`: (Integer) Netbox HTTP PORT (default: 8001). If you are not targeting gunicorn directly make sure the HTTP port is not redirected to HTTPS by your HTTP server. * `netbox.token`: (String) Netbox Token Value. * `netbox.ssl`: (Bool) Defines the use of SSL (default: False). - Proxbox doesn't support SSL on Netbox yet. -* `netbox.settings`: (Dict) Default items of Netbox to be used by Proxbox. +* `netbox.settings`: (Dict) Default items of Netbox to be used by Proxbox. - If not configured, Proxbox will automatically create a basic configuration to make it work. - The ID of each item can be easily found on the URL of the item you want to use. * `netbox.settings.virtualmachine_role_id`: (Integer) Role ID to be used by Proxbox when creating Virtual Machines From f497a51bc584ca552ea0f409eab79f238c7bd4dc Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 15:26:59 +0000 Subject: [PATCH 140/313] Dynamically response to top-level endpoints using '/proxmox/{top_level}' path --- netbox_proxbox/api/main.py | 94 +++++++++++++++++++++----------------- setup.py | 16 ++++--- 2 files changed, 63 insertions(+), 47 deletions(-) diff --git a/netbox_proxbox/api/main.py b/netbox_proxbox/api/main.py index 925bc7a..d443590 100644 --- a/netbox_proxbox/api/main.py +++ b/netbox_proxbox/api/main.py @@ -1,16 +1,8 @@ from fastapi import FastAPI -''' -from plugins_config import ( - NETBOX, - NETBOX_TOKEN, - PROXMOX_SESSIONS as proxmox_sessions, - NETBOX_SESSION as nb, -) -''' - -from proxmoxer import ProxmoxAPI +from proxmoxer import ProxmoxAPI, ResourceException +import endpoint import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) @@ -24,6 +16,9 @@ VERIFY_SSL = "" ''' +TOPLEVEL_ENDPOINTS = ["access", "cluster", "nodes", "pools", "storage", "version"] + +# Example of variables formmating/type HOST = "10.0.30.9" PORT = 8006 USER = "root@pam" @@ -44,28 +39,10 @@ except Exception as error: raise RuntimeError(f'Error trying to initialize Proxmox Session using TOKEN (token_name: {TOKEN_NAME} and token_value: {TOKEN_VALUE} provided\n > {error}') -''' -api_hierarchy = { - "toplevel": ["access", "cluster", "nodes", "pools", "storage", "version"], - "secondlevel": { - "access": ["domains", "groups", "openid", "roles", "tfa", "users", "acl", "password", "permissions", "ticket"], - "cluster": ["acme", "backup", "backup-info", "ceph", "config", "firewall", "ha", "jobs", "mapping", "metrics", - "replication", "sdn", "log", "options", "resources", "status", "tasks"], - "nodes": "node_id", - "pools": "pool_id", - "storage": "storage_id", - }, - "thirdlevel": { - "node": ["apt", "capabilities", "ceph", "certificates", "disks", "firewall", "lxc", "network", "qemu", "replication", "scan", "sdn", "services", - "storage", "tasks", "vzdump", "aplinfo", "config", "dns", "execute", "hosts", "journal", "migrateall", "query-url-metadata", "report", - "rrd", "rrddata", "spiceshell", "startall", "stopall", "subscription", "syslog", "subscription", "syslog", "termproxy", - "time", "version", "vncshell", "vncwebsocket", "wakeonlan"] - } -} -''' - + app = FastAPI() + @app.get("/") async def root(): return { @@ -106,8 +83,52 @@ async def proxmox(): return @app.get("/proxmox/{top_level}") -async def root( +async def top_level_endpoint( + top_level: str | None = None, +): + if top_level not in TOPLEVEL_ENDPOINTS: + return { + "message": f"'{top_level}' is not a valid endpoint/path name.", + "valid_names": TOPLEVEL_ENDPOINTS, + } + + import numpy as np + + current_index = TOPLEVEL_ENDPOINTS.index(top_level) + other_endpoints = TOPLEVEL_ENDPOINTS.copy() + other_endpoints.pop(current_index) + + return { + f"{top_level}": px(top_level).get(), + "other_endpoints": other_endpoints, + } + + ''' + match top_level: + case "access": + json_obj = {"access": {}} + second_level = endpoint.access(px.access.get()) + print(second_level) + for endpoint_name in second_level: + try: + path = f"{top_level}/{endpoint_name}" + result = px(path).get() + + json_obj["access"][endpoint_name] = result + except ResourceException as error: + print(f"Path {path} does not exist.\n > {error}") + + return json_obj + ''' + + + + + +@app.get("/proxmox/{top_level}/{second_level}") +async def second_level_endpoint( top_level: str | None = None, + second_level: str | None = None, ): match top_level: case "access": return px.access.get() @@ -115,13 +136,4 @@ async def root( case "nodes": return px.nodes.get() case "pools": return px.pools.get() case "storage": return px.storage.get() - case "version": return px.version.get() - -@app.get("/proxmox/{top_level}/{second_level}/{third_level}") -async def root( - top_level: str | None = None, - second_level: str | None = None, - third_level: str | None = None, -): - return px.cluster.resources.get() - + case "version": return {f"{top_level}": px.version.get(), "secondlevel": second_level} \ No newline at end of file diff --git a/setup.py b/setup.py index e088f6c..ffe9a4a 100755 --- a/setup.py +++ b/setup.py @@ -12,10 +12,14 @@ long_description = fh.read() ''' -github = 'https://github.com/N-Multifibra/netbox-proxbox' +version = "0.0.5" +github = 'https://github.com/netdevopsbr/netbox-proxbox' +name = "netbox-proxbox" +python_min_version = "3.10" # Proxbox dependencies requires = [ + 'numpy', 'poetry', 'invoke', 'requests>=2', @@ -41,12 +45,12 @@ ] setup( - name="netbox-proxbox", - version="0.0.5", + name=name, + version=version, author="Emerson Felipe", - author_email="emerson.felipe@nmultifibra.com.br", + author_email="emerson@netdevopsbr.com", description="Integration between Proxmox and Netbox", - url='https://github.com/N-Multifibra/netbox-proxbox', + url=github, long_description=long_description, long_description_content_type="text/markdown", classifiers=[ @@ -68,5 +72,5 @@ extras_require={ "dev": dev_requires, }, - python_requires= '>=3.9', + python_requires= f'>={python_min_version}', ) From 5a7943191341fba9cb7c5ce502d09b1a413f03b2 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 15:40:52 +0000 Subject: [PATCH 141/313] adjust and minimize '/proxmox' json result --- netbox_proxbox/api/main.py | 88 +++++++++++++++++++++----------------- 1 file changed, 49 insertions(+), 39 deletions(-) diff --git a/netbox_proxbox/api/main.py b/netbox_proxbox/api/main.py index d443590..44e2c78 100644 --- a/netbox_proxbox/api/main.py +++ b/netbox_proxbox/api/main.py @@ -1,12 +1,18 @@ +# Python Framework from fastapi import FastAPI -from proxmoxer import ProxmoxAPI, ResourceException +# NP import to use 'copy' array method +import numpy as np -import endpoint +# Proxmoxer lib (https://proxmoxer.github.io/) +from proxmoxer import ProxmoxAPI, ResourceException +# HTTP SSL handling import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) +TOPLEVEL_ENDPOINTS = ["access", "cluster", "nodes", "pools", "storage", "version"] + ''' HOST = "X.X.X.X" PORT = "" @@ -16,8 +22,6 @@ VERIFY_SSL = "" ''' -TOPLEVEL_ENDPOINTS = ["access", "cluster", "nodes", "pools", "storage", "version"] - # Example of variables formmating/type HOST = "10.0.30.9" PORT = 8006 @@ -39,10 +43,9 @@ except Exception as error: raise RuntimeError(f'Error trying to initialize Proxmox Session using TOKEN (token_name: {TOKEN_NAME} and token_value: {TOKEN_VALUE} provided\n > {error}') - +# Init FastAPI app = FastAPI() - @app.get("/") async def root(): return { @@ -60,9 +63,25 @@ async def root(): @app.get("/proxmox") async def proxmox(): + + def minimize_result(endpoint_name): + endpoint_list = [] + result = px(endpoint_name).get() + + match endpoint_name: + case "access": + for obj in result: + endpoint_list.append(obj.get("subdir")) + + case "cluster": + for obj in result: + endpoint_list.append(obj.get("name")) + + return endpoint_list + api_hierarchy = { - "access" : px.access.get(), - "cluster": px.cluster.get(), + "access": minimize_result("access"), + "cluster": minimize_result("cluster"), "nodes": px.nodes.get(), "pools": px.pools.get(), "storage": px.storage.get(), @@ -71,7 +90,7 @@ async def proxmox(): return { "message": "Proxmox API", - "api_viewer": "https://pve.proxmox.com/pve-docs/api-viewer/", + "proxmox_api_viewer": "https://pve.proxmox.com/pve-docs/api-viewer/", "github": { "netbox": "https://github.com/netbox-community/netbox", "pynetbox": "https://github.com/netbox-community/pynetbox", @@ -92,8 +111,6 @@ async def top_level_endpoint( "valid_names": TOPLEVEL_ENDPOINTS, } - import numpy as np - current_index = TOPLEVEL_ENDPOINTS.index(top_level) other_endpoints = TOPLEVEL_ENDPOINTS.copy() other_endpoints.pop(current_index) @@ -102,27 +119,6 @@ async def top_level_endpoint( f"{top_level}": px(top_level).get(), "other_endpoints": other_endpoints, } - - ''' - match top_level: - case "access": - json_obj = {"access": {}} - second_level = endpoint.access(px.access.get()) - print(second_level) - for endpoint_name in second_level: - try: - path = f"{top_level}/{endpoint_name}" - result = px(path).get() - - json_obj["access"][endpoint_name] = result - except ResourceException as error: - print(f"Path {path} does not exist.\n > {error}") - - return json_obj - ''' - - - @app.get("/proxmox/{top_level}/{second_level}") @@ -130,10 +126,24 @@ async def second_level_endpoint( top_level: str | None = None, second_level: str | None = None, ): - match top_level: - case "access": return px.access.get() - case "cluster": return px.cluster.get() - case "nodes": return px.nodes.get() - case "pools": return px.pools.get() - case "storage": return px.storage.get() - case "version": return {f"{top_level}": px.version.get(), "secondlevel": second_level} \ No newline at end of file + if top_level not in TOPLEVEL_ENDPOINTS: + return { + "message": f"'{top_level}' is not a valid endpoint/path name.", + "valid_names": TOPLEVEL_ENDPOINTS, + } + + json_obj = {f"{top_level}": {}} + + try: + path = f"{top_level}/{second_level}" + + # HTTP request through proxmoxer lib + result = px(path).get() + + # Feed JSON result + json_obj[top_level][second_level] = result + + except ResourceException as error: + print(f"Path {path} does not exist.\n > {error}") + + return json_obj \ No newline at end of file From ccf610ad6e950bf08c1557882ab3b8107c87fdc8 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 15:42:17 +0000 Subject: [PATCH 142/313] change name of api base result --- netbox_proxbox/api/main.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/netbox_proxbox/api/main.py b/netbox_proxbox/api/main.py index 44e2c78..366b7cd 100644 --- a/netbox_proxbox/api/main.py +++ b/netbox_proxbox/api/main.py @@ -97,9 +97,8 @@ def minimize_result(endpoint_name): "proxmoxer": "https://github.com/proxmoxer/proxmoxer", "netbox-proxbox": "https://github.com/netdevopsbr/netbox-proxbox" }, - "api_base_results": api_hierarchy + "base_endpoints": api_hierarchy } - return @app.get("/proxmox/{top_level}") async def top_level_endpoint( From df5781a111b828266eaeaa421cbad18841868d52 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 15:50:24 +0000 Subject: [PATCH 143/313] Return 'ResourceException' error as HTTP response --- netbox_proxbox/api/main.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/netbox_proxbox/api/main.py b/netbox_proxbox/api/main.py index 366b7cd..2cc6b65 100644 --- a/netbox_proxbox/api/main.py +++ b/netbox_proxbox/api/main.py @@ -143,6 +143,9 @@ async def second_level_endpoint( json_obj[top_level][second_level] = result except ResourceException as error: - print(f"Path {path} does not exist.\n > {error}") + return { + "message": f"Path {path} does not exist.", + "error": error + } return json_obj \ No newline at end of file From 0df1150527a2c4dc73a283dea24b5bbdf35ae699 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 16:03:34 +0000 Subject: [PATCH 144/313] Add condition if path is 'cluster/resources' to add optional type argument --- netbox_proxbox/api/main.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/netbox_proxbox/api/main.py b/netbox_proxbox/api/main.py index 2cc6b65..abf965e 100644 --- a/netbox_proxbox/api/main.py +++ b/netbox_proxbox/api/main.py @@ -124,6 +124,8 @@ async def top_level_endpoint( async def second_level_endpoint( top_level: str | None = None, second_level: str | None = None, + type: str | None = None, + id: str | None = None, ): if top_level not in TOPLEVEL_ENDPOINTS: return { @@ -137,7 +139,10 @@ async def second_level_endpoint( path = f"{top_level}/{second_level}" # HTTP request through proxmoxer lib - result = px(path).get() + if path == "cluster/resources" and type != None: + result = px(path).get(type = type) + else: + result = px(path).get() # Feed JSON result json_obj[top_level][second_level] = result From 5b7a8e236e896f615ebd3b94cd97fbfcecc2b38a Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 16:07:51 +0000 Subject: [PATCH 145/313] Add condition if path is 'cluster/resources' to add optional type argument --- netbox_proxbox/api/main.py | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/netbox_proxbox/api/main.py b/netbox_proxbox/api/main.py index abf965e..1ce4ea6 100644 --- a/netbox_proxbox/api/main.py +++ b/netbox_proxbox/api/main.py @@ -22,26 +22,8 @@ VERIFY_SSL = "" ''' -# Example of variables formmating/type -HOST = "10.0.30.9" -PORT = 8006 -USER = "root@pam" -TOKEN_NAME = "root" -TOKEN_VALUE = "039ad154-23c2-4be0-8d20-b65bbb8c4686" -VERIFY_SSL = False - -try: - # Start PROXMOX session using TOKEN - px = ProxmoxAPI( - HOST, - port=PORT, - user=USER, - token_name=TOKEN_NAME, - token_value=TOKEN_VALUE, - verify_ssl=VERIFY_SSL - ) -except Exception as error: - raise RuntimeError(f'Error trying to initialize Proxmox Session using TOKEN (token_name: {TOKEN_NAME} and token_value: {TOKEN_VALUE} provided\n > {error}') +from netbox_proxbox.proxbox_api.plugins_config import PROXMOX_SESSIONS +print(PROXMOX_SESSIONS) # Init FastAPI app = FastAPI() From a6771bfdf0f761a721a9f26dbe4422acd91078b3 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 16:30:45 +0000 Subject: [PATCH 146/313] Stop using static vars and imports Proxmox Sessions from 'plugins_config' --- netbox_proxbox/api/main.py | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/netbox_proxbox/api/main.py b/netbox_proxbox/api/main.py index 1ce4ea6..fe6e427 100644 --- a/netbox_proxbox/api/main.py +++ b/netbox_proxbox/api/main.py @@ -13,17 +13,25 @@ TOPLEVEL_ENDPOINTS = ["access", "cluster", "nodes", "pools", "storage", "version"] -''' -HOST = "X.X.X.X" -PORT = "" -USER = "@pam" -TOKEN_NAME = "" -TOKEN_VALUE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" -VERIFY_SSL = "" -''' - -from netbox_proxbox.proxbox_api.plugins_config import PROXMOX_SESSIONS -print(PROXMOX_SESSIONS) +# Proxbox +from netbox_proxbox.proxbox_api.plugins_config import PROXMOX_SESSIONS, PROXMOX_SETTING + +sessions_list = [] + +# Get SESSIONs from JSON +for px_node in PROXMOX_SETTING: + domain = px_node.get("domain") + + px_json = PROXMOX_SESSIONS.get(domain) + px_session = px_json.get('PROXMOX_SESSION') + sessions_list.append(px_session) + +# Single Session +px = None +try: + px = sessions_list[0] +except Exception as error: + print(f"Not able to establish session.\n > {error}") # Init FastAPI app = FastAPI() @@ -31,6 +39,7 @@ @app.get("/") async def root(): return { + "proxmox_sessions": PROXMOX_SETTING, "message": "Proxbox Backend made in FastAPI framework", "proxbox": { "github": "https://github.com/netdevopsbr/netbox-proxbox", From 14ab2ac8f519218975982d0347768bd5857b08a9 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 16:40:30 +0000 Subject: [PATCH 147/313] Add basic instructions of how to deploy FastAPI --- FASTAPI.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 FASTAPI.md diff --git a/FASTAPI.md b/FASTAPI.md new file mode 100644 index 0000000..007b1fb --- /dev/null +++ b/FASTAPI.md @@ -0,0 +1,22 @@ +# Deploy FastAPI + +Using **(uvicorn)[https://www.uvicorn.org/] to deploy Proxbox backend using [FastAPI](https://fastapi.tiangolo.com/) on port **9000** using development mode with --reload. + +### It's not ready for PRODUCTION! + +FastAPI was chosen to replace the current Django Backend, but it's not fully implemented and tested. + +``` +cd /opt/netbox/netbox +uvicorn netbox-proxbox.netbox_proxbox.api.main:app --reload --port 9000 +``` + +## Testing FastAPI + +Access the following URL **http://:/proxmox/cluster/resources** to view all VMs/Nodes/Storages of your environment. +Docs: **http://:/docs** or **http://:/redoc** + +## Security + +The password is not securely stored yet, but I will fix it. +About the integration, we only use **GET HTTP methods** and we do not modify anything of your environment using **POST / PUT** methods, even though the token allows it or not. \ No newline at end of file From 8ffe99750c43d18823e1177e300f125483b3ea3d Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 16:42:40 +0000 Subject: [PATCH 148/313] Fix markdown formatting --- FASTAPI.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FASTAPI.md b/FASTAPI.md index 007b1fb..3378c71 100644 --- a/FASTAPI.md +++ b/FASTAPI.md @@ -1,6 +1,6 @@ # Deploy FastAPI -Using **(uvicorn)[https://www.uvicorn.org/] to deploy Proxbox backend using [FastAPI](https://fastapi.tiangolo.com/) on port **9000** using development mode with --reload. +Using **[uvicorn](https://www.uvicorn.org/)** to deploy Proxbox backend using **[FastAPI](https://fastapi.tiangolo.com/)** on port **9000** using development mode with --reload. ### It's not ready for PRODUCTION! From e015506d3d4f3f3843906877e449c4ed1dc7e3d9 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 16:43:51 +0000 Subject: [PATCH 149/313] Removes <> from variable namespace --- FASTAPI.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FASTAPI.md b/FASTAPI.md index 3378c71..dd02872 100644 --- a/FASTAPI.md +++ b/FASTAPI.md @@ -13,7 +13,7 @@ uvicorn netbox-proxbox.netbox_proxbox.api.main:app --reload --port 9000 ## Testing FastAPI -Access the following URL **http://:/proxmox/cluster/resources** to view all VMs/Nodes/Storages of your environment. +Access the following URL **http://host:port/proxmox/cluster/resources** to view all VMs/Nodes/Storages of your environment. Docs: **http://:/docs** or **http://:/redoc** ## Security From 45d3d9e3f79f52d20115115dba030d68ccbaa7de Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 16:44:38 +0000 Subject: [PATCH 150/313] Replace variables to UPPERCASE --- FASTAPI.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FASTAPI.md b/FASTAPI.md index dd02872..7270cbe 100644 --- a/FASTAPI.md +++ b/FASTAPI.md @@ -13,8 +13,8 @@ uvicorn netbox-proxbox.netbox_proxbox.api.main:app --reload --port 9000 ## Testing FastAPI -Access the following URL **http://host:port/proxmox/cluster/resources** to view all VMs/Nodes/Storages of your environment. -Docs: **http://:/docs** or **http://:/redoc** +Access the following URL **http://HOST:PORT/proxmox/cluster/resources** to view all VMs/Nodes/Storages of your environment. +Docs: **http://HOST:PORT/docs** or **http://HOST:PORT/redoc** ## Security From 8b87fb70af237e565ab4f02bf3fb2cea8147f173 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Mon, 24 Jul 2023 21:38:02 +0000 Subject: [PATCH 151/313] Add first HTML response using dependency injection --- netbox_proxbox/api/main.py | 39 +++- .../templates/netbox_proxbox/base/40x.html | 21 ++ .../templates/netbox_proxbox/base/base.html | 121 ++++++++++++ .../templates/netbox_proxbox/base/layout.html | 179 ++++++++++++++++++ .../netbox_proxbox/base/sidenav.html | 43 +++++ .../netbox_proxbox/fastapi/home.html | 6 + .../templates/netbox_proxbox/home.html | 1 - 7 files changed, 407 insertions(+), 3 deletions(-) create mode 100644 netbox_proxbox/templates/netbox_proxbox/base/40x.html create mode 100644 netbox_proxbox/templates/netbox_proxbox/base/base.html create mode 100644 netbox_proxbox/templates/netbox_proxbox/base/layout.html create mode 100644 netbox_proxbox/templates/netbox_proxbox/base/sidenav.html create mode 100644 netbox_proxbox/templates/netbox_proxbox/fastapi/home.html diff --git a/netbox_proxbox/api/main.py b/netbox_proxbox/api/main.py index fe6e427..563751e 100644 --- a/netbox_proxbox/api/main.py +++ b/netbox_proxbox/api/main.py @@ -1,5 +1,10 @@ # Python Framework -from fastapi import FastAPI +from typing import Annotated + +from fastapi import Depends, FastAPI, Request +from fastapi.responses import HTMLResponse +from fastapi.staticfiles import StaticFiles +from fastapi.templating import Jinja2Templates # NP import to use 'copy' array method import numpy as np @@ -8,6 +13,7 @@ from proxmoxer import ProxmoxAPI, ResourceException # HTTP SSL handling +import requests import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) @@ -33,10 +39,25 @@ except Exception as error: print(f"Not able to establish session.\n > {error}") +FASTAPI_HOST = "127.0.0.1" +FASTAPI_PORT = "9000" + # Init FastAPI app = FastAPI() -@app.get("/") +app.mount("/static", StaticFiles(directory="/opt/netbox/netbox/netbox-proxbox/netbox_proxbox/static"), name="static") + +templates = Jinja2Templates(directory="/opt/netbox/netbox/netbox-proxbox/netbox_proxbox/templates/netbox_proxbox") + + + +import time +from typing import Callable + +from fastapi import APIRouter, FastAPI, Request, Response +from fastapi.routing import APIRoute + +#@app.get("/") async def root(): return { "proxmox_sessions": PROXMOX_SETTING, @@ -51,6 +72,20 @@ async def root(): "reason": "FastAPI was chosen because of performance and reliabilty." } } + +@app.get("/netbox", response_class=HTMLResponse) +async def netbox( + request: Request, + proxmox: Annotated[dict, Depends(root)] +): + return templates.TemplateResponse("fastapi/home.html", { + "request": request, + "json_content": proxmox + } + ) + + + @app.get("/proxmox") async def proxmox(): diff --git a/netbox_proxbox/templates/netbox_proxbox/base/40x.html b/netbox_proxbox/templates/netbox_proxbox/base/40x.html new file mode 100644 index 0000000..a99bdd4 --- /dev/null +++ b/netbox_proxbox/templates/netbox_proxbox/base/40x.html @@ -0,0 +1,21 @@ +{% extends 'base/layout.html' %} + +{% block title %}{% endblock %} + +{% block content %} +
+
+
+
+ {{ request_path }} +
+
+ {% block message %}{% endblock %} +
+ +
+
+
+{% endblock %} \ No newline at end of file diff --git a/netbox_proxbox/templates/netbox_proxbox/base/base.html b/netbox_proxbox/templates/netbox_proxbox/base/base.html new file mode 100644 index 0000000..70f7bc1 --- /dev/null +++ b/netbox_proxbox/templates/netbox_proxbox/base/base.html @@ -0,0 +1,121 @@ +{# Base template for (almost) all NetBox pages #} +{% load static %} +{% load helpers %} + + + + + + + {# Page title #} + {% block title %}Home{% endblock %} | NetBox + + + + + + {# Static resources #} + + + + + + + + {# Javascript #} + + + {# Additional content #} + {% block head %}{% endblock %} + + + + + + {# Page layout #} + {% block layout %}{% endblock %} + + {# Additional Javascript #} + {% block javascript %}{% endblock %} + + {# User messages #} + {% include 'inc/messages.html' %} + + {# Data container #} +
+ {% block data %}{% endblock %} +
+ + + \ No newline at end of file diff --git a/netbox_proxbox/templates/netbox_proxbox/base/layout.html b/netbox_proxbox/templates/netbox_proxbox/base/layout.html new file mode 100644 index 0000000..ce9a098 --- /dev/null +++ b/netbox_proxbox/templates/netbox_proxbox/base/layout.html @@ -0,0 +1,179 @@ +{# Base layout for the core NetBox UI w/navbar and page content #} +{% extends 'base/base.html' %} +{% load helpers %} +{% load static %} + +{% comment %} +Blocks: + header: Page header + tabs: Horizontal navigation tabs + content: Page content + modals: Bootstrap 5 modal components +{% endcomment %} + +{% block layout %} + +
+
+ {# Sidebar #} + {% include 'base/sidenav.html' %} + + {# Body #} +
+ + {# NetBox Logo, only visible when printing #} +
+ NetBox logo +
+ + {# Top bar #} + + + {% if config.BANNER_TOP %} +
+ {{ config.BANNER_TOP|safe }} +
+ {% endif %} + + {% if settings.DEBUG and not settings.DEVELOPER %} + + {% endif %} + + {% if config.MAINTENANCE_MODE and config.BANNER_MAINTENANCE %} + + {% endif %} + + {# Page header #} + {% block header %} +
+ + {# Title #} +
+ {# Center-align title in object-edit views #} +

{% block title %}{% endblock title %}

+ {% block subtitle %}{% endblock %} +
+ + {# Controls #} + {% block controls %}{% endblock controls %} + +
+ {% endblock header %} + + {# Page content #} +
+ {% block tabs %}{% endblock %} + {% block content-wrapper %} +
+ {% block content %}{% endblock %} +
+ {% endblock %} + {# Bottom banner #} + {% if config.BANNER_BOTTOM %} +
+ {{ config.BANNER_BOTTOM|safe }} +
+ {% endif %} +
+ + {# BS5 pop-up modals #} + {% block modals %}{% endblock %} + + {# Page footer #} +
+ {% block footer %} +
+ +
+ +
+ +
+ {% annotated_now %} {% now 'T' %} + {{ settings.HOSTNAME }} (v{{ settings.VERSION }}) +
+ +
+ {% endblock footer %} +
+ +
+ +
+
+{% endblock layout %} \ No newline at end of file diff --git a/netbox_proxbox/templates/netbox_proxbox/base/sidenav.html b/netbox_proxbox/templates/netbox_proxbox/base/sidenav.html new file mode 100644 index 0000000..11ffb6f --- /dev/null +++ b/netbox_proxbox/templates/netbox_proxbox/base/sidenav.html @@ -0,0 +1,43 @@ +{% load navigation %} +{% load static %} + + \ No newline at end of file diff --git a/netbox_proxbox/templates/netbox_proxbox/fastapi/home.html b/netbox_proxbox/templates/netbox_proxbox/fastapi/home.html new file mode 100644 index 0000000..74816b8 --- /dev/null +++ b/netbox_proxbox/templates/netbox_proxbox/fastapi/home.html @@ -0,0 +1,6 @@ + + +

Proxbox - FastAPI Standalone Version

+ {{ json_content }} + + \ No newline at end of file diff --git a/netbox_proxbox/templates/netbox_proxbox/home.html b/netbox_proxbox/templates/netbox_proxbox/home.html index dcc2c55..cf72f08 100644 --- a/netbox_proxbox/templates/netbox_proxbox/home.html +++ b/netbox_proxbox/templates/netbox_proxbox/home.html @@ -1,5 +1,4 @@ {% extends 'base/layout.html' %} -{% load static %} {% block content %}
From 151bd2870d070b6594bc62fe5389a9337060a5c1 Mon Sep 17 00:00:00 2001 From: Emerson Felipe Date: Tue, 25 Jul 2023 10:30:36 -0300 Subject: [PATCH 152/313] Update README.md with Joao Lucas Macedo's video --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 53fb1a3..d78dfe3 100755 --- a/README.md +++ b/README.md @@ -376,6 +376,9 @@ Below some of the communities available: --- +## Installing and using Proxbox Plugin (pt-br video) +[![Watch the video](https://img.youtube.com/vi/Op-4MQjDf6A/maxresdefault.jpg)](https://www.youtube.com/watch?v=Op-4MQjDf6A) + ## Stars History 📈 [![Star History Chart](https://api.star-history.com/svg?repos=netdevopsbr/netbox-proxbox&type=Timeline)](https://star-history.com/#netdevopsbr/netbox-proxbox&Timeline) From 3c5744bccc119a96cc6d85620e1af18d74cb0fb4 Mon Sep 17 00:00:00 2001 From: emersonfelipesp Date: Tue, 25 Jul 2023 14:22:36 +0000 Subject: [PATCH 153/313] Change initial page '/' from JSON to HTML using Jinja2 --- netbox_proxbox/api/main.py | 24 +- .../netbox_proxbox/styles/_cable_trace.scss | 2 + .../static/netbox_proxbox/styles/_dark.scss | 10 + .../netbox_proxbox/styles/_external.scss | 5 + .../static/netbox_proxbox/styles/_light.scss | 6 + .../static/netbox_proxbox/styles/_print.scss | 18 + .../styles/_rack_elevation.scss | 2 + .../netbox_proxbox/styles/bootstrap.scss | 35 + .../netbox_proxbox/styles/cable-trace.scss | 75 ++ .../netbox_proxbox/styles/cable_trace.css | 1 + .../netbox_proxbox/styles/extensions.scss | 45 + .../netbox_proxbox/styles/flatpickr-dark.scss | 122 ++ .../static/netbox_proxbox/styles/graphiql.css | 1 + .../static/netbox_proxbox/styles/graphiql.js | 311 +++++ .../netbox_proxbox/styles/graphiql.js.map | 6 + .../materialdesignicons-webfont-DWVXV5L5.woff | Bin 0 -> 561776 bytes ...materialdesignicons-webfont-ER2MFQKM.woff2 | Bin 0 -> 385360 bytes .../materialdesignicons-webfont-UHEFFMSX.eot | Bin 0 -> 1243720 bytes .../materialdesignicons-webfont-WM6M6ZHQ.ttf | Bin 0 -> 1243500 bytes .../netbox_proxbox/styles/netbox-dark.css | 1 + .../netbox_proxbox/styles/netbox-external.css | 1 + .../netbox_proxbox/styles/netbox-light.css | 1 + .../netbox_proxbox/styles/netbox-print.css | 1 + .../static/netbox_proxbox/styles/netbox.js | 38 + .../netbox_proxbox/styles/netbox.js.map | 6 + .../static/netbox_proxbox/styles/netbox.scss | 1060 +++++++++++++++++ .../netbox_proxbox/styles/overrides.scss | 50 + .../netbox_proxbox/styles/rack-elevation.scss | 112 ++ .../netbox_proxbox/styles/rack_elevation.css | 1 + .../static/netbox_proxbox/styles/select.scss | 186 +++ .../static/netbox_proxbox/styles/sidenav.scss | 450 +++++++ .../netbox_proxbox/styles/theme-base.scss | 54 + .../netbox_proxbox/styles/theme-dark.scss | 291 +++++ .../netbox_proxbox/styles/theme-light.scss | 67 ++ .../netbox_proxbox/styles/utilities.scss | 50 + .../netbox_proxbox/styles/variables.scss | 55 + .../netbox_proxbox/fastapi/home.html | 73 +- 37 files changed, 3152 insertions(+), 8 deletions(-) create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/_cable_trace.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/_dark.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/_external.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/_light.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/_print.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/_rack_elevation.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/bootstrap.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/cable-trace.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/cable_trace.css create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/extensions.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/flatpickr-dark.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/graphiql.css create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/graphiql.js create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/graphiql.js.map create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/materialdesignicons-webfont-DWVXV5L5.woff create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/materialdesignicons-webfont-ER2MFQKM.woff2 create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/materialdesignicons-webfont-UHEFFMSX.eot create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/materialdesignicons-webfont-WM6M6ZHQ.ttf create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/netbox-dark.css create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/netbox-external.css create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/netbox-light.css create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/netbox-print.css create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/netbox.js create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/netbox.js.map create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/netbox.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/overrides.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/rack-elevation.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/rack_elevation.css create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/select.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/sidenav.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/theme-base.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/theme-dark.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/theme-light.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/utilities.scss create mode 100644 netbox_proxbox/static/netbox_proxbox/styles/variables.scss diff --git a/netbox_proxbox/api/main.py b/netbox_proxbox/api/main.py index 563751e..bd977b3 100644 --- a/netbox_proxbox/api/main.py +++ b/netbox_proxbox/api/main.py @@ -57,10 +57,12 @@ from fastapi import APIRouter, FastAPI, Request, Response from fastapi.routing import APIRoute -#@app.get("/") -async def root(): + + + +@app.get("/standalone-info") +async def standalone_info(): return { - "proxmox_sessions": PROXMOX_SETTING, "message": "Proxbox Backend made in FastAPI framework", "proxbox": { "github": "https://github.com/netdevopsbr/netbox-proxbox", @@ -73,6 +75,17 @@ async def root(): } } +@app.get("/", response_class=HTMLResponse) +async def root( + request: Request, + json_content: Annotated[dict, Depends(standalone_info)] +): + return templates.TemplateResponse("fastapi/home.html", { + "request": request, + "json_content": json_content + } + ) + @app.get("/netbox", response_class=HTMLResponse) async def netbox( request: Request, @@ -83,9 +96,7 @@ async def netbox( "json_content": proxmox } ) - - - + @app.get("/proxmox") async def proxmox(): @@ -126,6 +137,7 @@ def minimize_result(endpoint_name): "base_endpoints": api_hierarchy } + @app.get("/proxmox/{top_level}") async def top_level_endpoint( top_level: str | None = None, diff --git a/netbox_proxbox/static/netbox_proxbox/styles/_cable_trace.scss b/netbox_proxbox/static/netbox_proxbox/styles/_cable_trace.scss new file mode 100644 index 0000000..66da051 --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/styles/_cable_trace.scss @@ -0,0 +1,2 @@ +@import './theme-light.scss'; +@import './cable-trace.scss'; diff --git a/netbox_proxbox/static/netbox_proxbox/styles/_dark.scss b/netbox_proxbox/static/netbox_proxbox/styles/_dark.scss new file mode 100644 index 0000000..c0c02e6 --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/styles/_dark.scss @@ -0,0 +1,10 @@ +// Entry for netbox-dark.css stylesheet. + +html[data-netbox-color-mode='dark'] { + // Imports are scoped under the body when its data-netbox-color-mode attribute is set to 'dark'. + @import './theme-dark.scss'; + @import './bootstrap.scss'; + @import './select.scss'; + @import './flatpickr-dark.scss'; + @import './netbox.scss'; +} diff --git a/netbox_proxbox/static/netbox_proxbox/styles/_external.scss b/netbox_proxbox/static/netbox_proxbox/styles/_external.scss new file mode 100644 index 0000000..a442386 --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/styles/_external.scss @@ -0,0 +1,5 @@ +// Entry for all 3rd party library imports that do not rely on Bootstrap or NetBox styles. +@import '../node_modules/@mdi/font/css/materialdesignicons.min.css'; +@import '../node_modules/flatpickr/dist/flatpickr.css'; +@import '../node_modules/simplebar/dist/simplebar.css'; +@import 'gridstack/dist/gridstack.min.css'; diff --git a/netbox_proxbox/static/netbox_proxbox/styles/_light.scss b/netbox_proxbox/static/netbox_proxbox/styles/_light.scss new file mode 100644 index 0000000..af0bbaa --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/styles/_light.scss @@ -0,0 +1,6 @@ +// Entry for netbox-light.css stylesheet. + +@import './theme-light.scss'; +@import './bootstrap.scss'; +@import './select.scss'; +@import './netbox.scss'; diff --git a/netbox_proxbox/static/netbox_proxbox/styles/_print.scss b/netbox_proxbox/static/netbox_proxbox/styles/_print.scss new file mode 100644 index 0000000..735f591 --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/styles/_print.scss @@ -0,0 +1,18 @@ +// Entry for netbox-print.css. Force light-mode theming when printing. + +@media print { + // Force black and white background/foreground colors when printing. + :root { + --nbx-body-bg: #fff !important; + --nbx-body-color: #000 !important; + } + + html, + html[data-netbox-color-mode='dark'], + html[data-netbox-color-mode='light'] { + @import './theme-light'; + @import './bootstrap'; + @import './select'; + @import './netbox'; + } +} diff --git a/netbox_proxbox/static/netbox_proxbox/styles/_rack_elevation.scss b/netbox_proxbox/static/netbox_proxbox/styles/_rack_elevation.scss new file mode 100644 index 0000000..a3f428d --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/styles/_rack_elevation.scss @@ -0,0 +1,2 @@ +@import './theme-light.scss'; +@import './rack-elevation.scss'; diff --git a/netbox_proxbox/static/netbox_proxbox/styles/bootstrap.scss b/netbox_proxbox/static/netbox_proxbox/styles/bootstrap.scss new file mode 100644 index 0000000..c55232a --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/styles/bootstrap.scss @@ -0,0 +1,35 @@ +// Import the rest of bootstrap. +@import '../node_modules/bootstrap/scss/utilities'; +@import './extensions'; +@import '../node_modules/bootstrap/scss/mixins'; +@import '../node_modules/bootstrap/scss/root'; +@import '../node_modules/bootstrap/scss/reboot'; +@import '../node_modules/bootstrap/scss/type'; +@import '../node_modules/bootstrap/scss/images'; +@import '../node_modules/bootstrap/scss/containers'; +@import '../node_modules/bootstrap/scss/grid'; +@import '../node_modules/bootstrap/scss/tables'; +@import '../node_modules/bootstrap/scss/forms'; +@import '../node_modules/bootstrap/scss/buttons'; +@import '../node_modules/bootstrap/scss/transitions'; +@import '../node_modules/bootstrap/scss/dropdown'; +@import '../node_modules/bootstrap/scss/button-group'; +@import '../node_modules/bootstrap/scss/nav'; +@import '../node_modules/bootstrap/scss/navbar'; +@import '../node_modules/bootstrap/scss/card'; +@import '../node_modules/bootstrap/scss/accordion'; +@import '../node_modules/bootstrap/scss/breadcrumb'; +@import '../node_modules/bootstrap/scss/pagination'; +@import '../node_modules/bootstrap/scss/badge'; +@import '../node_modules/bootstrap/scss/alert'; +@import '../node_modules/bootstrap/scss/progress'; +@import '../node_modules/bootstrap/scss/list-group'; +@import '../node_modules/bootstrap/scss/close'; +@import '../node_modules/bootstrap/scss/toasts'; +@import '../node_modules/bootstrap/scss/modal'; +@import '../node_modules/bootstrap/scss/tooltip'; +@import '../node_modules/bootstrap/scss/popover'; +@import '../node_modules/bootstrap/scss/carousel'; +@import '../node_modules/bootstrap/scss/spinners'; +@import '../node_modules/bootstrap/scss/helpers'; +@import '../node_modules/bootstrap/scss/utilities/api'; diff --git a/netbox_proxbox/static/netbox_proxbox/styles/cable-trace.scss b/netbox_proxbox/static/netbox_proxbox/styles/cable-trace.scss new file mode 100644 index 0000000..59c67ad --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/styles/cable-trace.scss @@ -0,0 +1,75 @@ +// Cable Trace Styles. + +:root { + // Light Mode Variables. + --nbx-trace-color: #{$black}; + --nbx-trace-node-bg: #{$gray-200}; + --nbx-trace-termination-bg: #{$gray-100}; + --nbx-trace-cable-shadow: #{$gray-800}; + --nbx-trace-attachment: #{$gray-400}; + &[data-netbox-color-mode='dark'] { + // Dark Mode Variables. + // Note: only the `theme-light.scss` file is in-scope for simplicity. + --nbx-trace-color: #{$white}; + --nbx-trace-node-bg: #{$gray-900}; + --nbx-trace-termination-bg: #{$gray-800}; + --nbx-trace-cable-shadow: #{$gray-200}; + --nbx-trace-attachment: #{$gray-600}; + } +} + +* { + font-family: $font-family-sans-serif; + font-size: $font-size-sm; +} + +text { + text-anchor: middle; + dominant-baseline: middle; + + &:not([fill]) { + // Fill text with body color when a fill attribute is not set via element attributes. + fill: var(--nbx-trace-color); + } + + &.bold { + font-weight: $font-weight-bold; + } +} + +svg { + /* Boxes */ + rect { + fill: var(--nbx-trace-node-bg); + stroke: #606060; + stroke-width: 1; + .termination { + fill: var(--nbx-trace-termination-bg); + } + } + + /* Connectors */ + .connector text { + text-anchor: start; + } + line { + stroke-width: 5px; + } + polyline { + fill: none; + stroke-width: 5px; + } + .cable-shadow { + stroke: var(--nbx-trace-cable-shadow); + stroke-width: 7px; + } + line.wireless-link { + stroke: var(--nbx-trace-attachment); + stroke-dasharray: 4px 12px; + stroke-linecap: round; + } + line.attachment { + stroke: var(--nbx-trace-attachment); + stroke-dasharray: 5px; + } +} diff --git a/netbox_proxbox/static/netbox_proxbox/styles/cable_trace.css b/netbox_proxbox/static/netbox_proxbox/styles/cable_trace.css new file mode 100644 index 0000000..a5f5ff7 --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/styles/cable_trace.css @@ -0,0 +1 @@ +:root{--nbx-trace-color: #000;--nbx-trace-node-bg: #e9ecef;--nbx-trace-termination-bg: #f8f9fa;--nbx-trace-cable-shadow: #343a40;--nbx-trace-attachment: #ced4da}:root[data-netbox-color-mode=dark]{--nbx-trace-color: #fff;--nbx-trace-node-bg: #212529;--nbx-trace-termination-bg: #343a40;--nbx-trace-cable-shadow: #e9ecef;--nbx-trace-attachment: #6c757d}*{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-size:.875rem}text{text-anchor:middle;dominant-baseline:middle}text:not([fill]){fill:var(--nbx-trace-color)}text.bold{font-weight:700}svg rect{fill:var(--nbx-trace-node-bg);stroke:#606060;stroke-width:1}svg rect .termination{fill:var(--nbx-trace-termination-bg)}svg .connector text{text-anchor:start}svg line{stroke-width:5px}svg polyline{fill:none;stroke-width:5px}svg .cable-shadow{stroke:var(--nbx-trace-cable-shadow);stroke-width:7px}svg line.wireless-link{stroke:var(--nbx-trace-attachment);stroke-dasharray:4px 12px;stroke-linecap:round}svg line.attachment{stroke:var(--nbx-trace-attachment);stroke-dasharray:5px} diff --git a/netbox_proxbox/static/netbox_proxbox/styles/extensions.scss b/netbox_proxbox/static/netbox_proxbox/styles/extensions.scss new file mode 100644 index 0000000..79d19d1 --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/styles/extensions.scss @@ -0,0 +1,45 @@ +// Bootstrap utility extensions. +// See https://getbootstrap.com/docs/5.0/utilities/api/ + +// Add responsive max-width classes for more granular controls over max-width. +$max-width-extension: ( + 'max-width': ( + property: max-width, + class: mw, + responsive: true, + values: ( + 20: 20%, + 25: 25%, + 33: 33%, + 50: 50%, + 66: 66%, + 75: 75%, + 80: 80%, + 90: 90%, + 100: 100%, + ), + ), +); + +// Add more opacity classes. +$opacity-extension: ( + 'opacity': ( + property: opacity, + class: opacity, + values: ( + 0: 0, + 10: 0.1, + 20: 0.2, + 25: 0.25, + 33: 0.33, + 50: 0.5, + 66: 0.66, + 75: 0.75, + 80: 0.8, + 90: 0.9, + 100: 1, + ), + ), +); + +$utilities: map-merge($utilities, $max-width-extension, $opacity-extension); diff --git a/netbox_proxbox/static/netbox_proxbox/styles/flatpickr-dark.scss b/netbox_proxbox/static/netbox_proxbox/styles/flatpickr-dark.scss new file mode 100644 index 0000000..94ebd77 --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/styles/flatpickr-dark.scss @@ -0,0 +1,122 @@ +// Dark Mode Styles for Flatpickr. + +$flatpickr-bg: $gray-800; +$flatpickr-color: $body-color; +$flatpickr-border-color: $gray-700; +$flatpickr-title-color: $gray-300; +$flatpickr-disabled-color: $gray-500; + +.flatpickr-calendar { + color: $flatpickr-color; + background: $flatpickr-bg; + border-radius: $border-radius; + box-shadow: 1px 0 0 $flatpickr-border-color, -1px 0 0 $flatpickr-border-color, + 0 1px 0 $flatpickr-border-color, 0 -1px 0 $flatpickr-border-color, 0 3px 13px rgb(0 0 0 / 8%); + + &.arrowTop:before, + &.arrowTop:after { + border-bottom-color: $flatpickr-bg; + } + + span.flatpickr-weekday { + color: $flatpickr-title-color; + } + + .numInputWrapper { + span.arrowUp:after { + border-bottom-color: $input-color; + } + span.arrowDown:after { + border-top-color: $input-color; + } + } + + .flatpickr-months { + .flatpickr-month { + color: $flatpickr-color; + fill: $flatpickr-color; + } + + .flatpickr-next-month, + .flatpickr-prev-month { + color: $flatpickr-color; + fill: $flatpickr-color; + &:hover svg { + fill: $danger; + } + } + + .flatpickr-current-month select { + background: $flatpickr-bg; + } + } + + .flatpickr-day { + color: $flatpickr-color; + + &.selected, + &.startRange, + &.endRange, + &.selected.inRange, + &.startRange.inRange, + &.endRange.inRange, + &.selected:focus, + &.startRange:focus, + &.endRange:focus, + &.selected:hover, + &.startRange:hover, + &.endRange:hover, + &.selected.prevMonthDay, + &.startRange.prevMonthDay, + &.endRange.prevMonthDay, + &.selected.nextMonthDay, + &.startRange.nextMonthDay, + &.endRange.nextMonthDay { + color: color-contrast($blue-300); + background: $blue-300; + border-color: $blue-300; + } + + &:hover { + color: color-contrast($secondary); + background: $secondary; + border-color: $secondary; + } + + &.flatpickr-disabled, + &.flatpickr-disabled:hover, + &.prevMonthDay, + &.nextMonthDay, + &.notAllowed, + &.notAllowed.prevMonthDay, + &.notAllowed.nextMonthDay { + color: $flatpickr-disabled-color; + + &:hover { + color: color-contrast($secondary); + background: $secondary; + border-color: $secondary; + } + } + } + + .flatpickr-time { + input { + color: $input-color; + background: $flatpickr-bg; + + &:hover, + &:active { + background: $flatpickr-bg; + } + } + + .flatpickr-time-separator { + color: $flatpickr-disabled-color; + } + } + + &.showTimeInput.hasTime .flatpickr-time { + border-top: 1px solid $flatpickr-border-color; + } +} diff --git a/netbox_proxbox/static/netbox_proxbox/styles/graphiql.css b/netbox_proxbox/static/netbox_proxbox/styles/graphiql.css new file mode 100644 index 0000000..a20e480 --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/styles/graphiql.css @@ -0,0 +1 @@ +.graphiql-container,.graphiql-container button,.graphiql-container input{color:#141823;font-family:system,-apple-system,San Francisco,".SFNSDisplay-Regular",Segoe UI,Segoe,Segoe WP,Helvetica Neue,helvetica,Lucida Grande,arial,sans-serif;font-size:14px}.graphiql-container{display:flex;flex-direction:row;height:100%;margin:0;overflow:hidden;width:100%}.graphiql-container .editorWrap{display:flex;flex-direction:column;flex:1;overflow-x:hidden}.graphiql-container .title{font-size:18px}.graphiql-container .title em{font-family:georgia;font-size:19px}.graphiql-container .topBarWrap{display:flex;flex-direction:row}.graphiql-container .topBar{align-items:center;background:linear-gradient(#f7f7f7,#e2e2e2);border-bottom:1px solid #d0d0d0;cursor:default;display:flex;flex-direction:row;flex:1;height:34px;overflow-y:visible;padding:7px 14px 6px;user-select:none}.graphiql-container .toolbar{overflow-x:visible;display:flex}.graphiql-container .docExplorerShow,.graphiql-container .historyShow{background:linear-gradient(#f7f7f7,#e2e2e2);border-radius:0;border-bottom:1px solid #d0d0d0;border-right:none;border-top:none;color:#3b5998;cursor:pointer;font-size:14px;margin:0;padding:2px 20px 0 18px}.graphiql-container .docExplorerShow{border-left:1px solid rgba(0,0,0,.2)}.graphiql-container .historyShow{border-right:1px solid rgba(0,0,0,.2);border-left:0}.graphiql-container .docExplorerShow:before{border-left:2px solid #3B5998;border-top:2px solid #3B5998;content:"";display:inline-block;height:9px;margin:0 3px -1px 0;position:relative;transform:rotate(-45deg);width:9px}.graphiql-container .editorBar{display:flex;flex-direction:row;flex:1}.graphiql-container .queryWrap{display:flex;flex-direction:column;flex:1}.graphiql-container .resultWrap{border-left:solid 1px #e0e0e0;display:flex;flex-direction:column;flex:1;flex-basis:1em;position:relative}.graphiql-container .docExplorerWrap,.graphiql-container .historyPaneWrap{background:white;box-shadow:0 0 8px #00000026;position:relative;z-index:3}.graphiql-container .historyPaneWrap{min-width:230px;z-index:5}.graphiql-container .docExplorerResizer{cursor:col-resize;height:100%;left:-5px;position:absolute;top:0;width:10px;z-index:10}.graphiql-container .docExplorerHide{cursor:pointer;font-size:18px;margin:-7px -8px -6px 0;padding:18px 16px 15px 12px;background:0;border:0;line-height:14px}.graphiql-container div .query-editor{flex:1;position:relative}.graphiql-container .secondary-editor{display:flex;flex-direction:column;height:30px;position:relative}.graphiql-container .secondary-editor-title{background:#eeeeee;border-bottom:1px solid #d6d6d6;border-top:1px solid #e0e0e0;color:#777;font-variant:small-caps;font-weight:700;letter-spacing:1px;line-height:14px;padding:6px 0 8px 43px;text-transform:lowercase;user-select:none}.graphiql-container .codemirrorWrap,.graphiql-container .result-window{flex:1;height:100%;position:relative}.graphiql-container .footer{background:#f6f7f8;border-left:1px solid #e0e0e0;border-top:1px solid #e0e0e0;margin-left:12px;position:relative}.graphiql-container .footer:before{background:#eeeeee;bottom:0;content:" ";left:-13px;position:absolute;top:-1px;width:12px}.result-window .CodeMirror{background:#f6f7f8}.graphiql-container .result-window .CodeMirror-gutters{background-color:#eee;border-color:#e0e0e0;cursor:col-resize}.graphiql-container .result-window .CodeMirror-foldgutter,.graphiql-container .result-window .CodeMirror-foldgutter-open:after,.graphiql-container .result-window .CodeMirror-foldgutter-folded:after{padding-left:3px}.graphiql-container .toolbar-button{background:#fdfdfd;background:linear-gradient(#f9f9f9,#ececec);border:0;border-radius:3px;box-shadow:inset 0 0 0 1px #0003,0 1px #ffffffb3,inset 0 1px #fff;color:#555;cursor:pointer;display:inline-block;margin:0 5px;padding:3px 11px 5px;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.graphiql-container .toolbar-button:active{background:linear-gradient(#ececec,#d5d5d5);box-shadow:0 1px #ffffffb3,inset 0 0 0 1px #0000001a,inset 0 1px 1px 1px #0000001f,inset 0 0 5px #0000001a}.graphiql-container .toolbar-button.error{background:linear-gradient(#fdf3f3,#e6d6d7);color:#b00}.graphiql-container .toolbar-button-group{margin:0 5px;white-space:nowrap}.graphiql-container .toolbar-button-group>*{margin:0}.graphiql-container .toolbar-button-group>*:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.graphiql-container .toolbar-button-group>*:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.graphiql-container .execute-button-wrap{height:34px;margin:0 14px 0 28px;position:relative}.graphiql-container .execute-button{background:linear-gradient(#fdfdfd,#d2d3d6);border-radius:17px;border:1px solid rgba(0,0,0,.25);box-shadow:0 1px #fff;cursor:pointer;fill:#444;height:34px;margin:0;padding:0;width:34px}.graphiql-container .execute-button svg{pointer-events:none}.graphiql-container .execute-button:active{background:linear-gradient(#e6e6e6,#c3c3c3);box-shadow:0 1px #fff,inset 0 0 2px #0003,inset 0 0 6px #0000001a}.graphiql-container .toolbar-menu,.graphiql-container .toolbar-select{position:relative}.graphiql-container .execute-options,.graphiql-container .toolbar-menu-items,.graphiql-container .toolbar-select-options{background:#fff;box-shadow:0 0 0 1px #0000001a,0 2px 4px #00000040;margin:0;padding:6px 0;position:absolute;z-index:100}.graphiql-container .execute-options{min-width:100px;top:37px;left:-1px}.graphiql-container .toolbar-menu-items{left:1px;margin-top:-1px;min-width:110%;top:100%;visibility:hidden}.graphiql-container .toolbar-menu-items.open{visibility:visible}.graphiql-container .toolbar-select-options{left:0;min-width:100%;top:-5px;visibility:hidden}.graphiql-container .toolbar-select-options.open{visibility:visible}.graphiql-container .execute-options>li,.graphiql-container .toolbar-menu-items>li,.graphiql-container .toolbar-select-options>li{cursor:pointer;display:block;margin:none;max-width:300px;overflow:hidden;padding:2px 20px 4px 11px;white-space:nowrap}.graphiql-container .execute-options>li.selected,.graphiql-container .toolbar-menu-items>li.hover,.graphiql-container .toolbar-menu-items>li:active,.graphiql-container .toolbar-menu-items>li:hover,.graphiql-container .toolbar-select-options>li.hover,.graphiql-container .toolbar-select-options>li:active,.graphiql-container .toolbar-select-options>li:hover,.graphiql-container .history-contents>li:hover,.graphiql-container .history-contents>li:active{background:#e10098;color:#fff}.graphiql-container .toolbar-select-options>li>svg{display:inline;fill:#666;margin:0 -6px 0 6px;pointer-events:none;vertical-align:middle}.graphiql-container .toolbar-select-options>li.hover>svg,.graphiql-container .toolbar-select-options>li:active>svg,.graphiql-container .toolbar-select-options>li:hover>svg{fill:#fff}.graphiql-container .CodeMirror-scroll{overflow-scrolling:touch}.graphiql-container .CodeMirror{color:#141823;font-family:Consolas,Inconsolata,Droid Sans Mono,Monaco,monospace;font-size:13px;height:100%;left:0;position:absolute;top:0;width:100%}.graphiql-container .CodeMirror-lines{padding:20px 0}.CodeMirror-hint-information .content{box-orient:vertical;color:#141823;display:flex;font-family:system,-apple-system,San Francisco,".SFNSDisplay-Regular",Segoe UI,Segoe,Segoe WP,Helvetica Neue,helvetica,Lucida Grande,arial,sans-serif;font-size:13px;line-clamp:3;line-height:16px;max-height:48px;overflow:hidden;text-overflow:-o-ellipsis-lastline}.CodeMirror-hint-information .content p:first-child{margin-top:0}.CodeMirror-hint-information .content p:last-child{margin-bottom:0}.CodeMirror-hint-information .infoType{color:#ca9800;cursor:pointer;display:inline;margin-right:.5em}.autoInsertedLeaf.cm-property{animation-duration:6s;animation-name:insertionFade;border-bottom:2px solid rgba(255,255,255,0);border-radius:2px;margin:-2px -4px -1px;padding:2px 4px 1px}@keyframes insertionFade{0%,to{background:rgba(255,255,255,0);border-color:#fff0}15%,85%{background:#fbffc9;border-color:#f0f3c0}}div.CodeMirror-lint-tooltip{background-color:#fff;border-radius:2px;border:0;color:#141823;box-shadow:0 1px 3px #00000073;font-size:13px;line-height:16px;max-width:430px;opacity:0;padding:8px 10px;transition:opacity .15s;white-space:pre-wrap}div.CodeMirror-lint-tooltip>*{padding-left:23px}div.CodeMirror-lint-tooltip>*+*{margin-top:12px}.graphiql-container .CodeMirror-foldmarker{border-radius:4px;background:#08f;background:linear-gradient(#43A8FF,#0F83E8);box-shadow:0 1px 1px #0003,inset 0 0 0 1px #0000001a;color:#fff;font-family:arial;font-size:12px;line-height:0;margin:0 3px;padding:0 4px 1px;text-shadow:0 -1px rgba(0,0,0,.1)}.graphiql-container div.CodeMirror span.CodeMirror-matchingbracket{color:#555;text-decoration:underline}.graphiql-container div.CodeMirror span.CodeMirror-nonmatchingbracket{color:red}.cm-comment{color:#999}.cm-punctuation{color:#555}.cm-keyword{color:#b11a04}.cm-def{color:#d2054e}.cm-property{color:#1f61a0}.cm-qualifier{color:#1c92a9}.cm-attribute{color:#8b2bb9}.cm-number{color:#2882f9}.cm-string{color:#d64292}.cm-builtin{color:#d47509}.cm-string-2{color:#0b7fc7}.cm-variable{color:#397d13}.cm-meta{color:#b33086}.cm-atom{color:#ca9800}.CodeMirror{color:#000;font-family:monospace;height:300px}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{color:#999;min-width:20px;padding:0 3px 0 5px;text-align:right;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror .CodeMirror-cursor{border-left:1px solid black}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.CodeMirror.cm-fat-cursor div.CodeMirror-cursor{background:#7e7;border:0;width:auto}.CodeMirror.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{animation:blink 1.06s steps(1) infinite;border:0;width:auto}@keyframes blink{0%{background:#7e7}50%{background:none}to{background:#7e7}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-ruler{border-left:1px solid #ccc;position:absolute}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-error,.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{background:white;overflow:hidden;position:relative}.CodeMirror-scroll{height:100%;margin-bottom:-30px;margin-right:-30px;outline:none;overflow:scroll!important;padding-bottom:30px;position:relative}.CodeMirror-sizer{border-right:30px solid transparent;position:relative}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{display:none;position:absolute;z-index:6}.CodeMirror-vscrollbar{overflow-x:hidden;overflow-y:scroll;right:0;top:0}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-x:scroll;overflow-y:hidden}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{min-height:100%;position:absolute;left:0;top:0;z-index:3}.CodeMirror-gutter{display:inline-block;height:100%;margin-bottom:-30px;vertical-align:top;white-space:normal;*zoom:1;*display:inline}.CodeMirror-gutter-wrapper{background:none!important;border:none!important;position:absolute;z-index:4}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{cursor:default;position:absolute;z-index:4}.CodeMirror-gutter-wrapper{user-select:none}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-webkit-tap-highlight-color:transparent;background:transparent;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-variant-ligatures:none;line-height:inherit;margin:0;overflow:visible;position:relative;white-space:pre;word-wrap:normal;z-index:2}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;inset:0;z-index:0}.CodeMirror-linewidget{overflow:auto;position:relative;z-index:2}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{box-sizing:content-box}.CodeMirror-measure{height:0;overflow:hidden;position:absolute;visibility:hidden;width:100%}.CodeMirror-cursor{position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{position:relative;visibility:hidden;z-index:3}div.CodeMirror-dragcursors,.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}.CodeMirror span{*vertical-align: text-bottom}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.CodeMirror-dialog{background:inherit;color:inherit;left:0;right:0;overflow:hidden;padding:.1em .8em;position:absolute;z-index:15}.CodeMirror-dialog-top{border-bottom:1px solid #eee;top:0}.CodeMirror-dialog-bottom{border-top:1px solid #eee;bottom:0}.CodeMirror-dialog input{background:transparent;border:1px solid #d3d6db;color:inherit;font-family:monospace;outline:none;width:20em}.CodeMirror-dialog button{font-size:70%}.CodeMirror-foldmarker{color:#00f;cursor:pointer;font-family:arial;line-height:.3;text-shadow:#b9f 1px 1px 2px,#b9f -1px -1px 2px,#b9f 1px -1px 2px,#b9f -1px 1px 2px}.CodeMirror-foldgutter{width:.7em}.CodeMirror-foldgutter-open,.CodeMirror-foldgutter-folded{cursor:pointer}.CodeMirror-foldgutter-open:after{content:"\25be"}.CodeMirror-foldgutter-folded:after{content:"\25b8"}.CodeMirror-info{background:white;border-radius:2px;box-shadow:0 1px 3px #00000073;box-sizing:border-box;color:#555;font-family:system,-apple-system,San Francisco,".SFNSDisplay-Regular",Segoe UI,Segoe,Segoe WP,Helvetica Neue,helvetica,Lucida Grande,arial,sans-serif;font-size:13px;line-height:16px;margin:8px -8px;max-width:400px;opacity:0;overflow:hidden;padding:8px;position:fixed;transition:opacity .15s;z-index:50}.CodeMirror-info :first-child{margin-top:0}.CodeMirror-info :last-child{margin-bottom:0}.CodeMirror-info p{margin:1em 0}.CodeMirror-info .info-description{color:#777;line-height:16px;margin-top:1em;max-height:80px;overflow:hidden}.CodeMirror-info .info-deprecation{background:#fffae8;box-shadow:inset 0 1px 1px -1px #bfb063;color:#867f70;line-height:16px;margin:8px -8px -8px;max-height:80px;overflow:hidden;padding:8px}.CodeMirror-info .info-deprecation-label{color:#c79b2e;cursor:default;display:block;font-size:9px;font-weight:700;letter-spacing:1px;line-height:1;padding-bottom:5px;text-transform:uppercase;user-select:none}.CodeMirror-info .info-deprecation-label+*{margin-top:0}.CodeMirror-info a{text-decoration:none}.CodeMirror-info a:hover{text-decoration:underline}.CodeMirror-info .type-name{color:#ca9800}.CodeMirror-info .field-name{color:#1f61a0}.CodeMirror-info .enum-value{color:#0b7fc7}.CodeMirror-info .arg-name{color:#8b2bb9}.CodeMirror-info .directive-name{color:#b33086}.CodeMirror-jump-token{text-decoration:underline;cursor:pointer}.CodeMirror-lint-markers{width:16px}.CodeMirror-lint-tooltip{background-color:infobackground;border-radius:4px;border:1px solid black;color:infotext;font-family:monospace;font-size:10pt;max-width:600px;opacity:0;overflow:hidden;padding:2px 5px;position:fixed;transition:opacity .4s;white-space:pre-wrap;z-index:100}.CodeMirror-lint-mark-error,.CodeMirror-lint-mark-warning{background-position:left bottom;background-repeat:repeat-x}.CodeMirror-lint-mark-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==)}.CodeMirror-lint-mark-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-error,.CodeMirror-lint-marker-warning{background-position:center center;background-repeat:no-repeat;cursor:pointer;display:inline-block;height:16px;position:relative;vertical-align:middle;width:16px}.CodeMirror-lint-message-error,.CodeMirror-lint-message-warning{background-position:top left;background-repeat:no-repeat;padding-left:18px}.CodeMirror-lint-marker-error,.CodeMirror-lint-message-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=)}.CodeMirror-lint-marker-warning,.CodeMirror-lint-message-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-multiple{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC);background-position:right bottom;background-repeat:no-repeat;width:100%;height:100%}.graphiql-container .spinner-container{height:36px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:36px;z-index:10}.graphiql-container .spinner{animation:rotation .6s infinite linear;border-bottom:6px solid rgba(150,150,150,.15);border-left:6px solid rgba(150,150,150,.15);border-radius:100%;border-right:6px solid rgba(150,150,150,.15);border-top:6px solid rgba(150,150,150,.8);display:inline-block;height:24px;position:absolute;vertical-align:middle;width:24px}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.CodeMirror-hints{background:white;box-shadow:0 1px 3px #00000073;font-family:Consolas,Inconsolata,Droid Sans Mono,Monaco,monospace;font-size:13px;list-style:none;margin:0;max-height:14.5em;overflow:hidden;overflow-y:auto;padding:0;position:absolute;z-index:10}.CodeMirror-hint{border-top:solid 1px #f7f7f7;color:#141823;cursor:pointer;margin:0;max-width:300px;overflow:hidden;padding:2px 6px;white-space:pre}li.CodeMirror-hint-active{background-color:#08f;border-top-color:#fff;color:#fff}.CodeMirror-hint-information{border-top:solid 1px #c0c0c0;max-width:300px;padding:4px 6px;position:relative;z-index:1}.CodeMirror-hint-information:first-child{border-bottom:solid 1px #c0c0c0;border-top:none;margin-bottom:-1px}.CodeMirror-hint-deprecation{background:#fffae8;box-shadow:inset 0 1px 1px -1px #bfb063;color:#867f70;font-family:system,-apple-system,San Francisco,".SFNSDisplay-Regular",Segoe UI,Segoe,Segoe WP,Helvetica Neue,helvetica,Lucida Grande,arial,sans-serif;font-size:13px;line-height:16px;margin-top:4px;max-height:80px;overflow:hidden;padding:6px}.CodeMirror-hint-deprecation .deprecation-label{color:#c79b2e;cursor:default;display:block;font-size:9px;font-weight:700;letter-spacing:1px;line-height:1;padding-bottom:5px;text-transform:uppercase;user-select:none}.CodeMirror-hint-deprecation .deprecation-label+*{margin-top:0}.CodeMirror-hint-deprecation :last-child{margin-bottom:0}.graphiql-container .doc-explorer{background:white}.graphiql-container .doc-explorer-title-bar,.graphiql-container .history-title-bar{cursor:default;display:flex;height:34px;line-height:14px;padding:8px 8px 5px;position:relative;user-select:none}.graphiql-container .doc-explorer-title,.graphiql-container .history-title{flex:1;font-weight:700;overflow-x:hidden;padding:10px 0 10px 10px;text-align:center;text-overflow:ellipsis;user-select:text;white-space:nowrap}.graphiql-container .doc-explorer-back{color:#3b5998;cursor:pointer;margin:-7px 0 -6px -8px;overflow-x:hidden;padding:17px 12px 16px 16px;text-overflow:ellipsis;white-space:nowrap;background:0;border:0;line-height:14px}.doc-explorer-narrow .doc-explorer-back{width:0}.graphiql-container .doc-explorer-back:before{border-left:2px solid #3B5998;border-top:2px solid #3B5998;content:"";display:inline-block;height:9px;margin:0 3px -1px 0;position:relative;transform:rotate(-45deg);width:9px}.graphiql-container .doc-explorer-rhs{position:relative}.graphiql-container .doc-explorer-contents,.graphiql-container .history-contents{background-color:#fff;border-top:1px solid #d6d6d6;inset:47px 0 0;overflow-y:auto;padding:20px 15px;position:absolute}.graphiql-container .doc-explorer-contents{min-width:300px}.graphiql-container .doc-type-description p:first-child,.graphiql-container .doc-type-description blockquote:first-child{margin-top:0}.graphiql-container .doc-explorer-contents a{cursor:pointer;text-decoration:none}.graphiql-container .doc-explorer-contents a:hover{text-decoration:underline}.graphiql-container .doc-value-description>:first-child{margin-top:4px}.graphiql-container .doc-value-description>:last-child{margin-bottom:4px}.graphiql-container .doc-type-description code,.graphiql-container .doc-type-description pre,.graphiql-container .doc-category code,.graphiql-container .doc-category pre{--saf-0: rgba(var(--sk_foreground_low,29,28,29),.13);font-size:12px;line-height:1.50001;font-variant-ligatures:none;white-space:pre;white-space:pre-wrap;word-wrap:break-word;word-break:normal;-webkit-tab-size:4;-moz-tab-size:4;tab-size:4}.graphiql-container .doc-type-description code,.graphiql-container .doc-category code{padding:2px 3px 1px;border:1px solid var(--saf-0);border-radius:3px;background-color:rgba(var(--sk_foreground_min,29,28,29),.04);color:#e01e5a;background-color:#fff}.graphiql-container .doc-category{margin:20px 0}.graphiql-container .doc-category-title{border-bottom:1px solid #e0e0e0;color:#777;cursor:default;font-size:14px;font-variant:small-caps;font-weight:700;letter-spacing:1px;margin:0 -15px 10px 0;padding:10px 0;user-select:none}.graphiql-container .doc-category-item{margin:12px 0;color:#555}.graphiql-container .keyword{color:#b11a04}.graphiql-container .type-name{color:#ca9800}.graphiql-container .field-name{color:#1f61a0}.graphiql-container .field-short-description{color:#999;margin-left:5px;overflow:hidden;text-overflow:ellipsis}.graphiql-container .enum-value{color:#0b7fc7}.graphiql-container .arg-name{color:#8b2bb9}.graphiql-container .arg{display:block;margin-left:1em}.graphiql-container .arg:first-child:last-child,.graphiql-container .arg:first-child:nth-last-child(2),.graphiql-container .arg:first-child:nth-last-child(2)~.arg{display:inherit;margin:inherit}.graphiql-container .arg:first-child:nth-last-child(2):after{content:", "}.graphiql-container .arg-default-value{color:#43a047}.graphiql-container .doc-deprecation{background:#fffae8;box-shadow:inset 0 0 1px #bfb063;color:#867f70;line-height:16px;margin:8px -8px;max-height:80px;overflow:hidden;padding:8px;border-radius:3px}.graphiql-container .doc-deprecation:before{content:"Deprecated:";color:#c79b2e;cursor:default;display:block;font-size:9px;font-weight:700;letter-spacing:1px;line-height:1;padding-bottom:5px;text-transform:uppercase;user-select:none}.graphiql-container .doc-deprecation>:first-child{margin-top:0}.graphiql-container .doc-deprecation>:last-child{margin-bottom:0}.graphiql-container .show-btn{-webkit-appearance:initial;display:block;border-radius:3px;border:solid 1px #ccc;text-align:center;padding:8px 12px 10px;width:100%;box-sizing:border-box;background:#fbfcfc;color:#555;cursor:pointer}.graphiql-container .search-box{border-bottom:1px solid #d3d6db;display:flex;align-items:center;font-size:14px;margin:-15px -15px 12px 0;position:relative}.graphiql-container .search-box-icon{cursor:pointer;display:block;font-size:24px;transform:rotate(-45deg);user-select:none}.graphiql-container .search-box .search-box-clear{background-color:#d0d0d0;border-radius:12px;color:#fff;cursor:pointer;font-size:11px;padding:1px 5px 2px;position:absolute;right:3px;user-select:none;border:0}.graphiql-container .search-box .search-box-clear:hover{background-color:#b9b9b9}.graphiql-container .search-box>input{border:none;box-sizing:border-box;font-size:14px;outline:none;padding:6px 24px 8px 20px;width:100%}.graphiql-container .error-container{font-weight:700;left:0;letter-spacing:1px;opacity:.5;position:absolute;right:0;text-align:center;text-transform:uppercase;top:50%;transform:translateY(-50%)}.graphiql-container .history-contents{font-family:Consolas,Inconsolata,Droid Sans Mono,Monaco,monospace}.graphiql-container .history-contents{margin:0;padding:0}.graphiql-container .history-contents li{align-items:center;display:flex;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;padding:8px;border-bottom:1px solid #e0e0e0}.graphiql-container .history-contents li button:not(.history-label){display:none;margin-left:10px}.graphiql-container .history-contents li:hover button:not(.history-label),.graphiql-container .history-contents li:focus-within button:not(.history-label){display:inline-block}.graphiql-container .history-contents input,.graphiql-container .history-contents button{padding:0;background:0;border:0;font-size:inherit;font-family:inherit;line-height:14px;color:inherit}.graphiql-container .history-contents input{flex-grow:1}.graphiql-container .history-contents input::placeholder{color:inherit}.graphiql-container .history-contents button{cursor:pointer;text-align:left}.graphiql-container .history-contents .history-label{flex-grow:1;overflow:hidden;text-overflow:ellipsis} diff --git a/netbox_proxbox/static/netbox_proxbox/styles/graphiql.js b/netbox_proxbox/static/netbox_proxbox/styles/graphiql.js new file mode 100644 index 0000000..0d4b328 --- /dev/null +++ b/netbox_proxbox/static/netbox_proxbox/styles/graphiql.js @@ -0,0 +1,311 @@ +(()=>{var _V=Object.create;var a0=Object.defineProperty;var SV=Object.getOwnPropertyDescriptor;var DV=Object.getOwnPropertyNames;var kV=Object.getPrototypeOf,OV=Object.prototype.hasOwnProperty;var CV=e=>a0(e,"__esModule",{value:!0});var eC=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,r)=>(typeof require!="undefined"?require:t)[r]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var U=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var wV=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of DV(t))!OV.call(e,n)&&n!=="default"&&a0(e,n,{get:()=>t[n],enumerable:!(r=SV(t,n))||r.enumerable});return e},Ye=e=>wV(CV(a0(e!=null?_V(kV(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var o0=U((ste,rC)=>{"use strict";var tC=Object.getOwnPropertySymbols,AV=Object.prototype.hasOwnProperty,NV=Object.prototype.propertyIsEnumerable;function LV(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function xV(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(t).map(function(o){return t[o]});if(n.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(o){a[o]=o}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch(o){return!1}}rC.exports=xV()?Object.assign:function(e,t){for(var r,n=LV(e),a,o=1;o{"use strict";var u0=o0(),$s=60103,nC=60106;vt.Fragment=60107;vt.StrictMode=60108;vt.Profiler=60114;var iC=60109,aC=60110,oC=60112;vt.Suspense=60113;var uC=60115,sC=60116;typeof Symbol=="function"&&Symbol.for&&(Ti=Symbol.for,$s=Ti("react.element"),nC=Ti("react.portal"),vt.Fragment=Ti("react.fragment"),vt.StrictMode=Ti("react.strict_mode"),vt.Profiler=Ti("react.profiler"),iC=Ti("react.provider"),aC=Ti("react.context"),oC=Ti("react.forward_ref"),vt.Suspense=Ti("react.suspense"),uC=Ti("react.memo"),sC=Ti("react.lazy"));var Ti,lC=typeof Symbol=="function"&&Symbol.iterator;function IV(e){return e===null||typeof e!="object"?null:(e=lC&&e[lC]||e["@@iterator"],typeof e=="function"?e:null)}function pf(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r{"use strict";bC.exports=yC()});var kC=U(Lt=>{"use strict";var tl,hf,kh,p0;typeof performance=="object"&&typeof performance.now=="function"?(TC=performance,Lt.unstable_now=function(){return TC.now()}):(h0=Date,EC=h0.now(),Lt.unstable_now=function(){return h0.now()-EC});var TC,h0,EC;typeof window=="undefined"||typeof MessageChannel!="function"?(rl=null,v0=null,g0=function(){if(rl!==null)try{var e=Lt.unstable_now();rl(!0,e),rl=null}catch(t){throw setTimeout(g0,0),t}},tl=function(e){rl!==null?setTimeout(tl,0,e):(rl=e,setTimeout(g0,0))},hf=function(e,t){v0=setTimeout(e,t)},kh=function(){clearTimeout(v0)},Lt.unstable_shouldYield=function(){return!1},p0=Lt.unstable_forceFrameRate=function(){}):(_C=window.setTimeout,SC=window.clearTimeout,typeof console!="undefined"&&(DC=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof DC!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),vf=!1,gf=null,Oh=-1,m0=5,y0=0,Lt.unstable_shouldYield=function(){return Lt.unstable_now()>=y0},p0=function(){},Lt.unstable_forceFrameRate=function(e){0>e||125>>1,a=e[n];if(a!==void 0&&0Ah(s,r))d!==void 0&&0>Ah(d,s)?(e[n]=d,e[l]=r,n=l):(e[n]=s,e[o]=r,n=o);else if(d!==void 0&&0>Ah(d,r))e[n]=d,e[l]=r,n=l;else break e}}return t}return null}function Ah(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}var ga=[],xo=[],MV=1,Ei=null,hn=3,Nh=!1,ju=!1,mf=!1;function E0(e){for(var t=Xi(xo);t!==null;){if(t.callback===null)wh(xo);else if(t.startTime<=e)wh(xo),t.sortIndex=t.expirationTime,T0(ga,t);else break;t=Xi(xo)}}function _0(e){if(mf=!1,E0(e),!ju)if(Xi(ga)!==null)ju=!0,tl(S0);else{var t=Xi(xo);t!==null&&hf(_0,t.startTime-e)}}function S0(e,t){ju=!1,mf&&(mf=!1,kh()),Nh=!0;var r=hn;try{for(E0(t),Ei=Xi(ga);Ei!==null&&(!(Ei.expirationTime>t)||e&&!Lt.unstable_shouldYield());){var n=Ei.callback;if(typeof n=="function"){Ei.callback=null,hn=Ei.priorityLevel;var a=n(Ei.expirationTime<=t);t=Lt.unstable_now(),typeof a=="function"?Ei.callback=a:Ei===Xi(ga)&&wh(ga),E0(t)}else wh(ga);Ei=Xi(ga)}if(Ei!==null)var o=!0;else{var s=Xi(xo);s!==null&&hf(_0,s.startTime-t),o=!1}return o}finally{Ei=null,hn=r,Nh=!1}}var qV=p0;Lt.unstable_IdlePriority=5;Lt.unstable_ImmediatePriority=1;Lt.unstable_LowPriority=4;Lt.unstable_NormalPriority=3;Lt.unstable_Profiling=null;Lt.unstable_UserBlockingPriority=2;Lt.unstable_cancelCallback=function(e){e.callback=null};Lt.unstable_continueExecution=function(){ju||Nh||(ju=!0,tl(S0))};Lt.unstable_getCurrentPriorityLevel=function(){return hn};Lt.unstable_getFirstCallbackNode=function(){return Xi(ga)};Lt.unstable_next=function(e){switch(hn){case 1:case 2:case 3:var t=3;break;default:t=hn}var r=hn;hn=t;try{return e()}finally{hn=r}};Lt.unstable_pauseExecution=function(){};Lt.unstable_requestPaint=qV;Lt.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=hn;hn=e;try{return t()}finally{hn=r}};Lt.unstable_scheduleCallback=function(e,t,r){var n=Lt.unstable_now();switch(typeof r=="object"&&r!==null?(r=r.delay,r=typeof r=="number"&&0n?(e.sortIndex=r,T0(xo,e),Xi(ga)===null&&e===Xi(xo)&&(mf?kh():mf=!0,hf(_0,r-n))):(e.sortIndex=a,T0(ga,e),ju||Nh||(ju=!0,tl(S0))),e};Lt.unstable_wrapCallback=function(e){var t=hn;return function(){var r=hn;hn=t;try{return e.apply(this,arguments)}finally{hn=r}}}});var CC=U((dte,OC)=>{"use strict";OC.exports=kC()});var pA=U(Ci=>{"use strict";var Lh=Bt(),er=o0(),Yr=CC();function pe(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;rt}return!1}function xn(e,t,r,n,a,o,s){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=a,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=s}var nn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){nn[e]=new xn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];nn[t]=new xn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){nn[e]=new xn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){nn[e]=new xn(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){nn[e]=new xn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){nn[e]=new xn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){nn[e]=new xn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){nn[e]=new xn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){nn[e]=new xn(e,5,!1,e.toLowerCase(),null,!1,!1)});var D0=/[\-:]([a-z])/g;function k0(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(D0,k0);nn[t]=new xn(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(D0,k0);nn[t]=new xn(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(D0,k0);nn[t]=new xn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){nn[e]=new xn(e,1,!1,e.toLowerCase(),null,!1,!1)});nn.xlinkHref=new xn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){nn[e]=new xn(e,1,!1,e.toLowerCase(),null,!0,!0)});function O0(e,t,r,n){var a=nn.hasOwnProperty(t)?nn[t]:null,o=a!==null?a.type===0:n?!1:!(!(2l||a[s]!==o[l])return` +`+a[s].replace(" at new "," at ");while(1<=s&&0<=l);break}}}finally{j0=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?Sf(e):""}function QV(e){switch(e.tag){case 5:return Sf(e.type);case 16:return Sf("Lazy");case 13:return Sf("Suspense");case 19:return Sf("SuspenseList");case 0:case 2:case 15:return e=Fh(e.type,!1),e;case 11:return e=Fh(e.type.render,!1),e;case 22:return e=Fh(e.type._render,!1),e;case 1:return e=Fh(e.type,!0),e;default:return""}}function il(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Io:return"Fragment";case qu:return"Portal";case Tf:return"Profiler";case C0:return"StrictMode";case Ef:return"Suspense";case Ih:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case A0:return(e.displayName||"Context")+".Consumer";case w0:return(e._context.displayName||"Context")+".Provider";case xh:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case Rh:return il(e.type);case L0:return il(e._render);case N0:t=e._payload,e=e._init;try{return il(e(t))}catch(r){}}return null}function Ro(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function RC(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function KV(e){var t=RC(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r!="undefined"&&typeof r.get=="function"&&typeof r.set=="function"){var a=r.get,o=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(s){n=""+s,o.call(this,s)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(s){n=""+s},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function jh(e){e._valueTracker||(e._valueTracker=KV(e))}function FC(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=RC(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function Ph(e){if(e=e||(typeof document!="undefined"?document:void 0),typeof e=="undefined")return null;try{return e.activeElement||e.body}catch(t){return e.body}}function P0(e,t){var r=t.checked;return er({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r!=null?r:e._wrapperState.initialChecked})}function jC(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=Ro(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function PC(e,t){t=t.checked,t!=null&&O0(e,"checked",t,!1)}function M0(e,t){PC(e,t);var r=Ro(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?q0(e,t.type,r):t.hasOwnProperty("defaultValue")&&q0(e,t.type,Ro(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function MC(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function q0(e,t,r){(t!=="number"||Ph(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}function HV(e){var t="";return Lh.Children.forEach(e,function(r){r!=null&&(t+=r)}),t}function B0(e,t){return e=er({children:void 0},t),(t=HV(t.children))&&(e.children=t),e}function al(e,t,r,n){if(e=e.options,t){t={};for(var a=0;a=r.length))throw Error(pe(93));r=r[0]}t=r}t==null&&(t=""),r=t}e._wrapperState={initialValue:Ro(r)}}function BC(e,t){var r=Ro(t.value),n=Ro(t.defaultValue);r!=null&&(r=""+r,r!==e.value&&(e.value=r),t.defaultValue==null&&e.defaultValue!==r&&(e.defaultValue=r)),n!=null&&(e.defaultValue=""+n)}function VC(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}var U0={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function UC(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function G0(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?UC(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Mh,GC=function(e){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(t,r,n,a){MSApp.execUnsafeLocalFunction(function(){return e(t,r,n,a)})}:e}(function(e,t){if(e.namespaceURI!==U0.svg||"innerHTML"in e)e.innerHTML=t;else{for(Mh=Mh||document.createElement("div"),Mh.innerHTML=""+t.valueOf().toString()+"",t=Mh.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Df(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var kf={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},zV=["Webkit","ms","Moz","O"];Object.keys(kf).forEach(function(e){zV.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),kf[t]=kf[e]})});function QC(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||kf.hasOwnProperty(e)&&kf[e]?(""+t).trim():t+"px"}function KC(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,a=QC(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,a):e[r]=a}}var WV=er({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Q0(e,t){if(t){if(WV[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(pe(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(pe(60));if(!(typeof t.dangerouslySetInnerHTML=="object"&&"__html"in t.dangerouslySetInnerHTML))throw Error(pe(61))}if(t.style!=null&&typeof t.style!="object")throw Error(pe(62))}}function K0(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function H0(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var z0=null,ol=null,ul=null;function HC(e){if(e=Gf(e)){if(typeof z0!="function")throw Error(pe(280));var t=e.stateNode;t&&(t=av(t),z0(e.stateNode,e.type,t))}}function zC(e){ol?ul?ul.push(e):ul=[e]:ol=e}function WC(){if(ol){var e=ol,t=ul;if(ul=ol=null,HC(e),t)for(e=0;en?0:1<r;r++)t.push(e);return t}function Kh(e,t,r){e.pendingLanes|=t;var n=t-1;e.suspendedLanes&=n,e.pingedLanes&=n,e=e.eventTimes,t=31-Mo(t),e[t]=r}var Mo=Math.clz32?Math.clz32:cU,sU=Math.log,lU=Math.LN2;function cU(e){return e===0?32:31-(sU(e)/lU|0)|0}var fU=Yr.unstable_UserBlockingPriority,dU=Yr.unstable_runWithPriority,Hh=!0;function pU(e,t,r,n){Bu||Y0();var a=ub,o=Bu;Bu=!0;try{YC(a,e,t,r,n)}finally{(Bu=o)||X0()}}function hU(e,t,r,n){dU(fU,ub.bind(null,e,t,r,n))}function ub(e,t,r,n){if(Hh){var a;if((a=(t&4)==0)&&0=jf),E2=String.fromCharCode(32),_2=!1;function S2(e,t){switch(e){case"keyup":return PU.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function D2(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var pl=!1;function qU(e,t){switch(e){case"compositionend":return D2(t);case"keypress":return t.which!==32?null:(_2=!0,E2);case"textInput":return e=t.data,e===E2&&_2?null:e;default:return null}}function BU(e,t){if(pl)return e==="compositionend"||!vb&&S2(e,t)?(e=v2(),zh=lb=qo=null,pl=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=N2(r)}}function x2(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?x2(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function I2(){for(var e=window,t=Ph();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch(n){r=!1}if(r)e=t.contentWindow;else break;t=Ph(e.document)}return t}function mb(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var JU=ro&&"documentMode"in document&&11>=document.documentMode,hl=null,yb=null,Bf=null,bb=!1;function R2(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;bb||hl==null||hl!==Ph(n)||(n=hl,"selectionStart"in n&&mb(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Bf&&qf(Bf,n)||(Bf=n,n=tv(yb,"onSelect"),0bl||(e.current=Ob[bl],Ob[bl]=null,bl--)}function lr(e,t){bl++,Ob[bl]=e.current,e.current=t}var Uo={},vn=Vo(Uo),Qn=Vo(!1),Gu=Uo;function Tl(e,t){var r=e.type.contextTypes;if(!r)return Uo;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var a={},o;for(o in r)a[o]=t[o];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Kn(e){return e=e.childContextTypes,e!=null}function ov(){Jt(Qn),Jt(vn)}function Y2(e,t,r){if(vn.current!==Uo)throw Error(pe(168));lr(vn,t),lr(Qn,r)}function J2(e,t,r){var n=e.stateNode;if(e=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var a in n)if(!(a in e))throw Error(pe(108,il(t)||"Unknown",a));return er({},r,n)}function uv(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Uo,Gu=vn.current,lr(vn,e),lr(Qn,Qn.current),!0}function X2(e,t,r){var n=e.stateNode;if(!n)throw Error(pe(169));r?(e=J2(e,t,Gu),n.__reactInternalMemoizedMergedChildContext=e,Jt(Qn),Jt(vn),lr(vn,e)):Jt(Qn),lr(Qn,r)}var Cb=null,Qu=null,$U=Yr.unstable_runWithPriority,wb=Yr.unstable_scheduleCallback,Ab=Yr.unstable_cancelCallback,eG=Yr.unstable_shouldYield,Z2=Yr.unstable_requestPaint,Nb=Yr.unstable_now,tG=Yr.unstable_getCurrentPriorityLevel,sv=Yr.unstable_ImmediatePriority,$2=Yr.unstable_UserBlockingPriority,ew=Yr.unstable_NormalPriority,tw=Yr.unstable_LowPriority,rw=Yr.unstable_IdlePriority,Lb={},rG=Z2!==void 0?Z2:function(){},no=null,lv=null,xb=!1,nw=Nb(),gn=1e4>nw?Nb:function(){return Nb()-nw};function El(){switch(tG()){case sv:return 99;case $2:return 98;case ew:return 97;case tw:return 96;case rw:return 95;default:throw Error(pe(332))}}function iw(e){switch(e){case 99:return sv;case 98:return $2;case 97:return ew;case 96:return tw;case 95:return rw;default:throw Error(pe(332))}}function Ku(e,t){return e=iw(e),$U(e,t)}function Qf(e,t,r){return e=iw(e),wb(e,t,r)}function ya(){if(lv!==null){var e=lv;lv=null,Ab(e)}aw()}function aw(){if(!xb&&no!==null){xb=!0;var e=0;try{var t=no;Ku(99,function(){for(;eR?(M=D,D=null):M=D.sibling;var q=T(y,D,m[R],k);if(q===null){D===null&&(D=M);break}e&&D&&q.alternate===null&&t(y,D),_=o(q,_,R),C===null?w=q:C.sibling=q,C=q,D=M}if(R===m.length)return r(y,D),w;if(D===null){for(;RR?(M=D,D=null):M=D.sibling;var z=T(y,D,q.value,k);if(z===null){D===null&&(D=M);break}e&&D&&z.alternate===null&&t(y,D),_=o(z,_,R),C===null?w=z:C.sibling=z,C=z,D=M}if(q.done)return r(y,D),w;if(D===null){for(;!q.done;R++,q=m.next())q=b(y,q.value,k),q!==null&&(_=o(q,_,R),C===null?w=q:C.sibling=q,C=q);return w}for(D=n(y,D);!q.done;R++,q=m.next())q=A(D,y,R,q.value,k),q!==null&&(e&&q.alternate!==null&&D.delete(q.key===null?R:q.key),_=o(q,_,R),C===null?w=q:C.sibling=q,C=q);return e&&D.forEach(function(Q){return t(y,Q)}),w}return function(y,_,m,k){var w=typeof m=="object"&&m!==null&&m.type===Io&&m.key===null;w&&(m=m.props.children);var C=typeof m=="object"&&m!==null;if(C)switch(m.$$typeof){case bf:e:{for(C=m.key,w=_;w!==null;){if(w.key===C){switch(w.tag){case 7:if(m.type===Io){r(y,w.sibling),_=a(w,m.props.children),_.return=y,y=_;break e}break;default:if(w.elementType===m.type){r(y,w.sibling),_=a(w,m.props),_.ref=Hf(y,w,m),_.return=y,y=_;break e}}r(y,w);break}else t(y,w);w=w.sibling}m.type===Io?(_=Ll(m.props.children,y.mode,k,m.key),_.return=y,y=_):(k=Rv(m.type,m.key,m.props,null,y.mode,k),k.ref=Hf(y,_,m),k.return=y,y=k)}return s(y);case qu:e:{for(w=m.key;_!==null;){if(_.key===w)if(_.tag===4&&_.stateNode.containerInfo===m.containerInfo&&_.stateNode.implementation===m.implementation){r(y,_.sibling),_=a(_,m.children||[]),_.return=y,y=_;break e}else{r(y,_);break}else t(y,_);_=_.sibling}_=bT(m,y.mode,k),_.return=y,y=_}return s(y)}if(typeof m=="string"||typeof m=="number")return m=""+m,_!==null&&_.tag===6?(r(y,_.sibling),_=a(_,m),_.return=y,y=_):(r(y,_),_=yT(m,y.mode,k),_.return=y,y=_),s(y);if(vv(m))return L(y,_,m,k);if(_f(m))return S(y,_,m,k);if(C&&gv(y,m),typeof m=="undefined"&&!w)switch(y.tag){case 1:case 22:case 0:case 11:case 15:throw Error(pe(152,il(y.type)||"Component"))}return r(y,_)}}var mv=hw(!0),vw=hw(!1),zf={},ba=Vo(zf),Wf=Vo(zf),Yf=Vo(zf);function Hu(e){if(e===zf)throw Error(pe(174));return e}function Pb(e,t){switch(lr(Yf,t),lr(Wf,e),lr(ba,zf),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:G0(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=G0(t,e)}Jt(ba),lr(ba,t)}function Dl(){Jt(ba),Jt(Wf),Jt(Yf)}function gw(e){Hu(Yf.current);var t=Hu(ba.current),r=G0(t,e.type);t!==r&&(lr(Wf,e),lr(ba,r))}function Mb(e){Wf.current===e&&(Jt(ba),Jt(Wf))}var cr=Vo(0);function yv(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data==="$?"||r.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&64)!=0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var io=null,Ho=null,Ta=!1;function mw(e,t){var r=Oi(5,null,null,0);r.elementType="DELETED",r.type="DELETED",r.stateNode=t,r.return=e,r.flags=8,e.lastEffect!==null?(e.lastEffect.nextEffect=r,e.lastEffect=r):e.firstEffect=e.lastEffect=r}function yw(e,t){switch(e.tag){case 5:var r=e.type;return t=t.nodeType!==1||r.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,!0):!1;case 13:return!1;default:return!1}}function qb(e){if(Ta){var t=Ho;if(t){var r=t;if(!yw(e,t)){if(t=gl(r.nextSibling),!t||!yw(e,t)){e.flags=e.flags&-1025|2,Ta=!1,io=e;return}mw(io,r)}io=e,Ho=gl(t.firstChild)}else e.flags=e.flags&-1025|2,Ta=!1,io=e}}function bw(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;io=e}function bv(e){if(e!==io)return!1;if(!Ta)return bw(e),Ta=!0,!1;var t=e.type;if(e.tag!==5||t!=="head"&&t!=="body"&&!Sb(t,e.memoizedProps))for(t=Ho;t;)mw(e,t),t=gl(t.nextSibling);if(bw(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(pe(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var r=e.data;if(r==="/$"){if(t===0){Ho=gl(e.nextSibling);break e}t--}else r!=="$"&&r!=="$!"&&r!=="$?"||t++}e=e.nextSibling}Ho=null}}else Ho=io?gl(e.stateNode.nextSibling):null;return!0}function Bb(){Ho=io=null,Ta=!1}var kl=[];function Vb(){for(var e=0;eo))throw Error(pe(301));o+=1,an=mn=null,t.updateQueue=null,Jf.current=uG,e=r(n,a)}while(Zf)}if(Jf.current=Dv,t=mn!==null&&mn.next!==null,Xf=0,an=mn=gr=null,Tv=!1,t)throw Error(pe(300));return e}function zu(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return an===null?gr.memoizedState=an=e:an=an.next=e,an}function Wu(){if(mn===null){var e=gr.alternate;e=e!==null?e.memoizedState:null}else e=mn.next;var t=an===null?gr.memoizedState:an.next;if(t!==null)an=t,mn=e;else{if(e===null)throw Error(pe(310));mn=e,e={memoizedState:mn.memoizedState,baseState:mn.baseState,baseQueue:mn.baseQueue,queue:mn.queue,next:null},an===null?gr.memoizedState=an=e:an=an.next=e}return an}function Ea(e,t){return typeof t=="function"?t(e):t}function $f(e){var t=Wu(),r=t.queue;if(r===null)throw Error(pe(311));r.lastRenderedReducer=e;var n=mn,a=n.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}n.baseQueue=a=o,r.pending=null}if(a!==null){a=a.next,n=n.baseState;var l=s=o=null,d=a;do{var h=d.lane;if((Xf&h)===h)l!==null&&(l=l.next={lane:0,action:d.action,eagerReducer:d.eagerReducer,eagerState:d.eagerState,next:null}),n=d.eagerReducer===e?d.eagerState:e(n,d.action);else{var v={lane:h,action:d.action,eagerReducer:d.eagerReducer,eagerState:d.eagerState,next:null};l===null?(s=l=v,o=n):l=l.next=v,gr.lanes|=h,nd|=h}d=d.next}while(d!==null&&d!==a);l===null?o=n:l.next=s,_i(n,t.memoizedState)||($i=!0),t.memoizedState=n,t.baseState=o,t.baseQueue=l,r.lastRenderedState=n}return[t.memoizedState,r.dispatch]}function ed(e){var t=Wu(),r=t.queue;if(r===null)throw Error(pe(311));r.lastRenderedReducer=e;var n=r.dispatch,a=r.pending,o=t.memoizedState;if(a!==null){r.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);_i(o,t.memoizedState)||($i=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),r.lastRenderedState=o}return[o,n]}function Tw(e,t,r){var n=t._getVersion;n=n(t._source);var a=t._workInProgressVersionPrimary;if(a!==null?e=a===n:(e=e.mutableReadLanes,(e=(Xf&e)===e)&&(t._workInProgressVersionPrimary=n,kl.push(t))),e)return r(t._source);throw kl.push(t),Error(pe(350))}function Ew(e,t,r,n){var a=In;if(a===null)throw Error(pe(349));var o=t._getVersion,s=o(t._source),l=Jf.current,d=l.useState(function(){return Tw(a,t,r)}),h=d[1],v=d[0];d=an;var b=e.memoizedState,T=b.refs,A=T.getSnapshot,L=b.source;b=b.subscribe;var S=gr;return e.memoizedState={refs:T,source:t,subscribe:n},l.useEffect(function(){T.getSnapshot=r,T.setSnapshot=h;var y=o(t._source);if(!_i(s,y)){y=r(t._source),_i(v,y)||(h(y),y=Wo(S),a.mutableReadLanes|=y&a.pendingLanes),y=a.mutableReadLanes,a.entangledLanes|=y;for(var _=a.entanglements,m=y;0r?98:r,function(){e(!0)}),Ku(97<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=s.createElement(r,{is:n.is}):(e=s.createElement(r),r==="select"&&(s=e,n.multiple?s.multiple=!0:n.size&&(s.size=n.size))):e=s.createElementNS(e,r),e[Bo]=t,e[iv]=n,Uw(e,t,!1,!1),t.stateNode=e,s=K0(r,n),r){case"dialog":Yt("cancel",e),Yt("close",e),a=n;break;case"iframe":case"object":case"embed":Yt("load",e),a=n;break;case"video":case"audio":for(a=0;alT&&(t.flags|=64,o=!0,rd(n,!1),t.lanes=33554432)}else{if(!o)if(e=yv(s),e!==null){if(t.flags|=64,o=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),rd(n,!0),n.tail===null&&n.tailMode==="hidden"&&!s.alternate&&!Ta)return t=t.lastEffect=n.lastEffect,t!==null&&(t.nextEffect=null),null}else 2*gn()-n.renderingStartTime>lT&&r!==1073741824&&(t.flags|=64,o=!0,rd(n,!1),t.lanes=33554432);n.isBackwards?(s.sibling=t.child,t.child=s):(r=n.last,r!==null?r.sibling=s:t.child=s,n.last=s)}return n.tail!==null?(r=n.tail,n.rendering=r,n.tail=r.sibling,n.lastEffect=t.lastEffect,n.renderingStartTime=gn(),r.sibling=null,t=cr.current,lr(cr,o?t&1|2:t&1),r):null;case 23:case 24:return vT(),e!==null&&e.memoizedState!==null!=(t.memoizedState!==null)&&n.mode!=="unstable-defer-without-hiding"&&(t.flags|=4),null}throw Error(pe(156,t.tag))}function cG(e){switch(e.tag){case 1:Kn(e.type)&&ov();var t=e.flags;return t&4096?(e.flags=t&-4097|64,e):null;case 3:if(Dl(),Jt(Qn),Jt(vn),Vb(),t=e.flags,(t&64)!=0)throw Error(pe(285));return e.flags=t&-4097|64,e;case 5:return Mb(e),null;case 13:return Jt(cr),t=e.flags,t&4096?(e.flags=t&-4097|64,e):null;case 19:return Jt(cr),null;case 4:return Dl(),null;case 10:return Rb(e),null;case 23:case 24:return vT(),null;default:return null}}function $b(e,t){try{var r="",n=t;do r+=QV(n),n=n.return;while(n);var a=r}catch(o){a=` +Error generating stack: `+o.message+` +`+o.stack}return{value:e,source:t,stack:a}}function eT(e,t){try{console.error(t.value)}catch(r){setTimeout(function(){throw r})}}var fG=typeof WeakMap=="function"?WeakMap:Map;function Kw(e,t,r){r=Qo(-1,r),r.tag=3,r.payload={element:null};var n=t.value;return r.callback=function(){wv||(wv=!0,cT=n),eT(e,t)},r}function Hw(e,t,r){r=Qo(-1,r),r.tag=3;var n=e.type.getDerivedStateFromError;if(typeof n=="function"){var a=t.value;r.payload=function(){return eT(e,t),n(a)}}var o=e.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(r.callback=function(){typeof n!="function"&&(_a===null?_a=new Set([this]):_a.add(this),eT(e,t));var s=t.stack;this.componentDidCatch(t.value,{componentStack:s!==null?s:""})}),r}var dG=typeof WeakSet=="function"?WeakSet:Set;function zw(e){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(r){Xo(e,r)}else t.current=null}function pG(e,t){switch(t.tag){case 0:case 11:case 15:case 22:return;case 1:if(t.flags&256&&e!==null){var r=e.memoizedProps,n=e.memoizedState;e=t.stateNode,t=e.getSnapshotBeforeUpdate(t.elementType===t.type?r:Zi(t.type,r),n),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:t.flags&256&&Db(t.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(pe(163))}function hG(e,t,r){switch(r.tag){case 0:case 11:case 15:case 22:if(t=r.updateQueue,t=t!==null?t.lastEffect:null,t!==null){e=t=t.next;do{if((e.tag&3)==3){var n=e.create;e.destroy=n()}e=e.next}while(e!==t)}if(t=r.updateQueue,t=t!==null?t.lastEffect:null,t!==null){e=t=t.next;do{var a=e;n=a.next,a=a.tag,(a&4)!=0&&(a&1)!=0&&(sA(r,e),_G(r,e)),e=n}while(e!==t)}return;case 1:e=r.stateNode,r.flags&4&&(t===null?e.componentDidMount():(n=r.elementType===r.type?t.memoizedProps:Zi(r.type,t.memoizedProps),e.componentDidUpdate(n,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),t=r.updateQueue,t!==null&&lw(r,t,e);return;case 3:if(t=r.updateQueue,t!==null){if(e=null,r.child!==null)switch(r.child.tag){case 5:e=r.child.stateNode;break;case 1:e=r.child.stateNode}lw(r,t,e)}return;case 5:e=r.stateNode,t===null&&r.flags&4&&Q2(r.type,r.memoizedProps)&&e.focus();return;case 6:return;case 4:return;case 12:return;case 13:r.memoizedState===null&&(r=r.alternate,r!==null&&(r=r.memoizedState,r!==null&&(r=r.dehydrated,r!==null&&u2(r))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(pe(163))}function Ww(e,t){for(var r=e;;){if(r.tag===5){var n=r.stateNode;if(t)n=n.style,typeof n.setProperty=="function"?n.setProperty("display","none","important"):n.display="none";else{n=r.stateNode;var a=r.memoizedProps.style;a=a!=null&&a.hasOwnProperty("display")?a.display:null,n.style.display=QC("display",a)}}else if(r.tag===6)r.stateNode.nodeValue=t?"":r.memoizedProps;else if((r.tag!==23&&r.tag!==24||r.memoizedState===null||r===e)&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===e)break;for(;r.sibling===null;){if(r.return===null||r.return===e)return;r=r.return}r.sibling.return=r.return,r=r.sibling}}function Yw(e,t){if(Qu&&typeof Qu.onCommitFiberUnmount=="function")try{Qu.onCommitFiberUnmount(Cb,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(e=t.updateQueue,e!==null&&(e=e.lastEffect,e!==null)){var r=e=e.next;do{var n=r,a=n.destroy;if(n=n.tag,a!==void 0)if((n&4)!=0)sA(t,r);else{n=t;try{a()}catch(o){Xo(n,o)}}r=r.next}while(r!==e)}break;case 1:if(zw(t),e=t.stateNode,typeof e.componentWillUnmount=="function")try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){Xo(t,o)}break;case 5:zw(t);break;case 4:$w(e,t)}}function Jw(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function Xw(e){return e.tag===5||e.tag===3||e.tag===4}function Zw(e){e:{for(var t=e.return;t!==null;){if(Xw(t))break e;t=t.return}throw Error(pe(160))}var r=t;switch(t=r.stateNode,r.tag){case 5:var n=!1;break;case 3:t=t.containerInfo,n=!0;break;case 4:t=t.containerInfo,n=!0;break;default:throw Error(pe(161))}r.flags&16&&(Df(t,""),r.flags&=-17);e:t:for(r=e;;){for(;r.sibling===null;){if(r.return===null||Xw(r.return)){r=null;break e}r=r.return}for(r.sibling.return=r.return,r=r.sibling;r.tag!==5&&r.tag!==6&&r.tag!==18;){if(r.flags&2||r.child===null||r.tag===4)continue t;r.child.return=r,r=r.child}if(!(r.flags&2)){r=r.stateNode;break e}}n?tT(e,r,t):rT(e,r,t)}function tT(e,t,r){var n=e.tag,a=n===5||n===6;if(a)e=a?e.stateNode:e.stateNode.instance,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=rv));else if(n!==4&&(e=e.child,e!==null))for(tT(e,t,r),e=e.sibling;e!==null;)tT(e,t,r),e=e.sibling}function rT(e,t,r){var n=e.tag,a=n===5||n===6;if(a)e=a?e.stateNode:e.stateNode.instance,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(rT(e,t,r),e=e.sibling;e!==null;)rT(e,t,r),e=e.sibling}function $w(e,t){for(var r=t,n=!1,a,o;;){if(!n){n=r.return;e:for(;;){if(n===null)throw Error(pe(160));switch(a=n.stateNode,n.tag){case 5:o=!1;break e;case 3:a=a.containerInfo,o=!0;break e;case 4:a=a.containerInfo,o=!0;break e}n=n.return}n=!0}if(r.tag===5||r.tag===6){e:for(var s=e,l=r,d=l;;)if(Yw(s,d),d.child!==null&&d.tag!==4)d.child.return=d,d=d.child;else{if(d===l)break e;for(;d.sibling===null;){if(d.return===null||d.return===l)break e;d=d.return}d.sibling.return=d.return,d=d.sibling}o?(s=a,l=r.stateNode,s.nodeType===8?s.parentNode.removeChild(l):s.removeChild(l)):a.removeChild(r.stateNode)}else if(r.tag===4){if(r.child!==null){a=r.stateNode.containerInfo,o=!0,r.child.return=r,r=r.child;continue}}else if(Yw(e,r),r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break;for(;r.sibling===null;){if(r.return===null||r.return===t)return;r=r.return,r.tag===4&&(n=!1)}r.sibling.return=r.return,r=r.sibling}}function nT(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var n=r=r.next;do(n.tag&3)==3&&(e=n.destroy,n.destroy=void 0,e!==void 0&&e()),n=n.next;while(n!==r)}return;case 1:return;case 5:if(r=t.stateNode,r!=null){n=t.memoizedProps;var a=e!==null?e.memoizedProps:n;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,o!==null){for(r[iv]=n,e==="input"&&n.type==="radio"&&n.name!=null&&PC(r,n),K0(e,a),t=K0(e,n),a=0;aa&&(a=s),r&=~o}if(r=a,r=gn()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*gG(r/1960))-r,10 component higher in the tree to provide a loading indicator or placeholder to display.`)}on!==5&&(on=2),d=$b(d,l),T=s;do{switch(T.tag){case 3:o=d,T.flags|=4096,t&=-t,T.lanes|=t;var C=Kw(T,o,t);sw(T,C);break e;case 1:o=d;var D=T.type,R=T.stateNode;if((T.flags&64)==0&&(typeof D.getDerivedStateFromError=="function"||R!==null&&typeof R.componentDidCatch=="function"&&(_a===null||!_a.has(R)))){T.flags|=4096,t&=-t,T.lanes|=t;var M=Hw(T,o,t);sw(T,M);break e}}T=T.return}while(T!==null)}uA(r)}catch(q){t=q,Pr===r&&r!==null&&(Pr=r=r.return);continue}break}while(1)}function aA(){var e=Ov.current;return Ov.current=Dv,e===null?Dv:e}function sd(e,t){var r=ze;ze|=16;var n=aA();In===e&&yn===t||Nl(e,t);do try{yG();break}catch(a){iA(e,a)}while(1);if(Ib(),ze=r,Ov.current=n,Pr!==null)throw Error(pe(261));return In=null,yn=0,on}function yG(){for(;Pr!==null;)oA(Pr)}function bG(){for(;Pr!==null&&!eG();)oA(Pr)}function oA(e){var t=cA(e.alternate,e,Yu);e.memoizedProps=e.pendingProps,t===null?uA(e):Pr=t,iT.current=null}function uA(e){var t=e;do{var r=t.alternate;if(e=t.return,(t.flags&2048)==0){if(r=lG(r,t,Yu),r!==null){Pr=r;return}if(r=t,r.tag!==24&&r.tag!==23||r.memoizedState===null||(Yu&1073741824)!=0||(r.mode&4)==0){for(var n=0,a=r.child;a!==null;)n|=a.lanes|a.childLanes,a=a.sibling;r.childLanes=n}e!==null&&(e.flags&2048)==0&&(e.firstEffect===null&&(e.firstEffect=t.firstEffect),t.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1s&&(l=s,s=C,C=l),l=L2(m,C),o=L2(m,s),l&&o&&(w.rangeCount!==1||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==o.node||w.focusOffset!==o.offset)&&(k=k.createRange(),k.setStart(l.node,l.offset),w.removeAllRanges(),C>s?(w.addRange(k),w.extend(o.node,o.offset)):(k.setEnd(o.node,o.offset),w.addRange(k)))))),k=[],w=m;w=w.parentNode;)w.nodeType===1&&k.push({element:w,left:w.scrollLeft,top:w.scrollTop});for(typeof m.focus=="function"&&m.focus(),m=0;mgn()-sT?Nl(e,0):oT|=r),ki(e,t)}function kG(e,t){var r=e.stateNode;r!==null&&r.delete(t),t=0,t===0&&(t=e.mode,(t&2)==0?t=1:(t&4)==0?t=El()===99?1:2:(uo===0&&(uo=Ol),t=fl(62914560&~uo),t===0&&(t=4194304))),r=ai(),e=xv(e,t),e!==null&&(Kh(e,t,r),ki(e,r))}var cA;cA=function(e,t,r){var n=t.lanes;if(e!==null)if(e.memoizedProps!==t.pendingProps||Qn.current)$i=!0;else if((r&n)!=0)$i=(e.flags&16384)!=0;else{switch($i=!1,t.tag){case 3:Fw(t),Bb();break;case 5:gw(t);break;case 1:Kn(t.type)&&uv(t);break;case 4:Pb(t,t.stateNode.containerInfo);break;case 10:n=t.memoizedProps.value;var a=t.type._context;lr(cv,a._currentValue),a._currentValue=n;break;case 13:if(t.memoizedState!==null)return(r&t.child.childLanes)!=0?jw(e,t,r):(lr(cr,cr.current&1),t=ao(e,t,r),t!==null?t.sibling:null);lr(cr,cr.current&1);break;case 19:if(n=(r&t.childLanes)!=0,(e.flags&64)!=0){if(n)return Vw(e,t,r);t.flags|=64}if(a=t.memoizedState,a!==null&&(a.rendering=null,a.tail=null,a.lastEffect=null),lr(cr,cr.current),n)break;return null;case 23:case 24:return t.lanes=0,Wb(e,t,r)}return ao(e,t,r)}else $i=!1;switch(t.lanes=0,t.tag){case 2:if(n=t.type,e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=Tl(t,vn.current),Sl(t,r),a=Gb(null,t,n,e,a,r),t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,Kn(n)){var o=!0;uv(t)}else o=!1;t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,Fb(t);var s=n.getDerivedStateFromProps;typeof s=="function"&&pv(t,n,s,e),a.updater=hv,t.stateNode=a,a._reactInternals=t,jb(t,n,e,r),t=Jb(null,t,n,!0,o,r)}else t.tag=0,zn(null,t,a,r),t=t.child;return t;case 16:a=t.elementType;e:{switch(e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=a._init,a=o(a._payload),t.type=a,o=t.tag=CG(a),e=Zi(a,e),o){case 0:t=Yb(null,t,a,e,r);break e;case 1:t=Rw(null,t,a,e,r);break e;case 11:t=Nw(null,t,a,e,r);break e;case 14:t=Lw(null,t,a,Zi(a.type,e),n,r);break e}throw Error(pe(306,a,""))}return t;case 0:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:Zi(n,a),Yb(e,t,n,a,r);case 1:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:Zi(n,a),Rw(e,t,n,a,r);case 3:if(Fw(t),n=t.updateQueue,e===null||n===null)throw Error(pe(282));if(n=t.pendingProps,a=t.memoizedState,a=a!==null?a.element:null,uw(e,t),Kf(t,n,null,r),n=t.memoizedState.element,n===a)Bb(),t=ao(e,t,r);else{if(a=t.stateNode,(o=a.hydrate)&&(Ho=gl(t.stateNode.containerInfo.firstChild),io=t,o=Ta=!0),o){if(e=a.mutableSourceEagerHydrationData,e!=null)for(a=0;a{"use strict";function hA(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(hA)}catch(e){console.error(e)}}hA(),vA.exports=pA()});var gA=U(xl=>{"use strict";Object.defineProperty(xl,"__esModule",{value:!0});xl.versionInfo=xl.version=void 0;var RG="15.5.0";xl.version=RG;var FG=Object.freeze({major:15,minor:5,patch:0,preReleaseTag:null});xl.versionInfo=FG});var Pv=U(DT=>{"use strict";Object.defineProperty(DT,"__esModule",{value:!0});DT.default=jG;function jG(e){return typeof(e==null?void 0:e.then)=="function"}});var Sa=U(kT=>{"use strict";Object.defineProperty(kT,"__esModule",{value:!0});kT.default=PG;function Mv(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Mv=function(r){return typeof r}:Mv=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Mv(e)}function PG(e){return Mv(e)=="object"&&e!==null}});var Da=U($o=>{"use strict";Object.defineProperty($o,"__esModule",{value:!0});$o.SYMBOL_TO_STRING_TAG=$o.SYMBOL_ASYNC_ITERATOR=$o.SYMBOL_ITERATOR=void 0;var MG=typeof Symbol=="function"&&Symbol.iterator!=null?Symbol.iterator:"@@iterator";$o.SYMBOL_ITERATOR=MG;var qG=typeof Symbol=="function"&&Symbol.asyncIterator!=null?Symbol.asyncIterator:"@@asyncIterator";$o.SYMBOL_ASYNC_ITERATOR=qG;var BG=typeof Symbol=="function"&&Symbol.toStringTag!=null?Symbol.toStringTag:"@@toStringTag";$o.SYMBOL_TO_STRING_TAG=BG});var qv=U(OT=>{"use strict";Object.defineProperty(OT,"__esModule",{value:!0});OT.getLocation=VG;function VG(e,t){for(var r=/\r\n|[\n\r]/g,n=1,a=t+1,o;(o=r.exec(e.body))&&o.index{"use strict";Object.defineProperty(Vv,"__esModule",{value:!0});Vv.printLocation=GG;Vv.printSourceLocation=mA;var UG=qv();function GG(e){return mA(e.source,(0,UG.getLocation)(e.source,e.start))}function mA(e,t){var r=e.locationOffset.column-1,n=Bv(r)+e.body,a=t.line-1,o=e.locationOffset.line-1,s=t.line+o,l=t.line===1?r:0,d=t.column+l,h="".concat(e.name,":").concat(s,":").concat(d,` +`),v=n.split(/\r\n|[\n\r]/g),b=v[a];if(b.length>120){for(var T=Math.floor(d/80),A=d%80,L=[],S=0;S{"use strict";function Uv(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Uv=function(r){return typeof r}:Uv=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Uv(e)}Object.defineProperty(vd,"__esModule",{value:!0});vd.printError=DA;vd.GraphQLError=void 0;var KG=zG(Sa()),HG=Da(),bA=qv(),TA=CT();function zG(e){return e&&e.__esModule?e:{default:e}}function WG(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function EA(e,t){for(var r=0;r{"use strict";Object.defineProperty(AT,"__esModule",{value:!0});AT.syntaxError=tQ;var eQ=Be();function tQ(e,t,r){return new eQ.GraphQLError("Syntax Error: ".concat(r),void 0,e,[t])}});var Vt=U(Kv=>{"use strict";Object.defineProperty(Kv,"__esModule",{value:!0});Kv.Kind=void 0;var rQ=Object.freeze({NAME:"Name",DOCUMENT:"Document",OPERATION_DEFINITION:"OperationDefinition",VARIABLE_DEFINITION:"VariableDefinition",SELECTION_SET:"SelectionSet",FIELD:"Field",ARGUMENT:"Argument",FRAGMENT_SPREAD:"FragmentSpread",INLINE_FRAGMENT:"InlineFragment",FRAGMENT_DEFINITION:"FragmentDefinition",VARIABLE:"Variable",INT:"IntValue",FLOAT:"FloatValue",STRING:"StringValue",BOOLEAN:"BooleanValue",NULL:"NullValue",ENUM:"EnumValue",LIST:"ListValue",OBJECT:"ObjectValue",OBJECT_FIELD:"ObjectField",DIRECTIVE:"Directive",NAMED_TYPE:"NamedType",LIST_TYPE:"ListType",NON_NULL_TYPE:"NonNullType",SCHEMA_DEFINITION:"SchemaDefinition",OPERATION_TYPE_DEFINITION:"OperationTypeDefinition",SCALAR_TYPE_DEFINITION:"ScalarTypeDefinition",OBJECT_TYPE_DEFINITION:"ObjectTypeDefinition",FIELD_DEFINITION:"FieldDefinition",INPUT_VALUE_DEFINITION:"InputValueDefinition",INTERFACE_TYPE_DEFINITION:"InterfaceTypeDefinition",UNION_TYPE_DEFINITION:"UnionTypeDefinition",ENUM_TYPE_DEFINITION:"EnumTypeDefinition",ENUM_VALUE_DEFINITION:"EnumValueDefinition",INPUT_OBJECT_TYPE_DEFINITION:"InputObjectTypeDefinition",DIRECTIVE_DEFINITION:"DirectiveDefinition",SCHEMA_EXTENSION:"SchemaExtension",SCALAR_TYPE_EXTENSION:"ScalarTypeExtension",OBJECT_TYPE_EXTENSION:"ObjectTypeExtension",INTERFACE_TYPE_EXTENSION:"InterfaceTypeExtension",UNION_TYPE_EXTENSION:"UnionTypeExtension",ENUM_TYPE_EXTENSION:"EnumTypeExtension",INPUT_OBJECT_TYPE_EXTENSION:"InputObjectTypeExtension"});Kv.Kind=rQ});var un=U(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});NT.default=nQ;function nQ(e,t){var r=Boolean(e);if(!r)throw new Error(t!=null?t:"Unexpected invariant triggered.")}});var LT=U(Hv=>{"use strict";Object.defineProperty(Hv,"__esModule",{value:!0});Hv.default=void 0;var iQ=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):void 0,aQ=iQ;Hv.default=aQ});var zv=U(xT=>{"use strict";Object.defineProperty(xT,"__esModule",{value:!0});xT.default=uQ;var oQ=OA(un()),kA=OA(LT());function OA(e){return e&&e.__esModule?e:{default:e}}function uQ(e){var t=e.prototype.toJSON;typeof t=="function"||(0,oQ.default)(0),e.prototype.inspect=t,kA.default&&(e.prototype[kA.default]=t)}});var Il=U(Xu=>{"use strict";Object.defineProperty(Xu,"__esModule",{value:!0});Xu.isNode=lQ;Xu.Token=Xu.Location=void 0;var CA=sQ(zv());function sQ(e){return e&&e.__esModule?e:{default:e}}var wA=function(){function e(r,n,a){this.start=r.start,this.end=n.end,this.startToken=r,this.endToken=n,this.source=a}var t=e.prototype;return t.toJSON=function(){return{start:this.start,end:this.end}},e}();Xu.Location=wA;(0,CA.default)(wA);var AA=function(){function e(r,n,a,o,s,l,d){this.kind=r,this.start=n,this.end=a,this.line=o,this.column=s,this.value=d,this.prev=l,this.next=null}var t=e.prototype;return t.toJSON=function(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}},e}();Xu.Token=AA;(0,CA.default)(AA);function lQ(e){return e!=null&&typeof e.kind=="string"}});var Rl=U(Wv=>{"use strict";Object.defineProperty(Wv,"__esModule",{value:!0});Wv.TokenKind=void 0;var cQ=Object.freeze({SOF:"",EOF:"",BANG:"!",DOLLAR:"$",AMP:"&",PAREN_L:"(",PAREN_R:")",SPREAD:"...",COLON:":",EQUALS:"=",AT:"@",BRACKET_L:"[",BRACKET_R:"]",BRACE_L:"{",PIPE:"|",BRACE_R:"}",NAME:"Name",INT:"Int",FLOAT:"Float",STRING:"String",BLOCK_STRING:"BlockString",COMMENT:"Comment"});Wv.TokenKind=cQ});var Ot=U(IT=>{"use strict";Object.defineProperty(IT,"__esModule",{value:!0});IT.default=hQ;var fQ=dQ(LT());function dQ(e){return e&&e.__esModule?e:{default:e}}function Yv(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Yv=function(r){return typeof r}:Yv=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Yv(e)}var pQ=10,NA=2;function hQ(e){return Jv(e,[])}function Jv(e,t){switch(Yv(e)){case"string":return JSON.stringify(e);case"function":return e.name?"[function ".concat(e.name,"]"):"[function]";case"object":return e===null?"null":vQ(e,t);default:return String(e)}}function vQ(e,t){if(t.indexOf(e)!==-1)return"[Circular]";var r=[].concat(t,[e]),n=yQ(e);if(n!==void 0){var a=n.call(e);if(a!==e)return typeof a=="string"?a:Jv(a,r)}else if(Array.isArray(e))return mQ(e,r);return gQ(e,r)}function gQ(e,t){var r=Object.keys(e);if(r.length===0)return"{}";if(t.length>NA)return"["+bQ(e)+"]";var n=r.map(function(a){var o=Jv(e[a],t);return a+": "+o});return"{ "+n.join(", ")+" }"}function mQ(e,t){if(e.length===0)return"[]";if(t.length>NA)return"[Array]";for(var r=Math.min(pQ,e.length),n=e.length-r,a=[],o=0;o1&&a.push("... ".concat(n," more items")),"["+a.join(", ")+"]"}function yQ(e){var t=e[String(fQ.default)];if(typeof t=="function")return t;if(typeof e.inspect=="function")return e.inspect}function bQ(e){var t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if(t==="Object"&&typeof e.constructor=="function"){var r=e.constructor.name;if(typeof r=="string"&&r!=="")return r}return t}});var wi=U(RT=>{"use strict";Object.defineProperty(RT,"__esModule",{value:!0});RT.default=TQ;function TQ(e,t){var r=Boolean(e);if(!r)throw new Error(t)}});var gd=U(Xv=>{"use strict";Object.defineProperty(Xv,"__esModule",{value:!0});Xv.default=void 0;var EQ=function(t,r){return t instanceof r};Xv.default=EQ});var Zv=U(md=>{"use strict";Object.defineProperty(md,"__esModule",{value:!0});md.isSource=OQ;md.Source=void 0;var _Q=Da(),SQ=jT(Ot()),FT=jT(wi()),DQ=jT(gd());function jT(e){return e&&e.__esModule?e:{default:e}}function LA(e,t){for(var r=0;r1&&arguments[1]!==void 0?arguments[1]:"GraphQL request",n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{line:1,column:1};typeof t=="string"||(0,FT.default)(0,"Body must be a string. Received: ".concat((0,SQ.default)(t),".")),this.body=t,this.name=r,this.locationOffset=n,this.locationOffset.line>0||(0,FT.default)(0,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||(0,FT.default)(0,"column in locationOffset is 1-indexed and must be positive.")}return kQ(e,[{key:_Q.SYMBOL_TO_STRING_TAG,get:function(){return"Source"}}]),e}();md.Source=xA;function OQ(e){return(0,DQ.default)(e,xA)}});var Fl=U($v=>{"use strict";Object.defineProperty($v,"__esModule",{value:!0});$v.DirectiveLocation=void 0;var CQ=Object.freeze({QUERY:"QUERY",MUTATION:"MUTATION",SUBSCRIPTION:"SUBSCRIPTION",FIELD:"FIELD",FRAGMENT_DEFINITION:"FRAGMENT_DEFINITION",FRAGMENT_SPREAD:"FRAGMENT_SPREAD",INLINE_FRAGMENT:"INLINE_FRAGMENT",VARIABLE_DEFINITION:"VARIABLE_DEFINITION",SCHEMA:"SCHEMA",SCALAR:"SCALAR",OBJECT:"OBJECT",FIELD_DEFINITION:"FIELD_DEFINITION",ARGUMENT_DEFINITION:"ARGUMENT_DEFINITION",INTERFACE:"INTERFACE",UNION:"UNION",ENUM:"ENUM",ENUM_VALUE:"ENUM_VALUE",INPUT_OBJECT:"INPUT_OBJECT",INPUT_FIELD_DEFINITION:"INPUT_FIELD_DEFINITION"});$v.DirectiveLocation=CQ});var jl=U(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.dedentBlockStringValue=wQ;yd.getBlockStringIndentation=RA;yd.printBlockString=AQ;function wQ(e){var t=e.split(/\r\n|[\n\r]/g),r=RA(e);if(r!==0)for(var n=1;na&&IA(t[o-1]);)--o;return t.slice(a,o).join(` +`)}function IA(e){for(var t=0;t1&&arguments[1]!==void 0?arguments[1]:"",r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=e.indexOf(` +`)===-1,a=e[0]===" "||e[0]===" ",o=e[e.length-1]==='"',s=e[e.length-1]==="\\",l=!n||o||s||r,d="";return l&&!(n&&a)&&(d+=` +`+t),d+=t?e.replace(/\n/g,` +`+t):e,l&&(d+=` +`),'"""'+d.replace(/"""/g,'\\"""')+'"""'}});var tg=U(bd=>{"use strict";Object.defineProperty(bd,"__esModule",{value:!0});bd.isPunctuatorTokenKind=xQ;bd.Lexer=void 0;var ka=Qv(),mr=Il(),tt=Rl(),NQ=jl(),LQ=function(){function e(r){var n=new mr.Token(tt.TokenKind.SOF,0,0,0,0,null);this.source=r,this.lastToken=n,this.token=n,this.line=1,this.lineStart=0}var t=e.prototype;return t.advance=function(){this.lastToken=this.token;var n=this.token=this.lookahead();return n},t.lookahead=function(){var n=this.token;if(n.kind!==tt.TokenKind.EOF)do{var a;n=(a=n.next)!==null&&a!==void 0?a:n.next=IQ(this,n)}while(n.kind===tt.TokenKind.COMMENT);return n},e}();bd.Lexer=LQ;function xQ(e){return e===tt.TokenKind.BANG||e===tt.TokenKind.DOLLAR||e===tt.TokenKind.AMP||e===tt.TokenKind.PAREN_L||e===tt.TokenKind.PAREN_R||e===tt.TokenKind.SPREAD||e===tt.TokenKind.COLON||e===tt.TokenKind.EQUALS||e===tt.TokenKind.AT||e===tt.TokenKind.BRACKET_L||e===tt.TokenKind.BRACKET_R||e===tt.TokenKind.BRACE_L||e===tt.TokenKind.PIPE||e===tt.TokenKind.BRACE_R}function Zu(e){return isNaN(e)?tt.TokenKind.EOF:e<127?JSON.stringify(String.fromCharCode(e)):'"\\u'.concat(("00"+e.toString(16).toUpperCase()).slice(-4),'"')}function IQ(e,t){for(var r=e.source,n=r.body,a=n.length,o=t.end;o31||s===9));return new mr.Token(tt.TokenKind.COMMENT,t,l,r,n,a,o.slice(t+1,l))}function jQ(e,t,r,n,a,o){var s=e.body,l=r,d=t,h=!1;if(l===45&&(l=s.charCodeAt(++d)),l===48){if(l=s.charCodeAt(++d),l>=48&&l<=57)throw(0,ka.syntaxError)(e,d,"Invalid number, unexpected digit after 0: ".concat(Zu(l),"."))}else d=PT(e,d,l),l=s.charCodeAt(d);if(l===46&&(h=!0,l=s.charCodeAt(++d),d=PT(e,d,l),l=s.charCodeAt(d)),(l===69||l===101)&&(h=!0,l=s.charCodeAt(++d),(l===43||l===45)&&(l=s.charCodeAt(++d)),d=PT(e,d,l),l=s.charCodeAt(d)),l===46||VQ(l))throw(0,ka.syntaxError)(e,d,"Invalid number, expected digit but got: ".concat(Zu(l),"."));return new mr.Token(h?tt.TokenKind.FLOAT:tt.TokenKind.INT,t,d,n,a,o,s.slice(t,d))}function PT(e,t,r){var n=e.body,a=t,o=r;if(o>=48&&o<=57){do o=n.charCodeAt(++a);while(o>=48&&o<=57);return a}throw(0,ka.syntaxError)(e,a,"Invalid number, expected digit but got: ".concat(Zu(o),"."))}function PQ(e,t,r,n,a){for(var o=e.body,s=t+1,l=s,d=0,h="";s=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function BQ(e,t,r,n,a){for(var o=e.body,s=o.length,l=t+1,d=0;l!==s&&!isNaN(d=o.charCodeAt(l))&&(d===95||d>=48&&d<=57||d>=65&&d<=90||d>=97&&d<=122);)++l;return new mr.Token(tt.TokenKind.NAME,t,l,r,n,a,o.slice(t,l))}function VQ(e){return e===95||e>=65&&e<=90||e>=97&&e<=122}});var Pl=U($u=>{"use strict";Object.defineProperty($u,"__esModule",{value:!0});$u.parse=QQ;$u.parseValue=KQ;$u.parseType=HQ;$u.Parser=void 0;var MT=Qv(),Ke=Vt(),UQ=Il(),_e=Rl(),FA=Zv(),GQ=Fl(),jA=tg();function QQ(e,t){var r=new rg(e,t);return r.parseDocument()}function KQ(e,t){var r=new rg(e,t);r.expectToken(_e.TokenKind.SOF);var n=r.parseValueLiteral(!1);return r.expectToken(_e.TokenKind.EOF),n}function HQ(e,t){var r=new rg(e,t);r.expectToken(_e.TokenKind.SOF);var n=r.parseTypeReference();return r.expectToken(_e.TokenKind.EOF),n}var rg=function(){function e(r,n){var a=(0,FA.isSource)(r)?r:new FA.Source(r);this._lexer=new jA.Lexer(a),this._options=n}var t=e.prototype;return t.parseName=function(){var n=this.expectToken(_e.TokenKind.NAME);return{kind:Ke.Kind.NAME,value:n.value,loc:this.loc(n)}},t.parseDocument=function(){var n=this._lexer.token;return{kind:Ke.Kind.DOCUMENT,definitions:this.many(_e.TokenKind.SOF,this.parseDefinition,_e.TokenKind.EOF),loc:this.loc(n)}},t.parseDefinition=function(){if(this.peek(_e.TokenKind.NAME))switch(this._lexer.token.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"schema":case"scalar":case"type":case"interface":case"union":case"enum":case"input":case"directive":return this.parseTypeSystemDefinition();case"extend":return this.parseTypeSystemExtension()}else{if(this.peek(_e.TokenKind.BRACE_L))return this.parseOperationDefinition();if(this.peekDescription())return this.parseTypeSystemDefinition()}throw this.unexpected()},t.parseOperationDefinition=function(){var n=this._lexer.token;if(this.peek(_e.TokenKind.BRACE_L))return{kind:Ke.Kind.OPERATION_DEFINITION,operation:"query",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(n)};var a=this.parseOperationType(),o;return this.peek(_e.TokenKind.NAME)&&(o=this.parseName()),{kind:Ke.Kind.OPERATION_DEFINITION,operation:a,name:o,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}},t.parseOperationType=function(){var n=this.expectToken(_e.TokenKind.NAME);switch(n.value){case"query":return"query";case"mutation":return"mutation";case"subscription":return"subscription"}throw this.unexpected(n)},t.parseVariableDefinitions=function(){return this.optionalMany(_e.TokenKind.PAREN_L,this.parseVariableDefinition,_e.TokenKind.PAREN_R)},t.parseVariableDefinition=function(){var n=this._lexer.token;return{kind:Ke.Kind.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(_e.TokenKind.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(_e.TokenKind.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(n)}},t.parseVariable=function(){var n=this._lexer.token;return this.expectToken(_e.TokenKind.DOLLAR),{kind:Ke.Kind.VARIABLE,name:this.parseName(),loc:this.loc(n)}},t.parseSelectionSet=function(){var n=this._lexer.token;return{kind:Ke.Kind.SELECTION_SET,selections:this.many(_e.TokenKind.BRACE_L,this.parseSelection,_e.TokenKind.BRACE_R),loc:this.loc(n)}},t.parseSelection=function(){return this.peek(_e.TokenKind.SPREAD)?this.parseFragment():this.parseField()},t.parseField=function(){var n=this._lexer.token,a=this.parseName(),o,s;return this.expectOptionalToken(_e.TokenKind.COLON)?(o=a,s=this.parseName()):s=a,{kind:Ke.Kind.FIELD,alias:o,name:s,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(_e.TokenKind.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(n)}},t.parseArguments=function(n){var a=n?this.parseConstArgument:this.parseArgument;return this.optionalMany(_e.TokenKind.PAREN_L,a,_e.TokenKind.PAREN_R)},t.parseArgument=function(){var n=this._lexer.token,a=this.parseName();return this.expectToken(_e.TokenKind.COLON),{kind:Ke.Kind.ARGUMENT,name:a,value:this.parseValueLiteral(!1),loc:this.loc(n)}},t.parseConstArgument=function(){var n=this._lexer.token;return{kind:Ke.Kind.ARGUMENT,name:this.parseName(),value:(this.expectToken(_e.TokenKind.COLON),this.parseValueLiteral(!0)),loc:this.loc(n)}},t.parseFragment=function(){var n=this._lexer.token;this.expectToken(_e.TokenKind.SPREAD);var a=this.expectOptionalKeyword("on");return!a&&this.peek(_e.TokenKind.NAME)?{kind:Ke.Kind.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(n)}:{kind:Ke.Kind.INLINE_FRAGMENT,typeCondition:a?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}},t.parseFragmentDefinition=function(){var n,a=this._lexer.token;return this.expectKeyword("fragment"),((n=this._options)===null||n===void 0?void 0:n.experimentalFragmentVariables)===!0?{kind:Ke.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(a)}:{kind:Ke.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(a)}},t.parseFragmentName=function(){if(this._lexer.token.value==="on")throw this.unexpected();return this.parseName()},t.parseValueLiteral=function(n){var a=this._lexer.token;switch(a.kind){case _e.TokenKind.BRACKET_L:return this.parseList(n);case _e.TokenKind.BRACE_L:return this.parseObject(n);case _e.TokenKind.INT:return this._lexer.advance(),{kind:Ke.Kind.INT,value:a.value,loc:this.loc(a)};case _e.TokenKind.FLOAT:return this._lexer.advance(),{kind:Ke.Kind.FLOAT,value:a.value,loc:this.loc(a)};case _e.TokenKind.STRING:case _e.TokenKind.BLOCK_STRING:return this.parseStringLiteral();case _e.TokenKind.NAME:switch(this._lexer.advance(),a.value){case"true":return{kind:Ke.Kind.BOOLEAN,value:!0,loc:this.loc(a)};case"false":return{kind:Ke.Kind.BOOLEAN,value:!1,loc:this.loc(a)};case"null":return{kind:Ke.Kind.NULL,loc:this.loc(a)};default:return{kind:Ke.Kind.ENUM,value:a.value,loc:this.loc(a)}}case _e.TokenKind.DOLLAR:if(!n)return this.parseVariable();break}throw this.unexpected()},t.parseStringLiteral=function(){var n=this._lexer.token;return this._lexer.advance(),{kind:Ke.Kind.STRING,value:n.value,block:n.kind===_e.TokenKind.BLOCK_STRING,loc:this.loc(n)}},t.parseList=function(n){var a=this,o=this._lexer.token,s=function(){return a.parseValueLiteral(n)};return{kind:Ke.Kind.LIST,values:this.any(_e.TokenKind.BRACKET_L,s,_e.TokenKind.BRACKET_R),loc:this.loc(o)}},t.parseObject=function(n){var a=this,o=this._lexer.token,s=function(){return a.parseObjectField(n)};return{kind:Ke.Kind.OBJECT,fields:this.any(_e.TokenKind.BRACE_L,s,_e.TokenKind.BRACE_R),loc:this.loc(o)}},t.parseObjectField=function(n){var a=this._lexer.token,o=this.parseName();return this.expectToken(_e.TokenKind.COLON),{kind:Ke.Kind.OBJECT_FIELD,name:o,value:this.parseValueLiteral(n),loc:this.loc(a)}},t.parseDirectives=function(n){for(var a=[];this.peek(_e.TokenKind.AT);)a.push(this.parseDirective(n));return a},t.parseDirective=function(n){var a=this._lexer.token;return this.expectToken(_e.TokenKind.AT),{kind:Ke.Kind.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(n),loc:this.loc(a)}},t.parseTypeReference=function(){var n=this._lexer.token,a;return this.expectOptionalToken(_e.TokenKind.BRACKET_L)?(a=this.parseTypeReference(),this.expectToken(_e.TokenKind.BRACKET_R),a={kind:Ke.Kind.LIST_TYPE,type:a,loc:this.loc(n)}):a=this.parseNamedType(),this.expectOptionalToken(_e.TokenKind.BANG)?{kind:Ke.Kind.NON_NULL_TYPE,type:a,loc:this.loc(n)}:a},t.parseNamedType=function(){var n=this._lexer.token;return{kind:Ke.Kind.NAMED_TYPE,name:this.parseName(),loc:this.loc(n)}},t.parseTypeSystemDefinition=function(){var n=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(n.kind===_e.TokenKind.NAME)switch(n.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}throw this.unexpected(n)},t.peekDescription=function(){return this.peek(_e.TokenKind.STRING)||this.peek(_e.TokenKind.BLOCK_STRING)},t.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},t.parseSchemaDefinition=function(){var n=this._lexer.token,a=this.parseDescription();this.expectKeyword("schema");var o=this.parseDirectives(!0),s=this.many(_e.TokenKind.BRACE_L,this.parseOperationTypeDefinition,_e.TokenKind.BRACE_R);return{kind:Ke.Kind.SCHEMA_DEFINITION,description:a,directives:o,operationTypes:s,loc:this.loc(n)}},t.parseOperationTypeDefinition=function(){var n=this._lexer.token,a=this.parseOperationType();this.expectToken(_e.TokenKind.COLON);var o=this.parseNamedType();return{kind:Ke.Kind.OPERATION_TYPE_DEFINITION,operation:a,type:o,loc:this.loc(n)}},t.parseScalarTypeDefinition=function(){var n=this._lexer.token,a=this.parseDescription();this.expectKeyword("scalar");var o=this.parseName(),s=this.parseDirectives(!0);return{kind:Ke.Kind.SCALAR_TYPE_DEFINITION,description:a,name:o,directives:s,loc:this.loc(n)}},t.parseObjectTypeDefinition=function(){var n=this._lexer.token,a=this.parseDescription();this.expectKeyword("type");var o=this.parseName(),s=this.parseImplementsInterfaces(),l=this.parseDirectives(!0),d=this.parseFieldsDefinition();return{kind:Ke.Kind.OBJECT_TYPE_DEFINITION,description:a,name:o,interfaces:s,directives:l,fields:d,loc:this.loc(n)}},t.parseImplementsInterfaces=function(){var n;if(!this.expectOptionalKeyword("implements"))return[];if(((n=this._options)===null||n===void 0?void 0:n.allowLegacySDLImplementsInterfaces)===!0){var a=[];this.expectOptionalToken(_e.TokenKind.AMP);do a.push(this.parseNamedType());while(this.expectOptionalToken(_e.TokenKind.AMP)||this.peek(_e.TokenKind.NAME));return a}return this.delimitedMany(_e.TokenKind.AMP,this.parseNamedType)},t.parseFieldsDefinition=function(){var n;return((n=this._options)===null||n===void 0?void 0:n.allowLegacySDLEmptyFields)===!0&&this.peek(_e.TokenKind.BRACE_L)&&this._lexer.lookahead().kind===_e.TokenKind.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(_e.TokenKind.BRACE_L,this.parseFieldDefinition,_e.TokenKind.BRACE_R)},t.parseFieldDefinition=function(){var n=this._lexer.token,a=this.parseDescription(),o=this.parseName(),s=this.parseArgumentDefs();this.expectToken(_e.TokenKind.COLON);var l=this.parseTypeReference(),d=this.parseDirectives(!0);return{kind:Ke.Kind.FIELD_DEFINITION,description:a,name:o,arguments:s,type:l,directives:d,loc:this.loc(n)}},t.parseArgumentDefs=function(){return this.optionalMany(_e.TokenKind.PAREN_L,this.parseInputValueDef,_e.TokenKind.PAREN_R)},t.parseInputValueDef=function(){var n=this._lexer.token,a=this.parseDescription(),o=this.parseName();this.expectToken(_e.TokenKind.COLON);var s=this.parseTypeReference(),l;this.expectOptionalToken(_e.TokenKind.EQUALS)&&(l=this.parseValueLiteral(!0));var d=this.parseDirectives(!0);return{kind:Ke.Kind.INPUT_VALUE_DEFINITION,description:a,name:o,type:s,defaultValue:l,directives:d,loc:this.loc(n)}},t.parseInterfaceTypeDefinition=function(){var n=this._lexer.token,a=this.parseDescription();this.expectKeyword("interface");var o=this.parseName(),s=this.parseImplementsInterfaces(),l=this.parseDirectives(!0),d=this.parseFieldsDefinition();return{kind:Ke.Kind.INTERFACE_TYPE_DEFINITION,description:a,name:o,interfaces:s,directives:l,fields:d,loc:this.loc(n)}},t.parseUnionTypeDefinition=function(){var n=this._lexer.token,a=this.parseDescription();this.expectKeyword("union");var o=this.parseName(),s=this.parseDirectives(!0),l=this.parseUnionMemberTypes();return{kind:Ke.Kind.UNION_TYPE_DEFINITION,description:a,name:o,directives:s,types:l,loc:this.loc(n)}},t.parseUnionMemberTypes=function(){return this.expectOptionalToken(_e.TokenKind.EQUALS)?this.delimitedMany(_e.TokenKind.PIPE,this.parseNamedType):[]},t.parseEnumTypeDefinition=function(){var n=this._lexer.token,a=this.parseDescription();this.expectKeyword("enum");var o=this.parseName(),s=this.parseDirectives(!0),l=this.parseEnumValuesDefinition();return{kind:Ke.Kind.ENUM_TYPE_DEFINITION,description:a,name:o,directives:s,values:l,loc:this.loc(n)}},t.parseEnumValuesDefinition=function(){return this.optionalMany(_e.TokenKind.BRACE_L,this.parseEnumValueDefinition,_e.TokenKind.BRACE_R)},t.parseEnumValueDefinition=function(){var n=this._lexer.token,a=this.parseDescription(),o=this.parseName(),s=this.parseDirectives(!0);return{kind:Ke.Kind.ENUM_VALUE_DEFINITION,description:a,name:o,directives:s,loc:this.loc(n)}},t.parseInputObjectTypeDefinition=function(){var n=this._lexer.token,a=this.parseDescription();this.expectKeyword("input");var o=this.parseName(),s=this.parseDirectives(!0),l=this.parseInputFieldsDefinition();return{kind:Ke.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:a,name:o,directives:s,fields:l,loc:this.loc(n)}},t.parseInputFieldsDefinition=function(){return this.optionalMany(_e.TokenKind.BRACE_L,this.parseInputValueDef,_e.TokenKind.BRACE_R)},t.parseTypeSystemExtension=function(){var n=this._lexer.lookahead();if(n.kind===_e.TokenKind.NAME)switch(n.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(n)},t.parseSchemaExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");var a=this.parseDirectives(!0),o=this.optionalMany(_e.TokenKind.BRACE_L,this.parseOperationTypeDefinition,_e.TokenKind.BRACE_R);if(a.length===0&&o.length===0)throw this.unexpected();return{kind:Ke.Kind.SCHEMA_EXTENSION,directives:a,operationTypes:o,loc:this.loc(n)}},t.parseScalarTypeExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");var a=this.parseName(),o=this.parseDirectives(!0);if(o.length===0)throw this.unexpected();return{kind:Ke.Kind.SCALAR_TYPE_EXTENSION,name:a,directives:o,loc:this.loc(n)}},t.parseObjectTypeExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");var a=this.parseName(),o=this.parseImplementsInterfaces(),s=this.parseDirectives(!0),l=this.parseFieldsDefinition();if(o.length===0&&s.length===0&&l.length===0)throw this.unexpected();return{kind:Ke.Kind.OBJECT_TYPE_EXTENSION,name:a,interfaces:o,directives:s,fields:l,loc:this.loc(n)}},t.parseInterfaceTypeExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");var a=this.parseName(),o=this.parseImplementsInterfaces(),s=this.parseDirectives(!0),l=this.parseFieldsDefinition();if(o.length===0&&s.length===0&&l.length===0)throw this.unexpected();return{kind:Ke.Kind.INTERFACE_TYPE_EXTENSION,name:a,interfaces:o,directives:s,fields:l,loc:this.loc(n)}},t.parseUnionTypeExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");var a=this.parseName(),o=this.parseDirectives(!0),s=this.parseUnionMemberTypes();if(o.length===0&&s.length===0)throw this.unexpected();return{kind:Ke.Kind.UNION_TYPE_EXTENSION,name:a,directives:o,types:s,loc:this.loc(n)}},t.parseEnumTypeExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");var a=this.parseName(),o=this.parseDirectives(!0),s=this.parseEnumValuesDefinition();if(o.length===0&&s.length===0)throw this.unexpected();return{kind:Ke.Kind.ENUM_TYPE_EXTENSION,name:a,directives:o,values:s,loc:this.loc(n)}},t.parseInputObjectTypeExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");var a=this.parseName(),o=this.parseDirectives(!0),s=this.parseInputFieldsDefinition();if(o.length===0&&s.length===0)throw this.unexpected();return{kind:Ke.Kind.INPUT_OBJECT_TYPE_EXTENSION,name:a,directives:o,fields:s,loc:this.loc(n)}},t.parseDirectiveDefinition=function(){var n=this._lexer.token,a=this.parseDescription();this.expectKeyword("directive"),this.expectToken(_e.TokenKind.AT);var o=this.parseName(),s=this.parseArgumentDefs(),l=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");var d=this.parseDirectiveLocations();return{kind:Ke.Kind.DIRECTIVE_DEFINITION,description:a,name:o,arguments:s,repeatable:l,locations:d,loc:this.loc(n)}},t.parseDirectiveLocations=function(){return this.delimitedMany(_e.TokenKind.PIPE,this.parseDirectiveLocation)},t.parseDirectiveLocation=function(){var n=this._lexer.token,a=this.parseName();if(GQ.DirectiveLocation[a.value]!==void 0)return a;throw this.unexpected(n)},t.loc=function(n){var a;if(((a=this._options)===null||a===void 0?void 0:a.noLocation)!==!0)return new UQ.Location(n,this._lexer.lastToken,this._lexer.source)},t.peek=function(n){return this._lexer.token.kind===n},t.expectToken=function(n){var a=this._lexer.token;if(a.kind===n)return this._lexer.advance(),a;throw(0,MT.syntaxError)(this._lexer.source,a.start,"Expected ".concat(PA(n),", found ").concat(qT(a),"."))},t.expectOptionalToken=function(n){var a=this._lexer.token;if(a.kind===n)return this._lexer.advance(),a},t.expectKeyword=function(n){var a=this._lexer.token;if(a.kind===_e.TokenKind.NAME&&a.value===n)this._lexer.advance();else throw(0,MT.syntaxError)(this._lexer.source,a.start,'Expected "'.concat(n,'", found ').concat(qT(a),"."))},t.expectOptionalKeyword=function(n){var a=this._lexer.token;return a.kind===_e.TokenKind.NAME&&a.value===n?(this._lexer.advance(),!0):!1},t.unexpected=function(n){var a=n!=null?n:this._lexer.token;return(0,MT.syntaxError)(this._lexer.source,a.start,"Unexpected ".concat(qT(a),"."))},t.any=function(n,a,o){this.expectToken(n);for(var s=[];!this.expectOptionalToken(o);)s.push(a.call(this));return s},t.optionalMany=function(n,a,o){if(this.expectOptionalToken(n)){var s=[];do s.push(a.call(this));while(!this.expectOptionalToken(o));return s}return[]},t.many=function(n,a,o){this.expectToken(n);var s=[];do s.push(a.call(this));while(!this.expectOptionalToken(o));return s},t.delimitedMany=function(n,a){this.expectOptionalToken(n);var o=[];do o.push(a.call(this));while(this.expectOptionalToken(n));return o},e}();$u.Parser=rg;function qT(e){var t=e.value;return PA(e.kind)+(t!=null?' "'.concat(t,'"'):"")}function PA(e){return(0,jA.isPunctuatorTokenKind)(e)?'"'.concat(e,'"'):e}});var eu=U(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.visit=YQ;so.visitInParallel=JQ;so.getVisitFn=ng;so.BREAK=so.QueryDocumentKeys=void 0;var zQ=WQ(Ot()),MA=Il();function WQ(e){return e&&e.__esModule?e:{default:e}}var qA={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]};so.QueryDocumentKeys=qA;var Ml=Object.freeze({});so.BREAK=Ml;function YQ(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:qA,n=void 0,a=Array.isArray(e),o=[e],s=-1,l=[],d=void 0,h=void 0,v=void 0,b=[],T=[],A=e;do{s++;var L=s===o.length,S=L&&l.length!==0;if(L){if(h=T.length===0?void 0:b[b.length-1],d=v,v=T.pop(),S){if(a)d=d.slice();else{for(var y={},_=0,m=Object.keys(d);_{"use strict";Object.defineProperty(ig,"__esModule",{value:!0});ig.default=void 0;var XQ=Array.prototype.find?function(e,t){return Array.prototype.find.call(e,t)}:function(e,t){for(var r=0;r{"use strict";Object.defineProperty(ag,"__esModule",{value:!0});ag.default=void 0;var $Q=Object.values||function(e){return Object.keys(e).map(function(t){return e[t]})},e5=$Q;ag.default=e5});var Td=U(BT=>{"use strict";Object.defineProperty(BT,"__esModule",{value:!0});BT.locatedError=i5;var t5=n5(Ot()),r5=Be();function n5(e){return e&&e.__esModule?e:{default:e}}function i5(e,t,r){var n,a=e instanceof Error?e:new Error("Unexpected error value: "+(0,t5.default)(e));return Array.isArray(a.path)?a:new r5.GraphQLError(a.message,(n=a.nodes)!==null&&n!==void 0?n:t,a.source,a.positions,r,a)}});var VT=U(og=>{"use strict";Object.defineProperty(og,"__esModule",{value:!0});og.assertValidName=s5;og.isValidNameError=VA;var a5=o5(wi()),BA=Be();function o5(e){return e&&e.__esModule?e:{default:e}}var u5=/^[_a-zA-Z][_a-zA-Z0-9]*$/;function s5(e){var t=VA(e);if(t)throw t;return e}function VA(e){if(typeof e=="string"||(0,a5.default)(0,"Expected name to be a string."),e.length>1&&e[0]==="_"&&e[1]==="_")return new BA.GraphQLError('Name "'.concat(e,'" must not begin with "__", which is reserved by GraphQL introspection.'));if(!u5.test(e))return new BA.GraphQLError('Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but "'.concat(e,'" does not.'))}});var Bl=U(ug=>{"use strict";Object.defineProperty(ug,"__esModule",{value:!0});ug.default=void 0;var l5=Object.entries||function(e){return Object.keys(e).map(function(t){return[t,e[t]]})},c5=l5;ug.default=c5});var tu=U(UT=>{"use strict";Object.defineProperty(UT,"__esModule",{value:!0});UT.default=f5;function f5(e,t){return e.reduce(function(r,n){return r[t(n)]=n,r},Object.create(null))}});var QT=U(GT=>{"use strict";Object.defineProperty(GT,"__esModule",{value:!0});GT.default=h5;var d5=p5(Bl());function p5(e){return e&&e.__esModule?e:{default:e}}function h5(e,t){for(var r=Object.create(null),n=0,a=(0,d5.default)(e);n{"use strict";Object.defineProperty(KT,"__esModule",{value:!0});KT.default=m5;var v5=g5(Bl());function g5(e){return e&&e.__esModule?e:{default:e}}function m5(e){if(Object.getPrototypeOf(e)===null)return e;for(var t=Object.create(null),r=0,n=(0,v5.default)(e);r{"use strict";Object.defineProperty(HT,"__esModule",{value:!0});HT.default=y5;function y5(e,t,r){return e.reduce(function(n,a){return n[t(a)]=r(a),n},Object.create(null))}});var ru=U(zT=>{"use strict";Object.defineProperty(zT,"__esModule",{value:!0});zT.default=T5;var b5=5;function T5(e,t){var r=typeof e=="string"?[e,t]:[void 0,e],n=r[0],a=r[1],o=" Did you mean ";n&&(o+=n+" ");var s=a.map(function(h){return'"'.concat(h,'"')});switch(s.length){case 0:return"";case 1:return o+s[0]+"?";case 2:return o+s[0]+" or "+s[1]+"?"}var l=s.slice(0,b5),d=l.pop();return o+l.join(", ")+", or "+d+"?"}});var UA=U(WT=>{"use strict";Object.defineProperty(WT,"__esModule",{value:!0});WT.default=E5;function E5(e){return e}});var _d=U(JT=>{"use strict";Object.defineProperty(JT,"__esModule",{value:!0});JT.default=_5;function _5(e,t){for(var r=0,n=0;r0);var l=0;do++n,l=l*10+o-YT,o=t.charCodeAt(n);while(lg(o)&&l>0);if(sl)return 1}else{if(ao)return 1;++r,++n}}return e.length-t.length}var YT=48,S5=57;function lg(e){return!isNaN(e)&&YT<=e&&e<=S5}});var nu=U(XT=>{"use strict";Object.defineProperty(XT,"__esModule",{value:!0});XT.default=O5;var D5=k5(_d());function k5(e){return e&&e.__esModule?e:{default:e}}function O5(e,t){for(var r=Object.create(null),n=new C5(e),a=Math.floor(e.length*.4)+1,o=0;oa)){for(var b=this._rows,T=0;T<=v;T++)b[0][T]=T;for(var A=1;A<=h;A++){for(var L=b[(A-1)%3],S=b[A%3],y=S[0]=A,_=1;_<=v;_++){var m=s[A-1]===l[_-1]?0:1,k=Math.min(L[_]+1,S[_-1]+1,L[_-1]+m);if(A>1&&_>1&&s[A-1]===l[_-2]&&s[A-2]===l[_-1]){var w=b[(A-2)%3][_-2];k=Math.min(k,w+1)}ka)return}var C=b[h%3][v];return C<=a?C:void 0}},e}();function GA(e){for(var t=e.length,r=new Array(t),n=0;n{"use strict";Object.defineProperty(ZT,"__esModule",{value:!0});ZT.print=N5;var w5=eu(),A5=jl();function N5(e){return(0,w5.visit)(e,{leave:x5})}var L5=80,x5={Name:function(t){return t.value},Variable:function(t){return"$"+t.name},Document:function(t){return Le(t.definitions,` + +`)+` +`},OperationDefinition:function(t){var r=t.operation,n=t.name,a=or("(",Le(t.variableDefinitions,", "),")"),o=Le(t.directives," "),s=t.selectionSet;return!n&&!o&&!a&&r==="query"?s:Le([r,Le([n,a]),o,s]," ")},VariableDefinition:function(t){var r=t.variable,n=t.type,a=t.defaultValue,o=t.directives;return r+": "+n+or(" = ",a)+or(" ",Le(o," "))},SelectionSet:function(t){var r=t.selections;return ta(r)},Field:function(t){var r=t.alias,n=t.name,a=t.arguments,o=t.directives,s=t.selectionSet,l=or("",r,": ")+n,d=l+or("(",Le(a,", "),")");return d.length>L5&&(d=l+or(`( +`,cg(Le(a,` +`)),` +)`)),Le([d,Le(o," "),s]," ")},Argument:function(t){var r=t.name,n=t.value;return r+": "+n},FragmentSpread:function(t){var r=t.name,n=t.directives;return"..."+r+or(" ",Le(n," "))},InlineFragment:function(t){var r=t.typeCondition,n=t.directives,a=t.selectionSet;return Le(["...",or("on ",r),Le(n," "),a]," ")},FragmentDefinition:function(t){var r=t.name,n=t.typeCondition,a=t.variableDefinitions,o=t.directives,s=t.selectionSet;return"fragment ".concat(r).concat(or("(",Le(a,", "),")")," ")+"on ".concat(n," ").concat(or("",Le(o," ")," "))+s},IntValue:function(t){var r=t.value;return r},FloatValue:function(t){var r=t.value;return r},StringValue:function(t,r){var n=t.value,a=t.block;return a?(0,A5.printBlockString)(n,r==="description"?"":" "):JSON.stringify(n)},BooleanValue:function(t){var r=t.value;return r?"true":"false"},NullValue:function(){return"null"},EnumValue:function(t){var r=t.value;return r},ListValue:function(t){var r=t.values;return"["+Le(r,", ")+"]"},ObjectValue:function(t){var r=t.fields;return"{"+Le(r,", ")+"}"},ObjectField:function(t){var r=t.name,n=t.value;return r+": "+n},Directive:function(t){var r=t.name,n=t.arguments;return"@"+r+or("(",Le(n,", "),")")},NamedType:function(t){var r=t.name;return r},ListType:function(t){var r=t.type;return"["+r+"]"},NonNullType:function(t){var r=t.type;return r+"!"},SchemaDefinition:ea(function(e){var t=e.directives,r=e.operationTypes;return Le(["schema",Le(t," "),ta(r)]," ")}),OperationTypeDefinition:function(t){var r=t.operation,n=t.type;return r+": "+n},ScalarTypeDefinition:ea(function(e){var t=e.name,r=e.directives;return Le(["scalar",t,Le(r," ")]," ")}),ObjectTypeDefinition:ea(function(e){var t=e.name,r=e.interfaces,n=e.directives,a=e.fields;return Le(["type",t,or("implements ",Le(r," & ")),Le(n," "),ta(a)]," ")}),FieldDefinition:ea(function(e){var t=e.name,r=e.arguments,n=e.type,a=e.directives;return t+(QA(r)?or(`( +`,cg(Le(r,` +`)),` +)`):or("(",Le(r,", "),")"))+": "+n+or(" ",Le(a," "))}),InputValueDefinition:ea(function(e){var t=e.name,r=e.type,n=e.defaultValue,a=e.directives;return Le([t+": "+r,or("= ",n),Le(a," ")]," ")}),InterfaceTypeDefinition:ea(function(e){var t=e.name,r=e.interfaces,n=e.directives,a=e.fields;return Le(["interface",t,or("implements ",Le(r," & ")),Le(n," "),ta(a)]," ")}),UnionTypeDefinition:ea(function(e){var t=e.name,r=e.directives,n=e.types;return Le(["union",t,Le(r," "),n&&n.length!==0?"= "+Le(n," | "):""]," ")}),EnumTypeDefinition:ea(function(e){var t=e.name,r=e.directives,n=e.values;return Le(["enum",t,Le(r," "),ta(n)]," ")}),EnumValueDefinition:ea(function(e){var t=e.name,r=e.directives;return Le([t,Le(r," ")]," ")}),InputObjectTypeDefinition:ea(function(e){var t=e.name,r=e.directives,n=e.fields;return Le(["input",t,Le(r," "),ta(n)]," ")}),DirectiveDefinition:ea(function(e){var t=e.name,r=e.arguments,n=e.repeatable,a=e.locations;return"directive @"+t+(QA(r)?or(`( +`,cg(Le(r,` +`)),` +)`):or("(",Le(r,", "),")"))+(n?" repeatable":"")+" on "+Le(a," | ")}),SchemaExtension:function(t){var r=t.directives,n=t.operationTypes;return Le(["extend schema",Le(r," "),ta(n)]," ")},ScalarTypeExtension:function(t){var r=t.name,n=t.directives;return Le(["extend scalar",r,Le(n," ")]," ")},ObjectTypeExtension:function(t){var r=t.name,n=t.interfaces,a=t.directives,o=t.fields;return Le(["extend type",r,or("implements ",Le(n," & ")),Le(a," "),ta(o)]," ")},InterfaceTypeExtension:function(t){var r=t.name,n=t.interfaces,a=t.directives,o=t.fields;return Le(["extend interface",r,or("implements ",Le(n," & ")),Le(a," "),ta(o)]," ")},UnionTypeExtension:function(t){var r=t.name,n=t.directives,a=t.types;return Le(["extend union",r,Le(n," "),a&&a.length!==0?"= "+Le(a," | "):""]," ")},EnumTypeExtension:function(t){var r=t.name,n=t.directives,a=t.values;return Le(["extend enum",r,Le(n," "),ta(a)]," ")},InputObjectTypeExtension:function(t){var r=t.name,n=t.directives,a=t.fields;return Le(["extend input",r,Le(n," "),ta(a)]," ")}};function ea(e){return function(t){return Le([t.description,e(t)],` +`)}}function Le(e){var t,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return(t=e==null?void 0:e.filter(function(n){return n}).join(r))!==null&&t!==void 0?t:""}function ta(e){return or(`{ +`,cg(Le(e,` +`)),` +}`)}function or(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"";return t!=null&&t!==""?e+t+r:""}function cg(e){return or(" ",e.replace(/\n/g,` + `))}function I5(e){return e.indexOf(` +`)!==-1}function QA(e){return e!=null&&e.some(I5)}});var rE=U(tE=>{"use strict";Object.defineProperty(tE,"__esModule",{value:!0});tE.valueFromASTUntyped=eE;var R5=$T(Ot()),F5=$T(un()),j5=$T(Ed()),lo=Vt();function $T(e){return e&&e.__esModule?e:{default:e}}function eE(e,t){switch(e.kind){case lo.Kind.NULL:return null;case lo.Kind.INT:return parseInt(e.value,10);case lo.Kind.FLOAT:return parseFloat(e.value);case lo.Kind.STRING:case lo.Kind.ENUM:case lo.Kind.BOOLEAN:return e.value;case lo.Kind.LIST:return e.values.map(function(r){return eE(r,t)});case lo.Kind.OBJECT:return(0,j5.default)(e.fields,function(r){return r.name.value},function(r){return eE(r.value,t)});case lo.Kind.VARIABLE:return t==null?void 0:t[e.name.value]}(0,F5.default)(0,"Unexpected value node: "+(0,R5.default)(e))}});var lt=U(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.isType=nE;je.assertType=JA;je.isScalarType=es;je.assertScalarType=G5;je.isObjectType=Ul;je.assertObjectType=Q5;je.isInterfaceType=ts;je.assertInterfaceType=K5;je.isUnionType=rs;je.assertUnionType=H5;je.isEnumType=ns;je.assertEnumType=z5;je.isInputObjectType=Dd;je.assertInputObjectType=W5;je.isListType=dg;je.assertListType=Y5;je.isNonNullType=uu;je.assertNonNullType=J5;je.isInputType=iE;je.assertInputType=X5;je.isOutputType=aE;je.assertOutputType=Z5;je.isLeafType=XA;je.assertLeafType=$5;je.isCompositeType=ZA;je.assertCompositeType=e9;je.isAbstractType=$A;je.assertAbstractType=t9;je.GraphQLList=su;je.GraphQLNonNull=lu;je.isWrappingType=kd;je.assertWrappingType=r9;je.isNullableType=eN;je.assertNullableType=tN;je.getNullableType=n9;je.isNamedType=rN;je.assertNamedType=i9;je.getNamedType=a9;je.argsToArgsConfig=oN;je.isRequiredArgument=o9;je.isRequiredInputField=c9;je.GraphQLInputObjectType=je.GraphQLEnumType=je.GraphQLUnionType=je.GraphQLInterfaceType=je.GraphQLObjectType=je.GraphQLScalarType=void 0;var KA=ui(Bl()),iu=Da(),Xt=ui(Ot()),P5=ui(tu()),fg=ui(QT()),Oa=ui(sg()),tr=ui(wi()),HA=ui(Ed()),au=ui(gd()),M5=ui(ru()),q5=ui(Sa()),zA=ui(UA()),ou=ui(zv()),B5=ui(nu()),Sd=Be(),V5=Vt(),WA=Wn(),U5=rE();function ui(e){return e&&e.__esModule?e:{default:e}}function YA(e,t){for(var r=0;r0?e:void 0}var oE=function(){function e(r){var n,a,o,s=(n=r.parseValue)!==null&&n!==void 0?n:zA.default;this.name=r.name,this.description=r.description,this.specifiedByUrl=r.specifiedByUrl,this.serialize=(a=r.serialize)!==null&&a!==void 0?a:zA.default,this.parseValue=s,this.parseLiteral=(o=r.parseLiteral)!==null&&o!==void 0?o:function(l,d){return s((0,U5.valueFromASTUntyped)(l,d))},this.extensions=r.extensions&&(0,Oa.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Gl(r.extensionASTNodes),typeof r.name=="string"||(0,tr.default)(0,"Must provide name."),r.specifiedByUrl==null||typeof r.specifiedByUrl=="string"||(0,tr.default)(0,"".concat(this.name,' must provide "specifiedByUrl" as a string, ')+"but got: ".concat((0,Xt.default)(r.specifiedByUrl),".")),r.serialize==null||typeof r.serialize=="function"||(0,tr.default)(0,"".concat(this.name,' must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.')),r.parseLiteral&&(typeof r.parseValue=="function"&&typeof r.parseLiteral=="function"||(0,tr.default)(0,"".concat(this.name,' must provide both "parseValue" and "parseLiteral" functions.')))}var t=e.prototype;return t.toConfig=function(){var n;return{name:this.name,description:this.description,specifiedByUrl:this.specifiedByUrl,serialize:this.serialize,parseValue:this.parseValue,parseLiteral:this.parseLiteral,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},Vl(e,[{key:iu.SYMBOL_TO_STRING_TAG,get:function(){return"GraphQLScalarType"}}]),e}();je.GraphQLScalarType=oE;(0,ou.default)(oE);var uE=function(){function e(r){this.name=r.name,this.description=r.description,this.isTypeOf=r.isTypeOf,this.extensions=r.extensions&&(0,Oa.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Gl(r.extensionASTNodes),this._fields=iN.bind(void 0,r),this._interfaces=nN.bind(void 0,r),typeof r.name=="string"||(0,tr.default)(0,"Must provide name."),r.isTypeOf==null||typeof r.isTypeOf=="function"||(0,tr.default)(0,"".concat(this.name,' must provide "isTypeOf" as a function, ')+"but got: ".concat((0,Xt.default)(r.isTypeOf),"."))}var t=e.prototype;return t.getFields=function(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields},t.getInterfaces=function(){return typeof this._interfaces=="function"&&(this._interfaces=this._interfaces()),this._interfaces},t.toConfig=function(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:aN(this.getFields()),isTypeOf:this.isTypeOf,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes||[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},Vl(e,[{key:iu.SYMBOL_TO_STRING_TAG,get:function(){return"GraphQLObjectType"}}]),e}();je.GraphQLObjectType=uE;(0,ou.default)(uE);function nN(e){var t,r=(t=pg(e.interfaces))!==null&&t!==void 0?t:[];return Array.isArray(r)||(0,tr.default)(0,"".concat(e.name," interfaces must be an Array or a function which returns an Array.")),r}function iN(e){var t=pg(e.fields);return Ql(t)||(0,tr.default)(0,"".concat(e.name," fields must be an object with field names as keys or a function which returns such an object.")),(0,fg.default)(t,function(r,n){var a;Ql(r)||(0,tr.default)(0,"".concat(e.name,".").concat(n," field config must be an object.")),!("isDeprecated"in r)||(0,tr.default)(0,"".concat(e.name,".").concat(n,' should provide "deprecationReason" instead of "isDeprecated".')),r.resolve==null||typeof r.resolve=="function"||(0,tr.default)(0,"".concat(e.name,".").concat(n," field resolver must be a function if ")+"provided, but got: ".concat((0,Xt.default)(r.resolve),"."));var o=(a=r.args)!==null&&a!==void 0?a:{};Ql(o)||(0,tr.default)(0,"".concat(e.name,".").concat(n," args must be an object with argument names as keys."));var s=(0,KA.default)(o).map(function(l){var d=l[0],h=l[1];return{name:d,description:h.description,type:h.type,defaultValue:h.defaultValue,deprecationReason:h.deprecationReason,extensions:h.extensions&&(0,Oa.default)(h.extensions),astNode:h.astNode}});return{name:n,description:r.description,type:r.type,args:s,resolve:r.resolve,subscribe:r.subscribe,isDeprecated:r.deprecationReason!=null,deprecationReason:r.deprecationReason,extensions:r.extensions&&(0,Oa.default)(r.extensions),astNode:r.astNode}})}function Ql(e){return(0,q5.default)(e)&&!Array.isArray(e)}function aN(e){return(0,fg.default)(e,function(t){return{description:t.description,type:t.type,args:oN(t.args),resolve:t.resolve,subscribe:t.subscribe,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}})}function oN(e){return(0,HA.default)(e,function(t){return t.name},function(t){return{description:t.description,type:t.type,defaultValue:t.defaultValue,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}})}function o9(e){return uu(e.type)&&e.defaultValue===void 0}var sE=function(){function e(r){this.name=r.name,this.description=r.description,this.resolveType=r.resolveType,this.extensions=r.extensions&&(0,Oa.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Gl(r.extensionASTNodes),this._fields=iN.bind(void 0,r),this._interfaces=nN.bind(void 0,r),typeof r.name=="string"||(0,tr.default)(0,"Must provide name."),r.resolveType==null||typeof r.resolveType=="function"||(0,tr.default)(0,"".concat(this.name,' must provide "resolveType" as a function, ')+"but got: ".concat((0,Xt.default)(r.resolveType),"."))}var t=e.prototype;return t.getFields=function(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields},t.getInterfaces=function(){return typeof this._interfaces=="function"&&(this._interfaces=this._interfaces()),this._interfaces},t.toConfig=function(){var n;return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:aN(this.getFields()),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},Vl(e,[{key:iu.SYMBOL_TO_STRING_TAG,get:function(){return"GraphQLInterfaceType"}}]),e}();je.GraphQLInterfaceType=sE;(0,ou.default)(sE);var lE=function(){function e(r){this.name=r.name,this.description=r.description,this.resolveType=r.resolveType,this.extensions=r.extensions&&(0,Oa.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Gl(r.extensionASTNodes),this._types=u9.bind(void 0,r),typeof r.name=="string"||(0,tr.default)(0,"Must provide name."),r.resolveType==null||typeof r.resolveType=="function"||(0,tr.default)(0,"".concat(this.name,' must provide "resolveType" as a function, ')+"but got: ".concat((0,Xt.default)(r.resolveType),"."))}var t=e.prototype;return t.getTypes=function(){return typeof this._types=="function"&&(this._types=this._types()),this._types},t.toConfig=function(){var n;return{name:this.name,description:this.description,types:this.getTypes(),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},Vl(e,[{key:iu.SYMBOL_TO_STRING_TAG,get:function(){return"GraphQLUnionType"}}]),e}();je.GraphQLUnionType=lE;(0,ou.default)(lE);function u9(e){var t=pg(e.types);return Array.isArray(t)||(0,tr.default)(0,"Must provide Array of types or a function which returns such an array for Union ".concat(e.name,".")),t}var cE=function(){function e(r){this.name=r.name,this.description=r.description,this.extensions=r.extensions&&(0,Oa.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Gl(r.extensionASTNodes),this._values=s9(this.name,r.values),this._valueLookup=new Map(this._values.map(function(n){return[n.value,n]})),this._nameLookup=(0,P5.default)(this._values,function(n){return n.name}),typeof r.name=="string"||(0,tr.default)(0,"Must provide name.")}var t=e.prototype;return t.getValues=function(){return this._values},t.getValue=function(n){return this._nameLookup[n]},t.serialize=function(n){var a=this._valueLookup.get(n);if(a===void 0)throw new Sd.GraphQLError('Enum "'.concat(this.name,'" cannot represent value: ').concat((0,Xt.default)(n)));return a.name},t.parseValue=function(n){if(typeof n!="string"){var a=(0,Xt.default)(n);throw new Sd.GraphQLError('Enum "'.concat(this.name,'" cannot represent non-string value: ').concat(a,".")+hg(this,a))}var o=this.getValue(n);if(o==null)throw new Sd.GraphQLError('Value "'.concat(n,'" does not exist in "').concat(this.name,'" enum.')+hg(this,n));return o.value},t.parseLiteral=function(n,a){if(n.kind!==V5.Kind.ENUM){var o=(0,WA.print)(n);throw new Sd.GraphQLError('Enum "'.concat(this.name,'" cannot represent non-enum value: ').concat(o,".")+hg(this,o),n)}var s=this.getValue(n.value);if(s==null){var l=(0,WA.print)(n);throw new Sd.GraphQLError('Value "'.concat(l,'" does not exist in "').concat(this.name,'" enum.')+hg(this,l),n)}return s.value},t.toConfig=function(){var n,a=(0,HA.default)(this.getValues(),function(o){return o.name},function(o){return{description:o.description,value:o.value,deprecationReason:o.deprecationReason,extensions:o.extensions,astNode:o.astNode}});return{name:this.name,description:this.description,values:a,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},Vl(e,[{key:iu.SYMBOL_TO_STRING_TAG,get:function(){return"GraphQLEnumType"}}]),e}();je.GraphQLEnumType=cE;(0,ou.default)(cE);function hg(e,t){var r=e.getValues().map(function(a){return a.name}),n=(0,B5.default)(t,r);return(0,M5.default)("the enum value",n)}function s9(e,t){return Ql(t)||(0,tr.default)(0,"".concat(e," values must be an object with value names as keys.")),(0,KA.default)(t).map(function(r){var n=r[0],a=r[1];return Ql(a)||(0,tr.default)(0,"".concat(e,".").concat(n,' must refer to an object with a "value" key ')+"representing an internal value but got: ".concat((0,Xt.default)(a),".")),!("isDeprecated"in a)||(0,tr.default)(0,"".concat(e,".").concat(n,' should provide "deprecationReason" instead of "isDeprecated".')),{name:n,description:a.description,value:a.value!==void 0?a.value:n,isDeprecated:a.deprecationReason!=null,deprecationReason:a.deprecationReason,extensions:a.extensions&&(0,Oa.default)(a.extensions),astNode:a.astNode}})}var fE=function(){function e(r){this.name=r.name,this.description=r.description,this.extensions=r.extensions&&(0,Oa.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Gl(r.extensionASTNodes),this._fields=l9.bind(void 0,r),typeof r.name=="string"||(0,tr.default)(0,"Must provide name.")}var t=e.prototype;return t.getFields=function(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields},t.toConfig=function(){var n,a=(0,fg.default)(this.getFields(),function(o){return{description:o.description,type:o.type,defaultValue:o.defaultValue,extensions:o.extensions,astNode:o.astNode}});return{name:this.name,description:this.description,fields:a,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},Vl(e,[{key:iu.SYMBOL_TO_STRING_TAG,get:function(){return"GraphQLInputObjectType"}}]),e}();je.GraphQLInputObjectType=fE;(0,ou.default)(fE);function l9(e){var t=pg(e.fields);return Ql(t)||(0,tr.default)(0,"".concat(e.name," fields must be an object with field names as keys or a function which returns such an object.")),(0,fg.default)(t,function(r,n){return!("resolve"in r)||(0,tr.default)(0,"".concat(e.name,".").concat(n," field has a resolve property, but Input Types cannot define resolvers.")),{name:n,description:r.description,type:r.type,defaultValue:r.defaultValue,deprecationReason:r.deprecationReason,extensions:r.extensions&&(0,Oa.default)(r.extensions),astNode:r.astNode}})}function c9(e){return uu(e.type)&&e.defaultValue===void 0}});var Cd=U(Od=>{"use strict";Object.defineProperty(Od,"__esModule",{value:!0});Od.isEqualType=dE;Od.isTypeSubTypeOf=vg;Od.doTypesOverlap=f9;var bn=lt();function dE(e,t){return e===t?!0:(0,bn.isNonNullType)(e)&&(0,bn.isNonNullType)(t)||(0,bn.isListType)(e)&&(0,bn.isListType)(t)?dE(e.ofType,t.ofType):!1}function vg(e,t,r){return t===r?!0:(0,bn.isNonNullType)(r)?(0,bn.isNonNullType)(t)?vg(e,t.ofType,r.ofType):!1:(0,bn.isNonNullType)(t)?vg(e,t.ofType,r):(0,bn.isListType)(r)?(0,bn.isListType)(t)?vg(e,t.ofType,r.ofType):!1:(0,bn.isListType)(t)?!1:(0,bn.isAbstractType)(r)&&((0,bn.isInterfaceType)(t)||(0,bn.isObjectType)(t))&&e.isSubType(r,t)}function f9(e,t,r){return t===r?!0:(0,bn.isAbstractType)(t)?(0,bn.isAbstractType)(r)?e.getPossibleTypes(t).some(function(n){return e.isSubType(r,n)}):e.isSubType(t,r):(0,bn.isAbstractType)(r)?e.isSubType(r,t):!1}});var pE=U(gg=>{"use strict";Object.defineProperty(gg,"__esModule",{value:!0});gg.default=void 0;var d9=Da(),p9=Array.from||function(e,t,r){if(e==null)throw new TypeError("Array.from requires an array-like object - not null or undefined");var n=e[d9.SYMBOL_ITERATOR];if(typeof n=="function"){for(var a=n.call(e),o=[],s,l=0;!(s=a.next()).done;++l)if(o.push(t.call(r,s.value,l)),l>9999999)throw new TypeError("Near-infinite iteration.");return o}var d=e.length;if(typeof d=="number"&&d>=0&&d%1==0){for(var h=[],v=0;v{"use strict";Object.defineProperty(mg,"__esModule",{value:!0});mg.default=void 0;var v9=Number.isFinite||function(e){return typeof e=="number"&&isFinite(e)},g9=v9;mg.default=g9});var bg=U(vE=>{"use strict";Object.defineProperty(vE,"__esModule",{value:!0});vE.default=y9;var m9=Da();function yg(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?yg=function(r){return typeof r}:yg=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},yg(e)}function y9(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(v){return v};if(e==null||yg(e)!=="object")return null;if(Array.isArray(e))return e.map(t);var r=e[m9.SYMBOL_ITERATOR];if(typeof r=="function"){for(var n=r.call(e),a=[],o,s=0;!(o=n.next()).done;++s)a.push(t(o.value,s));return a}var l=e.length;if(typeof l=="number"&&l>=0&&l%1==0){for(var d=[],h=0;h{"use strict";Object.defineProperty(Tg,"__esModule",{value:!0});Tg.default=void 0;var b9=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e},T9=b9;Tg.default=T9});var Ca=U(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});Rn.isSpecifiedScalarType=L9;Rn.specifiedScalarTypes=Rn.GraphQLID=Rn.GraphQLBoolean=Rn.GraphQLString=Rn.GraphQLFloat=Rn.GraphQLInt=void 0;var Eg=Sg(hE()),_g=Sg(uN()),ra=Sg(Ot()),sN=Sg(Sa()),is=Vt(),wd=Wn(),Jr=Be(),Ad=lt();function Sg(e){return e&&e.__esModule?e:{default:e}}var gE=2147483647,mE=-2147483648;function E9(e){var t=Nd(e);if(typeof t=="boolean")return t?1:0;var r=t;if(typeof t=="string"&&t!==""&&(r=Number(t)),!(0,_g.default)(r))throw new Jr.GraphQLError("Int cannot represent non-integer value: ".concat((0,ra.default)(t)));if(r>gE||rgE||egE||r{"use strict";Object.defineProperty(yE,"__esModule",{value:!0});yE.astFromValue=xd;var x9=Kl(hE()),I9=Kl(oi()),vN=Kl(Ot()),R9=Kl(un()),F9=Kl(Sa()),j9=Kl(bg()),Ai=Vt(),P9=Ca(),Ld=lt();function Kl(e){return e&&e.__esModule?e:{default:e}}function xd(e,t){if((0,Ld.isNonNullType)(t)){var r=xd(e,t.ofType);return(r==null?void 0:r.kind)===Ai.Kind.NULL?null:r}if(e===null)return{kind:Ai.Kind.NULL};if(e===void 0)return null;if((0,Ld.isListType)(t)){var n=t.ofType,a=(0,j9.default)(e);if(a!=null){for(var o=[],s=0;s{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.isIntrospectionType=K9;Rt.introspectionTypes=Rt.TypeNameMetaFieldDef=Rt.TypeMetaFieldDef=Rt.SchemaMetaFieldDef=Rt.__TypeKind=Rt.TypeKind=Rt.__EnumValue=Rt.__InputValue=Rt.__Field=Rt.__Type=Rt.__DirectiveLocation=Rt.__Directive=Rt.__Schema=void 0;var bE=TE(oi()),M9=TE(Ot()),q9=TE(un()),B9=Wn(),Mr=Fl(),V9=Id(),Qt=Ca(),xe=lt();function TE(e){return e&&e.__esModule?e:{default:e}}var EE=new xe.GraphQLObjectType({name:"__Schema",description:"A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.",fields:function(){return{description:{type:Qt.GraphQLString,resolve:function(r){return r.description}},types:{description:"A list of all types supported by this server.",type:new xe.GraphQLNonNull(new xe.GraphQLList(new xe.GraphQLNonNull(Ni))),resolve:function(r){return(0,bE.default)(r.getTypeMap())}},queryType:{description:"The type that query operations will be rooted at.",type:new xe.GraphQLNonNull(Ni),resolve:function(r){return r.getQueryType()}},mutationType:{description:"If this server supports mutation, the type that mutation operations will be rooted at.",type:Ni,resolve:function(r){return r.getMutationType()}},subscriptionType:{description:"If this server support subscription, the type that subscription operations will be rooted at.",type:Ni,resolve:function(r){return r.getSubscriptionType()}},directives:{description:"A list of all directives supported by this server.",type:new xe.GraphQLNonNull(new xe.GraphQLList(new xe.GraphQLNonNull(_E))),resolve:function(r){return r.getDirectives()}}}}});Rt.__Schema=EE;var _E=new xe.GraphQLObjectType({name:"__Directive",description:`A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. + +In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.`,fields:function(){return{name:{type:new xe.GraphQLNonNull(Qt.GraphQLString),resolve:function(r){return r.name}},description:{type:Qt.GraphQLString,resolve:function(r){return r.description}},isRepeatable:{type:new xe.GraphQLNonNull(Qt.GraphQLBoolean),resolve:function(r){return r.isRepeatable}},locations:{type:new xe.GraphQLNonNull(new xe.GraphQLList(new xe.GraphQLNonNull(SE))),resolve:function(r){return r.locations}},args:{type:new xe.GraphQLNonNull(new xe.GraphQLList(new xe.GraphQLNonNull(Rd))),resolve:function(r){return r.args}}}}});Rt.__Directive=_E;var SE=new xe.GraphQLEnumType({name:"__DirectiveLocation",description:"A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.",values:{QUERY:{value:Mr.DirectiveLocation.QUERY,description:"Location adjacent to a query operation."},MUTATION:{value:Mr.DirectiveLocation.MUTATION,description:"Location adjacent to a mutation operation."},SUBSCRIPTION:{value:Mr.DirectiveLocation.SUBSCRIPTION,description:"Location adjacent to a subscription operation."},FIELD:{value:Mr.DirectiveLocation.FIELD,description:"Location adjacent to a field."},FRAGMENT_DEFINITION:{value:Mr.DirectiveLocation.FRAGMENT_DEFINITION,description:"Location adjacent to a fragment definition."},FRAGMENT_SPREAD:{value:Mr.DirectiveLocation.FRAGMENT_SPREAD,description:"Location adjacent to a fragment spread."},INLINE_FRAGMENT:{value:Mr.DirectiveLocation.INLINE_FRAGMENT,description:"Location adjacent to an inline fragment."},VARIABLE_DEFINITION:{value:Mr.DirectiveLocation.VARIABLE_DEFINITION,description:"Location adjacent to a variable definition."},SCHEMA:{value:Mr.DirectiveLocation.SCHEMA,description:"Location adjacent to a schema definition."},SCALAR:{value:Mr.DirectiveLocation.SCALAR,description:"Location adjacent to a scalar definition."},OBJECT:{value:Mr.DirectiveLocation.OBJECT,description:"Location adjacent to an object type definition."},FIELD_DEFINITION:{value:Mr.DirectiveLocation.FIELD_DEFINITION,description:"Location adjacent to a field definition."},ARGUMENT_DEFINITION:{value:Mr.DirectiveLocation.ARGUMENT_DEFINITION,description:"Location adjacent to an argument definition."},INTERFACE:{value:Mr.DirectiveLocation.INTERFACE,description:"Location adjacent to an interface definition."},UNION:{value:Mr.DirectiveLocation.UNION,description:"Location adjacent to a union definition."},ENUM:{value:Mr.DirectiveLocation.ENUM,description:"Location adjacent to an enum definition."},ENUM_VALUE:{value:Mr.DirectiveLocation.ENUM_VALUE,description:"Location adjacent to an enum value definition."},INPUT_OBJECT:{value:Mr.DirectiveLocation.INPUT_OBJECT,description:"Location adjacent to an input object type definition."},INPUT_FIELD_DEFINITION:{value:Mr.DirectiveLocation.INPUT_FIELD_DEFINITION,description:"Location adjacent to an input object field definition."}}});Rt.__DirectiveLocation=SE;var Ni=new xe.GraphQLObjectType({name:"__Type",description:"The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByUrl`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.",fields:function(){return{kind:{type:new xe.GraphQLNonNull(OE),resolve:function(r){if((0,xe.isScalarType)(r))return sn.SCALAR;if((0,xe.isObjectType)(r))return sn.OBJECT;if((0,xe.isInterfaceType)(r))return sn.INTERFACE;if((0,xe.isUnionType)(r))return sn.UNION;if((0,xe.isEnumType)(r))return sn.ENUM;if((0,xe.isInputObjectType)(r))return sn.INPUT_OBJECT;if((0,xe.isListType)(r))return sn.LIST;if((0,xe.isNonNullType)(r))return sn.NON_NULL;(0,q9.default)(0,'Unexpected type: "'.concat((0,M9.default)(r),'".'))}},name:{type:Qt.GraphQLString,resolve:function(r){return r.name!==void 0?r.name:void 0}},description:{type:Qt.GraphQLString,resolve:function(r){return r.description!==void 0?r.description:void 0}},specifiedByUrl:{type:Qt.GraphQLString,resolve:function(r){return r.specifiedByUrl!==void 0?r.specifiedByUrl:void 0}},fields:{type:new xe.GraphQLList(new xe.GraphQLNonNull(DE)),args:{includeDeprecated:{type:Qt.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){var a=n.includeDeprecated;if((0,xe.isObjectType)(r)||(0,xe.isInterfaceType)(r)){var o=(0,bE.default)(r.getFields());return a?o:o.filter(function(s){return s.deprecationReason==null})}}},interfaces:{type:new xe.GraphQLList(new xe.GraphQLNonNull(Ni)),resolve:function(r){if((0,xe.isObjectType)(r)||(0,xe.isInterfaceType)(r))return r.getInterfaces()}},possibleTypes:{type:new xe.GraphQLList(new xe.GraphQLNonNull(Ni)),resolve:function(r,n,a,o){var s=o.schema;if((0,xe.isAbstractType)(r))return s.getPossibleTypes(r)}},enumValues:{type:new xe.GraphQLList(new xe.GraphQLNonNull(kE)),args:{includeDeprecated:{type:Qt.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){var a=n.includeDeprecated;if((0,xe.isEnumType)(r)){var o=r.getValues();return a?o:o.filter(function(s){return s.deprecationReason==null})}}},inputFields:{type:new xe.GraphQLList(new xe.GraphQLNonNull(Rd)),args:{includeDeprecated:{type:Qt.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){var a=n.includeDeprecated;if((0,xe.isInputObjectType)(r)){var o=(0,bE.default)(r.getFields());return a?o:o.filter(function(s){return s.deprecationReason==null})}}},ofType:{type:Ni,resolve:function(r){return r.ofType!==void 0?r.ofType:void 0}}}}});Rt.__Type=Ni;var DE=new xe.GraphQLObjectType({name:"__Field",description:"Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.",fields:function(){return{name:{type:new xe.GraphQLNonNull(Qt.GraphQLString),resolve:function(r){return r.name}},description:{type:Qt.GraphQLString,resolve:function(r){return r.description}},args:{type:new xe.GraphQLNonNull(new xe.GraphQLList(new xe.GraphQLNonNull(Rd))),args:{includeDeprecated:{type:Qt.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){var a=n.includeDeprecated;return a?r.args:r.args.filter(function(o){return o.deprecationReason==null})}},type:{type:new xe.GraphQLNonNull(Ni),resolve:function(r){return r.type}},isDeprecated:{type:new xe.GraphQLNonNull(Qt.GraphQLBoolean),resolve:function(r){return r.deprecationReason!=null}},deprecationReason:{type:Qt.GraphQLString,resolve:function(r){return r.deprecationReason}}}}});Rt.__Field=DE;var Rd=new xe.GraphQLObjectType({name:"__InputValue",description:"Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.",fields:function(){return{name:{type:new xe.GraphQLNonNull(Qt.GraphQLString),resolve:function(r){return r.name}},description:{type:Qt.GraphQLString,resolve:function(r){return r.description}},type:{type:new xe.GraphQLNonNull(Ni),resolve:function(r){return r.type}},defaultValue:{type:Qt.GraphQLString,description:"A GraphQL-formatted string representing the default value for this input value.",resolve:function(r){var n=r.type,a=r.defaultValue,o=(0,V9.astFromValue)(a,n);return o?(0,B9.print)(o):null}},isDeprecated:{type:new xe.GraphQLNonNull(Qt.GraphQLBoolean),resolve:function(r){return r.deprecationReason!=null}},deprecationReason:{type:Qt.GraphQLString,resolve:function(r){return r.deprecationReason}}}}});Rt.__InputValue=Rd;var kE=new xe.GraphQLObjectType({name:"__EnumValue",description:"One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.",fields:function(){return{name:{type:new xe.GraphQLNonNull(Qt.GraphQLString),resolve:function(r){return r.name}},description:{type:Qt.GraphQLString,resolve:function(r){return r.description}},isDeprecated:{type:new xe.GraphQLNonNull(Qt.GraphQLBoolean),resolve:function(r){return r.deprecationReason!=null}},deprecationReason:{type:Qt.GraphQLString,resolve:function(r){return r.deprecationReason}}}}});Rt.__EnumValue=kE;var sn=Object.freeze({SCALAR:"SCALAR",OBJECT:"OBJECT",INTERFACE:"INTERFACE",UNION:"UNION",ENUM:"ENUM",INPUT_OBJECT:"INPUT_OBJECT",LIST:"LIST",NON_NULL:"NON_NULL"});Rt.TypeKind=sn;var OE=new xe.GraphQLEnumType({name:"__TypeKind",description:"An enum describing what kind of type a given `__Type` is.",values:{SCALAR:{value:sn.SCALAR,description:"Indicates this type is a scalar."},OBJECT:{value:sn.OBJECT,description:"Indicates this type is an object. `fields` and `interfaces` are valid fields."},INTERFACE:{value:sn.INTERFACE,description:"Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields."},UNION:{value:sn.UNION,description:"Indicates this type is a union. `possibleTypes` is a valid field."},ENUM:{value:sn.ENUM,description:"Indicates this type is an enum. `enumValues` is a valid field."},INPUT_OBJECT:{value:sn.INPUT_OBJECT,description:"Indicates this type is an input object. `inputFields` is a valid field."},LIST:{value:sn.LIST,description:"Indicates this type is a list. `ofType` is a valid field."},NON_NULL:{value:sn.NON_NULL,description:"Indicates this type is a non-null. `ofType` is a valid field."}}});Rt.__TypeKind=OE;var U9={name:"__schema",type:new xe.GraphQLNonNull(EE),description:"Access the current type schema of this server.",args:[],resolve:function(t,r,n,a){var o=a.schema;return o},isDeprecated:!1,deprecationReason:void 0,extensions:void 0,astNode:void 0};Rt.SchemaMetaFieldDef=U9;var G9={name:"__type",type:Ni,description:"Request the type information of a single type.",args:[{name:"name",description:void 0,type:new xe.GraphQLNonNull(Qt.GraphQLString),defaultValue:void 0,deprecationReason:void 0,extensions:void 0,astNode:void 0}],resolve:function(t,r,n,a){var o=r.name,s=a.schema;return s.getType(o)},isDeprecated:!1,deprecationReason:void 0,extensions:void 0,astNode:void 0};Rt.TypeMetaFieldDef=G9;var Q9={name:"__typename",type:new xe.GraphQLNonNull(Qt.GraphQLString),description:"The name of the current Object type at runtime.",args:[],resolve:function(t,r,n,a){var o=a.parentType;return o.name},isDeprecated:!1,deprecationReason:void 0,extensions:void 0,astNode:void 0};Rt.TypeNameMetaFieldDef=Q9;var mN=Object.freeze([EE,_E,SE,Ni,DE,Rd,kE,OE]);Rt.introspectionTypes=mN;function K9(e){return mN.some(function(t){var r=t.name;return e.name===r})}});var Jn=U(qr=>{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});qr.isDirective=TN;qr.assertDirective=$9;qr.isSpecifiedDirective=e4;qr.specifiedDirectives=qr.GraphQLSpecifiedByDirective=qr.GraphQLDeprecatedDirective=qr.DEFAULT_DEPRECATION_REASON=qr.GraphQLSkipDirective=qr.GraphQLIncludeDirective=qr.GraphQLDirective=void 0;var H9=as(Bl()),z9=Da(),W9=as(Ot()),yN=as(sg()),CE=as(wi()),Y9=as(gd()),J9=as(Sa()),X9=as(zv()),na=Fl(),Dg=Ca(),kg=lt();function as(e){return e&&e.__esModule?e:{default:e}}function bN(e,t){for(var r=0;r{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Hl.isSchema=AN;Hl.assertSchema=l4;Hl.GraphQLSchema=void 0;var t4=cu(ql()),r4=cu(pE()),wE=cu(oi()),n4=Da(),AE=cu(Ot()),i4=cu(sg()),Og=cu(wi()),a4=cu(gd()),o4=cu(Sa()),u4=Yn(),CN=Jn(),ia=lt();function cu(e){return e&&e.__esModule?e:{default:e}}function wN(e,t){for(var r=0;r{"use strict";Object.defineProperty(Cg,"__esModule",{value:!0});Cg.validateSchema=RN;Cg.assertValidSchema=v4;var LN=NE(ql()),Fd=NE(oi()),Tn=NE(Ot()),c4=Be(),f4=Td(),d4=VT(),xN=Cd(),p4=us(),h4=Yn(),IN=Jn(),yr=lt();function NE(e){return e&&e.__esModule?e:{default:e}}function RN(e){if((0,p4.assertSchema)(e),e.__validationErrors)return e.__validationErrors;var t=new g4(e);m4(t),y4(t),b4(t);var r=t.getErrors();return e.__validationErrors=r,r}function v4(e){var t=RN(e);if(t.length!==0)throw new Error(t.map(function(r){return r.message}).join(` + +`))}var g4=function(){function e(r){this._errors=[],this.schema=r}var t=e.prototype;return t.reportError=function(n,a){var o=Array.isArray(a)?a.filter(Boolean):a;this.addError(new c4.GraphQLError(n,o))},t.addError=function(n){this._errors.push(n)},t.getErrors=function(){return this._errors},e}();function m4(e){var t=e.schema,r=t.getQueryType();if(!r)e.reportError("Query root type must be provided.",t.astNode);else if(!(0,yr.isObjectType)(r)){var n;e.reportError("Query root type must be Object type, it cannot be ".concat((0,Tn.default)(r),"."),(n=LE(t,"query"))!==null&&n!==void 0?n:r.astNode)}var a=t.getMutationType();if(a&&!(0,yr.isObjectType)(a)){var o;e.reportError("Mutation root type must be Object type if provided, it cannot be "+"".concat((0,Tn.default)(a),"."),(o=LE(t,"mutation"))!==null&&o!==void 0?o:a.astNode)}var s=t.getSubscriptionType();if(s&&!(0,yr.isObjectType)(s)){var l;e.reportError("Subscription root type must be Object type if provided, it cannot be "+"".concat((0,Tn.default)(s),"."),(l=LE(t,"subscription"))!==null&&l!==void 0?l:s.astNode)}}function LE(e,t){for(var r=xE(e,function(o){return o.operationTypes}),n=0;n{"use strict";Object.defineProperty(jE,"__esModule",{value:!0});jE.typeFromAST=FE;var O4=qN(Ot()),C4=qN(un()),RE=Vt(),MN=lt();function qN(e){return e&&e.__esModule?e:{default:e}}function FE(e,t){var r;if(t.kind===RE.Kind.LIST_TYPE)return r=FE(e,t.type),r&&new MN.GraphQLList(r);if(t.kind===RE.Kind.NON_NULL_TYPE)return r=FE(e,t.type),r&&new MN.GraphQLNonNull(r);if(t.kind===RE.Kind.NAMED_TYPE)return e.getType(t.name.value);(0,C4.default)(0,"Unexpected type node: "+(0,O4.default)(t))}});var wg=U(Md=>{"use strict";Object.defineProperty(Md,"__esModule",{value:!0});Md.visitWithTypeInfo=I4;Md.TypeInfo=void 0;var w4=N4(ql()),fr=Vt(),A4=Il(),BN=eu(),dr=lt(),Wl=Yn(),VN=wa();function N4(e){return e&&e.__esModule?e:{default:e}}var L4=function(){function e(r,n,a){this._schema=r,this._typeStack=[],this._parentTypeStack=[],this._inputTypeStack=[],this._fieldDefStack=[],this._defaultValueStack=[],this._directive=null,this._argument=null,this._enumValue=null,this._getFieldDef=n!=null?n:x4,a&&((0,dr.isInputType)(a)&&this._inputTypeStack.push(a),(0,dr.isCompositeType)(a)&&this._parentTypeStack.push(a),(0,dr.isOutputType)(a)&&this._typeStack.push(a))}var t=e.prototype;return t.getType=function(){if(this._typeStack.length>0)return this._typeStack[this._typeStack.length-1]},t.getParentType=function(){if(this._parentTypeStack.length>0)return this._parentTypeStack[this._parentTypeStack.length-1]},t.getInputType=function(){if(this._inputTypeStack.length>0)return this._inputTypeStack[this._inputTypeStack.length-1]},t.getParentInputType=function(){if(this._inputTypeStack.length>1)return this._inputTypeStack[this._inputTypeStack.length-2]},t.getFieldDef=function(){if(this._fieldDefStack.length>0)return this._fieldDefStack[this._fieldDefStack.length-1]},t.getDefaultValue=function(){if(this._defaultValueStack.length>0)return this._defaultValueStack[this._defaultValueStack.length-1]},t.getDirective=function(){return this._directive},t.getArgument=function(){return this._argument},t.getEnumValue=function(){return this._enumValue},t.enter=function(n){var a=this._schema;switch(n.kind){case fr.Kind.SELECTION_SET:{var o=(0,dr.getNamedType)(this.getType());this._parentTypeStack.push((0,dr.isCompositeType)(o)?o:void 0);break}case fr.Kind.FIELD:{var s=this.getParentType(),l,d;s&&(l=this._getFieldDef(a,s,n),l&&(d=l.type)),this._fieldDefStack.push(l),this._typeStack.push((0,dr.isOutputType)(d)?d:void 0);break}case fr.Kind.DIRECTIVE:this._directive=a.getDirective(n.name.value);break;case fr.Kind.OPERATION_DEFINITION:{var h;switch(n.operation){case"query":h=a.getQueryType();break;case"mutation":h=a.getMutationType();break;case"subscription":h=a.getSubscriptionType();break}this._typeStack.push((0,dr.isObjectType)(h)?h:void 0);break}case fr.Kind.INLINE_FRAGMENT:case fr.Kind.FRAGMENT_DEFINITION:{var v=n.typeCondition,b=v?(0,VN.typeFromAST)(a,v):(0,dr.getNamedType)(this.getType());this._typeStack.push((0,dr.isOutputType)(b)?b:void 0);break}case fr.Kind.VARIABLE_DEFINITION:{var T=(0,VN.typeFromAST)(a,n.type);this._inputTypeStack.push((0,dr.isInputType)(T)?T:void 0);break}case fr.Kind.ARGUMENT:{var A,L,S,y=(A=this.getDirective())!==null&&A!==void 0?A:this.getFieldDef();y&&(L=(0,w4.default)(y.args,function(M){return M.name===n.name.value}),L&&(S=L.type)),this._argument=L,this._defaultValueStack.push(L?L.defaultValue:void 0),this._inputTypeStack.push((0,dr.isInputType)(S)?S:void 0);break}case fr.Kind.LIST:{var _=(0,dr.getNullableType)(this.getInputType()),m=(0,dr.isListType)(_)?_.ofType:_;this._defaultValueStack.push(void 0),this._inputTypeStack.push((0,dr.isInputType)(m)?m:void 0);break}case fr.Kind.OBJECT_FIELD:{var k=(0,dr.getNamedType)(this.getInputType()),w,C;(0,dr.isInputObjectType)(k)&&(C=k.getFields()[n.name.value],C&&(w=C.type)),this._defaultValueStack.push(C?C.defaultValue:void 0),this._inputTypeStack.push((0,dr.isInputType)(w)?w:void 0);break}case fr.Kind.ENUM:{var D=(0,dr.getNamedType)(this.getInputType()),R;(0,dr.isEnumType)(D)&&(R=D.getValue(n.value)),this._enumValue=R;break}}},t.leave=function(n){switch(n.kind){case fr.Kind.SELECTION_SET:this._parentTypeStack.pop();break;case fr.Kind.FIELD:this._fieldDefStack.pop(),this._typeStack.pop();break;case fr.Kind.DIRECTIVE:this._directive=null;break;case fr.Kind.OPERATION_DEFINITION:case fr.Kind.INLINE_FRAGMENT:case fr.Kind.FRAGMENT_DEFINITION:this._typeStack.pop();break;case fr.Kind.VARIABLE_DEFINITION:this._inputTypeStack.pop();break;case fr.Kind.ARGUMENT:this._argument=null,this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case fr.Kind.LIST:case fr.Kind.OBJECT_FIELD:this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case fr.Kind.ENUM:this._enumValue=null;break}},e}();Md.TypeInfo=L4;function x4(e,t,r){var n=r.name.value;if(n===Wl.SchemaMetaFieldDef.name&&e.getQueryType()===t)return Wl.SchemaMetaFieldDef;if(n===Wl.TypeMetaFieldDef.name&&e.getQueryType()===t)return Wl.TypeMetaFieldDef;if(n===Wl.TypeNameMetaFieldDef.name&&(0,dr.isCompositeType)(t))return Wl.TypeNameMetaFieldDef;if((0,dr.isObjectType)(t)||(0,dr.isInterfaceType)(t))return t.getFields()[n]}function I4(e,t){return{enter:function(n){e.enter(n);var a=(0,BN.getVisitFn)(t,n.kind,!1);if(a){var o=a.apply(t,arguments);return o!==void 0&&(e.leave(n),(0,A4.isNode)(o)&&e.enter(o)),o}},leave:function(n){var a=(0,BN.getVisitFn)(t,n.kind,!0),o;return a&&(o=a.apply(t,arguments)),e.leave(n),o}}}});var ls=U(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.isDefinitionNode=R4;oa.isExecutableDefinitionNode=UN;oa.isSelectionNode=F4;oa.isValueNode=j4;oa.isTypeNode=P4;oa.isTypeSystemDefinitionNode=GN;oa.isTypeDefinitionNode=QN;oa.isTypeSystemExtensionNode=KN;oa.isTypeExtensionNode=HN;var Tt=Vt();function R4(e){return UN(e)||GN(e)||KN(e)}function UN(e){return e.kind===Tt.Kind.OPERATION_DEFINITION||e.kind===Tt.Kind.FRAGMENT_DEFINITION}function F4(e){return e.kind===Tt.Kind.FIELD||e.kind===Tt.Kind.FRAGMENT_SPREAD||e.kind===Tt.Kind.INLINE_FRAGMENT}function j4(e){return e.kind===Tt.Kind.VARIABLE||e.kind===Tt.Kind.INT||e.kind===Tt.Kind.FLOAT||e.kind===Tt.Kind.STRING||e.kind===Tt.Kind.BOOLEAN||e.kind===Tt.Kind.NULL||e.kind===Tt.Kind.ENUM||e.kind===Tt.Kind.LIST||e.kind===Tt.Kind.OBJECT}function P4(e){return e.kind===Tt.Kind.NAMED_TYPE||e.kind===Tt.Kind.LIST_TYPE||e.kind===Tt.Kind.NON_NULL_TYPE}function GN(e){return e.kind===Tt.Kind.SCHEMA_DEFINITION||QN(e)||e.kind===Tt.Kind.DIRECTIVE_DEFINITION}function QN(e){return e.kind===Tt.Kind.SCALAR_TYPE_DEFINITION||e.kind===Tt.Kind.OBJECT_TYPE_DEFINITION||e.kind===Tt.Kind.INTERFACE_TYPE_DEFINITION||e.kind===Tt.Kind.UNION_TYPE_DEFINITION||e.kind===Tt.Kind.ENUM_TYPE_DEFINITION||e.kind===Tt.Kind.INPUT_OBJECT_TYPE_DEFINITION}function KN(e){return e.kind===Tt.Kind.SCHEMA_EXTENSION||HN(e)}function HN(e){return e.kind===Tt.Kind.SCALAR_TYPE_EXTENSION||e.kind===Tt.Kind.OBJECT_TYPE_EXTENSION||e.kind===Tt.Kind.INTERFACE_TYPE_EXTENSION||e.kind===Tt.Kind.UNION_TYPE_EXTENSION||e.kind===Tt.Kind.ENUM_TYPE_EXTENSION||e.kind===Tt.Kind.INPUT_OBJECT_TYPE_EXTENSION}});var ME=U(PE=>{"use strict";Object.defineProperty(PE,"__esModule",{value:!0});PE.ExecutableDefinitionsRule=B4;var M4=Be(),zN=Vt(),q4=ls();function B4(e){return{Document:function(r){for(var n=0,a=r.definitions;n{"use strict";Object.defineProperty(qE,"__esModule",{value:!0});qE.UniqueOperationNamesRule=U4;var V4=Be();function U4(e){var t=Object.create(null);return{OperationDefinition:function(n){var a=n.name;return a&&(t[a.value]?e.reportError(new V4.GraphQLError('There can be only one operation named "'.concat(a.value,'".'),[t[a.value],a])):t[a.value]=a),!1},FragmentDefinition:function(){return!1}}}});var UE=U(VE=>{"use strict";Object.defineProperty(VE,"__esModule",{value:!0});VE.LoneAnonymousOperationRule=K4;var G4=Be(),Q4=Vt();function K4(e){var t=0;return{Document:function(n){t=n.definitions.filter(function(a){return a.kind===Q4.Kind.OPERATION_DEFINITION}).length},OperationDefinition:function(n){!n.name&&t>1&&e.reportError(new G4.GraphQLError("This anonymous operation must be the only defined operation.",n))}}}});var QE=U(GE=>{"use strict";Object.defineProperty(GE,"__esModule",{value:!0});GE.SingleFieldSubscriptionsRule=z4;var H4=Be();function z4(e){return{OperationDefinition:function(r){r.operation==="subscription"&&r.selectionSet.selections.length!==1&&e.reportError(new H4.GraphQLError(r.name?'Subscription "'.concat(r.name.value,'" must select only one top level field.'):"Anonymous Subscription must select only one top level field.",r.selectionSet.selections.slice(1)))}}}});var zE=U(HE=>{"use strict";Object.defineProperty(HE,"__esModule",{value:!0});HE.KnownTypeNamesRule=$4;var W4=WN(ru()),Y4=WN(nu()),J4=Be(),KE=ls(),X4=Ca(),Z4=Yn();function WN(e){return e&&e.__esModule?e:{default:e}}function $4(e){for(var t=e.getSchema(),r=t?t.getTypeMap():Object.create(null),n=Object.create(null),a=0,o=e.getDocument().definitions;a{"use strict";Object.defineProperty(WE,"__esModule",{value:!0});WE.FragmentsOnCompositeTypesRule=rK;var JN=Be(),XN=Wn(),ZN=lt(),$N=wa();function rK(e){return{InlineFragment:function(r){var n=r.typeCondition;if(n){var a=(0,$N.typeFromAST)(e.getSchema(),n);if(a&&!(0,ZN.isCompositeType)(a)){var o=(0,XN.print)(n);e.reportError(new JN.GraphQLError('Fragment cannot condition on non composite type "'.concat(o,'".'),n))}}},FragmentDefinition:function(r){var n=(0,$N.typeFromAST)(e.getSchema(),r.typeCondition);if(n&&!(0,ZN.isCompositeType)(n)){var a=(0,XN.print)(r.typeCondition);e.reportError(new JN.GraphQLError('Fragment "'.concat(r.name.value,'" cannot condition on non composite type "').concat(a,'".'),r.typeCondition))}}}}});var XE=U(JE=>{"use strict";Object.defineProperty(JE,"__esModule",{value:!0});JE.VariablesAreInputTypesRule=uK;var nK=Be(),iK=Wn(),aK=lt(),oK=wa();function uK(e){return{VariableDefinition:function(r){var n=(0,oK.typeFromAST)(e.getSchema(),r.type);if(n&&!(0,aK.isInputType)(n)){var a=r.variable.name.value,o=(0,iK.print)(r.type);e.reportError(new nK.GraphQLError('Variable "$'.concat(a,'" cannot be non-input type "').concat(o,'".'),r.type))}}}}});var $E=U(ZE=>{"use strict";Object.defineProperty(ZE,"__esModule",{value:!0});ZE.ScalarLeafsRule=lK;var eL=sK(Ot()),tL=Be(),rL=lt();function sK(e){return e&&e.__esModule?e:{default:e}}function lK(e){return{Field:function(r){var n=e.getType(),a=r.selectionSet;if(n){if((0,rL.isLeafType)((0,rL.getNamedType)(n))){if(a){var o=r.name.value,s=(0,eL.default)(n);e.reportError(new tL.GraphQLError('Field "'.concat(o,'" must not have a selection since type "').concat(s,'" has no subfields.'),a))}}else if(!a){var l=r.name.value,d=(0,eL.default)(n);e.reportError(new tL.GraphQLError('Field "'.concat(l,'" of type "').concat(d,'" must have a selection of subfields. Did you mean "').concat(l,' { ... }"?'),r))}}}}}});var t_=U(e_=>{"use strict";Object.defineProperty(e_,"__esModule",{value:!0});e_.FieldsOnCorrectTypeRule=hK;var cK=Ag(pE()),nL=Ag(ru()),fK=Ag(nu()),dK=Ag(_d()),pK=Be(),qd=lt();function Ag(e){return e&&e.__esModule?e:{default:e}}function hK(e){return{Field:function(r){var n=e.getParentType();if(n){var a=e.getFieldDef();if(!a){var o=e.getSchema(),s=r.name.value,l=(0,nL.default)("to use an inline fragment on",vK(o,n,s));l===""&&(l=(0,nL.default)(gK(n,s))),e.reportError(new pK.GraphQLError('Cannot query field "'.concat(s,'" on type "').concat(n.name,'".')+l,r))}}}}}function vK(e,t,r){if(!(0,qd.isAbstractType)(t))return[];for(var n=new Set,a=Object.create(null),o=0,s=e.getPossibleTypes(t);o{"use strict";Object.defineProperty(r_,"__esModule",{value:!0});r_.UniqueFragmentNamesRule=yK;var mK=Be();function yK(e){var t=Object.create(null);return{OperationDefinition:function(){return!1},FragmentDefinition:function(n){var a=n.name.value;return t[a]?e.reportError(new mK.GraphQLError('There can be only one fragment named "'.concat(a,'".'),[t[a],n.name])):t[a]=n.name,!1}}}});var a_=U(i_=>{"use strict";Object.defineProperty(i_,"__esModule",{value:!0});i_.KnownFragmentNamesRule=TK;var bK=Be();function TK(e){return{FragmentSpread:function(r){var n=r.name.value,a=e.getFragment(n);a||e.reportError(new bK.GraphQLError('Unknown fragment "'.concat(n,'".'),r.name))}}}});var u_=U(o_=>{"use strict";Object.defineProperty(o_,"__esModule",{value:!0});o_.NoUnusedFragmentsRule=_K;var EK=Be();function _K(e){var t=[],r=[];return{OperationDefinition:function(a){return t.push(a),!1},FragmentDefinition:function(a){return r.push(a),!1},Document:{leave:function(){for(var a=Object.create(null),o=0;o{"use strict";Object.defineProperty(l_,"__esModule",{value:!0});l_.PossibleFragmentSpreadsRule=kK;var Ng=DK(Ot()),iL=Be(),s_=lt(),SK=wa(),aL=Cd();function DK(e){return e&&e.__esModule?e:{default:e}}function kK(e){return{InlineFragment:function(r){var n=e.getType(),a=e.getParentType();if((0,s_.isCompositeType)(n)&&(0,s_.isCompositeType)(a)&&!(0,aL.doTypesOverlap)(e.getSchema(),n,a)){var o=(0,Ng.default)(a),s=(0,Ng.default)(n);e.reportError(new iL.GraphQLError('Fragment cannot be spread here as objects of type "'.concat(o,'" can never be of type "').concat(s,'".'),r))}},FragmentSpread:function(r){var n=r.name.value,a=OK(e,n),o=e.getParentType();if(a&&o&&!(0,aL.doTypesOverlap)(e.getSchema(),a,o)){var s=(0,Ng.default)(o),l=(0,Ng.default)(a);e.reportError(new iL.GraphQLError('Fragment "'.concat(n,'" cannot be spread here as objects of type "').concat(s,'" can never be of type "').concat(l,'".'),r))}}}}function OK(e,t){var r=e.getFragment(t);if(r){var n=(0,SK.typeFromAST)(e.getSchema(),r.typeCondition);if((0,s_.isCompositeType)(n))return n}}});var d_=U(f_=>{"use strict";Object.defineProperty(f_,"__esModule",{value:!0});f_.NoFragmentCyclesRule=wK;var CK=Be();function wK(e){var t=Object.create(null),r=[],n=Object.create(null);return{OperationDefinition:function(){return!1},FragmentDefinition:function(s){return a(s),!1}};function a(o){if(!t[o.name.value]){var s=o.name.value;t[s]=!0;var l=e.getFragmentSpreads(o.selectionSet);if(l.length!==0){n[s]=r.length;for(var d=0;d{"use strict";Object.defineProperty(p_,"__esModule",{value:!0});p_.UniqueVariableNamesRule=NK;var AK=Be();function NK(e){var t=Object.create(null);return{OperationDefinition:function(){t=Object.create(null)},VariableDefinition:function(n){var a=n.variable.name.value;t[a]?e.reportError(new AK.GraphQLError('There can be only one variable named "$'.concat(a,'".'),[t[a],n.variable.name])):t[a]=n.variable.name}}}});var g_=U(v_=>{"use strict";Object.defineProperty(v_,"__esModule",{value:!0});v_.NoUndefinedVariablesRule=xK;var LK=Be();function xK(e){var t=Object.create(null);return{OperationDefinition:{enter:function(){t=Object.create(null)},leave:function(n){for(var a=e.getRecursiveVariableUsages(n),o=0;o{"use strict";Object.defineProperty(m_,"__esModule",{value:!0});m_.NoUnusedVariablesRule=RK;var IK=Be();function RK(e){var t=[];return{OperationDefinition:{enter:function(){t=[]},leave:function(n){for(var a=Object.create(null),o=e.getRecursiveVariableUsages(n),s=0;s{"use strict";Object.defineProperty(b_,"__esModule",{value:!0});b_.KnownDirectivesRule=PK;var FK=sL(Ot()),oL=sL(un()),uL=Be(),Zt=Vt(),Br=Fl(),jK=Jn();function sL(e){return e&&e.__esModule?e:{default:e}}function PK(e){for(var t=Object.create(null),r=e.getSchema(),n=r?r.getDirectives():jK.specifiedDirectives,a=0;a{"use strict";Object.defineProperty(__,"__esModule",{value:!0});__.UniqueDirectivesPerLocationRule=UK;var BK=Be(),E_=Vt(),lL=ls(),VK=Jn();function UK(e){for(var t=Object.create(null),r=e.getSchema(),n=r?r.getDirectives():VK.specifiedDirectives,a=0;a{"use strict";Object.defineProperty(Lg,"__esModule",{value:!0});Lg.KnownArgumentNamesRule=HK;Lg.KnownArgumentNamesOnDirectivesRule=gL;var cL=pL(ru()),fL=pL(nu()),dL=Be(),GK=Vt(),QK=Jn();function pL(e){return e&&e.__esModule?e:{default:e}}function hL(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function vL(e){for(var t=1;t{"use strict";Object.defineProperty(k_,"__esModule",{value:!0});k_.UniqueArgumentNamesRule=WK;var zK=Be();function WK(e){var t=Object.create(null);return{Field:function(){t=Object.create(null)},Directive:function(){t=Object.create(null)},Argument:function(n){var a=n.name.value;return t[a]?e.reportError(new zK.GraphQLError('There can be only one argument named "'.concat(a,'".'),[t[a],n.name])):t[a]=n.name,!1}}}});var w_=U(C_=>{"use strict";Object.defineProperty(C_,"__esModule",{value:!0});C_.ValuesOfCorrectTypeRule=$K;var YK=Vd(oi()),JK=Vd(tu()),Bd=Vd(Ot()),XK=Vd(ru()),ZK=Vd(nu()),cs=Be(),xg=Wn(),Aa=lt();function Vd(e){return e&&e.__esModule?e:{default:e}}function $K(e){return{ListValue:function(r){var n=(0,Aa.getNullableType)(e.getParentInputType());if(!(0,Aa.isListType)(n))return fs(e,r),!1},ObjectValue:function(r){var n=(0,Aa.getNamedType)(e.getInputType());if(!(0,Aa.isInputObjectType)(n))return fs(e,r),!1;for(var a=(0,JK.default)(r.fields,function(v){return v.name.value}),o=0,s=(0,YK.default)(n.getFields());o{"use strict";Object.defineProperty(Rg,"__esModule",{value:!0});Rg.ProvidedRequiredArgumentsRule=n8;Rg.ProvidedRequiredArgumentsOnDirectivesRule=SL;var mL=TL(Ot()),Ig=TL(tu()),yL=Be(),bL=Vt(),e8=Wn(),t8=Jn(),A_=lt();function TL(e){return e&&e.__esModule?e:{default:e}}function EL(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function _L(e){for(var t=1;t{"use strict";Object.defineProperty(L_,"__esModule",{value:!0});L_.VariablesInAllowedPositionRule=l8;var DL=s8(Ot()),a8=Be(),o8=Vt(),kL=lt(),u8=wa(),OL=Cd();function s8(e){return e&&e.__esModule?e:{default:e}}function l8(e){var t=Object.create(null);return{OperationDefinition:{enter:function(){t=Object.create(null)},leave:function(n){for(var a=e.getRecursiveVariableUsages(n),o=0;o{"use strict";Object.defineProperty(M_,"__esModule",{value:!0});M_.OverlappingFieldsCanBeMergedRule=h8;var f8=R_(ql()),d8=R_(Bl()),CL=R_(Ot()),p8=Be(),I_=Vt(),wL=Wn(),Xn=lt(),AL=wa();function R_(e){return e&&e.__esModule?e:{default:e}}function NL(e){return Array.isArray(e)?e.map(function(t){var r=t[0],n=t[1];return'subfields "'.concat(r,'" conflict because ')+NL(n)}).join(" and "):e}function h8(e){var t=new E8,r=new Map;return{SelectionSet:function(a){for(var o=v8(e,r,t,e.getParentType(),a),s=0;s1)for(var v=0;v0)return[[t,e.map(function(a){var o=a[0];return o})],e.reduce(function(a,o){var s=o[1];return a.concat(s)},[r]),e.reduce(function(a,o){var s=o[2];return a.concat(s)},[n])]}var E8=function(){function e(){this._data=Object.create(null)}var t=e.prototype;return t.has=function(n,a,o){var s=this._data[n],l=s&&s[a];return l===void 0?!1:o===!1?l===!1:!0},t.add=function(n,a,o){this._pairSetAdd(n,a,o),this._pairSetAdd(a,n,o)},t._pairSetAdd=function(n,a,o){var s=this._data[n];s||(s=Object.create(null),this._data[n]=s),s[a]=o},e}()});var V_=U(B_=>{"use strict";Object.defineProperty(B_,"__esModule",{value:!0});B_.UniqueInputFieldNamesRule=S8;var _8=Be();function S8(e){var t=[],r=Object.create(null);return{ObjectValue:{enter:function(){t.push(r),r=Object.create(null)},leave:function(){r=t.pop()}},ObjectField:function(a){var o=a.name.value;r[o]?e.reportError(new _8.GraphQLError('There can be only one input field named "'.concat(o,'".'),[r[o],a.name])):r[o]=a.name}}}});var G_=U(U_=>{"use strict";Object.defineProperty(U_,"__esModule",{value:!0});U_.LoneSchemaDefinitionRule=D8;var IL=Be();function D8(e){var t,r,n,a=e.getSchema(),o=(t=(r=(n=a==null?void 0:a.astNode)!==null&&n!==void 0?n:a==null?void 0:a.getQueryType())!==null&&r!==void 0?r:a==null?void 0:a.getMutationType())!==null&&t!==void 0?t:a==null?void 0:a.getSubscriptionType(),s=0;return{SchemaDefinition:function(d){if(o){e.reportError(new IL.GraphQLError("Cannot define a new schema within a schema extension.",d));return}s>0&&e.reportError(new IL.GraphQLError("Must provide only one schema definition.",d)),++s}}}});var K_=U(Q_=>{"use strict";Object.defineProperty(Q_,"__esModule",{value:!0});Q_.UniqueOperationTypesRule=k8;var RL=Be();function k8(e){var t=e.getSchema(),r=Object.create(null),n=t?{query:t.getQueryType(),mutation:t.getMutationType(),subscription:t.getSubscriptionType()}:{};return{SchemaDefinition:a,SchemaExtension:a};function a(o){for(var s,l=(s=o.operationTypes)!==null&&s!==void 0?s:[],d=0;d{"use strict";Object.defineProperty(H_,"__esModule",{value:!0});H_.UniqueTypeNamesRule=O8;var FL=Be();function O8(e){var t=Object.create(null),r=e.getSchema();return{ScalarTypeDefinition:n,ObjectTypeDefinition:n,InterfaceTypeDefinition:n,UnionTypeDefinition:n,EnumTypeDefinition:n,InputObjectTypeDefinition:n};function n(a){var o=a.name.value;if(r!=null&&r.getType(o)){e.reportError(new FL.GraphQLError('Type "'.concat(o,'" already exists in the schema. It cannot also be defined in this type definition.'),a.name));return}return t[o]?e.reportError(new FL.GraphQLError('There can be only one type named "'.concat(o,'".'),[t[o],a.name])):t[o]=a.name,!1}}});var Y_=U(W_=>{"use strict";Object.defineProperty(W_,"__esModule",{value:!0});W_.UniqueEnumValueNamesRule=w8;var jL=Be(),C8=lt();function w8(e){var t=e.getSchema(),r=t?t.getTypeMap():Object.create(null),n=Object.create(null);return{EnumTypeDefinition:a,EnumTypeExtension:a};function a(o){var s,l=o.name.value;n[l]||(n[l]=Object.create(null));for(var d=(s=o.values)!==null&&s!==void 0?s:[],h=n[l],v=0;v{"use strict";Object.defineProperty(X_,"__esModule",{value:!0});X_.UniqueFieldDefinitionNamesRule=A8;var PL=Be(),J_=lt();function A8(e){var t=e.getSchema(),r=t?t.getTypeMap():Object.create(null),n=Object.create(null);return{InputObjectTypeDefinition:a,InputObjectTypeExtension:a,InterfaceTypeDefinition:a,InterfaceTypeExtension:a,ObjectTypeDefinition:a,ObjectTypeExtension:a};function a(o){var s,l=o.name.value;n[l]||(n[l]=Object.create(null));for(var d=(s=o.fields)!==null&&s!==void 0?s:[],h=n[l],v=0;v{"use strict";Object.defineProperty($_,"__esModule",{value:!0});$_.UniqueDirectiveNamesRule=L8;var ML=Be();function L8(e){var t=Object.create(null),r=e.getSchema();return{DirectiveDefinition:function(a){var o=a.name.value;if(r!=null&&r.getDirective(o)){e.reportError(new ML.GraphQLError('Directive "@'.concat(o,'" already exists in the schema. It cannot be redefined.'),a.name));return}return t[o]?e.reportError(new ML.GraphQLError('There can be only one directive named "@'.concat(o,'".'),[t[o],a.name])):t[o]=a.name,!1}}}});var rS=U(tS=>{"use strict";Object.defineProperty(tS,"__esModule",{value:!0});tS.PossibleTypeExtensionsRule=F8;var qL=Mg(Ot()),BL=Mg(un()),x8=Mg(ru()),I8=Mg(nu()),VL=Be(),rr=Vt(),R8=ls(),Yl=lt(),fu;function Mg(e){return e&&e.__esModule?e:{default:e}}function Jl(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function F8(e){for(var t=e.getSchema(),r=Object.create(null),n=0,a=e.getDocument().definitions;n{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});Xl.specifiedSDLRules=Xl.specifiedRules=void 0;var q8=ME(),B8=BE(),V8=UE(),U8=QE(),UL=zE(),G8=YE(),Q8=XE(),K8=$E(),H8=t_(),z8=n_(),W8=a_(),Y8=u_(),J8=c_(),X8=d_(),Z8=h_(),$8=g_(),e6=y_(),GL=T_(),QL=S_(),KL=D_(),HL=O_(),t6=w_(),zL=N_(),r6=x_(),n6=q_(),WL=V_(),i6=G_(),a6=K_(),o6=z_(),u6=Y_(),s6=Z_(),l6=eS(),c6=rS(),f6=Object.freeze([q8.ExecutableDefinitionsRule,B8.UniqueOperationNamesRule,V8.LoneAnonymousOperationRule,U8.SingleFieldSubscriptionsRule,UL.KnownTypeNamesRule,G8.FragmentsOnCompositeTypesRule,Q8.VariablesAreInputTypesRule,K8.ScalarLeafsRule,H8.FieldsOnCorrectTypeRule,z8.UniqueFragmentNamesRule,W8.KnownFragmentNamesRule,Y8.NoUnusedFragmentsRule,J8.PossibleFragmentSpreadsRule,X8.NoFragmentCyclesRule,Z8.UniqueVariableNamesRule,$8.NoUndefinedVariablesRule,e6.NoUnusedVariablesRule,GL.KnownDirectivesRule,QL.UniqueDirectivesPerLocationRule,KL.KnownArgumentNamesRule,HL.UniqueArgumentNamesRule,t6.ValuesOfCorrectTypeRule,zL.ProvidedRequiredArgumentsRule,r6.VariablesInAllowedPositionRule,n6.OverlappingFieldsCanBeMergedRule,WL.UniqueInputFieldNamesRule]);Xl.specifiedRules=f6;var d6=Object.freeze([i6.LoneSchemaDefinitionRule,a6.UniqueOperationTypesRule,o6.UniqueTypeNamesRule,u6.UniqueEnumValueNamesRule,s6.UniqueFieldDefinitionNamesRule,l6.UniqueDirectiveNamesRule,UL.KnownTypeNamesRule,GL.KnownDirectivesRule,QL.UniqueDirectivesPerLocationRule,c6.PossibleTypeExtensionsRule,KL.KnownArgumentNamesOnDirectivesRule,HL.UniqueArgumentNamesRule,WL.UniqueInputFieldNamesRule,zL.ProvidedRequiredArgumentsOnDirectivesRule]);Xl.specifiedSDLRules=d6});var aS=U(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.ValidationContext=du.SDLValidationContext=du.ASTValidationContext=void 0;var YL=Vt(),p6=eu(),JL=wg();function XL(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var iS=function(){function e(r,n){this._ast=r,this._fragments=void 0,this._fragmentSpreads=new Map,this._recursivelyReferencedFragments=new Map,this._onError=n}var t=e.prototype;return t.reportError=function(n){this._onError(n)},t.getDocument=function(){return this._ast},t.getFragment=function(n){var a=this._fragments;return a||(this._fragments=a=this.getDocument().definitions.reduce(function(o,s){return s.kind===YL.Kind.FRAGMENT_DEFINITION&&(o[s.name.value]=s),o},Object.create(null))),a[n]},t.getFragmentSpreads=function(n){var a=this._fragmentSpreads.get(n);if(!a){a=[];for(var o=[n];o.length!==0;)for(var s=o.pop(),l=0,d=s.selections;l{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.validate=T6;Zl.validateSDL=oS;Zl.assertValidSDL=E6;Zl.assertValidSDLExtension=_6;var g6=b6(wi()),m6=Be(),qg=eu(),y6=Pd(),ZL=wg(),$L=nS(),ex=aS();function b6(e){return e&&e.__esModule?e:{default:e}}function T6(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:$L.specifiedRules,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:new ZL.TypeInfo(e),a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{maxErrors:void 0};t||(0,g6.default)(0,"Must provide document."),(0,y6.assertValidSchema)(e);var o=Object.freeze({}),s=[],l=new ex.ValidationContext(e,t,n,function(h){if(a.maxErrors!=null&&s.length>=a.maxErrors)throw s.push(new m6.GraphQLError("Too many validation errors, error limit reached. Validation aborted.")),o;s.push(h)}),d=(0,qg.visitInParallel)(r.map(function(h){return h(l)}));try{(0,qg.visit)(t,(0,ZL.visitWithTypeInfo)(n,d))}catch(h){if(h!==o)throw h}return s}function oS(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:$L.specifiedSDLRules,n=[],a=new ex.SDLValidationContext(e,t,function(s){n.push(s)}),o=r.map(function(s){return s(a)});return(0,qg.visit)(e,(0,qg.visitInParallel)(o)),n}function E6(e){var t=oS(e);if(t.length!==0)throw new Error(t.map(function(r){return r.message}).join(` + +`))}function _6(e,t){var r=oS(e,t);if(r.length!==0)throw new Error(r.map(function(n){return n.message}).join(` + +`))}});var tx=U(uS=>{"use strict";Object.defineProperty(uS,"__esModule",{value:!0});uS.default=S6;function S6(e){var t;return function(n,a,o){t||(t=new WeakMap);var s=t.get(n),l;if(s){if(l=s.get(a),l){var d=l.get(o);if(d!==void 0)return d}}else s=new WeakMap,t.set(n,s);l||(l=new WeakMap,s.set(a,l));var h=e(n,a,o);return l.set(o,h),h}}});var rx=U(sS=>{"use strict";Object.defineProperty(sS,"__esModule",{value:!0});sS.default=O6;var D6=k6(Pv());function k6(e){return e&&e.__esModule?e:{default:e}}function O6(e,t,r){return e.reduce(function(n,a){return(0,D6.default)(n)?n.then(function(o){return t(o,a)}):t(n,a)},r)}});var nx=U(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});lS.default=C6;function C6(e){var t=Object.keys(e),r=t.map(function(n){return e[n]});return Promise.all(r).then(function(n){return n.reduce(function(a,o,s){return a[t[s]]=o,a},Object.create(null))})}});var Ud=U(Bg=>{"use strict";Object.defineProperty(Bg,"__esModule",{value:!0});Bg.addPath=w6;Bg.pathToArray=A6;function w6(e,t,r){return{prev:e,key:t,typename:r}}function A6(e){for(var t=[],r=e;r;)t.push(r.key),r=r.prev;return t.reverse()}});var Ug=U(cS=>{"use strict";Object.defineProperty(cS,"__esModule",{value:!0});cS.getOperationRootType=N6;var Vg=Be();function N6(e,t){if(t.operation==="query"){var r=e.getQueryType();if(!r)throw new Vg.GraphQLError("Schema does not define the required query root type.",t);return r}if(t.operation==="mutation"){var n=e.getMutationType();if(!n)throw new Vg.GraphQLError("Schema is not configured for mutations.",t);return n}if(t.operation==="subscription"){var a=e.getSubscriptionType();if(!a)throw new Vg.GraphQLError("Schema is not configured for subscriptions.",t);return a}throw new Vg.GraphQLError("Can only have query, mutation and subscription operations.",t)}});var dS=U(fS=>{"use strict";Object.defineProperty(fS,"__esModule",{value:!0});fS.default=L6;function L6(e){return e.map(function(t){return typeof t=="number"?"["+t.toString()+"]":"."+t}).join("")}});var Qd=U(pS=>{"use strict";Object.defineProperty(pS,"__esModule",{value:!0});pS.valueFromAST=Gd;var x6=Gg(oi()),I6=Gg(tu()),R6=Gg(Ot()),F6=Gg(un()),ec=Vt(),ds=lt();function Gg(e){return e&&e.__esModule?e:{default:e}}function Gd(e,t,r){if(!!e){if(e.kind===ec.Kind.VARIABLE){var n=e.name.value;if(r==null||r[n]===void 0)return;var a=r[n];return a===null&&(0,ds.isNonNullType)(t)?void 0:a}if((0,ds.isNonNullType)(t))return e.kind===ec.Kind.NULL?void 0:Gd(e,t.ofType,r);if(e.kind===ec.Kind.NULL)return null;if((0,ds.isListType)(t)){var o=t.ofType;if(e.kind===ec.Kind.LIST){for(var s=[],l=0,d=e.values;l{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});hS.coerceInputValue=G6;var j6=pu(oi()),Qg=pu(Ot()),P6=pu(un()),M6=pu(ru()),q6=pu(Sa()),B6=pu(bg()),V6=pu(nu()),U6=pu(dS()),co=Ud(),ps=Be(),Kd=lt();function pu(e){return e&&e.__esModule?e:{default:e}}function G6(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Q6;return Hd(e,t,r)}function Q6(e,t,r){var n="Invalid value "+(0,Qg.default)(t);throw e.length>0&&(n+=' at "value'.concat((0,U6.default)(e),'"')),r.message=n+": "+r.message,r}function Hd(e,t,r,n){if((0,Kd.isNonNullType)(t)){if(e!=null)return Hd(e,t.ofType,r,n);r((0,co.pathToArray)(n),e,new ps.GraphQLError('Expected non-nullable type "'.concat((0,Qg.default)(t),'" not to be null.')));return}if(e==null)return null;if((0,Kd.isListType)(t)){var a=t.ofType,o=(0,B6.default)(e,function(m,k){var w=(0,co.addPath)(n,k,void 0);return Hd(m,a,r,w)});return o!=null?o:[Hd(e,a,r,n)]}if((0,Kd.isInputObjectType)(t)){if(!(0,q6.default)(e)){r((0,co.pathToArray)(n),e,new ps.GraphQLError('Expected type "'.concat(t.name,'" to be an object.')));return}for(var s={},l=t.getFields(),d=0,h=(0,j6.default)(l);d{"use strict";Object.defineProperty(zd,"__esModule",{value:!0});zd.getVariableValues=J6;zd.getArgumentValues=sx;zd.getDirectiveValues=Z6;var K6=Kg(ql()),H6=Kg(tu()),tc=Kg(Ot()),z6=Kg(dS()),fo=Be(),ax=Vt(),ox=Wn(),rc=lt(),W6=wa(),ux=Qd(),Y6=vS();function Kg(e){return e&&e.__esModule?e:{default:e}}function J6(e,t,r,n){var a=[],o=n==null?void 0:n.maxErrors;try{var s=X6(e,t,r,function(l){if(o!=null&&a.length>=o)throw new fo.GraphQLError("Too many errors processing variables, error limit reached. Execution aborted.");a.push(l)});if(a.length===0)return{coerced:s}}catch(l){a.push(l)}return{errors:a}}function X6(e,t,r,n){for(var a={},o=function(h){var v=t[h],b=v.variable.name.value,T=(0,W6.typeFromAST)(e,v.type);if(!(0,rc.isInputType)(T)){var A=(0,ox.print)(v.type);return n(new fo.GraphQLError('Variable "$'.concat(b,'" expected value of type "').concat(A,'" which cannot be used as an input type.'),v.type)),"continue"}if(!lx(r,b)){if(v.defaultValue)a[b]=(0,ux.valueFromAST)(v.defaultValue,T);else if((0,rc.isNonNullType)(T)){var L=(0,tc.default)(T);n(new fo.GraphQLError('Variable "$'.concat(b,'" of required type "').concat(L,'" was not provided.'),v))}return"continue"}var S=r[b];if(S===null&&(0,rc.isNonNullType)(T)){var y=(0,tc.default)(T);return n(new fo.GraphQLError('Variable "$'.concat(b,'" of non-null type "').concat(y,'" must not be null.'),v)),"continue"}a[b]=(0,Y6.coerceInputValue)(S,T,function(_,m,k){var w='Variable "$'.concat(b,'" got invalid value ')+(0,tc.default)(m);_.length>0&&(w+=' at "'.concat(b).concat((0,z6.default)(_),'"')),n(new fo.GraphQLError(w+"; "+k.message,v,void 0,void 0,void 0,k.originalError))})},s=0;s{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.execute=uH;si.executeSync=sH;si.assertValidExecutionArguments=px;si.buildExecutionContext=hx;si.collectFields=Jd;si.buildResolveInfo=yx;si.getFieldDef=Dx;si.defaultFieldResolver=si.defaultTypeResolver=void 0;var nc=ho(Ot()),$6=ho(tx()),eH=ho(un()),cx=ho(wi()),Li=ho(Pv()),gS=ho(Sa()),tH=ho(bg()),rH=ho(rx()),nH=ho(nx()),hs=Ud(),Na=Be(),Hg=Td(),Yd=Vt(),iH=Pd(),ic=Yn(),fx=Jn(),po=lt(),aH=wa(),oH=Ug(),zg=Wd();function ho(e){return e&&e.__esModule?e:{default:e}}function uH(e,t,r,n,a,o,s,l){return arguments.length===1?mS(e):mS({schema:e,document:t,rootValue:r,contextValue:n,variableValues:a,operationName:o,fieldResolver:s,typeResolver:l})}function sH(e){var t=mS(e);if((0,Li.default)(t))throw new Error("GraphQL execution failed to complete synchronously.");return t}function mS(e){var t=e.schema,r=e.document,n=e.rootValue,a=e.contextValue,o=e.variableValues,s=e.operationName,l=e.fieldResolver,d=e.typeResolver;px(t,r,o);var h=hx(t,r,n,a,o,s,l,d);if(Array.isArray(h))return{errors:h};var v=lH(h,h.operation,n);return dx(h,v)}function dx(e,t){return(0,Li.default)(t)?t.then(function(r){return dx(e,r)}):e.errors.length===0?{data:t}:{errors:e.errors,data:t}}function px(e,t,r){t||(0,cx.default)(0,"Must provide document."),(0,iH.assertValidSchema)(e),r==null||(0,gS.default)(r)||(0,cx.default)(0,"Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.")}function hx(e,t,r,n,a,o,s,l){for(var d,h,v,b=Object.create(null),T=0,A=t.definitions;T{"use strict";Object.defineProperty(Jg,"__esModule",{value:!0});Jg.graphql=SH;Jg.graphqlSync=DH;var mH=_H(Pv()),yH=Pl(),bH=$l(),TH=Pd(),EH=Zd();function _H(e){return e&&e.__esModule?e:{default:e}}function SH(e,t,r,n,a,o,s,l){var d=arguments;return new Promise(function(h){return h(d.length===1?Yg(e):Yg({schema:e,source:t,rootValue:r,contextValue:n,variableValues:a,operationName:o,fieldResolver:s,typeResolver:l}))})}function DH(e,t,r,n,a,o,s,l){var d=arguments.length===1?Yg(e):Yg({schema:e,source:t,rootValue:r,contextValue:n,variableValues:a,operationName:o,fieldResolver:s,typeResolver:l});if((0,mH.default)(d))throw new Error("GraphQL execution failed to complete synchronously.");return d}function Yg(e){var t=e.schema,r=e.source,n=e.rootValue,a=e.contextValue,o=e.variableValues,s=e.operationName,l=e.fieldResolver,d=e.typeResolver,h=(0,TH.validateSchema)(t);if(h.length>0)return{errors:h};var v;try{v=(0,yH.parse)(r)}catch(T){return{errors:[T]}}var b=(0,bH.validate)(t,v);return b.length>0?{errors:b}:(0,EH.execute)({schema:t,document:v,rootValue:n,contextValue:a,variableValues:o,operationName:s,fieldResolver:l,typeResolver:d})}});var Cx=U(me=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});Object.defineProperty(me,"isSchema",{enumerable:!0,get:function(){return TS.isSchema}});Object.defineProperty(me,"assertSchema",{enumerable:!0,get:function(){return TS.assertSchema}});Object.defineProperty(me,"GraphQLSchema",{enumerable:!0,get:function(){return TS.GraphQLSchema}});Object.defineProperty(me,"isType",{enumerable:!0,get:function(){return We.isType}});Object.defineProperty(me,"isScalarType",{enumerable:!0,get:function(){return We.isScalarType}});Object.defineProperty(me,"isObjectType",{enumerable:!0,get:function(){return We.isObjectType}});Object.defineProperty(me,"isInterfaceType",{enumerable:!0,get:function(){return We.isInterfaceType}});Object.defineProperty(me,"isUnionType",{enumerable:!0,get:function(){return We.isUnionType}});Object.defineProperty(me,"isEnumType",{enumerable:!0,get:function(){return We.isEnumType}});Object.defineProperty(me,"isInputObjectType",{enumerable:!0,get:function(){return We.isInputObjectType}});Object.defineProperty(me,"isListType",{enumerable:!0,get:function(){return We.isListType}});Object.defineProperty(me,"isNonNullType",{enumerable:!0,get:function(){return We.isNonNullType}});Object.defineProperty(me,"isInputType",{enumerable:!0,get:function(){return We.isInputType}});Object.defineProperty(me,"isOutputType",{enumerable:!0,get:function(){return We.isOutputType}});Object.defineProperty(me,"isLeafType",{enumerable:!0,get:function(){return We.isLeafType}});Object.defineProperty(me,"isCompositeType",{enumerable:!0,get:function(){return We.isCompositeType}});Object.defineProperty(me,"isAbstractType",{enumerable:!0,get:function(){return We.isAbstractType}});Object.defineProperty(me,"isWrappingType",{enumerable:!0,get:function(){return We.isWrappingType}});Object.defineProperty(me,"isNullableType",{enumerable:!0,get:function(){return We.isNullableType}});Object.defineProperty(me,"isNamedType",{enumerable:!0,get:function(){return We.isNamedType}});Object.defineProperty(me,"isRequiredArgument",{enumerable:!0,get:function(){return We.isRequiredArgument}});Object.defineProperty(me,"isRequiredInputField",{enumerable:!0,get:function(){return We.isRequiredInputField}});Object.defineProperty(me,"assertType",{enumerable:!0,get:function(){return We.assertType}});Object.defineProperty(me,"assertScalarType",{enumerable:!0,get:function(){return We.assertScalarType}});Object.defineProperty(me,"assertObjectType",{enumerable:!0,get:function(){return We.assertObjectType}});Object.defineProperty(me,"assertInterfaceType",{enumerable:!0,get:function(){return We.assertInterfaceType}});Object.defineProperty(me,"assertUnionType",{enumerable:!0,get:function(){return We.assertUnionType}});Object.defineProperty(me,"assertEnumType",{enumerable:!0,get:function(){return We.assertEnumType}});Object.defineProperty(me,"assertInputObjectType",{enumerable:!0,get:function(){return We.assertInputObjectType}});Object.defineProperty(me,"assertListType",{enumerable:!0,get:function(){return We.assertListType}});Object.defineProperty(me,"assertNonNullType",{enumerable:!0,get:function(){return We.assertNonNullType}});Object.defineProperty(me,"assertInputType",{enumerable:!0,get:function(){return We.assertInputType}});Object.defineProperty(me,"assertOutputType",{enumerable:!0,get:function(){return We.assertOutputType}});Object.defineProperty(me,"assertLeafType",{enumerable:!0,get:function(){return We.assertLeafType}});Object.defineProperty(me,"assertCompositeType",{enumerable:!0,get:function(){return We.assertCompositeType}});Object.defineProperty(me,"assertAbstractType",{enumerable:!0,get:function(){return We.assertAbstractType}});Object.defineProperty(me,"assertWrappingType",{enumerable:!0,get:function(){return We.assertWrappingType}});Object.defineProperty(me,"assertNullableType",{enumerable:!0,get:function(){return We.assertNullableType}});Object.defineProperty(me,"assertNamedType",{enumerable:!0,get:function(){return We.assertNamedType}});Object.defineProperty(me,"getNullableType",{enumerable:!0,get:function(){return We.getNullableType}});Object.defineProperty(me,"getNamedType",{enumerable:!0,get:function(){return We.getNamedType}});Object.defineProperty(me,"GraphQLScalarType",{enumerable:!0,get:function(){return We.GraphQLScalarType}});Object.defineProperty(me,"GraphQLObjectType",{enumerable:!0,get:function(){return We.GraphQLObjectType}});Object.defineProperty(me,"GraphQLInterfaceType",{enumerable:!0,get:function(){return We.GraphQLInterfaceType}});Object.defineProperty(me,"GraphQLUnionType",{enumerable:!0,get:function(){return We.GraphQLUnionType}});Object.defineProperty(me,"GraphQLEnumType",{enumerable:!0,get:function(){return We.GraphQLEnumType}});Object.defineProperty(me,"GraphQLInputObjectType",{enumerable:!0,get:function(){return We.GraphQLInputObjectType}});Object.defineProperty(me,"GraphQLList",{enumerable:!0,get:function(){return We.GraphQLList}});Object.defineProperty(me,"GraphQLNonNull",{enumerable:!0,get:function(){return We.GraphQLNonNull}});Object.defineProperty(me,"isDirective",{enumerable:!0,get:function(){return La.isDirective}});Object.defineProperty(me,"assertDirective",{enumerable:!0,get:function(){return La.assertDirective}});Object.defineProperty(me,"GraphQLDirective",{enumerable:!0,get:function(){return La.GraphQLDirective}});Object.defineProperty(me,"isSpecifiedDirective",{enumerable:!0,get:function(){return La.isSpecifiedDirective}});Object.defineProperty(me,"specifiedDirectives",{enumerable:!0,get:function(){return La.specifiedDirectives}});Object.defineProperty(me,"GraphQLIncludeDirective",{enumerable:!0,get:function(){return La.GraphQLIncludeDirective}});Object.defineProperty(me,"GraphQLSkipDirective",{enumerable:!0,get:function(){return La.GraphQLSkipDirective}});Object.defineProperty(me,"GraphQLDeprecatedDirective",{enumerable:!0,get:function(){return La.GraphQLDeprecatedDirective}});Object.defineProperty(me,"GraphQLSpecifiedByDirective",{enumerable:!0,get:function(){return La.GraphQLSpecifiedByDirective}});Object.defineProperty(me,"DEFAULT_DEPRECATION_REASON",{enumerable:!0,get:function(){return La.DEFAULT_DEPRECATION_REASON}});Object.defineProperty(me,"isSpecifiedScalarType",{enumerable:!0,get:function(){return vs.isSpecifiedScalarType}});Object.defineProperty(me,"specifiedScalarTypes",{enumerable:!0,get:function(){return vs.specifiedScalarTypes}});Object.defineProperty(me,"GraphQLInt",{enumerable:!0,get:function(){return vs.GraphQLInt}});Object.defineProperty(me,"GraphQLFloat",{enumerable:!0,get:function(){return vs.GraphQLFloat}});Object.defineProperty(me,"GraphQLString",{enumerable:!0,get:function(){return vs.GraphQLString}});Object.defineProperty(me,"GraphQLBoolean",{enumerable:!0,get:function(){return vs.GraphQLBoolean}});Object.defineProperty(me,"GraphQLID",{enumerable:!0,get:function(){return vs.GraphQLID}});Object.defineProperty(me,"isIntrospectionType",{enumerable:!0,get:function(){return Zn.isIntrospectionType}});Object.defineProperty(me,"introspectionTypes",{enumerable:!0,get:function(){return Zn.introspectionTypes}});Object.defineProperty(me,"__Schema",{enumerable:!0,get:function(){return Zn.__Schema}});Object.defineProperty(me,"__Directive",{enumerable:!0,get:function(){return Zn.__Directive}});Object.defineProperty(me,"__DirectiveLocation",{enumerable:!0,get:function(){return Zn.__DirectiveLocation}});Object.defineProperty(me,"__Type",{enumerable:!0,get:function(){return Zn.__Type}});Object.defineProperty(me,"__Field",{enumerable:!0,get:function(){return Zn.__Field}});Object.defineProperty(me,"__InputValue",{enumerable:!0,get:function(){return Zn.__InputValue}});Object.defineProperty(me,"__EnumValue",{enumerable:!0,get:function(){return Zn.__EnumValue}});Object.defineProperty(me,"__TypeKind",{enumerable:!0,get:function(){return Zn.__TypeKind}});Object.defineProperty(me,"TypeKind",{enumerable:!0,get:function(){return Zn.TypeKind}});Object.defineProperty(me,"SchemaMetaFieldDef",{enumerable:!0,get:function(){return Zn.SchemaMetaFieldDef}});Object.defineProperty(me,"TypeMetaFieldDef",{enumerable:!0,get:function(){return Zn.TypeMetaFieldDef}});Object.defineProperty(me,"TypeNameMetaFieldDef",{enumerable:!0,get:function(){return Zn.TypeNameMetaFieldDef}});Object.defineProperty(me,"validateSchema",{enumerable:!0,get:function(){return Ox.validateSchema}});Object.defineProperty(me,"assertValidSchema",{enumerable:!0,get:function(){return Ox.assertValidSchema}});var TS=us(),We=lt(),La=Jn(),vs=Ca(),Zn=Yn(),Ox=Pd()});var Nx=U(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Object.defineProperty(Ft,"Source",{enumerable:!0,get:function(){return kH.Source}});Object.defineProperty(Ft,"getLocation",{enumerable:!0,get:function(){return OH.getLocation}});Object.defineProperty(Ft,"printLocation",{enumerable:!0,get:function(){return wx.printLocation}});Object.defineProperty(Ft,"printSourceLocation",{enumerable:!0,get:function(){return wx.printSourceLocation}});Object.defineProperty(Ft,"Kind",{enumerable:!0,get:function(){return CH.Kind}});Object.defineProperty(Ft,"TokenKind",{enumerable:!0,get:function(){return wH.TokenKind}});Object.defineProperty(Ft,"Lexer",{enumerable:!0,get:function(){return AH.Lexer}});Object.defineProperty(Ft,"parse",{enumerable:!0,get:function(){return ES.parse}});Object.defineProperty(Ft,"parseValue",{enumerable:!0,get:function(){return ES.parseValue}});Object.defineProperty(Ft,"parseType",{enumerable:!0,get:function(){return ES.parseType}});Object.defineProperty(Ft,"print",{enumerable:!0,get:function(){return NH.print}});Object.defineProperty(Ft,"visit",{enumerable:!0,get:function(){return Xg.visit}});Object.defineProperty(Ft,"visitInParallel",{enumerable:!0,get:function(){return Xg.visitInParallel}});Object.defineProperty(Ft,"getVisitFn",{enumerable:!0,get:function(){return Xg.getVisitFn}});Object.defineProperty(Ft,"BREAK",{enumerable:!0,get:function(){return Xg.BREAK}});Object.defineProperty(Ft,"Location",{enumerable:!0,get:function(){return Ax.Location}});Object.defineProperty(Ft,"Token",{enumerable:!0,get:function(){return Ax.Token}});Object.defineProperty(Ft,"isDefinitionNode",{enumerable:!0,get:function(){return vo.isDefinitionNode}});Object.defineProperty(Ft,"isExecutableDefinitionNode",{enumerable:!0,get:function(){return vo.isExecutableDefinitionNode}});Object.defineProperty(Ft,"isSelectionNode",{enumerable:!0,get:function(){return vo.isSelectionNode}});Object.defineProperty(Ft,"isValueNode",{enumerable:!0,get:function(){return vo.isValueNode}});Object.defineProperty(Ft,"isTypeNode",{enumerable:!0,get:function(){return vo.isTypeNode}});Object.defineProperty(Ft,"isTypeSystemDefinitionNode",{enumerable:!0,get:function(){return vo.isTypeSystemDefinitionNode}});Object.defineProperty(Ft,"isTypeDefinitionNode",{enumerable:!0,get:function(){return vo.isTypeDefinitionNode}});Object.defineProperty(Ft,"isTypeSystemExtensionNode",{enumerable:!0,get:function(){return vo.isTypeSystemExtensionNode}});Object.defineProperty(Ft,"isTypeExtensionNode",{enumerable:!0,get:function(){return vo.isTypeExtensionNode}});Object.defineProperty(Ft,"DirectiveLocation",{enumerable:!0,get:function(){return LH.DirectiveLocation}});var kH=Zv(),OH=qv(),wx=CT(),CH=Vt(),wH=Rl(),AH=tg(),ES=Pl(),NH=Wn(),Xg=eu(),Ax=Il(),vo=ls(),LH=Fl()});var Lx=U(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});Object.defineProperty(hu,"responsePathAsArray",{enumerable:!0,get:function(){return xH.pathToArray}});Object.defineProperty(hu,"execute",{enumerable:!0,get:function(){return Zg.execute}});Object.defineProperty(hu,"executeSync",{enumerable:!0,get:function(){return Zg.executeSync}});Object.defineProperty(hu,"defaultFieldResolver",{enumerable:!0,get:function(){return Zg.defaultFieldResolver}});Object.defineProperty(hu,"defaultTypeResolver",{enumerable:!0,get:function(){return Zg.defaultTypeResolver}});Object.defineProperty(hu,"getDirectiveValues",{enumerable:!0,get:function(){return IH.getDirectiveValues}});var xH=Ud(),Zg=Zd(),IH=Wd()});var xx=U(_S=>{"use strict";Object.defineProperty(_S,"__esModule",{value:!0});_S.default=FH;var RH=Da();function FH(e){return typeof(e==null?void 0:e[RH.SYMBOL_ASYNC_ITERATOR])=="function"}});var jx=U(SS=>{"use strict";Object.defineProperty(SS,"__esModule",{value:!0});SS.default=PH;var Ix=Da();function jH(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function PH(e,t,r){var n=e[Ix.SYMBOL_ASYNC_ITERATOR],a=n.call(e),o,s;typeof a.return=="function"&&(o=a.return,s=function(b){var T=function(){return Promise.reject(b)};return o.call(a).then(T,T)});function l(v){return v.done?v:Rx(v.value,t).then(Fx,s)}var d;if(r){var h=r;d=function(b){return Rx(b,h).then(Fx,s)}}return jH({next:function(){return a.next().then(l,d)},return:function(){return o?o.call(a).then(l,d):Promise.resolve({value:void 0,done:!0})},throw:function(b){return typeof a.throw=="function"?a.throw(b).then(l,d):Promise.reject(b).catch(s)}},Ix.SYMBOL_ASYNC_ITERATOR,function(){return this})}function Rx(e,t){return new Promise(function(r){return r(t(e))})}function Fx(e){return{value:e,done:!1}}});var Gx=U($g=>{"use strict";Object.defineProperty($g,"__esModule",{value:!0});$g.subscribe=UH;$g.createSourceEventStream=Ux;var MH=kS(Ot()),Px=kS(xx()),DS=Ud(),Mx=Be(),qx=Td(),qH=Wd(),ac=Zd(),BH=Ug(),VH=kS(jx());function kS(e){return e&&e.__esModule?e:{default:e}}function UH(e,t,r,n,a,o,s,l){return arguments.length===1?Vx(e):Vx({schema:e,document:t,rootValue:r,contextValue:n,variableValues:a,operationName:o,fieldResolver:s,subscribeFieldResolver:l})}function Bx(e){if(e instanceof Mx.GraphQLError)return{errors:[e]};throw e}function Vx(e){var t=e.schema,r=e.document,n=e.rootValue,a=e.contextValue,o=e.variableValues,s=e.operationName,l=e.fieldResolver,d=e.subscribeFieldResolver,h=Ux(t,r,n,a,o,s,d),v=function(T){return(0,ac.execute)({schema:t,document:r,rootValue:T,contextValue:a,variableValues:o,operationName:s,fieldResolver:l})};return h.then(function(b){return(0,Px.default)(b)?(0,VH.default)(b,v,Bx):b})}function Ux(e,t,r,n,a,o,s){return(0,ac.assertValidExecutionArguments)(e,t,a),new Promise(function(l){var d=(0,ac.buildExecutionContext)(e,t,r,n,a,o,s);l(Array.isArray(d)?{errors:d}:GH(d))}).catch(Bx)}function GH(e){var t=e.schema,r=e.operation,n=e.variableValues,a=e.rootValue,o=(0,BH.getOperationRootType)(t,r),s=(0,ac.collectFields)(e,o,r.selectionSet,Object.create(null),Object.create(null)),l=Object.keys(s),d=l[0],h=s[d],v=h[0],b=v.name.value,T=(0,ac.getFieldDef)(t,o,b);if(!T)throw new Mx.GraphQLError('The subscription field "'.concat(b,'" is not defined.'),h);var A=(0,DS.addPath)(void 0,d,o.name),L=(0,ac.buildResolveInfo)(e,T,h,o,A);return new Promise(function(S){var y,_=(0,qH.getArgumentValues)(T,h[0],n),m=e.contextValue,k=(y=T.subscribe)!==null&&y!==void 0?y:e.fieldResolver;S(k(a,_,m,L))}).then(function(S){if(S instanceof Error)throw(0,qx.locatedError)(S,h,(0,DS.pathToArray)(A));if(!(0,Px.default)(S))throw new Error("Subscription field must return Async Iterable. "+"Received: ".concat((0,MH.default)(S),"."));return S},function(S){throw(0,qx.locatedError)(S,h,(0,DS.pathToArray)(A))})}});var Kx=U(em=>{"use strict";Object.defineProperty(em,"__esModule",{value:!0});Object.defineProperty(em,"subscribe",{enumerable:!0,get:function(){return Qx.subscribe}});Object.defineProperty(em,"createSourceEventStream",{enumerable:!0,get:function(){return Qx.createSourceEventStream}});var Qx=Gx()});var AS=U(wS=>{"use strict";Object.defineProperty(wS,"__esModule",{value:!0});wS.NoDeprecatedCustomRule=KH;var OS=QH(un()),$d=Be(),CS=lt();function QH(e){return e&&e.__esModule?e:{default:e}}function KH(e){return{Field:function(r){var n=e.getFieldDef(),a=n==null?void 0:n.deprecationReason;if(n&&a!=null){var o=e.getParentType();o!=null||(0,OS.default)(0),e.reportError(new $d.GraphQLError("The field ".concat(o.name,".").concat(n.name," is deprecated. ").concat(a),r))}},Argument:function(r){var n=e.getArgument(),a=n==null?void 0:n.deprecationReason;if(n&&a!=null){var o=e.getDirective();if(o!=null)e.reportError(new $d.GraphQLError('Directive "@'.concat(o.name,'" argument "').concat(n.name,'" is deprecated. ').concat(a),r));else{var s=e.getParentType(),l=e.getFieldDef();s!=null&&l!=null||(0,OS.default)(0),e.reportError(new $d.GraphQLError('Field "'.concat(s.name,".").concat(l.name,'" argument "').concat(n.name,'" is deprecated. ').concat(a),r))}}},ObjectField:function(r){var n=(0,CS.getNamedType)(e.getParentInputType());if((0,CS.isInputObjectType)(n)){var a=n.getFields()[r.name.value],o=a==null?void 0:a.deprecationReason;o!=null&&e.reportError(new $d.GraphQLError("The input field ".concat(n.name,".").concat(a.name," is deprecated. ").concat(o),r))}},EnumValue:function(r){var n=e.getEnumValue(),a=n==null?void 0:n.deprecationReason;if(n&&a!=null){var o=(0,CS.getNamedType)(e.getInputType());o!=null||(0,OS.default)(0),e.reportError(new $d.GraphQLError('The enum value "'.concat(o.name,".").concat(n.name,'" is deprecated. ').concat(a),r))}}}}});var Hx=U(NS=>{"use strict";Object.defineProperty(NS,"__esModule",{value:!0});NS.NoSchemaIntrospectionCustomRule=YH;var HH=Be(),zH=lt(),WH=Yn();function YH(e){return{Field:function(r){var n=(0,zH.getNamedType)(e.getType());n&&(0,WH.isIntrospectionType)(n)&&e.reportError(new HH.GraphQLError('GraphQL introspection has been disabled, but the requested query contained the field "'.concat(r.name.value,'".'),r))}}}});var zx=U(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});Object.defineProperty(et,"validate",{enumerable:!0,get:function(){return JH.validate}});Object.defineProperty(et,"ValidationContext",{enumerable:!0,get:function(){return XH.ValidationContext}});Object.defineProperty(et,"specifiedRules",{enumerable:!0,get:function(){return ZH.specifiedRules}});Object.defineProperty(et,"ExecutableDefinitionsRule",{enumerable:!0,get:function(){return $H.ExecutableDefinitionsRule}});Object.defineProperty(et,"FieldsOnCorrectTypeRule",{enumerable:!0,get:function(){return ez.FieldsOnCorrectTypeRule}});Object.defineProperty(et,"FragmentsOnCompositeTypesRule",{enumerable:!0,get:function(){return tz.FragmentsOnCompositeTypesRule}});Object.defineProperty(et,"KnownArgumentNamesRule",{enumerable:!0,get:function(){return rz.KnownArgumentNamesRule}});Object.defineProperty(et,"KnownDirectivesRule",{enumerable:!0,get:function(){return nz.KnownDirectivesRule}});Object.defineProperty(et,"KnownFragmentNamesRule",{enumerable:!0,get:function(){return iz.KnownFragmentNamesRule}});Object.defineProperty(et,"KnownTypeNamesRule",{enumerable:!0,get:function(){return az.KnownTypeNamesRule}});Object.defineProperty(et,"LoneAnonymousOperationRule",{enumerable:!0,get:function(){return oz.LoneAnonymousOperationRule}});Object.defineProperty(et,"NoFragmentCyclesRule",{enumerable:!0,get:function(){return uz.NoFragmentCyclesRule}});Object.defineProperty(et,"NoUndefinedVariablesRule",{enumerable:!0,get:function(){return sz.NoUndefinedVariablesRule}});Object.defineProperty(et,"NoUnusedFragmentsRule",{enumerable:!0,get:function(){return lz.NoUnusedFragmentsRule}});Object.defineProperty(et,"NoUnusedVariablesRule",{enumerable:!0,get:function(){return cz.NoUnusedVariablesRule}});Object.defineProperty(et,"OverlappingFieldsCanBeMergedRule",{enumerable:!0,get:function(){return fz.OverlappingFieldsCanBeMergedRule}});Object.defineProperty(et,"PossibleFragmentSpreadsRule",{enumerable:!0,get:function(){return dz.PossibleFragmentSpreadsRule}});Object.defineProperty(et,"ProvidedRequiredArgumentsRule",{enumerable:!0,get:function(){return pz.ProvidedRequiredArgumentsRule}});Object.defineProperty(et,"ScalarLeafsRule",{enumerable:!0,get:function(){return hz.ScalarLeafsRule}});Object.defineProperty(et,"SingleFieldSubscriptionsRule",{enumerable:!0,get:function(){return vz.SingleFieldSubscriptionsRule}});Object.defineProperty(et,"UniqueArgumentNamesRule",{enumerable:!0,get:function(){return gz.UniqueArgumentNamesRule}});Object.defineProperty(et,"UniqueDirectivesPerLocationRule",{enumerable:!0,get:function(){return mz.UniqueDirectivesPerLocationRule}});Object.defineProperty(et,"UniqueFragmentNamesRule",{enumerable:!0,get:function(){return yz.UniqueFragmentNamesRule}});Object.defineProperty(et,"UniqueInputFieldNamesRule",{enumerable:!0,get:function(){return bz.UniqueInputFieldNamesRule}});Object.defineProperty(et,"UniqueOperationNamesRule",{enumerable:!0,get:function(){return Tz.UniqueOperationNamesRule}});Object.defineProperty(et,"UniqueVariableNamesRule",{enumerable:!0,get:function(){return Ez.UniqueVariableNamesRule}});Object.defineProperty(et,"ValuesOfCorrectTypeRule",{enumerable:!0,get:function(){return _z.ValuesOfCorrectTypeRule}});Object.defineProperty(et,"VariablesAreInputTypesRule",{enumerable:!0,get:function(){return Sz.VariablesAreInputTypesRule}});Object.defineProperty(et,"VariablesInAllowedPositionRule",{enumerable:!0,get:function(){return Dz.VariablesInAllowedPositionRule}});Object.defineProperty(et,"LoneSchemaDefinitionRule",{enumerable:!0,get:function(){return kz.LoneSchemaDefinitionRule}});Object.defineProperty(et,"UniqueOperationTypesRule",{enumerable:!0,get:function(){return Oz.UniqueOperationTypesRule}});Object.defineProperty(et,"UniqueTypeNamesRule",{enumerable:!0,get:function(){return Cz.UniqueTypeNamesRule}});Object.defineProperty(et,"UniqueEnumValueNamesRule",{enumerable:!0,get:function(){return wz.UniqueEnumValueNamesRule}});Object.defineProperty(et,"UniqueFieldDefinitionNamesRule",{enumerable:!0,get:function(){return Az.UniqueFieldDefinitionNamesRule}});Object.defineProperty(et,"UniqueDirectiveNamesRule",{enumerable:!0,get:function(){return Nz.UniqueDirectiveNamesRule}});Object.defineProperty(et,"PossibleTypeExtensionsRule",{enumerable:!0,get:function(){return Lz.PossibleTypeExtensionsRule}});Object.defineProperty(et,"NoDeprecatedCustomRule",{enumerable:!0,get:function(){return xz.NoDeprecatedCustomRule}});Object.defineProperty(et,"NoSchemaIntrospectionCustomRule",{enumerable:!0,get:function(){return Iz.NoSchemaIntrospectionCustomRule}});var JH=$l(),XH=aS(),ZH=nS(),$H=ME(),ez=t_(),tz=YE(),rz=D_(),nz=T_(),iz=a_(),az=zE(),oz=UE(),uz=d_(),sz=g_(),lz=u_(),cz=y_(),fz=q_(),dz=c_(),pz=N_(),hz=$E(),vz=QE(),gz=O_(),mz=S_(),yz=n_(),bz=V_(),Tz=BE(),Ez=h_(),_z=w_(),Sz=XE(),Dz=x_(),kz=G_(),Oz=K_(),Cz=z_(),wz=Y_(),Az=Z_(),Nz=eS(),Lz=rS(),xz=AS(),Iz=Hx()});var Wx=U(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.formatError=jz;var Rz=Fz(wi());function Fz(e){return e&&e.__esModule?e:{default:e}}function jz(e){var t;e||(0,Rz.default)(0,"Received null or undefined error.");var r=(t=e.message)!==null&&t!==void 0?t:"An unknown error occurred.",n=e.locations,a=e.path,o=e.extensions;return o?{message:r,locations:n,path:a,extensions:o}:{message:r,locations:n,path:a}}});var Jx=U(gs=>{"use strict";Object.defineProperty(gs,"__esModule",{value:!0});Object.defineProperty(gs,"GraphQLError",{enumerable:!0,get:function(){return Yx.GraphQLError}});Object.defineProperty(gs,"printError",{enumerable:!0,get:function(){return Yx.printError}});Object.defineProperty(gs,"syntaxError",{enumerable:!0,get:function(){return Pz.syntaxError}});Object.defineProperty(gs,"locatedError",{enumerable:!0,get:function(){return Mz.locatedError}});Object.defineProperty(gs,"formatError",{enumerable:!0,get:function(){return qz.formatError}});var Yx=Be(),Pz=Qv(),Mz=Td(),qz=Wx()});var IS=U(xS=>{"use strict";Object.defineProperty(xS,"__esModule",{value:!0});xS.getIntrospectionQuery=Uz;function Xx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Bz(e){for(var t=1;t{"use strict";Object.defineProperty(RS,"__esModule",{value:!0});RS.getOperationAST=Qz;var Gz=Vt();function Qz(e,t){for(var r=null,n=0,a=e.definitions;n{"use strict";Object.defineProperty(jS,"__esModule",{value:!0});jS.introspectionFromSchema=Zz;var Kz=Yz(un()),Hz=Pl(),zz=Zd(),Wz=IS();function Yz(e){return e&&e.__esModule?e:{default:e}}function Zx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Jz(e){for(var t=1;t{"use strict";Object.defineProperty(PS,"__esModule",{value:!0});PS.buildClientSchema=o7;var $z=ep(oi()),li=ep(Ot()),e7=ep(wi()),tm=ep(Ed()),eI=ep(Sa()),t7=Pl(),r7=us(),n7=Jn(),i7=Ca(),xa=Yn(),ci=lt(),a7=Qd();function ep(e){return e&&e.__esModule?e:{default:e}}function o7(e,t){(0,eI.default)(e)&&(0,eI.default)(e.__schema)||(0,e7.default)(0,'Invalid or incomplete introspection result. Ensure that you are passing "data" property of introspection response and no "errors" was returned alongside: '.concat((0,li.default)(e),"."));for(var r=e.__schema,n=(0,tm.default)(r.types,function(G){return G.name},function(G){return S(G)}),a=0,o=[].concat(i7.specifiedScalarTypes,xa.introspectionTypes);a{"use strict";Object.defineProperty(rp,"__esModule",{value:!0});rp.extendSchema=h7;rp.extendSchemaImpl=fI;rp.getDescription=ms;var u7=oc(oi()),s7=oc(tu()),rI=oc(Ot()),tp=oc(QT()),nI=oc(un()),l7=oc(wi()),xi=Vt(),c7=Rl(),f7=jl(),iI=ls(),d7=$l(),aI=Wd(),oI=us(),uI=Ca(),sI=Yn(),rm=Jn(),nr=lt(),lI=Qd();function oc(e){return e&&e.__esModule?e:{default:e}}function cI(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Et(e){for(var t=1;t0?r.reverse().join(` +`):void 0}}});var gI=U(im=>{"use strict";Object.defineProperty(im,"__esModule",{value:!0});im.buildASTSchema=vI;im.buildSchema=S7;var g7=_7(wi()),m7=Vt(),y7=Pl(),b7=$l(),T7=us(),hI=Jn(),E7=MS();function _7(e){return e&&e.__esModule?e:{default:e}}function vI(e,t){e!=null&&e.kind===m7.Kind.DOCUMENT||(0,g7.default)(0,"Must provide valid Document AST."),(t==null?void 0:t.assumeValid)!==!0&&(t==null?void 0:t.assumeValidSDL)!==!0&&(0,b7.assertValidSDL)(e);var r={description:void 0,types:[],directives:[],extensions:void 0,extensionASTNodes:[],assumeValid:!1},n=(0,E7.extendSchemaImpl)(r,e,t);if(n.astNode==null)for(var a=0,o=n.types;a{"use strict";Object.defineProperty(VS,"__esModule",{value:!0});VS.lexicographicSortSchema=I7;var D7=np(oi()),k7=np(Ot()),O7=np(un()),C7=np(Ed()),w7=np(_d()),A7=us(),N7=Jn(),L7=Yn(),Fn=lt();function np(e){return e&&e.__esModule?e:{default:e}}function mI(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function kr(e){for(var t=1;t{"use strict";Object.defineProperty(ip,"__esModule",{value:!0});ip.printSchema=j7;ip.printIntrospectionSchema=P7;ip.printType=_I;var US=zS(oi()),R7=zS(Ot()),bI=zS(un()),GS=Wn(),F7=jl(),TI=Yn(),QS=Ca(),KS=Jn(),uc=lt(),HS=Id();function zS(e){return e&&e.__esModule?e:{default:e}}function j7(e,t){return EI(e,function(r){return!(0,KS.isSpecifiedDirective)(r)},M7,t)}function P7(e,t){return EI(e,KS.isSpecifiedDirective,TI.isIntrospectionType,t)}function M7(e){return!(0,QS.isSpecifiedScalarType)(e)&&!(0,TI.isIntrospectionType)(e)}function EI(e,t,r,n){var a=e.getDirectives().filter(t),o=(0,US.default)(e.getTypeMap()).filter(r);return[q7(e)].concat(a.map(function(s){return z7(s,n)}),o.map(function(s){return _I(s,n)})).filter(Boolean).join(` + +`)+` +`}function q7(e){if(!(e.description==null&&B7(e))){var t=[],r=e.getQueryType();r&&t.push(" query: ".concat(r.name));var n=e.getMutationType();n&&t.push(" mutation: ".concat(n.name));var a=e.getSubscriptionType();return a&&t.push(" subscription: ".concat(a.name)),Ii({},e)+`schema { +`.concat(t.join(` +`),` +}`)}}function B7(e){var t=e.getQueryType();if(t&&t.name!=="Query")return!1;var r=e.getMutationType();if(r&&r.name!=="Mutation")return!1;var n=e.getSubscriptionType();return!(n&&n.name!=="Subscription")}function _I(e,t){if((0,uc.isScalarType)(e))return V7(e,t);if((0,uc.isObjectType)(e))return U7(e,t);if((0,uc.isInterfaceType)(e))return G7(e,t);if((0,uc.isUnionType)(e))return Q7(e,t);if((0,uc.isEnumType)(e))return K7(e,t);if((0,uc.isInputObjectType)(e))return H7(e,t);(0,bI.default)(0,"Unexpected type: "+(0,R7.default)(e))}function V7(e,t){return Ii(t,e)+"scalar ".concat(e.name)+W7(e)}function SI(e){var t=e.getInterfaces();return t.length?" implements "+t.map(function(r){return r.name}).join(" & "):""}function U7(e,t){return Ii(t,e)+"type ".concat(e.name)+SI(e)+DI(t,e)}function G7(e,t){return Ii(t,e)+"interface ".concat(e.name)+SI(e)+DI(t,e)}function Q7(e,t){var r=e.getTypes(),n=r.length?" = "+r.join(" | "):"";return Ii(t,e)+"union "+e.name+n}function K7(e,t){var r=e.getValues().map(function(n,a){return Ii(t,n," ",!a)+" "+n.name+JS(n.deprecationReason)});return Ii(t,e)+"enum ".concat(e.name)+WS(r)}function H7(e,t){var r=(0,US.default)(e.getFields()).map(function(n,a){return Ii(t,n," ",!a)+" "+YS(n)});return Ii(t,e)+"input ".concat(e.name)+WS(r)}function DI(e,t){var r=(0,US.default)(t.getFields()).map(function(n,a){return Ii(e,n," ",!a)+" "+n.name+kI(e,n.args," ")+": "+String(n.type)+JS(n.deprecationReason)});return WS(r)}function WS(e){return e.length!==0?` { +`+e.join(` +`)+` +}`:""}function kI(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"";return t.length===0?"":t.every(function(n){return!n.description})?"("+t.map(YS).join(", ")+")":`( +`+t.map(function(n,a){return Ii(e,n," "+r,!a)+" "+r+YS(n)}).join(` +`)+` +`+r+")"}function YS(e){var t=(0,HS.astFromValue)(e.defaultValue,e.type),r=e.name+": "+String(e.type);return t&&(r+=" = ".concat((0,GS.print)(t))),r+JS(e.deprecationReason)}function z7(e,t){return Ii(t,e)+"directive @"+e.name+kI(t,e.args)+(e.isRepeatable?" repeatable":"")+" on "+e.locations.join(" | ")}function JS(e){if(e==null)return"";var t=(0,HS.astFromValue)(e,QS.GraphQLString);return t&&e!==KS.DEFAULT_DEPRECATION_REASON?" @deprecated(reason: "+(0,GS.print)(t)+")":" @deprecated"}function W7(e){if(e.specifiedByUrl==null)return"";var t=e.specifiedByUrl,r=(0,HS.astFromValue)(t,QS.GraphQLString);return r||(0,bI.default)(0,"Unexpected null value returned from `astFromValue` for specifiedByUrl")," @specifiedBy(url: "+(0,GS.print)(r)+")"}function Ii(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"",n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=t.description;if(a==null)return"";if((e==null?void 0:e.commentDescriptions)===!0)return Y7(a,r,n);var o=a.length>70,s=(0,F7.printBlockString)(a,"",o),l=r&&!n?` +`+r:r;return l+s.replace(/\n/g,` +`+r)+` +`}function Y7(e,t,r){var n=t&&!r?` +`:"",a=e.split(` +`).map(function(o){return t+(o!==""?"# "+o:"#")}).join(` +`);return n+a+` +`}});var CI=U(XS=>{"use strict";Object.defineProperty(XS,"__esModule",{value:!0});XS.concatAST=J7;function J7(e){for(var t=[],r=0;r{"use strict";Object.defineProperty(ZS,"__esModule",{value:!0});ZS.separateOperations=Z7;var om=Vt(),X7=eu();function Z7(e){for(var t=[],r=Object.create(null),n=0,a=e.definitions;n{"use strict";Object.defineProperty(eD,"__esModule",{value:!0});eD.stripIgnoredCharacters=$7;var LI=Zv(),$S=Rl(),xI=tg(),II=jl();function $7(e){for(var t=(0,LI.isSource)(e)?e:new LI.Source(e),r=t.body,n=new xI.Lexer(t),a="",o=!1;n.advance().kind!==$S.TokenKind.EOF;){var s=n.token,l=s.kind,d=!(0,xI.isPunctuatorTokenKind)(s.kind);o&&(d||s.kind===$S.TokenKind.SPREAD)&&(a+=" ");var h=r.slice(s.start,s.end);l===$S.TokenKind.BLOCK_STRING?a+=eW(h):a+=h,o=d}return a}function eW(e){var t=e.slice(3,-3),r=(0,II.dedentBlockStringValue)(t);(0,II.getBlockStringIndentation)(r)>0&&(r=` +`+r);var n=r[r.length-1],a=n==='"'&&r.slice(-4)!=='\\"""';return(a||n==="\\")&&(r+=` +`),'"""'+r+'"""'}});var QI=U(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.findBreakingChanges=sW;vu.findDangerousChanges=lW;vu.DangerousChangeType=vu.BreakingChangeType=void 0;var sc=ap(oi()),FI=ap(tu()),tW=ap(Ot()),jI=ap(un()),rW=ap(_d()),nW=Wn(),iW=eu(),aW=Ca(),_t=lt(),oW=Id();function ap(e){return e&&e.__esModule?e:{default:e}}function PI(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function MI(e){for(var t=1;t{"use strict";Object.defineProperty(tD,"__esModule",{value:!0});tD.findDeprecatedUsages=yW;var gW=$l(),mW=AS();function yW(e,t){return(0,gW.validate)(e,t,[mW.NoDeprecatedCustomRule])}});var JI=U(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});Object.defineProperty(st,"getIntrospectionQuery",{enumerable:!0,get:function(){return bW.getIntrospectionQuery}});Object.defineProperty(st,"getOperationAST",{enumerable:!0,get:function(){return TW.getOperationAST}});Object.defineProperty(st,"getOperationRootType",{enumerable:!0,get:function(){return EW.getOperationRootType}});Object.defineProperty(st,"introspectionFromSchema",{enumerable:!0,get:function(){return _W.introspectionFromSchema}});Object.defineProperty(st,"buildClientSchema",{enumerable:!0,get:function(){return SW.buildClientSchema}});Object.defineProperty(st,"buildASTSchema",{enumerable:!0,get:function(){return HI.buildASTSchema}});Object.defineProperty(st,"buildSchema",{enumerable:!0,get:function(){return HI.buildSchema}});Object.defineProperty(st,"extendSchema",{enumerable:!0,get:function(){return zI.extendSchema}});Object.defineProperty(st,"getDescription",{enumerable:!0,get:function(){return zI.getDescription}});Object.defineProperty(st,"lexicographicSortSchema",{enumerable:!0,get:function(){return DW.lexicographicSortSchema}});Object.defineProperty(st,"printSchema",{enumerable:!0,get:function(){return rD.printSchema}});Object.defineProperty(st,"printType",{enumerable:!0,get:function(){return rD.printType}});Object.defineProperty(st,"printIntrospectionSchema",{enumerable:!0,get:function(){return rD.printIntrospectionSchema}});Object.defineProperty(st,"typeFromAST",{enumerable:!0,get:function(){return kW.typeFromAST}});Object.defineProperty(st,"valueFromAST",{enumerable:!0,get:function(){return OW.valueFromAST}});Object.defineProperty(st,"valueFromASTUntyped",{enumerable:!0,get:function(){return CW.valueFromASTUntyped}});Object.defineProperty(st,"astFromValue",{enumerable:!0,get:function(){return wW.astFromValue}});Object.defineProperty(st,"TypeInfo",{enumerable:!0,get:function(){return WI.TypeInfo}});Object.defineProperty(st,"visitWithTypeInfo",{enumerable:!0,get:function(){return WI.visitWithTypeInfo}});Object.defineProperty(st,"coerceInputValue",{enumerable:!0,get:function(){return AW.coerceInputValue}});Object.defineProperty(st,"concatAST",{enumerable:!0,get:function(){return NW.concatAST}});Object.defineProperty(st,"separateOperations",{enumerable:!0,get:function(){return LW.separateOperations}});Object.defineProperty(st,"stripIgnoredCharacters",{enumerable:!0,get:function(){return xW.stripIgnoredCharacters}});Object.defineProperty(st,"isEqualType",{enumerable:!0,get:function(){return nD.isEqualType}});Object.defineProperty(st,"isTypeSubTypeOf",{enumerable:!0,get:function(){return nD.isTypeSubTypeOf}});Object.defineProperty(st,"doTypesOverlap",{enumerable:!0,get:function(){return nD.doTypesOverlap}});Object.defineProperty(st,"assertValidName",{enumerable:!0,get:function(){return YI.assertValidName}});Object.defineProperty(st,"isValidNameError",{enumerable:!0,get:function(){return YI.isValidNameError}});Object.defineProperty(st,"BreakingChangeType",{enumerable:!0,get:function(){return um.BreakingChangeType}});Object.defineProperty(st,"DangerousChangeType",{enumerable:!0,get:function(){return um.DangerousChangeType}});Object.defineProperty(st,"findBreakingChanges",{enumerable:!0,get:function(){return um.findBreakingChanges}});Object.defineProperty(st,"findDangerousChanges",{enumerable:!0,get:function(){return um.findDangerousChanges}});Object.defineProperty(st,"findDeprecatedUsages",{enumerable:!0,get:function(){return IW.findDeprecatedUsages}});var bW=IS(),TW=FS(),EW=Ug(),_W=$x(),SW=tI(),HI=gI(),zI=MS(),DW=yI(),rD=OI(),kW=wa(),OW=Qd(),CW=rE(),wW=Id(),WI=wg(),AW=vS(),NW=CI(),LW=NI(),xW=RI(),nD=Cd(),YI=VT(),um=QI(),IW=KI()});var ct=U(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Object.defineProperty(Z,"version",{enumerable:!0,get:function(){return XI.version}});Object.defineProperty(Z,"versionInfo",{enumerable:!0,get:function(){return XI.versionInfo}});Object.defineProperty(Z,"graphql",{enumerable:!0,get:function(){return ZI.graphql}});Object.defineProperty(Z,"graphqlSync",{enumerable:!0,get:function(){return ZI.graphqlSync}});Object.defineProperty(Z,"GraphQLSchema",{enumerable:!0,get:function(){return Te.GraphQLSchema}});Object.defineProperty(Z,"GraphQLDirective",{enumerable:!0,get:function(){return Te.GraphQLDirective}});Object.defineProperty(Z,"GraphQLScalarType",{enumerable:!0,get:function(){return Te.GraphQLScalarType}});Object.defineProperty(Z,"GraphQLObjectType",{enumerable:!0,get:function(){return Te.GraphQLObjectType}});Object.defineProperty(Z,"GraphQLInterfaceType",{enumerable:!0,get:function(){return Te.GraphQLInterfaceType}});Object.defineProperty(Z,"GraphQLUnionType",{enumerable:!0,get:function(){return Te.GraphQLUnionType}});Object.defineProperty(Z,"GraphQLEnumType",{enumerable:!0,get:function(){return Te.GraphQLEnumType}});Object.defineProperty(Z,"GraphQLInputObjectType",{enumerable:!0,get:function(){return Te.GraphQLInputObjectType}});Object.defineProperty(Z,"GraphQLList",{enumerable:!0,get:function(){return Te.GraphQLList}});Object.defineProperty(Z,"GraphQLNonNull",{enumerable:!0,get:function(){return Te.GraphQLNonNull}});Object.defineProperty(Z,"specifiedScalarTypes",{enumerable:!0,get:function(){return Te.specifiedScalarTypes}});Object.defineProperty(Z,"GraphQLInt",{enumerable:!0,get:function(){return Te.GraphQLInt}});Object.defineProperty(Z,"GraphQLFloat",{enumerable:!0,get:function(){return Te.GraphQLFloat}});Object.defineProperty(Z,"GraphQLString",{enumerable:!0,get:function(){return Te.GraphQLString}});Object.defineProperty(Z,"GraphQLBoolean",{enumerable:!0,get:function(){return Te.GraphQLBoolean}});Object.defineProperty(Z,"GraphQLID",{enumerable:!0,get:function(){return Te.GraphQLID}});Object.defineProperty(Z,"specifiedDirectives",{enumerable:!0,get:function(){return Te.specifiedDirectives}});Object.defineProperty(Z,"GraphQLIncludeDirective",{enumerable:!0,get:function(){return Te.GraphQLIncludeDirective}});Object.defineProperty(Z,"GraphQLSkipDirective",{enumerable:!0,get:function(){return Te.GraphQLSkipDirective}});Object.defineProperty(Z,"GraphQLDeprecatedDirective",{enumerable:!0,get:function(){return Te.GraphQLDeprecatedDirective}});Object.defineProperty(Z,"GraphQLSpecifiedByDirective",{enumerable:!0,get:function(){return Te.GraphQLSpecifiedByDirective}});Object.defineProperty(Z,"TypeKind",{enumerable:!0,get:function(){return Te.TypeKind}});Object.defineProperty(Z,"DEFAULT_DEPRECATION_REASON",{enumerable:!0,get:function(){return Te.DEFAULT_DEPRECATION_REASON}});Object.defineProperty(Z,"introspectionTypes",{enumerable:!0,get:function(){return Te.introspectionTypes}});Object.defineProperty(Z,"__Schema",{enumerable:!0,get:function(){return Te.__Schema}});Object.defineProperty(Z,"__Directive",{enumerable:!0,get:function(){return Te.__Directive}});Object.defineProperty(Z,"__DirectiveLocation",{enumerable:!0,get:function(){return Te.__DirectiveLocation}});Object.defineProperty(Z,"__Type",{enumerable:!0,get:function(){return Te.__Type}});Object.defineProperty(Z,"__Field",{enumerable:!0,get:function(){return Te.__Field}});Object.defineProperty(Z,"__InputValue",{enumerable:!0,get:function(){return Te.__InputValue}});Object.defineProperty(Z,"__EnumValue",{enumerable:!0,get:function(){return Te.__EnumValue}});Object.defineProperty(Z,"__TypeKind",{enumerable:!0,get:function(){return Te.__TypeKind}});Object.defineProperty(Z,"SchemaMetaFieldDef",{enumerable:!0,get:function(){return Te.SchemaMetaFieldDef}});Object.defineProperty(Z,"TypeMetaFieldDef",{enumerable:!0,get:function(){return Te.TypeMetaFieldDef}});Object.defineProperty(Z,"TypeNameMetaFieldDef",{enumerable:!0,get:function(){return Te.TypeNameMetaFieldDef}});Object.defineProperty(Z,"isSchema",{enumerable:!0,get:function(){return Te.isSchema}});Object.defineProperty(Z,"isDirective",{enumerable:!0,get:function(){return Te.isDirective}});Object.defineProperty(Z,"isType",{enumerable:!0,get:function(){return Te.isType}});Object.defineProperty(Z,"isScalarType",{enumerable:!0,get:function(){return Te.isScalarType}});Object.defineProperty(Z,"isObjectType",{enumerable:!0,get:function(){return Te.isObjectType}});Object.defineProperty(Z,"isInterfaceType",{enumerable:!0,get:function(){return Te.isInterfaceType}});Object.defineProperty(Z,"isUnionType",{enumerable:!0,get:function(){return Te.isUnionType}});Object.defineProperty(Z,"isEnumType",{enumerable:!0,get:function(){return Te.isEnumType}});Object.defineProperty(Z,"isInputObjectType",{enumerable:!0,get:function(){return Te.isInputObjectType}});Object.defineProperty(Z,"isListType",{enumerable:!0,get:function(){return Te.isListType}});Object.defineProperty(Z,"isNonNullType",{enumerable:!0,get:function(){return Te.isNonNullType}});Object.defineProperty(Z,"isInputType",{enumerable:!0,get:function(){return Te.isInputType}});Object.defineProperty(Z,"isOutputType",{enumerable:!0,get:function(){return Te.isOutputType}});Object.defineProperty(Z,"isLeafType",{enumerable:!0,get:function(){return Te.isLeafType}});Object.defineProperty(Z,"isCompositeType",{enumerable:!0,get:function(){return Te.isCompositeType}});Object.defineProperty(Z,"isAbstractType",{enumerable:!0,get:function(){return Te.isAbstractType}});Object.defineProperty(Z,"isWrappingType",{enumerable:!0,get:function(){return Te.isWrappingType}});Object.defineProperty(Z,"isNullableType",{enumerable:!0,get:function(){return Te.isNullableType}});Object.defineProperty(Z,"isNamedType",{enumerable:!0,get:function(){return Te.isNamedType}});Object.defineProperty(Z,"isRequiredArgument",{enumerable:!0,get:function(){return Te.isRequiredArgument}});Object.defineProperty(Z,"isRequiredInputField",{enumerable:!0,get:function(){return Te.isRequiredInputField}});Object.defineProperty(Z,"isSpecifiedScalarType",{enumerable:!0,get:function(){return Te.isSpecifiedScalarType}});Object.defineProperty(Z,"isIntrospectionType",{enumerable:!0,get:function(){return Te.isIntrospectionType}});Object.defineProperty(Z,"isSpecifiedDirective",{enumerable:!0,get:function(){return Te.isSpecifiedDirective}});Object.defineProperty(Z,"assertSchema",{enumerable:!0,get:function(){return Te.assertSchema}});Object.defineProperty(Z,"assertDirective",{enumerable:!0,get:function(){return Te.assertDirective}});Object.defineProperty(Z,"assertType",{enumerable:!0,get:function(){return Te.assertType}});Object.defineProperty(Z,"assertScalarType",{enumerable:!0,get:function(){return Te.assertScalarType}});Object.defineProperty(Z,"assertObjectType",{enumerable:!0,get:function(){return Te.assertObjectType}});Object.defineProperty(Z,"assertInterfaceType",{enumerable:!0,get:function(){return Te.assertInterfaceType}});Object.defineProperty(Z,"assertUnionType",{enumerable:!0,get:function(){return Te.assertUnionType}});Object.defineProperty(Z,"assertEnumType",{enumerable:!0,get:function(){return Te.assertEnumType}});Object.defineProperty(Z,"assertInputObjectType",{enumerable:!0,get:function(){return Te.assertInputObjectType}});Object.defineProperty(Z,"assertListType",{enumerable:!0,get:function(){return Te.assertListType}});Object.defineProperty(Z,"assertNonNullType",{enumerable:!0,get:function(){return Te.assertNonNullType}});Object.defineProperty(Z,"assertInputType",{enumerable:!0,get:function(){return Te.assertInputType}});Object.defineProperty(Z,"assertOutputType",{enumerable:!0,get:function(){return Te.assertOutputType}});Object.defineProperty(Z,"assertLeafType",{enumerable:!0,get:function(){return Te.assertLeafType}});Object.defineProperty(Z,"assertCompositeType",{enumerable:!0,get:function(){return Te.assertCompositeType}});Object.defineProperty(Z,"assertAbstractType",{enumerable:!0,get:function(){return Te.assertAbstractType}});Object.defineProperty(Z,"assertWrappingType",{enumerable:!0,get:function(){return Te.assertWrappingType}});Object.defineProperty(Z,"assertNullableType",{enumerable:!0,get:function(){return Te.assertNullableType}});Object.defineProperty(Z,"assertNamedType",{enumerable:!0,get:function(){return Te.assertNamedType}});Object.defineProperty(Z,"getNullableType",{enumerable:!0,get:function(){return Te.getNullableType}});Object.defineProperty(Z,"getNamedType",{enumerable:!0,get:function(){return Te.getNamedType}});Object.defineProperty(Z,"validateSchema",{enumerable:!0,get:function(){return Te.validateSchema}});Object.defineProperty(Z,"assertValidSchema",{enumerable:!0,get:function(){return Te.assertValidSchema}});Object.defineProperty(Z,"Token",{enumerable:!0,get:function(){return Ut.Token}});Object.defineProperty(Z,"Source",{enumerable:!0,get:function(){return Ut.Source}});Object.defineProperty(Z,"Location",{enumerable:!0,get:function(){return Ut.Location}});Object.defineProperty(Z,"getLocation",{enumerable:!0,get:function(){return Ut.getLocation}});Object.defineProperty(Z,"printLocation",{enumerable:!0,get:function(){return Ut.printLocation}});Object.defineProperty(Z,"printSourceLocation",{enumerable:!0,get:function(){return Ut.printSourceLocation}});Object.defineProperty(Z,"Lexer",{enumerable:!0,get:function(){return Ut.Lexer}});Object.defineProperty(Z,"TokenKind",{enumerable:!0,get:function(){return Ut.TokenKind}});Object.defineProperty(Z,"parse",{enumerable:!0,get:function(){return Ut.parse}});Object.defineProperty(Z,"parseValue",{enumerable:!0,get:function(){return Ut.parseValue}});Object.defineProperty(Z,"parseType",{enumerable:!0,get:function(){return Ut.parseType}});Object.defineProperty(Z,"print",{enumerable:!0,get:function(){return Ut.print}});Object.defineProperty(Z,"visit",{enumerable:!0,get:function(){return Ut.visit}});Object.defineProperty(Z,"visitInParallel",{enumerable:!0,get:function(){return Ut.visitInParallel}});Object.defineProperty(Z,"getVisitFn",{enumerable:!0,get:function(){return Ut.getVisitFn}});Object.defineProperty(Z,"BREAK",{enumerable:!0,get:function(){return Ut.BREAK}});Object.defineProperty(Z,"Kind",{enumerable:!0,get:function(){return Ut.Kind}});Object.defineProperty(Z,"DirectiveLocation",{enumerable:!0,get:function(){return Ut.DirectiveLocation}});Object.defineProperty(Z,"isDefinitionNode",{enumerable:!0,get:function(){return Ut.isDefinitionNode}});Object.defineProperty(Z,"isExecutableDefinitionNode",{enumerable:!0,get:function(){return Ut.isExecutableDefinitionNode}});Object.defineProperty(Z,"isSelectionNode",{enumerable:!0,get:function(){return Ut.isSelectionNode}});Object.defineProperty(Z,"isValueNode",{enumerable:!0,get:function(){return Ut.isValueNode}});Object.defineProperty(Z,"isTypeNode",{enumerable:!0,get:function(){return Ut.isTypeNode}});Object.defineProperty(Z,"isTypeSystemDefinitionNode",{enumerable:!0,get:function(){return Ut.isTypeSystemDefinitionNode}});Object.defineProperty(Z,"isTypeDefinitionNode",{enumerable:!0,get:function(){return Ut.isTypeDefinitionNode}});Object.defineProperty(Z,"isTypeSystemExtensionNode",{enumerable:!0,get:function(){return Ut.isTypeSystemExtensionNode}});Object.defineProperty(Z,"isTypeExtensionNode",{enumerable:!0,get:function(){return Ut.isTypeExtensionNode}});Object.defineProperty(Z,"execute",{enumerable:!0,get:function(){return lc.execute}});Object.defineProperty(Z,"executeSync",{enumerable:!0,get:function(){return lc.executeSync}});Object.defineProperty(Z,"defaultFieldResolver",{enumerable:!0,get:function(){return lc.defaultFieldResolver}});Object.defineProperty(Z,"defaultTypeResolver",{enumerable:!0,get:function(){return lc.defaultTypeResolver}});Object.defineProperty(Z,"responsePathAsArray",{enumerable:!0,get:function(){return lc.responsePathAsArray}});Object.defineProperty(Z,"getDirectiveValues",{enumerable:!0,get:function(){return lc.getDirectiveValues}});Object.defineProperty(Z,"subscribe",{enumerable:!0,get:function(){return $I.subscribe}});Object.defineProperty(Z,"createSourceEventStream",{enumerable:!0,get:function(){return $I.createSourceEventStream}});Object.defineProperty(Z,"validate",{enumerable:!0,get:function(){return it.validate}});Object.defineProperty(Z,"ValidationContext",{enumerable:!0,get:function(){return it.ValidationContext}});Object.defineProperty(Z,"specifiedRules",{enumerable:!0,get:function(){return it.specifiedRules}});Object.defineProperty(Z,"ExecutableDefinitionsRule",{enumerable:!0,get:function(){return it.ExecutableDefinitionsRule}});Object.defineProperty(Z,"FieldsOnCorrectTypeRule",{enumerable:!0,get:function(){return it.FieldsOnCorrectTypeRule}});Object.defineProperty(Z,"FragmentsOnCompositeTypesRule",{enumerable:!0,get:function(){return it.FragmentsOnCompositeTypesRule}});Object.defineProperty(Z,"KnownArgumentNamesRule",{enumerable:!0,get:function(){return it.KnownArgumentNamesRule}});Object.defineProperty(Z,"KnownDirectivesRule",{enumerable:!0,get:function(){return it.KnownDirectivesRule}});Object.defineProperty(Z,"KnownFragmentNamesRule",{enumerable:!0,get:function(){return it.KnownFragmentNamesRule}});Object.defineProperty(Z,"KnownTypeNamesRule",{enumerable:!0,get:function(){return it.KnownTypeNamesRule}});Object.defineProperty(Z,"LoneAnonymousOperationRule",{enumerable:!0,get:function(){return it.LoneAnonymousOperationRule}});Object.defineProperty(Z,"NoFragmentCyclesRule",{enumerable:!0,get:function(){return it.NoFragmentCyclesRule}});Object.defineProperty(Z,"NoUndefinedVariablesRule",{enumerable:!0,get:function(){return it.NoUndefinedVariablesRule}});Object.defineProperty(Z,"NoUnusedFragmentsRule",{enumerable:!0,get:function(){return it.NoUnusedFragmentsRule}});Object.defineProperty(Z,"NoUnusedVariablesRule",{enumerable:!0,get:function(){return it.NoUnusedVariablesRule}});Object.defineProperty(Z,"OverlappingFieldsCanBeMergedRule",{enumerable:!0,get:function(){return it.OverlappingFieldsCanBeMergedRule}});Object.defineProperty(Z,"PossibleFragmentSpreadsRule",{enumerable:!0,get:function(){return it.PossibleFragmentSpreadsRule}});Object.defineProperty(Z,"ProvidedRequiredArgumentsRule",{enumerable:!0,get:function(){return it.ProvidedRequiredArgumentsRule}});Object.defineProperty(Z,"ScalarLeafsRule",{enumerable:!0,get:function(){return it.ScalarLeafsRule}});Object.defineProperty(Z,"SingleFieldSubscriptionsRule",{enumerable:!0,get:function(){return it.SingleFieldSubscriptionsRule}});Object.defineProperty(Z,"UniqueArgumentNamesRule",{enumerable:!0,get:function(){return it.UniqueArgumentNamesRule}});Object.defineProperty(Z,"UniqueDirectivesPerLocationRule",{enumerable:!0,get:function(){return it.UniqueDirectivesPerLocationRule}});Object.defineProperty(Z,"UniqueFragmentNamesRule",{enumerable:!0,get:function(){return it.UniqueFragmentNamesRule}});Object.defineProperty(Z,"UniqueInputFieldNamesRule",{enumerable:!0,get:function(){return it.UniqueInputFieldNamesRule}});Object.defineProperty(Z,"UniqueOperationNamesRule",{enumerable:!0,get:function(){return it.UniqueOperationNamesRule}});Object.defineProperty(Z,"UniqueVariableNamesRule",{enumerable:!0,get:function(){return it.UniqueVariableNamesRule}});Object.defineProperty(Z,"ValuesOfCorrectTypeRule",{enumerable:!0,get:function(){return it.ValuesOfCorrectTypeRule}});Object.defineProperty(Z,"VariablesAreInputTypesRule",{enumerable:!0,get:function(){return it.VariablesAreInputTypesRule}});Object.defineProperty(Z,"VariablesInAllowedPositionRule",{enumerable:!0,get:function(){return it.VariablesInAllowedPositionRule}});Object.defineProperty(Z,"LoneSchemaDefinitionRule",{enumerable:!0,get:function(){return it.LoneSchemaDefinitionRule}});Object.defineProperty(Z,"UniqueOperationTypesRule",{enumerable:!0,get:function(){return it.UniqueOperationTypesRule}});Object.defineProperty(Z,"UniqueTypeNamesRule",{enumerable:!0,get:function(){return it.UniqueTypeNamesRule}});Object.defineProperty(Z,"UniqueEnumValueNamesRule",{enumerable:!0,get:function(){return it.UniqueEnumValueNamesRule}});Object.defineProperty(Z,"UniqueFieldDefinitionNamesRule",{enumerable:!0,get:function(){return it.UniqueFieldDefinitionNamesRule}});Object.defineProperty(Z,"UniqueDirectiveNamesRule",{enumerable:!0,get:function(){return it.UniqueDirectiveNamesRule}});Object.defineProperty(Z,"PossibleTypeExtensionsRule",{enumerable:!0,get:function(){return it.PossibleTypeExtensionsRule}});Object.defineProperty(Z,"NoDeprecatedCustomRule",{enumerable:!0,get:function(){return it.NoDeprecatedCustomRule}});Object.defineProperty(Z,"NoSchemaIntrospectionCustomRule",{enumerable:!0,get:function(){return it.NoSchemaIntrospectionCustomRule}});Object.defineProperty(Z,"GraphQLError",{enumerable:!0,get:function(){return sp.GraphQLError}});Object.defineProperty(Z,"syntaxError",{enumerable:!0,get:function(){return sp.syntaxError}});Object.defineProperty(Z,"locatedError",{enumerable:!0,get:function(){return sp.locatedError}});Object.defineProperty(Z,"printError",{enumerable:!0,get:function(){return sp.printError}});Object.defineProperty(Z,"formatError",{enumerable:!0,get:function(){return sp.formatError}});Object.defineProperty(Z,"getIntrospectionQuery",{enumerable:!0,get:function(){return gt.getIntrospectionQuery}});Object.defineProperty(Z,"getOperationAST",{enumerable:!0,get:function(){return gt.getOperationAST}});Object.defineProperty(Z,"getOperationRootType",{enumerable:!0,get:function(){return gt.getOperationRootType}});Object.defineProperty(Z,"introspectionFromSchema",{enumerable:!0,get:function(){return gt.introspectionFromSchema}});Object.defineProperty(Z,"buildClientSchema",{enumerable:!0,get:function(){return gt.buildClientSchema}});Object.defineProperty(Z,"buildASTSchema",{enumerable:!0,get:function(){return gt.buildASTSchema}});Object.defineProperty(Z,"buildSchema",{enumerable:!0,get:function(){return gt.buildSchema}});Object.defineProperty(Z,"getDescription",{enumerable:!0,get:function(){return gt.getDescription}});Object.defineProperty(Z,"extendSchema",{enumerable:!0,get:function(){return gt.extendSchema}});Object.defineProperty(Z,"lexicographicSortSchema",{enumerable:!0,get:function(){return gt.lexicographicSortSchema}});Object.defineProperty(Z,"printSchema",{enumerable:!0,get:function(){return gt.printSchema}});Object.defineProperty(Z,"printType",{enumerable:!0,get:function(){return gt.printType}});Object.defineProperty(Z,"printIntrospectionSchema",{enumerable:!0,get:function(){return gt.printIntrospectionSchema}});Object.defineProperty(Z,"typeFromAST",{enumerable:!0,get:function(){return gt.typeFromAST}});Object.defineProperty(Z,"valueFromAST",{enumerable:!0,get:function(){return gt.valueFromAST}});Object.defineProperty(Z,"valueFromASTUntyped",{enumerable:!0,get:function(){return gt.valueFromASTUntyped}});Object.defineProperty(Z,"astFromValue",{enumerable:!0,get:function(){return gt.astFromValue}});Object.defineProperty(Z,"TypeInfo",{enumerable:!0,get:function(){return gt.TypeInfo}});Object.defineProperty(Z,"visitWithTypeInfo",{enumerable:!0,get:function(){return gt.visitWithTypeInfo}});Object.defineProperty(Z,"coerceInputValue",{enumerable:!0,get:function(){return gt.coerceInputValue}});Object.defineProperty(Z,"concatAST",{enumerable:!0,get:function(){return gt.concatAST}});Object.defineProperty(Z,"separateOperations",{enumerable:!0,get:function(){return gt.separateOperations}});Object.defineProperty(Z,"stripIgnoredCharacters",{enumerable:!0,get:function(){return gt.stripIgnoredCharacters}});Object.defineProperty(Z,"isEqualType",{enumerable:!0,get:function(){return gt.isEqualType}});Object.defineProperty(Z,"isTypeSubTypeOf",{enumerable:!0,get:function(){return gt.isTypeSubTypeOf}});Object.defineProperty(Z,"doTypesOverlap",{enumerable:!0,get:function(){return gt.doTypesOverlap}});Object.defineProperty(Z,"assertValidName",{enumerable:!0,get:function(){return gt.assertValidName}});Object.defineProperty(Z,"isValidNameError",{enumerable:!0,get:function(){return gt.isValidNameError}});Object.defineProperty(Z,"BreakingChangeType",{enumerable:!0,get:function(){return gt.BreakingChangeType}});Object.defineProperty(Z,"DangerousChangeType",{enumerable:!0,get:function(){return gt.DangerousChangeType}});Object.defineProperty(Z,"findBreakingChanges",{enumerable:!0,get:function(){return gt.findBreakingChanges}});Object.defineProperty(Z,"findDangerousChanges",{enumerable:!0,get:function(){return gt.findDangerousChanges}});Object.defineProperty(Z,"findDeprecatedUsages",{enumerable:!0,get:function(){return gt.findDeprecatedUsages}});var XI=gA(),ZI=kx(),Te=Cx(),Ut=Nx(),lc=Lx(),$I=Kx(),it=zx(),sp=Jx(),gt=JI()});var tR=U((Rne,eR)=>{eR.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],n=0;n{"use strict";var RW=tR(),rR={"text/plain":"Text","text/html":"Url",default:"Text"},FW="Copy to clipboard: #{key}, Enter";function jW(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}function PW(e,t){var r,n,a,o,s,l,d=!1;t||(t={}),r=t.debug||!1;try{a=RW(),o=document.createRange(),s=document.getSelection(),l=document.createElement("span"),l.textContent=e,l.style.all="unset",l.style.position="fixed",l.style.top=0,l.style.clip="rect(0, 0, 0, 0)",l.style.whiteSpace="pre",l.style.webkitUserSelect="text",l.style.MozUserSelect="text",l.style.msUserSelect="text",l.style.userSelect="text",l.addEventListener("copy",function(v){if(v.stopPropagation(),t.format)if(v.preventDefault(),typeof v.clipboardData=="undefined"){r&&console.warn("unable to use e.clipboardData"),r&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var b=rR[t.format]||rR.default;window.clipboardData.setData(b,e)}else v.clipboardData.clearData(),v.clipboardData.setData(t.format,e);t.onCopy&&(v.preventDefault(),t.onCopy(v.clipboardData))}),document.body.appendChild(l),o.selectNodeContents(l),s.addRange(o);var h=document.execCommand("copy");if(!h)throw new Error("copy command was unsuccessful");d=!0}catch(v){r&&console.error("unable to copy using execCommand: ",v),r&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),d=!0}catch(b){r&&console.error("unable to copy using clipboardData: ",b),r&&console.error("falling back to prompt"),n=jW("message"in t?t.message:FW),window.prompt(n,e)}}finally{s&&(typeof s.removeRange=="function"?s.removeRange(o):s.removeAllRanges()),l&&document.body.removeChild(l),a()}return d}nR.exports=PW});var iD=U((jne,sm)=>{"use strict";function aR(e,t){if(e!=null)return e;var r=new Error(t!==void 0?t:"Got unexpected "+e);throw r.framesToPop=1,r}sm.exports=aR;sm.exports.default=aR;Object.defineProperty(sm.exports,"__esModule",{value:!0})});var fR=U((gie,QW)=>{QW.exports={Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",amp:"&",AMP:"&",andand:"\u2A55",And:"\u2A53",and:"\u2227",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angmsd:"\u2221",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",apacir:"\u2A6F",ap:"\u2248",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250C",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252C",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxul:"\u2518",boxuL:"\u255B",boxUl:"\u255C",boxUL:"\u255D",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255A",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253C",boxvH:"\u256A",boxVh:"\u256B",boxVH:"\u256C",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251C",boxvR:"\u255E",boxVr:"\u255F",boxVR:"\u2560",bprime:"\u2035",breve:"\u02D8",Breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",Bscr:"\u212C",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsolb:"\u29C5",bsol:"\\",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",cap:"\u2229",Cap:"\u22D2",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",CenterDot:"\xB7",cfr:"\u{1D520}",Cfr:"\u212D",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25CB",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",conint:"\u222E",Conint:"\u222F",ContourIntegral:"\u222E",copf:"\u{1D554}",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xA9",COPY:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",cross:"\u2717",Cross:"\u2A2F",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cupbrcap:"\u2A48",cupcap:"\u2A46",CupCap:"\u224D",cup:"\u222A",Cup:"\u22D3",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21A1",dArr:"\u21D3",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21CA",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",diamond:"\u22C4",Diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21D3",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21BD",DownRightTeeVector:"\u295F",DownRightVectorBar:"\u2957",DownRightVector:"\u21C1",DownTeeArrow:"\u21A7",DownTee:"\u22A4",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",Ecirc:"\xCA",ecirc:"\xEA",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",escr:"\u212F",Escr:"\u2130",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",forall:"\u2200",ForAll:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",Fscr:"\u2131",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",gescc:"\u2AA9",ges:"\u2A7E",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",gg:"\u226B",Gg:"\u22D9",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2AA5",gl:"\u2277",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gnE:"\u2269",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gtcc:"\u2AA7",gtcir:"\u2A7A",gt:">",GT:">",Gt:"\u226B",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",harrcir:"\u2948",harr:"\u2194",hArr:"\u21D4",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",Hfr:"\u210C",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",Hopf:"\u210D",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\u{1D4BD}",Hscr:"\u210B",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",Ifr:"\u2111",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",incare:"\u2105",in:"\u2208",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",intcal:"\u22BA",int:"\u222B",Int:"\u222C",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",Iscr:"\u2110",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",lang:"\u27E8",Lang:"\u27EA",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",larrb:"\u21E4",larrbfs:"\u291F",larr:"\u2190",Larr:"\u219E",lArr:"\u21D0",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",latail:"\u2919",lAtail:"\u291B",lat:"\u2AAB",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lBarr:"\u290E",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27E8",LeftArrowBar:"\u21E4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21D0",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21C3",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTeeArrow:"\u21A4",LeftTee:"\u22A3",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangleBar:"\u29CF",LeftTriangle:"\u22B2",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21BF",LeftVectorBar:"\u2952",LeftVector:"\u21BC",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",lescc:"\u2AA8",les:"\u2A7D",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21C7",ll:"\u226A",Ll:"\u22D8",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoustache:"\u23B0",lmoust:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lnE:"\u2268",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftrightarrow:"\u27F7",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longmapsto:"\u27FC",longrightarrow:"\u27F6",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",Lscr:"\u2112",lsh:"\u21B0",Lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2AA6",ltcir:"\u2A79",lt:"<",LT:"<",Lt:"\u226A",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",midast:"*",midcir:"\u2AF0",mid:"\u2223",middot:"\xB7",minusb:"\u229F",minus:"\u2212",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",Mscr:"\u2133",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266E",naturals:"\u2115",natur:"\u266E",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21D7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nharr:"\u21AE",nhArr:"\u21CE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlarr:"\u219A",nlArr:"\u21CD",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219A",nLeftarrow:"\u21CD",nleftrightarrow:"\u21AE",nLeftrightarrow:"\u21CE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",nopf:"\u{1D55F}",Nopf:"\u2115",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangle:"\u22EB",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",nprec:"\u2280",npreceq:"\u2AAF\u0338",npre:"\u2AAF\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219B",nrArr:"\u21CF",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nRightarrow:"\u21CF",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvDash:"\u22AD",nVdash:"\u22AE",nVDash:"\u22AF",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21D6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",Ocirc:"\xD4",ocirc:"\xF4",ocir:"\u229A",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",orarr:"\u21BB",Or:"\u2A54",or:"\u2228",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",otimesas:"\u2A36",Otimes:"\u2A37",otimes:"\u2297",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",para:"\xB6",parallel:"\u2225",par:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plus:"+",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",popf:"\u{1D561}",Popf:"\u2119",pound:"\xA3",prap:"\u2AB7",Pr:"\u2ABB",pr:"\u227A",prcue:"\u227C",precapprox:"\u2AB7",prec:"\u227A",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",pre:"\u2AAF",prE:"\u2AB3",precsim:"\u227E",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportional:"\u221D",Proportion:"\u2237",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",Qopf:"\u211A",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',QUOT:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",Rang:"\u27EB",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21A0",rArr:"\u21D2",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",rAtail:"\u291C",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rBarr:"\u290F",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",Re:"\u211C",rect:"\u25AD",reg:"\xAE",REG:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",Rfr:"\u211C",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrowBar:"\u21E5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21D2",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVectorBar:"\u2955",RightDownVector:"\u21C2",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTeeArrow:"\u21A6",RightTee:"\u22A2",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangleBar:"\u29D0",RightTriangle:"\u22B3",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVectorBar:"\u2954",RightUpVector:"\u21BE",RightVectorBar:"\u2953",RightVector:"\u21C0",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoustache:"\u23B1",rmoust:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",Ropf:"\u211D",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",rscr:"\u{1D4C7}",Rscr:"\u211B",rsh:"\u21B1",Rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2ABC",sc:"\u227B",sccue:"\u227D",sce:"\u2AB0",scE:"\u2AB4",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdotb:"\u22A1",sdot:"\u22C5",sdote:"\u2A66",searhk:"\u2925",searr:"\u2198",seArr:"\u21D8",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",solbar:"\u233F",solb:"\u29C4",sol:"/",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25A1",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squ:"\u25A1",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",Sub:"\u22D0",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",Subset:"\u22D0",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succapprox:"\u2AB8",succ:"\u227B",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",sum:"\u2211",Sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",Sup:"\u22D1",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",Supset:"\u22D1",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21D9",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",tilde:"\u02DC",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2A31",timesb:"\u22A0",times:"\xD7",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",topbot:"\u2336",topcir:"\u2AF1",top:"\u22A4",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",uarr:"\u2191",Uarr:"\u219F",uArr:"\u21D1",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21D1",UpArrowDownArrow:"\u21C5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21D5",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03C5",Upsi:"\u03D2",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTeeArrow:"\u21A5",UpTee:"\u22A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",vArr:"\u21D5",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vBar:"\u2AE8",Vbar:"\u2AEB",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22A2",vDash:"\u22A8",Vdash:"\u22A9",VDash:"\u22AB",Vdashl:"\u2AE6",veebar:"\u22BB",vee:"\u2228",Vee:"\u22C1",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",Wedge:"\u22C0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xharr:"\u27F7",xhArr:"\u27FA",Xi:"\u039E",xi:"\u03BE",xlarr:"\u27F5",xlArr:"\u27F8",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrarr:"\u27F6",xrArr:"\u27F9",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",yuml:"\xFF",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",zfr:"\u{1D537}",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",Zopf:"\u2124",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"}});var fD=U((mie,dR)=>{"use strict";dR.exports=fR()});var cm=U((yie,pR)=>{pR.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/});var gR=U((bie,vR)=>{"use strict";var hR={};function KW(e){var t,r,n=hR[e];if(n)return n;for(n=hR[e]=[],t=0;t<128;t++)r=String.fromCharCode(t),/^[0-9a-z]$/i.test(r)?n.push(r):n.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t=55296&&o<=57343){if(o>=55296&&o<=56319&&n+1=56320&&s<=57343)){d+=encodeURIComponent(e[n]+e[n+1]),n++;continue}d+="%EF%BF%BD";continue}d+=encodeURIComponent(e[n])}return d}fm.defaultChars=";/?:@&=+$,-_.!~*'()#";fm.componentChars="-_.!~*'()";vR.exports=fm});var bR=U((Tie,yR)=>{"use strict";var mR={};function HW(e){var t,r,n=mR[e];if(n)return n;for(n=mR[e]=[],t=0;t<128;t++)r=String.fromCharCode(t),n.push(r);for(t=0;t=55296&&v<=57343?b+="\uFFFD\uFFFD\uFFFD":b+=String.fromCharCode(v),a+=6;continue}if((s&248)==240&&a+91114111?b+="\uFFFD\uFFFD\uFFFD\uFFFD":(v-=65536,b+=String.fromCharCode(55296+(v>>10),56320+(v&1023))),a+=9;continue}b+="\uFFFD"}return b})}dm.defaultChars=";/?:@&=+$,#";dm.componentChars="";yR.exports=dm});var ER=U((Eie,TR)=>{"use strict";TR.exports=function(t){var r="";return r+=t.protocol||"",r+=t.slashes?"//":"",r+=t.auth?t.auth+"@":"",t.hostname&&t.hostname.indexOf(":")!==-1?r+="["+t.hostname+"]":r+=t.hostname||"",r+=t.port?":"+t.port:"",r+=t.pathname||"",r+=t.search||"",r+=t.hash||"",r}});var wR=U((_ie,CR)=>{"use strict";function pm(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var zW=/^([a-z0-9.+-]+:)/i,WW=/:[0-9]*$/,YW=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,JW=["<",">",'"',"`"," ","\r",` +`," "],XW=["{","}","|","\\","^","`"].concat(JW),ZW=["'"].concat(XW),_R=["%","/","?",";","#"].concat(ZW),SR=["/","?","#"],$W=255,DR=/^[+a-z0-9A-Z_-]{0,63}$/,eY=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,kR={javascript:!0,"javascript:":!0},OR={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function tY(e,t){if(e&&e instanceof pm)return e;var r=new pm;return r.parse(e,t),r}pm.prototype.parse=function(e,t){var r,n,a,o,s,l=e;if(l=l.trim(),!t&&e.split("#").length===1){var d=YW.exec(l);if(d)return this.pathname=d[1],d[2]&&(this.search=d[2]),this}var h=zW.exec(l);if(h&&(h=h[0],a=h.toLowerCase(),this.protocol=h,l=l.substr(h.length)),(t||h||l.match(/^\/\/[^@\/]+@[^@\/]+/))&&(s=l.substr(0,2)==="//",s&&!(h&&kR[h])&&(l=l.substr(2),this.slashes=!0)),!kR[h]&&(s||h&&!OR[h])){var v=-1;for(r=0;r127?_+="x":_+=y[m];if(!_.match(DR)){var w=S.slice(0,r),C=S.slice(r+1),D=y.match(eY);D&&(w.push(D[1]),C.unshift(D[2])),C.length&&(l=C.join(".")+l),this.hostname=w.join(".");break}}}}this.hostname.length>$W&&(this.hostname=""),L&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var R=l.indexOf("#");R!==-1&&(this.hash=l.substr(R),l=l.slice(0,R));var M=l.indexOf("?");return M!==-1&&(this.search=l.substr(M),l=l.slice(0,M)),l&&(this.pathname=l),OR[a]&&this.hostname&&!this.pathname&&(this.pathname=""),this};pm.prototype.parseHost=function(e){var t=WW.exec(e);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};CR.exports=tY});var dD=U((Sie,cp)=>{"use strict";cp.exports.encode=gR();cp.exports.decode=bR();cp.exports.format=ER();cp.exports.parse=wR()});var pD=U((Die,AR)=>{AR.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/});var hD=U((kie,NR)=>{NR.exports=/[\0-\x1F\x7F-\x9F]/});var xR=U((Oie,LR)=>{LR.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/});var vD=U((Cie,IR)=>{IR.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/});var RR=U(cc=>{"use strict";cc.Any=pD();cc.Cc=hD();cc.Cf=xR();cc.P=cm();cc.Z=vD()});var Ct=U(Vr=>{"use strict";function rY(e){return Object.prototype.toString.call(e)}function nY(e){return rY(e)==="[object String]"}var iY=Object.prototype.hasOwnProperty;function FR(e,t){return iY.call(e,t)}function aY(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(r){if(!!r){if(typeof r!="object")throw new TypeError(r+"must be object");Object.keys(r).forEach(function(n){e[n]=r[n]})}}),e}function oY(e,t,r){return[].concat(e.slice(0,t),r,e.slice(t+1))}function jR(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)==65535||(e&65535)==65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function PR(e){if(e>65535){e-=65536;var t=55296+(e>>10),r=56320+(e&1023);return String.fromCharCode(t,r)}return String.fromCharCode(e)}var MR=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,uY=/&([a-z#][a-z0-9]{1,31});/gi,sY=new RegExp(MR.source+"|"+uY.source,"gi"),lY=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,qR=fD();function cY(e,t){var r=0;return FR(qR,t)?qR[t]:t.charCodeAt(0)===35&&lY.test(t)&&(r=t[1].toLowerCase()==="x"?parseInt(t.slice(2),16):parseInt(t.slice(1),10),jR(r))?PR(r):e}function fY(e){return e.indexOf("\\")<0?e:e.replace(MR,"$1")}function dY(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(sY,function(t,r,n){return r||cY(t,n)})}var pY=/[&<>"]/,hY=/[&<>"]/g,vY={"&":"&","<":"<",">":">",'"':"""};function gY(e){return vY[e]}function mY(e){return pY.test(e)?e.replace(hY,gY):e}var yY=/[.?*+^$[\]\\(){}|-]/g;function bY(e){return e.replace(yY,"\\$&")}function TY(e){switch(e){case 9:case 32:return!0}return!1}function EY(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}var _Y=cm();function SY(e){return _Y.test(e)}function DY(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function kY(e){return e=e.trim().replace(/\s+/g," "),"\u1E9E".toLowerCase()==="\u1E7E"&&(e=e.replace(/ẞ/g,"\xDF")),e.toLowerCase().toUpperCase()}Vr.lib={};Vr.lib.mdurl=dD();Vr.lib.ucmicro=RR();Vr.assign=aY;Vr.isString=nY;Vr.has=FR;Vr.unescapeMd=fY;Vr.unescapeAll=dY;Vr.isValidEntityCode=jR;Vr.fromCodePoint=PR;Vr.escapeHtml=mY;Vr.arrayReplaceAt=oY;Vr.isSpace=TY;Vr.isWhiteSpace=EY;Vr.isMdAsciiPunct=DY;Vr.isPunctChar=SY;Vr.escapeRE=bY;Vr.normalizeReference=kY});var VR=U((Nie,BR)=>{"use strict";BR.exports=function(t,r,n){var a,o,s,l,d=-1,h=t.posMax,v=t.pos;for(t.pos=r+1,a=1;t.pos{"use strict";var UR=Ct().unescapeAll;GR.exports=function(t,r,n){var a,o,s=0,l=r,d={ok:!1,pos:0,lines:0,str:""};if(t.charCodeAt(r)===60){for(r++;r{"use strict";var OY=Ct().unescapeAll;KR.exports=function(t,r,n){var a,o,s=0,l=r,d={ok:!1,pos:0,lines:0,str:""};if(r>=n||(o=t.charCodeAt(r),o!==34&&o!==39&&o!==40))return d;for(r++,o===40&&(o=41);r{"use strict";hm.parseLinkLabel=VR();hm.parseLinkDestination=QR();hm.parseLinkTitle=HR()});var YR=U((Rie,WR)=>{"use strict";var CY=Ct().assign,wY=Ct().unescapeAll,bs=Ct().escapeHtml,Ia={};Ia.code_inline=function(e,t,r,n,a){var o=e[t];return""+bs(e[t].content)+""};Ia.code_block=function(e,t,r,n,a){var o=e[t];return""+bs(e[t].content)+` +`};Ia.fence=function(e,t,r,n,a){var o=e[t],s=o.info?wY(o.info).trim():"",l="",d,h,v,b;return s&&(l=s.split(/\s+/g)[0]),r.highlight?d=r.highlight(o.content,l)||bs(o.content):d=bs(o.content),d.indexOf(""+d+` +`):"
"+d+`
+`};Ia.image=function(e,t,r,n,a){var o=e[t];return o.attrs[o.attrIndex("alt")][1]=a.renderInlineAsText(o.children,r,n),a.renderToken(e,t,r)};Ia.hardbreak=function(e,t,r){return r.xhtmlOut?`
+`:`
+`};Ia.softbreak=function(e,t,r){return r.breaks?r.xhtmlOut?`
+`:`
+`:` +`};Ia.text=function(e,t){return bs(e[t].content)};Ia.html_block=function(e,t){return e[t].content};Ia.html_inline=function(e,t){return e[t].content};function fc(){this.rules=CY({},Ia)}fc.prototype.renderAttrs=function(t){var r,n,a;if(!t.attrs)return"";for(a="",r=0,n=t.attrs.length;r +`:">",o)};fc.prototype.renderInline=function(e,t,r){for(var n,a="",o=this.rules,s=0,l=e.length;s{"use strict";function ua(){this.__rules__=[],this.__cache__=null}ua.prototype.__find__=function(e){for(var t=0;t{"use strict";var AY=/\r\n?|\n/g,NY=/\0/g;XR.exports=function(t){var r;r=t.src.replace(AY,` +`),r=r.replace(NY,"\uFFFD"),t.src=r}});var eF=U((Pie,$R)=>{"use strict";$R.exports=function(t){var r;t.inlineMode?(r=new t.Token("inline","",0),r.content=t.src,r.map=[0,1],r.children=[],t.tokens.push(r)):t.md.block.parse(t.src,t.md,t.env,t.tokens)}});var rF=U((Mie,tF)=>{"use strict";tF.exports=function(t){var r=t.tokens,n,a,o;for(a=0,o=r.length;a{"use strict";var LY=Ct().arrayReplaceAt;function xY(e){return/^\s]/i.test(e)}function IY(e){return/^<\/a\s*>/i.test(e)}nF.exports=function(t){var r,n,a,o,s,l,d,h,v,b,T,A,L,S,y,_,m=t.tokens,k;if(!!t.md.options.linkify){for(n=0,a=m.length;n=0;r--){if(l=o[r],l.type==="link_close"){for(r--;o[r].level!==l.level&&o[r].type!=="link_open";)r--;continue}if(l.type==="html_inline"&&(xY(l.content)&&L>0&&L--,IY(l.content)&&L++),!(L>0)&&l.type==="text"&&t.md.linkify.test(l.content)){for(v=l.content,k=t.md.linkify.match(v),d=[],A=l.level,T=0,h=0;hT&&(s=new t.Token("text","",0),s.content=v.slice(T,b),s.level=A,d.push(s)),s=new t.Token("link_open","a",1),s.attrs=[["href",y]],s.level=A++,s.markup="linkify",s.info="auto",d.push(s),s=new t.Token("text","",0),s.content=_,s.level=A,d.push(s),s=new t.Token("link_close","a",-1),s.level=--A,s.markup="linkify",s.info="auto",d.push(s),T=k[h].lastIndex);T{"use strict";var aF=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,RY=/\((c|tm|r|p)\)/i,FY=/\((c|tm|r|p)\)/ig,jY={c:"\xA9",r:"\xAE",p:"\xA7",tm:"\u2122"};function PY(e,t){return jY[t.toLowerCase()]}function MY(e){var t,r,n=0;for(t=e.length-1;t>=0;t--)r=e[t],r.type==="text"&&!n&&(r.content=r.content.replace(FY,PY)),r.type==="link_open"&&r.info==="auto"&&n--,r.type==="link_close"&&r.info==="auto"&&n++}function qY(e){var t,r,n=0;for(t=e.length-1;t>=0;t--)r=e[t],r.type==="text"&&!n&&aF.test(r.content)&&(r.content=r.content.replace(/\+-/g,"\xB1").replace(/\.{2,}/g,"\u2026").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---([^-]|$)/mg,"$1\u2014$2").replace(/(^|\s)--(\s|$)/mg,"$1\u2013$2").replace(/(^|[^-\s])--([^-\s]|$)/mg,"$1\u2013$2")),r.type==="link_open"&&r.info==="auto"&&n--,r.type==="link_close"&&r.info==="auto"&&n++}oF.exports=function(t){var r;if(!!t.md.options.typographer)for(r=t.tokens.length-1;r>=0;r--)t.tokens[r].type==="inline"&&(RY.test(t.tokens[r].content)&&MY(t.tokens[r].children),aF.test(t.tokens[r].content)&&qY(t.tokens[r].children))}});var hF=U((Vie,pF)=>{"use strict";var sF=Ct().isWhiteSpace,lF=Ct().isPunctChar,cF=Ct().isMdAsciiPunct,BY=/['"]/,fF=/['"]/g,dF="\u2019";function gm(e,t,r){return e.substr(0,t)+r+e.substr(t+1)}function VY(e,t){var r,n,a,o,s,l,d,h,v,b,T,A,L,S,y,_,m,k,w,C,D;for(w=[],r=0;r=0&&!(w[m].level<=d);m--);if(w.length=m+1,n.type!=="text")continue;a=n.content,s=0,l=a.length;e:for(;s=0)v=a.charCodeAt(o.index-1);else for(m=r-1;m>=0&&!(e[m].type==="softbreak"||e[m].type==="hardbreak");m--)if(e[m].type==="text"){v=e[m].content.charCodeAt(e[m].content.length-1);break}if(b=32,s=48&&v<=57&&(_=y=!1),y&&_&&(y=!1,_=A),!y&&!_){k&&(n.content=gm(n.content,o.index,dF));continue}if(_){for(m=w.length-1;m>=0&&(h=w[m],!(w[m].level=0;r--)t.tokens[r].type!=="inline"||!BY.test(t.tokens[r].content)||VY(t.tokens[r].children,t)}});var mm=U((Uie,vF)=>{"use strict";function dc(e,t,r){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=r,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}dc.prototype.attrIndex=function(t){var r,n,a;if(!this.attrs)return-1;for(r=this.attrs,n=0,a=r.length;n=0&&(n=this.attrs[r][1]),n};dc.prototype.attrJoin=function(t,r){var n=this.attrIndex(t);n<0?this.attrPush([t,r]):this.attrs[n][1]=this.attrs[n][1]+" "+r};vF.exports=dc});var yF=U((Gie,mF)=>{"use strict";var UY=mm();function gF(e,t,r){this.src=e,this.env=r,this.tokens=[],this.inlineMode=!1,this.md=t}gF.prototype.Token=UY;mF.exports=gF});var TF=U((Qie,bF)=>{"use strict";var GY=vm(),gD=[["normalize",ZR()],["block",eF()],["inline",rF()],["linkify",iF()],["replacements",uF()],["smartquotes",hF()]];function mD(){this.ruler=new GY;for(var e=0;e{"use strict";var QY=Ct().isSpace;function yD(e,t){var r=e.bMarks[t]+e.blkIndent,n=e.eMarks[t];return e.src.substr(r,n-r)}function EF(e){var t=[],r=0,n=e.length,a,o=0,s=0,l=!1,d=0;for(a=e.charCodeAt(r);rn||(h=r+1,t.sCount[h]=4||(l=t.bMarks[h]+t.tShift[h],l>=t.eMarks[h])||(o=t.src.charCodeAt(l++),o!==124&&o!==45&&o!==58))return!1;for(;l=4||(v=EF(s.replace(/^\||\|$/g,"")),b=v.length,b>A.length))return!1;if(a)return!0;for(T=t.push("table_open","table",1),T.map=S=[r,0],T=t.push("thead_open","thead",1),T.map=[r,r+1],T=t.push("tr_open","tr",1),T.map=[r,r+1],d=0;d=4);h++){for(v=EF(s.replace(/^\||\|$/g,"")),T=t.push("tr_open","tr",1),d=0;d{"use strict";DF.exports=function(t,r,n){var a,o,s;if(t.sCount[r]-t.blkIndent<4)return!1;for(o=a=r+1;a=4){a++,o=a;continue}break}return t.line=o,s=t.push("code_block","code",0),s.content=t.getLines(r,o,4+t.blkIndent,!0),s.map=[r,t.line],!0}});var CF=U((zie,OF)=>{"use strict";OF.exports=function(t,r,n,a){var o,s,l,d,h,v,b,T=!1,A=t.bMarks[r]+t.tShift[r],L=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||A+3>L||(o=t.src.charCodeAt(A),o!==126&&o!==96)||(h=A,A=t.skipChars(A,o),s=A-h,s<3)||(b=t.src.slice(h,A),l=t.src.slice(A,L),o===96&&l.indexOf(String.fromCharCode(o))>=0))return!1;if(a)return!0;for(d=r;d++,!(d>=n||(A=h=t.bMarks[d]+t.tShift[d],L=t.eMarks[d],A=4)&&(A=t.skipChars(A,o),!(A-h{"use strict";var wF=Ct().isSpace;AF.exports=function(t,r,n,a){var o,s,l,d,h,v,b,T,A,L,S,y,_,m,k,w,C,D,R,M,q=t.lineMax,z=t.bMarks[r]+t.tShift[r],Q=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||t.src.charCodeAt(z++)!==62)return!1;if(a)return!0;for(d=A=t.sCount[r]+z-(t.bMarks[r]+t.tShift[r]),t.src.charCodeAt(z)===32?(z++,d++,A++,o=!1,w=!0):t.src.charCodeAt(z)===9?(w=!0,(t.bsCount[r]+A)%4==3?(z++,d++,A++,o=!1):o=!0):w=!1,L=[t.bMarks[r]],t.bMarks[r]=z;z=Q,m=[t.sCount[r]],t.sCount[r]=A-d,k=[t.tShift[r]],t.tShift[r]=z-t.bMarks[r],D=t.md.block.ruler.getRules("blockquote"),_=t.parentType,t.parentType="blockquote",M=!1,T=r+1;T=Q));T++){if(t.src.charCodeAt(z++)===62&&!M){for(d=A=t.sCount[T]+z-(t.bMarks[T]+t.tShift[T]),t.src.charCodeAt(z)===32?(z++,d++,A++,o=!1,w=!0):t.src.charCodeAt(z)===9?(w=!0,(t.bsCount[T]+A)%4==3?(z++,d++,A++,o=!1):o=!0):w=!1,L.push(t.bMarks[T]),t.bMarks[T]=z;z=Q,S.push(t.bsCount[T]),t.bsCount[T]=t.sCount[T]+1+(w?1:0),m.push(t.sCount[T]),t.sCount[T]=A-d,k.push(t.tShift[T]),t.tShift[T]=z-t.bMarks[T];continue}if(v)break;for(C=!1,l=0,h=D.length;l",R.map=b=[r,0],t.md.block.tokenize(t,r,T),R=t.push("blockquote_close","blockquote",-1),R.markup=">",t.lineMax=q,t.parentType=_,b[1]=t.line,l=0;l{"use strict";var KY=Ct().isSpace;LF.exports=function(t,r,n,a){var o,s,l,d,h=t.bMarks[r]+t.tShift[r],v=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||(o=t.src.charCodeAt(h++),o!==42&&o!==45&&o!==95))return!1;for(s=1;h{"use strict";var IF=Ct().isSpace;function RF(e,t){var r,n,a,o;return n=e.bMarks[t]+e.tShift[t],a=e.eMarks[t],r=e.src.charCodeAt(n++),r!==42&&r!==45&&r!==43||n=o||(r=e.src.charCodeAt(a++),r<48||r>57))return-1;for(;;){if(a>=o)return-1;if(r=e.src.charCodeAt(a++),r>=48&&r<=57){if(a-n>=10)return-1;continue}if(r===41||r===46)break;return-1}return a=4||t.listIndent>=0&&t.sCount[r]-t.listIndent>=4&&t.sCount[r]=t.blkIndent&&(Ce=!0),(Q=FF(t,r))>=0){if(b=!0,j=t.bMarks[r]+t.tShift[r],_=Number(t.src.substr(j,Q-j-1)),Ce&&_!==1)return!1}else if((Q=RF(t,r))>=0)b=!1;else return!1;if(Ce&&t.skipSpaces(Q)>=t.eMarks[r])return!1;if(y=t.src.charCodeAt(Q-1),a)return!0;for(S=t.tokens.length,b?(be=t.push("ordered_list_open","ol",1),_!==1&&(be.attrs=[["start",_]])):be=t.push("bullet_list_open","ul",1),be.map=L=[r,0],be.markup=String.fromCharCode(y),k=r,G=!1,ke=t.md.block.ruler.getRules("list"),D=t.parentType,t.parentType="list";k=m?h=1:h=w-v,h>4&&(h=1),d=v+h,be=t.push("list_item_open","li",1),be.markup=String.fromCharCode(y),be.map=T=[r,0],q=t.tight,M=t.tShift[r],R=t.sCount[r],C=t.listIndent,t.listIndent=t.blkIndent,t.blkIndent=d,t.tight=!0,t.tShift[r]=s-t.bMarks[r],t.sCount[r]=w,s>=m&&t.isEmpty(r+1)?t.line=Math.min(t.line+2,n):t.md.block.tokenize(t,r,n,!0),(!t.tight||G)&&(we=!1),G=t.line-r>1&&t.isEmpty(t.line-1),t.blkIndent=t.listIndent,t.listIndent=C,t.tShift[r]=M,t.sCount[r]=R,t.tight=q,be=t.push("list_item_close","li",-1),be.markup=String.fromCharCode(y),k=r=t.line,T[1]=k,s=t.bMarks[r],k>=n||t.sCount[k]=4)break;for(ce=!1,l=0,A=ke.length;l{"use strict";var zY=Ct().normalizeReference,ym=Ct().isSpace;MF.exports=function(t,r,n,a){var o,s,l,d,h,v,b,T,A,L,S,y,_,m,k,w,C=0,D=t.bMarks[r]+t.tShift[r],R=t.eMarks[r],M=r+1;if(t.sCount[r]-t.blkIndent>=4||t.src.charCodeAt(D)!==91)return!1;for(;++D3)&&!(t.sCount[M]<0)){for(m=!1,v=0,b=k.length;v{"use strict";var BF=Ct().isSpace;VF.exports=function(t,r,n,a){var o,s,l,d,h=t.bMarks[r]+t.tShift[r],v=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||(o=t.src.charCodeAt(h),o!==35||h>=v))return!1;for(s=1,o=t.src.charCodeAt(++h);o===35&&h6||hh&&BF(t.src.charCodeAt(l-1))&&(v=l),t.line=r+1,d=t.push("heading_open","h"+String(s),1),d.markup="########".slice(0,s),d.map=[r,t.line],d=t.push("inline","",0),d.content=t.src.slice(h,v).trim(),d.map=[r,t.line],d.children=[],d=t.push("heading_close","h"+String(s),-1),d.markup="########".slice(0,s)),!0)}});var QF=U(($ie,GF)=>{"use strict";GF.exports=function(t,r,n){var a,o,s,l,d,h,v,b,T,A=r+1,L,S=t.md.block.ruler.getRules("paragraph");if(t.sCount[r]-t.blkIndent>=4)return!1;for(L=t.parentType,t.parentType="paragraph";A3)){if(t.sCount[A]>=t.blkIndent&&(h=t.bMarks[A]+t.tShift[A],v=t.eMarks[A],h=v)))){b=T===61?1:2;break}if(!(t.sCount[A]<0)){for(o=!1,s=0,l=S.length;s{"use strict";KF.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","meta","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]});var TD=U((tae,bD)=>{"use strict";var WY="[a-zA-Z_:][a-zA-Z0-9:._-]*",YY="[^\"'=<>`\\x00-\\x20]+",JY="'[^']*'",XY='"[^"]*"',ZY="(?:"+YY+"|"+JY+"|"+XY+")",$Y="(?:\\s+"+WY+"(?:\\s*=\\s*"+ZY+")?)",zF="<[A-Za-z][A-Za-z0-9\\-]*"+$Y+"*\\s*\\/?>",WF="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",eJ="|",tJ="<[?].*?[?]>",rJ="]*>",nJ="",iJ=new RegExp("^(?:"+zF+"|"+WF+"|"+eJ+"|"+tJ+"|"+rJ+"|"+nJ+")"),aJ=new RegExp("^(?:"+zF+"|"+WF+")");bD.exports.HTML_TAG_RE=iJ;bD.exports.HTML_OPEN_CLOSE_TAG_RE=aJ});var JF=U((rae,YF)=>{"use strict";var oJ=HF(),uJ=TD().HTML_OPEN_CLOSE_TAG_RE,pc=[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(uJ.source+"\\s*$"),/^$/,!1]];YF.exports=function(t,r,n,a){var o,s,l,d,h=t.bMarks[r]+t.tShift[r],v=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||!t.md.options.html||t.src.charCodeAt(h)!==60)return!1;for(d=t.src.slice(h,v),o=0;o{"use strict";XF.exports=function(t,r){var n,a,o,s,l,d,h=r+1,v=t.md.block.ruler.getRules("paragraph"),b=t.lineMax;for(d=t.parentType,t.parentType="paragraph";h3)&&!(t.sCount[h]<0)){for(a=!1,o=0,s=v.length;o{"use strict";var $F=mm(),bm=Ct().isSpace;function Ra(e,t,r,n){var a,o,s,l,d,h,v,b;for(this.src=e,this.md=t,this.env=r,this.tokens=n,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0,this.result="",o=this.src,b=!1,s=l=h=v=0,d=o.length;l0&&this.level++,this.tokens.push(n),n};Ra.prototype.isEmpty=function(t){return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]};Ra.prototype.skipEmptyLines=function(t){for(var r=this.lineMax;tr;)if(!bm(this.src.charCodeAt(--t)))return t+1;return t};Ra.prototype.skipChars=function(t,r){for(var n=this.src.length;tn;)if(r!==this.src.charCodeAt(--t))return t+1;return t};Ra.prototype.getLines=function(t,r,n,a){var o,s,l,d,h,v,b,T=t;if(t>=r)return"";for(v=new Array(r-t),o=0;Tn?v[o]=new Array(s-n+1).join(" ")+this.src.slice(d,h):v[o]=this.src.slice(d,h)}return v.join("")};Ra.prototype.Token=$F;ej.exports=Ra});var nj=U((aae,rj)=>{"use strict";var sJ=vm(),Tm=[["table",SF(),["paragraph","reference"]],["code",kF()],["fence",CF(),["paragraph","reference","blockquote","list"]],["blockquote",NF(),["paragraph","reference","blockquote","list"]],["hr",xF(),["paragraph","reference","blockquote","list"]],["list",PF(),["paragraph","reference","blockquote"]],["reference",qF()],["heading",UF(),["paragraph","reference","blockquote"]],["lheading",QF()],["html_block",JF(),["paragraph","reference","blockquote"]],["paragraph",ZF()]];function Em(){this.ruler=new sJ;for(var e=0;e=r||e.sCount[l]=h){e.line=r;break}for(a=0;a{"use strict";function lJ(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}ij.exports=function(t,r){for(var n=t.pos;n{"use strict";var cJ=Ct().isSpace;oj.exports=function(t,r){var n,a,o=t.pos;if(t.src.charCodeAt(o)!==10)return!1;for(n=t.pending.length-1,a=t.posMax,r||(n>=0&&t.pending.charCodeAt(n)===32?n>=1&&t.pending.charCodeAt(n-1)===32?(t.pending=t.pending.replace(/ +$/,""),t.push("hardbreak","br",0)):(t.pending=t.pending.slice(0,-1),t.push("softbreak","br",0)):t.push("softbreak","br",0)),o++;o{"use strict";var fJ=Ct().isSpace,ED=[];for(_D=0;_D<256;_D++)ED.push(0);var _D;"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function(e){ED[e.charCodeAt(0)]=1});sj.exports=function(t,r){var n,a=t.pos,o=t.posMax;if(t.src.charCodeAt(a)!==92)return!1;if(a++,a{"use strict";cj.exports=function(t,r){var n,a,o,s,l,d,h=t.pos,v=t.src.charCodeAt(h);if(v!==96)return!1;for(n=h,h++,a=t.posMax;h{"use strict";SD.exports.tokenize=function(t,r){var n,a,o,s,l,d=t.pos,h=t.src.charCodeAt(d);if(r||h!==126||(a=t.scanDelims(t.pos,!0),s=a.length,l=String.fromCharCode(h),s<2))return!1;for(s%2&&(o=t.push("text","",0),o.content=l,s--),n=0;n{"use strict";kD.exports.tokenize=function(t,r){var n,a,o,s=t.pos,l=t.src.charCodeAt(s);if(r||l!==95&&l!==42)return!1;for(a=t.scanDelims(t.pos,l===42),n=0;n=0;r--)n=t[r],!(n.marker!==95&&n.marker!==42)&&n.end!==-1&&(a=t[n.end],l=r>0&&t[r-1].end===n.end+1&&t[r-1].token===n.token-1&&t[n.end+1].token===a.token+1&&t[r-1].marker===n.marker,s=String.fromCharCode(n.marker),o=e.tokens[n.token],o.type=l?"strong_open":"em_open",o.tag=l?"strong":"em",o.nesting=1,o.markup=l?s+s:s,o.content="",o=e.tokens[a.token],o.type=l?"strong_close":"em_close",o.tag=l?"strong":"em",o.nesting=-1,o.markup=l?s+s:s,o.content="",l&&(e.tokens[t[r-1].token].content="",e.tokens[t[n.end+1].token].content="",r--))}kD.exports.postProcess=function(t){var r,n=t.tokens_meta,a=t.tokens_meta.length;for(pj(t,t.delimiters),r=0;r{"use strict";var dJ=Ct().normalizeReference,CD=Ct().isSpace;hj.exports=function(t,r){var n,a,o,s,l,d,h,v,b,T,A="",L=t.pos,S=t.posMax,y=t.pos,_=!0;if(t.src.charCodeAt(t.pos)!==91||(l=t.pos+1,s=t.md.helpers.parseLinkLabel(t,t.pos,!0),s<0))return!1;if(d=s+1,d=S)return!1;for(y=d,h=t.md.helpers.parseLinkDestination(t.src,d,t.posMax),h.ok&&(A=t.md.normalizeLink(h.str),t.md.validateLink(A)?d=h.pos:A=""),y=d;d=S||t.src.charCodeAt(d)!==41)&&(_=!0),d++}if(_){if(typeof t.env.references=="undefined")return!1;if(d=0?o=t.src.slice(y,d++):d=s+1):d=s+1,o||(o=t.src.slice(l,s)),v=t.env.references[dJ(o)],!v)return t.pos=L,!1;A=v.href,b=v.title}return r||(t.pos=l,t.posMax=s,T=t.push("link_open","a",1),T.attrs=n=[["href",A]],b&&n.push(["title",b]),t.md.inline.tokenize(t),T=t.push("link_close","a",-1)),t.pos=d,t.posMax=S,!0}});var mj=U((pae,gj)=>{"use strict";var pJ=Ct().normalizeReference,wD=Ct().isSpace;gj.exports=function(t,r){var n,a,o,s,l,d,h,v,b,T,A,L,S,y="",_=t.pos,m=t.posMax;if(t.src.charCodeAt(t.pos)!==33||t.src.charCodeAt(t.pos+1)!==91||(d=t.pos+2,l=t.md.helpers.parseLinkLabel(t,t.pos+1,!1),l<0))return!1;if(h=l+1,h=m)return!1;for(S=h,b=t.md.helpers.parseLinkDestination(t.src,h,t.posMax),b.ok&&(y=t.md.normalizeLink(b.str),t.md.validateLink(y)?h=b.pos:y=""),S=h;h=m||t.src.charCodeAt(h)!==41)return t.pos=_,!1;h++}else{if(typeof t.env.references=="undefined")return!1;if(h=0?s=t.src.slice(S,h++):h=l+1):h=l+1,s||(s=t.src.slice(d,l)),v=t.env.references[pJ(s)],!v)return t.pos=_,!1;y=v.href,T=v.title}return r||(o=t.src.slice(d,l),t.md.inline.parse(o,t.md,t.env,L=[]),A=t.push("image","img",0),A.attrs=n=[["src",y],["alt",""]],A.children=L,A.content=o,T&&n.push(["title",T])),t.pos=h,t.posMax=m,!0}});var Ej=U((hae,Tj)=>{"use strict";var yj=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,bj=/^<([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)>/;Tj.exports=function(t,r){var n,a,o,s,l,d,h=t.pos;return t.src.charCodeAt(h)!==60||(n=t.src.slice(h),n.indexOf(">")<0)?!1:bj.test(n)?(a=n.match(bj),s=a[0].slice(1,-1),l=t.md.normalizeLink(s),t.md.validateLink(l)?(r||(d=t.push("link_open","a",1),d.attrs=[["href",l]],d.markup="autolink",d.info="auto",d=t.push("text","",0),d.content=t.md.normalizeLinkText(s),d=t.push("link_close","a",-1),d.markup="autolink",d.info="auto"),t.pos+=a[0].length,!0):!1):yj.test(n)?(o=n.match(yj),s=o[0].slice(1,-1),l=t.md.normalizeLink("mailto:"+s),t.md.validateLink(l)?(r||(d=t.push("link_open","a",1),d.attrs=[["href",l]],d.markup="autolink",d.info="auto",d=t.push("text","",0),d.content=t.md.normalizeLinkText(s),d=t.push("link_close","a",-1),d.markup="autolink",d.info="auto"),t.pos+=o[0].length,!0):!1):!1}});var Sj=U((vae,_j)=>{"use strict";var hJ=TD().HTML_TAG_RE;function vJ(e){var t=e|32;return t>=97&&t<=122}_j.exports=function(t,r){var n,a,o,s,l=t.pos;return!t.md.options.html||(o=t.posMax,t.src.charCodeAt(l)!==60||l+2>=o)||(n=t.src.charCodeAt(l+1),n!==33&&n!==63&&n!==47&&!vJ(n))||(a=t.src.slice(l).match(hJ),!a)?!1:(r||(s=t.push("html_inline","",0),s.content=t.src.slice(l,l+a[0].length)),t.pos+=a[0].length,!0)}});var Cj=U((gae,Oj)=>{"use strict";var Dj=fD(),gJ=Ct().has,mJ=Ct().isValidEntityCode,kj=Ct().fromCodePoint,yJ=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,bJ=/^&([a-z][a-z0-9]{1,31});/i;Oj.exports=function(t,r){var n,a,o,s=t.pos,l=t.posMax;if(t.src.charCodeAt(s)!==38)return!1;if(s+1{"use strict";function wj(e,t){var r,n,a,o,s,l,d,h,v={},b=t.length;for(r=0;rs;n-=o.jump+1)if(o=t[n],o.marker===a.marker&&(l===-1&&(l=n),o.open&&o.end<0&&o.level===a.level&&(d=!1,(o.close||a.open)&&(o.length+a.length)%3==0&&(o.length%3!=0||a.length%3!=0)&&(d=!0),!d))){h=n>0&&!t[n-1].open?t[n-1].jump+1:0,a.jump=r-n+h,a.open=!1,o.end=r,o.jump=h,o.close=!1,l=-1;break}l!==-1&&(v[a.marker][(a.length||0)%3]=l)}}Aj.exports=function(t){var r,n=t.tokens_meta,a=t.tokens_meta.length;for(wj(t,t.delimiters),r=0;r{"use strict";Lj.exports=function(t){var r,n,a=0,o=t.tokens,s=t.tokens.length;for(r=n=0;r0&&a++,o[r].type==="text"&&r+1{"use strict";var AD=mm(),Ij=Ct().isWhiteSpace,Rj=Ct().isPunctChar,Fj=Ct().isMdAsciiPunct;function fp(e,t,r,n){this.src=e,this.env=r,this.md=t,this.tokens=n,this.tokens_meta=Array(n.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[]}fp.prototype.pushPending=function(){var e=new AD("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e};fp.prototype.push=function(e,t,r){this.pending&&this.pushPending();var n=new AD(e,t,r),a=null;return r<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),n.level=this.level,r>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],a={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(a),n};fp.prototype.scanDelims=function(e,t){var r=e,n,a,o,s,l,d,h,v,b,T=!0,A=!0,L=this.posMax,S=this.src.charCodeAt(e);for(n=e>0?this.src.charCodeAt(e-1):32;r{"use strict";var Mj=vm(),ND=[["text",aj()],["newline",uj()],["escape",lj()],["backticks",fj()],["strikethrough",DD().tokenize],["emphasis",OD().tokenize],["link",vj()],["image",mj()],["autolink",Ej()],["html_inline",Sj()],["entity",Cj()]],LD=[["balance_pairs",Nj()],["strikethrough",DD().postProcess],["emphasis",OD().postProcess],["text_collapse",xj()]];function dp(){var e;for(this.ruler=new Mj,e=0;e=o)break;continue}e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()};dp.prototype.parse=function(e,t,r,n){var a,o,s,l=new this.State(e,t,r,n);for(this.tokenize(l),o=this.ruler2.getRules(""),s=o.length,a=0;a{"use strict";Vj.exports=function(e){var t={};t.src_Any=pD().source,t.src_Cc=hD().source,t.src_Z=vD().source,t.src_P=cm().source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");var r="[><\uFF5C]";return t.src_pseudo_letter="(?:(?!"+r+"|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|"+r+"|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+r+`|[()[\\]{}.,"'?!\\-]).|\\[(?:(?!`+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+`|["]).)+\\"|\\'(?:(?!`+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,4}[a-zA-Z0-9%/]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+"\\,(?!"+t.src_ZCc+").|\\!(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy="(^|"+r+'|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|"+t.src_ZPCc+"))((?![$+<=>^`|\uFF5C])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|"+t.src_ZPCc+"))((?![$+<=>^`|\uFF5C])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}});var Wj=U((_ae,zj)=>{"use strict";function xD(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(r){!r||Object.keys(r).forEach(function(n){e[n]=r[n]})}),e}function _m(e){return Object.prototype.toString.call(e)}function TJ(e){return _m(e)==="[object String]"}function EJ(e){return _m(e)==="[object Object]"}function _J(e){return _m(e)==="[object RegExp]"}function Gj(e){return _m(e)==="[object Function]"}function SJ(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var Qj={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function DJ(e){return Object.keys(e||{}).reduce(function(t,r){return t||Qj.hasOwnProperty(r)},!1)}var kJ={"http:":{validate:function(e,t,r){var n=e.slice(t);return r.re.http||(r.re.http=new RegExp("^\\/\\/"+r.re.src_auth+r.re.src_host_port_strict+r.re.src_path,"i")),r.re.http.test(n)?n.match(r.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,r){var n=e.slice(t);return r.re.no_http||(r.re.no_http=new RegExp("^"+r.re.src_auth+"(?:localhost|(?:(?:"+r.re.src_domain+")\\.)+"+r.re.src_domain_root+")"+r.re.src_port+r.re.src_host_terminator+r.re.src_path,"i")),r.re.no_http.test(n)?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:n.match(r.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,r){var n=e.slice(t);return r.re.mailto||(r.re.mailto=new RegExp("^"+r.re.src_email_name+"@"+r.re.src_host_strict,"i")),r.re.mailto.test(n)?n.match(r.re.mailto)[0].length:0}}},OJ="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",CJ="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split("|");function wJ(e){e.__index__=-1,e.__text_cache__=""}function AJ(e){return function(t,r){var n=t.slice(r);return e.test(n)?n.match(e)[0].length:0}}function Kj(){return function(e,t){t.normalize(e)}}function Sm(e){var t=e.re=Uj()(e.__opts__),r=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||r.push(OJ),r.push(t.src_xn),t.src_tlds=r.join("|");function n(l){return l.replace("%TLDS%",t.src_tlds)}t.email_fuzzy=RegExp(n(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(n(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(n(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(n(t.tpl_host_fuzzy_test),"i");var a=[];e.__compiled__={};function o(l,d){throw new Error('(LinkifyIt) Invalid schema "'+l+'": '+d)}Object.keys(e.__schemas__).forEach(function(l){var d=e.__schemas__[l];if(d!==null){var h={validate:null,link:null};if(e.__compiled__[l]=h,EJ(d)){_J(d.validate)?h.validate=AJ(d.validate):Gj(d.validate)?h.validate=d.validate:o(l,d),Gj(d.normalize)?h.normalize=d.normalize:d.normalize?o(l,d):h.normalize=Kj();return}if(TJ(d)){a.push(l);return}o(l,d)}}),a.forEach(function(l){!e.__compiled__[e.__schemas__[l]]||(e.__compiled__[l].validate=e.__compiled__[e.__schemas__[l]].validate,e.__compiled__[l].normalize=e.__compiled__[e.__schemas__[l]].normalize)}),e.__compiled__[""]={validate:null,normalize:Kj()};var s=Object.keys(e.__compiled__).filter(function(l){return l.length>0&&e.__compiled__[l]}).map(SJ).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><\uFF5C]|"+t.src_ZPCc+"))("+s+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><\uFF5C]|"+t.src_ZPCc+"))("+s+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),wJ(e)}function NJ(e,t){var r=e.__index__,n=e.__last_index__,a=e.__text_cache__.slice(r,n);this.schema=e.__schema__.toLowerCase(),this.index=r+t,this.lastIndex=n+t,this.raw=a,this.text=a,this.url=a}function Hj(e,t){var r=new NJ(e,t);return e.__compiled__[r.schema].normalize(r,e),r}function Ri(e,t){if(!(this instanceof Ri))return new Ri(e,t);t||DJ(e)&&(t=e,e={}),this.__opts__=xD({},Qj,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=xD({},kJ,e),this.__compiled__={},this.__tlds__=CJ,this.__tlds_replaced__=!1,this.re={},Sm(this)}Ri.prototype.add=function(t,r){return this.__schemas__[t]=r,Sm(this),this};Ri.prototype.set=function(t){return this.__opts__=xD(this.__opts__,t),this};Ri.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;var r,n,a,o,s,l,d,h,v;if(this.re.schema_test.test(t)){for(d=this.re.schema_search,d.lastIndex=0;(r=d.exec(t))!==null;)if(o=this.testSchemaAt(t,r[2],d.lastIndex),o){this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+o;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(h=t.search(this.re.host_fuzzy_test),h>=0&&(this.__index__<0||h=0&&(a=t.match(this.re.email_fuzzy))!==null&&(s=a.index+a[1].length,l=a.index+a[0].length,(this.__index__<0||sthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=s,this.__last_index__=l))),this.__index__>=0};Ri.prototype.pretest=function(t){return this.re.pretest.test(t)};Ri.prototype.testSchemaAt=function(t,r,n){return this.__compiled__[r.toLowerCase()]?this.__compiled__[r.toLowerCase()].validate(t,n,this):0};Ri.prototype.match=function(t){var r=0,n=[];this.__index__>=0&&this.__text_cache__===t&&(n.push(Hj(this,r)),r=this.__last_index__);for(var a=r?t.slice(r):t;this.test(a);)n.push(Hj(this,r)),a=a.slice(this.__last_index__),r+=this.__last_index__;return n.length?n:null};Ri.prototype.tlds=function(t,r){return t=Array.isArray(t)?t:[t],r?(this.__tlds__=this.__tlds__.concat(t).sort().filter(function(n,a,o){return n!==o[a-1]}).reverse(),Sm(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,Sm(this),this)};Ri.prototype.normalize=function(t){t.schema||(t.url="http://"+t.url),t.schema==="mailto:"&&!/^mailto:/i.test(t.url)&&(t.url="mailto:"+t.url)};Ri.prototype.onCompile=function(){};zj.exports=Ri});var aP=U((Sae,iP)=>{"use strict";var hc=2147483647,Fa=36,ID=1,pp=26,LJ=38,xJ=700,Yj=72,Jj=128,Xj="-",IJ=/^xn--/,RJ=/[^\0-\x7E]/,FJ=/[\x2E\u3002\uFF0E\uFF61]/g,jJ={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},RD=Fa-ID,ja=Math.floor,FD=String.fromCharCode;function Ts(e){throw new RangeError(jJ[e])}function PJ(e,t){let r=[],n=e.length;for(;n--;)r[n]=t(e[n]);return r}function Zj(e,t){let r=e.split("@"),n="";r.length>1&&(n=r[0]+"@",e=r[1]),e=e.replace(FJ,".");let a=e.split("."),o=PJ(a,t).join(".");return n+o}function $j(e){let t=[],r=0,n=e.length;for(;r=55296&&a<=56319&&rString.fromCodePoint(...e),qJ=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:Fa},eP=function(e,t){return e+22+75*(e<26)-((t!=0)<<5)},tP=function(e,t,r){let n=0;for(e=r?ja(e/xJ):e>>1,e+=ja(e/t);e>RD*pp>>1;n+=Fa)e=ja(e/RD);return ja(n+(RD+1)*e/(e+LJ))},rP=function(e){let t=[],r=e.length,n=0,a=Jj,o=Yj,s=e.lastIndexOf(Xj);s<0&&(s=0);for(let l=0;l=128&&Ts("not-basic"),t.push(e.charCodeAt(l));for(let l=s>0?s+1:0;l=r&&Ts("invalid-input");let T=qJ(e.charCodeAt(l++));(T>=Fa||T>ja((hc-n)/v))&&Ts("overflow"),n+=T*v;let A=b<=o?ID:b>=o+pp?pp:b-o;if(Tja(hc/L)&&Ts("overflow"),v*=L}let h=t.length+1;o=tP(n-d,h,d==0),ja(n/h)>hc-a&&Ts("overflow"),a+=ja(n/h),n%=h,t.splice(n++,0,a)}return String.fromCodePoint(...t)},nP=function(e){let t=[];e=$j(e);let r=e.length,n=Jj,a=0,o=Yj;for(let d of e)d<128&&t.push(FD(d));let s=t.length,l=s;for(s&&t.push(Xj);l=n&&vja((hc-a)/h)&&Ts("overflow"),a+=(d-n)*h,n=d;for(let v of e)if(vhc&&Ts("overflow"),v==n){let b=a;for(let T=Fa;;T+=Fa){let A=T<=o?ID:T>=o+pp?pp:T-o;if(b{"use strict";oP.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201C\u201D\u2018\u2019",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}});var lP=U((kae,sP)=>{"use strict";sP.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201C\u201D\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}});var fP=U((Oae,cP)=>{"use strict";cP.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201C\u201D\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}});var vP=U((Cae,hP)=>{"use strict";var hp=Ct(),GJ=zR(),QJ=YR(),KJ=TF(),HJ=nj(),zJ=Bj(),WJ=Wj(),vc=dD(),dP=aP(),YJ={default:uP(),zero:lP(),commonmark:fP()},JJ=/^(vbscript|javascript|file|data):/,XJ=/^data:image\/(gif|png|jpeg|webp);/;function ZJ(e){var t=e.trim().toLowerCase();return JJ.test(t)?!!XJ.test(t):!0}var pP=["http:","https:","mailto:"];function $J(e){var t=vc.parse(e,!0);if(t.hostname&&(!t.protocol||pP.indexOf(t.protocol)>=0))try{t.hostname=dP.toASCII(t.hostname)}catch(r){}return vc.encode(vc.format(t))}function eX(e){var t=vc.parse(e,!0);if(t.hostname&&(!t.protocol||pP.indexOf(t.protocol)>=0))try{t.hostname=dP.toUnicode(t.hostname)}catch(r){}return vc.decode(vc.format(t))}function Fi(e,t){if(!(this instanceof Fi))return new Fi(e,t);t||hp.isString(e)||(t=e||{},e="default"),this.inline=new zJ,this.block=new HJ,this.core=new KJ,this.renderer=new QJ,this.linkify=new WJ,this.validateLink=ZJ,this.normalizeLink=$J,this.normalizeLinkText=eX,this.utils=hp,this.helpers=hp.assign({},GJ),this.options={},this.configure(e),t&&this.set(t)}Fi.prototype.set=function(e){return hp.assign(this.options,e),this};Fi.prototype.configure=function(e){var t=this,r;if(hp.isString(e)&&(r=e,e=YJ[r],!e))throw new Error('Wrong `markdown-it` preset "'+r+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(n){e.components[n].rules&&t[n].ruler.enableOnly(e.components[n].rules),e.components[n].rules2&&t[n].ruler2.enableOnly(e.components[n].rules2)}),this};Fi.prototype.enable=function(e,t){var r=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(a){r=r.concat(this[a].ruler.enable(e,!0))},this),r=r.concat(this.inline.ruler2.enable(e,!0));var n=e.filter(function(a){return r.indexOf(a)<0});if(n.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+n);return this};Fi.prototype.disable=function(e,t){var r=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(a){r=r.concat(this[a].ruler.disable(e,!0))},this),r=r.concat(this.inline.ruler2.disable(e,!0));var n=e.filter(function(a){return r.indexOf(a)<0});if(n.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+n);return this};Fi.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this};Fi.prototype.parse=function(e,t){if(typeof e!="string")throw new Error("Input data should be a String");var r=new this.core.State(e,this,t);return this.core.process(r),r.tokens};Fi.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)};Fi.prototype.parseInline=function(e,t){var r=new this.core.State(e,this,t);return r.inlineMode=!0,this.core.process(r),r.tokens};Fi.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};hP.exports=Fi});var Dm=U((wae,gP)=>{"use strict";gP.exports=vP()});var ft=U((jD,PD)=>{(function(e,t){typeof jD=="object"&&typeof PD!="undefined"?PD.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self,e.CodeMirror=t())})(jD,function(){"use strict";var e=navigator.userAgent,t=navigator.platform,r=/gecko\/\d/i.test(e),n=/MSIE \d/.test(e),a=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),o=/Edge\/(\d+)/.exec(e),s=n||a||o,l=s&&(n?document.documentMode||6:+(o||a)[1]),d=!o&&/WebKit\//.test(e),h=d&&/Qt\/\d+\.\d+/.test(e),v=!o&&/Chrome\/(\d+)/.exec(e),b=v&&+v[1],T=/Opera\//.test(e),A=/Apple Computer/.test(navigator.vendor),L=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),S=/PhantomJS/.test(e),y=A&&(/Mobile\/\w+/.test(e)||navigator.maxTouchPoints>2),_=/Android/.test(e),m=y||_||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),k=y||/Mac/.test(t),w=/\bCrOS\b/.test(e),C=/win/i.test(t),D=T&&e.match(/Version\/(\d*\.\d*)/);D&&(D=Number(D[1])),D&&D>=15&&(T=!1,d=!0);var R=k&&(h||T&&(D==null||D<12.11)),M=r||s&&l>=9;function q(i){return new RegExp("(^|\\s)"+i+"(?:$|\\s)\\s*")}var z=function(i,u){var f=i.className,c=q(u).exec(f);if(c){var p=f.slice(c.index+c[0].length);i.className=f.slice(0,c.index)+(p?c[1]+p:"")}};function Q(i){for(var u=i.childNodes.length;u>0;--u)i.removeChild(i.firstChild);return i}function G(i,u){return Q(i).appendChild(u)}function j(i,u,f,c){var p=document.createElement(i);if(f&&(p.className=f),c&&(p.style.cssText=c),typeof u=="string")p.appendChild(document.createTextNode(u));else if(u)for(var g=0;g=u)return E+(u-g);E+=O-g,E+=f-E%f,g=O+1}}var Pe=function(){this.id=null,this.f=null,this.time=0,this.handler=Mt(this.onTimeout,this)};Pe.prototype.onTimeout=function(i){i.id=0,i.time<=+new Date?i.f():setTimeout(i.handler,i.time-+new Date)},Pe.prototype.set=function(i,u){this.f=u;var f=+new Date+i;(!this.id||f=u)return c+Math.min(E,u-p);if(p+=g-c,p+=f-p%f,c=g+1,p>=u)return c}}var Se=[""];function fe(i){for(;Se.length<=i;)Se.push(ue(Se)+" ");return Se[i]}function ue(i){return i[i.length-1]}function Ge(i,u){for(var f=[],c=0;c"\x80"&&(i.toUpperCase()!=i.toLowerCase()||Qi.test(i))}function mi(i,u){return u?u.source.indexOf("\\w")>-1&&la(i)?!0:u.test(i):la(i)}function Qa(i){for(var u in i)if(i.hasOwnProperty(u)&&i[u])return!1;return!0}var ca=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function Ka(i){return i.charCodeAt(0)>=768&&ca.test(i)}function kn(i,u,f){for(;(f<0?u>0:uf?-1:1;;){if(u==f)return u;var p=(u+f)/2,g=c<0?Math.ceil(p):Math.floor(p);if(g==u)return i(g)?u:f;i(g)?f=g:u=g+c}}function On(i,u,f,c){if(!i)return c(u,f,"ltr",0);for(var p=!1,g=0;gu||u==f&&E.to==u)&&(c(Math.max(E.from,u),Math.min(E.to,f),E.level==1?"rtl":"ltr",g),p=!0)}p||c(u,f,"ltr")}var yi=null;function qn(i,u,f){var c;yi=null;for(var p=0;pu)return p;g.to==u&&(g.from!=g.to&&f=="before"?c=p:yi=p),g.from==u&&(g.from!=g.to&&f!="before"?c=p:yi=p)}return c!=null?c:yi}var Pc=function(){var i="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",u="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function f(x){return x<=247?i.charAt(x):1424<=x&&x<=1524?"R":1536<=x&&x<=1785?u.charAt(x-1536):1774<=x&&x<=2220?"r":8192<=x&&x<=8203?"w":x==8204?"b":"L"}var c=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,p=/[stwN]/,g=/[LRr]/,E=/[Lb1n]/,O=/[1n]/;function N(x,V,K){this.level=x,this.from=V,this.to=K}return function(x,V){var K=V=="ltr"?"L":"R";if(x.length==0||V=="ltr"&&!c.test(x))return!1;for(var $=x.length,X=[],ne=0;ne<$;++ne)X.push(f(x.charCodeAt(ne)));for(var ae=0,le=K;ae<$;++ae){var he=X[ae];he=="m"?X[ae]=le:le=he}for(var Ee=0,ve=K;Ee<$;++Ee){var Oe=X[Ee];Oe=="1"&&ve=="r"?X[Ee]="n":g.test(Oe)&&(ve=Oe,Oe=="r"&&(X[Ee]="R"))}for(var Fe=1,Re=X[0];Fe<$-1;++Fe){var Xe=X[Fe];Xe=="+"&&Re=="1"&&X[Fe+1]=="1"?X[Fe]="1":Xe==","&&Re==X[Fe+1]&&(Re=="1"||Re=="n")&&(X[Fe]=Re),Re=Xe}for(var Pt=0;Pt<$;++Pt){var Rr=X[Pt];if(Rr==",")X[Pt]="N";else if(Rr=="%"){var $t=void 0;for($t=Pt+1;$t<$&&X[$t]=="%";++$t);for(var Gn=Pt&&X[Pt-1]=="!"||$t<$&&X[$t]=="1"?"1":"N",An=Pt;An<$t;++An)X[An]=Gn;Pt=$t-1}}for(var hr=0,Nn=K;hr<$;++hr){var Wr=X[hr];Nn=="L"&&Wr=="1"?X[hr]="L":g.test(Wr)&&(Nn=Wr)}for(var Dr=0;Dr<$;++Dr)if(p.test(X[Dr])){var vr=void 0;for(vr=Dr+1;vr<$&&p.test(X[vr]);++vr);for(var ar=(Dr?X[Dr-1]:K)=="L",Ln=(vr<$?X[vr]:K)=="L",Xs=ar==Ln?ar?"L":"R":K,Lo=Dr;Lo-1&&(c[u]=p.slice(0,g).concat(p.slice(g+1)))}}}function At(i,u){var f=ku(i,u);if(!!f.length)for(var c=Array.prototype.slice.call(arguments,2),p=0;p0}function zr(i){i.prototype.on=function(u,f){ge(this,u,f)},i.prototype.off=function(u,f){Tr(this,u,f)}}function ee(i){i.preventDefault?i.preventDefault():i.returnValue=!1}function P(i){i.stopPropagation?i.stopPropagation():i.cancelBubble=!0}function Y(i){return i.defaultPrevented!=null?i.defaultPrevented:i.returnValue==!1}function J(i){ee(i),P(i)}function B(i){return i.target||i.srcElement}function I(i){var u=i.which;return u==null&&(i.button&1?u=1:i.button&2?u=3:i.button&4&&(u=2)),k&&i.ctrlKey&&u==1&&(u=3),u}var te=function(){if(s&&l<9)return!1;var i=j("div");return"draggable"in i||"dragDrop"in i}(),ie;function Qe(i){if(ie==null){var u=j("span","\u200B");G(i,j("span",[u,document.createTextNode("x")])),i.firstChild.offsetHeight!=0&&(ie=u.offsetWidth<=1&&u.offsetHeight>2&&!(s&&l<8))}var f=ie?j("span","\u200B"):j("span","\xA0",null,"display: inline-block; width: 1px; margin-right: -1px");return f.setAttribute("cm-text",""),f}var It;function kt(i){if(It!=null)return It;var u=G(i,document.createTextNode("A\u062EA")),f=ke(u,0,1).getBoundingClientRect(),c=ke(u,1,2).getBoundingClientRect();return Q(i),!f||f.left==f.right?!1:It=c.right-f.right<3}var en=` + +b`.split(/\n/).length!=3?function(i){for(var u=0,f=[],c=i.length;u<=c;){var p=i.indexOf(` +`,u);p==-1&&(p=i.length);var g=i.slice(u,i.charAt(p-1)=="\r"?p-1:p),E=g.indexOf("\r");E!=-1?(f.push(g.slice(0,E)),u+=E+1):(f.push(g),u=p+1)}return f}:function(i){return i.split(/\r\n?|\n/)},Er=window.getSelection?function(i){try{return i.selectionStart!=i.selectionEnd}catch(u){return!1}}:function(i){var u;try{u=i.ownerDocument.selection.createRange()}catch(f){}return!u||u.parentElement()!=i?!1:u.compareEndPoints("StartToEnd",u)!=0},_r=function(){var i=j("div");return"oncopy"in i?!0:(i.setAttribute("oncopy","return;"),typeof i.oncopy=="function")}(),He=null;function Ki(i){if(He!=null)return He;var u=G(i,j("span","x")),f=u.getBoundingClientRect(),c=ke(u,0,1).getBoundingClientRect();return He=Math.abs(f.left-c.left)>1}var fn={},Hi={};function Kp(i,u){arguments.length>2&&(u.dependencies=Array.prototype.slice.call(arguments,2)),fn[i]=u}function xs(i,u){Hi[i]=u}function Vn(i){if(typeof i=="string"&&Hi.hasOwnProperty(i))i=Hi[i];else if(i&&typeof i.name=="string"&&Hi.hasOwnProperty(i.name)){var u=Hi[i.name];typeof u=="string"&&(u={name:u}),i=at(u,i),i.name=u.name}else{if(typeof i=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(i))return Vn("application/xml");if(typeof i=="string"&&/^[\w\-]+\/[\w\-]+\+json$/.test(i))return Vn("application/json")}return typeof i=="string"?{name:i}:i||{name:"null"}}function Ha(i,u){u=Vn(u);var f=fn[u.name];if(!f)return Ha(i,"text/plain");var c=f(i,u);if(Eo.hasOwnProperty(u.name)){var p=Eo[u.name];for(var g in p)!p.hasOwnProperty(g)||(c.hasOwnProperty(g)&&(c["_"+g]=c[g]),c[g]=p[g])}if(c.name=u.name,u.helperType&&(c.helperType=u.helperType),u.modeProps)for(var E in u.modeProps)c[E]=u.modeProps[E];return c}var Eo={};function Hp(i,u){var f=Eo.hasOwnProperty(i)?Eo[i]:Eo[i]={};Ie(u,f)}function za(i,u){if(u===!0)return u;if(i.copyState)return i.copyState(u);var f={};for(var c in u){var p=u[c];p instanceof Array&&(p=p.concat([])),f[c]=p}return f}function _o(i,u){for(var f;i.innerMode&&(f=i.innerMode(u),!(!f||f.mode==i));)u=f.state,i=f.mode;return f||{mode:i,state:u}}function Mc(i,u,f){return i.startState?i.startState(u,f):!0}var ir=function(i,u,f){this.pos=this.start=0,this.string=i,this.tabSize=u||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=f};ir.prototype.eol=function(){return this.pos>=this.string.length},ir.prototype.sol=function(){return this.pos==this.lineStart},ir.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},ir.prototype.next=function(){if(this.posu},ir.prototype.eatSpace=function(){for(var i=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>i},ir.prototype.skipToEnd=function(){this.pos=this.string.length},ir.prototype.skipTo=function(i){var u=this.string.indexOf(i,this.pos);if(u>-1)return this.pos=u,!0},ir.prototype.backUp=function(i){this.pos-=i},ir.prototype.column=function(){return this.lastColumnPos0?null:(g&&u!==!1&&(this.pos+=g[0].length),g)}},ir.prototype.current=function(){return this.string.slice(this.start,this.pos)},ir.prototype.hideFirstChars=function(i,u){this.lineStart+=i;try{return u()}finally{this.lineStart-=i}},ir.prototype.lookAhead=function(i){var u=this.lineOracle;return u&&u.lookAhead(i)},ir.prototype.baseToken=function(){var i=this.lineOracle;return i&&i.baseToken(this.pos)};function Ae(i,u){if(u-=i.first,u<0||u>=i.size)throw new Error("There is no line "+(u+i.first)+" in the document.");for(var f=i;!f.lines;)for(var c=0;;++c){var p=f.children[c],g=p.chunkSize();if(u=i.first&&uf?W(f,Ae(i,f).text.length):S3(u,Ae(i,u.line).text.length)}function S3(i,u){var f=i.ch;return f==null||f>u?W(i.line,u):f<0?W(i.line,0):i}function tk(i,u){for(var f=[],c=0;cthis.maxLookAhead&&(this.maxLookAhead=i),u},da.prototype.baseToken=function(i){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=i;)this.baseTokenPos+=2;var u=this.baseTokens[this.baseTokenPos+1];return{type:u&&u.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-i}},da.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},da.fromSaved=function(i,u,f){return u instanceof zp?new da(i,za(i.mode,u.state),f,u.lookAhead):new da(i,za(i.mode,u),f)},da.prototype.save=function(i){var u=i!==!1?za(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new zp(u,this.maxLookAhead):u};function rk(i,u,f,c){var p=[i.state.modeGen],g={};sk(i,u.text,i.doc.mode,f,function(x,V){return p.push(x,V)},g,c);for(var E=f.state,O=function(x){f.baseTokens=p;var V=i.state.overlays[x],K=1,$=0;f.state=!0,sk(i,u.text,V.mode,f,function(X,ne){for(var ae=K;$X&&p.splice(K,1,X,p[K+1],le),K+=2,$=Math.min(X,le)}if(!!ne)if(V.opaque)p.splice(ae,K-ae,X,"overlay "+ne),K=ae+2;else for(;aei.options.maxHighlightLength&&za(i.doc.mode,c.state),g=rk(i,u,c);p&&(c.state=p),u.stateAfter=c.save(!p),u.styles=g.styles,g.classes?u.styleClasses=g.classes:u.styleClasses&&(u.styleClasses=null),f===i.doc.highlightFrontier&&(i.doc.modeFrontier=Math.max(i.doc.modeFrontier,++i.doc.highlightFrontier))}return u.styles}function qc(i,u,f){var c=i.doc,p=i.display;if(!c.mode.startState)return new da(c,!0,u);var g=D3(i,u,f),E=g>c.first&&Ae(c,g-1).stateAfter,O=E?da.fromSaved(c,E,g):new da(c,Mc(c.mode),g);return c.iter(g,u,function(N){py(i,N.text,O);var x=O.line;N.stateAfter=x==u-1||x%5==0||x>=p.viewFrom&&xu.start)return g}throw new Error("Mode "+i.name+" failed to advance stream.")}var ak=function(i,u,f){this.start=i.start,this.end=i.pos,this.string=i.current(),this.type=u||null,this.state=f};function ok(i,u,f,c){var p=i.doc,g=p.mode,E;u=qe(p,u);var O=Ae(p,u.line),N=qc(i,u.line,f),x=new ir(O.text,i.options.tabSize,N),V;for(c&&(V=[]);(c||x.posi.options.maxHighlightLength?(O=!1,E&&py(i,u,c,V.pos),V.pos=u.length,K=null):K=uk(hy(f,V,c.state,$),g),$){var X=$[0].name;X&&(K="m-"+(K?X+" "+K:X))}if(!O||x!=K){for(;NE;--O){if(O<=g.first)return g.first;var N=Ae(g,O-1),x=N.stateAfter;if(x&&(!f||O+(x instanceof zp?x.lookAhead:0)<=g.modeFrontier))return O;var V=De(N.text,null,i.options.tabSize);(p==null||c>V)&&(p=O-1,c=V)}return p}function k3(i,u){if(i.modeFrontier=Math.min(i.modeFrontier,u),!(i.highlightFrontierf;c--){var p=Ae(i,c).stateAfter;if(p&&(!(p instanceof zp)||c+p.lookAhead=u:g.to>u);(c||(c=[])).push(new Wp(E,g.from,N?null:g.to))}}return c}function L3(i,u,f){var c;if(i)for(var p=0;p=u:g.to>u);if(O||g.from==u&&E.type=="bookmark"&&(!f||g.marker.insertLeft)){var N=g.from==null||(E.inclusiveLeft?g.from<=u:g.from0&&O)for(var Oe=0;Oe0)){var V=[N,1],K=re(x.from,O.from),$=re(x.to,O.to);(K<0||!E.inclusiveLeft&&!K)&&V.push({from:x.from,to:O.from}),($>0||!E.inclusiveRight&&!$)&&V.push({from:O.to,to:x.to}),p.splice.apply(p,V),N+=V.length-3}}return p}function fk(i){var u=i.markedSpans;if(!!u){for(var f=0;fu)&&(!c||gy(c,g.marker)<0)&&(c=g.marker)}return c}function vk(i,u,f,c,p){var g=Ae(i,u),E=Ya&&g.markedSpans;if(E)for(var O=0;O=0&&K<=0||V<=0&&K>=0)&&(V<=0&&(N.marker.inclusiveRight&&p.inclusiveLeft?re(x.to,f)>=0:re(x.to,f)>0)||V>=0&&(N.marker.inclusiveRight&&p.inclusiveLeft?re(x.from,c)<=0:re(x.from,c)<0)))return!0}}}function zi(i){for(var u;u=hk(i);)i=u.find(-1,!0).line;return i}function R3(i){for(var u;u=Xp(i);)i=u.find(1,!0).line;return i}function F3(i){for(var u,f;u=Xp(i);)i=u.find(1,!0).line,(f||(f=[])).push(i);return f}function my(i,u){var f=Ae(i,u),c=zi(f);return f==c?u:yt(c)}function gk(i,u){if(u>i.lastLine())return u;var f=Ae(i,u),c;if(!So(i,f))return u;for(;c=Xp(f);)f=c.find(1,!0).line;return yt(f)+1}function So(i,u){var f=Ya&&u.markedSpans;if(f){for(var c=void 0,p=0;pu.maxLineLength&&(u.maxLineLength=p,u.maxLine=c)})}var Rs=function(i,u,f){this.text=i,dk(this,u),this.height=f?f(this):1};Rs.prototype.lineNo=function(){return yt(this)},zr(Rs);function j3(i,u,f,c){i.text=u,i.stateAfter&&(i.stateAfter=null),i.styles&&(i.styles=null),i.order!=null&&(i.order=null),fk(i),dk(i,f);var p=c?c(i):1;p!=i.height&&bi(i,p)}function P3(i){i.parent=null,fk(i)}var M3={},q3={};function mk(i,u){if(!i||/^\s*$/.test(i))return null;var f=u.addModeClass?q3:M3;return f[i]||(f[i]=i.replace(/\S+/g,"cm-$&"))}function yk(i,u){var f=ce("span",null,null,d?"padding-right: .1px":null),c={pre:ce("pre",[f],"CodeMirror-line"),content:f,col:0,pos:0,cm:i,trailingSpace:!1,splitSpaces:i.getOption("lineWrapping")};u.measure={};for(var p=0;p<=(u.rest?u.rest.length:0);p++){var g=p?u.rest[p-1]:u.line,E=void 0;c.pos=0,c.addToken=V3,kt(i.display.measure)&&(E=Bn(g,i.doc.direction))&&(c.addToken=G3(c.addToken,E)),c.map=[];var O=u!=i.display.externalMeasured&&yt(g);Q3(g,c,nk(i,g,O)),g.styleClasses&&(g.styleClasses.bgClass&&(c.bgClass=Ve(g.styleClasses.bgClass,c.bgClass||"")),g.styleClasses.textClass&&(c.textClass=Ve(g.styleClasses.textClass,c.textClass||""))),c.map.length==0&&c.map.push(0,0,c.content.appendChild(Qe(i.display.measure))),p==0?(u.measure.map=c.map,u.measure.cache={}):((u.measure.maps||(u.measure.maps=[])).push(c.map),(u.measure.caches||(u.measure.caches=[])).push({}))}if(d){var N=c.content.lastChild;(/\bcm-tab\b/.test(N.className)||N.querySelector&&N.querySelector(".cm-tab"))&&(c.content.className="cm-tab-wrap-hack")}return At(i,"renderLine",i,u.line,c.pre),c.pre.className&&(c.textClass=Ve(c.pre.className,c.textClass||"")),c}function B3(i){var u=j("span","\u2022","cm-invalidchar");return u.title="\\u"+i.charCodeAt(0).toString(16),u.setAttribute("aria-label",u.title),u}function V3(i,u,f,c,p,g,E){if(!!u){var O=i.splitSpaces?U3(u,i.trailingSpace):u,N=i.cm.state.specialChars,x=!1,V;if(!N.test(u))i.col+=u.length,V=document.createTextNode(O),i.map.push(i.pos,i.pos+u.length,V),s&&l<9&&(x=!0),i.pos+=u.length;else{V=document.createDocumentFragment();for(var K=0;;){N.lastIndex=K;var $=N.exec(u),X=$?$.index-K:u.length-K;if(X){var ne=document.createTextNode(O.slice(K,K+X));s&&l<9?V.appendChild(j("span",[ne])):V.appendChild(ne),i.map.push(i.pos,i.pos+X,ne),i.col+=X,i.pos+=X}if(!$)break;K+=X+1;var ae=void 0;if($[0]==" "){var le=i.cm.options.tabSize,he=le-i.col%le;ae=V.appendChild(j("span",fe(he),"cm-tab")),ae.setAttribute("role","presentation"),ae.setAttribute("cm-text"," "),i.col+=he}else $[0]=="\r"||$[0]==` +`?(ae=V.appendChild(j("span",$[0]=="\r"?"\u240D":"\u2424","cm-invalidchar")),ae.setAttribute("cm-text",$[0]),i.col+=1):(ae=i.cm.options.specialCharPlaceholder($[0]),ae.setAttribute("cm-text",$[0]),s&&l<9?V.appendChild(j("span",[ae])):V.appendChild(ae),i.col+=1);i.map.push(i.pos,i.pos+1,ae),i.pos++}}if(i.trailingSpace=O.charCodeAt(u.length-1)==32,f||c||p||x||g||E){var Ee=f||"";c&&(Ee+=c),p&&(Ee+=p);var ve=j("span",[V],Ee,g);if(E)for(var Oe in E)E.hasOwnProperty(Oe)&&Oe!="style"&&Oe!="class"&&ve.setAttribute(Oe,E[Oe]);return i.content.appendChild(ve)}i.content.appendChild(V)}}function U3(i,u){if(i.length>1&&!/ /.test(i))return i;for(var f=u,c="",p=0;px&&K.from<=x));$++);if(K.to>=V)return i(f,c,p,g,E,O,N);i(f,c.slice(0,K.to-x),p,g,null,O,N),g=null,c=c.slice(K.to-x),x=K.to}}}function bk(i,u,f,c){var p=!c&&f.widgetNode;p&&i.map.push(i.pos,i.pos+u,p),!c&&i.cm.display.input.needsContentAttribute&&(p||(p=i.content.appendChild(document.createElement("span"))),p.setAttribute("cm-marker",f.id)),p&&(i.cm.display.input.setUneditable(p),i.content.appendChild(p)),i.pos+=u,i.trailingSpace=!1}function Q3(i,u,f){var c=i.markedSpans,p=i.text,g=0;if(!c){for(var E=1;EN||Xe.collapsed&&Re.to==N&&Re.from==N)){if(Re.to!=null&&Re.to!=N&&X>Re.to&&(X=Re.to,ae=""),Xe.className&&(ne+=" "+Xe.className),Xe.css&&($=($?$+";":"")+Xe.css),Xe.startStyle&&Re.from==N&&(le+=" "+Xe.startStyle),Xe.endStyle&&Re.to==X&&(Oe||(Oe=[])).push(Xe.endStyle,Re.to),Xe.title&&((Ee||(Ee={})).title=Xe.title),Xe.attributes)for(var Pt in Xe.attributes)(Ee||(Ee={}))[Pt]=Xe.attributes[Pt];Xe.collapsed&&(!he||gy(he.marker,Xe)<0)&&(he=Re)}else Re.from>N&&X>Re.from&&(X=Re.from)}if(Oe)for(var Rr=0;Rr=O)break;for(var Gn=Math.min(O,X);;){if(V){var An=N+V.length;if(!he){var hr=An>Gn?V.slice(0,Gn-N):V;u.addToken(u,hr,K?K+ne:ne,le,N+hr.length==X?ae:"",$,Ee)}if(An>=Gn){V=V.slice(Gn-N),N=Gn;break}N=An,le=""}V=p.slice(g,g=f[x++]),K=mk(f[x++],u.cm.options)}}}function Tk(i,u,f){this.line=u,this.rest=F3(u),this.size=this.rest?yt(ue(this.rest))-f+1:1,this.node=this.text=null,this.hidden=So(i,u)}function $p(i,u,f){for(var c=[],p,g=u;g2&&g.push((N.bottom+x.top)/2-f.top)}}g.push(f.bottom-f.top)}}function Ck(i,u,f){if(i.line==u)return{map:i.measure.map,cache:i.measure.cache};if(i.rest){for(var c=0;cf)return{map:i.measure.maps[p],cache:i.measure.caches[p],before:!0}}}function tB(i,u){u=zi(u);var f=yt(u),c=i.display.externalMeasured=new Tk(i.doc,u,f);c.lineN=f;var p=c.built=yk(i,c);return c.text=p.pre,G(i.display.lineMeasure,p.pre),c}function wk(i,u,f,c){return ha(i,js(i,u),f,c)}function Sy(i,u){if(u>=i.display.viewFrom&&u=f.lineN&&uu)&&(g=N-O,p=g-1,u>=N&&(E="right")),p!=null){if(c=i[x+2],O==N&&f==(c.insertLeft?"left":"right")&&(E=f),f=="left"&&p==0)for(;x&&i[x-2]==i[x-3]&&i[x-1].insertLeft;)c=i[(x-=3)+2],E="left";if(f=="right"&&p==N-O)for(;x=0&&(f=i[p]).left==f.right;p--);return f}function nB(i,u,f,c){var p=Nk(u.map,f,c),g=p.node,E=p.start,O=p.end,N=p.collapse,x;if(g.nodeType==3){for(var V=0;V<4;V++){for(;E&&Ka(u.line.text.charAt(p.coverStart+E));)--E;for(;p.coverStart+O0&&(N=c="right");var K;i.options.lineWrapping&&(K=g.getClientRects()).length>1?x=K[c=="right"?K.length-1:0]:x=g.getBoundingClientRect()}if(s&&l<9&&!E&&(!x||!x.left&&!x.right)){var $=g.parentNode.getClientRects()[0];$?x={left:$.left,right:$.left+Ms(i.display),top:$.top,bottom:$.bottom}:x=Ak}for(var X=x.top-u.rect.top,ne=x.bottom-u.rect.top,ae=(X+ne)/2,le=u.view.measure.heights,he=0;he=c.text.length?(N=c.text.length,x="before"):N<=0&&(N=0,x="after"),!O)return E(x=="before"?N-1:N,x=="before");function V(ne,ae,le){var he=O[ae],Ee=he.level==1;return E(le?ne-1:ne,Ee!=le)}var K=qn(O,N,x),$=yi,X=V(N,K,x=="before");return $!=null&&(X.other=V(N,$,x!="before")),X}function jk(i,u){var f=0;u=qe(i.doc,u),i.options.lineWrapping||(f=Ms(i.display)*u.ch);var c=Ae(i.doc,u.line),p=Ja(c)+eh(i.display);return{left:f,right:f,top:p,bottom:p+c.height}}function ky(i,u,f,c,p){var g=W(i,u,f);return g.xRel=p,c&&(g.outside=c),g}function Oy(i,u,f){var c=i.doc;if(f+=i.display.viewOffset,f<0)return ky(c.first,0,null,-1,-1);var p=fa(c,f),g=c.first+c.size-1;if(p>g)return ky(c.first+c.size-1,Ae(c,g).text.length,null,1,1);u<0&&(u=0);for(var E=Ae(c,p);;){var O=aB(i,E,p,u,f),N=I3(E,O.ch+(O.xRel>0||O.outside>0?1:0));if(!N)return O;var x=N.find(1);if(x.line==p)return x;E=Ae(c,p=x.line)}}function Pk(i,u,f,c){c-=Dy(u);var p=u.text.length,g=qt(function(E){return ha(i,f,E-1).bottom<=c},p,0);return p=qt(function(E){return ha(i,f,E).top>c},g,p),{begin:g,end:p}}function Mk(i,u,f,c){f||(f=js(i,u));var p=th(i,u,ha(i,f,c),"line").top;return Pk(i,u,f,p)}function Cy(i,u,f,c){return i.bottom<=f?!1:i.top>f?!0:(c?i.left:i.right)>u}function aB(i,u,f,c,p){p-=Ja(u);var g=js(i,u),E=Dy(u),O=0,N=u.text.length,x=!0,V=Bn(u,i.doc.direction);if(V){var K=(i.options.lineWrapping?uB:oB)(i,u,f,g,V,c,p);x=K.level!=1,O=x?K.from:K.to-1,N=x?K.to:K.from-1}var $=null,X=null,ne=qt(function(Fe){var Re=ha(i,g,Fe);return Re.top+=E,Re.bottom+=E,Cy(Re,c,p,!1)?(Re.top<=p&&Re.left<=c&&($=Fe,X=Re),!0):!1},O,N),ae,le,he=!1;if(X){var Ee=c-X.left=Oe.bottom?1:0}return ne=kn(u.text,ne,1),ky(f,ne,le,he,c-ae)}function oB(i,u,f,c,p,g,E){var O=qt(function(K){var $=p[K],X=$.level!=1;return Cy(Wi(i,W(f,X?$.to:$.from,X?"before":"after"),"line",u,c),g,E,!0)},0,p.length-1),N=p[O];if(O>0){var x=N.level!=1,V=Wi(i,W(f,x?N.from:N.to,x?"after":"before"),"line",u,c);Cy(V,g,E,!0)&&V.top>E&&(N=p[O-1])}return N}function uB(i,u,f,c,p,g,E){var O=Pk(i,u,c,E),N=O.begin,x=O.end;/\s/.test(u.text.charAt(x-1))&&x--;for(var V=null,K=null,$=0;$=x||X.to<=N)){var ne=X.level!=1,ae=ha(i,c,ne?Math.min(x,X.to)-1:Math.max(N,X.from)).right,le=aele)&&(V=X,K=le)}}return V||(V=p[p.length-1]),V.fromx&&(V={from:V.from,to:x,level:V.level}),V}var Cu;function Ps(i){if(i.cachedTextHeight!=null)return i.cachedTextHeight;if(Cu==null){Cu=j("pre",null,"CodeMirror-line-like");for(var u=0;u<49;++u)Cu.appendChild(document.createTextNode("x")),Cu.appendChild(j("br"));Cu.appendChild(document.createTextNode("x"))}G(i.measure,Cu);var f=Cu.offsetHeight/50;return f>3&&(i.cachedTextHeight=f),Q(i.measure),f||1}function Ms(i){if(i.cachedCharWidth!=null)return i.cachedCharWidth;var u=j("span","xxxxxxxxxx"),f=j("pre",[u],"CodeMirror-line-like");G(i.measure,f);var c=u.getBoundingClientRect(),p=(c.right-c.left)/10;return p>2&&(i.cachedCharWidth=p),p||10}function wy(i){for(var u=i.display,f={},c={},p=u.gutters.clientLeft,g=u.gutters.firstChild,E=0;g;g=g.nextSibling,++E){var O=i.display.gutterSpecs[E].className;f[O]=g.offsetLeft+g.clientLeft+p,c[O]=g.clientWidth}return{fixedPos:Ay(u),gutterTotalWidth:u.gutters.offsetWidth,gutterLeft:f,gutterWidth:c,wrapperWidth:u.wrapper.clientWidth}}function Ay(i){return i.scroller.getBoundingClientRect().left-i.sizer.getBoundingClientRect().left}function qk(i){var u=Ps(i.display),f=i.options.lineWrapping,c=f&&Math.max(5,i.display.scroller.clientWidth/Ms(i.display)-3);return function(p){if(So(i.doc,p))return 0;var g=0;if(p.widgets)for(var E=0;E0&&(x=Ae(i.doc,N.line).text).length==N.ch){var V=De(x,x.length,i.options.tabSize)-x.length;N=W(N.line,Math.max(0,Math.round((g-Ok(i.display).left)/Ms(i.display))-V))}return N}function Au(i,u){if(u>=i.display.viewTo||(u-=i.display.viewFrom,u<0))return null;for(var f=i.display.view,c=0;cu)&&(p.updateLineNumbers=u),i.curOp.viewChanged=!0,u>=p.viewTo)Ya&&my(i.doc,u)p.viewFrom?ko(i):(p.viewFrom+=c,p.viewTo+=c);else if(u<=p.viewFrom&&f>=p.viewTo)ko(i);else if(u<=p.viewFrom){var g=nh(i,f,f+c,1);g?(p.view=p.view.slice(g.index),p.viewFrom=g.lineN,p.viewTo+=c):ko(i)}else if(f>=p.viewTo){var E=nh(i,u,u,-1);E?(p.view=p.view.slice(0,E.index),p.viewTo=E.lineN):ko(i)}else{var O=nh(i,u,u,-1),N=nh(i,f,f+c,1);O&&N?(p.view=p.view.slice(0,O.index).concat($p(i,O.lineN,N.lineN)).concat(p.view.slice(N.index)),p.viewTo+=c):ko(i)}var x=p.externalMeasured;x&&(f=p.lineN&&u=c.viewTo)){var g=c.view[Au(i,u)];if(g.node!=null){var E=g.changes||(g.changes=[]);Ue(E,f)==-1&&E.push(f)}}}function ko(i){i.display.viewFrom=i.display.viewTo=i.doc.first,i.display.view=[],i.display.viewOffset=0}function nh(i,u,f,c){var p=Au(i,u),g,E=i.display.view;if(!Ya||f==i.doc.first+i.doc.size)return{index:p,lineN:f};for(var O=i.display.viewFrom,N=0;N0){if(p==E.length-1)return null;g=O+E[p].size-u,p++}else g=O-u;u+=g,f+=g}for(;my(i.doc,f)!=f;){if(p==(c<0?0:E.length-1))return null;f+=c*E[p-(c<0?1:0)].size,p+=c}return{index:p,lineN:f}}function sB(i,u,f){var c=i.display,p=c.view;p.length==0||u>=c.viewTo||f<=c.viewFrom?(c.view=$p(i,u,f),c.viewFrom=u):(c.viewFrom>u?c.view=$p(i,u,c.viewFrom).concat(c.view):c.viewFromf&&(c.view=c.view.slice(0,Au(i,f)))),c.viewTo=f}function Bk(i){for(var u=i.display.view,f=0,c=0;c=i.display.viewTo||N.to().line0?E:i.defaultCharWidth())+"px"}if(c.other){var O=f.appendChild(j("div","\xA0","CodeMirror-cursor CodeMirror-secondarycursor"));O.style.display="",O.style.left=c.other.left+"px",O.style.top=c.other.top+"px",O.style.height=(c.other.bottom-c.other.top)*.85+"px"}}function ih(i,u){return i.top-u.top||i.left-u.left}function lB(i,u,f){var c=i.display,p=i.doc,g=document.createDocumentFragment(),E=Ok(i.display),O=E.left,N=Math.max(c.sizerWidth,Ou(i)-c.sizer.offsetLeft)-E.right,x=p.direction=="ltr";function V(ve,Oe,Fe,Re){Oe<0&&(Oe=0),Oe=Math.round(Oe),Re=Math.round(Re),g.appendChild(j("div",null,"CodeMirror-selected","position: absolute; left: "+ve+`px; + top: `+Oe+"px; width: "+(Fe==null?N-ve:Fe)+`px; + height: `+(Re-Oe)+"px"))}function K(ve,Oe,Fe){var Re=Ae(p,ve),Xe=Re.text.length,Pt,Rr;function $t(hr,Nn){return rh(i,W(ve,hr),"div",Re,Nn)}function Gn(hr,Nn,Wr){var Dr=Mk(i,Re,null,hr),vr=Nn=="ltr"==(Wr=="after")?"left":"right",ar=Wr=="after"?Dr.begin:Dr.end-(/\s/.test(Re.text.charAt(Dr.end-1))?2:1);return $t(ar,vr)[vr]}var An=Bn(Re,p.direction);return On(An,Oe||0,Fe==null?Xe:Fe,function(hr,Nn,Wr,Dr){var vr=Wr=="ltr",ar=$t(hr,vr?"left":"right"),Ln=$t(Nn-1,vr?"right":"left"),Xs=Oe==null&&hr==0,Lo=Fe==null&&Nn==Xe,rn=Dr==0,va=!An||Dr==An.length-1;if(Ln.top-ar.top<=3){var Fr=(x?Xs:Lo)&&rn,n0=(x?Lo:Xs)&&va,eo=Fr?O:(vr?ar:Ln).left,Ru=n0?N:(vr?Ln:ar).right;V(eo,ar.top,Ru-eo,ar.bottom)}else{var Fu,pn,Zs,i0;vr?(Fu=x&&Xs&&rn?O:ar.left,pn=x?N:Gn(hr,Wr,"before"),Zs=x?O:Gn(Nn,Wr,"after"),i0=x&&Lo&&va?N:Ln.right):(Fu=x?Gn(hr,Wr,"before"):O,pn=!x&&Xs&&rn?N:ar.right,Zs=!x&&Lo&&va?O:Ln.left,i0=x?Gn(Nn,Wr,"after"):N),V(Fu,ar.top,pn-Fu,ar.bottom),ar.bottom0?u.blinker=setInterval(function(){i.hasFocus()||qs(i),u.cursorDiv.style.visibility=(f=!f)?"":"hidden"},i.options.cursorBlinkRate):i.options.cursorBlinkRate<0&&(u.cursorDiv.style.visibility="hidden")}}function Uk(i){i.hasFocus()||(i.display.input.focus(),i.state.focused||Ry(i))}function Iy(i){i.state.delayingBlurEvent=!0,setTimeout(function(){i.state.delayingBlurEvent&&(i.state.delayingBlurEvent=!1,i.state.focused&&qs(i))},100)}function Ry(i,u){i.state.delayingBlurEvent&&!i.state.draggingText&&(i.state.delayingBlurEvent=!1),i.options.readOnly!="nocursor"&&(i.state.focused||(At(i,"focus",i,u),i.state.focused=!0,we(i.display.wrapper,"CodeMirror-focused"),!i.curOp&&i.display.selForContextMenu!=i.doc.sel&&(i.display.input.reset(),d&&setTimeout(function(){return i.display.input.reset(!0)},20)),i.display.input.receivedFocus()),xy(i))}function qs(i,u){i.state.delayingBlurEvent||(i.state.focused&&(At(i,"blur",i,u),i.state.focused=!1,z(i.display.wrapper,"CodeMirror-focused")),clearInterval(i.display.blinker),setTimeout(function(){i.state.focused||(i.display.shift=!1)},150))}function ah(i){for(var u=i.display,f=u.lineDiv.offsetTop,c=Math.max(0,u.scroller.getBoundingClientRect().top),p=u.lineDiv.getBoundingClientRect().top,g=0,E=0;E.005||X<-.005)&&(pi.display.sizerWidth){var ae=Math.ceil(V/Ms(i.display));ae>i.display.maxLineLength&&(i.display.maxLineLength=ae,i.display.maxLine=O.line,i.display.maxLineChanged=!0)}}}Math.abs(g)>2&&(u.scroller.scrollTop+=g)}function Gk(i){if(i.widgets)for(var u=0;u=E&&(g=fa(u,Ja(Ae(u,N))-i.wrapper.clientHeight),E=N)}return{from:g,to:Math.max(E,g+1)}}function cB(i,u){if(!zt(i,"scrollCursorIntoView")){var f=i.display,c=f.sizer.getBoundingClientRect(),p=null,g=f.wrapper.ownerDocument;if(u.top+c.top<0?p=!0:u.bottom+c.top>(g.defaultView.innerHeight||g.documentElement.clientHeight)&&(p=!1),p!=null&&!S){var E=j("div","\u200B",null,`position: absolute; + top: `+(u.top-f.viewOffset-eh(i.display))+`px; + height: `+(u.bottom-u.top+pa(i)+f.barHeight)+`px; + left: `+u.left+"px; width: "+Math.max(2,u.right-u.left)+"px;");i.display.lineSpace.appendChild(E),E.scrollIntoView(p),i.display.lineSpace.removeChild(E)}}}function fB(i,u,f,c){c==null&&(c=0);var p;!i.options.lineWrapping&&u==f&&(f=u.sticky=="before"?W(u.line,u.ch+1,"before"):u,u=u.ch?W(u.line,u.sticky=="before"?u.ch-1:u.ch,"after"):u);for(var g=0;g<5;g++){var E=!1,O=Wi(i,u),N=!f||f==u?O:Wi(i,f);p={left:Math.min(O.left,N.left),top:Math.min(O.top,N.top)-c,right:Math.max(O.left,N.left),bottom:Math.max(O.bottom,N.bottom)+c};var x=Fy(i,p),V=i.doc.scrollTop,K=i.doc.scrollLeft;if(x.scrollTop!=null&&(zc(i,x.scrollTop),Math.abs(i.doc.scrollTop-V)>1&&(E=!0)),x.scrollLeft!=null&&(Nu(i,x.scrollLeft),Math.abs(i.doc.scrollLeft-K)>1&&(E=!0)),!E)break}return p}function dB(i,u){var f=Fy(i,u);f.scrollTop!=null&&zc(i,f.scrollTop),f.scrollLeft!=null&&Nu(i,f.scrollLeft)}function Fy(i,u){var f=i.display,c=Ps(i.display);u.top<0&&(u.top=0);var p=i.curOp&&i.curOp.scrollTop!=null?i.curOp.scrollTop:f.scroller.scrollTop,g=_y(i),E={};u.bottom-u.top>g&&(u.bottom=u.top+g);var O=i.doc.height+Ey(f),N=u.topO-c;if(u.topp+g){var V=Math.min(u.top,(x?O:u.bottom)-g);V!=p&&(E.scrollTop=V)}var K=i.options.fixedGutter?0:f.gutters.offsetWidth,$=i.curOp&&i.curOp.scrollLeft!=null?i.curOp.scrollLeft:f.scroller.scrollLeft-K,X=Ou(i)-f.gutters.offsetWidth,ne=u.right-u.left>X;return ne&&(u.right=u.left+X),u.left<10?E.scrollLeft=0:u.left<$?E.scrollLeft=Math.max(0,u.left+K-(ne?0:10)):u.right>X+$-3&&(E.scrollLeft=u.right+(ne?0:10)-X),E}function jy(i,u){u!=null&&(uh(i),i.curOp.scrollTop=(i.curOp.scrollTop==null?i.doc.scrollTop:i.curOp.scrollTop)+u)}function Bs(i){uh(i);var u=i.getCursor();i.curOp.scrollToPos={from:u,to:u,margin:i.options.cursorScrollMargin}}function Hc(i,u,f){(u!=null||f!=null)&&uh(i),u!=null&&(i.curOp.scrollLeft=u),f!=null&&(i.curOp.scrollTop=f)}function pB(i,u){uh(i),i.curOp.scrollToPos=u}function uh(i){var u=i.curOp.scrollToPos;if(u){i.curOp.scrollToPos=null;var f=jk(i,u.from),c=jk(i,u.to);Qk(i,f,c,u.margin)}}function Qk(i,u,f,c){var p=Fy(i,{left:Math.min(u.left,f.left),top:Math.min(u.top,f.top)-c,right:Math.max(u.right,f.right),bottom:Math.max(u.bottom,f.bottom)+c});Hc(i,p.scrollLeft,p.scrollTop)}function zc(i,u){Math.abs(i.doc.scrollTop-u)<2||(r||My(i,{top:u}),Kk(i,u,!0),r&&My(i),Jc(i,100))}function Kk(i,u,f){u=Math.max(0,Math.min(i.display.scroller.scrollHeight-i.display.scroller.clientHeight,u)),!(i.display.scroller.scrollTop==u&&!f)&&(i.doc.scrollTop=u,i.display.scrollbars.setScrollTop(u),i.display.scroller.scrollTop!=u&&(i.display.scroller.scrollTop=u))}function Nu(i,u,f,c){u=Math.max(0,Math.min(u,i.display.scroller.scrollWidth-i.display.scroller.clientWidth)),!((f?u==i.doc.scrollLeft:Math.abs(i.doc.scrollLeft-u)<2)&&!c)&&(i.doc.scrollLeft=u,Jk(i),i.display.scroller.scrollLeft!=u&&(i.display.scroller.scrollLeft=u),i.display.scrollbars.setScrollLeft(u))}function Wc(i){var u=i.display,f=u.gutters.offsetWidth,c=Math.round(i.doc.height+Ey(i.display));return{clientHeight:u.scroller.clientHeight,viewHeight:u.wrapper.clientHeight,scrollWidth:u.scroller.scrollWidth,clientWidth:u.scroller.clientWidth,viewWidth:u.wrapper.clientWidth,barLeft:i.options.fixedGutter?f:0,docHeight:c,scrollHeight:c+pa(i)+u.barHeight,nativeBarWidth:u.nativeBarWidth,gutterWidth:f}}var Lu=function(i,u,f){this.cm=f;var c=this.vert=j("div",[j("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),p=this.horiz=j("div",[j("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");c.tabIndex=p.tabIndex=-1,i(c),i(p),ge(c,"scroll",function(){c.clientHeight&&u(c.scrollTop,"vertical")}),ge(p,"scroll",function(){p.clientWidth&&u(p.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,s&&l<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Lu.prototype.update=function(i){var u=i.scrollWidth>i.clientWidth+1,f=i.scrollHeight>i.clientHeight+1,c=i.nativeBarWidth;if(f){this.vert.style.display="block",this.vert.style.bottom=u?c+"px":"0";var p=i.viewHeight-(u?c:0);this.vert.firstChild.style.height=Math.max(0,i.scrollHeight-i.clientHeight+p)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(u){this.horiz.style.display="block",this.horiz.style.right=f?c+"px":"0",this.horiz.style.left=i.barLeft+"px";var g=i.viewWidth-i.barLeft-(f?c:0);this.horiz.firstChild.style.width=Math.max(0,i.scrollWidth-i.clientWidth+g)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&i.clientHeight>0&&(c==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:f?c:0,bottom:u?c:0}},Lu.prototype.setScrollLeft=function(i){this.horiz.scrollLeft!=i&&(this.horiz.scrollLeft=i),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},Lu.prototype.setScrollTop=function(i){this.vert.scrollTop!=i&&(this.vert.scrollTop=i),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},Lu.prototype.zeroWidthHack=function(){var i=k&&!L?"12px":"18px";this.horiz.style.height=this.vert.style.width=i,this.horiz.style.visibility=this.vert.style.visibility="hidden",this.disableHoriz=new Pe,this.disableVert=new Pe},Lu.prototype.enableZeroWidthBar=function(i,u,f){i.style.visibility="";function c(){var p=i.getBoundingClientRect(),g=f=="vert"?document.elementFromPoint(p.right-1,(p.top+p.bottom)/2):document.elementFromPoint((p.right+p.left)/2,p.bottom-1);g!=i?i.style.visibility="hidden":u.set(1e3,c)}u.set(1e3,c)},Lu.prototype.clear=function(){var i=this.horiz.parentNode;i.removeChild(this.horiz),i.removeChild(this.vert)};var Yc=function(){};Yc.prototype.update=function(){return{bottom:0,right:0}},Yc.prototype.setScrollLeft=function(){},Yc.prototype.setScrollTop=function(){},Yc.prototype.clear=function(){};function Vs(i,u){u||(u=Wc(i));var f=i.display.barWidth,c=i.display.barHeight;Hk(i,u);for(var p=0;p<4&&f!=i.display.barWidth||c!=i.display.barHeight;p++)f!=i.display.barWidth&&i.options.lineWrapping&&ah(i),Hk(i,Wc(i)),f=i.display.barWidth,c=i.display.barHeight}function Hk(i,u){var f=i.display,c=f.scrollbars.update(u);f.sizer.style.paddingRight=(f.barWidth=c.right)+"px",f.sizer.style.paddingBottom=(f.barHeight=c.bottom)+"px",f.heightForcer.style.borderBottom=c.bottom+"px solid transparent",c.right&&c.bottom?(f.scrollbarFiller.style.display="block",f.scrollbarFiller.style.height=c.bottom+"px",f.scrollbarFiller.style.width=c.right+"px"):f.scrollbarFiller.style.display="",c.bottom&&i.options.coverGutterNextToScrollbar&&i.options.fixedGutter?(f.gutterFiller.style.display="block",f.gutterFiller.style.height=c.bottom+"px",f.gutterFiller.style.width=u.gutterWidth+"px"):f.gutterFiller.style.display=""}var zk={native:Lu,null:Yc};function Wk(i){i.display.scrollbars&&(i.display.scrollbars.clear(),i.display.scrollbars.addClass&&z(i.display.wrapper,i.display.scrollbars.addClass)),i.display.scrollbars=new zk[i.options.scrollbarStyle](function(u){i.display.wrapper.insertBefore(u,i.display.scrollbarFiller),ge(u,"mousedown",function(){i.state.focused&&setTimeout(function(){return i.display.input.focus()},0)}),u.setAttribute("cm-not-content","true")},function(u,f){f=="horizontal"?Nu(i,u):zc(i,u)},i),i.display.scrollbars.addClass&&we(i.display.wrapper,i.display.scrollbars.addClass)}var hB=0;function xu(i){i.curOp={cm:i,viewChanged:!1,startHeight:i.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++hB,markArrays:null},K3(i.curOp)}function Iu(i){var u=i.curOp;u&&z3(u,function(f){for(var c=0;c=f.viewTo)||f.maxLineChanged&&u.options.lineWrapping,i.update=i.mustUpdate&&new sh(u,i.mustUpdate&&{top:i.scrollTop,ensure:i.scrollToPos},i.forceUpdate)}function mB(i){i.updatedDisplay=i.mustUpdate&&Py(i.cm,i.update)}function yB(i){var u=i.cm,f=u.display;i.updatedDisplay&&ah(u),i.barMeasure=Wc(u),f.maxLineChanged&&!u.options.lineWrapping&&(i.adjustWidthTo=wk(u,f.maxLine,f.maxLine.text.length).left+3,u.display.sizerWidth=i.adjustWidthTo,i.barMeasure.scrollWidth=Math.max(f.scroller.clientWidth,f.sizer.offsetLeft+i.adjustWidthTo+pa(u)+u.display.barWidth),i.maxScrollLeft=Math.max(0,f.sizer.offsetLeft+i.adjustWidthTo-Ou(u))),(i.updatedDisplay||i.selectionChanged)&&(i.preparedSelection=f.input.prepareSelection())}function bB(i){var u=i.cm;i.adjustWidthTo!=null&&(u.display.sizer.style.minWidth=i.adjustWidthTo+"px",i.maxScrollLeft=i.display.viewTo)){var f=+new Date+i.options.workTime,c=qc(i,u.highlightFrontier),p=[];u.iter(c.line,Math.min(u.first+u.size,i.display.viewTo+500),function(g){if(c.line>=i.display.viewFrom){var E=g.styles,O=g.text.length>i.options.maxHighlightLength?za(u.mode,c.state):null,N=rk(i,g,c,!0);O&&(c.state=O),g.styles=N.styles;var x=g.styleClasses,V=N.classes;V?g.styleClasses=V:x&&(g.styleClasses=null);for(var K=!E||E.length!=g.styles.length||x!=V&&(!x||!V||x.bgClass!=V.bgClass||x.textClass!=V.textClass),$=0;!K&&$f)return Jc(i,i.options.workDelay),!0}),u.highlightFrontier=c.line,u.modeFrontier=Math.max(u.modeFrontier,c.line),p.length&&Un(i,function(){for(var g=0;g=f.viewFrom&&u.visible.to<=f.viewTo&&(f.updateLineNumbers==null||f.updateLineNumbers>=f.viewTo)&&f.renderedView==f.view&&Bk(i)==0)return!1;Xk(i)&&(ko(i),u.dims=wy(i));var p=c.first+c.size,g=Math.max(u.visible.from-i.options.viewportMargin,c.first),E=Math.min(p,u.visible.to+i.options.viewportMargin);f.viewFromE&&f.viewTo-E<20&&(E=Math.min(p,f.viewTo)),Ya&&(g=my(i.doc,g),E=gk(i.doc,E));var O=g!=f.viewFrom||E!=f.viewTo||f.lastWrapHeight!=u.wrapperHeight||f.lastWrapWidth!=u.wrapperWidth;sB(i,g,E),f.viewOffset=Ja(Ae(i.doc,f.viewFrom)),i.display.mover.style.top=f.viewOffset+"px";var N=Bk(i);if(!O&&N==0&&!u.force&&f.renderedView==f.view&&(f.updateLineNumbers==null||f.updateLineNumbers>=f.viewTo))return!1;var x=SB(i);return N>4&&(f.lineDiv.style.display="none"),kB(i,f.updateLineNumbers,u.dims),N>4&&(f.lineDiv.style.display=""),f.renderedView=f.view,DB(x),Q(f.cursorDiv),Q(f.selectionDiv),f.gutters.style.height=f.sizer.style.minHeight=0,O&&(f.lastWrapHeight=u.wrapperHeight,f.lastWrapWidth=u.wrapperWidth,Jc(i,400)),f.updateLineNumbers=null,!0}function Yk(i,u){for(var f=u.viewport,c=!0;;c=!1){if(!c||!i.options.lineWrapping||u.oldDisplayWidth==Ou(i)){if(f&&f.top!=null&&(f={top:Math.min(i.doc.height+Ey(i.display)-_y(i),f.top)}),u.visible=oh(i.display,i.doc,f),u.visible.from>=i.display.viewFrom&&u.visible.to<=i.display.viewTo)break}else c&&(u.visible=oh(i.display,i.doc,f));if(!Py(i,u))break;ah(i);var p=Wc(i);Kc(i),Vs(i,p),By(i,p),u.force=!1}u.signal(i,"update",i),(i.display.viewFrom!=i.display.reportedViewFrom||i.display.viewTo!=i.display.reportedViewTo)&&(u.signal(i,"viewportChange",i,i.display.viewFrom,i.display.viewTo),i.display.reportedViewFrom=i.display.viewFrom,i.display.reportedViewTo=i.display.viewTo)}function My(i,u){var f=new sh(i,u);if(Py(i,f)){ah(i),Yk(i,f);var c=Wc(i);Kc(i),Vs(i,c),By(i,c),f.finish()}}function kB(i,u,f){var c=i.display,p=i.options.lineNumbers,g=c.lineDiv,E=g.firstChild;function O(ne){var ae=ne.nextSibling;return d&&k&&i.display.currentWheelTarget==ne?ne.style.display="none":ne.parentNode.removeChild(ne),ae}for(var N=c.view,x=c.viewFrom,V=0;V-1&&(X=!1),Ek(i,K,x,f)),X&&(Q(K.lineNumber),K.lineNumber.appendChild(document.createTextNode(H(i.options,x)))),E=K.node.nextSibling}x+=K.size}for(;E;)E=O(E)}function qy(i){var u=i.gutters.offsetWidth;i.sizer.style.marginLeft=u+"px",Lr(i,"gutterChanged",i)}function By(i,u){i.display.sizer.style.minHeight=u.docHeight+"px",i.display.heightForcer.style.top=u.docHeight+"px",i.display.gutters.style.height=u.docHeight+i.display.barHeight+pa(i)+"px"}function Jk(i){var u=i.display,f=u.view;if(!(!u.alignWidgets&&(!u.gutters.firstChild||!i.options.fixedGutter))){for(var c=Ay(u)-u.scroller.scrollLeft+i.doc.scrollLeft,p=u.gutters.offsetWidth,g=c+"px",E=0;E=105&&(p.wrapper.style.clipPath="inset(0px)"),p.wrapper.setAttribute("translate","no"),s&&l<8&&(p.gutters.style.zIndex=-1,p.scroller.style.paddingRight=0),!d&&!(r&&m)&&(p.scroller.draggable=!0),i&&(i.appendChild?i.appendChild(p.wrapper):i(p.wrapper)),p.viewFrom=p.viewTo=u.first,p.reportedViewFrom=p.reportedViewTo=u.first,p.view=[],p.renderedView=null,p.externalMeasured=null,p.viewOffset=0,p.lastWrapHeight=p.lastWrapWidth=0,p.updateLineNumbers=null,p.nativeBarWidth=p.barHeight=p.barWidth=0,p.scrollbarsClipped=!1,p.lineNumWidth=p.lineNumInnerWidth=p.lineNumChars=null,p.alignWidgets=!1,p.cachedCharWidth=p.cachedTextHeight=p.cachedPaddingH=null,p.maxLine=null,p.maxLineLength=0,p.maxLineChanged=!1,p.wheelDX=p.wheelDY=p.wheelStartX=p.wheelStartY=null,p.shift=!1,p.selForContextMenu=null,p.activeTouch=null,p.gutterSpecs=Vy(c.gutters,c.lineNumbers),Zk(p),f.init(p)}var lh=0,Za=null;s?Za=-.53:r?Za=15:v?Za=-.7:A&&(Za=-1/3);function $k(i){var u=i.wheelDeltaX,f=i.wheelDeltaY;return u==null&&i.detail&&i.axis==i.HORIZONTAL_AXIS&&(u=i.detail),f==null&&i.detail&&i.axis==i.VERTICAL_AXIS?f=i.detail:f==null&&(f=i.wheelDelta),{x:u,y:f}}function CB(i){var u=$k(i);return u.x*=Za,u.y*=Za,u}function eO(i,u){v&&b==102&&(i.display.chromeScrollHack==null?i.display.sizer.style.pointerEvents="none":clearTimeout(i.display.chromeScrollHack),i.display.chromeScrollHack=setTimeout(function(){i.display.chromeScrollHack=null,i.display.sizer.style.pointerEvents=""},100));var f=$k(u),c=f.x,p=f.y,g=Za;u.deltaMode===0&&(c=u.deltaX,p=u.deltaY,g=1);var E=i.display,O=E.scroller,N=O.scrollWidth>O.clientWidth,x=O.scrollHeight>O.clientHeight;if(!!(c&&N||p&&x)){if(p&&k&&d){e:for(var V=u.target,K=E.view;V!=O;V=V.parentNode)for(var $=0;$=0&&re(i,c.to())<=0)return f}return-1};var bt=function(i,u){this.anchor=i,this.head=u};bt.prototype.from=function(){return Sr(this.anchor,this.head)},bt.prototype.to=function(){return ht(this.anchor,this.head)},bt.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};function Yi(i,u,f){var c=i&&i.options.selectionsMayTouch,p=u[f];u.sort(function($,X){return re($.from(),X.from())}),f=Ue(u,p);for(var g=1;g0:N>=0){var x=Sr(O.from(),E.from()),V=ht(O.to(),E.to()),K=O.empty()?E.from()==E.head:O.from()==O.head;g<=f&&--f,u.splice(--g,2,new bt(K?V:x,K?x:V))}}return new ni(u,f)}function Oo(i,u){return new ni([new bt(i,u||i)],0)}function Co(i){return i.text?W(i.from.line+i.text.length-1,ue(i.text).length+(i.text.length==1?i.from.ch:0)):i.to}function tO(i,u){if(re(i,u.from)<0)return i;if(re(i,u.to)<=0)return Co(u);var f=i.line+u.text.length-(u.to.line-u.from.line)-1,c=i.ch;return i.line==u.to.line&&(c+=Co(u).ch-u.to.ch),W(f,c)}function Uy(i,u){for(var f=[],c=0;c1&&i.remove(O.line+1,ne-1),i.insert(O.line+1,he)}Lr(i,"change",i,u)}function wo(i,u,f){function c(p,g,E){if(p.linked)for(var O=0;O1&&!i.done[i.done.length-2].ranges)return i.done.pop(),ue(i.done)}function uO(i,u,f,c){var p=i.history;p.undone.length=0;var g=+new Date,E,O;if((p.lastOp==c||p.lastOrigin==u.origin&&u.origin&&(u.origin.charAt(0)=="+"&&p.lastModTime>g-(i.cm?i.cm.options.historyEventDelay:500)||u.origin.charAt(0)=="*"))&&(E=NB(p,p.lastOp==c)))O=ue(E.changes),re(u.from,u.to)==0&&re(u.from,O.to)==0?O.to=Co(u):E.changes.push(Ky(i,u));else{var N=ue(p.done);for((!N||!N.ranges)&&fh(i.sel,p.done),E={changes:[Ky(i,u)],generation:p.generation},p.done.push(E);p.done.length>p.undoDepth;)p.done.shift(),p.done[0].ranges||p.done.shift()}p.done.push(f),p.generation=++p.maxGeneration,p.lastModTime=p.lastSelTime=g,p.lastOp=p.lastSelOp=c,p.lastOrigin=p.lastSelOrigin=u.origin,O||At(i,"historyAdded")}function LB(i,u,f,c){var p=u.charAt(0);return p=="*"||p=="+"&&f.ranges.length==c.ranges.length&&f.somethingSelected()==c.somethingSelected()&&new Date-i.history.lastSelTime<=(i.cm?i.cm.options.historyEventDelay:500)}function xB(i,u,f,c){var p=i.history,g=c&&c.origin;f==p.lastSelOp||g&&p.lastSelOrigin==g&&(p.lastModTime==p.lastSelTime&&p.lastOrigin==g||LB(i,g,ue(p.done),u))?p.done[p.done.length-1]=u:fh(u,p.done),p.lastSelTime=+new Date,p.lastSelOrigin=g,p.lastSelOp=f,c&&c.clearRedo!==!1&&oO(p.undone)}function fh(i,u){var f=ue(u);f&&f.ranges&&f.equals(i)||u.push(i)}function sO(i,u,f,c){var p=u["spans_"+i.id],g=0;i.iter(Math.max(i.first,f),Math.min(i.first+i.size,c),function(E){E.markedSpans&&((p||(p=u["spans_"+i.id]={}))[g]=E.markedSpans),++g})}function IB(i){if(!i)return null;for(var u,f=0;f-1&&(ue(O)[K]=x[K],delete x[K])}}return c}function Hy(i,u,f,c){if(c){var p=i.anchor;if(f){var g=re(u,p)<0;g!=re(f,p)<0?(p=u,u=f):g!=re(u,f)<0&&(u=f)}return new bt(p,u)}else return new bt(f||u,u)}function dh(i,u,f,c,p){p==null&&(p=i.cm&&(i.cm.display.shift||i.extend)),tn(i,new ni([Hy(i.sel.primary(),u,f,p)],0),c)}function cO(i,u,f){for(var c=[],p=i.cm&&(i.cm.display.shift||i.extend),g=0;g=u.ch:O.to>u.ch))){if(p&&(At(N,"beforeCursorEnter"),N.explicitlyCleared))if(g.markedSpans){--E;continue}else break;if(!N.atomic)continue;if(f){var K=N.find(c<0?1:-1),$=void 0;if((c<0?V:x)&&(K=gO(i,K,-c,K&&K.line==u.line?g:null)),K&&K.line==u.line&&($=re(K,f))&&(c<0?$<0:$>0))return Gs(i,K,u,c,p)}var X=N.find(c<0?-1:1);return(c<0?x:V)&&(X=gO(i,X,c,X.line==u.line?g:null)),X?Gs(i,X,u,c,p):null}}return u}function hh(i,u,f,c,p){var g=c||1,E=Gs(i,u,f,g,p)||!p&&Gs(i,u,f,g,!0)||Gs(i,u,f,-g,p)||!p&&Gs(i,u,f,-g,!0);return E||(i.cantEdit=!0,W(i.first,0))}function gO(i,u,f,c){return f<0&&u.ch==0?u.line>i.first?qe(i,W(u.line-1)):null:f>0&&u.ch==(c||Ae(i,u.line)).text.length?u.line=0;--p)bO(i,{from:c[p].from,to:c[p].to,text:p?[""]:u.text,origin:u.origin});else bO(i,u)}}function bO(i,u){if(!(u.text.length==1&&u.text[0]==""&&re(u.from,u.to)==0)){var f=Uy(i,u);uO(i,u,f,i.cm?i.cm.curOp.id:NaN),$c(i,u,f,vy(i,u));var c=[];wo(i,function(p,g){!g&&Ue(c,p.history)==-1&&(SO(p.history,u),c.push(p.history)),$c(p,u,null,vy(p,u))})}}function vh(i,u,f){var c=i.cm&&i.cm.state.suppressEdits;if(!(c&&!f)){for(var p=i.history,g,E=i.sel,O=u=="undo"?p.done:p.undone,N=u=="undo"?p.undone:p.done,x=0;x=0;--X){var ne=$(X);if(ne)return ne.v}}}}function TO(i,u){if(u!=0&&(i.first+=u,i.sel=new ni(Ge(i.sel.ranges,function(p){return new bt(W(p.anchor.line+u,p.anchor.ch),W(p.head.line+u,p.head.ch))}),i.sel.primIndex),i.cm)){Cn(i.cm,i.first,i.first-u,u);for(var f=i.cm.display,c=f.viewFrom;ci.lastLine())){if(u.from.lineg&&(u={from:u.from,to:W(g,Ae(i,g).text.length),text:[u.text[0]],origin:u.origin}),u.removed=Wa(i,u.from,u.to),f||(f=Uy(i,u)),i.cm?jB(i.cm,u,c):Qy(i,u,c),ph(i,f,ut),i.cantEdit&&hh(i,W(i.firstLine(),0))&&(i.cantEdit=!1)}}function jB(i,u,f){var c=i.doc,p=i.display,g=u.from,E=u.to,O=!1,N=g.line;i.options.lineWrapping||(N=yt(zi(Ae(c,g.line))),c.iter(N,E.line+1,function(X){if(X==p.maxLine)return O=!0,!0})),c.sel.contains(u.from,u.to)>-1&&Ls(i),Qy(c,u,f,qk(i)),i.options.lineWrapping||(c.iter(N,g.line+u.text.length,function(X){var ne=Zp(X);ne>p.maxLineLength&&(p.maxLine=X,p.maxLineLength=ne,p.maxLineChanged=!0,O=!1)}),O&&(i.curOp.updateMaxLine=!0)),k3(c,g.line),Jc(i,400);var x=u.text.length-(E.line-g.line)-1;u.full?Cn(i):g.line==E.line&&u.text.length==1&&!nO(i.doc,u)?Do(i,g.line,"text"):Cn(i,g.line,E.line+1,x);var V=Hr(i,"changes"),K=Hr(i,"change");if(K||V){var $={from:g,to:E,text:u.text,removed:u.removed,origin:u.origin};K&&Lr(i,"change",i,$),V&&(i.curOp.changeObjs||(i.curOp.changeObjs=[])).push($)}i.display.selForContextMenu=null}function Ks(i,u,f,c,p){var g;c||(c=f),re(c,f)<0&&(g=[c,f],f=g[0],c=g[1]),typeof u=="string"&&(u=i.splitLines(u)),Qs(i,{from:f,to:c,text:u,origin:p})}function EO(i,u,f,c){f1||!(this.children[0]instanceof tf))){var O=[];this.collapse(O),this.children=[new tf(O)],this.children[0].parent=this}},collapse:function(i){for(var u=0;u50){for(var E=p.lines.length%25+25,O=E;O10);i.parent.maybeSpill()}},iterN:function(i,u,f){for(var c=0;ci.display.maxLineLength&&(i.display.maxLine=x,i.display.maxLineLength=V,i.display.maxLineChanged=!0)}c!=null&&i&&this.collapsed&&Cn(i,c,p+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,i&&hO(i.doc)),i&&Lr(i,"markerCleared",i,this,c,p),u&&Iu(i),this.parent&&this.parent.clear()}},Ao.prototype.find=function(i,u){i==null&&this.type=="bookmark"&&(i=1);for(var f,c,p=0;p0||E==0&&g.clearWhenEmpty!==!1)return g;if(g.replacedWith&&(g.collapsed=!0,g.widgetNode=ce("span",[g.replacedWith],"CodeMirror-widget"),c.handleMouseEvents||g.widgetNode.setAttribute("cm-ignore-events","true"),c.insertLeft&&(g.widgetNode.insertLeft=!0)),g.collapsed){if(vk(i,u.line,u,f,g)||u.line!=f.line&&vk(i,f.line,u,f,g))throw new Error("Inserting collapsed marker partially overlapping an existing one");C3()}g.addToHistory&&uO(i,{from:u,to:f,origin:"markText"},i.sel,NaN);var O=u.line,N=i.cm,x;if(i.iter(O,f.line+1,function(K){N&&g.collapsed&&!N.options.lineWrapping&&zi(K)==N.display.maxLine&&(x=!0),g.collapsed&&O!=u.line&&bi(K,0),A3(K,new Wp(g,O==u.line?u.ch:null,O==f.line?f.ch:null),i.cm&&i.cm.curOp),++O}),g.collapsed&&i.iter(u.line,f.line+1,function(K){So(i,K)&&bi(K,0)}),g.clearOnEnter&&ge(g,"beforeCursorEnter",function(){return g.clear()}),g.readOnly&&(O3(),(i.history.done.length||i.history.undone.length)&&i.clearHistory()),g.collapsed&&(g.id=++kO,g.atomic=!0),N){if(x&&(N.curOp.updateMaxLine=!0),g.collapsed)Cn(N,u.line,f.line+1);else if(g.className||g.startStyle||g.endStyle||g.css||g.attributes||g.title)for(var V=u.line;V<=f.line;V++)Do(N,V,"text");g.atomic&&hO(N.doc),Lr(N,"markerAdded",N,g)}return g}var af=function(i,u){this.markers=i,this.primary=u;for(var f=0;f=0;N--)Qs(this,c[N]);O?dO(this,O):this.cm&&Bs(this.cm)}),undo:Ir(function(){vh(this,"undo")}),redo:Ir(function(){vh(this,"redo")}),undoSelection:Ir(function(){vh(this,"undo",!0)}),redoSelection:Ir(function(){vh(this,"redo",!0)}),setExtending:function(i){this.extend=i},getExtending:function(){return this.extend},historySize:function(){for(var i=this.history,u=0,f=0,c=0;c=i.ch)&&u.push(p.marker.parent||p.marker)}return u},findMarks:function(i,u,f){i=qe(this,i),u=qe(this,u);var c=[],p=i.line;return this.iter(i.line,u.line+1,function(g){var E=g.markedSpans;if(E)for(var O=0;O=N.to||N.from==null&&p!=i.line||N.from!=null&&p==u.line&&N.from>=u.ch)&&(!f||f(N.marker))&&c.push(N.marker.parent||N.marker)}++p}),c},getAllMarks:function(){var i=[];return this.iter(function(u){var f=u.markedSpans;if(f)for(var c=0;ci)return u=i,!0;i-=g,++f}),qe(this,W(f,u))},indexFromPos:function(i){i=qe(this,i);var u=i.ch;if(i.lineu&&(u=i.from),i.to!=null&&i.to-1){u.state.draggingText(i),setTimeout(function(){return u.display.input.focus()},20);return}try{var V=i.dataTransfer.getData("Text");if(V){var K;if(u.state.draggingText&&!u.state.draggingText.copy&&(K=u.listSelections()),ph(u.doc,Oo(f,f)),K)for(var $=0;$=0;O--)Ks(i.doc,"",c[O].from,c[O].to,"+delete");Bs(i)})}function Wy(i,u,f){var c=kn(i.text,u+f,f);return c<0||c>i.text.length?null:c}function Yy(i,u,f){var c=Wy(i,u.ch,f);return c==null?null:new W(u.line,c,f<0?"after":"before")}function Jy(i,u,f,c,p){if(i){u.doc.direction=="rtl"&&(p=-p);var g=Bn(f,u.doc.direction);if(g){var E=p<0?ue(g):g[0],O=p<0==(E.level==1),N=O?"after":"before",x;if(E.level>0||u.doc.direction=="rtl"){var V=js(u,f);x=p<0?f.text.length-1:0;var K=ha(u,V,x).top;x=qt(function($){return ha(u,V,$).top==K},p<0==(E.level==1)?E.from:E.to-1,x),N=="before"&&(x=Wy(f,x,1))}else x=p<0?E.to:E.from;return new W(c,x,N)}}return new W(c,p<0?f.text.length:0,p<0?"before":"after")}function JB(i,u,f,c){var p=Bn(u,i.doc.direction);if(!p)return Yy(u,f,c);f.ch>=u.text.length?(f.ch=u.text.length,f.sticky="before"):f.ch<=0&&(f.ch=0,f.sticky="after");var g=qn(p,f.ch,f.sticky),E=p[g];if(i.doc.direction=="ltr"&&E.level%2==0&&(c>0?E.to>f.ch:E.from=E.from&&$>=V.begin)){var X=K?"before":"after";return new W(f.line,$,X)}}var ne=function(he,Ee,ve){for(var Oe=function(Pt,Rr){return Rr?new W(f.line,O(Pt,1),"before"):new W(f.line,Pt,"after")};he>=0&&he0==(Fe.level!=1),Xe=Re?ve.begin:O(ve.end,-1);if(Fe.from<=Xe&&Xe0?V.end:O(V.begin,-1);return le!=null&&!(c>0&&le==u.text.length)&&(ae=ne(c>0?0:p.length-1,c,x(le)),ae)?ae:null}var sf={selectAll:mO,singleSelection:function(i){return i.setSelection(i.getCursor("anchor"),i.getCursor("head"),ut)},killLine:function(i){return Ws(i,function(u){if(u.empty()){var f=Ae(i.doc,u.head.line).text.length;return u.head.ch==f&&u.head.line0)p=new W(p.line,p.ch+1),i.replaceRange(g.charAt(p.ch-1)+g.charAt(p.ch-2),W(p.line,p.ch-2),p,"+transpose");else if(p.line>i.doc.first){var E=Ae(i.doc,p.line-1).text;E&&(p=new W(p.line,1),i.replaceRange(g.charAt(0)+i.doc.lineSeparator()+E.charAt(E.length-1),W(p.line-1,E.length-1),p,"+transpose"))}}f.push(new bt(p,p))}i.setSelections(f)})},newlineAndIndent:function(i){return Un(i,function(){for(var u=i.listSelections(),f=u.length-1;f>=0;f--)i.replaceRange(i.doc.lineSeparator(),u[f].anchor,u[f].head,"+input");u=i.listSelections();for(var c=0;ci&&re(u,this.pos)==0&&f==this.button};var cf,ff;function nV(i,u){var f=+new Date;return ff&&ff.compare(f,i,u)?(cf=ff=null,"triple"):cf&&cf.compare(f,i,u)?(ff=new Zy(f,i,u),cf=null,"double"):(cf=new Zy(f,i,u),ff=null,"single")}function VO(i){var u=this,f=u.display;if(!(zt(u,i)||f.activeTouch&&f.input.supportsTouch())){if(f.input.ensurePolled(),f.shift=i.shiftKey,Xa(f,i)){d||(f.scroller.draggable=!1,setTimeout(function(){return f.scroller.draggable=!0},100));return}if(!$y(u,i)){var c=wu(u,i),p=I(i),g=c?nV(c,p):"single";wt(u).focus(),p==1&&u.state.selectingText&&u.state.selectingText(i),!(c&&iV(u,p,c,g,i))&&(p==1?c?oV(u,c,g,i):B(i)==f.scroller&&ee(i):p==2?(c&&dh(u.doc,c),setTimeout(function(){return f.input.focus()},20)):p==3&&(M?u.display.input.onContextMenu(i):Iy(u)))}}}function iV(i,u,f,c,p){var g="Click";return c=="double"?g="Double"+g:c=="triple"&&(g="Triple"+g),g=(u==1?"Left":u==2?"Middle":"Right")+g,lf(i,xO(g,p),p,function(E){if(typeof E=="string"&&(E=sf[E]),!E)return!1;var O=!1;try{i.isReadOnly()&&(i.state.suppressEdits=!0),O=E(i,f)!=rt}finally{i.state.suppressEdits=!1}return O})}function aV(i,u,f){var c=i.getOption("configureMouse"),p=c?c(i,u,f):{};if(p.unit==null){var g=w?f.shiftKey&&f.metaKey:f.altKey;p.unit=g?"rectangle":u=="single"?"char":u=="double"?"word":"line"}return(p.extend==null||i.doc.extend)&&(p.extend=i.doc.extend||f.shiftKey),p.addNew==null&&(p.addNew=k?f.metaKey:f.ctrlKey),p.moveOnDrag==null&&(p.moveOnDrag=!(k?f.altKey:f.ctrlKey)),p}function oV(i,u,f,c){s?setTimeout(Mt(Uk,i),0):i.curOp.focus=Ce(Je(i));var p=aV(i,f,c),g=i.doc.sel,E;i.options.dragDrop&&te&&!i.isReadOnly()&&f=="single"&&(E=g.contains(u))>-1&&(re((E=g.ranges[E]).from(),u)<0||u.xRel>0)&&(re(E.to(),u)>0||u.xRel<0)?uV(i,c,u,p):sV(i,c,u,p)}function uV(i,u,f,c){var p=i.display,g=!1,E=xr(i,function(x){d&&(p.scroller.draggable=!1),i.state.draggingText=!1,i.state.delayingBlurEvent&&(i.hasFocus()?i.state.delayingBlurEvent=!1:Iy(i)),Tr(p.wrapper.ownerDocument,"mouseup",E),Tr(p.wrapper.ownerDocument,"mousemove",O),Tr(p.scroller,"dragstart",N),Tr(p.scroller,"drop",E),g||(ee(x),c.addNew||dh(i.doc,f,null,null,c.extend),d&&!A||s&&l==9?setTimeout(function(){p.wrapper.ownerDocument.body.focus({preventScroll:!0}),p.input.focus()},20):p.input.focus())}),O=function(x){g=g||Math.abs(u.clientX-x.clientX)+Math.abs(u.clientY-x.clientY)>=10},N=function(){return g=!0};d&&(p.scroller.draggable=!0),i.state.draggingText=E,E.copy=!c.moveOnDrag,ge(p.wrapper.ownerDocument,"mouseup",E),ge(p.wrapper.ownerDocument,"mousemove",O),ge(p.scroller,"dragstart",N),ge(p.scroller,"drop",E),i.state.delayingBlurEvent=!0,setTimeout(function(){return p.input.focus()},20),p.scroller.dragDrop&&p.scroller.dragDrop()}function UO(i,u,f){if(f=="char")return new bt(u,u);if(f=="word")return i.findWordAt(u);if(f=="line")return new bt(W(u.line,0),qe(i.doc,W(u.line+1,0)));var c=f(i,u);return new bt(c.from,c.to)}function sV(i,u,f,c){s&&Iy(i);var p=i.display,g=i.doc;ee(u);var E,O,N=g.sel,x=N.ranges;if(c.addNew&&!c.extend?(O=g.sel.contains(f),O>-1?E=x[O]:E=new bt(f,f)):(E=g.sel.primary(),O=g.sel.primIndex),c.unit=="rectangle")c.addNew||(E=new bt(f,f)),f=wu(i,u,!0,!0),O=-1;else{var V=UO(i,f,c.unit);c.extend?E=Hy(E,V.anchor,V.head,c.extend):E=V}c.addNew?O==-1?(O=x.length,tn(g,Yi(i,x.concat([E]),O),{scroll:!1,origin:"*mouse"})):x.length>1&&x[O].empty()&&c.unit=="char"&&!c.extend?(tn(g,Yi(i,x.slice(0,O).concat(x.slice(O+1)),0),{scroll:!1,origin:"*mouse"}),N=g.sel):zy(g,O,E,Nr):(O=0,tn(g,new ni([E],0),Nr),N=g.sel);var K=f;function $(ve){if(re(K,ve)!=0)if(K=ve,c.unit=="rectangle"){for(var Oe=[],Fe=i.options.tabSize,Re=De(Ae(g,f.line).text,f.ch,Fe),Xe=De(Ae(g,ve.line).text,ve.ch,Fe),Pt=Math.min(Re,Xe),Rr=Math.max(Re,Xe),$t=Math.min(f.line,ve.line),Gn=Math.min(i.lastLine(),Math.max(f.line,ve.line));$t<=Gn;$t++){var An=Ae(g,$t).text,hr=oe(An,Pt,Fe);Pt==Rr?Oe.push(new bt(W($t,hr),W($t,hr))):An.length>hr&&Oe.push(new bt(W($t,hr),W($t,oe(An,Rr,Fe))))}Oe.length||Oe.push(new bt(f,f)),tn(g,Yi(i,N.ranges.slice(0,O).concat(Oe),O),{origin:"*mouse",scroll:!1}),i.scrollIntoView(ve)}else{var Nn=E,Wr=UO(i,ve,c.unit),Dr=Nn.anchor,vr;re(Wr.anchor,Dr)>0?(vr=Wr.head,Dr=Sr(Nn.from(),Wr.anchor)):(vr=Wr.anchor,Dr=ht(Nn.to(),Wr.head));var ar=N.ranges.slice(0);ar[O]=lV(i,new bt(qe(g,Dr),vr)),tn(g,Yi(i,ar,O),Nr)}}var X=p.wrapper.getBoundingClientRect(),ne=0;function ae(ve){var Oe=++ne,Fe=wu(i,ve,!0,c.unit=="rectangle");if(!!Fe)if(re(Fe,K)!=0){i.curOp.focus=Ce(Je(i)),$(Fe);var Re=oh(p,g);(Fe.line>=Re.to||Fe.lineX.bottom?20:0;Xe&&setTimeout(xr(i,function(){ne==Oe&&(p.scroller.scrollTop+=Xe,ae(ve))}),50)}}function le(ve){i.state.selectingText=!1,ne=1/0,ve&&(ee(ve),p.input.focus()),Tr(p.wrapper.ownerDocument,"mousemove",he),Tr(p.wrapper.ownerDocument,"mouseup",Ee),g.history.lastSelOrigin=null}var he=xr(i,function(ve){ve.buttons===0||!I(ve)?le(ve):ae(ve)}),Ee=xr(i,le);i.state.selectingText=Ee,ge(p.wrapper.ownerDocument,"mousemove",he),ge(p.wrapper.ownerDocument,"mouseup",Ee)}function lV(i,u){var f=u.anchor,c=u.head,p=Ae(i.doc,f.line);if(re(f,c)==0&&f.sticky==c.sticky)return u;var g=Bn(p);if(!g)return u;var E=qn(g,f.ch,f.sticky),O=g[E];if(O.from!=f.ch&&O.to!=f.ch)return u;var N=E+(O.from==f.ch==(O.level!=1)?0:1);if(N==0||N==g.length)return u;var x;if(c.line!=f.line)x=(c.line-f.line)*(i.doc.direction=="ltr"?1:-1)>0;else{var V=qn(g,c.ch,c.sticky),K=V-E||(c.ch-f.ch)*(O.level==1?-1:1);V==N-1||V==N?x=K<0:x=K>0}var $=g[N+(x?-1:0)],X=x==($.level==1),ne=X?$.from:$.to,ae=X?"after":"before";return f.ch==ne&&f.sticky==ae?u:new bt(new W(f.line,ne,ae),c)}function GO(i,u,f,c){var p,g;if(u.touches)p=u.touches[0].clientX,g=u.touches[0].clientY;else try{p=u.clientX,g=u.clientY}catch($){return!1}if(p>=Math.floor(i.display.gutters.getBoundingClientRect().right))return!1;c&&ee(u);var E=i.display,O=E.lineDiv.getBoundingClientRect();if(g>O.bottom||!Hr(i,f))return Y(u);g-=O.top-E.viewOffset;for(var N=0;N=p){var V=fa(i.doc,g),K=i.display.gutterSpecs[N];return At(i,f,i,V,K.className,u),Y(u)}}}function $y(i,u){return GO(i,u,"gutterClick",!0)}function QO(i,u){Xa(i.display,u)||cV(i,u)||zt(i,u,"contextmenu")||M||i.display.input.onContextMenu(u)}function cV(i,u){return Hr(i,"gutterContextMenu")?GO(i,u,"gutterContextMenu",!1):!1}function KO(i){i.display.wrapper.className=i.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+i.options.theme.replace(/(^|\s)\s*/g," cm-s-"),Qc(i)}var Ys={toString:function(){return"CodeMirror.Init"}},HO={},bh={};function fV(i){var u=i.optionHandlers;function f(c,p,g,E){i.defaults[c]=p,g&&(u[c]=E?function(O,N,x){x!=Ys&&g(O,N,x)}:g)}i.defineOption=f,i.Init=Ys,f("value","",function(c,p){return c.setValue(p)},!0),f("mode",null,function(c,p){c.doc.modeOption=p,Gy(c)},!0),f("indentUnit",2,Gy,!0),f("indentWithTabs",!1),f("smartIndent",!0),f("tabSize",4,function(c){Zc(c),Qc(c),Cn(c)},!0),f("lineSeparator",null,function(c,p){if(c.doc.lineSep=p,!!p){var g=[],E=c.doc.first;c.doc.iter(function(N){for(var x=0;;){var V=N.text.indexOf(p,x);if(V==-1)break;x=V+p.length,g.push(W(E,V))}E++});for(var O=g.length-1;O>=0;O--)Ks(c.doc,p,g[O],W(g[O].line,g[O].ch+p.length))}}),f("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\u202d\u202e\u2066\u2067\u2069\ufeff\ufff9-\ufffc]/g,function(c,p,g){c.state.specialChars=new RegExp(p.source+(p.test(" ")?"":"| "),"g"),g!=Ys&&c.refresh()}),f("specialCharPlaceholder",B3,function(c){return c.refresh()},!0),f("electricChars",!0),f("inputStyle",m?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),f("spellcheck",!1,function(c,p){return c.getInputField().spellcheck=p},!0),f("autocorrect",!1,function(c,p){return c.getInputField().autocorrect=p},!0),f("autocapitalize",!1,function(c,p){return c.getInputField().autocapitalize=p},!0),f("rtlMoveVisually",!C),f("wholeLineUpdateBefore",!0),f("theme","default",function(c){KO(c),Xc(c)},!0),f("keyMap","default",function(c,p,g){var E=mh(p),O=g!=Ys&&mh(g);O&&O.detach&&O.detach(c,E),E.attach&&E.attach(c,O||null)}),f("extraKeys",null),f("configureMouse",null),f("lineWrapping",!1,pV,!0),f("gutters",[],function(c,p){c.display.gutterSpecs=Vy(p,c.options.lineNumbers),Xc(c)},!0),f("fixedGutter",!0,function(c,p){c.display.gutters.style.left=p?Ay(c.display)+"px":"0",c.refresh()},!0),f("coverGutterNextToScrollbar",!1,function(c){return Vs(c)},!0),f("scrollbarStyle","native",function(c){Wk(c),Vs(c),c.display.scrollbars.setScrollTop(c.doc.scrollTop),c.display.scrollbars.setScrollLeft(c.doc.scrollLeft)},!0),f("lineNumbers",!1,function(c,p){c.display.gutterSpecs=Vy(c.options.gutters,p),Xc(c)},!0),f("firstLineNumber",1,Xc,!0),f("lineNumberFormatter",function(c){return c},Xc,!0),f("showCursorWhenSelecting",!1,Kc,!0),f("resetSelectionOnContextMenu",!0),f("lineWiseCopyCut",!0),f("pasteLinesPerSelection",!0),f("selectionsMayTouch",!1),f("readOnly",!1,function(c,p){p=="nocursor"&&(qs(c),c.display.input.blur()),c.display.input.readOnlyChanged(p)}),f("screenReaderLabel",null,function(c,p){p=p===""?null:p,c.display.input.screenReaderLabelChanged(p)}),f("disableInput",!1,function(c,p){p||c.display.input.reset()},!0),f("dragDrop",!0,dV),f("allowDropFileTypes",null),f("cursorBlinkRate",530),f("cursorScrollMargin",0),f("cursorHeight",1,Kc,!0),f("singleCursorHeightPerLine",!0,Kc,!0),f("workTime",100),f("workDelay",100),f("flattenSpans",!0,Zc,!0),f("addModeClass",!1,Zc,!0),f("pollInterval",100),f("undoDepth",200,function(c,p){return c.doc.history.undoDepth=p}),f("historyEventDelay",1250),f("viewportMargin",10,function(c){return c.refresh()},!0),f("maxHighlightLength",1e4,Zc,!0),f("moveInputWithCursor",!0,function(c,p){p||c.display.input.resetPosition()}),f("tabindex",null,function(c,p){return c.display.input.getField().tabIndex=p||""}),f("autofocus",null),f("direction","ltr",function(c,p){return c.doc.setDirection(p)},!0),f("phrases",null)}function dV(i,u,f){var c=f&&f!=Ys;if(!u!=!c){var p=i.display.dragFunctions,g=u?ge:Tr;g(i.display.scroller,"dragstart",p.start),g(i.display.scroller,"dragenter",p.enter),g(i.display.scroller,"dragover",p.over),g(i.display.scroller,"dragleave",p.leave),g(i.display.scroller,"drop",p.drop)}}function pV(i){i.options.lineWrapping?(we(i.display.wrapper,"CodeMirror-wrap"),i.display.sizer.style.minWidth="",i.display.sizerWidth=null):(z(i.display.wrapper,"CodeMirror-wrap"),by(i)),Ny(i),Cn(i),Qc(i),setTimeout(function(){return Vs(i)},100)}function Wt(i,u){var f=this;if(!(this instanceof Wt))return new Wt(i,u);this.options=u=u?Ie(u):{},Ie(HO,u,!1);var c=u.value;typeof c=="string"?c=new wn(c,u.mode,null,u.lineSeparator,u.direction):u.mode&&(c.modeOption=u.mode),this.doc=c;var p=new Wt.inputStyles[u.inputStyle](this),g=this.display=new OB(i,c,p,u);g.wrapper.CodeMirror=this,KO(this),u.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Wk(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new Pe,keySeq:null,specialChars:null},u.autofocus&&!m&&g.input.focus(),s&&l<11&&setTimeout(function(){return f.display.input.reset(!0)},20),hV(this),KB(),xu(this),this.curOp.forceUpdate=!0,iO(this,c),u.autofocus&&!m||this.hasFocus()?setTimeout(function(){f.hasFocus()&&!f.state.focused&&Ry(f)},20):qs(this);for(var E in bh)bh.hasOwnProperty(E)&&bh[E](this,u[E],Ys);Xk(this),u.finishInit&&u.finishInit(this);for(var O=0;O20*20}ge(u.scroller,"touchstart",function(N){if(!zt(i,N)&&!g(N)&&!$y(i,N)){u.input.ensurePolled(),clearTimeout(f);var x=+new Date;u.activeTouch={start:x,moved:!1,prev:x-c.end<=300?c:null},N.touches.length==1&&(u.activeTouch.left=N.touches[0].pageX,u.activeTouch.top=N.touches[0].pageY)}}),ge(u.scroller,"touchmove",function(){u.activeTouch&&(u.activeTouch.moved=!0)}),ge(u.scroller,"touchend",function(N){var x=u.activeTouch;if(x&&!Xa(u,N)&&x.left!=null&&!x.moved&&new Date-x.start<300){var V=i.coordsChar(u.activeTouch,"page"),K;!x.prev||E(x,x.prev)?K=new bt(V,V):!x.prev.prev||E(x,x.prev.prev)?K=i.findWordAt(V):K=new bt(W(V.line,0),qe(i.doc,W(V.line+1,0))),i.setSelection(K.anchor,K.head),i.focus(),ee(N)}p()}),ge(u.scroller,"touchcancel",p),ge(u.scroller,"scroll",function(){u.scroller.clientHeight&&(zc(i,u.scroller.scrollTop),Nu(i,u.scroller.scrollLeft,!0),At(i,"scroll",i))}),ge(u.scroller,"mousewheel",function(N){return eO(i,N)}),ge(u.scroller,"DOMMouseScroll",function(N){return eO(i,N)}),ge(u.wrapper,"scroll",function(){return u.wrapper.scrollTop=u.wrapper.scrollLeft=0}),u.dragFunctions={enter:function(N){zt(i,N)||J(N)},over:function(N){zt(i,N)||(QB(i,N),J(N))},start:function(N){return GB(i,N)},drop:xr(i,UB),leave:function(N){zt(i,N)||wO(i)}};var O=u.input.getField();ge(O,"keyup",function(N){return qO.call(i,N)}),ge(O,"keydown",xr(i,MO)),ge(O,"keypress",xr(i,BO)),ge(O,"focus",function(N){return Ry(i,N)}),ge(O,"blur",function(N){return qs(i,N)})}var e0=[];Wt.defineInitHook=function(i){return e0.push(i)};function df(i,u,f,c){var p=i.doc,g;f==null&&(f="add"),f=="smart"&&(p.mode.indent?g=qc(i,u).state:f="prev");var E=i.options.tabSize,O=Ae(p,u),N=De(O.text,null,E);O.stateAfter&&(O.stateAfter=null);var x=O.text.match(/^\s*/)[0],V;if(!c&&!/\S/.test(O.text))V=0,f="not";else if(f=="smart"&&(V=p.mode.indent(g,O.text.slice(x.length),O.text),V==rt||V>150)){if(!c)return;f="prev"}f=="prev"?u>p.first?V=De(Ae(p,u-1).text,null,E):V=0:f=="add"?V=N+i.options.indentUnit:f=="subtract"?V=N-i.options.indentUnit:typeof f=="number"&&(V=N+f),V=Math.max(0,V);var K="",$=0;if(i.options.indentWithTabs)for(var X=Math.floor(V/E);X;--X)$+=E,K+=" ";if($E,N=en(u),x=null;if(O&&c.ranges.length>1)if(Ji&&Ji.text.join(` +`)==u){if(c.ranges.length%Ji.text.length==0){x=[];for(var V=0;V=0;$--){var X=c.ranges[$],ne=X.from(),ae=X.to();X.empty()&&(f&&f>0?ne=W(ne.line,ne.ch-f):i.state.overwrite&&!O?ae=W(ae.line,Math.min(Ae(g,ae.line).text.length,ae.ch+ue(N).length)):O&&Ji&&Ji.lineWise&&Ji.text.join(` +`)==N.join(` +`)&&(ne=ae=W(ne.line,0)));var le={from:ne,to:ae,text:x?x[$%x.length]:N,origin:p||(O?"paste":i.state.cutIncoming>E?"cut":"+input")};Qs(i.doc,le),Lr(i,"inputRead",i,le)}u&&!O&&WO(i,u),Bs(i),i.curOp.updateInput<2&&(i.curOp.updateInput=K),i.curOp.typing=!0,i.state.pasteIncoming=i.state.cutIncoming=-1}function zO(i,u){var f=i.clipboardData&&i.clipboardData.getData("Text");if(f)return i.preventDefault(),!u.isReadOnly()&&!u.options.disableInput&&u.hasFocus()&&Un(u,function(){return t0(u,f,0,null,"paste")}),!0}function WO(i,u){if(!(!i.options.electricChars||!i.options.smartIndent))for(var f=i.doc.sel,c=f.ranges.length-1;c>=0;c--){var p=f.ranges[c];if(!(p.head.ch>100||c&&f.ranges[c-1].head.line==p.head.line)){var g=i.getModeAt(p.head),E=!1;if(g.electricChars){for(var O=0;O-1){E=df(i,p.head.line,"smart");break}}else g.electricInput&&g.electricInput.test(Ae(i.doc,p.head.line).text.slice(0,p.head.ch))&&(E=df(i,p.head.line,"smart"));E&&Lr(i,"electricInput",i,p.head.line)}}}function YO(i){for(var u=[],f=[],c=0;cg&&(df(this,O.head.line,c,!0),g=O.head.line,E==this.doc.sel.primIndex&&Bs(this));else{var N=O.from(),x=O.to(),V=Math.max(g,N.line);g=Math.min(this.lastLine(),x.line-(x.ch?0:1))+1;for(var K=V;K0&&zy(this.doc,E,new bt(N,$[E].to()),ut)}}}),getTokenAt:function(c,p){return ok(this,c,p)},getLineTokens:function(c,p){return ok(this,W(c),p,!0)},getTokenTypeAt:function(c){c=qe(this.doc,c);var p=nk(this,Ae(this.doc,c.line)),g=0,E=(p.length-1)/2,O=c.ch,N;if(O==0)N=p[2];else for(;;){var x=g+E>>1;if((x?p[x*2-1]:0)>=O)E=x;else if(p[x*2+1]N&&(c=N,E=!0),O=Ae(this.doc,c)}else O=c;return th(this,O,{top:0,left:0},p||"page",g||E).top+(E?this.doc.height-Ja(O):0)},defaultTextHeight:function(){return Ps(this.display)},defaultCharWidth:function(){return Ms(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(c,p,g,E,O){var N=this.display;c=Wi(this,qe(this.doc,c));var x=c.bottom,V=c.left;if(p.style.position="absolute",p.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(p),N.sizer.appendChild(p),E=="over")x=c.top;else if(E=="above"||E=="near"){var K=Math.max(N.wrapper.clientHeight,this.doc.height),$=Math.max(N.sizer.clientWidth,N.lineSpace.clientWidth);(E=="above"||c.bottom+p.offsetHeight>K)&&c.top>p.offsetHeight?x=c.top-p.offsetHeight:c.bottom+p.offsetHeight<=K&&(x=c.bottom),V+p.offsetWidth>$&&(V=$-p.offsetWidth)}p.style.top=x+"px",p.style.left=p.style.right="",O=="right"?(V=N.sizer.clientWidth-p.offsetWidth,p.style.right="0px"):(O=="left"?V=0:O=="middle"&&(V=(N.sizer.clientWidth-p.offsetWidth)/2),p.style.left=V+"px"),g&&dB(this,{left:V,top:x,right:V+p.offsetWidth,bottom:x+p.offsetHeight})},triggerOnKeyDown:dn(MO),triggerOnKeyPress:dn(BO),triggerOnKeyUp:qO,triggerOnMouseDown:dn(VO),execCommand:function(c){if(sf.hasOwnProperty(c))return sf[c].call(null,this)},triggerElectric:dn(function(c){WO(this,c)}),findPosH:function(c,p,g,E){var O=1;p<0&&(O=-1,p=-p);for(var N=qe(this.doc,c),x=0;x0&&V(g.charAt(E-1));)--E;for(;O.5||this.options.lineWrapping)&&Ny(this),At(this,"refresh",this)}),swapDoc:dn(function(c){var p=this.doc;return p.cm=null,this.state.selectingText&&this.state.selectingText(),iO(this,c),Qc(this),this.display.input.reset(),Hc(this,c.scrollLeft,c.scrollTop),this.curOp.forceScroll=!0,Lr(this,"swapDoc",this,p),p}),phrase:function(c){var p=this.options.phrases;return p&&Object.prototype.hasOwnProperty.call(p,c)?p[c]:c},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},zr(i),i.registerHelper=function(c,p,g){f.hasOwnProperty(c)||(f[c]=i[c]={_global:[]}),f[c][p]=g},i.registerGlobalHelper=function(c,p,g,E){i.registerHelper(c,p,E),f[c]._global.push({pred:g,val:E})}}function r0(i,u,f,c,p){var g=u,E=f,O=Ae(i,u.line),N=p&&i.direction=="rtl"?-f:f;function x(){var Ee=u.line+N;return Ee=i.first+i.size?!1:(u=new W(Ee,u.ch,u.sticky),O=Ae(i,Ee))}function V(Ee){var ve;if(c=="codepoint"){var Oe=O.text.charCodeAt(u.ch+(f>0?0:-1));if(isNaN(Oe))ve=null;else{var Fe=f>0?Oe>=55296&&Oe<56320:Oe>=56320&&Oe<57343;ve=new W(u.line,Math.max(0,Math.min(O.text.length,u.ch+f*(Fe?2:1))),-f)}}else p?ve=JB(i.cm,O,u,f):ve=Yy(O,u,f);if(ve==null)if(!Ee&&x())u=Jy(p,i.cm,O,u.line,N);else return!1;else u=ve;return!0}if(c=="char"||c=="codepoint")V();else if(c=="column")V(!0);else if(c=="word"||c=="group")for(var K=null,$=c=="group",X=i.cm&&i.cm.getHelper(u,"wordChars"),ne=!0;!(f<0&&!V(!ne));ne=!1){var ae=O.text.charAt(u.ch)||` +`,le=mi(ae,X)?"w":$&&ae==` +`?"n":!$||/\s/.test(ae)?null:"p";if($&&!ne&&!le&&(le="s"),K&&K!=le){f<0&&(f=1,V(),u.sticky="after");break}if(le&&(K=le),f>0&&!V(!ne))break}var he=hh(i,u,g,E,!0);return Me(g,he)&&(he.hitSide=!0),he}function ZO(i,u,f,c){var p=i.doc,g=u.left,E;if(c=="page"){var O=Math.min(i.display.wrapper.clientHeight,wt(i).innerHeight||p(i).documentElement.clientHeight),N=Math.max(O-.5*Ps(i.display),3);E=(f>0?u.bottom:u.top)+f*N}else c=="line"&&(E=f>0?u.bottom+3:u.top-3);for(var x;x=Oy(i,g,E),!!x.outside;){if(f<0?E<=0:E>=p.height){x.hitSide=!0;break}E+=f*5}return x}var Nt=function(i){this.cm=i,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Pe,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Nt.prototype.init=function(i){var u=this,f=this,c=f.cm,p=f.div=i.lineDiv;p.contentEditable=!0,JO(p,c.options.spellcheck,c.options.autocorrect,c.options.autocapitalize);function g(O){for(var N=O.target;N;N=N.parentNode){if(N==p)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(N.className))break}return!1}ge(p,"paste",function(O){!g(O)||zt(c,O)||zO(O,c)||l<=11&&setTimeout(xr(c,function(){return u.updateFromDOM()}),20)}),ge(p,"compositionstart",function(O){u.composing={data:O.data,done:!1}}),ge(p,"compositionupdate",function(O){u.composing||(u.composing={data:O.data,done:!1})}),ge(p,"compositionend",function(O){u.composing&&(O.data!=u.composing.data&&u.readFromDOMSoon(),u.composing.done=!0)}),ge(p,"touchstart",function(){return f.forceCompositionEnd()}),ge(p,"input",function(){u.composing||u.readFromDOMSoon()});function E(O){if(!(!g(O)||zt(c,O))){if(c.somethingSelected())Th({lineWise:!1,text:c.getSelections()}),O.type=="cut"&&c.replaceSelection("",null,"cut");else if(c.options.lineWiseCopyCut){var N=YO(c);Th({lineWise:!0,text:N.text}),O.type=="cut"&&c.operation(function(){c.setSelections(N.ranges,0,ut),c.replaceSelection("",null,"cut")})}else return;if(O.clipboardData){O.clipboardData.clearData();var x=Ji.text.join(` +`);if(O.clipboardData.setData("Text",x),O.clipboardData.getData("Text")==x){O.preventDefault();return}}var V=XO(),K=V.firstChild;c.display.lineSpace.insertBefore(V,c.display.lineSpace.firstChild),K.value=Ji.text.join(` +`);var $=Ce(p.ownerDocument);pt(K),setTimeout(function(){c.display.lineSpace.removeChild(V),$.focus(),$==p&&f.showPrimarySelection()},50)}}ge(p,"copy",E),ge(p,"cut",E)},Nt.prototype.screenReaderLabelChanged=function(i){i?this.div.setAttribute("aria-label",i):this.div.removeAttribute("aria-label")},Nt.prototype.prepareSelection=function(){var i=Vk(this.cm,!1);return i.focus=Ce(this.div.ownerDocument)==this.div,i},Nt.prototype.showSelection=function(i,u){!i||!this.cm.display.view.length||((i.focus||u)&&this.showPrimarySelection(),this.showMultipleSelections(i))},Nt.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},Nt.prototype.showPrimarySelection=function(){var i=this.getSelection(),u=this.cm,f=u.doc.sel.primary(),c=f.from(),p=f.to();if(u.display.viewTo==u.display.viewFrom||c.line>=u.display.viewTo||p.line=u.display.viewFrom&&$O(u,c)||{node:O[0].measure.map[2],offset:0},x=p.linei.firstLine()&&(c=W(c.line-1,Ae(i.doc,c.line-1).length)),p.ch==Ae(i.doc,p.line).text.length&&p.lineu.viewTo-1)return!1;var g,E,O;c.line==u.viewFrom||(g=Au(i,c.line))==0?(E=yt(u.view[0].line),O=u.view[0].node):(E=yt(u.view[g].line),O=u.view[g-1].node.nextSibling);var N=Au(i,p.line),x,V;if(N==u.view.length-1?(x=u.viewTo-1,V=u.lineDiv.lastChild):(x=yt(u.view[N+1].line)-1,V=u.view[N+1].node.previousSibling),!O)return!1;for(var K=i.doc.splitLines(mV(i,O,V,E,x)),$=Wa(i.doc,W(E,0),W(x,Ae(i.doc,x).text.length));K.length>1&&$.length>1;)if(ue(K)==ue($))K.pop(),$.pop(),x--;else if(K[0]==$[0])K.shift(),$.shift(),E++;else break;for(var X=0,ne=0,ae=K[0],le=$[0],he=Math.min(ae.length,le.length);Xc.ch&&Ee.charCodeAt(Ee.length-ne-1)==ve.charCodeAt(ve.length-ne-1);)X--,ne++;K[K.length-1]=Ee.slice(0,Ee.length-ne).replace(/^\u200b+/,""),K[0]=K[0].slice(X).replace(/\u200b+$/,"");var Fe=W(E,X),Re=W(x,$.length?ue($).length-ne:0);if(K.length>1||K[0]||re(Fe,Re))return Ks(i.doc,K,Fe,Re,"+input"),!0},Nt.prototype.ensurePolled=function(){this.forceCompositionEnd()},Nt.prototype.reset=function(){this.forceCompositionEnd()},Nt.prototype.forceCompositionEnd=function(){!this.composing||(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Nt.prototype.readFromDOMSoon=function(){var i=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){if(i.readDOMTimeout=null,i.composing)if(i.composing.done)i.composing=null;else return;i.updateFromDOM()},80))},Nt.prototype.updateFromDOM=function(){var i=this;(this.cm.isReadOnly()||!this.pollContent())&&Un(this.cm,function(){return Cn(i.cm)})},Nt.prototype.setUneditable=function(i){i.contentEditable="false"},Nt.prototype.onKeyPress=function(i){i.charCode==0||this.composing||(i.preventDefault(),this.cm.isReadOnly()||xr(this.cm,t0)(this.cm,String.fromCharCode(i.charCode==null?i.keyCode:i.charCode),0))},Nt.prototype.readOnlyChanged=function(i){this.div.contentEditable=String(i!="nocursor")},Nt.prototype.onContextMenu=function(){},Nt.prototype.resetPosition=function(){},Nt.prototype.needsContentAttribute=!0;function $O(i,u){var f=Sy(i,u.line);if(!f||f.hidden)return null;var c=Ae(i.doc,u.line),p=Ck(f,c,u.line),g=Bn(c,i.doc.direction),E="left";if(g){var O=qn(g,u.ch);E=O%2?"right":"left"}var N=Nk(p.map,u.ch,E);return N.offset=N.collapse=="right"?N.end:N.start,N}function gV(i){for(var u=i;u;u=u.parentNode)if(/CodeMirror-gutter-wrapper/.test(u.className))return!0;return!1}function Js(i,u){return u&&(i.bad=!0),i}function mV(i,u,f,c,p){var g="",E=!1,O=i.doc.lineSeparator(),N=!1;function x(X){return function(ne){return ne.id==X}}function V(){E&&(g+=O,N&&(g+=O),E=N=!1)}function K(X){X&&(V(),g+=X)}function $(X){if(X.nodeType==1){var ne=X.getAttribute("cm-text");if(ne){K(ne);return}var ae=X.getAttribute("cm-marker"),le;if(ae){var he=i.findMarks(W(c,0),W(p+1,0),x(+ae));he.length&&(le=he[0].find(0))&&K(Wa(i.doc,le.from,le.to).join(O));return}if(X.getAttribute("contenteditable")=="false")return;var Ee=/^(pre|div|p|li|table|br)$/i.test(X.nodeName);if(!/^br$/i.test(X.nodeName)&&X.textContent.length==0)return;Ee&&V();for(var ve=0;ve=9&&u.hasSelection&&(u.hasSelection=null),f.poll()}),ge(p,"paste",function(E){zt(c,E)||zO(E,c)||(c.state.pasteIncoming=+new Date,f.fastPoll())});function g(E){if(!zt(c,E)){if(c.somethingSelected())Th({lineWise:!1,text:c.getSelections()});else if(c.options.lineWiseCopyCut){var O=YO(c);Th({lineWise:!0,text:O.text}),E.type=="cut"?c.setSelections(O.ranges,null,ut):(f.prevInput="",p.value=O.text.join(` +`),pt(p))}else return;E.type=="cut"&&(c.state.cutIncoming=+new Date)}}ge(p,"cut",g),ge(p,"copy",g),ge(i.scroller,"paste",function(E){if(!(Xa(i,E)||zt(c,E))){if(!p.dispatchEvent){c.state.pasteIncoming=+new Date,f.focus();return}var O=new Event("paste");O.clipboardData=E.clipboardData,p.dispatchEvent(O)}}),ge(i.lineSpace,"selectstart",function(E){Xa(i,E)||ee(E)}),ge(p,"compositionstart",function(){var E=c.getCursor("from");f.composing&&f.composing.range.clear(),f.composing={start:E,range:c.markText(E,c.getCursor("to"),{className:"CodeMirror-composing"})}}),ge(p,"compositionend",function(){f.composing&&(f.poll(),f.composing.range.clear(),f.composing=null)})},sr.prototype.createField=function(i){this.wrapper=XO(),this.textarea=this.wrapper.firstChild},sr.prototype.screenReaderLabelChanged=function(i){i?this.textarea.setAttribute("aria-label",i):this.textarea.removeAttribute("aria-label")},sr.prototype.prepareSelection=function(){var i=this.cm,u=i.display,f=i.doc,c=Vk(i);if(i.options.moveInputWithCursor){var p=Wi(i,f.sel.primary().head,"div"),g=u.wrapper.getBoundingClientRect(),E=u.lineDiv.getBoundingClientRect();c.teTop=Math.max(0,Math.min(u.wrapper.clientHeight-10,p.top+E.top-g.top)),c.teLeft=Math.max(0,Math.min(u.wrapper.clientWidth-10,p.left+E.left-g.left))}return c},sr.prototype.showSelection=function(i){var u=this.cm,f=u.display;G(f.cursorDiv,i.cursors),G(f.selectionDiv,i.selection),i.teTop!=null&&(this.wrapper.style.top=i.teTop+"px",this.wrapper.style.left=i.teLeft+"px")},sr.prototype.reset=function(i){if(!(this.contextMenuPending||this.composing&&i)){var u=this.cm;if(this.resetting=!0,u.somethingSelected()){this.prevInput="";var f=u.getSelection();this.textarea.value=f,u.state.focused&&pt(this.textarea),s&&l>=9&&(this.hasSelection=f)}else i||(this.prevInput=this.textarea.value="",s&&l>=9&&(this.hasSelection=null));this.resetting=!1}},sr.prototype.getField=function(){return this.textarea},sr.prototype.supportsTouch=function(){return!1},sr.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!m||Ce(this.textarea.ownerDocument)!=this.textarea))try{this.textarea.focus()}catch(i){}},sr.prototype.blur=function(){this.textarea.blur()},sr.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},sr.prototype.receivedFocus=function(){this.slowPoll()},sr.prototype.slowPoll=function(){var i=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){i.poll(),i.cm.state.focused&&i.slowPoll()})},sr.prototype.fastPoll=function(){var i=!1,u=this;u.pollingFast=!0;function f(){var c=u.poll();!c&&!i?(i=!0,u.polling.set(60,f)):(u.pollingFast=!1,u.slowPoll())}u.polling.set(20,f)},sr.prototype.poll=function(){var i=this,u=this.cm,f=this.textarea,c=this.prevInput;if(this.contextMenuPending||this.resetting||!u.state.focused||Er(f)&&!c&&!this.composing||u.isReadOnly()||u.options.disableInput||u.state.keySeq)return!1;var p=f.value;if(p==c&&!u.somethingSelected())return!1;if(s&&l>=9&&this.hasSelection===p||k&&/[\uf700-\uf7ff]/.test(p))return u.display.input.reset(),!1;if(u.doc.sel==u.display.selForContextMenu){var g=p.charCodeAt(0);if(g==8203&&!c&&(c="\u200B"),g==8666)return this.reset(),this.cm.execCommand("undo")}for(var E=0,O=Math.min(c.length,p.length);E1e3||p.indexOf(` +`)>-1?f.value=i.prevInput="":i.prevInput=p,i.composing&&(i.composing.range.clear(),i.composing.range=u.markText(i.composing.start,u.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},sr.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},sr.prototype.onKeyPress=function(){s&&l>=9&&(this.hasSelection=null),this.fastPoll()},sr.prototype.onContextMenu=function(i){var u=this,f=u.cm,c=f.display,p=u.textarea;u.contextMenuPending&&u.contextMenuPending();var g=wu(f,i),E=c.scroller.scrollTop;if(!g||T)return;var O=f.options.resetSelectionOnContextMenu;O&&f.doc.sel.contains(g)==-1&&xr(f,tn)(f.doc,Oo(g),ut);var N=p.style.cssText,x=u.wrapper.style.cssText,V=u.wrapper.offsetParent.getBoundingClientRect();u.wrapper.style.cssText="position: static",p.style.cssText=`position: absolute; width: 30px; height: 30px; + top: `+(i.clientY-V.top-5)+"px; left: "+(i.clientX-V.left-5)+`px; + z-index: 1000; background: `+(s?"rgba(255, 255, 255, .05)":"transparent")+`; + outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);`;var K;d&&(K=p.ownerDocument.defaultView.scrollY),c.input.focus(),d&&p.ownerDocument.defaultView.scrollTo(null,K),c.input.reset(),f.somethingSelected()||(p.value=u.prevInput=" "),u.contextMenuPending=X,c.selForContextMenu=f.doc.sel,clearTimeout(c.detectingSelectAll);function $(){if(p.selectionStart!=null){var ae=f.somethingSelected(),le="\u200B"+(ae?p.value:"");p.value="\u21DA",p.value=le,u.prevInput=ae?"":"\u200B",p.selectionStart=1,p.selectionEnd=le.length,c.selForContextMenu=f.doc.sel}}function X(){if(u.contextMenuPending==X&&(u.contextMenuPending=!1,u.wrapper.style.cssText=x,p.style.cssText=N,s&&l<9&&c.scrollbars.setScrollTop(c.scroller.scrollTop=E),p.selectionStart!=null)){(!s||s&&l<9)&&$();var ae=0,le=function(){c.selForContextMenu==f.doc.sel&&p.selectionStart==0&&p.selectionEnd>0&&u.prevInput=="\u200B"?xr(f,mO)(f):ae++<10?c.detectingSelectAll=setTimeout(le,500):(c.selForContextMenu=null,c.input.reset())};c.detectingSelectAll=setTimeout(le,200)}}if(s&&l>=9&&$(),M){J(i);var ne=function(){Tr(window,"mouseup",ne),setTimeout(X,20)};ge(window,"mouseup",ne)}else setTimeout(X,50)},sr.prototype.readOnlyChanged=function(i){i||this.reset(),this.textarea.disabled=i=="nocursor",this.textarea.readOnly=!!i},sr.prototype.setUneditable=function(){},sr.prototype.needsContentAttribute=!1;function bV(i,u){if(u=u?Ie(u):{},u.value=i.value,!u.tabindex&&i.tabIndex&&(u.tabindex=i.tabIndex),!u.placeholder&&i.placeholder&&(u.placeholder=i.placeholder),u.autofocus==null){var f=Ce(i.ownerDocument);u.autofocus=f==i||i.getAttribute("autofocus")!=null&&f==document.body}function c(){i.value=O.getValue()}var p;if(i.form&&(ge(i.form,"submit",c),!u.leaveSubmitMethodAlone)){var g=i.form;p=g.submit;try{var E=g.submit=function(){c(),g.submit=p,g.submit(),g.submit=E}}catch(N){}}u.finishInit=function(N){N.save=c,N.getTextArea=function(){return i},N.toTextArea=function(){N.toTextArea=isNaN,c(),i.parentNode.removeChild(N.getWrapperElement()),i.style.display="",i.form&&(Tr(i.form,"submit",c),!u.leaveSubmitMethodAlone&&typeof i.form.submit=="function"&&(i.form.submit=p))}},i.style.display="none";var O=Wt(function(N){return i.parentNode.insertBefore(N,i.nextSibling)},u);return O}function TV(i){i.off=Tr,i.on=ge,i.wheelEventPixels=CB,i.Doc=wn,i.splitLines=en,i.countColumn=De,i.findColumn=oe,i.isWordChar=la,i.Pass=rt,i.signal=At,i.Line=Rs,i.changeEnd=Co,i.scrollbarModel=zk,i.Pos=W,i.cmpPos=re,i.modes=fn,i.mimeModes=Hi,i.resolveMode=Vn,i.getMode=Ha,i.modeExtensions=Eo,i.extendMode=Hp,i.copyState=za,i.startState=Mc,i.innerMode=_o,i.commands=sf,i.keyMap=$a,i.keyName=IO,i.isModifierKey=LO,i.lookupKey=zs,i.normalizeKeyMap=YB,i.StringStream=ir,i.SharedTextMarker=af,i.TextMarker=Ao,i.LineWidget=nf,i.e_preventDefault=ee,i.e_stopPropagation=P,i.e_stop=J,i.addClass=we,i.contains=be,i.rmClass=z,i.keyNames=No}fV(Wt),vV(Wt);var EV="iter insert remove copy getEditor constructor".split(" ");for(var _h in wn.prototype)wn.prototype.hasOwnProperty(_h)&&Ue(EV,_h)<0&&(Wt.prototype[_h]=function(i){return function(){return i.apply(this.doc,arguments)}}(wn.prototype[_h]));return zr(wn),Wt.inputStyles={textarea:sr,contenteditable:Nt},Wt.defineMode=function(i){!Wt.defaults.mode&&i!="null"&&(Wt.defaults.mode=i),Kp.apply(this,arguments)},Wt.defineMIME=xs,Wt.defineMode("null",function(){return{token:function(i){return i.skipToEnd()}}}),Wt.defineMIME("text/plain","null"),Wt.defineExtension=function(i,u){Wt.prototype[i]=u},Wt.defineDocExtension=function(i,u){wn.prototype[i]=u},Wt.fromTextArea=bV,TV(Wt),Wt.version="5.65.9",Wt})});var vp=U((EP,_P)=>{(function(e){typeof EP=="object"&&typeof _P=="object"?e(ft()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";var t="CodeMirror-hint",r="CodeMirror-hint-active";e.showHint=function(S,y,_){if(!y)return S.showHint(_);_&&_.async&&(y.async=!0);var m={hint:y};if(_)for(var k in _)m[k]=_[k];return S.showHint(m)},e.defineExtension("showHint",function(S){S=s(this,this.getCursor("start"),S);var y=this.listSelections();if(!(y.length>1)){if(this.somethingSelected()){if(!S.hint.supportsSelection)return;for(var _=0;_C.clientHeight+1:!1,Ue;setTimeout(function(){Ue=m.getScrollInfo()});var Gi=De.bottom-Ie;if(Gi>0){var rt=De.bottom-De.top,ut=De.top-(j.bottom-j.top)-2;Ie-De.toput&&(C.style.height=(rt=ut)+"px"),C.style.top=(ke=j.top-rt)+we+"px",be=!1):C.style.height=Ie-De.top-2+"px"}var Nr=De.right-Mt;if(Pe&&(Nr+=m.display.nativeBarWidth),Nr>0&&(De.right-De.left>Mt&&(C.style.width=Mt-5+"px",Nr-=De.right-De.left-Mt),C.style.left=(ce=Math.max(j.left-Nr-Ce,0))+"px"),Pe)for(var $r=C.firstChild;$r;$r=$r.nextSibling)$r.style.paddingRight=m.display.nativeBarWidth+"px";if(m.addKeyMap(this.keyMap=d(S,{moveFocus:function(fe,ue){_.changeActive(_.selectedHint+fe,ue)},setFocus:function(fe){_.changeActive(fe)},menuSize:function(){return _.screenAmount()},length:R.length,close:function(){S.close()},pick:function(){_.pick()},data:y})),S.options.closeOnUnfocus){var oe;m.on("blur",this.onBlur=function(){oe=setTimeout(function(){S.close()},100)}),m.on("focus",this.onFocus=function(){clearTimeout(oe)})}m.on("scroll",this.onScroll=function(){var fe=m.getScrollInfo(),ue=m.getWrapperElement().getBoundingClientRect();Ue||(Ue=m.getScrollInfo());var Ge=ke+Ue.top-fe.top,Ze=Ge-(w.pageYOffset||(k.documentElement||k.body).scrollTop);if(be||(Ze+=C.offsetHeight),Ze<=ue.top||Ze>=ue.bottom)return S.close();C.style.top=Ge+"px",C.style.left=ce+Ue.left-fe.left+"px"}),e.on(C,"dblclick",function(fe){var ue=h(C,fe.target||fe.srcElement);ue&&ue.hintId!=null&&(_.changeActive(ue.hintId),_.pick())}),e.on(C,"click",function(fe){var ue=h(C,fe.target||fe.srcElement);ue&&ue.hintId!=null&&(_.changeActive(ue.hintId),S.options.completeOnSingleClick&&_.pick())}),e.on(C,"mousedown",function(){setTimeout(function(){m.focus()},20)});var Se=this.getSelectedHintRange();return(Se.from!==0||Se.to!==0)&&this.scrollToActive(),e.signal(y,"select",R[this.selectedHint],C.childNodes[this.selectedHint]),!0}v.prototype={close:function(){if(this.completion.widget==this){this.completion.widget=null,this.hints.parentNode&&this.hints.parentNode.removeChild(this.hints),this.completion.cm.removeKeyMap(this.keyMap);var S=this.completion.cm.getInputField();S.removeAttribute("aria-activedescendant"),S.removeAttribute("aria-owns");var y=this.completion.cm;this.completion.options.closeOnUnfocus&&(y.off("blur",this.onBlur),y.off("focus",this.onFocus)),y.off("scroll",this.onScroll)}},disable:function(){this.completion.cm.removeKeyMap(this.keyMap);var S=this;this.keyMap={Enter:function(){S.picked=!0}},this.completion.cm.addKeyMap(this.keyMap)},pick:function(){this.completion.pick(this.data,this.selectedHint)},changeActive:function(S,y){if(S>=this.data.list.length?S=y?this.data.list.length-1:0:S<0&&(S=y?0:this.data.list.length-1),this.selectedHint!=S){var _=this.hints.childNodes[this.selectedHint];_&&(_.className=_.className.replace(" "+r,""),_.removeAttribute("aria-selected")),_=this.hints.childNodes[this.selectedHint=S],_.className+=" "+r,_.setAttribute("aria-selected","true"),this.completion.cm.getInputField().setAttribute("aria-activedescendant",_.id),this.scrollToActive(),e.signal(this.data,"select",this.data.list[this.selectedHint],_)}},scrollToActive:function(){var S=this.getSelectedHintRange(),y=this.hints.childNodes[S.from],_=this.hints.childNodes[S.to],m=this.hints.firstChild;y.offsetTopthis.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=_.offsetTop+_.offsetHeight-this.hints.clientHeight+m.offsetTop)},screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1},getSelectedHintRange:function(){var S=this.completion.options.scrollMargin||0;return{from:Math.max(0,this.selectedHint-S),to:Math.min(this.data.list.length-1,this.selectedHint+S)}}};function b(S,y){if(!S.somethingSelected())return y;for(var _=[],m=0;m0?C(z):M(q+1)})}M(0)};return k.async=!0,k.supportsSelection=!0,k}else return(m=S.getHelper(S.getCursor(),"hintWords"))?function(w){return e.hint.fromList(w,{words:m})}:e.hint.anyword?function(w,C){return e.hint.anyword(w,C)}:function(){}}e.registerHelper("hint","auto",{resolve:A}),e.registerHelper("hint","fromList",function(S,y){var _=S.getCursor(),m=S.getTokenAt(_),k,w=e.Pos(_.line,m.start),C=_;m.start<_.ch&&/\w/.test(m.string.charAt(_.ch-m.start-1))?k=m.string.substr(0,_.ch-m.start):(k="",w=_);for(var D=[],R=0;R,]/,closeOnPick:!0,closeOnUnfocus:!0,updateOnCursorActivity:!0,completeOnSingleClick:!0,container:null,customKeys:null,extraKeys:null,paddingForScrollbar:!0,moveOnOverlap:!0};e.defineOption("hintOptions",null)})});var kP=U((SP,DP)=>{(function(e){typeof SP=="object"&&typeof DP=="object"?e(ft()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";var t={},r=/[^\s\u00a0]/,n=e.Pos,a=e.cmpPos;function o(d){var h=d.search(r);return h==-1?0:h}e.commands.toggleComment=function(d){d.toggleComment()},e.defineExtension("toggleComment",function(d){d||(d=t);for(var h=this,v=1/0,b=this.listSelections(),T=null,A=b.length-1;A>=0;A--){var L=b[A].from(),S=b[A].to();L.line>=v||(S.line>=v&&(S=n(v,0)),v=L.line,T==null?h.uncomment(L,S,d)?T="un":(h.lineComment(L,S,d),T="line"):T=="un"?h.uncomment(L,S,d):h.lineComment(L,S,d))}});function s(d,h,v){return/\bstring\b/.test(d.getTokenTypeAt(n(h.line,0)))&&!/^[\'\"\`]/.test(v)}function l(d,h){var v=d.getMode();return v.useInnerComments===!1||!v.innerMode?v:d.getModeAt(h)}e.defineExtension("lineComment",function(d,h,v){v||(v=t);var b=this,T=l(b,d),A=b.getLine(d.line);if(!(A==null||s(b,d,A))){var L=v.lineComment||T.lineComment;if(!L){(v.blockCommentStart||T.blockCommentStart)&&(v.fullLines=!0,b.blockComment(d,h,v));return}var S=Math.min(h.ch!=0||h.line==d.line?h.line+1:h.line,b.lastLine()+1),y=v.padding==null?" ":v.padding,_=v.commentBlankLines||d.line==h.line;b.operation(function(){if(v.indent){for(var m=null,k=d.line;kC.length)&&(m=C)}for(var k=d.line;kS||b.operation(function(){if(v.fullLines!=!1){var _=r.test(b.getLine(S));b.replaceRange(y+L,n(S)),b.replaceRange(A+y,n(d.line,0));var m=v.blockCommentLead||T.blockCommentLead;if(m!=null)for(var k=d.line+1;k<=S;++k)(k!=S||_)&&b.replaceRange(m+y,n(k,0))}else{var w=a(b.getCursor("to"),h)==0,C=!b.somethingSelected();b.replaceRange(L,h),w&&b.setSelection(C?h:b.getCursor("from"),h),b.replaceRange(A,d)}})}}),e.defineExtension("uncomment",function(d,h,v){v||(v=t);var b=this,T=l(b,d),A=Math.min(h.ch!=0||h.line==d.line?h.line:h.line-1,b.lastLine()),L=Math.min(d.line,A),S=v.lineComment||T.lineComment,y=[],_=v.padding==null?" ":v.padding,m;e:{if(!S)break e;for(var k=L;k<=A;++k){var w=b.getLine(k),C=w.indexOf(S);if(C>-1&&!/comment/.test(b.getTokenTypeAt(n(k,C+1)))&&(C=-1),C==-1&&r.test(w)||C>-1&&r.test(w.slice(0,C)))break e;y.push(w)}if(b.operation(function(){for(var we=L;we<=A;++we){var Ve=y[we-L],pt=Ve.indexOf(S),Je=pt+S.length;pt<0||(Ve.slice(Je,Je+_.length)==_&&(Je+=_.length),m=!0,b.replaceRange("",n(we,pt),n(we,Je)))}}),m)return!0}var D=v.blockCommentStart||T.blockCommentStart,R=v.blockCommentEnd||T.blockCommentEnd;if(!D||!R)return!1;var M=v.blockCommentLead||T.blockCommentLead,q=b.getLine(L),z=q.indexOf(D);if(z==-1)return!1;var Q=A==L?q:b.getLine(A),G=Q.indexOf(R,A==L?z+D.length:0),j=n(L,z+1),ce=n(A,G+1);if(G==-1||!/comment/.test(b.getTokenTypeAt(j))||!/comment/.test(b.getTokenTypeAt(ce))||b.getRange(j,ce,` +`).indexOf(R)>-1)return!1;var ke=q.lastIndexOf(D,d.ch),be=ke==-1?-1:q.slice(0,d.ch).indexOf(R,ke+D.length);if(ke!=-1&&be!=-1&&be+R.length!=d.ch)return!1;be=Q.indexOf(R,h.ch);var Ce=Q.slice(h.ch).lastIndexOf(D,be-h.ch);return ke=be==-1||Ce==-1?-1:h.ch+Ce,be!=-1&&ke!=-1&&ke!=h.ch?!1:(b.operation(function(){b.replaceRange("",n(A,G-(_&&Q.slice(G-_.length,G)==_?_.length:0)),n(A,G+R.length));var we=z+D.length;if(_&&q.slice(we,we+_.length)==_&&(we+=_.length),b.replaceRange("",n(L,z),n(L,we)),M)for(var Ve=L+1;Ve<=A;++Ve){var pt=b.getLine(Ve),Je=pt.indexOf(M);if(!(Je==-1||r.test(pt.slice(0,Je)))){var wt=Je+M.length;_&&pt.slice(wt,wt+_.length)==_&&(wt+=_.length),b.replaceRange("",n(Ve,Je),n(Ve,wt))}}}),!0)})})});var gp=U((OP,CP)=>{(function(e){typeof OP=="object"&&typeof CP=="object"?e(ft()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){var t=/MSIE \d/.test(navigator.userAgent)&&(document.documentMode==null||document.documentMode<8),r=e.Pos,n={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<","<":">>",">":"<<"};function a(v){return v&&v.bracketRegex||/[(){}[\]]/}function o(v,b,T){var A=v.getLineHandle(b.line),L=b.ch-1,S=T&&T.afterCursor;S==null&&(S=/(^| )cm-fat-cursor($| )/.test(v.getWrapperElement().className));var y=a(T),_=!S&&L>=0&&y.test(A.text.charAt(L))&&n[A.text.charAt(L)]||y.test(A.text.charAt(L+1))&&n[A.text.charAt(++L)];if(!_)return null;var m=_.charAt(1)==">"?1:-1;if(T&&T.strict&&m>0!=(L==b.ch))return null;var k=v.getTokenTypeAt(r(b.line,L+1)),w=s(v,r(b.line,L+(m>0?1:0)),m,k,T);return w==null?null:{from:r(b.line,L),to:w&&w.pos,match:w&&w.ch==_.charAt(0),forward:m>0}}function s(v,b,T,A,L){for(var S=L&&L.maxScanLineLength||1e4,y=L&&L.maxScanLines||1e3,_=[],m=a(L),k=T>0?Math.min(b.line+y,v.lastLine()+1):Math.max(v.firstLine()-1,b.line-y),w=b.line;w!=k;w+=T){var C=v.getLine(w);if(!!C){var D=T>0?0:C.length-1,R=T>0?C.length:-1;if(!(C.length>S))for(w==b.line&&(D=b.ch-(T<0?1:0));D!=R;D+=T){var M=C.charAt(D);if(m.test(M)&&(A===void 0||(v.getTokenTypeAt(r(w,D+1))||"")==(A||""))){var q=n[M];if(q&&q.charAt(1)==">"==T>0)_.push(M);else if(_.length)_.pop();else return{pos:r(w,D),ch:M}}}}}return w-T==(T>0?v.lastLine():v.firstLine())?!1:null}function l(v,b,T){for(var A=v.state.matchBrackets.maxHighlightLineLength||1e3,L=T&&T.highlightNonMatching,S=[],y=v.listSelections(),_=0;_{(function(e){typeof wP=="object"&&typeof AP=="object"?e(ft()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){var t={pairs:`()[]{}''""`,closeBefore:`)]}'":;>`,triples:"",explode:"[]{}"},r=e.Pos;e.defineOption("autoCloseBrackets",!1,function(S,y,_){_&&_!=e.Init&&(S.removeKeyMap(a),S.state.closeBrackets=null),y&&(o(n(y,"pairs")),S.state.closeBrackets=y,S.addKeyMap(a))});function n(S,y){return y=="pairs"&&typeof S=="string"?S:typeof S=="object"&&S[y]!=null?S[y]:t[y]}var a={Backspace:d,Enter:h};function o(S){for(var y=0;y=0;k--){var C=m[k].head;S.replaceRange("",r(C.line,C.ch-1),r(C.line,C.ch+1),"+delete")}}function h(S){var y=l(S),_=y&&n(y,"explode");if(!_||S.getOption("disableInput"))return e.Pass;for(var m=S.listSelections(),k=0;k0?{line:C.head.line,ch:C.head.ch+y}:{line:C.head.line-1};_.push({anchor:D,head:D})}S.setSelections(_,k)}function b(S){var y=e.cmpPos(S.anchor,S.head)>0;return{anchor:new r(S.anchor.line,S.anchor.ch+(y?-1:1)),head:new r(S.head.line,S.head.ch+(y?1:-1))}}function T(S,y){var _=l(S);if(!_||S.getOption("disableInput"))return e.Pass;var m=n(_,"pairs"),k=m.indexOf(y);if(k==-1)return e.Pass;for(var w=n(_,"closeBefore"),C=n(_,"triples"),D=m.charAt(k+1)==y,R=S.listSelections(),M=k%2==0,q,z=0;z=0&&S.getRange(G,r(G.line,G.ch+3))==y+y+y?j="skipThree":j="skip";else if(D&&G.ch>1&&C.indexOf(y)>=0&&S.getRange(r(G.line,G.ch-2),G)==y+y){if(G.ch>2&&/\bstring/.test(S.getTokenTypeAt(r(G.line,G.ch-2))))return e.Pass;j="addFour"}else if(D){var ke=G.ch==0?" ":S.getRange(r(G.line,G.ch-1),G);if(!e.isWordChar(ce)&&ke!=y&&!e.isWordChar(ke))j="both";else return e.Pass}else if(M&&(ce.length===0||/\s/.test(ce)||w.indexOf(ce)>-1))j="both";else return e.Pass;if(!q)q=j;else if(q!=j)return e.Pass}var be=k%2?m.charAt(k-1):y,Ce=k%2?y:m.charAt(k+1);S.operation(function(){if(q=="skip")v(S,1);else if(q=="skipThree")v(S,3);else if(q=="surround"){for(var we=S.getSelections(),Ve=0;Ve{(function(e){typeof NP=="object"&&typeof LP=="object"?e(ft()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";function t(o,s,l,d){if(l&&l.call){var h=l;l=null}else var h=a(o,l,"rangeFinder");typeof s=="number"&&(s=e.Pos(s,0));var v=a(o,l,"minFoldSize");function b(S){var y=h(o,s);if(!y||y.to.line-y.from.lineo.firstLine();)s=e.Pos(s.line-1,0),T=b(!1);if(!(!T||T.cleared||d==="unfold")){var A=r(o,l,T);e.on(A,"mousedown",function(S){L.clear(),e.e_preventDefault(S)});var L=o.markText(T.from,T.to,{replacedWith:A,clearOnEnter:a(o,l,"clearOnEnter"),__isFold:!0});L.on("clear",function(S,y){e.signal(o,"unfold",o,S,y)}),e.signal(o,"fold",o,T.from,T.to)}}function r(o,s,l){var d=a(o,s,"widget");if(typeof d=="function"&&(d=d(l.from,l.to)),typeof d=="string"){var h=document.createTextNode(d);d=document.createElement("span"),d.appendChild(h),d.className="CodeMirror-foldmarker"}else d&&(d=d.cloneNode(!0));return d}e.newFoldFunction=function(o,s){return function(l,d){t(l,d,{rangeFinder:o,widget:s})}},e.defineExtension("foldCode",function(o,s,l){t(this,o,s,l)}),e.defineExtension("isFolded",function(o){for(var s=this.findMarksAt(o),l=0;l{(function(e){typeof IP=="object"&&typeof RP=="object"?e(ft(),xP()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","./foldcode"],e):e(CodeMirror)})(function(e){"use strict";e.defineOption("foldGutter",!1,function(L,S,y){y&&y!=e.Init&&(L.clearGutter(L.state.foldGutter.options.gutter),L.state.foldGutter=null,L.off("gutterClick",h),L.off("changes",b),L.off("viewportChange",T),L.off("fold",A),L.off("unfold",A),L.off("swapDoc",b),L.off("optionChange",v)),S&&(L.state.foldGutter=new r(n(S)),d(L),L.on("gutterClick",h),L.on("changes",b),L.on("viewportChange",T),L.on("fold",A),L.on("unfold",A),L.on("swapDoc",b),L.on("optionChange",v))});var t=e.Pos;function r(L){this.options=L,this.from=this.to=0}function n(L){return L===!0&&(L={}),L.gutter==null&&(L.gutter="CodeMirror-foldgutter"),L.indicatorOpen==null&&(L.indicatorOpen="CodeMirror-foldgutter-open"),L.indicatorFolded==null&&(L.indicatorFolded="CodeMirror-foldgutter-folded"),L}function a(L,S){for(var y=L.findMarks(t(S,0),t(S+1,0)),_=0;_=k){if(D&&q&&D.test(q.className))return;M=o(_.indicatorOpen)}}!M&&!q||L.setGutterMarker(R,_.gutter,M)})}function l(L){return new RegExp("(^|\\s)"+L+"(?:$|\\s)\\s*")}function d(L){var S=L.getViewport(),y=L.state.foldGutter;!y||(L.operation(function(){s(L,S.from,S.to)}),y.from=S.from,y.to=S.to)}function h(L,S,y){var _=L.state.foldGutter;if(!!_){var m=_.options;if(y==m.gutter){var k=a(L,S);k?k.clear():L.foldCode(t(S,0),m)}}}function v(L,S){S=="mode"&&b(L)}function b(L){var S=L.state.foldGutter;if(!!S){var y=S.options;S.from=S.to=0,clearTimeout(S.changeUpdate),S.changeUpdate=setTimeout(function(){d(L)},y.foldOnChangeTimeSpan||600)}}function T(L){var S=L.state.foldGutter;if(!!S){var y=S.options;clearTimeout(S.changeUpdate),S.changeUpdate=setTimeout(function(){var _=L.getViewport();S.from==S.to||_.from-S.to>20||S.from-_.to>20?d(L):L.operation(function(){_.fromS.to&&(s(L,S.to,_.to),S.to=_.to)})},y.updateViewportTimeSpan||400)}}function A(L,S){var y=L.state.foldGutter;if(!!y){var _=S.line;_>=y.from&&_{(function(e){typeof FP=="object"&&typeof jP=="object"?e(ft()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";function t(r){return function(n,a){var o=a.line,s=n.getLine(o);function l(A){for(var L,S=a.ch,y=0;;){var _=S<=0?-1:s.lastIndexOf(A[0],S-1);if(_==-1){if(y==1)break;y=1,S=s.length;continue}if(y==1&&_r.lastLine())return null;var b=r.getTokenAt(e.Pos(v,1));if(/\S/.test(b.string)||(b=r.getTokenAt(e.Pos(v,b.end+1))),b.type!="keyword"||b.string!="import")return null;for(var T=v,A=Math.min(r.lastLine(),v+10);T<=A;++T){var L=r.getLine(T),S=L.indexOf(";");if(S!=-1)return{startCh:b.end,end:e.Pos(T,S)}}}var o=n.line,s=a(o),l;if(!s||a(o-1)||(l=a(o-2))&&l.end.line==o-1)return null;for(var d=s.end;;){var h=a(d.line+1);if(h==null)break;d=h.end}return{from:r.clipPos(e.Pos(o,s.startCh+1)),to:d}}),e.registerHelper("fold","include",function(r,n){function a(h){if(hr.lastLine())return null;var v=r.getTokenAt(e.Pos(h,1));if(/\S/.test(v.string)||(v=r.getTokenAt(e.Pos(h,v.end+1))),v.type=="meta"&&v.string.slice(0,8)=="#include")return v.start+8}var o=n.line,s=a(o);if(s==null||a(o-1)!=null)return null;for(var l=o;;){var d=a(l+1);if(d==null)break;++l}return{from:e.Pos(o,s+1),to:r.clipPos(e.Pos(l))}})})});var Es=U((PP,MP)=>{(function(e){typeof PP=="object"&&typeof MP=="object"?e(ft()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";var t=e.Pos;function r(y){var _=y.flags;return _!=null?_:(y.ignoreCase?"i":"")+(y.global?"g":"")+(y.multiline?"m":"")}function n(y,_){for(var m=r(y),k=m,w=0;w<_.length;w++)k.indexOf(_.charAt(w))==-1&&(k+=_.charAt(w));return m==k?y:new RegExp(y.source,k)}function a(y){return/\\s|\\n|\n|\\W|\\D|\[\^/.test(y.source)}function o(y,_,m){_=n(_,"g");for(var k=m.line,w=m.ch,C=y.lastLine();k<=C;k++,w=0){_.lastIndex=w;var D=y.getLine(k),R=_.exec(D);if(R)return{from:t(k,R.index),to:t(k,R.index+R[0].length),match:R}}}function s(y,_,m){if(!a(_))return o(y,_,m);_=n(_,"gm");for(var k,w=1,C=m.line,D=y.lastLine();C<=D;){for(var R=0;RD);R++){var M=y.getLine(C++);k=k==null?M:k+` +`+M}w=w*2,_.lastIndex=m.ch;var q=_.exec(k);if(q){var z=k.slice(0,q.index).split(` +`),Q=q[0].split(` +`),G=m.line+z.length-1,j=z[z.length-1].length;return{from:t(G,j),to:t(G+Q.length-1,Q.length==1?j+Q[0].length:Q[Q.length-1].length),match:q}}}}function l(y,_,m){for(var k,w=0;w<=y.length;){_.lastIndex=w;var C=_.exec(y);if(!C)break;var D=C.index+C[0].length;if(D>y.length-m)break;(!k||D>k.index+k[0].length)&&(k=C),w=C.index+1}return k}function d(y,_,m){_=n(_,"g");for(var k=m.line,w=m.ch,C=y.firstLine();k>=C;k--,w=-1){var D=y.getLine(k),R=l(D,_,w<0?0:D.length-w);if(R)return{from:t(k,R.index),to:t(k,R.index+R[0].length),match:R}}}function h(y,_,m){if(!a(_))return d(y,_,m);_=n(_,"gm");for(var k,w=1,C=y.getLine(m.line).length-m.ch,D=m.line,R=y.firstLine();D>=R;){for(var M=0;M=R;M++){var q=y.getLine(D--);k=k==null?q:q+` +`+k}w*=2;var z=l(k,_,C);if(z){var Q=k.slice(0,z.index).split(` +`),G=z[0].split(` +`),j=D+Q.length,ce=Q[Q.length-1].length;return{from:t(j,ce),to:t(j+G.length-1,G.length==1?ce+G[0].length:G[G.length-1].length),match:z}}}}var v,b;String.prototype.normalize?(v=function(y){return y.normalize("NFD").toLowerCase()},b=function(y){return y.normalize("NFD")}):(v=function(y){return y.toLowerCase()},b=function(y){return y});function T(y,_,m,k){if(y.length==_.length)return m;for(var w=0,C=m+Math.max(0,y.length-_.length);;){if(w==C)return w;var D=w+C>>1,R=k(y.slice(0,D)).length;if(R==m)return D;R>m?C=D:w=D+1}}function A(y,_,m,k){if(!_.length)return null;var w=k?v:b,C=w(_).split(/\r|\n\r?/);e:for(var D=m.line,R=m.ch,M=y.lastLine()+1-C.length;D<=M;D++,R=0){var q=y.getLine(D).slice(R),z=w(q);if(C.length==1){var Q=z.indexOf(C[0]);if(Q==-1)continue e;var m=T(q,z,Q,w)+R;return{from:t(D,T(q,z,Q,w)+R),to:t(D,T(q,z,Q+C[0].length,w)+R)}}else{var G=z.length-C[0].length;if(z.slice(G)!=C[0])continue e;for(var j=1;j=M;D--,R=-1){var q=y.getLine(D);R>-1&&(q=q.slice(0,R));var z=w(q);if(C.length==1){var Q=z.lastIndexOf(C[0]);if(Q==-1)continue e;return{from:t(D,T(q,z,Q,w)),to:t(D,T(q,z,Q+C[0].length,w))}}else{var G=C[C.length-1];if(z.slice(0,G.length)!=G)continue e;for(var j=1,m=D-C.length+1;j(this.doc.getLine(_.line)||"").length&&(_.ch=0,_.line++)),e.cmpPos(_,this.doc.clipPos(_))!=0))return this.atOccurrence=!1;var m=this.matches(y,_);if(this.afterEmptyMatch=m&&e.cmpPos(m.from,m.to)==0,m)return this.pos=m,this.atOccurrence=!0,this.pos.match||!0;var k=t(y?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:k,to:k},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(y,_){if(!!this.atOccurrence){var m=e.splitLines(y);this.doc.replaceRange(m,this.pos.from,this.pos.to,_),this.pos.to=t(this.pos.from.line+m.length-1,m[m.length-1].length+(m.length==1?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",function(y,_,m){return new S(this.doc,y,_,m)}),e.defineDocExtension("getSearchCursor",function(y,_,m){return new S(this,y,_,m)}),e.defineExtension("selectMatches",function(y,_){for(var m=[],k=this.getSearchCursor(y,this.getCursor("from"),_);k.findNext()&&!(e.cmpPos(k.to(),this.getCursor("to"))>0);)m.push({anchor:k.from(),head:k.to()});m.length&&this.setSelections(m,0)})})});var _s=U((qP,BP)=>{(function(e){typeof qP=="object"&&typeof BP=="object"?e(ft()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){function t(n,a,o){var s=n.getWrapperElement(),l;return l=s.appendChild(document.createElement("div")),o?l.className="CodeMirror-dialog CodeMirror-dialog-bottom":l.className="CodeMirror-dialog CodeMirror-dialog-top",typeof a=="string"?l.innerHTML=a:l.appendChild(a),e.addClass(s,"dialog-opened"),l}function r(n,a){n.state.currentNotificationClose&&n.state.currentNotificationClose(),n.state.currentNotificationClose=a}e.defineExtension("openDialog",function(n,a,o){o||(o={}),r(this,null);var s=t(this,n,o.bottom),l=!1,d=this;function h(T){if(typeof T=="string")v.value=T;else{if(l)return;l=!0,e.rmClass(s.parentNode,"dialog-opened"),s.parentNode.removeChild(s),d.focus(),o.onClose&&o.onClose(s)}}var v=s.getElementsByTagName("input")[0],b;return v?(v.focus(),o.value&&(v.value=o.value,o.selectValueOnOpen!==!1&&v.select()),o.onInput&&e.on(v,"input",function(T){o.onInput(T,v.value,h)}),o.onKeyUp&&e.on(v,"keyup",function(T){o.onKeyUp(T,v.value,h)}),e.on(v,"keydown",function(T){o&&o.onKeyDown&&o.onKeyDown(T,v.value,h)||((T.keyCode==27||o.closeOnEnter!==!1&&T.keyCode==13)&&(v.blur(),e.e_stop(T),h()),T.keyCode==13&&a(v.value,T))}),o.closeOnBlur!==!1&&e.on(s,"focusout",function(T){T.relatedTarget!==null&&h()})):(b=s.getElementsByTagName("button")[0])&&(e.on(b,"click",function(){h(),d.focus()}),o.closeOnBlur!==!1&&e.on(b,"blur",h),b.focus()),h}),e.defineExtension("openConfirm",function(n,a,o){r(this,null);var s=t(this,n,o&&o.bottom),l=s.getElementsByTagName("button"),d=!1,h=this,v=1;function b(){d||(d=!0,e.rmClass(s.parentNode,"dialog-opened"),s.parentNode.removeChild(s),h.focus())}l[0].focus();for(var T=0;T{(function(e){typeof VP=="object"&&typeof UP=="object"?e(ft(),Es(),_s()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","./searchcursor","../dialog/dialog"],e):e(CodeMirror)})(function(e){"use strict";e.defineOption("search",{bottom:!1});function t(D,R){return typeof D=="string"?D=new RegExp(D.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),R?"gi":"g"):D.global||(D=new RegExp(D.source,D.ignoreCase?"gi":"g")),{token:function(M){D.lastIndex=M.pos;var q=D.exec(M.string);if(q&&q.index==M.pos)return M.pos+=q[0].length||1,"searching";q?M.pos=q.index:M.skipToEnd()}}}function r(){this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null}function n(D){return D.state.search||(D.state.search=new r)}function a(D){return typeof D=="string"&&D==D.toLowerCase()}function o(D,R,M){return D.getSearchCursor(R,M,{caseFold:a(R),multiline:!0})}function s(D,R,M,q,z){D.openDialog(R,q,{value:M,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){L(D)},onKeyDown:z,bottom:D.options.search.bottom})}function l(D,R,M,q,z){D.openDialog?D.openDialog(R,z,{value:q,selectValueOnOpen:!0,bottom:D.options.search.bottom}):z(prompt(M,q))}function d(D,R,M,q){D.openConfirm?D.openConfirm(R,q):confirm(M)&&q[0]()}function h(D){return D.replace(/\\([nrt\\])/g,function(R,M){return M=="n"?` +`:M=="r"?"\r":M=="t"?" ":M=="\\"?"\\":R})}function v(D){var R=D.match(/^\/(.*)\/([a-z]*)$/);if(R)try{D=new RegExp(R[1],R[2].indexOf("i")==-1?"":"i")}catch(M){}else D=h(D);return(typeof D=="string"?D=="":D.test(""))&&(D=/x^/),D}function b(D,R,M){R.queryText=M,R.query=v(M),D.removeOverlay(R.overlay,a(R.query)),R.overlay=t(R.query,a(R.query)),D.addOverlay(R.overlay),D.showMatchesOnScrollbar&&(R.annotate&&(R.annotate.clear(),R.annotate=null),R.annotate=D.showMatchesOnScrollbar(R.query,a(R.query)))}function T(D,R,M,q){var z=n(D);if(z.query)return A(D,R);var Q=D.getSelection()||z.lastQuery;if(Q instanceof RegExp&&Q.source=="x^"&&(Q=null),M&&D.openDialog){var G=null,j=function(ce,ke){e.e_stop(ke),!!ce&&(ce!=z.queryText&&(b(D,z,ce),z.posFrom=z.posTo=D.getCursor()),G&&(G.style.opacity=1),A(D,ke.shiftKey,function(be,Ce){var we;Ce.line<3&&document.querySelector&&(we=D.display.wrapper.querySelector(".CodeMirror-dialog"))&&we.getBoundingClientRect().bottom-4>D.cursorCoords(Ce,"window").top&&((G=we).style.opacity=.4)}))};s(D,y(D),Q,j,function(ce,ke){var be=e.keyName(ce),Ce=D.getOption("extraKeys"),we=Ce&&Ce[be]||e.keyMap[D.getOption("keyMap")][be];we=="findNext"||we=="findPrev"||we=="findPersistentNext"||we=="findPersistentPrev"?(e.e_stop(ce),b(D,n(D),ke),D.execCommand(we)):(we=="find"||we=="findPersistent")&&(e.e_stop(ce),j(ke,ce))}),q&&Q&&(b(D,z,Q),A(D,R))}else l(D,y(D),"Search for:",Q,function(ce){ce&&!z.query&&D.operation(function(){b(D,z,ce),z.posFrom=z.posTo=D.getCursor(),A(D,R)})})}function A(D,R,M){D.operation(function(){var q=n(D),z=o(D,q.query,R?q.posFrom:q.posTo);!z.find(R)&&(z=o(D,q.query,R?e.Pos(D.lastLine()):e.Pos(D.firstLine(),0)),!z.find(R))||(D.setSelection(z.from(),z.to()),D.scrollIntoView({from:z.from(),to:z.to()},20),q.posFrom=z.from(),q.posTo=z.to(),M&&M(z.from(),z.to()))})}function L(D){D.operation(function(){var R=n(D);R.lastQuery=R.query,!!R.query&&(R.query=R.queryText=null,D.removeOverlay(R.overlay),R.annotate&&(R.annotate.clear(),R.annotate=null))})}function S(D,R){var M=D?document.createElement(D):document.createDocumentFragment();for(var q in R)M[q]=R[q];for(var z=2;z{(function(e){typeof GP=="object"&&typeof QP=="object"?e(ft(),_s()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../dialog/dialog"],e):e(CodeMirror)})(function(e){"use strict";e.defineOption("search",{bottom:!1});function t(a,o,s,l,d){a.openDialog?a.openDialog(o,d,{value:l,selectValueOnOpen:!0,bottom:a.options.search.bottom}):d(prompt(s,l))}function r(a){return a.phrase("Jump to line:")+' '+a.phrase("(Use line:column or scroll% syntax)")+""}function n(a,o){var s=Number(o);return/^[-+]/.test(o)?a.getCursor().line+s:s-1}e.commands.jumpToLine=function(a){var o=a.getCursor();t(a,r(a),a.phrase("Jump to line:"),o.line+1+":"+o.ch,function(s){if(!!s){var l;if(l=/^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(s))a.setCursor(n(a,l[1]),Number(l[2]));else if(l=/^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(s)){var d=Math.round(a.lineCount()*Number(l[1])/100);/^[-+]/.test(l[1])&&(d=o.line+d+1),a.setCursor(d-1,o.ch)}else(l=/^\s*\:?\s*([\+\-]?\d+)\s*/.exec(s))&&a.setCursor(n(a,l[1]),o.ch)}})},e.keyMap.default["Alt-G"]="jumpToLine"})});var Cm=U((KP,HP)=>{(function(e){typeof KP=="object"&&typeof HP=="object"?e(ft()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";var t="CodeMirror-lint-markers",r="CodeMirror-lint-line-";function n(C,D,R){var M=document.createElement("div");M.className="CodeMirror-lint-tooltip cm-s-"+C.options.theme,M.appendChild(R.cloneNode(!0)),C.state.lint.options.selfContain?C.getWrapperElement().appendChild(M):document.body.appendChild(M);function q(z){if(!M.parentNode)return e.off(document,"mousemove",q);M.style.top=Math.max(0,z.clientY-M.offsetHeight-5)+"px",M.style.left=z.clientX+5+"px"}return e.on(document,"mousemove",q),q(D),M.style.opacity!=null&&(M.style.opacity=1),M}function a(C){C.parentNode&&C.parentNode.removeChild(C)}function o(C){!C.parentNode||(C.style.opacity==null&&a(C),C.style.opacity=0,setTimeout(function(){a(C)},600))}function s(C,D,R,M){var q=n(C,D,R);function z(){e.off(M,"mouseout",z),q&&(o(q),q=null)}var Q=setInterval(function(){if(q)for(var G=M;;G=G.parentNode){if(G&&G.nodeType==11&&(G=G.host),G==document.body)return;if(!G){z();break}}if(!q)return clearInterval(Q)},400);e.on(M,"mouseout",z)}function l(C,D,R){this.marked=[],D instanceof Function&&(D={getAnnotations:D}),(!D||D===!0)&&(D={}),this.options={},this.linterOptions=D.options||{};for(var M in d)this.options[M]=d[M];for(var M in D)d.hasOwnProperty(M)?D[M]!=null&&(this.options[M]=D[M]):D.options||(this.linterOptions[M]=D[M]);this.timeout=null,this.hasGutter=R,this.onMouseOver=function(q){w(C,q)},this.waitingFor=0}var d={highlightLines:!1,tooltips:!0,delay:500,lintOnChange:!0,getAnnotations:null,async:!1,selfContain:null,formatAnnotation:null,onUpdateLinting:null};function h(C){var D=C.state.lint;D.hasGutter&&C.clearGutter(t),D.options.highlightLines&&v(C);for(var R=0;R-1?!1:G.push(we.message)});for(var j=null,ce=R.hasGutter&&document.createDocumentFragment(),ke=0;ke1,M.tooltips)),M.highlightLines&&C.addLineClass(z,"wrap",r+j)}}M.onUpdateLinting&&M.onUpdateLinting(D,q,C)}}function m(C){var D=C.state.lint;!D||(clearTimeout(D.timeout),D.timeout=setTimeout(function(){y(C)},D.options.delay))}function k(C,D,R){for(var M=R.target||R.srcElement,q=document.createDocumentFragment(),z=0;z{(function(e){typeof zP=="object"&&typeof WP=="object"?e(ft(),Es(),gp()):typeof define=="function"&&define.amd?define(["../lib/codemirror","../addon/search/searchcursor","../addon/edit/matchbrackets"],e):e(CodeMirror)})(function(e){"use strict";var t=e.commands,r=e.Pos;function n(m,k,w){if(w<0&&k.ch==0)return m.clipPos(r(k.line-1));var C=m.getLine(k.line);if(w>0&&k.ch>=C.length)return m.clipPos(r(k.line+1,0));for(var D="start",R,M=k.ch,q=M,z=w<0?0:C.length,Q=0;q!=z;q+=w,Q++){var G=C.charAt(w<0?q-1:q),j=G!="_"&&e.isWordChar(G)?"w":"o";if(j=="w"&&G.toUpperCase()==G&&(j="W"),D=="start")j!="o"?(D="in",R=j):M=q+w;else if(D=="in"&&R!=j){if(R=="w"&&j=="W"&&w<0&&q--,R=="W"&&j=="w"&&w>0)if(q==M+1){R="w";continue}else q--;break}}return r(k.line,q)}function a(m,k){m.extendSelectionsBy(function(w){return m.display.shift||m.doc.extend||w.empty()?n(m.doc,w.head,k):k<0?w.from():w.to()})}t.goSubwordLeft=function(m){a(m,-1)},t.goSubwordRight=function(m){a(m,1)},t.scrollLineUp=function(m){var k=m.getScrollInfo();if(!m.somethingSelected()){var w=m.lineAtHeight(k.top+k.clientHeight,"local");m.getCursor().line>=w&&m.execCommand("goLineUp")}m.scrollTo(null,k.top-m.defaultTextHeight())},t.scrollLineDown=function(m){var k=m.getScrollInfo();if(!m.somethingSelected()){var w=m.lineAtHeight(k.top,"local")+1;m.getCursor().line<=w&&m.execCommand("goLineDown")}m.scrollTo(null,k.top+m.defaultTextHeight())},t.splitSelectionByLine=function(m){for(var k=m.listSelections(),w=[],C=0;CD.line&&M==R.line&&R.ch==0||w.push({anchor:M==D.line?D:r(M,0),head:M==R.line?R:r(M)});m.setSelections(w,0)},t.singleSelectionTop=function(m){var k=m.listSelections()[0];m.setSelection(k.anchor,k.head,{scroll:!1})},t.selectLine=function(m){for(var k=m.listSelections(),w=[],C=0;CC?w.push(q,z):w.length&&(w[w.length-1]=z),C=z}m.operation(function(){for(var Q=0;Qm.lastLine()?m.replaceRange(` +`+ce,r(m.lastLine()),null,"+swapLine"):m.replaceRange(ce+` +`,r(j,0),null,"+swapLine")}m.setSelections(D),m.scrollIntoView()})},t.swapLineDown=function(m){if(m.isReadOnly())return e.Pass;for(var k=m.listSelections(),w=[],C=m.lastLine()+1,D=k.length-1;D>=0;D--){var R=k[D],M=R.to().line+1,q=R.from().line;R.to().ch==0&&!R.empty()&&M--,M=0;z-=2){var Q=w[z],G=w[z+1],j=m.getLine(Q);Q==m.lastLine()?m.replaceRange("",r(Q-1),r(Q),"+swapLine"):m.replaceRange("",r(Q,0),r(Q+1,0),"+swapLine"),m.replaceRange(j+` +`,r(G,0),null,"+swapLine")}m.scrollIntoView()})},t.toggleCommentIndented=function(m){m.toggleComment({indent:!0})},t.joinLines=function(m){for(var k=m.listSelections(),w=[],C=0;C=0;R--){var M=w[C[R]];if(!(q&&e.cmpPos(M.head,q)>0)){var z=s(m,M.head);q=z.from,m.replaceRange(k(z.word),z.from,z.to)}}})}t.smartBackspace=function(m){if(m.somethingSelected())return e.Pass;m.operation(function(){for(var k=m.listSelections(),w=m.getOption("indentUnit"),C=k.length-1;C>=0;C--){var D=k[C].head,R=m.getRange({line:D.line,ch:0},D),M=e.countColumn(R,null,m.getOption("tabSize")),q=m.findPosH(D,-1,"char",!1);if(R&&!/\S/.test(R)&&M%w==0){var z=new r(D.line,e.findColumn(R,M-w,w));z.ch!=D.ch&&(q=z)}m.replaceRange("",q,D,"+delete")}})},t.delLineRight=function(m){m.operation(function(){for(var k=m.listSelections(),w=k.length-1;w>=0;w--)m.replaceRange("",k[w].anchor,r(k[w].to().line),"+delete");m.scrollIntoView()})},t.upcaseAtCursor=function(m){A(m,function(k){return k.toUpperCase()})},t.downcaseAtCursor=function(m){A(m,function(k){return k.toLowerCase()})},t.setSublimeMark=function(m){m.state.sublimeMark&&m.state.sublimeMark.clear(),m.state.sublimeMark=m.setBookmark(m.getCursor())},t.selectToSublimeMark=function(m){var k=m.state.sublimeMark&&m.state.sublimeMark.find();k&&m.setSelection(m.getCursor(),k)},t.deleteToSublimeMark=function(m){var k=m.state.sublimeMark&&m.state.sublimeMark.find();if(k){var w=m.getCursor(),C=k;if(e.cmpPos(w,C)>0){var D=C;C=w,w=D}m.state.sublimeKilled=m.getRange(w,C),m.replaceRange("",w,C)}},t.swapWithSublimeMark=function(m){var k=m.state.sublimeMark&&m.state.sublimeMark.find();k&&(m.state.sublimeMark.clear(),m.state.sublimeMark=m.setBookmark(m.getCursor()),m.setCursor(k))},t.sublimeYank=function(m){m.state.sublimeKilled!=null&&m.replaceSelection(m.state.sublimeKilled,null,"paste")},t.showInCenter=function(m){var k=m.cursorCoords(null,"local");m.scrollTo(null,(k.top+k.bottom)/2-m.getScrollInfo().clientHeight/2)};function L(m){var k=m.getCursor("from"),w=m.getCursor("to");if(e.cmpPos(k,w)==0){var C=s(m,k);if(!C.word)return;k=C.from,w=C.to}return{from:k,to:w,query:m.getRange(k,w),word:C}}function S(m,k){var w=L(m);if(!!w){var C=w.query,D=m.getSearchCursor(C,k?w.to:w.from);(k?D.findNext():D.findPrevious())?m.setSelection(D.from(),D.to()):(D=m.getSearchCursor(C,k?r(m.firstLine(),0):m.clipPos(r(m.lastLine()))),(k?D.findNext():D.findPrevious())?m.setSelection(D.from(),D.to()):w.word&&m.setSelection(w.from,w.to))}}t.findUnder=function(m){S(m,!0)},t.findUnderPrevious=function(m){S(m,!1)},t.findAllUnder=function(m){var k=L(m);if(!!k){for(var w=m.getSearchCursor(k.query),C=[],D=-1;w.findNext();)C.push({anchor:w.from(),head:w.to()}),w.from().line<=k.from.line&&w.from().ch<=k.from.ch&&D++;m.setSelections(C,D)}};var y=e.keyMap;y.macSublime={"Cmd-Left":"goLineStartSmart","Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-Left":"goSubwordLeft","Ctrl-Right":"goSubwordRight","Ctrl-Alt-Up":"scrollLineUp","Ctrl-Alt-Down":"scrollLineDown","Cmd-L":"selectLine","Shift-Cmd-L":"splitSelectionByLine",Esc:"singleSelectionTop","Cmd-Enter":"insertLineAfter","Shift-Cmd-Enter":"insertLineBefore","Cmd-D":"selectNextOccurrence","Shift-Cmd-Space":"selectScope","Shift-Cmd-M":"selectBetweenBrackets","Cmd-M":"goToBracket","Cmd-Ctrl-Up":"swapLineUp","Cmd-Ctrl-Down":"swapLineDown","Cmd-/":"toggleCommentIndented","Cmd-J":"joinLines","Shift-Cmd-D":"duplicateLine",F5:"sortLines","Shift-F5":"reverseSortLines","Cmd-F5":"sortLinesInsensitive","Shift-Cmd-F5":"reverseSortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Cmd-F2":"toggleBookmark","Shift-Cmd-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Cmd-K Cmd-D":"skipAndSelectNextOccurrence","Cmd-K Cmd-K":"delLineRight","Cmd-K Cmd-U":"upcaseAtCursor","Cmd-K Cmd-L":"downcaseAtCursor","Cmd-K Cmd-Space":"setSublimeMark","Cmd-K Cmd-A":"selectToSublimeMark","Cmd-K Cmd-W":"deleteToSublimeMark","Cmd-K Cmd-X":"swapWithSublimeMark","Cmd-K Cmd-Y":"sublimeYank","Cmd-K Cmd-C":"showInCenter","Cmd-K Cmd-G":"clearBookmarks","Cmd-K Cmd-Backspace":"delLineLeft","Cmd-K Cmd-1":"foldAll","Cmd-K Cmd-0":"unfoldAll","Cmd-K Cmd-J":"unfoldAll","Ctrl-Shift-Up":"addCursorToPrevLine","Ctrl-Shift-Down":"addCursorToNextLine","Cmd-F3":"findUnder","Shift-Cmd-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Cmd-[":"fold","Shift-Cmd-]":"unfold","Cmd-I":"findIncremental","Shift-Cmd-I":"findIncrementalReverse","Cmd-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"macDefault"},e.normalizeKeyMap(y.macSublime),y.pcSublime={"Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-T":"transposeChars","Alt-Left":"goSubwordLeft","Alt-Right":"goSubwordRight","Ctrl-Up":"scrollLineUp","Ctrl-Down":"scrollLineDown","Ctrl-L":"selectLine","Shift-Ctrl-L":"splitSelectionByLine",Esc:"singleSelectionTop","Ctrl-Enter":"insertLineAfter","Shift-Ctrl-Enter":"insertLineBefore","Ctrl-D":"selectNextOccurrence","Shift-Ctrl-Space":"selectScope","Shift-Ctrl-M":"selectBetweenBrackets","Ctrl-M":"goToBracket","Shift-Ctrl-Up":"swapLineUp","Shift-Ctrl-Down":"swapLineDown","Ctrl-/":"toggleCommentIndented","Ctrl-J":"joinLines","Shift-Ctrl-D":"duplicateLine",F9:"sortLines","Shift-F9":"reverseSortLines","Ctrl-F9":"sortLinesInsensitive","Shift-Ctrl-F9":"reverseSortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Ctrl-F2":"toggleBookmark","Shift-Ctrl-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Ctrl-K Ctrl-D":"skipAndSelectNextOccurrence","Ctrl-K Ctrl-K":"delLineRight","Ctrl-K Ctrl-U":"upcaseAtCursor","Ctrl-K Ctrl-L":"downcaseAtCursor","Ctrl-K Ctrl-Space":"setSublimeMark","Ctrl-K Ctrl-A":"selectToSublimeMark","Ctrl-K Ctrl-W":"deleteToSublimeMark","Ctrl-K Ctrl-X":"swapWithSublimeMark","Ctrl-K Ctrl-Y":"sublimeYank","Ctrl-K Ctrl-C":"showInCenter","Ctrl-K Ctrl-G":"clearBookmarks","Ctrl-K Ctrl-Backspace":"delLineLeft","Ctrl-K Ctrl-1":"foldAll","Ctrl-K Ctrl-0":"unfoldAll","Ctrl-K Ctrl-J":"unfoldAll","Ctrl-Alt-Up":"addCursorToPrevLine","Ctrl-Alt-Down":"addCursorToNextLine","Ctrl-F3":"findUnder","Shift-Ctrl-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Ctrl-[":"fold","Shift-Ctrl-]":"unfold","Ctrl-I":"findIncremental","Shift-Ctrl-I":"findIncrementalReverse","Ctrl-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"pcDefault"},e.normalizeKeyMap(y.pcSublime);var _=y.default==y.macDefault;y.sublime=_?y.macSublime:y.pcSublime})});var VD=U(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.hintList=ji.objectValues=ji.forEachState=ji.getFieldDef=ji.getDefinitionState=void 0;var iX=ct(),gc=Yn();function aX(e){let t;return YP(e,r=>{switch(r.kind){case"Query":case"ShortQuery":case"Mutation":case"Subscription":case"FragmentDefinition":t=r;break}}),t}ji.getDefinitionState=aX;function oX(e,t,r){return r===gc.SchemaMetaFieldDef.name&&e.getQueryType()===t?gc.SchemaMetaFieldDef:r===gc.TypeMetaFieldDef.name&&e.getQueryType()===t?gc.TypeMetaFieldDef:r===gc.TypeNameMetaFieldDef.name&&(0,iX.isCompositeType)(t)?gc.TypeNameMetaFieldDef:"getFields"in t?t.getFields()[r]:null}ji.getFieldDef=oX;function YP(e,t){let r=[],n=e;for(;n==null?void 0:n.kind;)r.push(n),n=n.prevState;for(let a=r.length-1;a>=0;a--)t(r[a])}ji.forEachState=YP;function uX(e){let t=Object.keys(e),r=t.length,n=new Array(r);for(let a=0;a!n.isDeprecated);let r=e.map(n=>({proximity:cX(JP(n.label),t),entry:n}));return BD(BD(r,n=>n.proximity<=2),n=>!n.entry.isDeprecated).sort((n,a)=>(n.entry.isDeprecated?1:0)-(a.entry.isDeprecated?1:0)||n.proximity-a.proximity||n.entry.label.length-a.entry.label.length).map(n=>n.entry)}function BD(e,t){let r=e.filter(t);return r.length===0?e:r}function JP(e){return e.toLowerCase().replace(/\W/g,"")}function cX(e,t){let r=fX(t,e);return e.length>t.length&&(r-=e.length-t.length-1,r+=e.indexOf(t)===0?0:.5),r}function fX(e,t){let r,n,a=[],o=e.length,s=t.length;for(r=0;r<=o;r++)a[r]=[r];for(n=1;n<=s;n++)a[0][n]=n;for(r=1;r<=o;r++)for(n=1;n<=s;n++){let l=e[r-1]===t[n-1]?0:1;a[r][n]=Math.min(a[r-1][n]+1,a[r][n-1]+1,a[r-1][n-1]+l),r>1&&n>1&&e[r-1]===t[n-2]&&e[r-2]===t[n-1]&&(a[r][n]=Math.min(a[r][n],a[r-2][n-2]+l))}return a[o][s]}});var ZP=U((XP,wm)=>{(function(e){if(typeof wm=="object"&&typeof wm.exports=="object"){var t=e(eC,XP);t!==void 0&&(wm.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TextDocument=t.EOL=t.WorkspaceFolder=t.InlayHint=t.InlayHintLabelPart=t.InlayHintKind=t.InlineValueContext=t.InlineValueEvaluatableExpression=t.InlineValueVariableLookup=t.InlineValueText=t.SemanticTokens=t.SemanticTokenModifiers=t.SemanticTokenTypes=t.SelectionRange=t.DocumentLink=t.FormattingOptions=t.CodeLens=t.CodeAction=t.CodeActionContext=t.CodeActionTriggerKind=t.CodeActionKind=t.DocumentSymbol=t.WorkspaceSymbol=t.SymbolInformation=t.SymbolTag=t.SymbolKind=t.DocumentHighlight=t.DocumentHighlightKind=t.SignatureInformation=t.ParameterInformation=t.Hover=t.MarkedString=t.CompletionList=t.CompletionItem=t.CompletionItemLabelDetails=t.InsertTextMode=t.InsertReplaceEdit=t.CompletionItemTag=t.InsertTextFormat=t.CompletionItemKind=t.MarkupContent=t.MarkupKind=t.TextDocumentItem=t.OptionalVersionedTextDocumentIdentifier=t.VersionedTextDocumentIdentifier=t.TextDocumentIdentifier=t.WorkspaceChange=t.WorkspaceEdit=t.DeleteFile=t.RenameFile=t.CreateFile=t.TextDocumentEdit=t.AnnotatedTextEdit=t.ChangeAnnotationIdentifier=t.ChangeAnnotation=t.TextEdit=t.Command=t.Diagnostic=t.CodeDescription=t.DiagnosticTag=t.DiagnosticSeverity=t.DiagnosticRelatedInformation=t.FoldingRange=t.FoldingRangeKind=t.ColorPresentation=t.ColorInformation=t.Color=t.LocationLink=t.Location=t.Range=t.Position=t.uinteger=t.integer=t.URI=t.DocumentUri=void 0;var r;(function(P){function Y(J){return typeof J=="string"}P.is=Y})(r=t.DocumentUri||(t.DocumentUri={}));var n;(function(P){function Y(J){return typeof J=="string"}P.is=Y})(n=t.URI||(t.URI={}));var a;(function(P){P.MIN_VALUE=-2147483648,P.MAX_VALUE=2147483647;function Y(J){return typeof J=="number"&&P.MIN_VALUE<=J&&J<=P.MAX_VALUE}P.is=Y})(a=t.integer||(t.integer={}));var o;(function(P){P.MIN_VALUE=0,P.MAX_VALUE=2147483647;function Y(J){return typeof J=="number"&&P.MIN_VALUE<=J&&J<=P.MAX_VALUE}P.is=Y})(o=t.uinteger||(t.uinteger={}));var s;(function(P){function Y(B,I){return B===Number.MAX_VALUE&&(B=o.MAX_VALUE),I===Number.MAX_VALUE&&(I=o.MAX_VALUE),{line:B,character:I}}P.create=Y;function J(B){var I=B;return ee.objectLiteral(I)&&ee.uinteger(I.line)&&ee.uinteger(I.character)}P.is=J})(s=t.Position||(t.Position={}));var l;(function(P){function Y(B,I,te,ie){if(ee.uinteger(B)&&ee.uinteger(I)&&ee.uinteger(te)&&ee.uinteger(ie))return{start:s.create(B,I),end:s.create(te,ie)};if(s.is(B)&&s.is(I))return{start:B,end:I};throw new Error("Range#create called with invalid arguments[".concat(B,", ").concat(I,", ").concat(te,", ").concat(ie,"]"))}P.create=Y;function J(B){var I=B;return ee.objectLiteral(I)&&s.is(I.start)&&s.is(I.end)}P.is=J})(l=t.Range||(t.Range={}));var d;(function(P){function Y(B,I){return{uri:B,range:I}}P.create=Y;function J(B){var I=B;return ee.objectLiteral(I)&&l.is(I.range)&&(ee.string(I.uri)||ee.undefined(I.uri))}P.is=J})(d=t.Location||(t.Location={}));var h;(function(P){function Y(B,I,te,ie){return{targetUri:B,targetRange:I,targetSelectionRange:te,originSelectionRange:ie}}P.create=Y;function J(B){var I=B;return ee.objectLiteral(I)&&l.is(I.targetRange)&&ee.string(I.targetUri)&&l.is(I.targetSelectionRange)&&(l.is(I.originSelectionRange)||ee.undefined(I.originSelectionRange))}P.is=J})(h=t.LocationLink||(t.LocationLink={}));var v;(function(P){function Y(B,I,te,ie){return{red:B,green:I,blue:te,alpha:ie}}P.create=Y;function J(B){var I=B;return ee.objectLiteral(I)&&ee.numberRange(I.red,0,1)&&ee.numberRange(I.green,0,1)&&ee.numberRange(I.blue,0,1)&&ee.numberRange(I.alpha,0,1)}P.is=J})(v=t.Color||(t.Color={}));var b;(function(P){function Y(B,I){return{range:B,color:I}}P.create=Y;function J(B){var I=B;return ee.objectLiteral(I)&&l.is(I.range)&&v.is(I.color)}P.is=J})(b=t.ColorInformation||(t.ColorInformation={}));var T;(function(P){function Y(B,I,te){return{label:B,textEdit:I,additionalTextEdits:te}}P.create=Y;function J(B){var I=B;return ee.objectLiteral(I)&&ee.string(I.label)&&(ee.undefined(I.textEdit)||C.is(I))&&(ee.undefined(I.additionalTextEdits)||ee.typedArray(I.additionalTextEdits,C.is))}P.is=J})(T=t.ColorPresentation||(t.ColorPresentation={}));var A;(function(P){P.Comment="comment",P.Imports="imports",P.Region="region"})(A=t.FoldingRangeKind||(t.FoldingRangeKind={}));var L;(function(P){function Y(B,I,te,ie,Qe,It){var kt={startLine:B,endLine:I};return ee.defined(te)&&(kt.startCharacter=te),ee.defined(ie)&&(kt.endCharacter=ie),ee.defined(Qe)&&(kt.kind=Qe),ee.defined(It)&&(kt.collapsedText=It),kt}P.create=Y;function J(B){var I=B;return ee.objectLiteral(I)&&ee.uinteger(I.startLine)&&ee.uinteger(I.startLine)&&(ee.undefined(I.startCharacter)||ee.uinteger(I.startCharacter))&&(ee.undefined(I.endCharacter)||ee.uinteger(I.endCharacter))&&(ee.undefined(I.kind)||ee.string(I.kind))}P.is=J})(L=t.FoldingRange||(t.FoldingRange={}));var S;(function(P){function Y(B,I){return{location:B,message:I}}P.create=Y;function J(B){var I=B;return ee.defined(I)&&d.is(I.location)&&ee.string(I.message)}P.is=J})(S=t.DiagnosticRelatedInformation||(t.DiagnosticRelatedInformation={}));var y;(function(P){P.Error=1,P.Warning=2,P.Information=3,P.Hint=4})(y=t.DiagnosticSeverity||(t.DiagnosticSeverity={}));var _;(function(P){P.Unnecessary=1,P.Deprecated=2})(_=t.DiagnosticTag||(t.DiagnosticTag={}));var m;(function(P){function Y(J){var B=J;return ee.objectLiteral(B)&&ee.string(B.href)}P.is=Y})(m=t.CodeDescription||(t.CodeDescription={}));var k;(function(P){function Y(B,I,te,ie,Qe,It){var kt={range:B,message:I};return ee.defined(te)&&(kt.severity=te),ee.defined(ie)&&(kt.code=ie),ee.defined(Qe)&&(kt.source=Qe),ee.defined(It)&&(kt.relatedInformation=It),kt}P.create=Y;function J(B){var I,te=B;return ee.defined(te)&&l.is(te.range)&&ee.string(te.message)&&(ee.number(te.severity)||ee.undefined(te.severity))&&(ee.integer(te.code)||ee.string(te.code)||ee.undefined(te.code))&&(ee.undefined(te.codeDescription)||ee.string((I=te.codeDescription)===null||I===void 0?void 0:I.href))&&(ee.string(te.source)||ee.undefined(te.source))&&(ee.undefined(te.relatedInformation)||ee.typedArray(te.relatedInformation,S.is))}P.is=J})(k=t.Diagnostic||(t.Diagnostic={}));var w;(function(P){function Y(B,I){for(var te=[],ie=2;ie0&&(Qe.arguments=te),Qe}P.create=Y;function J(B){var I=B;return ee.defined(I)&&ee.string(I.title)&&ee.string(I.command)}P.is=J})(w=t.Command||(t.Command={}));var C;(function(P){function Y(te,ie){return{range:te,newText:ie}}P.replace=Y;function J(te,ie){return{range:{start:te,end:te},newText:ie}}P.insert=J;function B(te){return{range:te,newText:""}}P.del=B;function I(te){var ie=te;return ee.objectLiteral(ie)&&ee.string(ie.newText)&&l.is(ie.range)}P.is=I})(C=t.TextEdit||(t.TextEdit={}));var D;(function(P){function Y(B,I,te){var ie={label:B};return I!==void 0&&(ie.needsConfirmation=I),te!==void 0&&(ie.description=te),ie}P.create=Y;function J(B){var I=B;return ee.objectLiteral(I)&&ee.string(I.label)&&(ee.boolean(I.needsConfirmation)||I.needsConfirmation===void 0)&&(ee.string(I.description)||I.description===void 0)}P.is=J})(D=t.ChangeAnnotation||(t.ChangeAnnotation={}));var R;(function(P){function Y(J){var B=J;return ee.string(B)}P.is=Y})(R=t.ChangeAnnotationIdentifier||(t.ChangeAnnotationIdentifier={}));var M;(function(P){function Y(te,ie,Qe){return{range:te,newText:ie,annotationId:Qe}}P.replace=Y;function J(te,ie,Qe){return{range:{start:te,end:te},newText:ie,annotationId:Qe}}P.insert=J;function B(te,ie){return{range:te,newText:"",annotationId:ie}}P.del=B;function I(te){var ie=te;return C.is(ie)&&(D.is(ie.annotationId)||R.is(ie.annotationId))}P.is=I})(M=t.AnnotatedTextEdit||(t.AnnotatedTextEdit={}));var q;(function(P){function Y(B,I){return{textDocument:B,edits:I}}P.create=Y;function J(B){var I=B;return ee.defined(I)&&Ve.is(I.textDocument)&&Array.isArray(I.edits)}P.is=J})(q=t.TextDocumentEdit||(t.TextDocumentEdit={}));var z;(function(P){function Y(B,I,te){var ie={kind:"create",uri:B};return I!==void 0&&(I.overwrite!==void 0||I.ignoreIfExists!==void 0)&&(ie.options=I),te!==void 0&&(ie.annotationId=te),ie}P.create=Y;function J(B){var I=B;return I&&I.kind==="create"&&ee.string(I.uri)&&(I.options===void 0||(I.options.overwrite===void 0||ee.boolean(I.options.overwrite))&&(I.options.ignoreIfExists===void 0||ee.boolean(I.options.ignoreIfExists)))&&(I.annotationId===void 0||R.is(I.annotationId))}P.is=J})(z=t.CreateFile||(t.CreateFile={}));var Q;(function(P){function Y(B,I,te,ie){var Qe={kind:"rename",oldUri:B,newUri:I};return te!==void 0&&(te.overwrite!==void 0||te.ignoreIfExists!==void 0)&&(Qe.options=te),ie!==void 0&&(Qe.annotationId=ie),Qe}P.create=Y;function J(B){var I=B;return I&&I.kind==="rename"&&ee.string(I.oldUri)&&ee.string(I.newUri)&&(I.options===void 0||(I.options.overwrite===void 0||ee.boolean(I.options.overwrite))&&(I.options.ignoreIfExists===void 0||ee.boolean(I.options.ignoreIfExists)))&&(I.annotationId===void 0||R.is(I.annotationId))}P.is=J})(Q=t.RenameFile||(t.RenameFile={}));var G;(function(P){function Y(B,I,te){var ie={kind:"delete",uri:B};return I!==void 0&&(I.recursive!==void 0||I.ignoreIfNotExists!==void 0)&&(ie.options=I),te!==void 0&&(ie.annotationId=te),ie}P.create=Y;function J(B){var I=B;return I&&I.kind==="delete"&&ee.string(I.uri)&&(I.options===void 0||(I.options.recursive===void 0||ee.boolean(I.options.recursive))&&(I.options.ignoreIfNotExists===void 0||ee.boolean(I.options.ignoreIfNotExists)))&&(I.annotationId===void 0||R.is(I.annotationId))}P.is=J})(G=t.DeleteFile||(t.DeleteFile={}));var j;(function(P){function Y(J){var B=J;return B&&(B.changes!==void 0||B.documentChanges!==void 0)&&(B.documentChanges===void 0||B.documentChanges.every(function(I){return ee.string(I.kind)?z.is(I)||Q.is(I)||G.is(I):q.is(I)}))}P.is=Y})(j=t.WorkspaceEdit||(t.WorkspaceEdit={}));var ce=function(){function P(Y,J){this.edits=Y,this.changeAnnotations=J}return P.prototype.insert=function(Y,J,B){var I,te;if(B===void 0?I=C.insert(Y,J):R.is(B)?(te=B,I=M.insert(Y,J,B)):(this.assertChangeAnnotations(this.changeAnnotations),te=this.changeAnnotations.manage(B),I=M.insert(Y,J,te)),this.edits.push(I),te!==void 0)return te},P.prototype.replace=function(Y,J,B){var I,te;if(B===void 0?I=C.replace(Y,J):R.is(B)?(te=B,I=M.replace(Y,J,B)):(this.assertChangeAnnotations(this.changeAnnotations),te=this.changeAnnotations.manage(B),I=M.replace(Y,J,te)),this.edits.push(I),te!==void 0)return te},P.prototype.delete=function(Y,J){var B,I;if(J===void 0?B=C.del(Y):R.is(J)?(I=J,B=M.del(Y,J)):(this.assertChangeAnnotations(this.changeAnnotations),I=this.changeAnnotations.manage(J),B=M.del(Y,I)),this.edits.push(B),I!==void 0)return I},P.prototype.add=function(Y){this.edits.push(Y)},P.prototype.all=function(){return this.edits},P.prototype.clear=function(){this.edits.splice(0,this.edits.length)},P.prototype.assertChangeAnnotations=function(Y){if(Y===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},P}(),ke=function(){function P(Y){this._annotations=Y===void 0?Object.create(null):Y,this._counter=0,this._size=0}return P.prototype.all=function(){return this._annotations},Object.defineProperty(P.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),P.prototype.manage=function(Y,J){var B;if(R.is(Y)?B=Y:(B=this.nextId(),J=Y),this._annotations[B]!==void 0)throw new Error("Id ".concat(B," is already in use."));if(J===void 0)throw new Error("No annotation provided for id ".concat(B));return this._annotations[B]=J,this._size++,B},P.prototype.nextId=function(){return this._counter++,this._counter.toString()},P}(),be=function(){function P(Y){var J=this;this._textEditChanges=Object.create(null),Y!==void 0?(this._workspaceEdit=Y,Y.documentChanges?(this._changeAnnotations=new ke(Y.changeAnnotations),Y.changeAnnotations=this._changeAnnotations.all(),Y.documentChanges.forEach(function(B){if(q.is(B)){var I=new ce(B.edits,J._changeAnnotations);J._textEditChanges[B.textDocument.uri]=I}})):Y.changes&&Object.keys(Y.changes).forEach(function(B){var I=new ce(Y.changes[B]);J._textEditChanges[B]=I})):this._workspaceEdit={}}return Object.defineProperty(P.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),P.prototype.getTextEditChange=function(Y){if(Ve.is(Y)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var J={uri:Y.uri,version:Y.version},B=this._textEditChanges[J.uri];if(!B){var I=[],te={textDocument:J,edits:I};this._workspaceEdit.documentChanges.push(te),B=new ce(I,this._changeAnnotations),this._textEditChanges[J.uri]=B}return B}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var B=this._textEditChanges[Y];if(!B){var I=[];this._workspaceEdit.changes[Y]=I,B=new ce(I),this._textEditChanges[Y]=B}return B}},P.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ke,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},P.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},P.prototype.createFile=function(Y,J,B){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var I;D.is(J)||R.is(J)?I=J:B=J;var te,ie;if(I===void 0?te=z.create(Y,B):(ie=R.is(I)?I:this._changeAnnotations.manage(I),te=z.create(Y,B,ie)),this._workspaceEdit.documentChanges.push(te),ie!==void 0)return ie},P.prototype.renameFile=function(Y,J,B,I){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var te;D.is(B)||R.is(B)?te=B:I=B;var ie,Qe;if(te===void 0?ie=Q.create(Y,J,I):(Qe=R.is(te)?te:this._changeAnnotations.manage(te),ie=Q.create(Y,J,I,Qe)),this._workspaceEdit.documentChanges.push(ie),Qe!==void 0)return Qe},P.prototype.deleteFile=function(Y,J,B){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var I;D.is(J)||R.is(J)?I=J:B=J;var te,ie;if(I===void 0?te=G.create(Y,B):(ie=R.is(I)?I:this._changeAnnotations.manage(I),te=G.create(Y,B,ie)),this._workspaceEdit.documentChanges.push(te),ie!==void 0)return ie},P}();t.WorkspaceChange=be;var Ce;(function(P){function Y(B){return{uri:B}}P.create=Y;function J(B){var I=B;return ee.defined(I)&&ee.string(I.uri)}P.is=J})(Ce=t.TextDocumentIdentifier||(t.TextDocumentIdentifier={}));var we;(function(P){function Y(B,I){return{uri:B,version:I}}P.create=Y;function J(B){var I=B;return ee.defined(I)&&ee.string(I.uri)&&ee.integer(I.version)}P.is=J})(we=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={}));var Ve;(function(P){function Y(B,I){return{uri:B,version:I}}P.create=Y;function J(B){var I=B;return ee.defined(I)&&ee.string(I.uri)&&(I.version===null||ee.integer(I.version))}P.is=J})(Ve=t.OptionalVersionedTextDocumentIdentifier||(t.OptionalVersionedTextDocumentIdentifier={}));var pt;(function(P){function Y(B,I,te,ie){return{uri:B,languageId:I,version:te,text:ie}}P.create=Y;function J(B){var I=B;return ee.defined(I)&&ee.string(I.uri)&&ee.string(I.languageId)&&ee.integer(I.version)&&ee.string(I.text)}P.is=J})(pt=t.TextDocumentItem||(t.TextDocumentItem={}));var Je;(function(P){P.PlainText="plaintext",P.Markdown="markdown";function Y(J){var B=J;return B===P.PlainText||B===P.Markdown}P.is=Y})(Je=t.MarkupKind||(t.MarkupKind={}));var wt;(function(P){function Y(J){var B=J;return ee.objectLiteral(J)&&Je.is(B.kind)&&ee.string(B.value)}P.is=Y})(wt=t.MarkupContent||(t.MarkupContent={}));var Mt;(function(P){P.Text=1,P.Method=2,P.Function=3,P.Constructor=4,P.Field=5,P.Variable=6,P.Class=7,P.Interface=8,P.Module=9,P.Property=10,P.Unit=11,P.Value=12,P.Enum=13,P.Keyword=14,P.Snippet=15,P.Color=16,P.File=17,P.Reference=18,P.Folder=19,P.EnumMember=20,P.Constant=21,P.Struct=22,P.Event=23,P.Operator=24,P.TypeParameter=25})(Mt=t.CompletionItemKind||(t.CompletionItemKind={}));var Ie;(function(P){P.PlainText=1,P.Snippet=2})(Ie=t.InsertTextFormat||(t.InsertTextFormat={}));var De;(function(P){P.Deprecated=1})(De=t.CompletionItemTag||(t.CompletionItemTag={}));var Pe;(function(P){function Y(B,I,te){return{newText:B,insert:I,replace:te}}P.create=Y;function J(B){var I=B;return I&&ee.string(I.newText)&&l.is(I.insert)&&l.is(I.replace)}P.is=J})(Pe=t.InsertReplaceEdit||(t.InsertReplaceEdit={}));var Ue;(function(P){P.asIs=1,P.adjustIndentation=2})(Ue=t.InsertTextMode||(t.InsertTextMode={}));var Gi;(function(P){function Y(J){var B=J;return B&&(ee.string(B.detail)||B.detail===void 0)&&(ee.string(B.description)||B.description===void 0)}P.is=Y})(Gi=t.CompletionItemLabelDetails||(t.CompletionItemLabelDetails={}));var rt;(function(P){function Y(J){return{label:J}}P.create=Y})(rt=t.CompletionItem||(t.CompletionItem={}));var ut;(function(P){function Y(J,B){return{items:J||[],isIncomplete:!!B}}P.create=Y})(ut=t.CompletionList||(t.CompletionList={}));var Nr;(function(P){function Y(B){return B.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}P.fromPlainText=Y;function J(B){var I=B;return ee.string(I)||ee.objectLiteral(I)&&ee.string(I.language)&&ee.string(I.value)}P.is=J})(Nr=t.MarkedString||(t.MarkedString={}));var $r;(function(P){function Y(J){var B=J;return!!B&&ee.objectLiteral(B)&&(wt.is(B.contents)||Nr.is(B.contents)||ee.typedArray(B.contents,Nr.is))&&(J.range===void 0||l.is(J.range))}P.is=Y})($r=t.Hover||(t.Hover={}));var oe;(function(P){function Y(J,B){return B?{label:J,documentation:B}:{label:J}}P.create=Y})(oe=t.ParameterInformation||(t.ParameterInformation={}));var Se;(function(P){function Y(J,B){for(var I=[],te=2;te=0;en--){var Er=It[en],_r=te.offsetAt(Er.range.start),He=te.offsetAt(Er.range.end);if(He<=kt)Qe=Qe.substring(0,_r)+Er.newText+Qe.substring(He,Qe.length);else throw new Error("Overlapping edit");kt=_r}return Qe}P.applyEdits=B;function I(te,ie){if(te.length<=1)return te;var Qe=te.length/2|0,It=te.slice(0,Qe),kt=te.slice(Qe);I(It,ie),I(kt,ie);for(var en=0,Er=0,_r=0;en0&&Y.push(J.length),this._lineOffsets=Y}return this._lineOffsets},P.prototype.positionAt=function(Y){Y=Math.max(Math.min(Y,this._content.length),0);var J=this.getLineOffsets(),B=0,I=J.length;if(I===0)return s.create(0,Y);for(;BY?I=te:B=te+1}var ie=B-1;return s.create(ie,Y-J[ie])},P.prototype.offsetAt=function(Y){var J=this.getLineOffsets();if(Y.line>=J.length)return this._content.length;if(Y.line<0)return 0;var B=J[Y.line],I=Y.line+1{"use strict";Object.defineProperty(UD,"__esModule",{value:!0});var $P=class{constructor(t){this.getStartOfToken=()=>this._start,this.getCurrentPosition=()=>this._pos,this.eol=()=>this._sourceText.length===this._pos,this.sol=()=>this._pos===0,this.peek=()=>this._sourceText.charAt(this._pos)?this._sourceText.charAt(this._pos):null,this.next=()=>{let r=this._sourceText.charAt(this._pos);return this._pos++,r},this.eat=r=>{if(this._testNextCharacter(r))return this._start=this._pos,this._pos++,this._sourceText.charAt(this._pos-1)},this.eatWhile=r=>{let n=this._testNextCharacter(r),a=!1;for(n&&(a=n,this._start=this._pos);n;)this._pos++,n=this._testNextCharacter(r),a=!0;return a},this.eatSpace=()=>this.eatWhile(/[\s\u00a0]/),this.skipToEnd=()=>{this._pos=this._sourceText.length},this.skipTo=r=>{this._pos=r},this.match=(r,n=!0,a=!1)=>{let o=null,s=null;return typeof r=="string"?(s=new RegExp(r,a?"i":"g").test(this._sourceText.substr(this._pos,r.length)),o=r):r instanceof RegExp&&(s=this._sourceText.slice(this._pos).match(r),o=s==null?void 0:s[0]),s!=null&&(typeof r=="string"||s instanceof Array&&this._sourceText.startsWith(s[0],this._pos))?(n&&(this._start=this._pos,o&&o.length&&(this._pos+=o.length)),s):!1},this.backUp=r=>{this._pos-=r},this.column=()=>this._pos,this.indentation=()=>{let r=this._sourceText.match(/\s*/),n=0;if(r&&r.length!==0){let a=r[0],o=0;for(;a.length>o;)a.charCodeAt(o)===9?n+=2:n++,o++}return n},this.current=()=>this._sourceText.slice(this._start,this._pos),this._start=0,this._pos=0,this._sourceText=t}_testNextCharacter(t){let r=this._sourceText.charAt(this._pos),n=!1;return typeof t=="string"?n=r===t:n=t instanceof RegExp?t.test(r):t(r),n}};UD.default=$P});var GD=U(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.p=Pi.t=Pi.butNot=Pi.list=Pi.opt=void 0;function dX(e){return{ofRule:e}}Pi.opt=dX;function pX(e,t){return{ofRule:e,isList:!0,separator:t}}Pi.list=pX;function hX(e,t){let r=e.match;return e.match=n=>{let a=!1;return r&&(a=r(n)),a&&t.every(o=>o.match&&!o.match(n))},e}Pi.butNot=hX;function vX(e,t){return{style:t,match:r=>r.kind===e}}Pi.t=vX;function gX(e,t){return{style:t||"punctuation",match:r=>r.kind==="Punctuation"&&r.value===e}}Pi.p=gX});var QD=U(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.ParseRules=bu.LexRules=bu.isIgnored=void 0;var se=GD(),mX=ct(),yX=e=>e===" "||e===" "||e===","||e===` +`||e==="\r"||e==="\uFEFF"||e==="\xA0";bu.isIgnored=yX;bu.LexRules={Name:/^[_A-Za-z][_0-9A-Za-z]*/,Punctuation:/^(?:!|\$|\(|\)|\.\.\.|:|=|&|@|\[|]|\{|\||\})/,Number:/^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,String:/^(?:"""(?:\\"""|[^"]|"[^"]|""[^"])*(?:""")?|"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?)/,Comment:/^#.*/};bu.ParseRules={Document:[(0,se.list)("Definition")],Definition(e){switch(e.value){case"{":return"ShortQuery";case"query":return"Query";case"mutation":return"Mutation";case"subscription":return"Subscription";case"fragment":return mX.Kind.FRAGMENT_DEFINITION;case"schema":return"SchemaDef";case"scalar":return"ScalarDef";case"type":return"ObjectTypeDef";case"interface":return"InterfaceDef";case"union":return"UnionDef";case"enum":return"EnumDef";case"input":return"InputDef";case"extend":return"ExtendDef";case"directive":return"DirectiveDef"}},ShortQuery:["SelectionSet"],Query:[ln("query"),(0,se.opt)(Kt("def")),(0,se.opt)("VariableDefinitions"),(0,se.list)("Directive"),"SelectionSet"],Mutation:[ln("mutation"),(0,se.opt)(Kt("def")),(0,se.opt)("VariableDefinitions"),(0,se.list)("Directive"),"SelectionSet"],Subscription:[ln("subscription"),(0,se.opt)(Kt("def")),(0,se.opt)("VariableDefinitions"),(0,se.list)("Directive"),"SelectionSet"],VariableDefinitions:[(0,se.p)("("),(0,se.list)("VariableDefinition"),(0,se.p)(")")],VariableDefinition:["Variable",(0,se.p)(":"),"Type",(0,se.opt)("DefaultValue")],Variable:[(0,se.p)("$","variable"),Kt("variable")],DefaultValue:[(0,se.p)("="),"Value"],SelectionSet:[(0,se.p)("{"),(0,se.list)("Selection"),(0,se.p)("}")],Selection(e,t){return e.value==="..."?t.match(/[\s\u00a0,]*(on\b|@|{)/,!1)?"InlineFragment":"FragmentSpread":t.match(/[\s\u00a0,]*:/,!1)?"AliasedField":"Field"},AliasedField:[Kt("property"),(0,se.p)(":"),Kt("qualifier"),(0,se.opt)("Arguments"),(0,se.list)("Directive"),(0,se.opt)("SelectionSet")],Field:[Kt("property"),(0,se.opt)("Arguments"),(0,se.list)("Directive"),(0,se.opt)("SelectionSet")],Arguments:[(0,se.p)("("),(0,se.list)("Argument"),(0,se.p)(")")],Argument:[Kt("attribute"),(0,se.p)(":"),"Value"],FragmentSpread:[(0,se.p)("..."),Kt("def"),(0,se.list)("Directive")],InlineFragment:[(0,se.p)("..."),(0,se.opt)("TypeCondition"),(0,se.list)("Directive"),"SelectionSet"],FragmentDefinition:[ln("fragment"),(0,se.opt)((0,se.butNot)(Kt("def"),[ln("on")])),"TypeCondition",(0,se.list)("Directive"),"SelectionSet"],TypeCondition:[ln("on"),"NamedType"],Value(e){switch(e.kind){case"Number":return"NumberValue";case"String":return"StringValue";case"Punctuation":switch(e.value){case"[":return"ListValue";case"{":return"ObjectValue";case"$":return"Variable";case"&":return"NamedType"}return null;case"Name":switch(e.value){case"true":case"false":return"BooleanValue"}return e.value==="null"?"NullValue":"EnumValue"}},NumberValue:[(0,se.t)("Number","number")],StringValue:[{style:"string",match:e=>e.kind==="String",update(e,t){t.value.startsWith('"""')&&(e.inBlockstring=!t.value.slice(3).endsWith('"""'))}}],BooleanValue:[(0,se.t)("Name","builtin")],NullValue:[(0,se.t)("Name","keyword")],EnumValue:[Kt("string-2")],ListValue:[(0,se.p)("["),(0,se.list)("Value"),(0,se.p)("]")],ObjectValue:[(0,se.p)("{"),(0,se.list)("ObjectField"),(0,se.p)("}")],ObjectField:[Kt("attribute"),(0,se.p)(":"),"Value"],Type(e){return e.value==="["?"ListType":"NonNullType"},ListType:[(0,se.p)("["),"Type",(0,se.p)("]"),(0,se.opt)((0,se.p)("!"))],NonNullType:["NamedType",(0,se.opt)((0,se.p)("!"))],NamedType:[bX("atom")],Directive:[(0,se.p)("@","meta"),Kt("meta"),(0,se.opt)("Arguments")],DirectiveDef:[ln("directive"),(0,se.p)("@","meta"),Kt("meta"),(0,se.opt)("ArgumentsDef"),ln("on"),(0,se.list)("DirectiveLocation",(0,se.p)("|"))],InterfaceDef:[ln("interface"),Kt("atom"),(0,se.opt)("Implements"),(0,se.list)("Directive"),(0,se.p)("{"),(0,se.list)("FieldDef"),(0,se.p)("}")],Implements:[ln("implements"),(0,se.list)("NamedType",(0,se.p)("&"))],DirectiveLocation:[Kt("string-2")],SchemaDef:[ln("schema"),(0,se.list)("Directive"),(0,se.p)("{"),(0,se.list)("OperationTypeDef"),(0,se.p)("}")],OperationTypeDef:[Kt("keyword"),(0,se.p)(":"),Kt("atom")],ScalarDef:[ln("scalar"),Kt("atom"),(0,se.list)("Directive")],ObjectTypeDef:[ln("type"),Kt("atom"),(0,se.opt)("Implements"),(0,se.list)("Directive"),(0,se.p)("{"),(0,se.list)("FieldDef"),(0,se.p)("}")],FieldDef:[Kt("property"),(0,se.opt)("ArgumentsDef"),(0,se.p)(":"),"Type",(0,se.list)("Directive")],ArgumentsDef:[(0,se.p)("("),(0,se.list)("InputValueDef"),(0,se.p)(")")],InputValueDef:[Kt("attribute"),(0,se.p)(":"),"Type",(0,se.opt)("DefaultValue"),(0,se.list)("Directive")],UnionDef:[ln("union"),Kt("atom"),(0,se.list)("Directive"),(0,se.p)("="),(0,se.list)("UnionMember",(0,se.p)("|"))],UnionMember:["NamedType"],EnumDef:[ln("enum"),Kt("atom"),(0,se.list)("Directive"),(0,se.p)("{"),(0,se.list)("EnumValueDef"),(0,se.p)("}")],EnumValueDef:[Kt("string-2"),(0,se.list)("Directive")],InputDef:[ln("input"),Kt("atom"),(0,se.list)("Directive"),(0,se.p)("{"),(0,se.list)("InputValueDef"),(0,se.p)("}")],ExtendDef:[ln("extend"),"ObjectTypeDef"]};function ln(e){return{style:"keyword",match:t=>t.kind==="Name"&&t.value===e}}function Kt(e){return{style:e,match:t=>t.kind==="Name",update(t,r){t.name=r.value}}}function bX(e){return{style:e,match:t=>t.kind==="Name",update(t,r){var n;((n=t.prevState)===null||n===void 0?void 0:n.prevState)&&(t.name=r.value,t.prevState.prevState.type=r.value)}}}});var nM=U(YD=>{"use strict";Object.defineProperty(YD,"__esModule",{value:!0});var KD=QD(),TX=ct();function EX(e={eatWhitespace:t=>t.eatWhile(KD.isIgnored),lexRules:KD.LexRules,parseRules:KD.ParseRules,editorConfig:{}}){return{startState(){let t={level:0,step:0,name:null,kind:null,type:null,rule:null,needsSeperator:!1,prevState:null};return Ep(e.parseRules,t,TX.Kind.DOCUMENT),t},token(t,r){return _X(t,r,e)}}}YD.default=EX;function _X(e,t,r){var n;if(t.inBlockstring)return e.match(/.*"""/)?(t.inBlockstring=!1,"string"):(e.skipToEnd(),"string");let{lexRules:a,parseRules:o,eatWhitespace:s,editorConfig:l}=r;if(t.rule&&t.rule.length===0?zD(t):t.needsAdvance&&(t.needsAdvance=!1,WD(t,!0)),e.sol()){let v=(l==null?void 0:l.tabSize)||2;t.indentLevel=Math.floor(e.indentation()/v)}if(s(e))return"ws";let d=DX(a,e);if(!d)return e.match(/\S+/)||e.match(/\s/),Ep(HD,t,"Invalid"),"invalidchar";if(d.kind==="Comment")return Ep(HD,t,"Comment"),"comment";let h=tM({},t);if(d.kind==="Punctuation"){if(/^[{([]/.test(d.value))t.indentLevel!==void 0&&(t.levels=(t.levels||[]).concat(t.indentLevel+1));else if(/^[})\]]/.test(d.value)){let v=t.levels=(t.levels||[]).slice(0,-1);t.indentLevel&&v.length>0&&v[v.length-1]{"use strict";Object.defineProperty(Ss,"__esModule",{value:!0});Ss.RuleKinds=Ss.AdditionalRuleKinds=void 0;var kX=ct();Ss.AdditionalRuleKinds={ALIASED_FIELD:"AliasedField",ARGUMENTS:"Arguments",SHORT_QUERY:"ShortQuery",QUERY:"Query",MUTATION:"Mutation",SUBSCRIPTION:"Subscription",TYPE_CONDITION:"TypeCondition",INVALID:"Invalid",COMMENT:"Comment",SCHEMA_DEF:"SchemaDef",SCALAR_DEF:"ScalarDef",OBJECT_TYPE_DEF:"ObjectTypeDef",OBJECT_VALUE:"ObjectValue",LIST_VALUE:"ListValue",INTERFACE_DEF:"InterfaceDef",UNION_DEF:"UnionDef",ENUM_DEF:"EnumDef",ENUM_VALUE:"EnumValue",FIELD_DEF:"FieldDef",INPUT_DEF:"InputDef",INPUT_VALUE_DEF:"InputValueDef",ARGUMENTS_DEF:"ArgumentsDef",EXTEND_DEF:"ExtendDef",DIRECTIVE_DEF:"DirectiveDef",IMPLEMENTS:"Implements",VARIABLE_DEFINITIONS:"VariableDefinitions",TYPE:"Type"};Ss.RuleKinds=Object.assign(Object.assign({},kX.Kind),Ss.AdditionalRuleKinds)});var Am=U(jt=>{"use strict";var OX=jt&&jt.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),CX=jt&&jt.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&OX(t,e,r)},aM=jt&&jt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(jt,"__esModule",{value:!0});jt.onlineParser=jt.t=jt.p=jt.opt=jt.list=jt.butNot=jt.isIgnored=jt.ParseRules=jt.LexRules=jt.CharacterStream=void 0;var wX=eM();Object.defineProperty(jt,"CharacterStream",{enumerable:!0,get:function(){return aM(wX).default}});var JD=QD();Object.defineProperty(jt,"LexRules",{enumerable:!0,get:function(){return JD.LexRules}});Object.defineProperty(jt,"ParseRules",{enumerable:!0,get:function(){return JD.ParseRules}});Object.defineProperty(jt,"isIgnored",{enumerable:!0,get:function(){return JD.isIgnored}});var _p=GD();Object.defineProperty(jt,"butNot",{enumerable:!0,get:function(){return _p.butNot}});Object.defineProperty(jt,"list",{enumerable:!0,get:function(){return _p.list}});Object.defineProperty(jt,"opt",{enumerable:!0,get:function(){return _p.opt}});Object.defineProperty(jt,"p",{enumerable:!0,get:function(){return _p.p}});Object.defineProperty(jt,"t",{enumerable:!0,get:function(){return _p.t}});var AX=nM();Object.defineProperty(jt,"onlineParser",{enumerable:!0,get:function(){return aM(AX).default}});CX(iM(),jt)});var ZD=U(Cr=>{"use strict";Object.defineProperty(Cr,"__esModule",{value:!0});Cr.getTypeInfo=Cr.canUseDirective=Cr.runOnlineParser=Cr.getTokenAtPosition=Cr.getFragmentDefinitions=Cr.getVariableCompletions=Cr.getAutocompleteSuggestions=Cr.SuggestionCommand=void 0;var Ur=ZP(),xt=ct(),mt=ct(),ye=Am(),ur=VD();Cr.SuggestionCommand={command:"editor.action.triggerSuggest",title:"Suggestions"};var NX=e=>{let t=[];if(e)try{(0,mt.visit)((0,mt.parse)(e),{FragmentDefinition(r){t.push(r)}})}catch(r){return[]}return t};function LX(e,t,r,n,a,o){var s;let l=Object.assign(Object.assign({},o),{schema:e}),d=n||uM(t,r),h=d.state.kind==="Invalid"?d.state.prevState:d.state;if(!h)return[];let v=h.kind,b=h.step,T=lM(e,d.state);if(v===ye.RuleKinds.DOCUMENT)return(0,ur.hintList)(d,[{label:"query",kind:Ur.CompletionItemKind.Function},{label:"mutation",kind:Ur.CompletionItemKind.Function},{label:"subscription",kind:Ur.CompletionItemKind.Function},{label:"fragment",kind:Ur.CompletionItemKind.Function},{label:"{",kind:Ur.CompletionItemKind.Constructor}]);if(v===ye.RuleKinds.IMPLEMENTS||v===ye.RuleKinds.NAMED_TYPE&&((s=h.prevState)===null||s===void 0?void 0:s.kind)===ye.RuleKinds.IMPLEMENTS)return FX(d,h,e,t,T);if(v===ye.RuleKinds.SELECTION_SET||v===ye.RuleKinds.FIELD||v===ye.RuleKinds.ALIASED_FIELD)return IX(d,T,l);if(v===ye.RuleKinds.ARGUMENTS||v===ye.RuleKinds.ARGUMENT&&b===0){let A=T.argDefs;if(A)return(0,ur.hintList)(d,A.map(L=>{var S;return{label:L.name,insertText:L.name+": ",command:Cr.SuggestionCommand,detail:String(L.type),documentation:(S=L.description)!==null&&S!==void 0?S:void 0,kind:Ur.CompletionItemKind.Variable,type:L.type}}))}if((v===ye.RuleKinds.OBJECT_VALUE||v===ye.RuleKinds.OBJECT_FIELD&&b===0)&&T.objectFieldDefs){let A=(0,ur.objectValues)(T.objectFieldDefs),L=v===ye.RuleKinds.OBJECT_VALUE?Ur.CompletionItemKind.Value:Ur.CompletionItemKind.Field;return(0,ur.hintList)(d,A.map(S=>{var y;return{label:S.name,detail:String(S.type),documentation:(y=S.description)!==null&&y!==void 0?y:void 0,kind:L,type:S.type}}))}if(v===ye.RuleKinds.ENUM_VALUE||v===ye.RuleKinds.LIST_VALUE&&b===1||v===ye.RuleKinds.OBJECT_FIELD&&b===2||v===ye.RuleKinds.ARGUMENT&&b===2)return RX(d,T,t,e);if(v===ye.RuleKinds.VARIABLE&&b===1){let A=(0,mt.getNamedType)(T.inputType),L=XD(t,e,d);return(0,ur.hintList)(d,L.filter(S=>S.detail===(A==null?void 0:A.name)))}return v===ye.RuleKinds.TYPE_CONDITION&&b===1||v===ye.RuleKinds.NAMED_TYPE&&h.prevState!=null&&h.prevState.kind===ye.RuleKinds.TYPE_CONDITION?jX(d,T,e,v):v===ye.RuleKinds.FRAGMENT_SPREAD&&b===1?PX(d,T,e,t,Array.isArray(a)?a:NX(a)):v===ye.RuleKinds.VARIABLE_DEFINITION&&b===2||v===ye.RuleKinds.LIST_TYPE&&b===1||v===ye.RuleKinds.NAMED_TYPE&&h.prevState&&(h.prevState.kind===ye.RuleKinds.VARIABLE_DEFINITION||h.prevState.kind===ye.RuleKinds.LIST_TYPE||h.prevState.kind===ye.RuleKinds.NON_NULL_TYPE)?qX(d,e,v):v===ye.RuleKinds.DIRECTIVE?BX(d,h,e,v):[]}Cr.getAutocompleteSuggestions=LX;var Nm=` { + $1 +}`,xX=e=>{let t=e.type;return(0,mt.isCompositeType)(t)||(0,xt.isListType)(t)&&(0,mt.isCompositeType)(t.ofType)||(0,xt.isNonNullType)(t)&&((0,mt.isCompositeType)(t.ofType)||(0,xt.isListType)(t.ofType)&&(0,mt.isCompositeType)(t.ofType.ofType))?Nm:null};function IX(e,t,r){var n;if(t.parentType){let a=t.parentType,o=[];return"getFields"in a&&(o=(0,ur.objectValues)(a.getFields())),(0,mt.isCompositeType)(a)&&o.push(mt.TypeNameMetaFieldDef),a===((n=r==null?void 0:r.schema)===null||n===void 0?void 0:n.getQueryType())&&o.push(mt.SchemaMetaFieldDef,mt.TypeMetaFieldDef),(0,ur.hintList)(e,o.map((s,l)=>{var d;let h={sortText:String(l)+s.name,label:s.name,detail:String(s.type),documentation:(d=s.description)!==null&&d!==void 0?d:void 0,deprecated:Boolean(s.deprecationReason),isDeprecated:Boolean(s.deprecationReason),deprecationReason:s.deprecationReason,kind:Ur.CompletionItemKind.Field,type:s.type},v=xX(s);return v&&(h.insertText=s.name+v,h.insertTextFormat=Ur.InsertTextFormat.Snippet,h.command=Cr.SuggestionCommand),h}))}return[]}function RX(e,t,r,n){let a=(0,mt.getNamedType)(t.inputType),o=XD(r,n,e).filter(s=>s.detail===a.name);if(a instanceof mt.GraphQLEnumType){let s=a.getValues();return(0,ur.hintList)(e,s.map(l=>{var d;return{label:l.name,detail:String(a),documentation:(d=l.description)!==null&&d!==void 0?d:void 0,deprecated:Boolean(l.deprecationReason),isDeprecated:Boolean(l.deprecationReason),deprecationReason:l.deprecationReason,kind:Ur.CompletionItemKind.EnumMember,type:a}}).concat(o))}else if(a===mt.GraphQLBoolean)return(0,ur.hintList)(e,o.concat([{label:"true",detail:String(mt.GraphQLBoolean),documentation:"Not false.",kind:Ur.CompletionItemKind.Variable,type:mt.GraphQLBoolean},{label:"false",detail:String(mt.GraphQLBoolean),documentation:"Not true.",kind:Ur.CompletionItemKind.Variable,type:mt.GraphQLBoolean}]));return o}function FX(e,t,r,n,a){if(t.needsSeperator)return[];let o=r.getTypeMap(),s=(0,ur.objectValues)(o).filter(xt.isInterfaceType),l=s.map(({name:A})=>A),d=new Set;Sp(n,(A,L)=>{var S,y,_,m,k;if(L.name&&(L.kind===ye.RuleKinds.INTERFACE_DEF&&!l.includes(L.name)&&d.add(L.name),L.kind===ye.RuleKinds.NAMED_TYPE&&((S=L.prevState)===null||S===void 0?void 0:S.kind)===ye.RuleKinds.IMPLEMENTS)){if(a.interfaceDef){if((y=a.interfaceDef)===null||y===void 0?void 0:y.getInterfaces().find(({name:R})=>R===L.name))return;let C=r.getType(L.name),D=(_=a.interfaceDef)===null||_===void 0?void 0:_.toConfig();a.interfaceDef=new xt.GraphQLInterfaceType(Object.assign(Object.assign({},D),{interfaces:[...D.interfaces,C||new xt.GraphQLInterfaceType({name:L.name,fields:{}})]}))}else if(a.objectTypeDef){if((m=a.objectTypeDef)===null||m===void 0?void 0:m.getInterfaces().find(({name:R})=>R===L.name))return;let C=r.getType(L.name),D=(k=a.objectTypeDef)===null||k===void 0?void 0:k.toConfig();a.objectTypeDef=new xt.GraphQLObjectType(Object.assign(Object.assign({},D),{interfaces:[...D.interfaces,C||new xt.GraphQLInterfaceType({name:L.name,fields:{}})]}))}}});let h=a.interfaceDef||a.objectTypeDef,b=((h==null?void 0:h.getInterfaces())||[]).map(({name:A})=>A),T=s.concat([...d].map(A=>({name:A}))).filter(({name:A})=>A!==(h==null?void 0:h.name)&&!b.includes(A));return(0,ur.hintList)(e,T.map(A=>{let L={label:A.name,kind:Ur.CompletionItemKind.Interface,type:A};return(A==null?void 0:A.description)&&(L.documentation=A.description),L}))}function jX(e,t,r,n){let a;if(t.parentType)if((0,mt.isAbstractType)(t.parentType)){let o=(0,mt.assertAbstractType)(t.parentType),s=r.getPossibleTypes(o),l=Object.create(null);s.forEach(d=>{d.getInterfaces().forEach(h=>{l[h.name]=h})}),a=s.concat((0,ur.objectValues)(l))}else a=[t.parentType];else{let o=r.getTypeMap();a=(0,ur.objectValues)(o).filter(mt.isCompositeType)}return(0,ur.hintList)(e,a.map(o=>{let s=(0,mt.getNamedType)(o);return{label:String(o),documentation:(s==null?void 0:s.description)||"",kind:Ur.CompletionItemKind.Field}}))}function PX(e,t,r,n,a){if(!n)return[];let o=r.getTypeMap(),s=(0,ur.getDefinitionState)(e.state),l=oM(n);a&&a.length>0&&l.push(...a);let d=l.filter(h=>o[h.typeCondition.name.value]&&!(s&&s.kind===ye.RuleKinds.FRAGMENT_DEFINITION&&s.name===h.name.value)&&(0,mt.isCompositeType)(t.parentType)&&(0,mt.isCompositeType)(o[h.typeCondition.name.value])&&(0,mt.doTypesOverlap)(r,t.parentType,o[h.typeCondition.name.value]));return(0,ur.hintList)(e,d.map(h=>({label:h.name.value,detail:String(o[h.typeCondition.name.value]),documentation:`fragment ${h.name.value} on ${h.typeCondition.name.value}`,kind:Ur.CompletionItemKind.Field,type:o[h.typeCondition.name.value]})))}var MX=(e,t)=>{var r,n,a,o,s,l,d,h,v,b;if(((r=e.prevState)===null||r===void 0?void 0:r.kind)===t)return e.prevState;if(((a=(n=e.prevState)===null||n===void 0?void 0:n.prevState)===null||a===void 0?void 0:a.kind)===t)return e.prevState.prevState;if(((l=(s=(o=e.prevState)===null||o===void 0?void 0:o.prevState)===null||s===void 0?void 0:s.prevState)===null||l===void 0?void 0:l.kind)===t)return e.prevState.prevState.prevState;if(((b=(v=(h=(d=e.prevState)===null||d===void 0?void 0:d.prevState)===null||h===void 0?void 0:h.prevState)===null||v===void 0?void 0:v.prevState)===null||b===void 0?void 0:b.kind)===t)return e.prevState.prevState.prevState.prevState};function XD(e,t,r){let n=null,a,o=Object.create({});return Sp(e,(s,l)=>{if((l==null?void 0:l.kind)===ye.RuleKinds.VARIABLE&&l.name&&(n=l.name),(l==null?void 0:l.kind)===ye.RuleKinds.NAMED_TYPE&&n){let d=MX(l,ye.RuleKinds.TYPE);(d==null?void 0:d.type)&&(a=t.getType(d==null?void 0:d.type))}n&&a&&(o[n]||(o[n]={detail:a.toString(),insertText:r.string==="$"?n:"$"+n,label:n,type:a,kind:Ur.CompletionItemKind.Variable},n=null,a=null))}),(0,ur.objectValues)(o)}Cr.getVariableCompletions=XD;function oM(e){let t=[];return Sp(e,(r,n)=>{n.kind===ye.RuleKinds.FRAGMENT_DEFINITION&&n.name&&n.type&&t.push({kind:ye.RuleKinds.FRAGMENT_DEFINITION,name:{kind:xt.Kind.NAME,value:n.name},selectionSet:{kind:ye.RuleKinds.SELECTION_SET,selections:[]},typeCondition:{kind:ye.RuleKinds.NAMED_TYPE,name:{kind:xt.Kind.NAME,value:n.type}}})}),t}Cr.getFragmentDefinitions=oM;function qX(e,t,r){let n=t.getTypeMap(),a=(0,ur.objectValues)(n).filter(mt.isInputType);return(0,ur.hintList)(e,a.map(o=>({label:o.name,documentation:o.description,kind:Ur.CompletionItemKind.Variable})))}function BX(e,t,r,n){var a;if((a=t.prevState)===null||a===void 0?void 0:a.kind){let o=r.getDirectives().filter(s=>sM(t.prevState,s));return(0,ur.hintList)(e,o.map(s=>({label:s.name,documentation:s.description||"",kind:Ur.CompletionItemKind.Function})))}return[]}function uM(e,t){let r=null,n=null,a=null,o=Sp(e,(s,l,d,h)=>{if(h===t.line&&s.getCurrentPosition()>=t.character)return r=d,n=Object.assign({},l),a=s.current(),"BREAK"});return{start:o.start,end:o.end,string:a||o.string,state:n||o.state,style:r||o.style}}Cr.getTokenAtPosition=uM;function Sp(e,t){let r=e.split(` +`),n=(0,ye.onlineParser)(),a=n.startState(),o="",s=new ye.CharacterStream("");for(let l=0;l{var L;switch(A.kind){case ye.RuleKinds.QUERY:case"ShortQuery":b=e.getQueryType();break;case ye.RuleKinds.MUTATION:b=e.getMutationType();break;case ye.RuleKinds.SUBSCRIPTION:b=e.getSubscriptionType();break;case ye.RuleKinds.INLINE_FRAGMENT:case ye.RuleKinds.FRAGMENT_DEFINITION:A.type&&(b=e.getType(A.type));break;case ye.RuleKinds.FIELD:case ye.RuleKinds.ALIASED_FIELD:{!b||!A.name?s=null:(s=v?(0,ur.getFieldDef)(e,v,A.name):null,b=s?s.type:null);break}case ye.RuleKinds.SELECTION_SET:v=(0,mt.getNamedType)(b);break;case ye.RuleKinds.DIRECTIVE:a=A.name?e.getDirective(A.name):null;break;case ye.RuleKinds.INTERFACE_DEF:A.name&&(d=null,T=new xt.GraphQLInterfaceType({name:A.name,interfaces:[],fields:{}}));break;case ye.RuleKinds.OBJECT_TYPE_DEF:A.name&&(T=null,d=new xt.GraphQLObjectType({name:A.name,interfaces:[],fields:{}}));break;case ye.RuleKinds.ARGUMENTS:{if(!A.prevState)n=null;else switch(A.prevState.kind){case ye.RuleKinds.FIELD:n=s&&s.args;break;case ye.RuleKinds.DIRECTIVE:n=a&&a.args;break;case ye.RuleKinds.ALIASED_FIELD:{let k=(L=A.prevState)===null||L===void 0?void 0:L.name;if(!k){n=null;break}let w=v?(0,ur.getFieldDef)(e,v,k):null;if(!w){n=null;break}n=w.args;break}default:n=null;break}break}case ye.RuleKinds.ARGUMENT:if(n){for(let k=0;kk.value===A.name):null;break;case ye.RuleKinds.LIST_VALUE:let y=(0,mt.getNullableType)(l);l=y instanceof mt.GraphQLList?y.ofType:null;break;case ye.RuleKinds.OBJECT_VALUE:let _=(0,mt.getNamedType)(l);h=_ instanceof mt.GraphQLInputObjectType?_.getFields():null;break;case ye.RuleKinds.OBJECT_FIELD:let m=A.name&&h?h[A.name]:null;l=m==null?void 0:m.type;break;case ye.RuleKinds.NAMED_TYPE:A.name&&(b=e.getType(A.name));break}}),{argDef:r,argDefs:n,directiveDef:a,enumValue:o,fieldDef:s,inputType:l,objectFieldDefs:h,parentType:v,type:b,interfaceDef:T,objectTypeDef:d}}Cr.getTypeInfo=lM});var fM=U(To=>{"use strict";var VX=To&&To.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(To,"__esModule",{value:!0});To.getFragmentDependenciesForAST=To.getFragmentDependencies=void 0;var $D=ct(),cM=VX(iD()),UX=(e,t)=>{if(!t)return[];let r;try{r=(0,$D.parse)(e)}catch(n){return[]}return(0,To.getFragmentDependenciesForAST)(r,t)};To.getFragmentDependencies=UX;var GX=(e,t)=>{if(!t)return[];let r=new Map,n=new Set;(0,$D.visit)(e,{FragmentDefinition(s){r.set(s.name.value,!0)},FragmentSpread(s){n.has(s.name.value)||n.add(s.name.value)}});let a=new Set;n.forEach(s=>{!r.has(s)&&t.has(s)&&a.add((0,cM.default)(t.get(s)))});let o=[];return a.forEach(s=>{(0,$D.visit)(s,{FragmentSpread(l){!n.has(l.name.value)&&t.get(l.name.value)&&(a.add((0,cM.default)(t.get(l.name.value))),n.add(l.name.value))}}),r.has(s.name.value)||o.push(s)}),o};To.getFragmentDependenciesForAST=GX});var dM=U(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});yc.getVariablesJSONSchema=yc.defaultJSONSchemaOptions=void 0;var Tu=ct();yc.defaultJSONSchemaOptions={useMarkdownDescription:!1};function mc(e,t){e.push(t)}function e1(e,t){(0,Tu.isNonNullType)(t)?(e1(e,t.ofType),mc(e,"!")):(0,Tu.isListType)(t)?(mc(e,"["),e1(e,t.ofType),mc(e,"]")):mc(e,t.name)}function Pa(e,t){let r=[];return t&&mc(r,"```graphql\n"),e1(r,e),t&&mc(r,"\n```"),r.join("")}var QX={Int:"integer",String:"string",Float:"number",ID:"string",Boolean:"boolean",DateTime:"string"};function Dp(e,t){var r;let n=!1,a=Object.create(null),o=Object.create(null);if("defaultValue"in e&&e.defaultValue!==void 0&&(a.default=e.defaultValue),(0,Tu.isEnumType)(e)&&(a.type="string",a.enum=e.getValues().map(s=>s.name)),(0,Tu.isScalarType)(e)&&(a.type=(r=QX[e.name])!==null&&r!==void 0?r:"any"),(0,Tu.isListType)(e)){a.type="array";let{definition:s,definitions:l}=Dp(e.ofType,t);s.$ref?a.items={$ref:s.$ref}:a.items=s,l&&Object.keys(l).forEach(d=>{o[d]=l[d]})}if((0,Tu.isNonNullType)(e)){n=!0;let{definition:s,definitions:l}=Dp(e.ofType,t);a=s,l&&Object.keys(l).forEach(d=>{o[d]=l[d]})}if((0,Tu.isInputObjectType)(e)){a.$ref=`#/definitions/${e.name}`;let s=e.getFields(),l={type:"object",properties:{},required:[]};e.description?(l.description=e.description+` +`+Pa(e),(t==null?void 0:t.useMarkdownDescription)&&(l.markdownDescription=e.description+` +`+Pa(e,!0))):(l.description=Pa(e),(t==null?void 0:t.useMarkdownDescription)&&(l.markdownDescription=Pa(e,!0))),Object.keys(s).forEach(d=>{let h=s[d],{required:v,definition:b,definitions:T}=Dp(h.type,t),{definition:A}=Dp(h,t);l.properties[d]=Object.assign(Object.assign({},b),A);let L=Pa(h.type);if(l.properties[d].description=h.description?h.description+` +`+L:L,t==null?void 0:t.useMarkdownDescription){let S=Pa(h.type,!0);l.properties[d].markdownDescription=h.description?h.description+` +`+S:S}v&&l.required.push(d),T&&Object.keys(T).map(S=>{o[S]=T[S]})}),o[e.name]=l}return"description"in e&&!(0,Tu.isScalarType)(e)&&e.description&&!a.description?(a.description=e.description+` +`+Pa(e),(t==null?void 0:t.useMarkdownDescription)&&(a.markdownDescription=e.description+` +`+Pa(e,!0))):(a.description=Pa(e),(t==null?void 0:t.useMarkdownDescription)&&(a.markdownDescription=Pa(e,!0))),{required:n,definition:a,definitions:o}}function KX(e,t){let r={$schema:"https://json-schema.org/draft/2020-12/schema",type:"object",properties:{},required:[]};return e&&Object.entries(e).forEach(([n,a])=>{var o;let{definition:s,required:l,definitions:d}=Dp(a,t);r.properties[n]=s,l&&((o=r.required)===null||o===void 0||o.push(n)),d&&(r.definitions=Object.assign(Object.assign({},r==null?void 0:r.definitions),d))}),r}yc.getVariablesJSONSchema=KX});var hM=U(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});bc.pointToOffset=bc.getASTNodeAtPosition=void 0;var HX=ct();function zX(e,t,r){let n=pM(e,r),a;return(0,HX.visit)(t,{enter(o){if(o.kind!=="Name"&&o.loc&&o.loc.start<=n&&n<=o.loc.end)a=o;else return!1},leave(o){if(o.loc&&o.loc.start<=n&&n<=o.loc.end)return!1}}),a}bc.getASTNodeAtPosition=zX;function pM(e,t){let r=e.split(` +`).slice(0,t.line);return t.character+r.map(n=>n.length+1).reduce((n,a)=>n+a,0)}bc.pointToOffset=pM});var vM=U(Ma=>{"use strict";Object.defineProperty(Ma,"__esModule",{value:!0});Ma.locToRange=Ma.offsetToPosition=Ma.Position=Ma.Range=void 0;var t1=class{constructor(t,r){this.containsPosition=n=>this.start.line===n.line?this.start.character<=n.character:this.end.line===n.line?this.end.character>=n.character:this.start.line<=n.line&&this.end.line>=n.line,this.start=t,this.end=r}setStart(t,r){this.start=new kp(t,r)}setEnd(t,r){this.end=new kp(t,r)}};Ma.Range=t1;var kp=class{constructor(t,r){this.lessThanOrEqualTo=n=>this.line{"use strict";Object.defineProperty(Lm,"__esModule",{value:!0});Lm.validateWithCustomRules=void 0;var Xr=ct(),YX=[Xr.LoneSchemaDefinitionRule,Xr.UniqueOperationTypesRule,Xr.UniqueTypeNamesRule,Xr.UniqueEnumValueNamesRule,Xr.UniqueFieldDefinitionNamesRule,Xr.UniqueDirectiveNamesRule,Xr.KnownTypeNamesRule,Xr.KnownDirectivesRule,Xr.UniqueDirectivesPerLocationRule,Xr.PossibleTypeExtensionsRule,Xr.UniqueArgumentNamesRule,Xr.UniqueInputFieldNamesRule];function JX(e,t,r,n,a){let o=Xr.specifiedRules.filter(l=>!(l===Xr.NoUnusedFragmentsRule||l===Xr.ExecutableDefinitionsRule||n&&l===Xr.KnownFragmentNamesRule));return r&&Array.prototype.push.apply(o,r),a&&Array.prototype.push.apply(o,YX),(0,Xr.validate)(e,t,o).filter(l=>{if(l.message.indexOf("Unknown directive")!==-1&&l.nodes){let d=l.nodes[0];if(d&&d.kind===Xr.Kind.DIRECTIVE){let h=d.name.value;if(h==="arguments"||h==="argumentDefinitions")return!1}}return!0})}Lm.validateWithCustomRules=JX});var i1=U(xm=>{"use strict";Object.defineProperty(xm,"__esModule",{value:!0});xm.collectVariables=void 0;var n1=ct();function XX(e,t){let r=Object.create(null);return t.definitions.forEach(n=>{if(n.kind==="OperationDefinition"){let a=n.variableDefinitions;a&&a.forEach(({variable:o,type:s})=>{let l=(0,n1.typeFromAST)(e,s);l?r[o.name.value]=l:s.kind===n1.Kind.NAMED_TYPE&&s.name.value==="Float"&&(r[o.name.value]=n1.GraphQLFloat)})}}),r}xm.collectVariables=XX});var TM=U(Ds=>{"use strict";Object.defineProperty(Ds,"__esModule",{value:!0});Ds.getQueryFacts=Ds.getOperationASTFacts=void 0;var mM=ct(),ZX=i1();function yM(e,t){let r=t?(0,ZX.collectVariables)(t,e):void 0,n=[];return(0,mM.visit)(e,{OperationDefinition(a){n.push(a)}}),{variableToType:r,operations:n}}Ds.getOperationASTFacts=yM;function bM(e,t){if(!!t)try{let r=(0,mM.parse)(t);return Object.assign(Object.assign({},yM(r,e)),{documentAST:r})}catch(r){return}}Ds.default=bM;Ds.getQueryFacts=bM});var Op=U(St=>{"use strict";var $X=St&&St.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(St,"__esModule",{value:!0});St.getQueryFacts=St.getOperationASTFacts=St.getOperationFacts=St.collectVariables=St.validateWithCustomRules=St.offsetToPosition=St.locToRange=St.Range=St.Position=St.pointToOffset=St.getASTNodeAtPosition=St.getVariablesJSONSchema=St.getFragmentDependenciesForAST=St.getFragmentDependencies=void 0;var EM=fM();Object.defineProperty(St,"getFragmentDependencies",{enumerable:!0,get:function(){return EM.getFragmentDependencies}});Object.defineProperty(St,"getFragmentDependenciesForAST",{enumerable:!0,get:function(){return EM.getFragmentDependenciesForAST}});var eZ=dM();Object.defineProperty(St,"getVariablesJSONSchema",{enumerable:!0,get:function(){return eZ.getVariablesJSONSchema}});var _M=hM();Object.defineProperty(St,"getASTNodeAtPosition",{enumerable:!0,get:function(){return _M.getASTNodeAtPosition}});Object.defineProperty(St,"pointToOffset",{enumerable:!0,get:function(){return _M.pointToOffset}});var Im=vM();Object.defineProperty(St,"Position",{enumerable:!0,get:function(){return Im.Position}});Object.defineProperty(St,"Range",{enumerable:!0,get:function(){return Im.Range}});Object.defineProperty(St,"locToRange",{enumerable:!0,get:function(){return Im.locToRange}});Object.defineProperty(St,"offsetToPosition",{enumerable:!0,get:function(){return Im.offsetToPosition}});var tZ=gM();Object.defineProperty(St,"validateWithCustomRules",{enumerable:!0,get:function(){return tZ.validateWithCustomRules}});var rZ=i1();Object.defineProperty(St,"collectVariables",{enumerable:!0,get:function(){return rZ.collectVariables}});var a1=TM();Object.defineProperty(St,"getOperationFacts",{enumerable:!0,get:function(){return $X(a1).default}});Object.defineProperty(St,"getOperationASTFacts",{enumerable:!0,get:function(){return a1.getOperationASTFacts}});Object.defineProperty(St,"getQueryFacts",{enumerable:!0,get:function(){return a1.getQueryFacts}})});var kM=U(cn=>{"use strict";var o1=cn&&cn.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(s){s(o)})}return new(r||(r=Promise))(function(o,s){function l(v){try{h(n.next(v))}catch(b){s(b)}}function d(v){try{h(n.throw(v))}catch(b){s(b)}}function h(v){v.done?o(v.value):a(v.value).then(l,d)}h((n=n.apply(e,t||[])).next())})};Object.defineProperty(cn,"__esModule",{value:!0});cn.getDefinitionQueryResultForDefinitionNode=cn.getDefinitionQueryResultForFragmentSpread=cn.getDefinitionQueryResultForField=cn.getDefinitionQueryResultForNamedType=cn.LANGUAGE=void 0;var SM=Op();cn.LANGUAGE="GraphQL";function Rm(e,t){if(!e)throw new Error(t)}function Tc(e,t){let r=t.loc;return Rm(r,"Expected ASTNode to have a location."),(0,SM.locToRange)(e,r)}function u1(e,t){let r=t.loc;return Rm(r,"Expected ASTNode to have a location."),(0,SM.offsetToPosition)(e,r.start)}function nZ(e,t,r){return o1(this,void 0,void 0,function*(){let n=t.name.value,a=r.filter(({definition:s})=>s.name&&s.name.value===n);if(a.length===0)throw Error(`Definition not found for GraphQL type ${n}`);let o=a.map(({filePath:s,content:l,definition:d})=>uZ(s||"",l,d));return{definitions:o,queryRange:o.map(s=>Tc(e,t))}})}cn.getDefinitionQueryResultForNamedType=nZ;function iZ(e,t,r){return o1(this,void 0,void 0,function*(){let n=r.filter(({definition:o})=>o.name&&o.name.value===t);if(n.length===0)throw Error(`Definition not found for GraphQL type ${t}`);let a=[];return n.forEach(({filePath:o,content:s,definition:l})=>{var d;let h=(d=l.fields)===null||d===void 0?void 0:d.find(v=>v.name.value===e);if(h==null)return null;a.push(sZ(o||"",s,h))}),{definitions:a,queryRange:[]}})}cn.getDefinitionQueryResultForField=iZ;function aZ(e,t,r){return o1(this,void 0,void 0,function*(){let n=t.name.value,a=r.filter(({definition:s})=>s.name.value===n);if(a.length===0)throw Error(`Definition not found for GraphQL fragment ${n}`);let o=a.map(({filePath:s,content:l,definition:d})=>DM(s||"",l,d));return{definitions:o,queryRange:o.map(s=>Tc(e,t))}})}cn.getDefinitionQueryResultForFragmentSpread=aZ;function oZ(e,t,r){return{definitions:[DM(e,t,r)],queryRange:r.name?[Tc(t,r.name)]:[]}}cn.getDefinitionQueryResultForDefinitionNode=oZ;function DM(e,t,r){let n=r.name;if(!n)throw Error("Expected ASTNode to have a Name.");return{path:e,position:u1(t,r),range:Tc(t,r),name:n.value||"",language:cn.LANGUAGE,projectRoot:e}}function uZ(e,t,r){let n=r.name;return Rm(n,"Expected ASTNode to have a Name."),{path:e,position:u1(t,r),range:Tc(t,r),name:n.value||"",language:cn.LANGUAGE,projectRoot:e}}function sZ(e,t,r){let n=r.name;return Rm(n,"Expected ASTNode to have a Name."),{path:e,position:u1(t,r),range:Tc(t,r),name:n.value||"",language:cn.LANGUAGE,projectRoot:e}}});var LM=U(Gr=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});Gr.getRange=Gr.validateQuery=Gr.getDiagnostics=Gr.DIAGNOSTIC_SEVERITY=Gr.SEVERITY=void 0;var Fm=ct(),lZ=ct(),OM=Am(),ks=Op();Gr.SEVERITY={Error:"Error",Warning:"Warning",Information:"Information",Hint:"Hint"};Gr.DIAGNOSTIC_SEVERITY={[Gr.SEVERITY.Error]:1,[Gr.SEVERITY.Warning]:2,[Gr.SEVERITY.Information]:3,[Gr.SEVERITY.Hint]:4};var jm=(e,t)=>{if(!e)throw new Error(t)};function cZ(e,t=null,r,n,a){var o,s;let l=null;a&&(typeof a=="string"?e+=` + +`+a:e+=` + +`+a.reduce((d,h)=>(d+=(0,Fm.print)(h)+` + +`,d),""));try{l=(0,lZ.parse)(e)}catch(d){if(d instanceof Fm.GraphQLError){let h=NM((s=(o=d.locations)===null||o===void 0?void 0:o[0])!==null&&s!==void 0?s:{line:0,column:0},e);return[{severity:Gr.DIAGNOSTIC_SEVERITY.Error,message:d.message,source:"GraphQL: Syntax",range:h}]}throw d}return CM(l,t,r,n)}Gr.getDiagnostics=cZ;function CM(e,t=null,r,n){if(!t)return[];let a=wM((0,ks.validateWithCustomRules)(t,e,r,n),s=>AM(s,Gr.DIAGNOSTIC_SEVERITY.Error,"Validation")),o=wM((0,Fm.validate)(t,e,[Fm.NoDeprecatedCustomRule]),s=>AM(s,Gr.DIAGNOSTIC_SEVERITY.Warning,"Deprecation"));return a.concat(o)}Gr.validateQuery=CM;function wM(e,t){return Array.prototype.concat.apply([],e.map(t))}function AM(e,t,r){if(!e.nodes)return[];let n=[];return e.nodes.forEach(a=>{let o=a.kind!=="Variable"&&"name"in a&&a.name!==void 0?a.name:"variable"in a&&a.variable!==void 0?a.variable:a;if(o){jm(e.locations,"GraphQL validation error requires locations.");let s=e.locations[0],l=fZ(o),d=s.column+(l.end-l.start);n.push({source:`GraphQL: ${r}`,message:e.message,severity:t,range:new ks.Range(new ks.Position(s.line-1,s.column-1),new ks.Position(s.line-1,d))})}}),n}function NM(e,t){let r=(0,OM.onlineParser)(),n=r.startState(),a=t.split(` +`);jm(a.length>=e.line,"Query text must have more lines than where the error happened");let o=null;for(let h=0;h{"use strict";Object.defineProperty(Pm,"__esModule",{value:!0});Pm.getOutline=void 0;var s1=ct(),xM=Op(),{INLINE_FRAGMENT:dZ}=s1.Kind;function pZ(e){let t;try{t=(0,s1.parse)(e)}catch(a){return null}let r=hZ(e);return{outlineTrees:(0,s1.visit)(t,{leave(a){return r!==void 0&&a.kind in r?r[a.kind](a):null}})}}Pm.getOutline=pZ;function hZ(e){let t=r=>({representativeName:r.name,startPosition:(0,xM.offsetToPosition)(e,r.loc.start),endPosition:(0,xM.offsetToPosition)(e,r.loc.end),kind:r.kind,children:r.selectionSet||r.fields||r.values||r.arguments||[]});return{Field:r=>{let n=r.alias?[Ht("plain",r.alias),Ht("plain",": ")]:[];return n.push(Ht("plain",r.name)),Object.assign({tokenizedText:n},t(r))},OperationDefinition:r=>Object.assign({tokenizedText:[Ht("keyword",r.operation),Ht("whitespace"," "),Ht("class-name",r.name)]},t(r)),Document:r=>r.definitions,SelectionSet:r=>vZ(r.selections,n=>n.kind===dZ?n.selectionSet:n),Name:r=>r.value,FragmentDefinition:r=>Object.assign({tokenizedText:[Ht("keyword","fragment"),Ht("whitespace"," "),Ht("class-name",r.name)]},t(r)),InterfaceTypeDefinition:r=>Object.assign({tokenizedText:[Ht("keyword","interface"),Ht("whitespace"," "),Ht("class-name",r.name)]},t(r)),EnumTypeDefinition:r=>Object.assign({tokenizedText:[Ht("keyword","enum"),Ht("whitespace"," "),Ht("class-name",r.name)]},t(r)),EnumValueDefinition:r=>Object.assign({tokenizedText:[Ht("plain",r.name)]},t(r)),ObjectTypeDefinition:r=>Object.assign({tokenizedText:[Ht("keyword","type"),Ht("whitespace"," "),Ht("class-name",r.name)]},t(r)),InputObjectTypeDefinition:r=>Object.assign({tokenizedText:[Ht("keyword","input"),Ht("whitespace"," "),Ht("class-name",r.name)]},t(r)),FragmentSpread:r=>Object.assign({tokenizedText:[Ht("plain","..."),Ht("class-name",r.name)]},t(r)),InputValueDefinition:r=>Object.assign({tokenizedText:[Ht("plain",r.name)]},t(r)),FieldDefinition:r=>Object.assign({tokenizedText:[Ht("plain",r.name)]},t(r)),InlineFragment:r=>r.selectionSet}}function Ht(e,t){return{kind:e,value:t}}function vZ(e,t){let r=[];for(let n=0;n{"use strict";Object.defineProperty(Mm,"__esModule",{value:!0});Mm.getHoverInformation=void 0;var RM=ct(),FM=ZD();function gZ(e,t,r,n,a){let o=n||(0,FM.getTokenAtPosition)(t,r);if(!e||!o||!o.state)return"";let s=o.state,l=s.kind,d=s.step,h=(0,FM.getTypeInfo)(e,o.state),v=Object.assign(Object.assign({},a),{schema:e});if(l==="Field"&&d===0&&h.fieldDef||l==="AliasedField"&&d===2&&h.fieldDef){let b=[];return Cp(b,v),mZ(b,h,v),wp(b,v),Ap(b,v,h.fieldDef),b.join("").trim()}else if(l==="Directive"&&d===1&&h.directiveDef){let b=[];return Cp(b,v),PM(b,h,v),wp(b,v),Ap(b,v,h.directiveDef),b.join("").trim()}else if(l==="Argument"&&d===0&&h.argDef){let b=[];return Cp(b,v),yZ(b,h,v),wp(b,v),Ap(b,v,h.argDef),b.join("").trim()}else if(l==="EnumValue"&&h.enumValue&&"description"in h.enumValue){let b=[];return Cp(b,v),bZ(b,h,v),wp(b,v),Ap(b,v,h.enumValue),b.join("").trim()}else if(l==="NamedType"&&h.type&&"description"in h.type){let b=[];return Cp(b,v),Ec(b,h,v,h.type),wp(b,v),Ap(b,v,h.type),b.join("").trim()}return""}Mm.getHoverInformation=gZ;function Cp(e,t){t.useMarkdown&&wr(e,"```graphql\n")}function wp(e,t){t.useMarkdown&&wr(e,"\n```")}function mZ(e,t,r){jM(e,t,r),MM(e,t,r,t.type)}function jM(e,t,r){if(!t.fieldDef)return;let n=t.fieldDef.name;n.slice(0,2)!=="__"&&(Ec(e,t,r,t.parentType),wr(e,".")),wr(e,n)}function PM(e,t,r){if(!t.directiveDef)return;let n="@"+t.directiveDef.name;wr(e,n)}function yZ(e,t,r){if(t.directiveDef?PM(e,t,r):t.fieldDef&&jM(e,t,r),!t.argDef)return;let n=t.argDef.name;wr(e,"("),wr(e,n),MM(e,t,r,t.inputType),wr(e,")")}function MM(e,t,r,n){wr(e,": "),Ec(e,t,r,n)}function bZ(e,t,r){if(!t.enumValue)return;let n=t.enumValue.name;Ec(e,t,r,t.inputType),wr(e,"."),wr(e,n)}function Ec(e,t,r,n){!n||(n instanceof RM.GraphQLNonNull?(Ec(e,t,r,n.ofType),wr(e,"!")):n instanceof RM.GraphQLList?(wr(e,"["),Ec(e,t,r,n.ofType),wr(e,"]")):wr(e,n.name))}function Ap(e,t,r){if(!r)return;let n=typeof r.description=="string"?r.description:null;n&&(wr(e,` + +`),wr(e,n)),TZ(e,t,r)}function TZ(e,t,r){if(!r)return;let n=r.deprecationReason?r.deprecationReason:null;!n||(wr(e,` + +`),wr(e,"Deprecated: "),wr(e,n))}function wr(e,t){e.push(t)}});var BM=U($n=>{"use strict";var EZ=$n&&$n.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),qm=$n&&$n.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&EZ(t,e,r)};Object.defineProperty($n,"__esModule",{value:!0});$n.getHoverInformation=$n.getOutline=void 0;qm(VD(),$n);qm(ZD(),$n);qm(kM(),$n);qm(LM(),$n);var _Z=IM();Object.defineProperty($n,"getOutline",{enumerable:!0,get:function(){return _Z.getOutline}});var SZ=qM();Object.defineProperty($n,"getHoverInformation",{enumerable:!0,get:function(){return SZ.getHoverInformation}})});var VM=U(Os=>{"use strict";Object.defineProperty(Os,"__esModule",{value:!0});Os.CompletionItemKind=Os.FileChangeTypeKind=void 0;Os.FileChangeTypeKind={Created:1,Changed:2,Deleted:3};var DZ;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(DZ=Os.CompletionItemKind||(Os.CompletionItemKind={}))});var _c=U(de=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.Range=de.validateWithCustomRules=de.collectVariables=de.Position=de.pointToOffset=de.offsetToPosition=de.getVariablesJSONSchema=de.getQueryFacts=de.getOperationFacts=de.getOperationASTFacts=de.getFragmentDependenciesForAST=de.getFragmentDependencies=de.getASTNodeAtPosition=de.FileChangeTypeKind=de.CompletionItemKind=de.opt=de.t=de.list=de.p=de.isIgnored=de.LexRules=de.RuleKinds=de.CharacterStream=de.ParseRules=de.onlineParser=de.validateQuery=de.SuggestionCommand=de.canUseDirective=de.DIAGNOSTIC_SEVERITY=de.SEVERITY=de.getVariableCompletions=de.getTypeInfo=de.getTokenAtPosition=de.getRange=de.getOutline=de.getHoverInformation=de.getFragmentDefinitions=de.getFieldDef=de.getDiagnostics=de.getDefinitionState=de.getDefinitionQueryResultForField=de.getDefinitionQueryResultForNamedType=de.getDefinitionQueryResultForFragmentSpread=de.getDefinitionQueryResultForDefinitionNode=de.getAutocompleteSuggestions=void 0;var Ar=BM();Object.defineProperty(de,"getAutocompleteSuggestions",{enumerable:!0,get:function(){return Ar.getAutocompleteSuggestions}});Object.defineProperty(de,"getDefinitionQueryResultForDefinitionNode",{enumerable:!0,get:function(){return Ar.getDefinitionQueryResultForDefinitionNode}});Object.defineProperty(de,"getDefinitionQueryResultForFragmentSpread",{enumerable:!0,get:function(){return Ar.getDefinitionQueryResultForFragmentSpread}});Object.defineProperty(de,"getDefinitionQueryResultForNamedType",{enumerable:!0,get:function(){return Ar.getDefinitionQueryResultForNamedType}});Object.defineProperty(de,"getDefinitionQueryResultForField",{enumerable:!0,get:function(){return Ar.getDefinitionQueryResultForField}});Object.defineProperty(de,"getDefinitionState",{enumerable:!0,get:function(){return Ar.getDefinitionState}});Object.defineProperty(de,"getDiagnostics",{enumerable:!0,get:function(){return Ar.getDiagnostics}});Object.defineProperty(de,"getFieldDef",{enumerable:!0,get:function(){return Ar.getFieldDef}});Object.defineProperty(de,"getFragmentDefinitions",{enumerable:!0,get:function(){return Ar.getFragmentDefinitions}});Object.defineProperty(de,"getHoverInformation",{enumerable:!0,get:function(){return Ar.getHoverInformation}});Object.defineProperty(de,"getOutline",{enumerable:!0,get:function(){return Ar.getOutline}});Object.defineProperty(de,"getRange",{enumerable:!0,get:function(){return Ar.getRange}});Object.defineProperty(de,"getTokenAtPosition",{enumerable:!0,get:function(){return Ar.getTokenAtPosition}});Object.defineProperty(de,"getTypeInfo",{enumerable:!0,get:function(){return Ar.getTypeInfo}});Object.defineProperty(de,"getVariableCompletions",{enumerable:!0,get:function(){return Ar.getVariableCompletions}});Object.defineProperty(de,"SEVERITY",{enumerable:!0,get:function(){return Ar.SEVERITY}});Object.defineProperty(de,"DIAGNOSTIC_SEVERITY",{enumerable:!0,get:function(){return Ar.DIAGNOSTIC_SEVERITY}});Object.defineProperty(de,"canUseDirective",{enumerable:!0,get:function(){return Ar.canUseDirective}});Object.defineProperty(de,"SuggestionCommand",{enumerable:!0,get:function(){return Ar.SuggestionCommand}});Object.defineProperty(de,"validateQuery",{enumerable:!0,get:function(){return Ar.validateQuery}});var qa=Am();Object.defineProperty(de,"onlineParser",{enumerable:!0,get:function(){return qa.onlineParser}});Object.defineProperty(de,"ParseRules",{enumerable:!0,get:function(){return qa.ParseRules}});Object.defineProperty(de,"CharacterStream",{enumerable:!0,get:function(){return qa.CharacterStream}});Object.defineProperty(de,"RuleKinds",{enumerable:!0,get:function(){return qa.RuleKinds}});Object.defineProperty(de,"LexRules",{enumerable:!0,get:function(){return qa.LexRules}});Object.defineProperty(de,"isIgnored",{enumerable:!0,get:function(){return qa.isIgnored}});Object.defineProperty(de,"p",{enumerable:!0,get:function(){return qa.p}});Object.defineProperty(de,"list",{enumerable:!0,get:function(){return qa.list}});Object.defineProperty(de,"t",{enumerable:!0,get:function(){return qa.t}});Object.defineProperty(de,"opt",{enumerable:!0,get:function(){return qa.opt}});var UM=VM();Object.defineProperty(de,"CompletionItemKind",{enumerable:!0,get:function(){return UM.CompletionItemKind}});Object.defineProperty(de,"FileChangeTypeKind",{enumerable:!0,get:function(){return UM.FileChangeTypeKind}});var fi=Op();Object.defineProperty(de,"getASTNodeAtPosition",{enumerable:!0,get:function(){return fi.getASTNodeAtPosition}});Object.defineProperty(de,"getFragmentDependencies",{enumerable:!0,get:function(){return fi.getFragmentDependencies}});Object.defineProperty(de,"getFragmentDependenciesForAST",{enumerable:!0,get:function(){return fi.getFragmentDependenciesForAST}});Object.defineProperty(de,"getOperationASTFacts",{enumerable:!0,get:function(){return fi.getOperationASTFacts}});Object.defineProperty(de,"getOperationFacts",{enumerable:!0,get:function(){return fi.getOperationFacts}});Object.defineProperty(de,"getQueryFacts",{enumerable:!0,get:function(){return fi.getQueryFacts}});Object.defineProperty(de,"getVariablesJSONSchema",{enumerable:!0,get:function(){return fi.getVariablesJSONSchema}});Object.defineProperty(de,"offsetToPosition",{enumerable:!0,get:function(){return fi.offsetToPosition}});Object.defineProperty(de,"pointToOffset",{enumerable:!0,get:function(){return fi.pointToOffset}});Object.defineProperty(de,"Position",{enumerable:!0,get:function(){return fi.Position}});Object.defineProperty(de,"collectVariables",{enumerable:!0,get:function(){return fi.collectVariables}});Object.defineProperty(de,"validateWithCustomRules",{enumerable:!0,get:function(){return fi.validateWithCustomRules}});Object.defineProperty(de,"Range",{enumerable:!0,get:function(){return fi.Range}})});var QM=U(Vm=>{"use strict";var kZ=Vm&&Vm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Vm,"__esModule",{value:!0});var Bm=kZ(ft());vp();var GM=_c();Bm.default.registerHelper("hint","graphql",function(e,t){var r=t.schema;if(!!r){var n=e.getCursor(),a=e.getTokenAt(n),o=a.type!==null&&/"|\w/.test(a.string[0])?a.start:a.end,s=new GM.Position(n.line,o),l=(0,GM.getAutocompleteSuggestions)(r,e.getValue(),s,a,t.externalFragments),d={list:l.map(function(h){return{text:h.label,type:h.type,description:h.documentation,isDeprecated:h.isDeprecated,deprecationReason:h.deprecationReason}}),from:{line:n.line,ch:o},to:{line:n.line,ch:a.end}};return(d==null?void 0:d.list)&&d.list.length>0&&(d.from=Bm.default.Pos(d.from.line,d.from.ch),d.to=Bm.default.Pos(d.to.line,d.to.ch),Bm.default.signal(e,"hasCompletion",e,d,a)),d}})});var HM=U(Um=>{"use strict";var OZ=Um&&Um.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Um,"__esModule",{value:!0});var l1=OZ(ft()),CZ=_c(),KM=["error","warning","information","hint"],wZ={"GraphQL: Validation":"validation","GraphQL: Deprecation":"deprecation","GraphQL: Syntax":"syntax"};l1.default.registerHelper("lint","graphql",function(e,t){var r=t.schema,n=(0,CZ.getDiagnostics)(e,r,t.validationRules,void 0,t.externalFragments),a=n.map(function(o){return{message:o.message,severity:o.severity?KM[o.severity-1]:KM[0],type:o.source?wZ[o.source]:void 0,from:l1.default.Pos(o.range.start.line,o.range.start.character),to:l1.default.Pos(o.range.end.line,o.range.end.character)}});return a})});var f1=U(c1=>{"use strict";Object.defineProperty(c1,"__esModule",{value:!0});function AZ(e,t){for(var r=[],n=e;n==null?void 0:n.kind;)r.push(n),n=n.prevState;for(var a=r.length-1;a>=0;a--)t(r[a])}c1.default=AZ});var d1=U(Np=>{"use strict";var NZ=Np&&Np.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Np,"__esModule",{value:!0});var Eu=ct(),Sc=Yn(),LZ=NZ(f1());function xZ(e,t){var r={schema:e,type:null,parentType:null,inputType:null,directiveDef:null,fieldDef:null,argDef:null,argDefs:null,objectFieldDefs:null};return(0,LZ.default)(t,function(n){var a,o;switch(n.kind){case"Query":case"ShortQuery":r.type=e.getQueryType();break;case"Mutation":r.type=e.getMutationType();break;case"Subscription":r.type=e.getSubscriptionType();break;case"InlineFragment":case"FragmentDefinition":n.type&&(r.type=e.getType(n.type));break;case"Field":case"AliasedField":r.fieldDef=r.type&&n.name?zM(e,r.parentType,n.name):null,r.type=(a=r.fieldDef)===null||a===void 0?void 0:a.type;break;case"SelectionSet":r.parentType=r.type?(0,Eu.getNamedType)(r.type):null;break;case"Directive":r.directiveDef=n.name?e.getDirective(n.name):null;break;case"Arguments":var s=n.prevState?n.prevState.kind==="Field"?r.fieldDef:n.prevState.kind==="Directive"?r.directiveDef:n.prevState.kind==="AliasedField"?n.prevState.name&&zM(e,r.parentType,n.prevState.name):null:null;r.argDefs=s?s.args:null;break;case"Argument":if(r.argDef=null,r.argDefs){for(var l=0;l{"use strict";Object.defineProperty(Mi,"__esModule",{value:!0});Mi.getTypeReference=Mi.getEnumValueReference=Mi.getArgumentReference=Mi.getDirectiveReference=Mi.getFieldReference=void 0;var RZ=ct();function FZ(e){return{kind:"Field",schema:e.schema,field:e.fieldDef,type:WM(e.fieldDef)?null:e.parentType}}Mi.getFieldReference=FZ;function jZ(e){return{kind:"Directive",schema:e.schema,directive:e.directiveDef}}Mi.getDirectiveReference=jZ;function PZ(e){return e.directiveDef?{kind:"Argument",schema:e.schema,argument:e.argDef,directive:e.directiveDef}:{kind:"Argument",schema:e.schema,argument:e.argDef,field:e.fieldDef,type:WM(e.fieldDef)?null:e.parentType}}Mi.getArgumentReference=PZ;function MZ(e){return{kind:"EnumValue",value:e.enumValue||void 0,type:e.inputType?(0,RZ.getNamedType)(e.inputType):void 0}}Mi.getEnumValueReference=MZ;function qZ(e,t){return{kind:"Type",schema:e.schema,type:t||e.type}}Mi.getTypeReference=qZ;function WM(e){return e.name.slice(0,2)==="__"}});var h1=U(Gm=>{"use strict";var BZ=Gm&&Gm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Gm,"__esModule",{value:!0});var En=BZ(ft());En.default.defineOption("info",!1,function(e,t,r){if(r&&r!==En.default.Init){var n=e.state.info.onMouseOver;En.default.off(e.getWrapperElement(),"mouseover",n),clearTimeout(e.state.info.hoverTimeout),delete e.state.info}if(t){var a=e.state.info=VZ(t);a.onMouseOver=GZ.bind(null,e),En.default.on(e.getWrapperElement(),"mouseover",a.onMouseOver)}});function VZ(e){return{options:e instanceof Function?{render:e}:e===!0?{}:e}}function UZ(e){var t=e.state.info.options;return(t==null?void 0:t.hoverTime)||500}function GZ(e,t){var r=e.state.info,n=t.target||t.srcElement;if(n instanceof HTMLElement&&!(n.nodeName!=="SPAN"||r.hoverTimeout!==void 0)){var a=n.getBoundingClientRect(),o=function(){clearTimeout(r.hoverTimeout),r.hoverTimeout=setTimeout(l,d)},s=function(){En.default.off(document,"mousemove",o),En.default.off(e.getWrapperElement(),"mouseout",s),clearTimeout(r.hoverTimeout),r.hoverTimeout=void 0},l=function(){En.default.off(document,"mousemove",o),En.default.off(e.getWrapperElement(),"mouseout",s),r.hoverTimeout=void 0,QZ(e,a)},d=UZ(e);r.hoverTimeout=setTimeout(l,d),En.default.on(document,"mousemove",o),En.default.on(e.getWrapperElement(),"mouseout",s)}}function QZ(e,t){var r=e.coordsChar({left:(t.left+t.right)/2,top:(t.top+t.bottom)/2}),n=e.state.info,a=n.options,o=a.render||e.getHelper(r,"info");if(o){var s=e.getTokenAt(r,!0);if(s){var l=o(s,a,e,r);l&&KZ(e,t,l)}}}function KZ(e,t,r){var n=document.createElement("div");n.className="CodeMirror-info",n.appendChild(r),document.body.appendChild(n);var a=n.getBoundingClientRect(),o=window.getComputedStyle(n),s=a.right-a.left+parseFloat(o.marginLeft)+parseFloat(o.marginRight),l=a.bottom-a.top+parseFloat(o.marginTop)+parseFloat(o.marginBottom),d=t.bottom;l>window.innerHeight-t.bottom-15&&t.top>window.innerHeight-t.bottom&&(d=t.top-l),d<0&&(d=t.bottom);var h=Math.max(0,window.innerWidth-s-15);h>t.left&&(h=t.left),n.style.opacity="1",n.style.top=d+"px",n.style.left=h+"px";var v,b=function(){clearTimeout(v)},T=function(){clearTimeout(v),v=setTimeout(A,200)},A=function(){En.default.off(n,"mouseover",b),En.default.off(n,"mouseout",T),En.default.off(e.getWrapperElement(),"mouseout",T),n.style.opacity?(n.style.opacity="0",setTimeout(function(){n.parentNode&&n.parentNode.removeChild(n)},600)):n.parentNode&&n.parentNode.removeChild(n)};En.default.on(n,"mouseover",b),En.default.on(n,"mouseout",T),En.default.on(e.getWrapperElement(),"mouseout",T)}});var eq=U(Qm=>{"use strict";var YM=Qm&&Qm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Qm,"__esModule",{value:!0});var JM=ct(),HZ=YM(ft()),zZ=YM(d1()),Lp=p1();h1();HZ.default.registerHelper("info","graphql",function(e,t){if(!(!t.schema||!e.state)){var r=e.state,n=r.kind,a=r.step,o=(0,zZ.default)(t.schema,e.state);if(n==="Field"&&a===0&&o.fieldDef||n==="AliasedField"&&a===2&&o.fieldDef){var s=document.createElement("div");return WZ(s,o,t),xp(s,t,o.fieldDef),s}else if(n==="Directive"&&a===1&&o.directiveDef){var s=document.createElement("div");return ZM(s,o,t),xp(s,t,o.directiveDef),s}else if(n==="Argument"&&a===0&&o.argDef){var s=document.createElement("div");return YZ(s,o,t),xp(s,t,o.argDef),s}else if(n==="EnumValue"&&o.enumValue&&o.enumValue.description){var s=document.createElement("div");return JZ(s,o,t),xp(s,t,o.enumValue),s}else if(n==="NamedType"&&o.type&&o.type.description){var s=document.createElement("div");return Dc(s,o,t,o.type),xp(s,t,o.type),s}}});function WZ(e,t,r){XM(e,t,r),$M(e,t,r,t.type)}function XM(e,t,r){var n,a=((n=t.fieldDef)===null||n===void 0?void 0:n.name)||"";a.slice(0,2)!=="__"&&(Dc(e,t,r,t.parentType),di(e,".")),di(e,a,"field-name",r,(0,Lp.getFieldReference)(t))}function ZM(e,t,r){var n,a="@"+(((n=t.directiveDef)===null||n===void 0?void 0:n.name)||"");di(e,a,"directive-name",r,(0,Lp.getDirectiveReference)(t))}function YZ(e,t,r){var n;t.directiveDef?ZM(e,t,r):t.fieldDef&&XM(e,t,r);var a=((n=t.argDef)===null||n===void 0?void 0:n.name)||"";di(e,"("),di(e,a,"arg-name",r,(0,Lp.getArgumentReference)(t)),$M(e,t,r,t.inputType),di(e,")")}function $M(e,t,r,n){di(e,": "),Dc(e,t,r,n)}function JZ(e,t,r){var n,a=((n=t.enumValue)===null||n===void 0?void 0:n.name)||"";Dc(e,t,r,t.inputType),di(e,"."),di(e,a,"enum-value",r,(0,Lp.getEnumValueReference)(t))}function Dc(e,t,r,n){n instanceof JM.GraphQLNonNull?(Dc(e,t,r,n.ofType),di(e,"!")):n instanceof JM.GraphQLList?(di(e,"["),Dc(e,t,r,n.ofType),di(e,"]")):di(e,(n==null?void 0:n.name)||"","type-name",r,(0,Lp.getTypeReference)(t,n))}function xp(e,t,r){var n=r.description;if(n){var a=document.createElement("div");a.className="info-description",t.renderDescription?a.innerHTML=t.renderDescription(n):a.appendChild(document.createTextNode(n)),e.appendChild(a)}XZ(e,t,r)}function XZ(e,t,r){var n=r.deprecationReason;if(n){var a=document.createElement("div");a.className="info-deprecation",t.renderDescription?a.innerHTML=t.renderDescription(n):a.appendChild(document.createTextNode(n));var o=document.createElement("span");o.className="info-deprecation-label",o.appendChild(document.createTextNode("Deprecated: ")),a.insertBefore(o,a.firstChild),e.appendChild(a)}}function di(e,t,r,n,a){if(r===void 0&&(r=""),n===void 0&&(n={onClick:null}),a===void 0&&(a=null),r){var o=n.onClick,s=void 0;o?(s=document.createElement("a"),s.href="javascript:void 0",s.addEventListener("click",function(l){o(a,l)})):s=document.createElement("span"),s.className=r,s.appendChild(document.createTextNode(t)),e.appendChild(s)}else e.appendChild(document.createTextNode(t))}});var nq=U(Km=>{"use strict";var ZZ=Km&&Km.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Km,"__esModule",{value:!0});var qi=ZZ(ft());qi.default.defineOption("jump",!1,function(e,t,r){if(r&&r!==qi.default.Init){var n=e.state.jump.onMouseOver;qi.default.off(e.getWrapperElement(),"mouseover",n);var a=e.state.jump.onMouseOut;qi.default.off(e.getWrapperElement(),"mouseout",a),qi.default.off(document,"keydown",e.state.jump.onKeyDown),delete e.state.jump}if(t){var o=e.state.jump={options:t,onMouseOver:$Z.bind(null,e),onMouseOut:e$.bind(null,e),onKeyDown:t$.bind(null,e)};qi.default.on(e.getWrapperElement(),"mouseover",o.onMouseOver),qi.default.on(e.getWrapperElement(),"mouseout",o.onMouseOut),qi.default.on(document,"keydown",o.onKeyDown)}});function $Z(e,t){var r=t.target||t.srcElement;if(r instanceof HTMLElement&&(r==null?void 0:r.nodeName)==="SPAN"){var n=r.getBoundingClientRect(),a={left:(n.left+n.right)/2,top:(n.top+n.bottom)/2};e.state.jump.cursor=a,e.state.jump.isHoldingModifier&&tq(e)}}function e$(e){if(!e.state.jump.isHoldingModifier&&e.state.jump.cursor){e.state.jump.cursor=null;return}e.state.jump.isHoldingModifier&&e.state.jump.marker&&rq(e)}function t$(e,t){if(!(e.state.jump.isHoldingModifier||!n$(t.key))){e.state.jump.isHoldingModifier=!0,e.state.jump.cursor&&tq(e);var r=function(o){o.code===t.code&&(e.state.jump.isHoldingModifier=!1,e.state.jump.marker&&rq(e),qi.default.off(document,"keyup",r),qi.default.off(document,"click",n),e.off("mousedown",a))},n=function(o){var s=e.state.jump.destination;s&&e.state.jump.options.onClick(s,o)},a=function(o,s){e.state.jump.destination&&(s.codemirrorIgnore=!0)};qi.default.on(document,"keyup",r),qi.default.on(document,"click",n),e.on("mousedown",a)}}var r$=typeof navigator!="undefined"&&navigator&&navigator.appVersion.indexOf("Mac")!==-1;function n$(e){return e===(r$?"Meta":"Control")}function tq(e){if(!e.state.jump.marker){var t=e.state.jump.cursor,r=e.coordsChar(t),n=e.getTokenAt(r,!0),a=e.state.jump.options,o=a.getDestination||e.getHelper(r,"jump");if(o){var s=o(n,a,e);if(s){var l=e.markText({line:r.line,ch:n.start},{line:r.line,ch:n.end},{className:"CodeMirror-jump-token"});e.state.jump.marker=l,e.state.jump.destination=s}}}}function rq(e){var t=e.state.jump.marker;e.state.jump.marker=null,e.state.jump.destination=null,t.clear()}});var aq=U(Hm=>{"use strict";var iq=Hm&&Hm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Hm,"__esModule",{value:!0});var i$=iq(ft()),a$=iq(d1()),Ip=p1();nq();i$.default.registerHelper("jump","graphql",function(e,t){if(!(!t.schema||!t.onClick||!e.state)){var r=e.state,n=r.kind,a=r.step,o=(0,a$.default)(t.schema,r);if(n==="Field"&&a===0&&o.fieldDef||n==="AliasedField"&&a===2&&o.fieldDef)return(0,Ip.getFieldReference)(o);if(n==="Directive"&&a===1&&o.directiveDef)return(0,Ip.getDirectiveReference)(o);if(n==="Argument"&&a===0&&o.argDef)return(0,Ip.getArgumentReference)(o);if(n==="EnumValue"&&o.enumValue)return(0,Ip.getEnumValueReference)(o);if(n==="NamedType"&&o.type)return(0,Ip.getTypeReference)(o)}})});var oq=U(v1=>{"use strict";Object.defineProperty(v1,"__esModule",{value:!0});function o$(e,t){var r,n,a=e.levels,o=!a||a.length===0?e.indentLevel:a[a.length-1]-(((r=this.electricInput)===null||r===void 0?void 0:r.test(t))?1:0);return(o||0)*(((n=this.config)===null||n===void 0?void 0:n.indentUnit)||0)}v1.default=o$});var uq=U(Rp=>{"use strict";var u$=Rp&&Rp.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Rp,"__esModule",{value:!0});var zm=_c(),s$=u$(oq()),l$=function(e){var t=(0,zm.onlineParser)({eatWhitespace:function(r){return r.eatWhile(zm.isIgnored)},lexRules:zm.LexRules,parseRules:zm.ParseRules,editorConfig:{tabSize:e.tabSize}});return{config:e,startState:t.startState,token:t.token,indent:s$.default,electricInput:/^\s*[})\]]/,fold:"brace",lineComment:"#",closeBrackets:{pairs:'()[]{}""',explode:"()[]{}"}}};Rp.default=l$});var lq=U(Wm=>{"use strict";var sq=Wm&&Wm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Wm,"__esModule",{value:!0});var c$=sq(ft()),f$=sq(uq());c$.default.defineMode("graphql",f$.default)});var dq=U(y1=>{"use strict";Object.defineProperty(y1,"__esModule",{value:!0});function v$(e,t,r){var n=g$(r,fq(t.string));if(!!n){var a=t.type!==null&&/"|\w/.test(t.string[0])?t.start:t.end;return{list:n,from:{line:e.line,ch:a},to:{line:e.line,ch:t.end}}}}y1.default=v$;function g$(e,t){if(!t)return m1(e,function(o){return!o.isDeprecated});var r=e.map(function(o){return{proximity:m$(fq(o.text),t),entry:o}}),n=m1(m1(r,function(o){return o.proximity<=2}),function(o){return!o.entry.isDeprecated}),a=n.sort(function(o,s){return(o.entry.isDeprecated?1:0)-(s.entry.isDeprecated?1:0)||o.proximity-s.proximity||o.entry.text.length-s.entry.text.length});return a.map(function(o){return o.entry})}function m1(e,t){var r=e.filter(t);return r.length===0?e:r}function fq(e){return e.toLowerCase().replace(/\W/g,"")}function m$(e,t){var r=y$(t,e);return e.length>t.length&&(r-=e.length-t.length-1,r+=e.indexOf(t)===0?0:.5),r}function y$(e,t){var r,n,a=[],o=e.length,s=t.length;for(r=0;r<=o;r++)a[r]=[r];for(n=1;n<=s;n++)a[0][n]=n;for(r=1;r<=o;r++)for(n=1;n<=s;n++){var l=e[r-1]===t[n-1]?0:1;a[r][n]=Math.min(a[r-1][n]+1,a[r][n-1]+1,a[r-1][n-1]+l),r>1&&n>1&&e[r-1]===t[n-2]&&e[r-2]===t[n-1]&&(a[r][n]=Math.min(a[r][n],a[r-2][n-2]+l))}return a[o][s]}});var pq=U(Zm=>{"use strict";var b1=Zm&&Zm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Zm,"__esModule",{value:!0});var Xm=b1(ft()),Ba=ct(),b$=b1(f1()),kc=b1(dq());Xm.default.registerHelper("hint","graphql-variables",function(e,t){var r=e.getCursor(),n=e.getTokenAt(r),a=T$(r,n,t);return(a==null?void 0:a.list)&&a.list.length>0&&(a.from=Xm.default.Pos(a.from.line,a.from.ch),a.to=Xm.default.Pos(a.to.line,a.to.ch),Xm.default.signal(e,"hasCompletion",e,a,n)),a});function T$(e,t,r){var n=t.state.kind==="Invalid"?t.state.prevState:t.state,a=n.kind,o=n.step;if(a==="Document"&&o===0)return(0,kc.default)(e,t,[{text:"{"}]);var s=r.variableToType;if(!!s){var l=E$(s,t.state);if(a==="Document"||a==="Variable"&&o===0){var d=Object.keys(s);return(0,kc.default)(e,t,d.map(function(T){return{text:'"'.concat(T,'": '),type:s[T]}}))}if((a==="ObjectValue"||a==="ObjectField"&&o===0)&&l.fields){var h=Object.keys(l.fields).map(function(T){return l.fields[T]});return(0,kc.default)(e,t,h.map(function(T){return{text:'"'.concat(T.name,'": '),type:T.type,description:T.description}}))}if(a==="StringValue"||a==="NumberValue"||a==="BooleanValue"||a==="NullValue"||a==="ListValue"&&o===1||a==="ObjectField"&&o===2||a==="Variable"&&o===2){var v=l.type?(0,Ba.getNamedType)(l.type):void 0;if(v instanceof Ba.GraphQLInputObjectType)return(0,kc.default)(e,t,[{text:"{"}]);if(v instanceof Ba.GraphQLEnumType){var b=v.getValues();return(0,kc.default)(e,t,b.map(function(T){return{text:'"'.concat(T.name,'"'),type:v,description:T.description}}))}else if(v===Ba.GraphQLBoolean)return(0,kc.default)(e,t,[{text:"true",type:Ba.GraphQLBoolean,description:"Not false."},{text:"false",type:Ba.GraphQLBoolean,description:"Not true."}])}}}function E$(e,t){var r={type:null,fields:null};return(0,b$.default)(t,function(n){if(n.kind==="Variable")r.type=e[n.name];else if(n.kind==="ListValue"){var a=r.type?(0,Ba.getNullableType)(r.type):void 0;r.type=a instanceof Ba.GraphQLList?a.ofType:null}else if(n.kind==="ObjectValue"){var o=r.type?(0,Ba.getNamedType)(r.type):void 0;r.fields=o instanceof Ba.GraphQLInputObjectType?o.getFields():null}else if(n.kind==="ObjectField"){var s=n.name&&r.fields?r.fields[n.name]:null;r.type=s==null?void 0:s.type}}),r}});var yq=U(Cs=>{"use strict";var _$=Cs&&Cs.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Cs,"__esModule",{value:!0});Cs.JSONSyntaxError=void 0;function S$(e){Va=e,$m=e.length,Qr=_n=Fp=-1,Kr(),ty();var t=hq();return _u("EOF"),t}Cs.default=S$;var Va,$m,Qr,_n,Fp,Dt,pi;function hq(){var e=Qr,t=[];if(_u("{"),!ey("}")){do t.push(D$());while(ey(","));_u("}")}return{kind:"Object",start:e,end:Fp,members:t}}function D$(){var e=Qr,t=pi==="String"?gq():null;_u("String"),_u(":");var r=vq();return{kind:"Member",start:e,end:Fp,key:t,value:r}}function k$(){var e=Qr,t=[];if(_u("["),!ey("]")){do t.push(vq());while(ey(","));_u("]")}return{kind:"Array",start:e,end:Fp,values:t}}function vq(){switch(pi){case"[":return k$();case"{":return hq();case"String":case"Number":case"Boolean":case"Null":var e=gq();return ty(),e}_u("Value")}function gq(){return{kind:pi,start:Qr,end:_n,value:JSON.parse(Va.slice(Qr,_n))}}function _u(e){if(pi===e){ty();return}var t;if(pi==="EOF")t="[end of file]";else if(_n-Qr>1)t="`"+Va.slice(Qr,_n)+"`";else{var r=Va.slice(Qr).match(/^.+?\b/);t="`"+(r?r[0]:Va[Qr])+"`"}throw Oc("Expected ".concat(e," but found ").concat(t,"."))}var mq=function(e){_$(t,e);function t(r,n){var a=e.call(this,r)||this;return a.position=n,a}return t}(Error);Cs.JSONSyntaxError=mq;function Oc(e){return new mq(e,{start:Qr,end:_n})}function ey(e){if(pi===e)return ty(),!0}function Kr(){return _n<$m&&(_n++,Dt=_n===$m?0:Va.charCodeAt(_n)),Dt}function ty(){for(Fp=_n;Dt===9||Dt===10||Dt===13||Dt===32;)Kr();if(Dt===0){pi="EOF";return}switch(Qr=_n,Dt){case 34:return pi="String",O$();case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return pi="Number",C$();case 102:if(Va.slice(Qr,Qr+5)!=="false")break;_n+=4,Kr(),pi="Boolean";return;case 110:if(Va.slice(Qr,Qr+4)!=="null")break;_n+=3,Kr(),pi="Null";return;case 116:if(Va.slice(Qr,Qr+4)!=="true")break;_n+=3,Kr(),pi="Boolean";return}pi=Va[Qr],Kr()}function O$(){for(Kr();Dt!==34&&Dt>31;)if(Dt===92)switch(Dt=Kr(),Dt){case 34:case 47:case 92:case 98:case 102:case 110:case 114:case 116:Kr();break;case 117:Kr(),ry(),ry(),ry(),ry();break;default:throw Oc("Bad character escape sequence.")}else{if(_n===$m)throw Oc("Unterminated string.");Kr()}if(Dt===34){Kr();return}throw Oc("Unterminated string.")}function ry(){if(Dt>=48&&Dt<=57||Dt>=65&&Dt<=70||Dt>=97&&Dt<=102)return Kr();throw Oc("Expected hexadecimal digit.")}function C$(){Dt===45&&Kr(),Dt===48?Kr():T1(),Dt===46&&(Kr(),T1()),(Dt===69||Dt===101)&&(Dt=Kr(),(Dt===43||Dt===45)&&Kr(),T1())}function T1(){if(Dt<48||Dt>57)throw Oc("Expected decimal digit.");do Kr();while(Dt>=48&&Dt<=57)}});var Eq=U(Bi=>{"use strict";var w$=Bi&&Bi.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),A$=Bi&&Bi.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),N$=Bi&&Bi.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&w$(t,e,r);return A$(t,e),t},L$=Bi&&Bi.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],s;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(l){s={error:l}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return o},x$=Bi&&Bi.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Bi,"__esModule",{value:!0});var I$=x$(ft()),Cc=ct(),bq=N$(yq());I$.default.registerHelper("lint","graphql-variables",function(e,t,r){if(!e)return[];var n;try{n=(0,bq.default)(e)}catch(o){if(o instanceof bq.JSONSyntaxError)return[E1(r,o.position,o.message)];throw o}var a=t.variableToType;return a?R$(r,a,n):[]});function R$(e,t,r){var n=[];return r.members.forEach(function(a){var o;if(a){var s=(o=a.key)===null||o===void 0?void 0:o.value,l=t[s];l?jp(l,a.value).forEach(function(d){var h=L$(d,2),v=h[0],b=h[1];n.push(E1(e,v,b))}):n.push(E1(e,a.key,'Variable "$'.concat(s,'" does not appear in any GraphQL query.')))}}),n}function jp(e,t){if(!e||!t)return[];if(e instanceof Cc.GraphQLNonNull)return t.kind==="Null"?[[t,'Type "'.concat(e,'" is non-nullable and cannot be null.')]]:jp(e.ofType,t);if(t.kind==="Null")return[];if(e instanceof Cc.GraphQLList){var r=e.ofType;if(t.kind==="Array"){var n=t.values||[];return Tq(n,function(s){return jp(r,s)})}return jp(r,t)}if(e instanceof Cc.GraphQLInputObjectType){if(t.kind!=="Object")return[[t,'Type "'.concat(e,'" must be an Object.')]];var a=Object.create(null),o=Tq(t.members,function(s){var l,d=(l=s==null?void 0:s.key)===null||l===void 0?void 0:l.value;a[d]=!0;var h=e.getFields()[d];if(!h)return[[s.key,'Type "'.concat(e,'" does not have a field "').concat(d,'".')]];var v=h?h.type:void 0;return jp(v,s.value)});return Object.keys(e.getFields()).forEach(function(s){if(!a[s]){var l=e.getFields()[s].type;l instanceof Cc.GraphQLNonNull&&o.push([t,'Object of type "'.concat(e,'" is missing required field "').concat(s,'".')])}}),o}return e.name==="Boolean"&&t.kind!=="Boolean"||e.name==="String"&&t.kind!=="String"||e.name==="ID"&&t.kind!=="Number"&&t.kind!=="String"||e.name==="Float"&&t.kind!=="Number"||e.name==="Int"&&(t.kind!=="Number"||(t.value|0)!==t.value)?[[t,'Expected value of type "'.concat(e,'".')]]:(e instanceof Cc.GraphQLEnumType||e instanceof Cc.GraphQLScalarType)&&(t.kind!=="String"&&t.kind!=="Number"&&t.kind!=="Boolean"&&t.kind!=="Null"||F$(e.parseValue(t.value)))?[[t,'Expected value of type "'.concat(e,'".')]]:[]}function E1(e,t,r){return{message:r,severity:"error",type:"validation",from:e.posFromIndex(t.start),to:e.posFromIndex(t.end)}}function F$(e){return e==null||e!==e}function Tq(e,t){return Array.prototype.concat.apply([],e.map(t))}});var Sq=U(ny=>{"use strict";var j$=ny&&ny.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ny,"__esModule",{value:!0});var P$=j$(ft()),pr=_c();P$.default.defineMode("graphql-variables",function(e){var t=(0,pr.onlineParser)({eatWhitespace:function(r){return r.eatSpace()},lexRules:q$,parseRules:B$,editorConfig:{tabSize:e.tabSize}});return{config:e,startState:t.startState,token:t.token,indent:M$,electricInput:/^\s*[}\]]/,fold:"brace",closeBrackets:{pairs:'[]{}""',explode:"[]{}"}}});function M$(e,t){var r,n,a=e.levels,o=!a||a.length===0?e.indentLevel:a[a.length-1]-(((r=this.electricInput)===null||r===void 0?void 0:r.test(t))?1:0);return(o||0)*(((n=this.config)===null||n===void 0?void 0:n.indentUnit)||0)}var q$={Punctuation:/^\[|]|\{|\}|:|,/,Number:/^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,String:/^"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?/,Keyword:/^true|false|null/},B$={Document:[(0,pr.p)("{"),(0,pr.list)("Variable",(0,pr.opt)((0,pr.p)(","))),(0,pr.p)("}")],Variable:[_q("variable"),(0,pr.p)(":"),"Value"],Value:function(e){switch(e.kind){case"Number":return"NumberValue";case"String":return"StringValue";case"Punctuation":switch(e.value){case"[":return"ListValue";case"{":return"ObjectValue"}return null;case"Keyword":switch(e.value){case"true":case"false":return"BooleanValue";case"null":return"NullValue"}return null}},NumberValue:[(0,pr.t)("Number","number")],StringValue:[(0,pr.t)("String","string")],BooleanValue:[(0,pr.t)("Keyword","builtin")],NullValue:[(0,pr.t)("Keyword","keyword")],ListValue:[(0,pr.p)("["),(0,pr.list)("Value",(0,pr.opt)((0,pr.p)(","))),(0,pr.p)("]")],ObjectValue:[(0,pr.p)("{"),(0,pr.list)("ObjectField",(0,pr.opt)((0,pr.p)(","))),(0,pr.p)("}")],ObjectField:[_q("attribute"),(0,pr.p)(":"),"Value"]};function _q(e){return{style:e,match:function(t){return t.kind==="String"},update:function(t,r){t.name=r.value.slice(1,-1)}}}});var Oq=U((Dq,kq)=>{(function(e){typeof Dq=="object"&&typeof kq=="object"?e(ft()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";e.defineMode("javascript",function(t,r){var n=t.indentUnit,a=r.statementIndent,o=r.jsonld,s=r.json||o,l=r.trackScope!==!1,d=r.typescript,h=r.wordCharacters||/[\w$\xa1-\uffff]/,v=function(){function F(Sr){return{type:Sr,style:"keyword"}}var H=F("keyword a"),W=F("keyword b"),re=F("keyword c"),Me=F("keyword d"),ot=F("operator"),ht={type:"atom",style:"atom"};return{if:F("if"),while:H,with:H,else:W,do:W,try:W,finally:W,return:Me,break:Me,continue:Me,new:F("new"),delete:re,void:re,throw:re,debugger:F("debugger"),var:F("var"),const:F("var"),let:F("var"),function:F("function"),catch:F("catch"),for:F("for"),switch:F("switch"),case:F("case"),default:F("default"),in:ot,typeof:ot,instanceof:ot,true:ht,false:ht,null:ht,undefined:ht,NaN:ht,Infinity:ht,this:F("this"),class:F("class"),super:F("atom"),yield:re,export:F("export"),import:F("import"),extends:re,await:re}}(),b=/[+\-*&%=<>!?|~^@]/,T=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function A(F){for(var H=!1,W,re=!1;(W=F.next())!=null;){if(!H){if(W=="/"&&!re)return;W=="["?re=!0:re&&W=="]"&&(re=!1)}H=!H&&W=="\\"}}var L,S;function y(F,H,W){return L=F,S=W,H}function _(F,H){var W=F.next();if(W=='"'||W=="'")return H.tokenize=m(W),H.tokenize(F,H);if(W=="."&&F.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return y("number","number");if(W=="."&&F.match(".."))return y("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(W))return y(W);if(W=="="&&F.eat(">"))return y("=>","operator");if(W=="0"&&F.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return y("number","number");if(/\d/.test(W))return F.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),y("number","number");if(W=="/")return F.eat("*")?(H.tokenize=k,k(F,H)):F.eat("/")?(F.skipToEnd(),y("comment","comment")):fa(F,H,1)?(A(F),F.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),y("regexp","string-2")):(F.eat("="),y("operator","operator",F.current()));if(W=="`")return H.tokenize=w,w(F,H);if(W=="#"&&F.peek()=="!")return F.skipToEnd(),y("meta","meta");if(W=="#"&&F.eatWhile(h))return y("variable","property");if(W=="<"&&F.match("!--")||W=="-"&&F.match("->")&&!/\S/.test(F.string.slice(0,F.start)))return F.skipToEnd(),y("comment","comment");if(b.test(W))return(W!=">"||!H.lexical||H.lexical.type!=">")&&(F.eat("=")?(W=="!"||W=="=")&&F.eat("="):/[<>*+\-|&?]/.test(W)&&(F.eat(W),W==">"&&F.eat(W))),W=="?"&&F.eat(".")?y("."):y("operator","operator",F.current());if(h.test(W)){F.eatWhile(h);var re=F.current();if(H.lastType!="."){if(v.propertyIsEnumerable(re)){var Me=v[re];return y(Me.type,Me.style,re)}if(re=="async"&&F.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return y("async","keyword",re)}return y("variable","variable",re)}}function m(F){return function(H,W){var re=!1,Me;if(o&&H.peek()=="@"&&H.match(T))return W.tokenize=_,y("jsonld-keyword","meta");for(;(Me=H.next())!=null&&!(Me==F&&!re);)re=!re&&Me=="\\";return re||(W.tokenize=_),y("string","string")}}function k(F,H){for(var W=!1,re;re=F.next();){if(re=="/"&&W){H.tokenize=_;break}W=re=="*"}return y("comment","comment")}function w(F,H){for(var W=!1,re;(re=F.next())!=null;){if(!W&&(re=="`"||re=="$"&&F.eat("{"))){H.tokenize=_;break}W=!W&&re=="\\"}return y("quasi","string-2",F.current())}var C="([{}])";function D(F,H){H.fatArrowAt&&(H.fatArrowAt=null);var W=F.string.indexOf("=>",F.start);if(!(W<0)){if(d){var re=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(F.string.slice(F.start,W));re&&(W=re.index)}for(var Me=0,ot=!1,ht=W-1;ht>=0;--ht){var Sr=F.string.charAt(ht),ri=C.indexOf(Sr);if(ri>=0&&ri<3){if(!Me){++ht;break}if(--Me==0){Sr=="("&&(ot=!0);break}}else if(ri>=3&&ri<6)++Me;else if(h.test(Sr))ot=!0;else if(/["'\/`]/.test(Sr))for(;;--ht){if(ht==0)return;var qe=F.string.charAt(ht-1);if(qe==Sr&&F.string.charAt(ht-2)!="\\"){ht--;break}}else if(ot&&!Me){++ht;break}}ot&&!Me&&(H.fatArrowAt=ht)}}var R={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function M(F,H,W,re,Me,ot){this.indented=F,this.column=H,this.type=W,this.prev=Me,this.info=ot,re!=null&&(this.align=re)}function q(F,H){if(!l)return!1;for(var W=F.localVars;W;W=W.next)if(W.name==H)return!0;for(var re=F.context;re;re=re.prev)for(var W=re.vars;W;W=W.next)if(W.name==H)return!0}function z(F,H,W,re,Me){var ot=F.cc;for(Q.state=F,Q.stream=Me,Q.marked=null,Q.cc=ot,Q.style=H,F.lexical.hasOwnProperty("align")||(F.lexical.align=!0);;){var ht=ot.length?ot.pop():s?rt:Ue;if(ht(W,re)){for(;ot.length&&ot[ot.length-1].lex;)ot.pop()();return Q.marked?Q.marked:W=="variable"&&q(F,re)?"variable-2":H}}}var Q={state:null,column:null,marked:null,cc:null};function G(){for(var F=arguments.length-1;F>=0;F--)Q.cc.push(arguments[F])}function j(){return G.apply(null,arguments),!0}function ce(F,H){for(var W=H;W;W=W.next)if(W.name==F)return!0;return!1}function ke(F){var H=Q.state;if(Q.marked="def",!!l){if(H.context){if(H.lexical.info=="var"&&H.context&&H.context.block){var W=be(F,H.context);if(W!=null){H.context=W;return}}else if(!ce(F,H.localVars)){H.localVars=new Ve(F,H.localVars);return}}r.globalVars&&!ce(F,H.globalVars)&&(H.globalVars=new Ve(F,H.globalVars))}}function be(F,H){if(H)if(H.block){var W=be(F,H.prev);return W?W==H.prev?H:new we(W,H.vars,!0):null}else return ce(F,H.vars)?H:new we(H.prev,new Ve(F,H.vars),!1);else return null}function Ce(F){return F=="public"||F=="private"||F=="protected"||F=="abstract"||F=="readonly"}function we(F,H,W){this.prev=F,this.vars=H,this.block=W}function Ve(F,H){this.name=F,this.next=H}var pt=new Ve("this",new Ve("arguments",null));function Je(){Q.state.context=new we(Q.state.context,Q.state.localVars,!1),Q.state.localVars=pt}function wt(){Q.state.context=new we(Q.state.context,Q.state.localVars,!0),Q.state.localVars=null}Je.lex=wt.lex=!0;function Mt(){Q.state.localVars=Q.state.context.vars,Q.state.context=Q.state.context.prev}Mt.lex=!0;function Ie(F,H){var W=function(){var re=Q.state,Me=re.indented;if(re.lexical.type=="stat")Me=re.lexical.indented;else for(var ot=re.lexical;ot&&ot.type==")"&&ot.align;ot=ot.prev)Me=ot.indented;re.lexical=new M(Me,Q.stream.column(),F,null,re.lexical,H)};return W.lex=!0,W}function De(){var F=Q.state;F.lexical.prev&&(F.lexical.type==")"&&(F.indented=F.lexical.indented),F.lexical=F.lexical.prev)}De.lex=!0;function Pe(F){function H(W){return W==F?j():F==";"||W=="}"||W==")"||W=="]"?G():j(H)}return H}function Ue(F,H){return F=="var"?j(Ie("vardef",H),J,Pe(";"),De):F=="keyword a"?j(Ie("form"),Nr,Ue,De):F=="keyword b"?j(Ie("form"),Ue,De):F=="keyword d"?Q.stream.match(/^\s*$/,!1)?j():j(Ie("stat"),oe,Pe(";"),De):F=="debugger"?j(Pe(";")):F=="{"?j(Ie("}"),wt,yi,De,Mt):F==";"?j():F=="if"?(Q.state.lexical.info=="else"&&Q.state.cc[Q.state.cc.length-1]==De&&Q.state.cc.pop()(),j(Ie("form"),Nr,Ue,De,It)):F=="function"?j(_r):F=="for"?j(Ie("form"),wt,kt,Ue,Mt,De):F=="class"||d&&H=="interface"?(Q.marked="keyword",j(Ie("form",F=="class"?F:H),Kp,De)):F=="variable"?d&&H=="declare"?(Q.marked="keyword",j(Ue)):d&&(H=="module"||H=="enum"||H=="type")&&Q.stream.match(/^\s*\w/,!1)?(Q.marked="keyword",H=="enum"?j(Is):H=="type"?j(Ki,Pe("operator"),ge,Pe(";")):j(Ie("form"),B,Pe("{"),Ie("}"),yi,De,De)):d&&H=="namespace"?(Q.marked="keyword",j(Ie("form"),rt,Ue,De)):d&&H=="abstract"?(Q.marked="keyword",j(Ue)):j(Ie("stat"),mi):F=="switch"?j(Ie("form"),Nr,Pe("{"),Ie("}","switch"),wt,yi,De,De,Mt):F=="case"?j(rt,Pe(":")):F=="default"?j(Pe(":")):F=="catch"?j(Ie("form"),Je,Gi,Ue,De,Mt):F=="export"?j(Ie("stat"),Eo,De):F=="import"?j(Ie("stat"),za,De):F=="async"?j(Ue):H=="@"?j(rt,Ue):G(Ie("stat"),rt,Pe(";"),De)}function Gi(F){if(F=="(")return j(fn,Pe(")"))}function rt(F,H){return $r(F,H,!1)}function ut(F,H){return $r(F,H,!0)}function Nr(F){return F!="("?G():j(Ie(")"),oe,Pe(")"),De)}function $r(F,H,W){if(Q.state.fatArrowAt==Q.stream.start){var re=W?nt:Ze;if(F=="(")return j(Je,Ie(")"),qt(fn,")"),De,Pe("=>"),re,Mt);if(F=="variable")return G(Je,B,Pe("=>"),re,Mt)}var Me=W?fe:Se;return R.hasOwnProperty(F)?j(Me):F=="function"?j(_r,Me):F=="class"||d&&H=="interface"?(Q.marked="keyword",j(Ie("form"),Hi,De)):F=="keyword c"||F=="async"?j(W?ut:rt):F=="("?j(Ie(")"),oe,Pe(")"),De,Me):F=="operator"||F=="spread"?j(W?ut:rt):F=="["?j(Ie("]"),Wa,De,Me):F=="{"?On(ca,"}",null,Me):F=="quasi"?G(ue,Me):F=="new"?j(at(W)):j()}function oe(F){return F.match(/[;\}\)\],]/)?G():G(rt)}function Se(F,H){return F==","?j(oe):fe(F,H,!1)}function fe(F,H,W){var re=W==!1?Se:fe,Me=W==!1?rt:ut;if(F=="=>")return j(Je,W?nt:Ze,Mt);if(F=="operator")return/\+\+|--/.test(H)||d&&H=="!"?j(re):d&&H=="<"&&Q.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?j(Ie(">"),qt(ge,">"),De,re):H=="?"?j(rt,Pe(":"),Me):j(Me);if(F=="quasi")return G(ue,re);if(F!=";"){if(F=="(")return On(ut,")","call",re);if(F==".")return j(Qa,re);if(F=="[")return j(Ie("]"),oe,Pe("]"),De,re);if(d&&H=="as")return Q.marked="keyword",j(ge,re);if(F=="regexp")return Q.state.lastType=Q.marked="operator",Q.stream.backUp(Q.stream.pos-Q.stream.start-1),j(Me)}}function ue(F,H){return F!="quasi"?G():H.slice(H.length-2)!="${"?j(ue):j(oe,Ge)}function Ge(F){if(F=="}")return Q.marked="string-2",Q.state.tokenize=w,j(ue)}function Ze(F){return D(Q.stream,Q.state),G(F=="{"?Ue:rt)}function nt(F){return D(Q.stream,Q.state),G(F=="{"?Ue:ut)}function at(F){return function(H){return H=="."?j(F?la:Qi):H=="variable"&&d?j(ee,F?fe:Se):G(F?ut:rt)}}function Qi(F,H){if(H=="target")return Q.marked="keyword",j(Se)}function la(F,H){if(H=="target")return Q.marked="keyword",j(fe)}function mi(F){return F==":"?j(De,Ue):G(Se,Pe(";"),De)}function Qa(F){if(F=="variable")return Q.marked="property",j()}function ca(F,H){if(F=="async")return Q.marked="property",j(ca);if(F=="variable"||Q.style=="keyword"){if(Q.marked="property",H=="get"||H=="set")return j(Ka);var W;return d&&Q.state.fatArrowAt==Q.stream.start&&(W=Q.stream.match(/^\s*:\s*/,!1))&&(Q.state.fatArrowAt=Q.stream.pos+W[0].length),j(kn)}else{if(F=="number"||F=="string")return Q.marked=o?"property":Q.style+" property",j(kn);if(F=="jsonld-keyword")return j(kn);if(d&&Ce(H))return Q.marked="keyword",j(ca);if(F=="[")return j(rt,qn,Pe("]"),kn);if(F=="spread")return j(ut,kn);if(H=="*")return Q.marked="keyword",j(ca);if(F==":")return G(kn)}}function Ka(F){return F!="variable"?G(kn):(Q.marked="property",j(_r))}function kn(F){if(F==":")return j(ut);if(F=="(")return G(_r)}function qt(F,H,W){function re(Me,ot){if(W?W.indexOf(Me)>-1:Me==","){var ht=Q.state.lexical;return ht.info=="call"&&(ht.pos=(ht.pos||0)+1),j(function(Sr,ri){return Sr==H||ri==H?G():G(F)},re)}return Me==H||ot==H?j():W&&W.indexOf(";")>-1?G(F):j(Pe(H))}return function(Me,ot){return Me==H||ot==H?j():G(F,re)}}function On(F,H,W){for(var re=3;re"),ge);if(F=="quasi")return G(zt,zr)}function ku(F){if(F=="=>")return j(ge)}function Tr(F){return F.match(/[\}\)\]]/)?j():F==","||F==";"?j(Tr):G(At,Tr)}function At(F,H){if(F=="variable"||Q.style=="keyword")return Q.marked="property",j(At);if(H=="?"||F=="number"||F=="string")return j(At);if(F==":")return j(ge);if(F=="[")return j(Pe("variable"),Pc,Pe("]"),At);if(F=="(")return G(He,At);if(!F.match(/[;\}\)\],]/))return j()}function zt(F,H){return F!="quasi"?G():H.slice(H.length-2)!="${"?j(zt):j(ge,Ls)}function Ls(F){if(F=="}")return Q.marked="string-2",Q.state.tokenize=w,j(zt)}function Hr(F,H){return F=="variable"&&Q.stream.match(/^\s*[?:]/,!1)||H=="?"?j(Hr):F==":"?j(ge):F=="spread"?j(Hr):G(ge)}function zr(F,H){if(H=="<")return j(Ie(">"),qt(ge,">"),De,zr);if(H=="|"||F=="."||H=="&")return j(ge);if(F=="[")return j(ge,Pe("]"),zr);if(H=="extends"||H=="implements")return Q.marked="keyword",j(ge);if(H=="?")return j(ge,Pe(":"),ge)}function ee(F,H){if(H=="<")return j(Ie(">"),qt(ge,">"),De,zr)}function P(){return G(ge,Y)}function Y(F,H){if(H=="=")return j(ge)}function J(F,H){return H=="enum"?(Q.marked="keyword",j(Is)):G(B,qn,ie,Qe)}function B(F,H){if(d&&Ce(H))return Q.marked="keyword",j(B);if(F=="variable")return ke(H),j();if(F=="spread")return j(B);if(F=="[")return On(te,"]");if(F=="{")return On(I,"}")}function I(F,H){return F=="variable"&&!Q.stream.match(/^\s*:/,!1)?(ke(H),j(ie)):(F=="variable"&&(Q.marked="property"),F=="spread"?j(B):F=="}"?G():F=="["?j(rt,Pe("]"),Pe(":"),I):j(Pe(":"),B,ie))}function te(){return G(B,ie)}function ie(F,H){if(H=="=")return j(ut)}function Qe(F){if(F==",")return j(J)}function It(F,H){if(F=="keyword b"&&H=="else")return j(Ie("form","else"),Ue,De)}function kt(F,H){if(H=="await")return j(kt);if(F=="(")return j(Ie(")"),en,De)}function en(F){return F=="var"?j(J,Er):F=="variable"?j(Er):G(Er)}function Er(F,H){return F==")"?j():F==";"?j(Er):H=="in"||H=="of"?(Q.marked="keyword",j(rt,Er)):G(rt,Er)}function _r(F,H){if(H=="*")return Q.marked="keyword",j(_r);if(F=="variable")return ke(H),j(_r);if(F=="(")return j(Je,Ie(")"),qt(fn,")"),De,Bn,Ue,Mt);if(d&&H=="<")return j(Ie(">"),qt(P,">"),De,_r)}function He(F,H){if(H=="*")return Q.marked="keyword",j(He);if(F=="variable")return ke(H),j(He);if(F=="(")return j(Je,Ie(")"),qt(fn,")"),De,Bn,Mt);if(d&&H=="<")return j(Ie(">"),qt(P,">"),De,He)}function Ki(F,H){if(F=="keyword"||F=="variable")return Q.marked="type",j(Ki);if(H=="<")return j(Ie(">"),qt(P,">"),De)}function fn(F,H){return H=="@"&&j(rt,fn),F=="spread"?j(fn):d&&Ce(H)?(Q.marked="keyword",j(fn)):d&&F=="this"?j(qn,ie):G(B,qn,ie)}function Hi(F,H){return F=="variable"?Kp(F,H):xs(F,H)}function Kp(F,H){if(F=="variable")return ke(H),j(xs)}function xs(F,H){if(H=="<")return j(Ie(">"),qt(P,">"),De,xs);if(H=="extends"||H=="implements"||d&&F==",")return H=="implements"&&(Q.marked="keyword"),j(d?ge:rt,xs);if(F=="{")return j(Ie("}"),Vn,De)}function Vn(F,H){if(F=="async"||F=="variable"&&(H=="static"||H=="get"||H=="set"||d&&Ce(H))&&Q.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return Q.marked="keyword",j(Vn);if(F=="variable"||Q.style=="keyword")return Q.marked="property",j(Ha,Vn);if(F=="number"||F=="string")return j(Ha,Vn);if(F=="[")return j(rt,qn,Pe("]"),Ha,Vn);if(H=="*")return Q.marked="keyword",j(Vn);if(d&&F=="(")return G(He,Vn);if(F==";"||F==",")return j(Vn);if(F=="}")return j();if(H=="@")return j(rt,Vn)}function Ha(F,H){if(H=="!"||H=="?")return j(Ha);if(F==":")return j(ge,ie);if(H=="=")return j(ut);var W=Q.state.lexical.prev,re=W&&W.info=="interface";return G(re?He:_r)}function Eo(F,H){return H=="*"?(Q.marked="keyword",j(Ae,Pe(";"))):H=="default"?(Q.marked="keyword",j(rt,Pe(";"))):F=="{"?j(qt(Hp,"}"),Ae,Pe(";")):G(Ue)}function Hp(F,H){if(H=="as")return Q.marked="keyword",j(Pe("variable"));if(F=="variable")return G(ut,Hp)}function za(F){return F=="string"?j():F=="("?G(rt):F=="."?G(Se):G(_o,Mc,Ae)}function _o(F,H){return F=="{"?On(_o,"}"):(F=="variable"&&ke(H),H=="*"&&(Q.marked="keyword"),j(ir))}function Mc(F){if(F==",")return j(_o,Mc)}function ir(F,H){if(H=="as")return Q.marked="keyword",j(_o)}function Ae(F,H){if(H=="from")return Q.marked="keyword",j(rt)}function Wa(F){return F=="]"?j():G(qt(ut,"]"))}function Is(){return G(Ie("form"),B,Pe("{"),Ie("}"),qt(bi,"}"),De,De)}function bi(){return G(B,ie)}function yt(F,H){return F.lastType=="operator"||F.lastType==","||b.test(H.charAt(0))||/[,.]/.test(H.charAt(0))}function fa(F,H,W){return H.tokenize==_&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(H.lastType)||H.lastType=="quasi"&&/\{\s*$/.test(F.string.slice(0,F.pos-(W||0)))}return{startState:function(F){var H={tokenize:_,lastType:"sof",cc:[],lexical:new M((F||0)-n,0,"block",!1),localVars:r.localVars,context:r.localVars&&new we(null,null,!1),indented:F||0};return r.globalVars&&typeof r.globalVars=="object"&&(H.globalVars=r.globalVars),H},token:function(F,H){if(F.sol()&&(H.lexical.hasOwnProperty("align")||(H.lexical.align=!1),H.indented=F.indentation(),D(F,H)),H.tokenize!=k&&F.eatSpace())return null;var W=H.tokenize(F,H);return L=="comment"?W:(H.lastType=L=="operator"&&(S=="++"||S=="--")?"incdec":L,z(H,W,L,S,F))},indent:function(F,H){if(F.tokenize==k||F.tokenize==w)return e.Pass;if(F.tokenize!=_)return 0;var W=H&&H.charAt(0),re=F.lexical,Me;if(!/^\s*else\b/.test(H))for(var ot=F.cc.length-1;ot>=0;--ot){var ht=F.cc[ot];if(ht==De)re=re.prev;else if(ht!=It&&ht!=Mt)break}for(;(re.type=="stat"||re.type=="form")&&(W=="}"||(Me=F.cc[F.cc.length-1])&&(Me==Se||Me==fe)&&!/^[,\.=+\-*:?[\(]/.test(H));)re=re.prev;a&&re.type==")"&&re.prev.type=="stat"&&(re=re.prev);var Sr=re.type,ri=W==Sr;return Sr=="vardef"?re.indented+(F.lastType=="operator"||F.lastType==","?re.info.length+1:0):Sr=="form"&&W=="{"?re.indented:Sr=="form"?re.indented+n:Sr=="stat"?re.indented+(yt(F,H)?a||n:0):re.info=="switch"&&!ri&&r.doubleIndentSwitch!=!1?re.indented+(/^(?:case|default)\b/.test(H)?n:2*n):re.align?re.column+(ri?0:1):re.indented+(ri?0:n)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:s?null:"/*",blockCommentEnd:s?null:"*/",blockCommentContinue:s?null:" * ",lineComment:s?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:s?"json":"javascript",jsonldMode:o,jsonMode:s,expressionAllowed:fa,skipExpression:function(F){z(F,"atom","atom","true",new e.StringStream("",2,null))}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})})});var Cq=U(ay=>{"use strict";var G$=ay&&ay.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ay,"__esModule",{value:!0});var Q$=G$(ft()),br=_c();Q$.default.defineMode("graphql-results",function(e){var t=(0,br.onlineParser)({eatWhitespace:function(r){return r.eatSpace()},lexRules:H$,parseRules:z$,editorConfig:{tabSize:e.tabSize}});return{config:e,startState:t.startState,token:t.token,indent:K$,electricInput:/^\s*[}\]]/,fold:"brace",closeBrackets:{pairs:'[]{}""',explode:"[]{}"}}});function K$(e,t){var r,n,a=e.levels,o=!a||a.length===0?e.indentLevel:a[a.length-1]-(((r=this.electricInput)===null||r===void 0?void 0:r.test(t))?1:0);return(o||0)*(((n=this.config)===null||n===void 0?void 0:n.indentUnit)||0)}var H$={Punctuation:/^\[|]|\{|\}|:|,/,Number:/^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,String:/^"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?/,Keyword:/^true|false|null/},z$={Document:[(0,br.p)("{"),(0,br.list)("Entry",(0,br.p)(",")),(0,br.p)("}")],Entry:[(0,br.t)("String","def"),(0,br.p)(":"),"Value"],Value:function(e){switch(e.kind){case"Number":return"NumberValue";case"String":return"StringValue";case"Punctuation":switch(e.value){case"[":return"ListValue";case"{":return"ObjectValue"}return null;case"Keyword":switch(e.value){case"true":case"false":return"BooleanValue";case"null":return"NullValue"}return null}},NumberValue:[(0,br.t)("Number","number")],StringValue:[(0,br.t)("String","string")],BooleanValue:[(0,br.t)("Keyword","builtin")],NullValue:[(0,br.t)("Keyword","keyword")],ListValue:[(0,br.p)("["),(0,br.list)("Value",(0,br.p)(",")),(0,br.p)("]")],ObjectValue:[(0,br.p)("{"),(0,br.list)("ObjectField",(0,br.p)(",")),(0,br.p)("}")],ObjectField:[(0,br.t)("String","property"),(0,br.p)(":"),"Value"]}});var o3=U((cse,a3)=>{a3.exports=xc;function xc(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}xc.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),r=Math.floor(t*this.jitter*e);e=(Math.floor(t*10)&1)==0?e-r:e+r}return Math.min(e,this.max)|0};xc.prototype.reset=function(){this.attempts=0};xc.prototype.setMin=function(e){this.ms=e};xc.prototype.setMax=function(e){this.max=e};xc.prototype.setJitter=function(e){this.jitter=e}});var s3=U((fse,W1)=>{"use strict";var Fee=Object.prototype.hasOwnProperty,Pn="~";function Qp(){}Object.create&&(Qp.prototype=Object.create(null),new Qp().__proto__||(Pn=!1));function jee(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function u3(e,t,r,n,a){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new jee(r,n||e,a),s=Pn?Pn+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],o]:e._events[s].push(o):(e._events[s]=o,e._eventsCount++),e}function dy(e,t){--e._eventsCount==0?e._events=new Qp:delete e._events[t]}function Dn(){this._events=new Qp,this._eventsCount=0}Dn.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)Fee.call(r,n)&&t.push(Pn?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};Dn.prototype.listeners=function(t){var r=Pn?Pn+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,o=n.length,s=new Array(o);a{"use strict";Object.defineProperty(Y1,"__esModule",{value:!0});function Pee(e){return typeof e=="string"}Y1.default=Pee});var c3=U(J1=>{"use strict";Object.defineProperty(J1,"__esModule",{value:!0});function Mee(e){return e!==null&&typeof e=="object"}J1.default=Mee});var f3=U(X1=>{"use strict";Object.defineProperty(X1,"__esModule",{value:!0});X1.default=qee;function qee(e){var t,r=e.Symbol;return typeof r=="function"?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}});var d3=U((Z1,$1)=>{"use strict";Object.defineProperty(Z1,"__esModule",{value:!0});var Bee=f3(),Vee=Uee(Bee);function Uee(e){return e&&e.__esModule?e:{default:e}}var Ic;typeof self!="undefined"?Ic=self:typeof window!="undefined"||typeof window!="undefined"?Ic=window:typeof $1!="undefined"?Ic=$1:Ic=Function("return this")();var Gee=(0,Vee.default)(Ic);Z1.default=Gee});var p3=U(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});Rc.GRAPHQL_SUBSCRIPTIONS=Rc.GRAPHQL_WS=void 0;var Qee="graphql-ws";Rc.GRAPHQL_WS=Qee;var Kee="graphql-subscriptions";Rc.GRAPHQL_SUBSCRIPTIONS=Kee});var h3=U(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});Fc.WS_TIMEOUT=Fc.MIN_WS_TIMEOUT=void 0;var Hee=1e3;Fc.MIN_WS_TIMEOUT=Hee;var zee=3e4;Fc.WS_TIMEOUT=zee});var v3=U(ek=>{"use strict";Object.defineProperty(ek,"__esModule",{value:!0});var Wee=function(){function e(){throw new Error("Static Class")}return e.GQL_CONNECTION_INIT="connection_init",e.GQL_CONNECTION_ACK="connection_ack",e.GQL_CONNECTION_ERROR="connection_error",e.GQL_CONNECTION_KEEP_ALIVE="ka",e.GQL_CONNECTION_TERMINATE="connection_terminate",e.GQL_START="start",e.GQL_DATA="data",e.GQL_ERROR="error",e.GQL_COMPLETE="complete",e.GQL_STOP="stop",e.SUBSCRIPTION_START="subscription_start",e.SUBSCRIPTION_DATA="subscription_data",e.SUBSCRIPTION_SUCCESS="subscription_success",e.SUBSCRIPTION_FAIL="subscription_fail",e.SUBSCRIPTION_END="subscription_end",e.INIT="init",e.INIT_SUCCESS="init_success",e.INIT_FAIL="init_fail",e.KEEP_ALIVE="keepalive",e}();ek.default=Wee});var E3=U(Ui=>{"use strict";var jc=Ui&&Ui.__assign||function(){return jc=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&o[o.length-1])&&(h[0]===6||h[0]===2)){r=0;continue}if(h[0]===3&&(!o||h[1]>o[0]&&h[1]0){var v=s.shift();v&&v.applyMiddleware.apply(l,[t,d])}else n(t)};d()};o(g3(r.middlewares),r)})},e.prototype.use=function(t){var r=this;return t.map(function(n){if(typeof n.applyMiddleware=="function")r.middlewares.push(n);else throw new Error("Middleware must implement the applyMiddleware function.")}),this},e.prototype.getConnectionParams=function(t){return function(){return new Promise(function(r,n){if(typeof t=="function")try{return r(t.call(null))}catch(a){return n(a)}r(t)})}},e.prototype.executeOperation=function(t,r){var n=this;this.client===null&&this.connect();var a=this.generateOperationId();return this.operations[a]={options:t,handler:r},this.applyMiddlewares(t).then(function(o){n.checkOperationOptions(o,r),n.operations[a]&&(n.operations[a]={options:o,handler:r},n.sendMessage(a,Mn.default.GQL_START,o))}).catch(function(o){n.unsubscribe(a),r(n.formatErrors(o))}),a},e.prototype.getObserver=function(t,r,n){return typeof t=="function"?{next:function(a){return t(a)},error:function(a){return r&&r(a)},complete:function(){return n&&n()}}:t},e.prototype.createMaxConnectTimeGenerator=function(){var t=this.minWsTimeout,r=this.wsTimeout;return new y3({min:t,max:r,factor:1.2})},e.prototype.clearCheckConnectionInterval=function(){this.checkConnectionIntervalId&&(clearInterval(this.checkConnectionIntervalId),this.checkConnectionIntervalId=null)},e.prototype.clearMaxConnectTimeout=function(){this.maxConnectTimeoutId&&(clearTimeout(this.maxConnectTimeoutId),this.maxConnectTimeoutId=null)},e.prototype.clearTryReconnectTimeout=function(){this.tryReconnectTimeoutId&&(clearTimeout(this.tryReconnectTimeoutId),this.tryReconnectTimeoutId=null)},e.prototype.clearInactivityTimeout=function(){this.inactivityTimeoutId&&(clearTimeout(this.inactivityTimeoutId),this.inactivityTimeoutId=null)},e.prototype.setInactivityTimeout=function(){var t=this;this.inactivityTimeout>0&&Object.keys(this.operations).length===0&&(this.inactivityTimeoutId=setTimeout(function(){Object.keys(t.operations).length===0&&t.close()},this.inactivityTimeout))},e.prototype.checkOperationOptions=function(t,r){var n=t.query,a=t.variables,o=t.operationName;if(!n)throw new Error("Must provide a query.");if(!r)throw new Error("Must provide an handler.");if(!b3.default(n)&&!tte.getOperationAST(n,o)||o&&!b3.default(o)||a&&!$ee.default(a))throw new Error("Incorrect option types. query must be a string or a document,`operationName` must be a string, and `variables` must be an object.")},e.prototype.buildMessage=function(t,r,n){var a=n&&n.query?jc(jc({},n),{query:typeof n.query=="string"?n.query:ete.print(n.query)}):n;return{id:t,type:r,payload:a}},e.prototype.formatErrors=function(t){return Array.isArray(t)?t:t&&t.errors?this.formatErrors(t.errors):t&&t.message?[t]:[{name:"FormatedError",message:"Unknown error",originalError:t}]},e.prototype.sendMessage=function(t,r,n){this.sendMessageRaw(this.buildMessage(t,r,n))},e.prototype.sendMessageRaw=function(t){switch(this.status){case this.wsImpl.OPEN:var r=JSON.stringify(t);try{JSON.parse(r)}catch(n){this.eventEmitter.emit("error",new Error("Message must be JSON-serializable. Got: "+t))}this.client.send(r);break;case this.wsImpl.CONNECTING:this.unsentMessagesQueue.push(t);break;default:this.reconnecting||this.eventEmitter.emit("error",new Error("A message was not sent because socket is not connected, is closing or is already closed. Message was: "+JSON.stringify(t)))}},e.prototype.generateOperationId=function(){return String(++this.nextOperationId)},e.prototype.tryReconnect=function(){var t=this;if(!(!this.reconnect||this.backoff.attempts>=this.reconnectionAttempts)){this.reconnecting||(Object.keys(this.operations).forEach(function(n){t.unsentMessagesQueue.push(t.buildMessage(n,Mn.default.GQL_START,t.operations[n].options))}),this.reconnecting=!0),this.clearTryReconnectTimeout();var r=this.backoff.duration();this.tryReconnectTimeoutId=setTimeout(function(){t.connect()},r)}},e.prototype.flushUnsentMessagesQueue=function(){var t=this;this.unsentMessagesQueue.forEach(function(r){t.sendMessageRaw(r)}),this.unsentMessagesQueue=[]},e.prototype.checkConnection=function(){if(this.wasKeepAliveReceived){this.wasKeepAliveReceived=!1;return}this.reconnecting||this.close(!1,!0)},e.prototype.checkMaxConnectTimeout=function(){var t=this;this.clearMaxConnectTimeout(),this.maxConnectTimeoutId=setTimeout(function(){t.status!==t.wsImpl.OPEN&&(t.reconnecting=!0,t.close(!1,!0))},this.maxConnectTimeGenerator.duration())},e.prototype.connect=function(){var t,r=this;this.client=new((t=this.wsImpl).bind.apply(t,g3([void 0,this.url,this.wsProtocols],this.wsOptionArguments))),this.checkMaxConnectTimeout(),this.client.onopen=function(){return Yee(r,void 0,void 0,function(){var n,a;return Jee(this,function(o){switch(o.label){case 0:if(this.status!==this.wsImpl.OPEN)return[3,4];this.clearMaxConnectTimeout(),this.closedByUser=!1,this.eventEmitter.emit(this.reconnecting?"reconnecting":"connecting"),o.label=1;case 1:return o.trys.push([1,3,,4]),[4,this.connectionParams()];case 2:return n=o.sent(),this.sendMessage(void 0,Mn.default.GQL_CONNECTION_INIT,n),this.flushUnsentMessagesQueue(),[3,4];case 3:return a=o.sent(),this.sendMessage(void 0,Mn.default.GQL_CONNECTION_ERROR,a),this.flushUnsentMessagesQueue(),[3,4];case 4:return[2]}})})},this.client.onclose=function(){r.closedByUser||r.close(!1,!1)},this.client.onerror=function(n){r.eventEmitter.emit("error",n)},this.client.onmessage=function(n){var a=n.data;r.processReceivedData(a)}},e.prototype.processReceivedData=function(t){var r,n;try{r=JSON.parse(t),n=r.id}catch(l){throw new Error("Message must be JSON-parseable. Got: "+t)}if([Mn.default.GQL_DATA,Mn.default.GQL_COMPLETE,Mn.default.GQL_ERROR].indexOf(r.type)!==-1&&!this.operations[n]){this.unsubscribe(n);return}switch(r.type){case Mn.default.GQL_CONNECTION_ERROR:this.connectionCallback&&this.connectionCallback(r.payload);break;case Mn.default.GQL_CONNECTION_ACK:this.eventEmitter.emit(this.reconnecting?"reconnected":"connected",r.payload),this.reconnecting=!1,this.backoff.reset(),this.maxConnectTimeGenerator.reset(),this.connectionCallback&&this.connectionCallback();break;case Mn.default.GQL_COMPLETE:var a=this.operations[n].handler;delete this.operations[n],a.call(this,null,null);break;case Mn.default.GQL_ERROR:this.operations[n].handler(this.formatErrors(r.payload),null),delete this.operations[n];break;case Mn.default.GQL_DATA:var o=r.payload.errors?jc(jc({},r.payload),{errors:this.formatErrors(r.payload.errors)}):r.payload;this.operations[n].handler(null,o);break;case Mn.default.GQL_CONNECTION_KEEP_ALIVE:var s=typeof this.wasKeepAliveReceived=="undefined";this.wasKeepAliveReceived=!0,s&&this.checkConnection(),this.checkConnectionIntervalId&&(clearInterval(this.checkConnectionIntervalId),this.checkConnection()),this.checkConnectionIntervalId=setInterval(this.checkConnection.bind(this),this.wsTimeout);break;default:throw new Error("Invalid message type!")}},e.prototype.unsubscribe=function(t){this.operations[t]&&(delete this.operations[t],this.setInactivityTimeout(),this.sendMessage(t,Mn.default.GQL_STOP,void 0))},e}();Ui.SubscriptionClient=ite});var ate=Ye(Bt()),ote=Ye(ST());var $e=Ye(Bt()),sa=Ye(ct()),zq=Ye(iR());var lm=Ye(ct()),aD=Ye(iD());var oD=(e,t)=>{if(!t)return[];let r=new Map,n=new Set;(0,lm.visit)(e,{FragmentDefinition(s){r.set(s.name.value,!0)},FragmentSpread(s){n.has(s.name.value)||n.add(s.name.value)}});let a=new Set;n.forEach(s=>{!r.has(s)&&t.has(s)&&a.add((0,aD.default)(t.get(s)))});let o=[];return a.forEach(s=>{(0,lm.visit)(s,{FragmentSpread(l){!n.has(l.name.value)&&t.get(l.name.value)&&(a.add((0,aD.default)(t.get(l.name.value))),n.add(l.name.value))}}),r.has(s.name.value)||o.push(s)}),o};var yo=Ye(Bt()),qW=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),oR=function(e){qW(t,e);function t(r){var n=e.call(this,r)||this;return n._onClick=function(){n.props.isRunning?n.props.onStop():n.props.onRun()},n._onOptionSelected=function(a){n.setState({optionsOpen:!1}),n.props.onRun(a.name&&a.name.value)},n._onOptionsOpen=function(a){var o=!0,s=a.currentTarget;n.setState({highlight:null,optionsOpen:!0});var l=function(d){var h;if(o&&d.target===s)o=!1;else{document.removeEventListener("mouseup",l),l=null;var v=d.currentTarget&&((h=s.parentNode)===null||h===void 0?void 0:h.compareDocumentPosition(d.currentTarget))&&Node.DOCUMENT_POSITION_CONTAINED_BY;v||n.setState({optionsOpen:!1})}};document.addEventListener("mouseup",l)},n.state={optionsOpen:!1,highlight:null},n}return t.prototype.render=function(){var r=this,n=this.props.operations||[],a=this.state.optionsOpen,o=n&&n.length>1,s=null;if(o&&a){var l=this.state.highlight;s=yo.default.createElement("ul",{className:"execute-options"},n.map(function(b,T){var A=b.name?b.name.value:"";return yo.default.createElement("li",{key:A+"-"+T,className:b===l?"selected":void 0,onMouseOver:function(){return r.setState({highlight:b})},onMouseOut:function(){return r.setState({highlight:null})},onMouseUp:function(){return r._onOptionSelected(b)}},A)}))}var d;(this.props.isRunning||!o)&&(d=this._onClick);var h=function(){};!this.props.isRunning&&o&&!a&&(h=this._onOptionsOpen);var v=this.props.isRunning?yo.default.createElement("path",{d:"M 10 10 L 23 10 L 23 23 L 10 23 z"}):yo.default.createElement("path",{d:"M 11 9 L 24 16 L 11 23 z"});return yo.default.createElement("div",{className:"execute-button-wrap"},yo.default.createElement("button",{type:"button",className:"execute-button",onMouseDown:h,onClick:d,title:"Execute Query (Ctrl-Enter)"},yo.default.createElement("svg",{width:"34",height:"34"},v)),s)},t}(yo.default.Component);var lp=Ye(Bt()),BW=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();function uR(e){if(e.type==="string"){var t=e.string.slice(1).slice(0,-1).trim();try{var r=window.location;return new URL(t,r.protocol+"//"+r.host)}catch(n){return}}}function VW(e){return/(bmp|gif|jpeg|jpg|png|svg)$/.test(e.pathname)}var sR=function(e){BW(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._node=null,r.state={width:null,height:null,src:null,mime:null},r}return t.shouldRender=function(r){var n=uR(r);return n?VW(n):!1},t.prototype.componentDidMount=function(){this._updateMetadata()},t.prototype.componentDidUpdate=function(){this._updateMetadata()},t.prototype.render=function(){var r=this,n,a=null;if(this.state.width!==null&&this.state.height!==null){var o=this.state.width+"x"+this.state.height;this.state.mime!==null&&(o+=" "+this.state.mime),a=lp.default.createElement("div",null,o)}return lp.default.createElement("div",null,lp.default.createElement("img",{onLoad:function(){return r._updateMetadata()},ref:function(s){r._node=s},src:(n=uR(this.props.token))===null||n===void 0?void 0:n.href}),a)},t.prototype._updateMetadata=function(){var r=this;if(!!this._node){var n=this._node.naturalWidth,a=this._node.naturalHeight,o=this._node.src;o!==this.state.src&&(this.setState({src:o}),fetch(o,{method:"HEAD"}).then(function(s){r.setState({mime:s.headers.get("Content-Type")})})),(n!==this.state.width||a!==this.state.height)&&this.setState({height:a,width:n})}},t}(lp.default.Component);var uD=Ye(Bt()),UW=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),gu=function(e){UW(t,e);function t(r){var n=e.call(this,r)||this;return n.handleClick=function(){try{n.props.onClick(),n.setState({error:null})}catch(a){n.setState({error:a})}},n.state={error:null},n}return t.prototype.render=function(){var r=this.state.error;return uD.default.createElement("button",{className:"toolbar-button"+(r?" error":""),onClick:this.handleClick,title:r?r.message:this.props.title,"aria-invalid":r?"true":"false"},this.props.label)},t}(uD.default.Component);var lR=Ye(Bt());function sD(e){var t=e.children;return lR.default.createElement("div",{className:"toolbar-button-group"},t)}var ys=Ye(Bt()),GW=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),lD=function(e){GW(t,e);function t(r){var n=e.call(this,r)||this;return n._node=null,n._listener=null,n.handleOpen=function(a){cD(a),n.setState({visible:!0}),n._subscribe()},n.state={visible:!1},n}return t.prototype.componentWillUnmount=function(){this._release()},t.prototype.render=function(){var r=this,n=this.state.visible;return ys.default.createElement("a",{className:"toolbar-menu toolbar-button",onClick:this.handleOpen.bind(this),onMouseDown:cD,ref:function(a){a&&(r._node=a)},title:this.props.title},this.props.label,ys.default.createElement("svg",{width:"14",height:"8"},ys.default.createElement("path",{fill:"#666",d:"M 5 1.5 L 14 1.5 L 9.5 7 z"})),ys.default.createElement("ul",{className:"toolbar-menu-items"+(n?" open":"")},this.props.children))},t.prototype._subscribe=function(){this._listener||(this._listener=this.handleClick.bind(this),document.addEventListener("click",this._listener))},t.prototype._release=function(){this._listener&&(document.removeEventListener("click",this._listener),this._listener=null)},t.prototype.handleClick=function(r){this._node!==r.target&&(r.preventDefault(),this.setState({visible:!1}),this._release())},t}(ys.default.Component);var cR=function(e){var t=e.onSelect,r=e.title,n=e.label;return ys.default.createElement("li",{onMouseOver:function(a){a.currentTarget.className="hover"},onMouseOut:function(a){a.currentTarget.className=""},onMouseDown:cD,onMouseUp:t,title:r},n)};function cD(e){e.preventDefault()}var g1=Ye(Bt()),cq=Ye(Dm());var tX=Array.from({length:11},function(e,t){return String.fromCharCode(8192+t)}).concat(["\u2028","\u2029","\u202F","\xA0"]),rX=new RegExp("["+tX.join("")+"]","g");function mP(e){return e.replace(rX," ")}var km=Ye(ct()),yP=Ye(Dm()),bP=new yP.default;function mu(e,t,r){var n=ft(),a,o;n.on(t,"select",function(s,l){if(!a){var d=l.parentNode;a=document.createElement("div"),a.className="CodeMirror-hint-information",d.appendChild(a),o=document.createElement("div"),o.className="CodeMirror-hint-deprecation",d.appendChild(o);var h;d.addEventListener("DOMNodeRemoved",h=function(A){A.target===d&&(d.removeEventListener("DOMNodeRemoved",h),a=null,o=null,h=null)})}var v=s.description?bP.render(s.description):"Self descriptive.",b=s.type?''+MD(s.type)+"":"";if(a.innerHTML='
'+(v.slice(0,3)==="

"?"

"+b+v.slice(3):b+v)+"

",s&&o&&s.isDeprecated){var T=s.deprecationReason?bP.render(s.deprecationReason):"";o.innerHTML='Deprecated'+T,o.style.display="block"}else o&&(o.style.display="none");r&&r(a)})}function MD(e){return e instanceof km.GraphQLNonNull?MD(e.ofType)+"!":e instanceof km.GraphQLList?"["+MD(e.ofType)+"]":''+e.name+""}var bo,TP=!1;typeof window=="object"&&(TP=window.navigator.platform==="MacIntel");var nX=(bo={},bo[TP?"Cmd-F":"Ctrl-F"]="findPersistent",bo["Cmd-G"]="findPersistent",bo["Ctrl-G"]="findPersistent",bo["Ctrl-Left"]="goSubwordLeft",bo["Ctrl-Right"]="goSubwordRight",bo["Alt-Left"]="goGroupLeft",bo["Alt-Right"]="goGroupRight",bo),yu=nX;var d$=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),Ym=function(){return Ym=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=65&&s<=90||!o.shiftKey&&s>=48&&s<=57||o.shiftKey&&s===189||o.shiftKey&&s===222)&&n.editor.execCommand("autocomplete")},n._onEdit=function(){!n.editor||n.ignoreChangeEvent||(n.cachedValue=n.editor.getValue(),n.props.onEdit&&n.props.onEdit(n.cachedValue))},n._onHasCompletion=function(a,o){mu(a,o,n.props.onHintInformationRender)},n.cachedValue=r.value||"",n}return t.prototype.componentDidMount=function(){var r=this;this.CodeMirror=ft(),vp(),gp(),Om(),yp(),mp(),Cm(),Es(),bp(),_s(),Tp(),pq(),Eq(),Sq();var n=this.editor=this.CodeMirror(this._node,{value:this.props.value||"",lineNumbers:!0,tabSize:2,mode:"graphql-variables",theme:this.props.editorTheme||"graphiql",keyMap:"sublime",autoCloseBrackets:!0,matchBrackets:!0,showCursorWhenSelecting:!0,readOnly:this.props.readOnly?"nocursor":!1,foldGutter:{minFoldSize:4},lint:{variableToType:this.props.variableToType},hintOptions:{variableToType:this.props.variableToType,closeOnUnfocus:!1,completeSingle:!1,container:this._node},gutters:["CodeMirror-linenumbers","CodeMirror-foldgutter"],extraKeys:_1({"Cmd-Space":function(){return r.editor.showHint({completeSingle:!1,container:r._node})},"Ctrl-Space":function(){return r.editor.showHint({completeSingle:!1,container:r._node})},"Alt-Space":function(){return r.editor.showHint({completeSingle:!1,container:r._node})},"Shift-Space":function(){return r.editor.showHint({completeSingle:!1,container:r._node})},"Cmd-Enter":function(){r.props.onRunQuery&&r.props.onRunQuery()},"Ctrl-Enter":function(){r.props.onRunQuery&&r.props.onRunQuery()},"Shift-Ctrl-P":function(){r.props.onPrettifyQuery&&r.props.onPrettifyQuery()},"Shift-Ctrl-M":function(){r.props.onMergeQuery&&r.props.onMergeQuery()}},yu)});n.on("change",this._onEdit),n.on("keyup",this._onKeyUp),n.on("hasCompletion",this._onHasCompletion)},t.prototype.componentDidUpdate=function(r){if(this.CodeMirror=ft(),!!this.editor){if(this.ignoreChangeEvent=!0,this.props.variableToType!==r.variableToType&&(this.editor.options.lint.variableToType=this.props.variableToType,this.editor.options.hintOptions.variableToType=this.props.variableToType,this.CodeMirror.signal(this.editor,"change",this.editor)),this.props.value!==r.value&&this.props.value!==this.cachedValue){var n=this.props.value||"";this.cachedValue=n,this.editor.setValue(n)}this.ignoreChangeEvent=!1}},t.prototype.componentWillUnmount=function(){!this.editor||(this.editor.off("change",this._onEdit),this.editor.off("keyup",this._onKeyUp),this.editor.off("hasCompletion",this._onHasCompletion),this.editor=null)},t.prototype.render=function(){var r=this;return S1.default.createElement("div",{className:"codemirrorWrap",style:{position:this.props.active?"relative":"absolute",visibility:this.props.active?"visible":"hidden"},ref:function(n){r._node=n}})},t.prototype.getCodeMirror=function(){return this.editor},t.prototype.getClientHeight=function(){return this._node&&this._node.clientHeight},t}(S1.default.Component);var k1=Ye(Bt());var U$=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),D1=function(){return D1=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=65&&s<=90||!o.shiftKey&&s>=48&&s<=57||o.shiftKey&&s===189||o.shiftKey&&s===222)&&n.editor.execCommand("autocomplete")},n._onEdit=function(){!n.editor||n.ignoreChangeEvent||(n.cachedValue=n.editor.getValue(),n.props.onEdit&&n.props.onEdit(n.cachedValue))},n._onHasCompletion=function(a,o){mu(a,o,n.props.onHintInformationRender)},n.cachedValue=r.value||"",n}return t.prototype.componentDidMount=function(){var r=this;this.CodeMirror=ft(),vp(),gp(),Om(),yp(),mp(),Cm(),Es(),bp(),_s(),Oq(),Tp();var n=this.editor=this.CodeMirror(this._node,{value:this.props.value||"",lineNumbers:!0,tabSize:2,mode:{name:"javascript",json:!0},theme:this.props.editorTheme||"graphiql",keyMap:"sublime",autoCloseBrackets:!0,matchBrackets:!0,showCursorWhenSelecting:!0,readOnly:this.props.readOnly?"nocursor":!1,foldGutter:{minFoldSize:4},gutters:["CodeMirror-linenumbers","CodeMirror-foldgutter"],extraKeys:D1({"Cmd-Space":function(){return r.editor.showHint({completeSingle:!1,container:r._node})},"Ctrl-Space":function(){return r.editor.showHint({completeSingle:!1,container:r._node})},"Alt-Space":function(){return r.editor.showHint({completeSingle:!1,container:r._node})},"Shift-Space":function(){return r.editor.showHint({completeSingle:!1,container:r._node})},"Cmd-Enter":function(){r.props.onRunQuery&&r.props.onRunQuery()},"Ctrl-Enter":function(){r.props.onRunQuery&&r.props.onRunQuery()},"Shift-Ctrl-P":function(){r.props.onPrettifyQuery&&r.props.onPrettifyQuery()},"Shift-Ctrl-M":function(){r.props.onMergeQuery&&r.props.onMergeQuery()}},yu)});n.on("change",this._onEdit),n.on("keyup",this._onKeyUp),n.on("hasCompletion",this._onHasCompletion)},t.prototype.componentDidUpdate=function(r){if(this.CodeMirror=ft(),!!this.editor){if(this.ignoreChangeEvent=!0,this.props.value!==r.value&&this.props.value!==this.cachedValue){var n=this.props.value||"";this.cachedValue=n,this.editor.setValue(n)}this.ignoreChangeEvent=!1}},t.prototype.componentWillUnmount=function(){!this.editor||(this.editor.off("change",this._onEdit),this.editor.off("keyup",this._onKeyUp),this.editor.off("hasCompletion",this._onHasCompletion),this.editor=null)},t.prototype.render=function(){var r=this;return k1.default.createElement("div",{className:"codemirrorWrap",style:{position:this.props.active?"relative":"absolute",visibility:this.props.active?"visible":"hidden"},ref:function(n){r._node=n}})},t.prototype.getCodeMirror=function(){return this.editor},t.prototype.getClientHeight=function(){return this._node&&this._node.clientHeight},t}(k1.default.Component);var wc=Ye(Bt()),C1=Ye(ST());var W$=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),w1=function(e){W$(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.viewer=null,r._node=null,r}return t.prototype.componentDidMount=function(){var r=ft();mp(),yp(),_s(),qD(),Es(),bp(),Tp(),Cq();var n=this.props.ResultsTooltip,a=this.props.ImagePreview;if(n||a){h1();var o=document.createElement("div");r.registerHelper("info","graphql-results",function(s,l,d,h){var v=[];return n&&v.push(wc.default.createElement(n,{pos:h})),a&&typeof a.shouldRender=="function"&&a.shouldRender(s)&&v.push(wc.default.createElement(a,{token:s})),v.length?(C1.default.render(wc.default.createElement("div",null,v),o),o):(C1.default.unmountComponentAtNode(o),null)})}this.viewer=r(this._node,{lineWrapping:!0,value:this.props.value||"",readOnly:!0,theme:this.props.editorTheme||"graphiql",mode:"graphql-results",keyMap:"sublime",foldGutter:{minFoldSize:4},gutters:["CodeMirror-foldgutter"],info:Boolean(this.props.ResultsTooltip||this.props.ImagePreview),extraKeys:yu})},t.prototype.shouldComponentUpdate=function(r){return this.props.value!==r.value},t.prototype.componentDidUpdate=function(){this.viewer&&this.viewer.setValue(this.props.value||"")},t.prototype.componentWillUnmount=function(){this.viewer=null},t.prototype.render=function(){var r=this;return wc.default.createElement("section",{className:"result-window","aria-label":"Result Window","aria-live":"polite","aria-atomic":"true",ref:function(n){n&&(r.props.registerRef(n),r._node=n)}})},t.prototype.getCodeMirror=function(){return this.viewer},t.prototype.getClientHeight=function(){return this._node&&this._node.clientHeight},t}(wc.default.Component);var Sn=Ye(Bt()),j1=Ye(ct());var Zr=Ye(Bt());var Mp=Ye(Bt());var oy=Ye(Bt()),uy=Ye(ct());function jn(e){var t=e.onClick?e.onClick:function(){return null};return A1(e.type,t)}function A1(e,t){return e instanceof uy.GraphQLNonNull?oy.default.createElement("span",null,A1(e.ofType,t),"!"):e instanceof uy.GraphQLList?oy.default.createElement("span",null,"[",A1(e.ofType,t),"]"):oy.default.createElement("a",{className:"type-name",onClick:function(r){r.preventDefault(),t(e,r)},href:"#"},e==null?void 0:e.name)}var N1=Ye(Bt()),sy=Ye(ct()),Y$=function(e){return e?(0,sy.print)(e):""};function Pp(e){var t=e.field;return"defaultValue"in t&&t.defaultValue!==void 0?N1.default.createElement("span",null," = ",N1.default.createElement("span",{className:"arg-default-value"},Y$((0,sy.astFromValue)(t.defaultValue,t.type)))):null}function ws(e){var t=e.arg,r=e.onClickType,n=e.showDefaultValue;return Mp.default.createElement("span",{className:"arg"},Mp.default.createElement("span",{className:"arg-name"},t.name),": ",Mp.default.createElement(jn,{type:t.type,onClick:r}),n!==!1&&Mp.default.createElement(Pp,{field:t}))}var wq=Ye(Bt());function L1(e){var t=e.directive;return wq.default.createElement("span",{className:"doc-category-item",id:t.name.value},"@",t.name.value)}var x1=Ye(Bt()),Aq=Ye(Dm()),J$=new Aq.default;function hi(e){var t=e.markdown,r=e.className;return t?x1.default.createElement("div",{className:r,dangerouslySetInnerHTML:{__html:J$.render(t)}}):x1.default.createElement("div",null)}function I1(e){var t=e.field,r=e.onClickType,n;t&&"args"in t&&t.args.length>0&&(n=Zr.default.createElement("div",{className:"doc-category"},Zr.default.createElement("div",{className:"doc-category-title"},"arguments"),t.args.map(function(o){return Zr.default.createElement("div",{key:o.name,className:"doc-category-item"},Zr.default.createElement("div",null,Zr.default.createElement(ws,{arg:o,onClickType:r})),Zr.default.createElement(hi,{className:"doc-value-description",markdown:o.description}))})));var a;return t&&t.astNode&&t.astNode.directives&&t.astNode.directives.length>0&&(a=Zr.default.createElement("div",{className:"doc-category"},Zr.default.createElement("div",{className:"doc-category-title"},"directives"),t.astNode.directives.map(function(o){return Zr.default.createElement("div",{key:o.name.value,className:"doc-category-item"},Zr.default.createElement("div",null,Zr.default.createElement(L1,{directive:o})))}))),Zr.default.createElement("div",null,Zr.default.createElement(hi,{className:"doc-type-description",markdown:(t==null?void 0:t.description)||"No Description"}),t&&"deprecationReason"in t&&Zr.default.createElement(hi,{className:"doc-deprecation",markdown:t==null?void 0:t.deprecationReason}),Zr.default.createElement("div",{className:"doc-category"},Zr.default.createElement("div",{className:"doc-category-title"},"type"),Zr.default.createElement(jn,{type:t==null?void 0:t.type,onClick:r})),n,a)}var ei=Ye(Bt());function R1(e){var t=e.schema,r=e.onClickType,n=t.getQueryType(),a=t.getMutationType&&t.getMutationType(),o=t.getSubscriptionType&&t.getSubscriptionType();return ei.default.createElement("div",null,ei.default.createElement(hi,{className:"doc-type-description",markdown:t.description||"A GraphQL schema provides a root type for each kind of operation."}),ei.default.createElement("div",{className:"doc-category"},ei.default.createElement("div",{className:"doc-category-title"},"root types"),ei.default.createElement("div",{className:"doc-category-item"},ei.default.createElement("span",{className:"keyword"},"query"),": ",ei.default.createElement(jn,{type:n,onClick:r})),a&&ei.default.createElement("div",{className:"doc-category-item"},ei.default.createElement("span",{className:"keyword"},"mutation"),": ",ei.default.createElement(jn,{type:a,onClick:r})),o&&ei.default.createElement("div",{className:"doc-category-item"},ei.default.createElement("span",{className:"keyword"},"subscription"),": ",ei.default.createElement(jn,{type:o,onClick:r}))))}var Ac=Ye(Bt());function vi(e,t){var r;return function(){for(var n=this,a=[],o=0;o=100)return"break";var m=v[_];if(n!==m&&F1(_,r)&&d.push(ti.default.createElement("div",{className:"doc-category-item",key:_},ti.default.createElement(jn,{type:m,onClick:o}))),m&&"getFields"in m){var k=m.getFields();Object.keys(k).forEach(function(w){var C=k[w],D;if(!F1(w,r))if("args"in C&&C.args.length){if(D=C.args.filter(function(M){return F1(M.name,r)}),D.length===0)return}else return;var R=ti.default.createElement("div",{className:"doc-category-item",key:_+"."+w},n!==m&&[ti.default.createElement(jn,{key:"type",type:m,onClick:o}),"."],ti.default.createElement("a",{className:"field-name",onClick:function(M){return s(C,m,M)}},C.name),D&&["(",ti.default.createElement("span",{key:"args"},D.map(function(M){return ti.default.createElement(ws,{key:M.name,arg:M,onClickType:o,showDefaultValue:!1})})),")"]);n===m?l.push(R):h.push(R)})}},A=0,L=b;A0?ti.default.createElement("div",null,l,ti.default.createElement("div",{className:"doc-category"},ti.default.createElement("div",{className:"doc-category-title"},"other results"),d,h)):ti.default.createElement("div",{className:"doc-search-items"},l,d,h)},t}(ti.default.Component),Lq=eee;function F1(e,t){try{var r=t.replace(/[^_0-9A-Za-z]/g,function(n){return"\\"+n});return e.search(new RegExp(r,"i"))!==-1}catch(n){return e.toLowerCase().indexOf(t.toLowerCase())!==-1}}var dt=Ye(Bt()),Ua=Ye(ct());var tee=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),ree=function(e){tee(t,e);function t(r){var n=e.call(this,r)||this;return n.handleShowDeprecated=function(){return n.setState({showDeprecated:!0})},n.state={showDeprecated:!1},n}return t.prototype.shouldComponentUpdate=function(r,n){return this.props.type!==r.type||this.props.schema!==r.schema||this.state.showDeprecated!==n.showDeprecated},t.prototype.render=function(){var r=this.props.schema,n=this.props.type,a=this.props.onClickType,o=this.props.onClickField,s=null,l=[];n instanceof Ua.GraphQLUnionType?(s="possible types",l=r.getPossibleTypes(n)):n instanceof Ua.GraphQLInterfaceType?(s="implementations",l=r.getPossibleTypes(n)):n instanceof Ua.GraphQLObjectType&&(s="implements",l=n.getInterfaces());var d;l&&l.length>0&&(d=dt.default.createElement("div",{className:"doc-category"},dt.default.createElement("div",{className:"doc-category-title"},s),l.map(function(m){return dt.default.createElement("div",{key:m.name,className:"doc-category-item"},dt.default.createElement(jn,{type:m,onClick:a}))})));var h,v;if(n&&"getFields"in n){var b=n.getFields(),T=Object.keys(b).map(function(m){return b[m]});h=dt.default.createElement("div",{className:"doc-category"},dt.default.createElement("div",{className:"doc-category-title"},"fields"),T.filter(function(m){return"isDeprecated"in m?!m.isDeprecated:!0}).map(function(m){return dt.default.createElement(Iq,{key:m.name,type:n,field:m,onClickType:a,onClickField:o})}));var A=T.filter(function(m){return"isDeprecated"in m&&m.isDeprecated});A.length>0&&(v=dt.default.createElement("div",{className:"doc-category"},dt.default.createElement("div",{className:"doc-category-title"},"deprecated fields"),this.state.showDeprecated?A.map(function(m){return dt.default.createElement(Iq,{key:m.name,type:n,field:m,onClickType:a,onClickField:o})}):dt.default.createElement("button",{className:"show-btn",onClick:this.handleShowDeprecated},"Show deprecated fields...")))}var L,S;if(n instanceof Ua.GraphQLEnumType){var y=n.getValues();L=dt.default.createElement("div",{className:"doc-category"},dt.default.createElement("div",{className:"doc-category-title"},"values"),y.filter(function(m){return!m.isDeprecated}).map(function(m){return dt.default.createElement(Rq,{key:m.name,value:m})}));var _=y.filter(function(m){return m.isDeprecated});_.length>0&&(S=dt.default.createElement("div",{className:"doc-category"},dt.default.createElement("div",{className:"doc-category-title"},"deprecated values"),this.state.showDeprecated?_.map(function(m){return dt.default.createElement(Rq,{key:m.name,value:m})}):dt.default.createElement("button",{className:"show-btn",onClick:this.handleShowDeprecated},"Show deprecated values...")))}return dt.default.createElement("div",null,dt.default.createElement(hi,{className:"doc-type-description",markdown:"description"in n&&n.description||"No Description"}),n instanceof Ua.GraphQLObjectType&&d,h,v,L,S,!(n instanceof Ua.GraphQLObjectType)&&d)},t}(dt.default.Component),xq=ree;function Iq(e){var t=e.type,r=e.field,n=e.onClickType,a=e.onClickField;return dt.default.createElement("div",{className:"doc-category-item"},dt.default.createElement("a",{className:"field-name",onClick:function(o){return a(r,t,o)}},r.name),"args"in r&&r.args&&r.args.length>0&&["(",dt.default.createElement("span",{key:"args"},r.args.map(function(o){return dt.default.createElement(ws,{key:o.name,arg:o,onClickType:n})})),")"],": ",dt.default.createElement(jn,{type:r.type,onClick:n}),dt.default.createElement(Pp,{field:r}),r.description&&dt.default.createElement(hi,{className:"field-short-description",markdown:r.description}),"deprecationReason"in r&&r.deprecationReason&&dt.default.createElement(hi,{className:"doc-deprecation",markdown:r.deprecationReason}))}function Rq(e){var t=e.value;return dt.default.createElement("div",{className:"doc-category-item"},dt.default.createElement("div",{className:"enum-value"},t.name),dt.default.createElement(hi,{className:"doc-value-description",markdown:t.description}),t.deprecationReason&&dt.default.createElement(hi,{className:"doc-deprecation",markdown:t.deprecationReason}))}var nee=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),ly=function(){return ly=Object.assign||function(e){for(var t,r=1,n=arguments.length;r1&&n.setState({navStack:n.state.navStack.slice(0,-1)})},n.handleClickType=function(a){n.showDoc(a)},n.handleClickField=function(a){n.showDoc(a)},n.handleSearch=function(a){n.showSearch(a)},n.state={navStack:[Fq]},n}return t.prototype.shouldComponentUpdate=function(r,n){return this.props.schema!==r.schema||this.state.navStack!==n.navStack},t.prototype.render=function(){var r=this.props.schema,n=this.state.navStack,a=n[n.length-1],o;r===void 0?o=Sn.default.createElement("div",{className:"spinner-container"},Sn.default.createElement("div",{className:"spinner"})):r?a.search?o=Sn.default.createElement(Lq,{searchValue:a.search,withinType:a.def,schema:r,onClickType:this.handleClickType,onClickField:this.handleClickField}):n.length===1?o=Sn.default.createElement(R1,{schema:r,onClickType:this.handleClickType}):(0,j1.isType)(a.def)?o=Sn.default.createElement(xq,{schema:r,type:a.def,onClickType:this.handleClickType,onClickField:this.handleClickField}):o=Sn.default.createElement(I1,{field:a.def,onClickType:this.handleClickType}):o=Sn.default.createElement("div",{className:"error-container"},"No Schema Available");var s=n.length===1||(0,j1.isType)(a.def)&&"getFields"in a.def,l;return n.length>1&&(l=n[n.length-2].name),Sn.default.createElement("section",{className:"doc-explorer",key:a.name,"aria-label":"Documentation Explorer"},Sn.default.createElement("div",{className:"doc-explorer-title-bar"},l&&Sn.default.createElement("button",{className:"doc-explorer-back",onClick:this.handleNavBackClick,"aria-label":"Go back to "+l},l),Sn.default.createElement("div",{className:"doc-explorer-title"},a.title||a.name),Sn.default.createElement("div",{className:"doc-explorer-rhs"},this.props.children)),Sn.default.createElement("div",{className:"doc-explorer-contents"},s&&Sn.default.createElement(Nq,{value:a.search,placeholder:"Search "+a.name+"...",onSearch:this.handleSearch}),o))},t.prototype.showDoc=function(r){var n=this.state.navStack,a=n[n.length-1];a.def!==r&&this.setState({navStack:n.concat([{name:r.name,def:r}])})},t.prototype.showDocForReference=function(r){r&&r.kind==="Type"?this.showDoc(r.type):r.kind==="Field"?this.showDoc(r.field):r.kind==="Argument"&&r.field?this.showDoc(r.field):r.kind==="EnumValue"&&r.type&&this.showDoc(r.type)},t.prototype.showSearch=function(r){var n=this.state.navStack.slice(),a=n[n.length-1];n[n.length-1]=ly(ly({},a),{search:r}),this.setState({navStack:n})},t.prototype.reset=function(){this.setState({navStack:[Fq]})},t}(Sn.default.Component);var Mq=Ye(ct()),Su=Ye(Bt());var iee=function(){for(var e=0,t=0,r=arguments.length;tthis.maxSize&&n.shift();for(var a=0;a<5;a++){var o=this.storage.set(this.key,JSON.stringify((r={},r[this.key]=n,r)));if(!o||!o.error)this.items=n;else if(o.isQuotaError&&this.maxSize)n.shift();else return}},e.prototype.save=function(){var t;this.storage.set(this.key,JSON.stringify((t={},t[this.key]=this.items,t)))},e}(),M1=aee;var As=Ye(Bt()),oee=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),uee=function(e){oee(t,e);function t(r){var n=e.call(this,r)||this;return n.state={editable:!1},n.editField=null,n}return t.prototype.render=function(){var r=this,n,a=this.props.label||this.props.operationName||((n=this.props.query)===null||n===void 0?void 0:n.split(` +`).filter(function(s){return s.indexOf("#")!==0}).join("")),o=this.props.favorite?"\u2605":"\u2606";return As.default.createElement("li",{className:this.state.editable?"editable":void 0},this.state.editable?As.default.createElement("input",{type:"text",defaultValue:this.props.label,ref:function(s){r.editField=s},onBlur:this.handleFieldBlur.bind(this),onKeyDown:this.handleFieldKeyDown.bind(this),placeholder:"Type a label"}):As.default.createElement("button",{className:"history-label",onClick:this.handleClick.bind(this)},a),As.default.createElement("button",{onClick:this.handleEditClick.bind(this),"aria-label":"Edit label"},"\u270E"),As.default.createElement("button",{className:this.props.favorite?"favorited":void 0,onClick:this.handleStarClick.bind(this),"aria-label":this.props.favorite?"Remove favorite":"Add favorite"},o))},t.prototype.handleClick=function(){this.props.onSelect(this.props.query,this.props.variables,this.props.headers,this.props.operationName,this.props.label)},t.prototype.handleStarClick=function(r){r.stopPropagation(),this.props.handleToggleFavorite(this.props.query,this.props.variables,this.props.headers,this.props.operationName,this.props.label,this.props.favorite)},t.prototype.handleFieldBlur=function(r){r.stopPropagation(),this.setState({editable:!1}),this.props.handleEditLabel(this.props.query,this.props.variables,this.props.headers,this.props.operationName,r.target.value,this.props.favorite)},t.prototype.handleFieldKeyDown=function(r){r.keyCode===13&&(r.stopPropagation(),this.setState({editable:!1}),this.props.handleEditLabel(this.props.query,this.props.variables,this.props.headers,this.props.operationName,r.currentTarget.value,this.props.favorite))},t.prototype.handleEditClick=function(r){var n=this;r.stopPropagation(),this.setState({editable:!0},function(){n.editField&&n.editField.focus()})},t}(As.default.Component),jq=uee;var see=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),qp=function(){return qp=Object.assign||function(e){for(var t,r=1,n=arguments.length;rlee?!1:n?!(JSON.stringify(e)===JSON.stringify(n.query)&&(JSON.stringify(t)===JSON.stringify(n.variables)&&(JSON.stringify(r)===JSON.stringify(n.headers)||r&&!n.headers)||t&&!n.variables)):!0},qq=function(e){see(t,e);function t(r){var n=e.call(this,r)||this;n.updateHistory=function(l,d,h,v){if(fee(l,d,h,n.historyStore.fetchRecent())){n.historyStore.push({query:l,variables:d,headers:h,operationName:v});var b=n.historyStore.items,T=n.favoriteStore.items,A=b.concat(T);n.setState({queries:A})}},n.toggleFavorite=function(l,d,h,v,b,T){var A={query:l,variables:d,headers:h,operationName:v,label:b};n.favoriteStore.contains(A)?T&&(A.favorite=!1,n.favoriteStore.delete(A)):(A.favorite=!0,n.favoriteStore.push(A)),n.setState({queries:Pq(n.historyStore.items,n.favoriteStore.items)})},n.editLabel=function(l,d,h,v,b,T){var A={query:l,variables:d,headers:h,operationName:v,label:b};T?n.favoriteStore.edit(qp(qp({},A),{favorite:T})):n.historyStore.edit(A),n.setState({queries:Pq(n.historyStore.items,n.favoriteStore.items)})},n.historyStore=new M1("queries",r.storage,cee),n.favoriteStore=new M1("favorites",r.storage,null);var a=n.historyStore.fetchAll(),o=n.favoriteStore.fetchAll(),s=a.concat(o);return n.state={queries:s},n}return t.prototype.render=function(){var r=this,n=this.state.queries.slice().reverse(),a=n.map(function(o,s){return Su.default.createElement(jq,qp({handleEditLabel:r.editLabel,handleToggleFavorite:r.toggleFavorite,key:s+":"+(o.label||o.query),onSelect:r.props.onSelectQuery},o))});return Su.default.createElement("section",{"aria-label":"History"},Su.default.createElement("div",{className:"history-title-bar"},Su.default.createElement("div",{className:"history-title"},"History"),Su.default.createElement("div",{className:"doc-explorer-rhs"},this.props.children)),Su.default.createElement("ul",{className:"history-contents"},a))},t}(Su.default.Component);var dee=function(){function e(){this.sizes=[]}return e.prototype.updateSizes=function(t){var r=this;t.forEach(function(n,a){if(n){var o=n.getClientHeight();if(a<=r.sizes.length&&o!==r.sizes[a]){var s=n.getCodeMirror();s&&s.setSize(null,null)}r.sizes[a]=o}})},e}(),Bq=dee;function pee(e,t){return t instanceof DOMException&&(t.code===22||t.code===1014||t.name==="QuotaExceededError"||t.name==="NS_ERROR_DOM_QUOTA_REACHED")&&e.length!==0}var hee=function(){function e(t){this.storage=t||(typeof window!="undefined"?window.localStorage:null)}return e.prototype.get=function(t){if(this.storage){var r=this.storage.getItem("graphiql:"+t);if(r==="null"||r==="undefined")return this.storage.removeItem("graphiql:"+t),null;if(r)return r}return null},e.prototype.set=function(t,r){var n=!1,a=null;if(this.storage){var o="graphiql:"+t;if(r)try{this.storage.setItem(o,r)}catch(s){a=s,n=pee(this.storage,s)}else this.storage.removeItem(o)}return{isQuotaError:n,error:a}},e}(),Vq=hee;var Nc=Ye(ct());function Bp(e,t){if(!!t){var r;try{r=(0,Nc.parse)(t,{experimentalFragmentVariables:!0})}catch(o){return}var n=e?vee(e,r):void 0,a=[];return(0,Nc.visit)(r,{OperationDefinition:function(o){a.push(o)}}),{variableToType:n,operations:a,documentAST:r}}}function vee(e,t){var r=Object.create(null);return t.definitions.forEach(function(n){if(n.kind==="OperationDefinition"){var a=n.variableDefinitions;a&&a.forEach(function(o){var s=o.variable,l=o.type,d=(0,Nc.typeFromAST)(e,l);d&&(r[s.name.value]=d)})}}),r}function Vp(e,t,r){if(!(!r||r.length<1)){var n=r.map(function(s){return s.name&&s.name.value});if(t&&n.indexOf(t)!==-1)return t;if(t&&e){var a=e.map(function(s){return s.name&&s.name.value}),o=a.indexOf(t);if(o!==-1&&o=0)continue;s.push(v)}var b=e[h.name.value];if(b){var T=b.typeCondition,A=b.directives,L=b.selectionSet;h={kind:"InlineFragment",typeCondition:T,directives:A,selectionSet:L}}}if(h.kind==="InlineFragment"&&(!h.directives||((n=h.directives)===null||n===void 0?void 0:n.length)===0)){var S=h.typeCondition?h.typeCondition.name.value:null;if(!S||S===a){o.push.apply(o,Gq(e,h.selectionSet.selections,r));continue}}o.push(h)}return o}function cy(e,t){for(var r=t?new Du.TypeInfo(t):null,n=Object.create(null),a=0,o=e.definitions;a0&&o[o.length-1])&&(h[0]===6||h[0]===2)){r=0;continue}if(h[0]===3&&(!o||h[1]>o[0]&&h[1]0){var o=this.getQueryEditor();o&&o.operation(function(){var s=o.getCursor(),l=o.indexFromPos(s);o.setValue(a||"");var d=0,h=n.map(function(b){var T=b.index,A=b.string;return o.markText(o.posFromIndex(T+d),o.posFromIndex(T+(d+=A.length)),{className:"autoInsertedLeaf",clearOnEnter:!0,title:"Automatically added leaf fields"})});setTimeout(function(){return h.forEach(function(b){return b.clear()})},7e3);var v=l;n.forEach(function(b){var T=b.index,A=b.string;T2?a.headers=JSON.parse(this.state.headers):this.props.headers&&(a.headers=JSON.parse(this.props.headers));var o=n3(n({query:V1,operationName:U1},a));if(!e3(o)){this.setState({response:"Fetcher did not return a Promise for introspection."});return}o.then(function(s){if(typeof s!="string"&&"data"in s)return s;var l=n3(n({query:Kq,operationName:U1},a));if(!e3(o))throw new Error("Fetcher did not return a Promise for introspection.");return l}).then(function(s){if(r.state.schema===void 0)if(typeof s!="string"&&"data"in s){var l=(0,sa.buildClientSchema)(s.data),d=Bp(l,r.state.query);r.safeSetState(Ga({schema:l},d))}else{var h=typeof s=="string"?s:t.formatResult(s);r.safeSetState({schema:void 0,response:h})}}).catch(function(s){r.safeSetState({schema:void 0,response:s?t.formatError(s):void 0})})},t.prototype._fetchQuery=function(r,n,a,o,s,l){return Q1(this,void 0,void 0,function(){var d,h,v,b,T,A,L=this;return K1(this,function(S){d=this.props.fetcher,h=null,v=null;try{h=n&&n.trim()!==""?JSON.parse(n):null}catch(y){throw new Error("Variables are invalid JSON: "+y.message+".")}if(typeof h!="object")throw new Error("Variables are not a JSON object.");try{v=a&&a.trim()!==""?JSON.parse(a):null}catch(y){throw new Error("Headers are invalid JSON: "+y.message+".")}if(typeof v!="object")throw new Error("Headers are not a JSON object.");return this.props.externalFragments&&(b=new Map,Array.isArray(this.props.externalFragments)?this.props.externalFragments.forEach(function(y){b.set(y.name.value,y)}):(0,sa.visit)((0,sa.parse)(this.props.externalFragments,{experimentalFragmentVariables:!0}),{FragmentDefinition:function(y){b.set(y.name.value,y)}}),T=oD(this.state.documentAST,b),T.length>0&&(r+=` +`+T.map(function(y){return(0,sa.print)(y)}).join(` +`))),A=d({query:r,variables:h,operationName:o},{headers:v,shouldPersistHeaders:s,documentAST:this.state.documentAST}),[2,Promise.resolve(A).then(function(y){if(t3(y)){var _=y.subscribe({next:l,error:function(m){L.safeSetState({isWaitingForResponse:!1,response:m?t.formatError(m):void 0,subscription:null})},complete:function(){L.safeSetState({isWaitingForResponse:!1,subscription:null})}});return _}else return r3(y)?(function(){return Q1(L,void 0,void 0,function(){var m,k,w,C,D,R,M;return K1(this,function(q){switch(q.label){case 0:q.trys.push([0,13,,14]),q.label=1;case 1:q.trys.push([1,6,7,12]),m=kee(y),q.label=2;case 2:return[4,m.next()];case 3:if(k=q.sent(),!!k.done)return[3,5];w=k.value,l(w),q.label=4;case 4:return[3,2];case 5:return[3,12];case 6:return C=q.sent(),R={error:C},[3,12];case 7:return q.trys.push([7,,10,11]),k&&!k.done&&(M=m.return)?[4,M.call(m)]:[3,9];case 8:q.sent(),q.label=9;case 9:return[3,11];case 10:if(R)throw R.error;return[7];case 11:return[7];case 12:return this.safeSetState({isWaitingForResponse:!1,subscription:null}),[3,14];case 13:return D=q.sent(),this.safeSetState({isWaitingForResponse:!1,response:D?t.formatError(D):void 0,subscription:null}),[3,14];case 14:return[2]}})})}(),{unsubscribe:function(){var m,k;return(k=(m=y[Symbol.asyncIterator]()).return)===null||k===void 0?void 0:k.call(m)}}):(l(y),null)}).catch(function(y){return L.safeSetState({isWaitingForResponse:!1,response:y?t.formatError(y):void 0}),null})]})})},t.prototype._runQueryAtCursor=function(){if(this.state.subscription){this.handleStopQuery();return}var r,n=this.state.operations;if(n){var a=this.getQueryEditor();if(a&&a.hasFocus())for(var o=a.getCursor(),s=a.indexFromPos(o),l=0;l=s){r=d.name&&d.name.value;break}}}this.handleRunQuery(r)},t.prototype._didClickDragBar=function(r){if(r.button!==0||r.ctrlKey)return!1;var n=r.target;if(n.className.indexOf("CodeMirror-gutter")!==0)return!1;for(var a=this.resultViewerElement;n;){if(n===a)return!0;n=n.parentNode}return!1},t.Logo=Jq,t.Toolbar=Xq,t.Footer=Zq,t.QueryEditor=Jm,t.VariableEditor=iy,t.HeaderEditor=O1,t.ResultViewer=w1,t.Button=gu,t.ToolbarButton=gu,t.Group=sD,t.Menu=lD,t.MenuItem=cR,t}($e.default.Component);function Jq(e){return $e.default.createElement("div",{className:"title"},e.children||$e.default.createElement("span",null,"Graph",$e.default.createElement("em",null,"i"),"QL"))}Jq.displayName="GraphiQLLogo";function Xq(e){return $e.default.createElement("div",{className:"toolbar",role:"toolbar","aria-label":"Editor Commands"},e.children)}Xq.displayName="GraphiQLToolbar";function Zq(e){return $e.default.createElement("div",{className:"footer"},e.children)}Zq.displayName="GraphiQLFooter";var $q=function(e){return Ga(Ga({},e),{message:e.message,stack:e.stack})},wee=`# Welcome to GraphiQL +# +# GraphiQL is an in-browser tool for writing, validating, and +# testing GraphQL queries. +# +# Type queries into this side of the screen, and you will see intelligent +# typeaheads aware of the current GraphQL type schema and live syntax and +# validation errors highlighted within the text. +# +# GraphQL queries typically start with a "{" character. Lines that start +# with a # are ignored. +# +# An example GraphQL query might look like: +# +# { +# field(arg: "value") { +# subField +# } +# } +# +# Keyboard shortcuts: +# +# Prettify Query: Shift-Ctrl-P (or press the prettify button above) +# +# Merge Query: Shift-Ctrl-M (or press the merge button above) +# +# Run Query: Ctrl-Enter (or press the play button above) +# +# Auto Complete: Ctrl-Space (or just start typing) +# + +`;function e3(e){return typeof e=="object"&&typeof e.then=="function"}function Aee(e){return new Promise(function(t,r){var n=e.subscribe({next:function(a){t(a),n.unsubscribe()},error:r,complete:function(){r(new Error("no value resolved"))}})})}function t3(e){return typeof e=="object"&&"subscribe"in e&&typeof e.subscribe=="function"}function r3(e){return typeof e=="object"&&e!==null&&(e[Symbol.toStringTag]==="AsyncGenerator"||Symbol.asyncIterator in e)}function Nee(e){return new Promise(function(t,r){var n,a=(n=("return"in e?e:e[Symbol.asyncIterator]()).return)===null||n===void 0?void 0:n.bind(e),o=("next"in e?e:e[Symbol.asyncIterator]()).next.bind(e);o().then(function(s){t(s.value),a==null||a()}).catch(function(s){r(s)})})}function n3(e){return Promise.resolve(e).then(function(t){return r3(t)?Nee(t):t3(t)?Aee(t):t})}function H1(e,t){var r;return((r=e==null?void 0:e.type)===null||r===void 0?void 0:r.displayName)&&e.type.displayName===t.displayName?!0:e.type===t}var Vi=Ye(Bt()),Lee=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),z1=function(){return z1=Object.assign||function(e){for(var t,r=1,n=arguments.length;rA(+GoiDQYBWLjF%7J^GLq%OrN#>6DH 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 z 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

WnFz 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 U(>0#eu6PD9`;UM8KbnY+(}Z#=p#T5? literal 0 HcmV?d00001 diff --git a/netbox_proxbox/static/netbox_proxbox/styles/materialdesignicons-webfont-ER2MFQKM.woff2 b/netbox_proxbox/static/netbox_proxbox/styles/materialdesignicons-webfont-ER2MFQKM.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c8cadcfdbd917afeacf12c0a25ff292febd76043 GIT binary patch literal 385360 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 ?v@g_@g{atRCc(GO&%h} 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

ly9-LziDabg>oE$6E@@D~1*-SD>8 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

h0G}~E`?`_ssmk1zhv!@ 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

Hbw8up-RCK!^xi))R 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�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

    8a{`x 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%0AUZ|WifigmrmsBx8=Wnj^4RUcjtOn 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

    AV^SWTd$ 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 z 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ΞL?U-eNLY^sdB? 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

ZdWtx)C$xL-hwc|K-LbNFn}J806I`;$ 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