From 7f178ef747776de899f45256866b6dfb9a1c42a1 Mon Sep 17 00:00:00 2001 From: Ali Karbassi Date: Mon, 5 Jul 2021 17:41:05 -0500 Subject: [PATCH 1/5] Work in Progress --- .env.sample | 7 + coderdojochi/admin.py | 6 +- coderdojochi/models/course.py | 100 +++++++++--- coderdojochi/settings.py | 13 ++ poetry.lock | 290 ++++++++++++++++++++-------------- pyproject.toml | 1 + 6 files changed, 280 insertions(+), 137 deletions(-) diff --git a/.env.sample b/.env.sample index 8bdd297d..94b97356 100644 --- a/.env.sample +++ b/.env.sample @@ -12,6 +12,13 @@ POSTGRES_DB=postgres POSTGRES_USER=postgres POSTGRES_PASSWORD=mysecretpassword +# Salesforce +SALESFORCE_KEY= +SALESFORCE_SECRET= +SALESFORCE_USER= +SALESFORCE_PASSWORD= +SALESFORCE_HOST=https://test.salesforce.com + # Email DEFAULT_FROM_EMAIL=hello+local@weallcode.org CONTACT_EMAIL=hello+local@weallcode.org diff --git a/coderdojochi/admin.py b/coderdojochi/admin.py index 25f78a64..5c99658f 100644 --- a/coderdojochi/admin.py +++ b/coderdojochi/admin.py @@ -507,9 +507,9 @@ class CourseAdmin(ImportExportMixin, ImportExportActionModelAdmin): "description", ] - prepopulated_fields = { - "slug": ("title",), - } + # prepopulated_fields = { + # "slug": ("title",), + # } view_on_site = False diff --git a/coderdojochi/models/course.py b/coderdojochi/models/course.py index 74b5ac36..2201d0d3 100644 --- a/coderdojochi/models/course.py +++ b/coderdojochi/models/course.py @@ -3,10 +3,13 @@ from django.core.validators import MaxValueValidator, MinValueValidator from django.db import models +import salesforce + from .common import CommonInfo -class Course(CommonInfo): +class Course(salesforce.models.SalesforceModel): + # class Course(CommonInfo): WEEKEND = "WE" CAMP = "CA" @@ -18,46 +21,105 @@ class Course(CommonInfo): (SPECIAL, "Special"), ] - code = models.CharField( - max_length=255, - blank=True, - null=True, + """ + + id = salesforce.models.CharField(max_length=18, primary_key=True, db_column="Id", editable=False, serialize=False, auto_created=True) + name = salesforce.models.CharField(default="", db_column="Name", max_length=200) + institution_type = salesforce.models.CharField(default="", db_column="Institution_Type__c", max_length=30) + school_id = salesforce.models.CharField(default="", unique=True, db_column='School_ID__c', max_length=6) + city = salesforce.models.CharField(default="", db_column='City__c', max_length=100) + state = salesforce.models.CharField(default="", db_column='State__c', max_length=2) + website_id = salesforce.models.IntegerField(default=0, unique=True, db_column='Website_ID__c') + + """ + + id = salesforce.models.CharField( + max_length=18, + primary_key=True, + db_column="Id", + editable=False, + serialize=False, + auto_created=True, ) + + title = salesforce.models.CharField( + default="", + db_column="Name", + max_length=200, + ) + + # title = models.CharField( + # max_length=255, + # ) + + code = salesforce.models.CharField( + default="", + db_column="hed__Course_ID__c", + max_length=100, + ) + + # code = models.CharField( + # max_length=255, + # blank=True, + # null=True, + # ) + course_type = models.CharField( "type", max_length=2, choices=COURSE_TYPE_CHOICES, default=WEEKEND, ) - title = models.CharField( - max_length=255, - ) - slug = models.SlugField( - max_length=40, - blank=True, - null=True, - ) - description = models.TextField( + + # slug = models.SlugField( + # max_length=40, + # blank=True, + # null=True, + # ) + + description = salesforce.models.TextField( + db_column="hed__Extended_Description__c", blank=True, null=True, - help_text="Basic HTML allowed", ) - duration = models.DurationField( + + # description = models.TextField( + # blank=True, + # null=True, + # help_text="Basic HTML allowed", + # ) + + # TODO: update db_column + duration = salesforce.models.DurationField( default=timedelta(hours=3), help_text="HH:MM:ss", ) - minimum_age = models.IntegerField( + # TODO: update db_column + minimum_age = salesforce.models.IntegerField( default=7, validators=[MinValueValidator(0), MaxValueValidator(100)], ) - maximum_age = models.IntegerField( + # TODO: update db_column + maximum_age = salesforce.models.IntegerField( default=18, validators=[MinValueValidator(0), MaxValueValidator(100)], ) - is_active = models.BooleanField( + # TODO: update db_column + is_active = salesforce.models.BooleanField( default=True, ) + # Auto create/update + # TODO: update db_column + created_at = models.DateTimeField( + auto_now_add=True, + ) + + # TODO: update db_column + updated_at = models.DateTimeField( + auto_now=True, + ) + def __str__(self): if self.code: return f"{self.code} | {self.title}" diff --git a/coderdojochi/settings.py b/coderdojochi/settings.py index 9d0cf80b..309bf406 100644 --- a/coderdojochi/settings.py +++ b/coderdojochi/settings.py @@ -103,6 +103,7 @@ "django_nose", "meta", "captcha", + "salesforce", # apps "accounts", "coderdojochi", @@ -173,6 +174,18 @@ # Change 'default' database configuration with $DATABASE_URL. DATABASES["default"].update(dj_database_url.config(conn_max_age=500, ssl_require=True)) +# Adding Salesforce Database +DATABASES["salesforce"] = { + "ENGINE": "salesforce.backend", + "CONSUMER_KEY": os.environ.get("SALESFORCE_KEY"), + "CONSUMER_SECRET": os.environ.get("SALESFORCE_SECRET"), + "USER": os.environ.get("SALESFORCE_USER"), + "PASSWORD": os.environ.get("SALESFORCE_PASSWORD"), + "HOST": os.environ.get("SALESFORCE_HOST"), +} + +DATABASE_ROUTERS = ["salesforce.router.ModelRouter"] + # Password validation # https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators diff --git a/poetry.lock b/poetry.lock index fba7e46e..6ed608f0 100644 --- a/poetry.lock +++ b/poetry.lock @@ -11,7 +11,7 @@ python-dateutil = ">=2.7.0" [[package]] name = "asgiref" -version = "3.3.4" +version = "3.4.1" description = "ASGI specs, helper code, and adapters" category = "main" optional = false @@ -22,20 +22,20 @@ tests = ["pytest", "pytest-asyncio", "mypy (>=0.800)"] [[package]] name = "boto3" -version = "1.17.94" +version = "1.17.105" description = "The AWS SDK for Python" category = "main" optional = false python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" [package.dependencies] -botocore = ">=1.20.94,<1.21.0" +botocore = ">=1.20.105,<1.21.0" jmespath = ">=0.7.1,<1.0.0" s3transfer = ">=0.4.0,<0.5.0" [[package]] name = "botocore" -version = "1.20.94" +version = "1.20.105" description = "Low-level, data-driven core of boto 3." category = "main" optional = false @@ -47,7 +47,7 @@ python-dateutil = ">=2.1,<3.0.0" urllib3 = ">=1.25.4,<1.27" [package.extras] -crt = ["awscrt (==0.11.15)"] +crt = ["awscrt (==0.11.24)"] [[package]] name = "certifi" @@ -121,7 +121,7 @@ python-versions = "*" [[package]] name = "django" -version = "3.2.4" +version = "3.2.5" description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design." category = "main" optional = false @@ -161,7 +161,7 @@ requests-oauthlib = ">=0.3.0" [[package]] name = "django-anymail" -version = "8.3" +version = "8.4" description = "Django email integration for Amazon SES, Mailgun, Mailjet, Postmark, SendGrid, SendinBlue, SparkPost and other transactional ESPs" category = "main" optional = false @@ -173,8 +173,8 @@ requests = ">=2.4.3" [package.extras] amazon_ses = ["boto3"] -dev = ["flake8", "sphinx", "sphinx-rtd-theme", "tox", "twine"] -test = ["mock", "boto3"] +dev = ["flake8", "sphinx", "sphinx-rtd-theme", "tox", "twine", "wheel"] +postal = ["cryptography"] [[package]] name = "django-appconf" @@ -339,6 +339,20 @@ python-versions = "*" [package.dependencies] django = ">1.11,<4.0" +[[package]] +name = "django-salesforce" +version = "3.2" +description = "a Salesforce backend for Django's ORM" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +django = ">=2.0" +pytz = ">=2012c" +requests = ">=2.4.0" +simplejson = ">=2.5.0" + [[package]] name = "django-stdimage" version = "5.3.0" @@ -398,7 +412,7 @@ doc = ["sphinx", "sphinx-rtd-theme", "sphinxcontrib-spelling"] [[package]] name = "faker" -version = "8.8.0" +version = "8.9.1" description = "Faker is a Python package that generates fake data for you." category = "main" optional = false @@ -532,7 +546,7 @@ et-xmlfile = "*" [[package]] name = "pillow" -version = "8.2.0" +version = "8.3.0" description = "Python Imaging Library (Fork)" category = "main" optional = false @@ -540,19 +554,19 @@ python-versions = ">=3.6" [[package]] name = "psycopg2" -version = "2.8.6" +version = "2.9.1" description = "psycopg2 - Python-PostgreSQL Database Adapter" category = "main" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" +python-versions = ">=3.6" [[package]] name = "psycopg2-binary" -version = "2.8.6" +version = "2.9.1" description = "psycopg2 - Python-PostgreSQL Database Adapter" category = "main" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" +python-versions = ">=3.6" [[package]] name = "pycparser" @@ -696,6 +710,14 @@ sanic = ["sanic (>=0.8)"] sqlalchemy = ["sqlalchemy (>=1.2)"] tornado = ["tornado (>=5)"] +[[package]] +name = "simplejson" +version = "3.17.2" +description = "Simple, fast, extensible JSON encoder/decoder for Python" +category = "main" +optional = false +python-versions = ">=2.5, !=3.0.*, !=3.1.*, !=3.2.*" + [[package]] name = "six" version = "1.16.0" @@ -748,7 +770,7 @@ python-versions = "*" [[package]] name = "urllib3" -version = "1.26.5" +version = "1.26.6" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false @@ -794,7 +816,7 @@ python-versions = "*" [metadata] lock-version = "1.1" python-versions = "3.9.1" -content-hash = "1b4a8e15ee0f820f7da0bfd0cac0e80475503a01493d7ae393847aad9caaebbc" +content-hash = "8fc62db3c4cfa712e9a20e5a859709bd1270d7b74441d9ad75d82b11b15eb3e7" [metadata.files] arrow = [ @@ -802,16 +824,16 @@ arrow = [ {file = "arrow-0.17.0.tar.gz", hash = "sha256:ff08d10cda1d36c68657d6ad20d74fbea493d980f8b2d45344e00d6ed2bf6ed4"}, ] asgiref = [ - {file = "asgiref-3.3.4-py3-none-any.whl", hash = "sha256:92906c611ce6c967347bbfea733f13d6313901d54dcca88195eaeb52b2a8e8ee"}, - {file = "asgiref-3.3.4.tar.gz", hash = "sha256:d1216dfbdfb63826470995d31caed36225dcaf34f182e0fa257a4dd9e86f1b78"}, + {file = "asgiref-3.4.1-py3-none-any.whl", hash = "sha256:ffc141aa908e6f175673e7b1b3b7af4fdb0ecb738fc5c8b88f69f055c2415214"}, + {file = "asgiref-3.4.1.tar.gz", hash = "sha256:4ef1ab46b484e3c706329cedeff284a5d40824200638503f5768edb6de7d58e9"}, ] boto3 = [ - {file = "boto3-1.17.94-py2.py3-none-any.whl", hash = "sha256:6180272094030bda3ee5c242881892cd3d9d19c05cb513945f530e396c7de1e4"}, - {file = "boto3-1.17.94.tar.gz", hash = "sha256:95d814d16fe55ae55e1e4a3db248596f9647a0c42f4796c6e05be0bfaffb1830"}, + {file = "boto3-1.17.105-py2.py3-none-any.whl", hash = "sha256:b1cbeb92123799001b97f2ee1cdf470e21f1be08314ae28fc7ea357925186f1c"}, + {file = "boto3-1.17.105.tar.gz", hash = "sha256:3b35689c215c982fe9f7ef78d748aa9b0cd15c3b2eb04f9b460aaa63fe2fbd03"}, ] botocore = [ - {file = "botocore-1.20.94-py2.py3-none-any.whl", hash = "sha256:ba8a7951be535e25219a82dea15c30d7bdf0c51e7c1623c3306248493c1616ac"}, - {file = "botocore-1.20.94.tar.gz", hash = "sha256:60a382a5b2f7d77b1b575d54fba819097526e3fdd0f3004f4d1142d50af0d642"}, + {file = "botocore-1.20.105-py2.py3-none-any.whl", hash = "sha256:b5ba72d22212b0355f339c2a98b3296b3b2202a48e6a2b1366e866bc65a64b67"}, + {file = "botocore-1.20.105.tar.gz", hash = "sha256:b0fda4edf8eb105453890700d49011ada576d0cc7326a0699dfabe9e872f552c"}, ] certifi = [ {file = "certifi-2021.5.30-py2.py3-none-any.whl", hash = "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8"}, @@ -899,8 +921,8 @@ dj-database-url = [ {file = "dj_database_url-0.5.0-py2.py3-none-any.whl", hash = "sha256:851785365761ebe4994a921b433062309eb882fedd318e1b0fcecc607ed02da9"}, ] django = [ - {file = "Django-3.2.4-py3-none-any.whl", hash = "sha256:ea735cbbbb3b2fba6d4da4784a0043d84c67c92f1fdf15ad6db69900e792c10f"}, - {file = "Django-3.2.4.tar.gz", hash = "sha256:66c9d8db8cc6fe938a28b7887c1596e42d522e27618562517cc8929eb7e7f296"}, + {file = "Django-3.2.5-py3-none-any.whl", hash = "sha256:c58b5f19c5ae0afe6d75cbdd7df561e6eb929339985dbbda2565e1cabb19a62e"}, + {file = "Django-3.2.5.tar.gz", hash = "sha256:3da05fea54fdec2315b54a563d5b59f3b4e2b1e69c3a5841dda35019c01855cd"}, ] django-active-link = [ {file = "django-active-link-0.1.8.tar.gz", hash = "sha256:87aac58cc89913ff3b017b91cb24cda0dbb05945aa46c6a1428d0744b56a3e1f"}, @@ -910,8 +932,8 @@ django-allauth = [ {file = "django-allauth-0.44.0.tar.gz", hash = "sha256:e51af457466022f52154d74c8523ac69375120fad2acce6e239635d85e610b25"}, ] django-anymail = [ - {file = "django-anymail-8.3.tar.gz", hash = "sha256:fde346365937de91feee4451cbbf416f4af841ccc5d136c5fdfcb983827703c1"}, - {file = "django_anymail-8.3-py3-none-any.whl", hash = "sha256:caba487937d14d7d6ff06551db4e4bfb3e45eff892f9911abd7a214716b65be5"}, + {file = "django-anymail-8.4.tar.gz", hash = "sha256:671a338de43b8e414d48c6d16aac1df54d2f24f916e1073f9f60aef5acffaf89"}, + {file = "django_anymail-8.4-py3-none-any.whl", hash = "sha256:2e8307e84f0a12f9283469017094a8246db9a0fc608ac17dd1027ee011ece986"}, ] django-appconf = [ {file = "django-appconf-1.0.4.tar.gz", hash = "sha256:be58deb54a43d77d2e1621fe59f787681376d3cd0b8bd8e4758ef6c3a6453380"}, @@ -968,6 +990,9 @@ django-nose = [ django-recaptcha = [ {file = "django_recaptcha-2.0.6-py2.py3-none-any.whl", hash = "sha256:567784963fd5400feaf92e8951d8dbbbdb4b4c48a76e225d4baa63a2c9d2cd8c"}, ] +django-salesforce = [ + {file = "django-salesforce-3.2.tar.gz", hash = "sha256:7950eeb0a5662b0576a95cb4e4407087db37b483e97a074b2ec947174132f727"}, +] django-stdimage = [ {file = "django-stdimage-5.3.0.tar.gz", hash = "sha256:95f2897f5a520f18e0d0097cc8cb1380db9127ead1abe66a5e048cd7bd4a2295"}, {file = "django_stdimage-5.3.0-py2.py3-none-any.whl", hash = "sha256:fb9d6bf86664873194fcc378193d81405aa4989eceadb4bcce6bb52588801934"}, @@ -985,8 +1010,8 @@ factory-boy = [ {file = "factory_boy-3.2.0.tar.gz", hash = "sha256:401cc00ff339a022f84d64a4339503d1689e8263a4478d876e58a3295b155c5b"}, ] faker = [ - {file = "Faker-8.8.0-py3-none-any.whl", hash = "sha256:0129599c0d35e79471d116460b1c51d8c183980f28e14517228be4601cf87192"}, - {file = "Faker-8.8.0.tar.gz", hash = "sha256:7be0d9309bde6624e1a6062d0dc37859f95ca883fa047a11db8e5e305b1446a1"}, + {file = "Faker-8.9.1-py3-none-any.whl", hash = "sha256:9d4b0f6537ad093db351f0d11cd72aef65c9e5fb0616347329919d9889c19f95"}, + {file = "Faker-8.9.1.tar.gz", hash = "sha256:156c321953ef13a59261b08f08d514e6877c477490068470d2bea38d1c8a0f98"}, ] gunicorn = [ {file = "gunicorn-20.1.0-py3-none-any.whl", hash = "sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e"}, @@ -1037,94 +1062,82 @@ openpyxl = [ {file = "openpyxl-3.0.7.tar.gz", hash = "sha256:6456a3b472e1ef0facb1129f3c6ef00713cebf62e736cd7a75bcc3247432f251"}, ] pillow = [ - {file = "Pillow-8.2.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:dc38f57d8f20f06dd7c3161c59ca2c86893632623f33a42d592f097b00f720a9"}, - {file = "Pillow-8.2.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a013cbe25d20c2e0c4e85a9daf438f85121a4d0344ddc76e33fd7e3965d9af4b"}, - {file = "Pillow-8.2.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8bb1e155a74e1bfbacd84555ea62fa21c58e0b4e7e6b20e4447b8d07990ac78b"}, - {file = "Pillow-8.2.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c5236606e8570542ed424849f7852a0ff0bce2c4c8d0ba05cc202a5a9c97dee9"}, - {file = "Pillow-8.2.0-cp36-cp36m-win32.whl", hash = "sha256:12e5e7471f9b637762453da74e390e56cc43e486a88289995c1f4c1dc0bfe727"}, - {file = "Pillow-8.2.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5afe6b237a0b81bd54b53f835a153770802f164c5570bab5e005aad693dab87f"}, - {file = "Pillow-8.2.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:cb7a09e173903541fa888ba010c345893cd9fc1b5891aaf060f6ca77b6a3722d"}, - {file = "Pillow-8.2.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:0d19d70ee7c2ba97631bae1e7d4725cdb2ecf238178096e8c82ee481e189168a"}, - {file = "Pillow-8.2.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:083781abd261bdabf090ad07bb69f8f5599943ddb539d64497ed021b2a67e5a9"}, - {file = "Pillow-8.2.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:c6b39294464b03457f9064e98c124e09008b35a62e3189d3513e5148611c9388"}, - {file = "Pillow-8.2.0-cp37-cp37m-win32.whl", hash = "sha256:01425106e4e8cee195a411f729cff2a7d61813b0b11737c12bd5991f5f14bcd5"}, - {file = "Pillow-8.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3b570f84a6161cf8865c4e08adf629441f56e32f180f7aa4ccbd2e0a5a02cba2"}, - {file = "Pillow-8.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:031a6c88c77d08aab84fecc05c3cde8414cd6f8406f4d2b16fed1e97634cc8a4"}, - {file = "Pillow-8.2.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:66cc56579fd91f517290ab02c51e3a80f581aba45fd924fcdee01fa06e635812"}, - {file = "Pillow-8.2.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6c32cc3145928c4305d142ebec682419a6c0a8ce9e33db900027ddca1ec39178"}, - {file = "Pillow-8.2.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:624b977355cde8b065f6d51b98497d6cd5fbdd4f36405f7a8790e3376125e2bb"}, - {file = "Pillow-8.2.0-cp38-cp38-win32.whl", hash = "sha256:5cbf3e3b1014dddc45496e8cf38b9f099c95a326275885199f427825c6522232"}, - {file = "Pillow-8.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:463822e2f0d81459e113372a168f2ff59723e78528f91f0bd25680ac185cf797"}, - {file = "Pillow-8.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:95d5ef984eff897850f3a83883363da64aae1000e79cb3c321915468e8c6add5"}, - {file = "Pillow-8.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b91c36492a4bbb1ee855b7d16fe51379e5f96b85692dc8210831fbb24c43e484"}, - {file = "Pillow-8.2.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:d68cb92c408261f806b15923834203f024110a2e2872ecb0bd2a110f89d3c602"}, - {file = "Pillow-8.2.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f217c3954ce5fd88303fc0c317af55d5e0204106d86dea17eb8205700d47dec2"}, - {file = "Pillow-8.2.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5b70110acb39f3aff6b74cf09bb4169b167e2660dabc304c1e25b6555fa781ef"}, - {file = "Pillow-8.2.0-cp39-cp39-win32.whl", hash = "sha256:a7d5e9fad90eff8f6f6106d3b98b553a88b6f976e51fce287192a5d2d5363713"}, - {file = "Pillow-8.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:238c197fc275b475e87c1453b05b467d2d02c2915fdfdd4af126145ff2e4610c"}, - {file = "Pillow-8.2.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:0e04d61f0064b545b989126197930807c86bcbd4534d39168f4aa5fda39bb8f9"}, - {file = "Pillow-8.2.0-pp36-pypy36_pp73-manylinux2010_i686.whl", hash = "sha256:63728564c1410d99e6d1ae8e3b810fe012bc440952168af0a2877e8ff5ab96b9"}, - {file = "Pillow-8.2.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:c03c07ed32c5324939b19e36ae5f75c660c81461e312a41aea30acdd46f93a7c"}, - {file = "Pillow-8.2.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:4d98abdd6b1e3bf1a1cbb14c3895226816e666749ac040c4e2554231068c639b"}, - {file = "Pillow-8.2.0-pp37-pypy37_pp73-manylinux2010_i686.whl", hash = "sha256:aac00e4bc94d1b7813fe882c28990c1bc2f9d0e1aa765a5f2b516e8a6a16a9e4"}, - {file = "Pillow-8.2.0-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:22fd0f42ad15dfdde6c581347eaa4adb9a6fc4b865f90b23378aa7914895e120"}, - {file = "Pillow-8.2.0-pp37-pypy37_pp73-win32.whl", hash = "sha256:e98eca29a05913e82177b3ba3d198b1728e164869c613d76d0de4bde6768a50e"}, - {file = "Pillow-8.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:8b56553c0345ad6dcb2e9b433ae47d67f95fc23fe28a0bde15a120f25257e291"}, - {file = "Pillow-8.2.0.tar.gz", hash = "sha256:a787ab10d7bb5494e5f76536ac460741788f1fbce851068d73a87ca7c35fc3e1"}, + {file = "Pillow-8.3.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:333313bcc53a8a7359e98d5458dfe37bfa301da2fd0e0dc41f585ae0cede9181"}, + {file = "Pillow-8.3.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bccd0d604d814e9494f3bf3f077a23835580ed1743c5175581882e7dd1f178c3"}, + {file = "Pillow-8.3.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a7beda44f177ee602aa27e0a297da1657d9572679522c8fb8b336b734653516e"}, + {file = "Pillow-8.3.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:94db5ea640330de0945b41dc77fb4847b4ab6e87149126c71b36b112e8400898"}, + {file = "Pillow-8.3.0-cp36-cp36m-win32.whl", hash = "sha256:856fcbc3201a6cabf0478daa0c0a1a8a175af7e5173e2084ddb91cc707a09dd1"}, + {file = "Pillow-8.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:34ce3d993cb4ca840b1e31165b38cb19c64f64f822a8bc5565bde084baff3bdb"}, + {file = "Pillow-8.3.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:778a819c2d194e08d39d67ddb15ef0d32eba17bf7d0c2773e97bd221b2613a3e"}, + {file = "Pillow-8.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b42ea77f4e7374a67e1f27aaa9c62627dff681f67890e5b8f0c1e21b1500d9d2"}, + {file = "Pillow-8.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:53f6e4b73b3899015ac4aa95d99da0f48ea18a6d7c8db672e8bead3fb9570ef5"}, + {file = "Pillow-8.3.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:fb91deb5121b6dde88599bcb3db3fdad9cf33ff3d4ccc5329ee1fe9655a2f7ff"}, + {file = "Pillow-8.3.0-cp37-cp37m-win32.whl", hash = "sha256:8f65d2a98f198e904dbe89ecb10862d5f0511367d823689039e17c4d011de11e"}, + {file = "Pillow-8.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:25f6564df21d15bcac142b4ed92b6c02e53557539f535f31c1f3bcc985484753"}, + {file = "Pillow-8.3.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:c2d78c8230bda5fc9f6b1d457c7f8f3432f4fe85bed86f80ba3ed73d59775a88"}, + {file = "Pillow-8.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:950e873ceefbd283cbe7bc5b648b832d1dcf89eeded6726ebec42bc7d67966c0"}, + {file = "Pillow-8.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1037288a22cc8ec9d2918a24ded733a1cc4342fd7f21d15d37e6bbe5fb4a7306"}, + {file = "Pillow-8.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:063d17a02a0170c2f880fbd373b2738b089c6adcbd1f7418667bc9e97524c11b"}, + {file = "Pillow-8.3.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:561339ed7c324bbcb29b5e4f4705c97df950785394b3ac181f5bf6a08088a672"}, + {file = "Pillow-8.3.0-cp38-cp38-win32.whl", hash = "sha256:331f8321418682386e4f0d0e6369f732053f95abddd2af4e1b1ef74a9537ef37"}, + {file = "Pillow-8.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:eccaefbd646022b5313ca4b0c5f1ae6e0d3a52ef66de64970ecf3f9b2a1be751"}, + {file = "Pillow-8.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:6f7517a220aca8b822e25b08b0df9546701a606a328da5bc057e5f32a3f9b07c"}, + {file = "Pillow-8.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cc8e926d6ffa65d0dddb871b7afe117f17bc045951e66afde60eb0eba923db9e"}, + {file = "Pillow-8.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:519b3b24dedc81876d893475bade1b92c4ce7c24b9b82224f0bd8daae682e039"}, + {file = "Pillow-8.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:72858a27dd7bd1c40f91c4f85db3b9f121c8412fd66573121febb00d074d0530"}, + {file = "Pillow-8.3.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:3251557c53c1ed0c345559afc02d2b0a0aa5788042e161366ed90b27bc322d3d"}, + {file = "Pillow-8.3.0-cp39-cp39-win32.whl", hash = "sha256:ce90aad0a3dc0f13a9ff0ab1f43bcbea436089b83c3fadbe37c6f1733b938bf1"}, + {file = "Pillow-8.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:490c9236ef4762733b6c2e1f1fcb37793cb9c57d860aa84d6994c990461882e5"}, + {file = "Pillow-8.3.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:aef0838f28328523e9e5f2c1852dd96fb85768deb0eb8f908c54dad0f44d2f6f"}, + {file = "Pillow-8.3.0-pp36-pypy36_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:713b762892efa8cd5d8dac24d16ac2d2dbf981963ed1b3297e79755f03f8cbb8"}, + {file = "Pillow-8.3.0-pp36-pypy36_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cec702974f162026bf8de47f6f4b7ce9584a63c50002b38f195ee797165fea77"}, + {file = "Pillow-8.3.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:d9ef8119ce44f90d2f8ac7c58f7da480ada5151f217dc8da03681b73fc91dec3"}, + {file = "Pillow-8.3.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fc25d59ecf23ea19571065306806a29c43c67f830f0e8a121303916ba257f484"}, + {file = "Pillow-8.3.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:28f184c0a65be098af412f78b0b6f3bbafd1614e1dc896e810d8357342a794b7"}, + {file = "Pillow-8.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:c3529fb98a40f89269175442c5ff4ef81d22e91b2bdcbd33833a350709b5130c"}, + {file = "Pillow-8.3.0.tar.gz", hash = "sha256:803606e206f3e366eea46b1e7ab4dac74cfac770d04de9c35319814e11e47c46"}, ] psycopg2 = [ - {file = "psycopg2-2.8.6-cp27-cp27m-win32.whl", hash = "sha256:068115e13c70dc5982dfc00c5d70437fe37c014c808acce119b5448361c03725"}, - {file = "psycopg2-2.8.6-cp27-cp27m-win_amd64.whl", hash = "sha256:d160744652e81c80627a909a0e808f3c6653a40af435744de037e3172cf277f5"}, - {file = "psycopg2-2.8.6-cp34-cp34m-win32.whl", hash = "sha256:b8cae8b2f022efa1f011cc753adb9cbadfa5a184431d09b273fb49b4167561ad"}, - {file = "psycopg2-2.8.6-cp34-cp34m-win_amd64.whl", hash = "sha256:f22ea9b67aea4f4a1718300908a2fb62b3e4276cf00bd829a97ab5894af42ea3"}, - {file = "psycopg2-2.8.6-cp35-cp35m-win32.whl", hash = "sha256:26e7fd115a6db75267b325de0fba089b911a4a12ebd3d0b5e7acb7028bc46821"}, - {file = "psycopg2-2.8.6-cp35-cp35m-win_amd64.whl", hash = "sha256:00195b5f6832dbf2876b8bf77f12bdce648224c89c880719c745b90515233301"}, - {file = "psycopg2-2.8.6-cp36-cp36m-win32.whl", hash = "sha256:a49833abfdede8985ba3f3ec641f771cca215479f41523e99dace96d5b8cce2a"}, - {file = "psycopg2-2.8.6-cp36-cp36m-win_amd64.whl", hash = "sha256:f974c96fca34ae9e4f49839ba6b78addf0346777b46c4da27a7bf54f48d3057d"}, - {file = "psycopg2-2.8.6-cp37-cp37m-win32.whl", hash = "sha256:6a3d9efb6f36f1fe6aa8dbb5af55e067db802502c55a9defa47c5a1dad41df84"}, - {file = "psycopg2-2.8.6-cp37-cp37m-win_amd64.whl", hash = "sha256:56fee7f818d032f802b8eed81ef0c1232b8b42390df189cab9cfa87573fe52c5"}, - {file = "psycopg2-2.8.6-cp38-cp38-win32.whl", hash = "sha256:ad2fe8a37be669082e61fb001c185ffb58867fdbb3e7a6b0b0d2ffe232353a3e"}, - {file = "psycopg2-2.8.6-cp38-cp38-win_amd64.whl", hash = "sha256:56007a226b8e95aa980ada7abdea6b40b75ce62a433bd27cec7a8178d57f4051"}, - {file = "psycopg2-2.8.6-cp39-cp39-win32.whl", hash = "sha256:2c93d4d16933fea5bbacbe1aaf8fa8c1348740b2e50b3735d1b0bf8154cbf0f3"}, - {file = "psycopg2-2.8.6-cp39-cp39-win_amd64.whl", hash = "sha256:d5062ae50b222da28253059880a871dc87e099c25cb68acf613d9d227413d6f7"}, - {file = "psycopg2-2.8.6.tar.gz", hash = "sha256:fb23f6c71107c37fd667cb4ea363ddeb936b348bbd6449278eb92c189699f543"}, + {file = "psycopg2-2.9.1-cp36-cp36m-win32.whl", hash = "sha256:7f91312f065df517187134cce8e395ab37f5b601a42446bdc0f0d51773621854"}, + {file = "psycopg2-2.9.1-cp36-cp36m-win_amd64.whl", hash = "sha256:830c8e8dddab6b6716a4bf73a09910c7954a92f40cf1d1e702fb93c8a919cc56"}, + {file = "psycopg2-2.9.1-cp37-cp37m-win32.whl", hash = "sha256:89409d369f4882c47f7ea20c42c5046879ce22c1e4ea20ef3b00a4dfc0a7f188"}, + {file = "psycopg2-2.9.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7640e1e4d72444ef012e275e7b53204d7fab341fb22bc76057ede22fe6860b25"}, + {file = "psycopg2-2.9.1-cp38-cp38-win32.whl", hash = "sha256:079d97fc22de90da1d370c90583659a9f9a6ee4007355f5825e5f1c70dffc1fa"}, + {file = "psycopg2-2.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:2c992196719fadda59f72d44603ee1a2fdcc67de097eea38d41c7ad9ad246e62"}, + {file = "psycopg2-2.9.1-cp39-cp39-win32.whl", hash = "sha256:2087013c159a73e09713294a44d0c8008204d06326006b7f652bef5ace66eebb"}, + {file = "psycopg2-2.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:bf35a25f1aaa8a3781195595577fcbb59934856ee46b4f252f56ad12b8043bcf"}, + {file = "psycopg2-2.9.1.tar.gz", hash = "sha256:de5303a6f1d0a7a34b9d40e4d3bef684ccc44a49bbe3eb85e3c0bffb4a131b7c"}, ] psycopg2-binary = [ - {file = "psycopg2-binary-2.8.6.tar.gz", hash = "sha256:11b9c0ebce097180129e422379b824ae21c8f2a6596b159c7659e2e5a00e1aa0"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:d14b140a4439d816e3b1229a4a525df917d6ea22a0771a2a78332273fd9528a4"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:1fabed9ea2acc4efe4671b92c669a213db744d2af8a9fc5d69a8e9bc14b7a9db"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f5ab93a2cb2d8338b1674be43b442a7f544a0971da062a5da774ed40587f18f5"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27m-win32.whl", hash = "sha256:b4afc542c0ac0db720cf516dd20c0846f71c248d2b3d21013aa0d4ef9c71ca25"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27m-win_amd64.whl", hash = "sha256:e74a55f6bad0e7d3968399deb50f61f4db1926acf4a6d83beaaa7df986f48b1c"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:0deac2af1a587ae12836aa07970f5cb91964f05a7c6cdb69d8425ff4c15d4e2c"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ad20d2eb875aaa1ea6d0f2916949f5c08a19c74d05b16ce6ebf6d24f2c9f75d1"}, - {file = "psycopg2_binary-2.8.6-cp34-cp34m-win32.whl", hash = "sha256:950bc22bb56ee6ff142a2cb9ee980b571dd0912b0334aa3fe0fe3788d860bea2"}, - {file = "psycopg2_binary-2.8.6-cp34-cp34m-win_amd64.whl", hash = "sha256:b8a3715b3c4e604bcc94c90a825cd7f5635417453b253499664f784fc4da0152"}, - {file = "psycopg2_binary-2.8.6-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:d1b4ab59e02d9008efe10ceabd0b31e79519da6fb67f7d8e8977118832d0f449"}, - {file = "psycopg2_binary-2.8.6-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:ac0c682111fbf404525dfc0f18a8b5f11be52657d4f96e9fcb75daf4f3984859"}, - {file = "psycopg2_binary-2.8.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7d92a09b788cbb1aec325af5fcba9fed7203897bbd9269d5691bb1e3bce29550"}, - {file = "psycopg2_binary-2.8.6-cp35-cp35m-win32.whl", hash = "sha256:aaa4213c862f0ef00022751161df35804127b78adf4a2755b9f991a507e425fd"}, - {file = "psycopg2_binary-2.8.6-cp35-cp35m-win_amd64.whl", hash = "sha256:c2507d796fca339c8fb03216364cca68d87e037c1f774977c8fc377627d01c71"}, - {file = "psycopg2_binary-2.8.6-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:ee69dad2c7155756ad114c02db06002f4cded41132cc51378e57aad79cc8e4f4"}, - {file = "psycopg2_binary-2.8.6-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:e82aba2188b9ba309fd8e271702bd0d0fc9148ae3150532bbb474f4590039ffb"}, - {file = "psycopg2_binary-2.8.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d5227b229005a696cc67676e24c214740efd90b148de5733419ac9aaba3773da"}, - {file = "psycopg2_binary-2.8.6-cp36-cp36m-win32.whl", hash = "sha256:a0eb43a07386c3f1f1ebb4dc7aafb13f67188eab896e7397aa1ee95a9c884eb2"}, - {file = "psycopg2_binary-2.8.6-cp36-cp36m-win_amd64.whl", hash = "sha256:e1f57aa70d3f7cc6947fd88636a481638263ba04a742b4a37dd25c373e41491a"}, - {file = "psycopg2_binary-2.8.6-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:833709a5c66ca52f1d21d41865a637223b368c0ee76ea54ca5bad6f2526c7679"}, - {file = "psycopg2_binary-2.8.6-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:ba28584e6bca48c59eecbf7efb1576ca214b47f05194646b081717fa628dfddf"}, - {file = "psycopg2_binary-2.8.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:6a32f3a4cb2f6e1a0b15215f448e8ce2da192fd4ff35084d80d5e39da683e79b"}, - {file = "psycopg2_binary-2.8.6-cp37-cp37m-win32.whl", hash = "sha256:0e4dc3d5996760104746e6cfcdb519d9d2cd27c738296525d5867ea695774e67"}, - {file = "psycopg2_binary-2.8.6-cp37-cp37m-win_amd64.whl", hash = "sha256:cec7e622ebc545dbb4564e483dd20e4e404da17ae07e06f3e780b2dacd5cee66"}, - {file = "psycopg2_binary-2.8.6-cp38-cp38-macosx_10_9_x86_64.macosx_10_9_intel.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:ba381aec3a5dc29634f20692349d73f2d21f17653bda1decf0b52b11d694541f"}, - {file = "psycopg2_binary-2.8.6-cp38-cp38-manylinux1_i686.whl", hash = "sha256:a0c50db33c32594305b0ef9abc0cb7db13de7621d2cadf8392a1d9b3c437ef77"}, - {file = "psycopg2_binary-2.8.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2dac98e85565d5688e8ab7bdea5446674a83a3945a8f416ad0110018d1501b94"}, - {file = "psycopg2_binary-2.8.6-cp38-cp38-win32.whl", hash = "sha256:bd1be66dde2b82f80afb9459fc618216753f67109b859a361cf7def5c7968729"}, - {file = "psycopg2_binary-2.8.6-cp38-cp38-win_amd64.whl", hash = "sha256:8cd0fb36c7412996859cb4606a35969dd01f4ea34d9812a141cd920c3b18be77"}, - {file = "psycopg2_binary-2.8.6-cp39-cp39-macosx_10_9_x86_64.macosx_10_9_intel.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:89705f45ce07b2dfa806ee84439ec67c5d9a0ef20154e0e475e2b2ed392a5b83"}, - {file = "psycopg2_binary-2.8.6-cp39-cp39-manylinux1_i686.whl", hash = "sha256:42ec1035841b389e8cc3692277a0bd81cdfe0b65d575a2c8862cec7a80e62e52"}, - {file = "psycopg2_binary-2.8.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7312e931b90fe14f925729cde58022f5d034241918a5c4f9797cac62f6b3a9dd"}, - {file = "psycopg2_binary-2.8.6-cp39-cp39-win32.whl", hash = "sha256:6422f2ff0919fd720195f64ffd8f924c1395d30f9a495f31e2392c2efafb5056"}, - {file = "psycopg2_binary-2.8.6-cp39-cp39-win_amd64.whl", hash = "sha256:15978a1fbd225583dd8cdaf37e67ccc278b5abecb4caf6b2d6b8e2b948e953f6"}, + {file = "psycopg2-binary-2.9.1.tar.gz", hash = "sha256:b0221ca5a9837e040ebf61f48899926b5783668b7807419e4adae8175a31f773"}, + {file = "psycopg2_binary-2.9.1-cp36-cp36m-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:c250a7ec489b652c892e4f0a5d122cc14c3780f9f643e1a326754aedf82d9a76"}, + {file = "psycopg2_binary-2.9.1-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aef9aee84ec78af51107181d02fe8773b100b01c5dfde351184ad9223eab3698"}, + {file = "psycopg2_binary-2.9.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:123c3fb684e9abfc47218d3784c7b4c47c8587951ea4dd5bc38b6636ac57f616"}, + {file = "psycopg2_binary-2.9.1-cp36-cp36m-manylinux_2_24_aarch64.whl", hash = "sha256:995fc41ebda5a7a663a254a1dcac52638c3e847f48307b5416ee373da15075d7"}, + {file = "psycopg2_binary-2.9.1-cp36-cp36m-manylinux_2_24_ppc64le.whl", hash = "sha256:fbb42a541b1093385a2d8c7eec94d26d30437d0e77c1d25dae1dcc46741a385e"}, + {file = "psycopg2_binary-2.9.1-cp36-cp36m-win32.whl", hash = "sha256:20f1ab44d8c352074e2d7ca67dc00843067788791be373e67a0911998787ce7d"}, + {file = "psycopg2_binary-2.9.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f6fac64a38f6768e7bc7b035b9e10d8a538a9fadce06b983fb3e6fa55ac5f5ce"}, + {file = "psycopg2_binary-2.9.1-cp37-cp37m-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:1e3a362790edc0a365385b1ac4cc0acc429a0c0d662d829a50b6ce743ae61b5a"}, + {file = "psycopg2_binary-2.9.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f8559617b1fcf59a9aedba2c9838b5b6aa211ffedecabca412b92a1ff75aac1a"}, + {file = "psycopg2_binary-2.9.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a36c7eb6152ba5467fb264d73844877be8b0847874d4822b7cf2d3c0cb8cdcb0"}, + {file = "psycopg2_binary-2.9.1-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:2f62c207d1740b0bde5c4e949f857b044818f734a3d57f1d0d0edc65050532ed"}, + {file = "psycopg2_binary-2.9.1-cp37-cp37m-manylinux_2_24_ppc64le.whl", hash = "sha256:cfc523edecddaef56f6740d7de1ce24a2fdf94fd5e704091856a201872e37f9f"}, + {file = "psycopg2_binary-2.9.1-cp37-cp37m-win32.whl", hash = "sha256:1e85b74cbbb3056e3656f1cc4781294df03383127a8114cbc6531e8b8367bf1e"}, + {file = "psycopg2_binary-2.9.1-cp37-cp37m-win_amd64.whl", hash = "sha256:1473c0215b0613dd938db54a653f68251a45a78b05f6fc21af4326f40e8360a2"}, + {file = "psycopg2_binary-2.9.1-cp38-cp38-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:35c4310f8febe41f442d3c65066ca93cccefd75013df3d8c736c5b93ec288140"}, + {file = "psycopg2_binary-2.9.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c13d72ed6af7fd2c8acbd95661cf9477f94e381fce0792c04981a8283b52917"}, + {file = "psycopg2_binary-2.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14db1752acdd2187d99cb2ca0a1a6dfe57fc65c3281e0f20e597aac8d2a5bd90"}, + {file = "psycopg2_binary-2.9.1-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:aed4a9a7e3221b3e252c39d0bf794c438dc5453bc2963e8befe9d4cd324dff72"}, + {file = "psycopg2_binary-2.9.1-cp38-cp38-manylinux_2_24_ppc64le.whl", hash = "sha256:da113b70f6ec40e7d81b43d1b139b9db6a05727ab8be1ee559f3a69854a69d34"}, + {file = "psycopg2_binary-2.9.1-cp38-cp38-win32.whl", hash = "sha256:4235f9d5ddcab0b8dbd723dca56ea2922b485ea00e1dafacf33b0c7e840b3d32"}, + {file = "psycopg2_binary-2.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:988b47ac70d204aed01589ed342303da7c4d84b56c2f4c4b8b00deda123372bf"}, + {file = "psycopg2_binary-2.9.1-cp39-cp39-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:7360647ea04db2e7dff1648d1da825c8cf68dc5fbd80b8fb5b3ee9f068dcd21a"}, + {file = "psycopg2_binary-2.9.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca86db5b561b894f9e5f115d6a159fff2a2570a652e07889d8a383b5fae66eb4"}, + {file = "psycopg2_binary-2.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ced67f1e34e1a450cdb48eb53ca73b60aa0af21c46b9b35ac3e581cf9f00e31"}, + {file = "psycopg2_binary-2.9.1-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:0f2e04bd2a2ab54fa44ee67fe2d002bb90cee1c0f1cc0ebc3148af7b02034cbd"}, + {file = "psycopg2_binary-2.9.1-cp39-cp39-manylinux_2_24_ppc64le.whl", hash = "sha256:3242b9619de955ab44581a03a64bdd7d5e470cc4183e8fcadd85ab9d3756ce7a"}, + {file = "psycopg2_binary-2.9.1-cp39-cp39-win32.whl", hash = "sha256:0b7dae87f0b729922e06f85f667de7bf16455d411971b2043bbd9577af9d1975"}, + {file = "psycopg2_binary-2.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:b4d7679a08fea64573c969f6994a2631908bb2c0e69a7235648642f3d2e39a68"}, ] pycparser = [ {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"}, @@ -1194,6 +1207,53 @@ sentry-sdk = [ {file = "sentry-sdk-1.1.0.tar.gz", hash = "sha256:c1227d38dca315ba35182373f129c3e2722e8ed999e52584e6aca7d287870739"}, {file = "sentry_sdk-1.1.0-py2.py3-none-any.whl", hash = "sha256:c7d380a21281e15be3d9f67a3c4fbb4f800c481d88ff8d8931f39486dd7b4ada"}, ] +simplejson = [ + {file = "simplejson-3.17.2-cp27-cp27m-macosx_10_13_x86_64.whl", hash = "sha256:2d3eab2c3fe52007d703a26f71cf649a8c771fcdd949a3ae73041ba6797cfcf8"}, + {file = "simplejson-3.17.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:813846738277729d7db71b82176204abc7fdae2f566e2d9fcf874f9b6472e3e6"}, + {file = "simplejson-3.17.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:292c2e3f53be314cc59853bd20a35bf1f965f3bc121e007ab6fd526ed412a85d"}, + {file = "simplejson-3.17.2-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0dd9d9c738cb008bfc0862c9b8fa6743495c03a0ed543884bf92fb7d30f8d043"}, + {file = "simplejson-3.17.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:42b8b8dd0799f78e067e2aaae97e60d58a8f63582939af60abce4c48631a0aa4"}, + {file = "simplejson-3.17.2-cp27-cp27m-win32.whl", hash = "sha256:8042040af86a494a23c189b5aa0ea9433769cc029707833f261a79c98e3375f9"}, + {file = "simplejson-3.17.2-cp27-cp27m-win_amd64.whl", hash = "sha256:034550078a11664d77bc1a8364c90bb7eef0e44c2dbb1fd0a4d92e3997088667"}, + {file = "simplejson-3.17.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:fed0f22bf1313ff79c7fc318f7199d6c2f96d4de3234b2f12a1eab350e597c06"}, + {file = "simplejson-3.17.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:2e7b57c2c146f8e4dadf84977a83f7ee50da17c8861fd7faf694d55e3274784f"}, + {file = "simplejson-3.17.2-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:da3c55cdc66cfc3fffb607db49a42448785ea2732f055ac1549b69dcb392663b"}, + {file = "simplejson-3.17.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:c1cb29b1fced01f97e6d5631c3edc2dadb424d1f4421dad079cb13fc97acb42f"}, + {file = "simplejson-3.17.2-cp33-cp33m-win32.whl", hash = "sha256:8f713ea65958ef40049b6c45c40c206ab363db9591ff5a49d89b448933fa5746"}, + {file = "simplejson-3.17.2-cp33-cp33m-win_amd64.whl", hash = "sha256:344e2d920a7f27b4023c087ab539877a1e39ce8e3e90b867e0bfa97829824748"}, + {file = "simplejson-3.17.2-cp34-cp34m-win32.whl", hash = "sha256:05b43d568300c1cd43f95ff4bfcff984bc658aa001be91efb3bb21df9d6288d3"}, + {file = "simplejson-3.17.2-cp34-cp34m-win_amd64.whl", hash = "sha256:cff6453e25204d3369c47b97dd34783ca820611bd334779d22192da23784194b"}, + {file = "simplejson-3.17.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:8acf76443cfb5c949b6e781c154278c059b09ac717d2757a830c869ba000cf8d"}, + {file = "simplejson-3.17.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:869a183c8e44bc03be1b2bbcc9ec4338e37fa8557fc506bf6115887c1d3bb956"}, + {file = "simplejson-3.17.2-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:5c659a0efc80aaaba57fcd878855c8534ecb655a28ac8508885c50648e6e659d"}, + {file = "simplejson-3.17.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:72d8a3ffca19a901002d6b068cf746be85747571c6a7ba12cbcf427bfb4ed971"}, + {file = "simplejson-3.17.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:4b3442249d5e3893b90cb9f72c7d6ce4d2ea144d2c0d9f75b9ae1e5460f3121a"}, + {file = "simplejson-3.17.2-cp35-cp35m-win32.whl", hash = "sha256:e058c7656c44fb494a11443191e381355388443d543f6fc1a245d5d238544396"}, + {file = "simplejson-3.17.2-cp35-cp35m-win_amd64.whl", hash = "sha256:934115642c8ba9659b402c8bdbdedb48651fb94b576e3b3efd1ccb079609b04a"}, + {file = "simplejson-3.17.2-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:ffd4e4877a78c84d693e491b223385e0271278f5f4e1476a4962dca6824ecfeb"}, + {file = "simplejson-3.17.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:10fc250c3edea4abc15d930d77274ddb8df4803453dde7ad50c2f5565a18a4bb"}, + {file = "simplejson-3.17.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:76ac9605bf2f6d9b56abf6f9da9047a8782574ad3531c82eae774947ae99cc3f"}, + {file = "simplejson-3.17.2-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:7f10f8ba9c1b1430addc7dd385fc322e221559d3ae49b812aebf57470ce8de45"}, + {file = "simplejson-3.17.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:bc00d1210567a4cdd215ac6e17dc00cb9893ee521cee701adfd0fa43f7c73139"}, + {file = "simplejson-3.17.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:af4868da7dd53296cd7630687161d53a7ebe2e63814234631445697bd7c29f46"}, + {file = "simplejson-3.17.2-cp36-cp36m-win32.whl", hash = "sha256:7d276f69bfc8c7ba6c717ba8deaf28f9d3c8450ff0aa8713f5a3280e232be16b"}, + {file = "simplejson-3.17.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a55c76254d7cf8d4494bc508e7abb993a82a192d0db4552421e5139235604625"}, + {file = "simplejson-3.17.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:9a2b7543559f8a1c9ed72724b549d8cc3515da7daf3e79813a15bdc4a769de25"}, + {file = "simplejson-3.17.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:311f5dc2af07361725033b13cc3d0351de3da8bede3397d45650784c3f21fbcf"}, + {file = "simplejson-3.17.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:2862beabfb9097a745a961426fe7daf66e1714151da8bb9a0c430dde3d59c7c0"}, + {file = "simplejson-3.17.2-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:afebfc3dd3520d37056f641969ce320b071bc7a0800639c71877b90d053e087f"}, + {file = "simplejson-3.17.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:d4813b30cb62d3b63ccc60dd12f2121780c7a3068db692daeb90f989877aaf04"}, + {file = "simplejson-3.17.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:3fabde09af43e0cbdee407555383063f8b45bfb52c361bc5da83fcffdb4fd278"}, + {file = "simplejson-3.17.2-cp37-cp37m-win32.whl", hash = "sha256:ceaa28a5bce8a46a130cd223e895080e258a88d51bf6e8de2fc54a6ef7e38c34"}, + {file = "simplejson-3.17.2-cp37-cp37m-win_amd64.whl", hash = "sha256:9551f23e09300a9a528f7af20e35c9f79686d46d646152a0c8fc41d2d074d9b0"}, + {file = "simplejson-3.17.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:c94dc64b1a389a416fc4218cd4799aa3756f25940cae33530a4f7f2f54f166da"}, + {file = "simplejson-3.17.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:b59aa298137ca74a744c1e6e22cfc0bf9dca3a2f41f51bc92eb05695155d905a"}, + {file = "simplejson-3.17.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:ad8f41c2357b73bc9e8606d2fa226233bf4d55d85a8982ecdfd55823a6959995"}, + {file = "simplejson-3.17.2-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:845a14f6deb124a3bcb98a62def067a67462a000e0508f256f9c18eff5847efc"}, + {file = "simplejson-3.17.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d0b64409df09edb4c365d95004775c988259efe9be39697d7315c42b7a5e7e94"}, + {file = "simplejson-3.17.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:55d65f9cc1b733d85ef95ab11f559cce55c7649a2160da2ac7a078534da676c8"}, + {file = "simplejson-3.17.2.tar.gz", hash = "sha256:75ecc79f26d99222a084fbdd1ce5aad3ac3a8bd535cd9059528452da38b68841"}, +] six = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, @@ -1211,8 +1271,8 @@ text-unidecode = [ {file = "text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8"}, ] urllib3 = [ - {file = "urllib3-1.26.5-py2.py3-none-any.whl", hash = "sha256:753a0374df26658f99d826cfe40394a686d05985786d946fbe4165b5148f5a7c"}, - {file = "urllib3-1.26.5.tar.gz", hash = "sha256:a7acd0977125325f516bda9735fa7142b909a8d01e8b2e4c8108d0984e6e0098"}, + {file = "urllib3-1.26.6-py2.py3-none-any.whl", hash = "sha256:39fb8672126159acb139a7718dd10806104dec1e2f0f6c88aab05d17df10c8d4"}, + {file = "urllib3-1.26.6.tar.gz", hash = "sha256:f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f"}, ] whitenoise = [ {file = "whitenoise-5.2.0-py2.py3-none-any.whl", hash = "sha256:05d00198c777028d72d8b0bbd234db605ef6d60e9410125124002518a48e515d"}, diff --git a/pyproject.toml b/pyproject.toml index 9f1c5007..e4ede24b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,3 +76,4 @@ Pillow = "^8.1.0" psycopg2-binary = "^2.8.6" sentry-sdk = "^1.1.0" django-active-link = "^0.1.7" +django-salesforce = "^3.2" From 47d67239efc2d269df86d373b2de80aa7fc2e042 Mon Sep 17 00:00:00 2001 From: Gregorio Florentino Date: Tue, 6 Jul 2021 11:11:05 -0400 Subject: [PATCH 2/5] Testing commit and push --- coderdojochi/models/course.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/coderdojochi/models/course.py b/coderdojochi/models/course.py index 2201d0d3..63a3081c 100644 --- a/coderdojochi/models/course.py +++ b/coderdojochi/models/course.py @@ -94,11 +94,13 @@ class Course(salesforce.models.SalesforceModel): default=timedelta(hours=3), help_text="HH:MM:ss", ) + # TODO: update db_column minimum_age = salesforce.models.IntegerField( default=7, validators=[MinValueValidator(0), MaxValueValidator(100)], ) + # TODO: update db_column maximum_age = salesforce.models.IntegerField( default=18, From 93ed7bf9aaa4e4fe83e3d3181bff2674447554da Mon Sep 17 00:00:00 2001 From: Gregorio Florentino Date: Tue, 6 Jul 2021 19:00:19 -0400 Subject: [PATCH 3/5] "Salesforce Migrations in progress" --- coderdojochi/admin.py | 48 +- coderdojochi/models/course.py | 23 +- coderdojochi/models/guardian.py | 42 +- coderdojochi/models/mentor.py | 31 +- coderdojochi/models/order.py | 38 +- coderdojochi/models/session.py | 115 +- coderdojochi/models/student.py | 58 +- fixtures/10-coderdojochi.guardian.json | 6 +- fixtures/12-coderdojochi.mentor.json | 3898 +++++++++++------------- fixtures/13-coderdojochi.student.json | 165 +- fixtures/14-coderdojochi.session.json | 48 +- fixtures/16-coderdojochi.order.json | 6 - poetry.lock | 7 +- tasks.py | 4 +- 14 files changed, 2092 insertions(+), 2397 deletions(-) diff --git a/coderdojochi/admin.py b/coderdojochi/admin.py index 5c99658f..bf6a60d9 100644 --- a/coderdojochi/admin.py +++ b/coderdojochi/admin.py @@ -110,8 +110,8 @@ class MentorAdmin(ImportExportMixin, ImportExportActionModelAdmin): "last_name", "user_link", "mentor_count_link", - "created_at", - "updated_at", + # "created_at", + # "updated_at", "is_active", "is_public", "background_check", @@ -130,10 +130,10 @@ class MentorAdmin(ImportExportMixin, ImportExportActionModelAdmin): ] ordering = [ - "-created_at", + # "-created_at", ] - date_hierarchy = "created_at" + # date_hierarchy = "created_at" search_fields = [ "user__first_name", @@ -151,7 +151,7 @@ class MentorAdmin(ImportExportMixin, ImportExportActionModelAdmin): ] filter_horizontal = [ - "race_ethnicity", + # "race_ethnicity", ] def view_on_site(self, obj): @@ -253,12 +253,12 @@ class GuardianAdmin(ImportExportMixin, ImportExportActionModelAdmin): "last_name", "student_count_link", "user_link", - "created_at", - "updated_at", + # "created_at", + # "updated_at", ] list_filter = [ - "zip", + # "zip", ] list_select_related = [ @@ -282,10 +282,10 @@ class GuardianAdmin(ImportExportMixin, ImportExportActionModelAdmin): ] filter_horizontal = [ - "race_ethnicity", + # "race_ethnicity", ] - date_hierarchy = "created_at" + # date_hierarchy = "created_at" view_on_site = False @@ -410,7 +410,7 @@ class StudentAdmin(ImportExportMixin, ImportExportActionModelAdmin): ] filter_horizontal = [ - "race_ethnicity", + # "race_ethnicity", ] ordering = [ @@ -428,7 +428,7 @@ class StudentAdmin(ImportExportMixin, ImportExportActionModelAdmin): "guardian", ] - date_hierarchy = "created_at" + # date_hierarchy = "created_at" view_on_site = False @@ -499,7 +499,7 @@ class CourseAdmin(ImportExportMixin, ImportExportActionModelAdmin): ordering = [ "code", - "created_at", + # "created_at", ] search_fields = [ @@ -551,7 +551,7 @@ class SessionAdmin(ImportExportMixin, ImportExportActionModelAdmin): filter_horizontal = [ # "waitlist_mentors", # "waitlist_students", - "assistant", + # "assistant", ] # autocomplete_fields = [ @@ -687,7 +687,7 @@ class OrderAdmin(ImportExportMixin, ImportExportActionModelAdmin): "get_student_age", "get_guardian_link", "get_session_link", - "_created_at", + # "_created_at", "is_checked_in", "is_active", ] @@ -710,7 +710,7 @@ class OrderAdmin(ImportExportMixin, ImportExportActionModelAdmin): ] ordering = [ - "created_at", + # "created_at", ] autocomplete_fields = [ @@ -719,7 +719,7 @@ class OrderAdmin(ImportExportMixin, ImportExportActionModelAdmin): "student", ] - date_hierarchy = "created_at" + # date_hierarchy = "created_at" view_on_site = False @@ -755,10 +755,10 @@ def get_session_link(self, obj): get_session_link.short_description = "Session" - def _created_at(self, obj): - return obj.created_at.strftime("%m/%d/%y %H:%M") + # def _created_at(self, obj): + # return obj.created_at.strftime("%m/%d/%y %H:%M") - _created_at.short_description = "Created At" + # _created_at.short_description = "Created At" def mentor_check_in(modeladmin, request, queryset): @@ -787,8 +787,8 @@ class MentorOrderAdmin(ImportExportMixin, ImportExportActionModelAdmin): "is_active", "week_reminder_sent", "day_reminder_sent", - "created_at", - "updated_at", + # "created_at", + # "updated_at", ] list_display_links = [ @@ -807,7 +807,7 @@ class MentorOrderAdmin(ImportExportMixin, ImportExportActionModelAdmin): ] ordering = [ - "created_at", + # "created_at", ] search_fields = [ @@ -829,7 +829,7 @@ class MentorOrderAdmin(ImportExportMixin, ImportExportActionModelAdmin): mentor_check_out, ] - date_hierarchy = "created_at" + # date_hierarchy = "created_at" view_on_site = False diff --git a/coderdojochi/models/course.py b/coderdojochi/models/course.py index 63a3081c..0f5c4d07 100644 --- a/coderdojochi/models/course.py +++ b/coderdojochi/models/course.py @@ -64,18 +64,18 @@ class Course(salesforce.models.SalesforceModel): # null=True, # ) - course_type = models.CharField( + course_type = salesforce.models.CharField( "type", max_length=2, choices=COURSE_TYPE_CHOICES, default=WEEKEND, ) - # slug = models.SlugField( - # max_length=40, - # blank=True, - # null=True, - # ) + slug = models.SlugField( + max_length=40, + blank=True, + null=True, + ) description = salesforce.models.TextField( db_column="hed__Extended_Description__c", @@ -90,11 +90,12 @@ class Course(salesforce.models.SalesforceModel): # ) # TODO: update db_column - duration = salesforce.models.DurationField( + duration = salesforce.models.TimeField( default=timedelta(hours=3), + db_column = "hed__Credit_Hours__c", help_text="HH:MM:ss", ) - + # TODO: update db_column minimum_age = salesforce.models.IntegerField( default=7, @@ -113,12 +114,14 @@ class Course(salesforce.models.SalesforceModel): # Auto create/update # TODO: update db_column - created_at = models.DateTimeField( + created_at = salesforce.models.DateTimeField( + # db_column='CreatedDate', auto_now_add=True, ) # TODO: update db_column - updated_at = models.DateTimeField( + updated_at = salesforce.models.DateTimeField( + # db_column='LastModifiedDate', auto_now=True, ) diff --git a/coderdojochi/models/guardian.py b/coderdojochi/models/guardian.py index aedf2a6d..7a0f2759 100644 --- a/coderdojochi/models/guardian.py +++ b/coderdojochi/models/guardian.py @@ -1,40 +1,46 @@ -from django.db import models +# from django.db import models from .common import CommonInfo from .race_ethnicity import RaceEthnicity from .user import CDCUser +import salesforce - -class Guardian(CommonInfo): - user = models.ForeignKey( +class Guardian(salesforce.models.SalesforceModel): + # class Guardian(CommonInfo) + user = salesforce.models.ForeignKey( CDCUser, - on_delete=models.CASCADE, + on_delete=salesforce.models.PROTECT, ) - is_active = models.BooleanField( + is_active = salesforce.models.BooleanField( + db_column="Active__c", default=True, ) - phone = models.CharField( + phone = salesforce.models.CharField( + db_column="Phone", max_length=50, blank=True, ) - zip = models.CharField( - max_length=20, - blank=True, - null=True, - ) - birthday = models.DateField( + #what is zip + # address = salesforce.models.Fore( + # max_length=20, + # blank=True, + # null=True, + # ) + birthday = salesforce.models.DateField( + db_column="Birthdate", blank=False, null=True, ) - gender = models.CharField( + gender = salesforce.models.CharField( + db_column="Gender__c", max_length=255, blank=False, null=True, ) - race_ethnicity = models.ManyToManyField( - RaceEthnicity, - blank=False, - ) + #race_ethnicity = models.ManyToManyField( + # RaceEthnicity, + # blank=False, + # ) def __str__(self): return self.full_name diff --git a/coderdojochi/models/mentor.py b/coderdojochi/models/mentor.py index c8a20b5d..1dc92146 100644 --- a/coderdojochi/models/mentor.py +++ b/coderdojochi/models/mentor.py @@ -10,6 +10,7 @@ from .race_ethnicity import RaceEthnicity from .user import CDCUser +import salesforce def generate_filename(instance, filename): # file will be uploaded to MEDIA_ROOT/avatar/ @@ -18,16 +19,20 @@ def generate_filename(instance, filename): # TODO: Add MentorManager -class Mentor(CommonInfo): - user = models.ForeignKey( +class Mentor(salesforce.models.SalesforceModel): + # Mentor(CommonInfo) + user = salesforce.models.ForeignKey( CDCUser, - on_delete=models.CASCADE, + on_delete=models.PROTECT, ) - bio = models.TextField( + bio = salesforce.models.TextField( blank=True, null=True, + db_column="Description" ) - is_active = models.BooleanField( + + is_active = salesforce.models.BooleanField( + db_column="Active__c", default=True, ) background_check = models.BooleanField( @@ -50,33 +55,39 @@ class Mentor(CommonInfo): avatar_approved = models.BooleanField( default=False, ) - birthday = models.DateField( + birthday = salesforce.models.DateField( blank=False, null=True, + db_column="Birthdate", ) - gender = models.CharField( + gender = salesforce.models.CharField( max_length=255, blank=False, null=True, + db_column="Gender__c", ) + #Many to Many field in salesforce? race_ethnicity = models.ManyToManyField( RaceEthnicity, blank=False, ) - work_place = models.CharField( + work_place = salesforce.models.CharField( max_length=255, blank=True, null=True, + db_column="GW_Volunteers__Volunteer_Organization__c", ) - phone = models.CharField( + phone = salesforce.models.CharField( max_length=255, blank=True, null=True, + db_column="Phone", ) - home_address = models.CharField( + home_address = salesforce.models.CharField( max_length=255, blank=True, null=True, + db_column="npe01__Home_Address__c", ) def __str__(self): diff --git a/coderdojochi/models/order.py b/coderdojochi/models/order.py index 86c9a2c6..20ef9dc9 100644 --- a/coderdojochi/models/order.py +++ b/coderdojochi/models/order.py @@ -1,56 +1,60 @@ -from django.db import models +# from django.db import models from .common import CommonInfo +import salesforce - -class Order(CommonInfo): +class Order(salesforce.models.SalesforceModel): + # Order(CommonInfo) from .guardian import Guardian from .session import Session from .student import Student - guardian = models.ForeignKey( + guardian = salesforce.models.ForeignKey( Guardian, - on_delete=models.CASCADE, + on_delete=salesforce.models.PROTECT, ) - session = models.ForeignKey( + session = salesforce.models.ForeignKey( Session, - on_delete=models.CASCADE, + db_column="hed__Course_Offering__c", + on_delete=salesforce.models.PROTECT, ) - student = models.ForeignKey( + student = salesforce.models.ForeignKey( Student, - on_delete=models.CASCADE, + on_delete=salesforce.models.PROTECT, + db_column="Contact" ) - is_active = models.BooleanField( + is_active = salesforce.models.BooleanField( default=True, ) - ip = models.CharField( + ip = salesforce.models.CharField( max_length=255, blank=True, null=True, ) - check_in = models.DateTimeField( + check_in = salesforce.models.DateTimeField( blank=True, null=True, + db_column="Check_in__c", ) - alternate_guardian = models.CharField( + alternate_guardian = salesforce.models.CharField( max_length=255, blank=True, null=True, ) - affiliate = models.CharField( + affiliate = salesforce.models.CharField( max_length=255, blank=True, null=True, ) - order_number = models.CharField( + order_number = salesforce.models.CharField( max_length=255, blank=True, null=True, ) - week_reminder_sent = models.BooleanField( + week_reminder_sent = salesforce.models.BooleanField( default=False, ) - day_reminder_sent = models.BooleanField( + day_reminder_sent = salesforce.models.BooleanField( default=False, ) diff --git a/coderdojochi/models/session.py b/coderdojochi/models/session.py index 560a7007..73b68f65 100644 --- a/coderdojochi/models/session.py +++ b/coderdojochi/models/session.py @@ -1,15 +1,14 @@ from datetime import timedelta from django.core.validators import MaxValueValidator, MinValueValidator -from django.db import models from django.urls.base import reverse from django.utils import formats from django.utils.functional import cached_property - +import salesforce from .common import CommonInfo -class Session(CommonInfo): +class Session(salesforce.models.SalesforceModel): from .course import Course from .location import Location from .mentor import Mentor @@ -23,26 +22,32 @@ class Session(CommonInfo): (FEMALE, "Female"), ) - course = models.ForeignKey( + course = salesforce.models.ForeignKey( Course, - on_delete=models.CASCADE, + on_delete=salesforce.models.PROTECT, + db_column = "hed__Course__c", limit_choices_to={"is_active": True}, ) - start_date = models.DateTimeField() - location = models.ForeignKey( + + start_date = salesforce.models.DateTimeField( + db_column="hed__Start_Date__c" + ) + + location = salesforce.models.ForeignKey( Location, - on_delete=models.CASCADE, + on_delete=salesforce.models.PROTECT, limit_choices_to={"is_active": True}, ) - capacity = models.IntegerField( + capacity = salesforce.models.IntegerField( + db_column = "hed__Capacity__c", default=20, ) - mentor_capacity = models.IntegerField( + mentor_capacity = salesforce.models.IntegerField( default=10, ) - instructor = models.ForeignKey( + instructor = salesforce.models.ForeignKey( Mentor, - on_delete=models.CASCADE, + on_delete=salesforce.models.PROTECT, related_name="session_instructor", limit_choices_to={ "user__groups__name": "Instructor", @@ -51,12 +56,14 @@ class Session(CommonInfo): "background_check": True, "avatar_approved": True, }, + db_column = "hed__Faculty__c", help_text="A mentor with 'Instructor' role, is active (user and mentor), background check passed, and avatar approved.", ) - assistant = models.ManyToManyField( + assistant = salesforce.models.ForeignKey( Mentor, blank=True, + null=True, related_name="session_assistant", limit_choices_to={ "user__groups__name": "Assistant", @@ -65,23 +72,24 @@ class Session(CommonInfo): "background_check": True, "avatar_approved": True, }, + on_delete = salesforce.models.PROTECT, help_text="A mentor with 'Assistant' role, is active (user and mentor), background check passed, and avatar approved.", ) # Pricing - cost = models.DecimalField( + cost = salesforce.models.DecimalField( max_digits=6, decimal_places=2, blank=True, null=True, ) - minimum_cost = models.DecimalField( + minimum_cost = salesforce.models.DecimalField( max_digits=6, decimal_places=2, blank=True, null=True, ) - maximum_cost = models.DecimalField( + maximum_cost = salesforce.models.DecimalField( max_digits=6, decimal_places=2, blank=True, @@ -89,104 +97,104 @@ class Session(CommonInfo): ) # Extra - additional_info = models.TextField(blank=True, null=True, help_text="Basic HTML allowed") - waitlist_mentors = models.ManyToManyField( - Mentor, - blank=True, - related_name="session_waitlist_mentors", - ) - waitlist_students = models.ManyToManyField( - Student, - blank=True, - related_name="session_waitlist_students", - ) - external_enrollment_url = models.CharField( + additional_info = salesforce.models.TextField(blank=True, null=True, help_text="Basic HTML allowed") + # waitlist_mentors = salesforce.models.ManyToManyField( + # Mentor, + # blank=True, + # related_name="session_waitlist_mentors", + # ) + # waitlist_students = salesforce.models.ManyToManyField( + # Student, + # blank=True, + # related_name="session_waitlist_students", + # ) + external_enrollment_url = salesforce.models.CharField( max_length=255, blank=True, null=True, help_text="When provided, local enrollment is disabled.", ) - is_active = models.BooleanField( + is_active = salesforce.models.BooleanField( default=False, help_text="Session is active.", ) - is_public = models.BooleanField( + is_public = salesforce.models.BooleanField( default=False, help_text="Session is a public session.", ) - password = models.CharField( + password = salesforce.models.CharField( blank=True, max_length=255, ) - partner_message = models.TextField( + partner_message = salesforce.models.TextField( blank=True, ) - announced_date_mentors = models.DateTimeField( + announced_date_mentors = salesforce.models.DateTimeField( blank=True, null=True, ) - announced_date_guardians = models.DateTimeField( + announced_date_guardians =salesforce.models.DateTimeField( blank=True, null=True, ) - image_url = models.CharField( + image_url = salesforce.models.CharField( max_length=255, blank=True, null=True, ) - bg_image = models.ImageField( - blank=True, - null=True, - ) - mentors_week_reminder_sent = models.BooleanField( + # bg_image = salesforce.models.ImageField( + # blank=True, + # null=True, + # ) + mentors_week_reminder_sent =salesforce.models.BooleanField( default=False, ) - mentors_day_reminder_sent = models.BooleanField( + mentors_day_reminder_sent = salesforce.models.BooleanField( default=False, ) - gender_limitation = models.CharField( + gender_limitation = salesforce.models.CharField( help_text="Limits the class to be only one gender.", max_length=255, choices=GENDER_LIMITATION_CHOICES, blank=True, null=True, ) - override_minimum_age_limitation = models.IntegerField( + override_minimum_age_limitation = salesforce.models.IntegerField( "Min Age", help_text="Only update this if different from the default.", blank=True, null=True, validators=[MinValueValidator(0), MaxValueValidator(100)], ) - override_maximum_age_limitation = models.IntegerField( + override_maximum_age_limitation = salesforce.models.IntegerField( "Max Age", help_text="Only update this if different from the default.", blank=True, null=True, validators=[MinValueValidator(0), MaxValueValidator(100)], ) - online_video_link = models.URLField( + online_video_link = salesforce.models.URLField( "Online Video Link", help_text="Zoom link with password.", blank=True, null=True, ) - online_video_meeting_id = models.CharField( + online_video_meeting_id = salesforce.models.CharField( "Online Video Meeting ID", help_text="XXX XXXX XXXX", max_length=255, blank=True, null=True, ) - online_video_meeting_password = models.CharField( + online_video_meeting_password = salesforce.models.CharField( "Online Video Meeting Password", help_text="Plain text password shared by Zoom", max_length=255, blank=True, null=True, ) - online_video_description = models.TextField( + online_video_description = salesforce.models.TextField( "Online Video Description", help_text="Information on how to connect to the video call. Basic HTML allowed.", blank=True, @@ -194,19 +202,23 @@ class Session(CommonInfo): ) # kept for older records - old_end_date = models.DateTimeField( + old_end_date = salesforce.models.DateTimeField( blank=True, null=True, ) - old_mentor_start_date = models.DateTimeField( + old_mentor_start_date = salesforce.models.DateTimeField( blank=True, null=True, ) - old_mentor_end_date = models.DateTimeField( + + old_mentor_end_date = salesforce.models.DateTimeField( blank=True, null=True, ) + class Meta: + db_table = "hed__Course_Offering__c" + @property def end_date(self): # Some records have a defined record with the end date, @@ -333,6 +345,7 @@ def get_checked_in_students(self): class PartnerPasswordAccess(CommonInfo): from .user import CDCUser + from django.db import models user = models.ForeignKey( CDCUser, diff --git a/coderdojochi/models/student.py b/coderdojochi/models/student.py index 88f6643f..cc25522c 100644 --- a/coderdojochi/models/student.py +++ b/coderdojochi/models/student.py @@ -1,62 +1,76 @@ -from django.db import models +# from django.db import models from django.utils import timezone +import salesforce + from .common import CommonInfo from .race_ethnicity import RaceEthnicity -class Student(CommonInfo): +class Student(salesforce.models.SalesforceModel): from .guardian import Guardian - guardian = models.ForeignKey( + guardian = salesforce.models.ForeignKey( Guardian, - on_delete=models.CASCADE, + on_delete=salesforce.models.PROTECT, ) - first_name = models.CharField( + first_name = salesforce.models.CharField( + db_column = "FirstName", max_length=255, ) - last_name = models.CharField( + last_name = salesforce.models.CharField( + db_column="LastName", max_length=255, ) - birthday = models.DateField() - gender = models.CharField( - max_length=255, + birthday = salesforce.models.DateField( + db_column = "Birthdate" ) - race_ethnicity = models.ManyToManyField( - RaceEthnicity, - blank=True, + gender = salesforce.models.CharField( + db_column="Gender__c", + max_length=255, ) - school_name = models.CharField( + # race_ethnicity = salesforce.models.ManyToManyField( + # RaceEthnicity, + # # db_column = "hed__Race__c", + # blank=True, + # ) + # race_ethnicity = models.ManyToManyField( + # RaceEthnicity, + # blank=True, + # ) + school_name = salesforce.models.CharField( max_length=255, null=True, ) - school_type = models.CharField( + school_type = salesforce.models.CharField( max_length=255, null=True, ) - medical_conditions = models.TextField( + medical_conditions = salesforce.models.TextField( + db_column="Medical__c", blank=True, null=True, ) - medications = models.TextField( + medications = salesforce.models.TextField( + db_column='Medications__c', blank=True, null=True, ) - photo_release = models.BooleanField( + photo_release = salesforce.models.BooleanField( "Photo Consent", help_text=( "I hereby give permission to We All Code to use " "the student's image and/or likeness in promotional materials." ), - default=False, + db_column="Photo_Release__c", ) - consent = models.BooleanField( + consent = salesforce.models.BooleanField( "General Consent", help_text=("I hereby give consent for the student signed up " "above to participate in We All Code."), - default=False, + db_column="Consent__c", ) - is_active = models.BooleanField( - default=True, + is_active = salesforce.models.BooleanField( + db_column="Active__c", ) def __str__(self): diff --git a/fixtures/10-coderdojochi.guardian.json b/fixtures/10-coderdojochi.guardian.json index 5567a2bd..602f58be 100644 --- a/fixtures/10-coderdojochi.guardian.json +++ b/fixtures/10-coderdojochi.guardian.json @@ -3,15 +3,11 @@ "model": "coderdojochi.guardian", "pk": 1, "fields": { - "created_at": "2016-05-08T19:04:36.438Z", - "updated_at": "2016-05-08T19:04:39.552Z", "user": 2, "is_active": true, "phone": "2489141315", - "zip": "60650", "birthday": null, - "gender": null, - "race_ethnicity": [] + "gender": null } } ] diff --git a/fixtures/12-coderdojochi.mentor.json b/fixtures/12-coderdojochi.mentor.json index 388de454..b55e0e38 100644 --- a/fixtures/12-coderdojochi.mentor.json +++ b/fixtures/12-coderdojochi.mentor.json @@ -1,2102 +1,1802 @@ [ -{ - "model": "coderdojochi.mentor", - "pk": 1, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 1, - "bio": "Hello, I'm a test mentor!", - "is_active": true, - "background_check": true, - "is_public": true, - "avatar": "avatar/test_admin.jpg", - "avatar_approved": true, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] + { + "model": "coderdojochi.mentor", + "pk": 1, + "fields": { + "user": 1, + "bio": "Hello, I'm a test mentor!", + "is_active": true, + "background_check": true, + "is_public": true, + "avatar": "avatar/test_admin.jpg", + "avatar_approved": true, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 2, + "fields": { + "user": 3, + "bio": "", + "is_active": true, + "background_check": true, + "is_public": true, + "avatar": "", + "avatar_approved": true, + "birthday": "1988-01-01", + "gender": "male", + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 3, + "fields": { + "user": 4, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 4, + "fields": { + "user": 5, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 5, + "fields": { + "user": 6, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 6, + "fields": { + "user": 7, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 7, + "fields": { + "user": 8, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 8, + "fields": { + "user": 9, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 9, + "fields": { + "user": 10, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 10, + "fields": { + "user": 11, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 11, + "fields": { + "user": 12, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 12, + "fields": { + "user": 13, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 13, + "fields": { + "user": 14, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 14, + "fields": { + "user": 15, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 15, + "fields": { + "user": 16, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 16, + "fields": { + "user": 17, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 17, + "fields": { + "user": 18, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 18, + "fields": { + "user": 19, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 19, + "fields": { + "user": 20, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 20, + "fields": { + "user": 21, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 21, + "fields": { + "user": 22, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 22, + "fields": { + "user": 23, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 23, + "fields": { + "user": 24, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 24, + "fields": { + "user": 25, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 25, + "fields": { + "user": 26, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 26, + "fields": { + "user": 27, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 27, + "fields": { + "user": 28, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 28, + "fields": { + "user": 29, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 29, + "fields": { + "user": 30, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 30, + "fields": { + "user": 31, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 31, + "fields": { + "user": 32, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 32, + "fields": { + "user": 33, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 33, + "fields": { + "user": 34, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 34, + "fields": { + "user": 35, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 35, + "fields": { + "user": 36, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 36, + "fields": { + "user": 37, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 37, + "fields": { + "user": 38, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 38, + "fields": { + "user": 39, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 39, + "fields": { + "user": 40, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 40, + "fields": { + "user": 41, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 41, + "fields": { + "user": 42, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 42, + "fields": { + "user": 43, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 43, + "fields": { + "user": 44, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 44, + "fields": { + "user": 45, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 45, + "fields": { + "user": 46, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 46, + "fields": { + "user": 47, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 47, + "fields": { + "user": 48, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 48, + "fields": { + "user": 49, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 49, + "fields": { + "user": 50, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 50, + "fields": { + "user": 51, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 51, + "fields": { + "user": 52, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 52, + "fields": { + "user": 53, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 53, + "fields": { + "user": 54, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 54, + "fields": { + "user": 55, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 55, + "fields": { + "user": 56, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 56, + "fields": { + "user": 57, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 57, + "fields": { + "user": 58, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 58, + "fields": { + "user": 59, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 59, + "fields": { + "user": 60, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 60, + "fields": { + "user": 61, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 61, + "fields": { + "user": 62, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 62, + "fields": { + "user": 63, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 63, + "fields": { + "user": 64, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 64, + "fields": { + "user": 65, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 65, + "fields": { + "user": 66, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 66, + "fields": { + "user": 67, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 67, + "fields": { + "user": 68, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 68, + "fields": { + "user": 69, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 69, + "fields": { + "user": 70, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 70, + "fields": { + "user": 71, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 71, + "fields": { + "user": 72, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 72, + "fields": { + "user": 73, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 73, + "fields": { + "user": 74, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 74, + "fields": { + "user": 75, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 75, + "fields": { + "user": 76, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 76, + "fields": { + "user": 77, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 77, + "fields": { + "user": 78, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 78, + "fields": { + "user": 79, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 79, + "fields": { + "user": 80, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 80, + "fields": { + "user": 81, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 81, + "fields": { + "user": 82, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 82, + "fields": { + "user": 83, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 83, + "fields": { + "user": 84, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 84, + "fields": { + "user": 85, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 85, + "fields": { + "user": 86, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 86, + "fields": { + "user": 87, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 87, + "fields": { + "user": 88, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 88, + "fields": { + "user": 89, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 89, + "fields": { + "user": 90, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 90, + "fields": { + "user": 91, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 91, + "fields": { + "user": 92, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 92, + "fields": { + "user": 93, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 93, + "fields": { + "user": 94, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 94, + "fields": { + "user": 95, + "bio": "", + "is_active": true, + "background_check": true, + "is_public": true, + "avatar": "", + "avatar_approved": true, + "birthday": "1990-04-20", + "gender": "male", + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 95, + "fields": { + "user": 96, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 96, + "fields": { + "user": 97, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 97, + "fields": { + "user": 98, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 98, + "fields": { + "user": 99, + "bio": "", + "is_active": true, + "background_check": true, + "is_public": true, + "avatar": "", + "avatar_approved": true, + "birthday": "2000-01-01", + "gender": "female", + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 99, + "fields": { + "user": 100, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } + }, + { + "model": "coderdojochi.mentor", + "pk": 100, + "fields": { + "user": 101, + "bio": "", + "is_active": true, + "background_check": false, + "is_public": false, + "avatar": "", + "avatar_approved": false, + "birthday": null, + "gender": null, + "work_place": null, + "phone": null, + "home_address": null + } } -}, -{ - "model": "coderdojochi.mentor", - "pk": 2, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 3, - "bio": "", - "is_active": true, - "background_check": true, - "is_public": true, - "avatar": "", - "avatar_approved": true, - "birthday": "1988-01-01", - "gender": "male", - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [2] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 3, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 4, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 4, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 5, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 5, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 6, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 6, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 7, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 7, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 8, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 8, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 9, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 9, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 10, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 10, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 11, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 11, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 12, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 12, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 13, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 13, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 14, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 14, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 15, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 15, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 16, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 16, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 17, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 17, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 18, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 18, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 19, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 19, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 20, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 20, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 21, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 21, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 22, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 22, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 23, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 23, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 24, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 24, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 25, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 25, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 26, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 26, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 27, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 27, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 28, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 28, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 29, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 29, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 30, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 30, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 31, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 31, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 32, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 32, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 33, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 33, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 34, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 34, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 35, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 35, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 36, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 36, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 37, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 37, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 38, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 38, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 39, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 39, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 40, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 40, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 41, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 41, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 42, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 42, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 43, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 43, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 44, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 44, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 45, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 45, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 46, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 46, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 47, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 47, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 48, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 48, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 49, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 49, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 50, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 50, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 51, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 51, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 52, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 52, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 53, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 53, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 54, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 54, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 55, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 55, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 56, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 56, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 57, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 57, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 58, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 58, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 59, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 59, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 60, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 60, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 61, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 61, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 62, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 62, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 63, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 63, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 64, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 64, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 65, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 65, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 66, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 66, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 67, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 67, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 68, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 68, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 69, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 69, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 70, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 70, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 71, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 71, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 72, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 72, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 73, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 73, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 74, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 74, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 75, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 75, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 76, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 76, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 77, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 77, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 78, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 78, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 79, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 79, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 80, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 80, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 81, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 81, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 82, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 82, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 83, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 83, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 84, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 84, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 85, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 85, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 86, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 86, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 87, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 87, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 88, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 88, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 89, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 89, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 90, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 90, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 91, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 91, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 92, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 92, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 93, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 93, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 94, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 94, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 95, - "bio": "", - "is_active": true, - "background_check": true, - "is_public": true, - "avatar": "", - "avatar_approved": true, - "birthday": "1990-04-20", - "gender": "male", - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [4,7] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 95, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 96, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 96, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 97, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 97, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 98, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 98, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 99, - "bio": "", - "is_active": true, - "background_check": true, - "is_public": true, - "avatar": "", - "avatar_approved": true, - "birthday": "2000-01-01", - "gender": "female", - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [1,7] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 99, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 100, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -}, -{ - "model": "coderdojochi.mentor", - "pk": 100, - "fields": { - "created_at": "2013-01-01T06:00:00Z", - "updated_at": "2013-01-01T06:00:00Z", - "user": 101, - "bio": "", - "is_active": true, - "background_check": false, - "is_public": false, - "avatar": "", - "avatar_approved": false, - "birthday": null, - "gender": null, - "work_place": null, - "phone": null, - "home_address": null, - "race_ethnicity": [] - } -} ] diff --git a/fixtures/13-coderdojochi.student.json b/fixtures/13-coderdojochi.student.json index 40a87786..ff04fa83 100644 --- a/fixtures/13-coderdojochi.student.json +++ b/fixtures/13-coderdojochi.student.json @@ -1,97 +1,74 @@ [ -{ - "model": "coderdojochi.student", - "pk": 1, - "fields": { - "created_at": "2016-05-08T19:05:21.112Z", - "updated_at": "2016-05-08T19:05:21.112Z", - "guardian": 1, - "first_name": "David", - "last_name": "Doe", - "birthday": "2004-05-02", - "gender": "Male", - "school_name": "Murphy Elementary", - "school_type": "Public", - "medical_conditions": "", - "medications": "", - "photo_release": true, - "consent": true, - "is_active": true, - "race_ethnicity": [ - 3, - 4, - 5, - 6 - ] + { + "model": "coderdojochi.student", + "pk": 1, + "fields": { + "guardian": 1, + "first_name": "David", + "last_name": "Doe", + "birthday": "2004-05-02", + "gender": "Male", + "school_name": "Murphy Elementary", + "school_type": "Public", + "medical_conditions": "", + "medications": "", + "photo_release": true, + "consent": true, + "is_active": true + } + }, + { + "model": "coderdojochi.student", + "pk": 2, + "fields": { + "guardian": 1, + "first_name": "Rachel", + "last_name": "Doe", + "birthday": "2011-05-17", + "gender": "Female", + "school_name": "Disney", + "school_type": "Private", + "medical_conditions": "", + "medications": "", + "photo_release": true, + "consent": true, + "is_active": true + } + }, + { + "model": "coderdojochi.student", + "pk": 3, + "fields": { + "guardian": 1, + "first_name": "Kelly", + "last_name": "Doe", + "birthday": "2008-01-13", + "gender": "Other", + "school_name": "Murphy Elementary", + "school_type": "Public", + "medical_conditions": "", + "medications": "", + "photo_release": true, + "consent": true, + "is_active": true + } + }, + { + "model": "coderdojochi.student", + "pk": 4, + "fields": { + "guardian": 1, + "first_name": "Mitch", + "last_name": "Doe", + "birthday": "1996-05-08", + "gender": "Boy", + "school_name": "Murphy Elementary", + "school_type": "Public", + "medical_conditions": "", + "medications": "", + "photo_release": true, + "consent": true, + "is_active": true + } } -}, -{ - "model": "coderdojochi.student", - "pk": 2, - "fields": { - "created_at": "2016-05-08T19:05:51.103Z", - "updated_at": "2016-05-08T19:05:54.813Z", - "guardian": 1, - "first_name": "Rachel", - "last_name": "Doe", - "birthday": "2011-05-17", - "gender": "Female", - "school_name": "Disney", - "school_type": "Private", - "medical_conditions": "", - "medications": "", - "photo_release": true, - "consent": true, - "is_active": true, - "race_ethnicity": [ - 2 - ] - } -}, -{ - "model": "coderdojochi.student", - "pk": 3, - "fields": { - "created_at": "2016-05-08T19:06:25.378Z", - "updated_at": "2016-05-08T19:06:31.135Z", - "guardian": 1, - "first_name": "Kelly", - "last_name": "Doe", - "birthday": "2008-01-13", - "gender": "Other", - "school_name": "Murphy Elementary", - "school_type": "Public", - "medical_conditions": "", - "medications": "", - "photo_release": true, - "consent": true, - "is_active": true, - "race_ethnicity": [ - 4 - ] - } -}, -{ - "model": "coderdojochi.student", - "pk": 4, - "fields": { - "created_at": "2016-05-08T19:07:00.193Z", - "updated_at": "2016-05-08T19:07:00.193Z", - "guardian": 1, - "first_name": "Mitch", - "last_name": "Doe", - "birthday": "1996-05-08", - "gender": "Boy", - "school_name": "Murphy Elementary", - "school_type": "Public", - "medical_conditions": "", - "medications": "", - "photo_release": true, - "consent": true, - "is_active": true, - "race_ethnicity": [ - 7 - ] - } -} ] diff --git a/fixtures/14-coderdojochi.session.json b/fixtures/14-coderdojochi.session.json index 2fdea64f..4ed6feef 100644 --- a/fixtures/14-coderdojochi.session.json +++ b/fixtures/14-coderdojochi.session.json @@ -3,8 +3,6 @@ "model": "coderdojochi.session", "pk": 1, "fields": { - "created_at": "2000-01-01T06:00:00Z", - "updated_at": "2000-01-01T06:00:00Z", "course": 1, "start_date": "2022-01-01T16:00:00Z", "location": 3, @@ -23,7 +21,7 @@ "announced_date_mentors": null, "announced_date_guardians": null, "image_url": "classes/0001.jpg", - "bg_image": "", + "mentors_week_reminder_sent": true, "mentors_day_reminder_sent": true, "gender_limitation": "male", @@ -36,17 +34,13 @@ "old_end_date": "2020-01-01T19:00:00Z", "old_mentor_start_date": "2020-01-01T15:00:00Z", "old_mentor_end_date": "2020-01-01T20:00:00Z", - "assistant": [94, 98], - "waitlist_mentors": [], - "waitlist_students": [] + "assistant": 94 } }, { "model": "coderdojochi.session", "pk": 2, "fields": { - "created_at": "2000-01-01T06:00:00Z", - "updated_at": "2000-01-01T06:00:00Z", "course": 1, "start_date": "2022-02-02T16:00:00Z", "location": 1, @@ -65,7 +59,7 @@ "announced_date_mentors": null, "announced_date_guardians": null, "image_url": "classes/0002.jpg", - "bg_image": "", + "mentors_week_reminder_sent": false, "mentors_day_reminder_sent": false, "gender_limitation": null, @@ -78,17 +72,13 @@ "old_end_date": "2020-02-02T19:00:00Z", "old_mentor_start_date": "2020-02-02T15:00:00Z", "old_mentor_end_date": "2020-02-02T20:00:00Z", - "assistant": [94], - "waitlist_mentors": [], - "waitlist_students": [] + "assistant": 94 } }, { "model": "coderdojochi.session", "pk": 3, "fields": { - "created_at": "2000-01-01T06:00:00Z", - "updated_at": "2000-01-01T06:00:00Z", "course": 1, "start_date": "2022-03-03T16:00:00Z", "location": 2, @@ -107,7 +97,7 @@ "announced_date_mentors": null, "announced_date_guardians": null, "image_url": "classes/0003.jpg", - "bg_image": "", + "mentors_week_reminder_sent": false, "mentors_day_reminder_sent": false, "gender_limitation": "Male", @@ -120,17 +110,13 @@ "old_end_date": "2020-03-03T19:00:00Z", "old_mentor_start_date": "2020-03-03T15:00:00Z", "old_mentor_end_date": "2020-03-03T20:00:00Z", - "assistant": [], - "waitlist_mentors": [], - "waitlist_students": [] + "assistant": 94 } }, { "model": "coderdojochi.session", "pk": 4, "fields": { - "created_at": "2000-01-01T06:00:00Z", - "updated_at": "2000-01-01T06:00:00Z", "course": 1, "start_date": "2022-04-04T15:00:00Z", "location": 1, @@ -149,7 +135,7 @@ "announced_date_mentors": null, "announced_date_guardians": null, "image_url": "classes/0004.jpg", - "bg_image": "", + "mentors_week_reminder_sent": false, "mentors_day_reminder_sent": false, "gender_limitation": null, @@ -162,17 +148,13 @@ "old_end_date": "2020-04-04T16:00:00Z", "old_mentor_start_date": "2020-04-04T15:00:00Z", "old_mentor_end_date": "2020-04-04T20:00:00Z", - "assistant": [], - "waitlist_mentors": [], - "waitlist_students": [] + "assistant": 94 } }, { "model": "coderdojochi.session", "pk": 5, "fields": { - "created_at": "2000-01-01T06:00:00Z", - "updated_at": "2000-01-01T06:00:00Z", "course": 1, "start_date": "2022-05-05T16:00:00Z", "location": 3, @@ -191,7 +173,7 @@ "announced_date_mentors": null, "announced_date_guardians": null, "image_url": "classes/0001.jpg", - "bg_image": "", + "mentors_week_reminder_sent": false, "mentors_day_reminder_sent": false, "gender_limitation": "female", @@ -204,17 +186,13 @@ "old_end_date": "2020-05-05T19:00:00Z", "old_mentor_start_date": "2020-05-05T15:00:00Z", "old_mentor_end_date": "2020-05-05T20:00:00Z", - "assistant": [], - "waitlist_mentors": [], - "waitlist_students": [] + "assistant": 94 } }, { "model": "coderdojochi.session", "pk": 6, "fields": { - "created_at": "2000-01-01T06:00:00Z", - "updated_at": "2000-01-01T06:00:00Z", "course": 2, "start_date": "2022-07-06T15:00:00Z", "location": 2, @@ -233,7 +211,7 @@ "announced_date_mentors": null, "announced_date_guardians": null, "image_url": null, - "bg_image": "", + "mentors_week_reminder_sent": false, "mentors_day_reminder_sent": false, "gender_limitation": null, @@ -246,9 +224,7 @@ "old_end_date": "2020-07-10T20:00:00Z", "old_mentor_start_date": "2020-06-08T14:00:00Z", "old_mentor_end_date": "2020-06-12T20:30:00Z", - "assistant": [], - "waitlist_mentors": [], - "waitlist_students": [] + "assistant": 94 } } ] diff --git a/fixtures/16-coderdojochi.order.json b/fixtures/16-coderdojochi.order.json index 6ae1b4d6..bb32906e 100644 --- a/fixtures/16-coderdojochi.order.json +++ b/fixtures/16-coderdojochi.order.json @@ -3,8 +3,6 @@ "model": "coderdojochi.order", "pk": 1, "fields": { - "created_at": "2016-05-08T19:07:25.346Z", - "updated_at": "2016-05-08T19:07:25.346Z", "guardian": 1, "session": 2, "student": 1, @@ -22,8 +20,6 @@ "model": "coderdojochi.order", "pk": 2, "fields": { - "created_at": "2016-05-08T19:07:41.042Z", - "updated_at": "2016-05-08T19:07:41.042Z", "guardian": 1, "session": 2, "student": 2, @@ -41,8 +37,6 @@ "model": "coderdojochi.order", "pk": 3, "fields": { - "created_at": "2016-05-08T19:07:57.868Z", - "updated_at": "2016-05-08T19:07:57.868Z", "guardian": 1, "session": 2, "student": 3, diff --git a/poetry.lock b/poetry.lock index 6ed608f0..686e303e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -684,7 +684,7 @@ crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"] [[package]] name = "sentry-sdk" -version = "1.1.0" +version = "1.2.0" description = "Python client for Sentry (https://sentry.io)" category = "main" optional = false @@ -703,6 +703,7 @@ chalice = ["chalice (>=1.16.0)"] django = ["django (>=1.8)"] falcon = ["falcon (>=1.4)"] flask = ["flask (>=0.11)", "blinker (>=1.1)"] +httpx = ["httpx (>=0.16.0)"] pure_eval = ["pure-eval", "executing", "asttokens"] pyspark = ["pyspark (>=2.4.4)"] rq = ["rq (>=0.6)"] @@ -1204,8 +1205,8 @@ s3transfer = [ {file = "s3transfer-0.4.2.tar.gz", hash = "sha256:cb022f4b16551edebbb31a377d3f09600dbada7363d8c5db7976e7f47732e1b2"}, ] sentry-sdk = [ - {file = "sentry-sdk-1.1.0.tar.gz", hash = "sha256:c1227d38dca315ba35182373f129c3e2722e8ed999e52584e6aca7d287870739"}, - {file = "sentry_sdk-1.1.0-py2.py3-none-any.whl", hash = "sha256:c7d380a21281e15be3d9f67a3c4fbb4f800c481d88ff8d8931f39486dd7b4ada"}, + {file = "sentry-sdk-1.2.0.tar.gz", hash = "sha256:9907adbdd30a55b818914512cc143e6beae0bb3ba78b2649f4b079752eb0e424"}, + {file = "sentry_sdk-1.2.0-py2.py3-none-any.whl", hash = "sha256:593f6118cc6d3eba4786c3f802567c937bdb81b3c8e90436e8a29e84071c6936"}, ] simplejson = [ {file = "simplejson-3.17.2-cp27-cp27m-macosx_10_13_x86_64.whl", hash = "sha256:2d3eab2c3fe52007d703a26f71cf649a8c771fcdd949a3ae73041ba6797cfcf8"}, diff --git a/tasks.py b/tasks.py index 5eec30f7..bd3271a2 100644 --- a/tasks.py +++ b/tasks.py @@ -7,8 +7,8 @@ @task def release(ctx): collect_static(ctx) - migrate(ctx) - load_fixtures(ctx) + #migrate(ctx) + #load_fixtures(ctx) @task(help={"port": "Port to use when serving traffic. Defaults to $PORT."}) From c2f0637dd00dae285e4c3a8152cb3cabe3c3f9b7 Mon Sep 17 00:00:00 2001 From: Gregorio Florentino Date: Wed, 7 Jul 2021 17:49:51 -0400 Subject: [PATCH 4/5] WIP --- README.md | 2 +- coderdojochi/admin.py | 6 +-- coderdojochi/forms.py | 55 +++++++++++++------------- coderdojochi/models/course.py | 29 ++++++++------ coderdojochi/models/guardian.py | 3 +- coderdojochi/models/location.py | 26 ++++++++----- coderdojochi/models/mentor.py | 47 +++++++++++----------- coderdojochi/models/mentor_order.py | 50 ++++++++++++++++-------- coderdojochi/models/order.py | 41 ++++++++++++++------ coderdojochi/models/session.py | 60 +++++++++++++++++++---------- coderdojochi/models/student.py | 3 ++ coderdojochi/models/user.py | 2 +- coderdojochi/settings.py | 2 +- 13 files changed, 201 insertions(+), 125 deletions(-) diff --git a/README.md b/README.md index 4e70d977..6d1e434a 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ docker-compose run --rm app python manage.py migrate ```console docker kill $(docker ps -q); docker-compose rm -f; docker volume rm $(docker volume ls -qf dangling=true); ``` - +n - Rebuild docker containers after major changes: ```console diff --git a/coderdojochi/admin.py b/coderdojochi/admin.py index bf6a60d9..4b5f6e69 100644 --- a/coderdojochi/admin.py +++ b/coderdojochi/admin.py @@ -115,14 +115,14 @@ class MentorAdmin(ImportExportMixin, ImportExportActionModelAdmin): "is_active", "is_public", "background_check", - "avatar_approved", + # "avatar_approved", ] list_filter = [ "is_active", "is_public", "background_check", - "avatar_approved", + # "avatar_approved", ] list_select_related = [ @@ -714,7 +714,7 @@ class OrderAdmin(ImportExportMixin, ImportExportActionModelAdmin): ] autocomplete_fields = [ - "guardian", + # "guardian", "session", "student", ] diff --git a/coderdojochi/forms.py b/coderdojochi/forms.py index d7c7d83a..3f58b366 100644 --- a/coderdojochi/forms.py +++ b/coderdojochi/forms.py @@ -126,42 +126,43 @@ class MentorForm(CDCModelForm): class Meta: model = Mentor - fields = ("bio", "avatar", "gender", "race_ethnicity", "birthday", "phone", "home_address", "work_place") + #"avatar", + fields = ("bio", "gender", "race_ethnicity", "birthday", "phone", "home_address", "work_place") - def clean_avatar(self): - avatar = self.cleaned_data["avatar"] + # def clean_avatar(self): + # avatar = self.cleaned_data["avatar"] - if avatar is None: - return avatar + # if avatar is None: + # return avatar - try: - w, h = get_image_dimensions(avatar) + # try: + # w, h = get_image_dimensions(avatar) - # validate dimensions - max_width = max_height = 1000 - if w > max_width or h > max_height: - raise forms.ValidationError(f"Please use an image that is {max_width} x {max_height}px or smaller.") + # # validate dimensions + # max_width = max_height = 1000 + # if w > max_width or h > max_height: + # raise forms.ValidationError(f"Please use an image that is {max_width} x {max_height}px or smaller.") - min_width = min_height = 500 - if w < min_width or h < min_height: - raise forms.ValidationError(f"Please use an image that is {min_width} x {min_height}px or larger.") + # min_width = min_height = 500 + # if w < min_width or h < min_height: + # raise forms.ValidationError(f"Please use an image that is {min_width} x {min_height}px or larger.") - # validate content type - main, sub = avatar.content_type.split("/") - if not (main == "image" and sub in ["jpeg", "pjpeg", "gif", "png"]): - raise forms.ValidationError("Please use a JPEG, GIF or PNG image.") + # # validate content type + # main, sub = avatar.content_type.split("/") + # if not (main == "image" and sub in ["jpeg", "pjpeg", "gif", "png"]): + # raise forms.ValidationError("Please use a JPEG, GIF or PNG image.") - # validate file size - if len(avatar) > (2000 * 1024): - raise forms.ValidationError("Avatar file size may not exceed 2MB.") + # # validate file size + # if len(avatar) > (2000 * 1024): + # raise forms.ValidationError("Avatar file size may not exceed 2MB.") - except AttributeError: - """ - Handles case when we are updating the user profile - and do not supply a new avatar - """ + # except AttributeError: + # """ + # Handles case when we are updating the user profile + # and do not supply a new avatar + # """ - return avatar + # return avatar class GuardianForm(CDCModelForm): diff --git a/coderdojochi/models/course.py b/coderdojochi/models/course.py index 0f5c4d07..86217093 100644 --- a/coderdojochi/models/course.py +++ b/coderdojochi/models/course.py @@ -1,13 +1,12 @@ from datetime import timedelta from django.core.validators import MaxValueValidator, MinValueValidator -from django.db import models +#from django.db import models import salesforce from .common import CommonInfo - class Course(salesforce.models.SalesforceModel): # class Course(CommonInfo): @@ -69,13 +68,14 @@ class Course(salesforce.models.SalesforceModel): max_length=2, choices=COURSE_TYPE_CHOICES, default=WEEKEND, + db_column="Course_Type__c", ) - slug = models.SlugField( - max_length=40, - blank=True, - null=True, - ) + # slug = models.SlugField( + # max_length=40, + # blank=True, + # null=True, + # ) description = salesforce.models.TextField( db_column="hed__Extended_Description__c", @@ -92,36 +92,38 @@ class Course(salesforce.models.SalesforceModel): # TODO: update db_column duration = salesforce.models.TimeField( default=timedelta(hours=3), - db_column = "hed__Credit_Hours__c", - help_text="HH:MM:ss", + help_text="HH:MM:ss", + db_column="Duration__c", ) # TODO: update db_column minimum_age = salesforce.models.IntegerField( default=7, validators=[MinValueValidator(0), MaxValueValidator(100)], + db_column="Minimum_Age__c" ) # TODO: update db_column maximum_age = salesforce.models.IntegerField( default=18, validators=[MinValueValidator(0), MaxValueValidator(100)], + db_column="Maximum_Age__c" ) # TODO: update db_column is_active = salesforce.models.BooleanField( - default=True, + db_column="Active__c", ) # Auto create/update # TODO: update db_column created_at = salesforce.models.DateTimeField( - # db_column='CreatedDate', + db_column='CreatedDate', auto_now_add=True, ) # TODO: update db_column updated_at = salesforce.models.DateTimeField( - # db_column='LastModifiedDate', + db_column='LastModifiedDate', auto_now=True, ) @@ -130,3 +132,6 @@ def __str__(self): return f"{self.code} | {self.title}" return f"{self.title}" + + class Meta: + db_table = "hed__Course__c" \ No newline at end of file diff --git a/coderdojochi/models/guardian.py b/coderdojochi/models/guardian.py index 7a0f2759..8e036dda 100644 --- a/coderdojochi/models/guardian.py +++ b/coderdojochi/models/guardian.py @@ -44,7 +44,8 @@ class Guardian(salesforce.models.SalesforceModel): def __str__(self): return self.full_name - + class Meta: + db_table = "Contact" @property def first_name(self): return self.user.first_name diff --git a/coderdojochi/models/location.py b/coderdojochi/models/location.py index 1a7f9ad5..2d6ddb3d 100644 --- a/coderdojochi/models/location.py +++ b/coderdojochi/models/location.py @@ -1,44 +1,50 @@ from django.db import models from .common import CommonInfo +import salesforce - -class Location(CommonInfo): - - name = models.CharField( +class Location(salesforce.models.SalesforceModel): + #class Location(CommonInfo): + name = salesforce.models.CharField( max_length=255, + db_column="Address_Name__c", ) - address = models.CharField( + address = salesforce.models.CharField( blank=True, null=True, max_length=255, + db_column="hed__MailingStreet__c" ) city = models.CharField( blank=True, null=True, max_length=255, + db_column="hed__Mailing_City", ) - state = models.CharField( + state = salesforce.models.CharField( blank=True, null=True, max_length=2, + db_column="hed__MailingState__c" ) - zip = models.CharField( + zip = salesforce.models.CharField( blank=True, null=True, max_length=20, + db_column="hed__MailingPostalCode__c" ) - is_active = models.BooleanField( - default=True, + is_active = salesforce.models.BooleanField( + db_column="Active__c", ) class Meta: - ordering = ["-id"] + # ordering = ["-id"] + db_table="hed__Address_c" def __str__(self): return self.name diff --git a/coderdojochi/models/mentor.py b/coderdojochi/models/mentor.py index 1dc92146..9a3ae779 100644 --- a/coderdojochi/models/mentor.py +++ b/coderdojochi/models/mentor.py @@ -1,6 +1,6 @@ import os -from django.db import models +#from django.db import models from django.urls import reverse from stdimage.models import StdImageField @@ -23,7 +23,7 @@ class Mentor(salesforce.models.SalesforceModel): # Mentor(CommonInfo) user = salesforce.models.ForeignKey( CDCUser, - on_delete=models.PROTECT, + on_delete=salesforce.models.PROTECT, ) bio = salesforce.models.TextField( blank=True, @@ -35,26 +35,26 @@ class Mentor(salesforce.models.SalesforceModel): db_column="Active__c", default=True, ) - background_check = models.BooleanField( + background_check = salesforce.models.BooleanField( default=False, ) - is_public = models.BooleanField( - default=False, - ) - avatar = StdImageField( - upload_to=generate_filename, - blank=True, - variations={ - "thumbnail": { - "width": 500, - "height": 500, - "crop": True, - }, - }, - ) - avatar_approved = models.BooleanField( + is_public = salesforce.models.BooleanField( default=False, ) + # avatar = StdImageField( + # upload_to=generate_filename, + # blank=True, + # variations={ + # "thumbnail": { + # "width": 500, + # "height": 500, + # "crop": True, + # }, + # }, + # ) + # avatar_approved = models.BooleanField( + # default=False, + # ) birthday = salesforce.models.DateField( blank=False, null=True, @@ -67,10 +67,10 @@ class Mentor(salesforce.models.SalesforceModel): db_column="Gender__c", ) #Many to Many field in salesforce? - race_ethnicity = models.ManyToManyField( - RaceEthnicity, - blank=False, - ) + # race_ethnicity = models.ManyToManyField( + # RaceEthnicity, + # blank=False, + # ) work_place = salesforce.models.CharField( max_length=255, blank=True, @@ -93,6 +93,9 @@ class Mentor(salesforce.models.SalesforceModel): def __str__(self): return self.full_name + class Meta: + db_table = "Contact" + @property def first_name(self): return self.user.first_name diff --git a/coderdojochi/models/mentor_order.py b/coderdojochi/models/mentor_order.py index 923c4d37..3e44eec3 100644 --- a/coderdojochi/models/mentor_order.py +++ b/coderdojochi/models/mentor_order.py @@ -1,55 +1,75 @@ import os -from django.db import models +#from django.db import models from ..notifications import NewMentorOrderNotification from .common import CommonInfo +import salesforce - -class MentorOrder(CommonInfo): +class MentorOrder(salesforce.models.SalesforceModel): + #class MentorOrder(CommonInfo): from .mentor import Mentor from .session import Session - mentor = models.ForeignKey( + CURRENT = "current" + FORMER = "former" + + STATUS_CHOICES = [ + (CURRENT, "current"), + (FORMER, "former"), + ] + + mentor = salesforce.models.ForeignKey( Mentor, - on_delete=models.CASCADE, + on_delete=salesforce.models.PROTECT, + db_column="hed__Contact__c", ) - session = models.ForeignKey( + session = salesforce.models.ForeignKey( Session, - on_delete=models.CASCADE, + on_delete=salesforce.models.PROTECT, + db_column="hed__Course_Offering__c" ) - is_active = models.BooleanField( - default=True, + is_active = salesforce.models.CharField( + choices=STATUS_CHOICES, + max_length=355, + blank=True, + null=True, + db_column="hed__Status__c", ) - ip = models.CharField( + ip = salesforce.models.CharField( max_length=255, blank=True, null=True, ) - check_in = models.DateTimeField( + check_in = salesforce.models.DateTimeField( blank=True, null=True, + db_column="Check_in__c", ) - affiliate = models.CharField( + affiliate = salesforce.models.CharField( max_length=255, blank=True, null=True, + db_column="Affiliate__c", ) - order_number = models.CharField( + order_number = salesforce.models.CharField( max_length=255, blank=True, null=True, ) - week_reminder_sent = models.BooleanField( + week_reminder_sent = salesforce.models.BooleanField( default=False, ) - day_reminder_sent = models.BooleanField( + day_reminder_sent = salesforce.models.BooleanField( default=False, ) def __str__(self): return f"{self.mentor.full_name} | {self.session.course.title}" + class Meta: + db_table = "hed__Course_Enrollment__c" + def is_checked_in(self): return self.check_in is not None diff --git a/coderdojochi/models/order.py b/coderdojochi/models/order.py index 20ef9dc9..74c79ee0 100644 --- a/coderdojochi/models/order.py +++ b/coderdojochi/models/order.py @@ -9,10 +9,19 @@ class Order(salesforce.models.SalesforceModel): from .session import Session from .student import Student - guardian = salesforce.models.ForeignKey( - Guardian, - on_delete=salesforce.models.PROTECT, - ) + # guardian = salesforce.models.ForeignKey( + # Guardian, + # on_delete=salesforce.models.PROTECT, + + # ) + CURRENT = "current" + FORMER = "former" + + STATUS_CHOICES = [ + (CURRENT, "current"), + (FORMER, "former"), + ] + session = salesforce.models.ForeignKey( Session, db_column="hed__Course_Offering__c", @@ -21,26 +30,31 @@ class Order(salesforce.models.SalesforceModel): student = salesforce.models.ForeignKey( Student, on_delete=salesforce.models.PROTECT, - db_column="Contact" + db_column="hed__Contact__c" ) - is_active = salesforce.models.BooleanField( - default=True, + is_active = salesforce.models.CharField( + choices=STATUS_CHOICES, + max_length=255, + blank=True, + null=True, + db_column="hed__Status__c", ) ip = salesforce.models.CharField( max_length=255, blank=True, null=True, + db_column="IP__c", ) check_in = salesforce.models.DateTimeField( blank=True, null=True, db_column="Check_in__c", ) - alternate_guardian = salesforce.models.CharField( - max_length=255, - blank=True, - null=True, - ) + # alternate_guardian = salesforce.models.CharField( + # max_length=255, + # blank=True, + # null=True, + # ) affiliate = salesforce.models.CharField( max_length=255, blank=True, @@ -61,6 +75,9 @@ class Order(salesforce.models.SalesforceModel): def __str__(self): return f"{self.student.full_name} | {self.session.course.title}" + class Meta: + db_table = "hed__Course_Enrollment__c" + def is_checked_in(self): return self.check_in is not None diff --git a/coderdojochi/models/session.py b/coderdojochi/models/session.py index 73b68f65..b6cf2c06 100644 --- a/coderdojochi/models/session.py +++ b/coderdojochi/models/session.py @@ -29,12 +29,13 @@ class Session(salesforce.models.SalesforceModel): limit_choices_to={"is_active": True}, ) - start_date = salesforce.models.DateTimeField( + start_date = salesforce.models.DateField( db_column="hed__Start_Date__c" ) location = salesforce.models.ForeignKey( Location, + db_column = "hed__Facility__c", on_delete=salesforce.models.PROTECT, limit_choices_to={"is_active": True}, ) @@ -43,6 +44,7 @@ class Session(salesforce.models.SalesforceModel): default=20, ) mentor_capacity = salesforce.models.IntegerField( + db_column = "Mentor_Capacity__c", default=10, ) instructor = salesforce.models.ForeignKey( @@ -74,6 +76,7 @@ class Session(salesforce.models.SalesforceModel): }, on_delete = salesforce.models.PROTECT, help_text="A mentor with 'Assistant' role, is active (user and mentor), background check passed, and avatar approved.", + db_column="Assistant_Mentor__c", ) # Pricing @@ -82,22 +85,25 @@ class Session(salesforce.models.SalesforceModel): decimal_places=2, blank=True, null=True, + db_column="Cost__c", ) minimum_cost = salesforce.models.DecimalField( max_digits=6, decimal_places=2, blank=True, null=True, + db_column="Minimum_Cost__c" ) maximum_cost = salesforce.models.DecimalField( max_digits=6, decimal_places=2, blank=True, null=True, + db_column="Maximum_Cost__c" ) # Extra - additional_info = salesforce.models.TextField(blank=True, null=True, help_text="Basic HTML allowed") + additional_info = salesforce.models.TextField(blank=True, null=True, help_text="Basic HTML allowed",db_column="Additional_Information__c",) # waitlist_mentors = salesforce.models.ManyToManyField( # Mentor, # blank=True, @@ -113,45 +119,51 @@ class Session(salesforce.models.SalesforceModel): blank=True, null=True, help_text="When provided, local enrollment is disabled.", + db_column="External_Enrollment_URL__c", ) is_active = salesforce.models.BooleanField( - default=False, help_text="Session is active.", + db_column="Active__c", ) is_public = salesforce.models.BooleanField( - default=False, help_text="Session is a public session.", + db_column="Public__c" ) password = salesforce.models.CharField( blank=True, max_length=255, + db_column="Password__c", ) partner_message = salesforce.models.TextField( blank=True, + db_column="Partner_Message__c" ) announced_date_mentors = salesforce.models.DateTimeField( blank=True, null=True, + db_column="Announce_Date_Mentors__c", ) announced_date_guardians =salesforce.models.DateTimeField( blank=True, null=True, + db_column="Announced_Date_Guardians__c", ) image_url = salesforce.models.CharField( max_length=255, blank=True, null=True, + db_column="Image_URL__c", ) # bg_image = salesforce.models.ImageField( # blank=True, # null=True, # ) mentors_week_reminder_sent =salesforce.models.BooleanField( - default=False, + db_column="Mentor_Week_Reminder_Sent__c", ) mentors_day_reminder_sent = salesforce.models.BooleanField( - default=False, + db_column="Mentor_Day_Reminder_Sent__c", ) gender_limitation = salesforce.models.CharField( help_text="Limits the class to be only one gender.", @@ -159,26 +171,28 @@ class Session(salesforce.models.SalesforceModel): choices=GENDER_LIMITATION_CHOICES, blank=True, null=True, + db_column="Gender_Limitation__c", ) - override_minimum_age_limitation = salesforce.models.IntegerField( - "Min Age", - help_text="Only update this if different from the default.", - blank=True, - null=True, - validators=[MinValueValidator(0), MaxValueValidator(100)], - ) - override_maximum_age_limitation = salesforce.models.IntegerField( - "Max Age", - help_text="Only update this if different from the default.", - blank=True, - null=True, - validators=[MinValueValidator(0), MaxValueValidator(100)], - ) + # override_minimum_age_limitation = salesforce.models.IntegerField( + # "Min Age", + # help_text="Only update this if different from the default.", + # blank=True, + # null=True, + # validators=[MinValueValidator(0), MaxValueValidator(100)], + # ) + # override_maximum_age_limitation = salesforce.models.IntegerField( + # "Max Age", + # help_text="Only update this if different from the default.", + # blank=True, + # null=True, + # validators=[MinValueValidator(0), MaxValueValidator(100)], + # ) online_video_link = salesforce.models.URLField( "Online Video Link", help_text="Zoom link with password.", blank=True, null=True, + db_column="Online_Video_Link__c" ) online_video_meeting_id = salesforce.models.CharField( "Online Video Meeting ID", @@ -186,6 +200,7 @@ class Session(salesforce.models.SalesforceModel): max_length=255, blank=True, null=True, + db_column="Online_Video_Meeting_Id__c", ) online_video_meeting_password = salesforce.models.CharField( "Online Video Meeting Password", @@ -193,27 +208,32 @@ class Session(salesforce.models.SalesforceModel): max_length=255, blank=True, null=True, + db_column="Online_Video_Meeting_Password__c" ) online_video_description = salesforce.models.TextField( "Online Video Description", help_text="Information on how to connect to the video call. Basic HTML allowed.", blank=True, null=True, + db_column="Online_Video_Description__c" ) # kept for older records old_end_date = salesforce.models.DateTimeField( blank=True, null=True, + db_column="Old_End_Date__c", ) old_mentor_start_date = salesforce.models.DateTimeField( blank=True, null=True, + db_column="Old_Mentor_Start__c", ) old_mentor_end_date = salesforce.models.DateTimeField( blank=True, null=True, + db_column="Old_Mentor_End_Date__c" ) class Meta: diff --git a/coderdojochi/models/student.py b/coderdojochi/models/student.py index cc25522c..2e7d0337 100644 --- a/coderdojochi/models/student.py +++ b/coderdojochi/models/student.py @@ -76,6 +76,9 @@ class Student(salesforce.models.SalesforceModel): def __str__(self): return f"{self.first_name} {self.last_name}" + class Meta: + db_table = "Contact" + @property def full_name(self): return f"{self.first_name} {self.last_name}" diff --git a/coderdojochi/models/user.py b/coderdojochi/models/user.py index 5ffdac92..df016632 100644 --- a/coderdojochi/models/user.py +++ b/coderdojochi/models/user.py @@ -3,7 +3,7 @@ from django.urls import reverse from django.utils import timezone from django.utils.functional import cached_property - +import salesforce class CDCUser(AbstractUser): diff --git a/coderdojochi/settings.py b/coderdojochi/settings.py index 309bf406..474d4048 100644 --- a/coderdojochi/settings.py +++ b/coderdojochi/settings.py @@ -107,7 +107,7 @@ # apps "accounts", "coderdojochi", - "weallcode", + "weallcode", ] MIDDLEWARE = [ From 018cb617f32957d0dc88985ceead8cc74318fe34 Mon Sep 17 00:00:00 2001 From: Ali Karbassi Date: Tue, 20 Jul 2021 17:01:42 -0500 Subject: [PATCH 5/5] Cypress tests (#893) Tests for: - Parent Creation - Volunteer Creation - Parent signing up for classes - Volunteer signing up for classes - All site navigation links Co-authored-by: Gregorio Florentino --- coderdojochi/settings.py | 2 + fixtures/04-coderdojochi.cdcuser.json | 6 +- test/.gitignore | 134 + test/cypress.json | 11 + test/cypress/fixtures/example.json | 5 + .../we-all-code/class-signup.spec.js | 92 + .../we-all-code/create-account.spec.js | 113 + .../integration/we-all-code/login.spec.js | 51 + .../integration/we-all-code/nav_test.spec.js | 43 + test/cypress/plugins/index.js | 22 + test/cypress/support/commands.js | 25 + test/cypress/support/index.js | 20 + test/package-lock.json | 3231 +++++++++++++++++ test/package.json | 17 + test/yarn.lock | 1148 ++++++ 15 files changed, 4917 insertions(+), 3 deletions(-) create mode 100644 test/.gitignore create mode 100644 test/cypress.json create mode 100644 test/cypress/fixtures/example.json create mode 100644 test/cypress/integration/we-all-code/class-signup.spec.js create mode 100644 test/cypress/integration/we-all-code/create-account.spec.js create mode 100644 test/cypress/integration/we-all-code/login.spec.js create mode 100644 test/cypress/integration/we-all-code/nav_test.spec.js create mode 100644 test/cypress/plugins/index.js create mode 100644 test/cypress/support/commands.js create mode 100644 test/cypress/support/index.js create mode 100644 test/package-lock.json create mode 100644 test/package.json create mode 100644 test/yarn.lock diff --git a/coderdojochi/settings.py b/coderdojochi/settings.py index 474d4048..50216c71 100644 --- a/coderdojochi/settings.py +++ b/coderdojochi/settings.py @@ -398,6 +398,8 @@ def custom_show_toolbar(request): "SHOW_TOOLBAR_CALLBACK": custom_show_toolbar, "TAG": "div", "ENABLE_STACKTRACES": True, + "RENDER_PANELS": False, + "SHOW_COLLAPSED": True, } diff --git a/fixtures/04-coderdojochi.cdcuser.json b/fixtures/04-coderdojochi.cdcuser.json index 45077644..010f81b5 100644 --- a/fixtures/04-coderdojochi.cdcuser.json +++ b/fixtures/04-coderdojochi.cdcuser.json @@ -9,7 +9,7 @@ "username": "test_admin", "first_name": "Ali", "last_name": "Karbassi", - "email": "admin@sink.sendgrid.net", + "email": "gregoriofs+admin@uchicago.edu", "is_staff": true, "is_active": true, "date_joined": "2013-01-01T06:00:00Z", @@ -31,7 +31,7 @@ "username": "test_guardian", "first_name": "John", "last_name": "Doe", - "email": "guardian@sink.sendgrid.net", + "email": "gregoriofs+guardian@uchicago.edu", "is_staff": false, "is_active": true, "date_joined": "2013-01-01T06:00:00Z", @@ -51,7 +51,7 @@ "username": "test_mentor", "first_name": "Daniel", "last_name": "Conrad", - "email": "mentor@sink.sendgrid.net", + "email": "gregoriofs+mentor@uchicago.edu", "is_staff": false, "is_active": true, "date_joined": "2013-01-01T06:00:00Z", diff --git a/test/.gitignore b/test/.gitignore new file mode 100644 index 00000000..53ef81c0 --- /dev/null +++ b/test/.gitignore @@ -0,0 +1,134 @@ + +# Created by https://www.toptal.com/developers/gitignore/api/node,cypressio +# Edit at https://www.toptal.com/developers/gitignore?templates=node,cypressio + +### CypressIO ### +# gitignore template for the CypressIO, browser test framework +# website: https://www.cypress.io/ + +cypress/results/* +cypress/reports/* +cypress/screenshots/* +cypress/videos/* + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test +.env.production + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# End of https://www.toptal.com/developers/gitignore/api/node,cypressio diff --git a/test/cypress.json b/test/cypress.json new file mode 100644 index 00000000..ec42725b --- /dev/null +++ b/test/cypress.json @@ -0,0 +1,11 @@ +{ + "baseUrl": "http://localhost:8000/", + "experimentalStudio": true, + "defaultCommandTimeout": 1000, + "fixturesFolder": "./cypress/fixtures", + "integrationFolder": "./cypress/integration", + "pluginsFile": "./cypress/plugins/index.js", + "screenshotsFolder": "./cypress/screenshots", + "videosFolder": "./cypress/videos", + "supportFile": "./cypress/support/index.js" +} diff --git a/test/cypress/fixtures/example.json b/test/cypress/fixtures/example.json new file mode 100644 index 00000000..02e42543 --- /dev/null +++ b/test/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/test/cypress/integration/we-all-code/class-signup.spec.js b/test/cypress/integration/we-all-code/class-signup.spec.js new file mode 100644 index 00000000..c5881d58 --- /dev/null +++ b/test/cypress/integration/we-all-code/class-signup.spec.js @@ -0,0 +1,92 @@ +// const { isSymbol } = require("cypress/types/lodash") + +describe("Signup for Classes", () => { + it("Mentor Signup", () => { + + cy.visit("/account/login") + cy.get("#id_login").type("gregoriofs+mentor@uchicago.edu") + cy.get("#id_password").type("mentor") + cy.contains("Log in").click() + cy.get(".margin-vertical-3 > .grid-container > .margin-top-3 > h2:first").should('have.text',"Your Profile") + cy.contains("Programs").click() + cy.get(':nth-child(3) > .medium-4 > .button').click(); + cy.get('p > .button').click(); + cy.get("body").then(($body) => { + if($body.text().includes("Sign up to mentor for the")) { + cy.contains("Yes, I'm excited").click() + } + else { + cy.contains("Nevermind").click() + } + }) + + }) + + it("Parent Signup", () => { + cy.visit("/account/login") + cy.get("#id_login").type("gregoriofs+guardian@uchicago.edu") + cy.get("#id_password").type("guardian") + cy.contains("Log in").click() + cy.get(".margin-vertical-3 > .grid-container > .margin-top-3 > h2").eq(1).should("have.text","Students") + cy.contains("Programs").click() + cy.get(':nth-child(2) > .medium-4 > .button').click(); + cy.get(':nth-child(3) > .text-right > .button').click(); + cy.get("body").then(($body) => { + if($body.text().includes("Enroll Kelly Doe for the")) { + cy.get(".margin-vertical-3 > .grid-container > .container > .title").should("have.text",'Enroll Kelly Doe for the "Choose Your Own Adventure" class on Jan. 1, 2022 from 10 a.m. to 1 p.m..') + } + else { + cy.get(".margin-vertical-3 > .grid-container > .container > .title").should("have.text",'Kelly Doe can no longer make it to the "Choose Your Own Adventure" class on Jan. 1, 2022 from 10 a.m. to 1 p.m..') + } + }) + cy.get('button.button').click(); + cy.get(".padding-vertical-1 > .callout > strong").should("have.text","Well done!") + }) + + it("Nevermind Button Test", () => { + cy.visit("/account/login") + cy.get("#id_login").type("gregoriofs+guardian@uchicago.edu") + cy.get("#id_password").type("guardian") + cy.contains("Log in").click() + cy.get(".margin-vertical-3 > .grid-container > .margin-top-3 > h2").eq(1).should("have.text","Students") + cy.contains("Programs").click() + cy.get(':nth-child(2) > .medium-4 > .button').click(); + cy.get(':nth-child(3) > .text-right > .button').click(); + cy.contains("Nevermind").click(); + cy.get(".padding-vertical-1 > .callout > strong").should("not.exist"); + }) + + it("Unregisters Student", () => { + cy.visit("/account/login") + cy.get("#id_login").type("gregoriofs+guardian@uchicago.edu") + cy.get("#id_password").type("guardian") + cy.contains("Log in").click() + cy.get(".margin-vertical-3 > .grid-container > .margin-top-3 > h2").eq(1).should("have.text","Students") + cy.get(':nth-child(1) > :nth-child(4) > .button').click(); + cy.get('.form > .tertiary').click(); + + }) + + it("Unregister Mentor", () => { + cy.visit("/account/login") + cy.get("#id_login").type("gregoriofs+mentor@uchicago.edu") + cy.get("#id_password").type("mentor") + cy.contains("Log in").click() + cy.get(".margin-vertical-3 > .grid-container > .margin-top-3 > h2:first").should('have.text',"Your Profile") + cy.get('tr > :nth-child(3) > .button').click(); + cy.get('.form > .tertiary').click(); + cy.contains("Can't make it").should("not.exist") + }) + + it("Edit student info", () => { + cy.visit("/account/login") + cy.get("#id_login").type("gregoriofs+guardian@uchicago.edu") + cy.get("#id_password").type("guardian") + cy.contains("Log in").click() + cy.get(".margin-vertical-3 > .grid-container > .margin-top-3 > .students > tbody > tr:first").contains('Edit Info').click() + cy.get("#id_medical_conditions").type("None") + cy.contains("Update").click() + cy.get(".padding-vertical-1 > .callout > strong").should("have.text","Well done!") + + }) +}) diff --git a/test/cypress/integration/we-all-code/create-account.spec.js b/test/cypress/integration/we-all-code/create-account.spec.js new file mode 100644 index 00000000..d969c299 --- /dev/null +++ b/test/cypress/integration/we-all-code/create-account.spec.js @@ -0,0 +1,113 @@ +/// + +const faker = require("faker"); + +describe("Signup User", () => { + beforeEach(() => { + const first_name = faker.name.firstName(); + const last_name = faker.name.lastName(); + const email = faker.internet.exampleEmail(first_name,last_name); + const password = faker.internet.password(); + + cy.visit("/account/signup/"); + cy.get("#id_email").type(email); + cy.get("#id_first_name").type(first_name); + cy.get("#id_last_name").type(last_name); + cy.get("#id_password1").type(password); + cy.get("#id_password2").type(password); + cy.get("main form").submit(); + }); + + it("signup invalid user with error", () => { + cy.get("#main .title").contains("Thanks for registering"); + }); + + it("Parent Signup", function () { + + const student_first_name = faker.name.firstName(); + const student_last_name = faker.name.lastName(); + const phone = faker.phone.phoneNumber(); + const birthday = isParent => { + const max = isParent ? 2000 : 2005 + const min = isParent ? 1950 : 2013 + const year = Math.floor(Math.random() * (max - min + 1)) + min + const month = Math.floor((Math.random() * 12)) + 1 + const formattedMonth = month < 10 ? `0${month}` : `${month}` + const day = Math.floor((Math.random() * 27)) + 1 + const formattedDay = day < 10 ? `0${day}` : `${day}` + return `${year}-${formattedMonth}-${formattedDay}` + }; + const gender = faker.name.gender(); + const zip = faker.address.zipCode(); + const ethnicity = Math.floor(Math.random() * 5) + 1; + + cy.get(".medium-offset-2 > p > .button").click(); + + cy.get("#id_phone").type(phone); + + cy.get("#id_zip").type(zip); + + cy.get("#id_gender").type("Male"); + cy.get("#id_race_ethnicity").select([`${ethnicity}`]); + cy.get("#id_birthday").type(birthday(true)) + cy.contains("Continue").click(); + + cy.get("#id_first_name").type(student_first_name); + + cy.get("#id_last_name").type(student_last_name); + + cy.get("#id_birthday").type(birthday(false)); + cy.get(":nth-child(5) > .control-label").click(); + + cy.get("#id_gender").type(gender); + cy.get(`#id_race_ethnicity > :nth-child(${ethnicity}) > label`).click(); + + cy.get("#id_school_name").type("Example School"); + cy.get("#id_school_type > :nth-child(1) > label").click(); + cy.get("#id_school_type_0").check(); + cy.get("#id_medical_conditions").type('None'); + cy.get("#id_medications").type('None') + cy.get("#id_photo_release").check(); + cy.get(":nth-child(11) > .checkbox > label").click(); + cy.get("#id_consent").check(); + cy.get(".submit").click(); + /* ==== End Cypress Studio ==== */ + }); + + it("Volunteer Signup", () => { + const volunteer_birthday = () => { + const max = 2000 + const min = 1980 + const year = Math.floor(Math.random() * (max - min + 1)) + min + const month = Math.floor((Math.random() * 12)) + 1 + const formattedMonth = month < 10 ? `0${month}` : `${month}` + const day = Math.floor((Math.random() * 27)) + 1 + const formattedDay = day < 10 ? `0${day}` : `${day}` + return `${year}-${formattedMonth}-${formattedDay}` + }; + const gender = faker.name.gender(); + const workplace = faker.company.companyName(); + const phone = faker.phone.phoneNumber(); + const address = faker.address.streetAddress(true); + const ethnicity = Math.floor(Math.random() * 5) + 1; + + cy.contains("Volunteer").click() + + /* ==== Generated with Cypress Studio ==== */ + cy.get('#id_bio').type("Lorem ipsum"); + + cy.get('#id_birthday').type(volunteer_birthday()); + + cy.get('#id_gender').type(gender); + + cy.get('#id_work_place').type(workplace); + + cy.get('#id_phone').type(phone); + + cy.get('#id_home_address').type(address); + + cy.get('#id_race_ethnicity').select([`${ethnicity}`]); + cy.get('.submit').click(); + /* ==== End Cypress Studio ==== */ + }) +}); diff --git a/test/cypress/integration/we-all-code/login.spec.js b/test/cypress/integration/we-all-code/login.spec.js new file mode 100644 index 00000000..0af7248f --- /dev/null +++ b/test/cypress/integration/we-all-code/login.spec.js @@ -0,0 +1,51 @@ +/// + +describe("Login User", () => { + it("login invalid user with error", () => { + cy.visit("/account/login/"); + cy.get("#id_login").type("invalid@user.com"); + cy.get("#id_password").type("invalid"); + cy.get("#login-form").submit(); + cy.get(".errorlist").should("exist"); + }); + + it("login valid guardian user", () => { + cy.visit("/account/login/"); + cy.get("#id_login").type("gregoriofs+guardian@uchicago.edu"); + cy.get("#id_password").type("guardian"); + cy.get("#login-form").submit(); + + cy.location().should((loc) => { + expect(loc.pathname).to.eq("/account/"); + }); + }); + + it("login valid volunteer user", () => { + cy.visit("/account/login/"); + cy.get("#id_login").type("gregoriofs+mentor@uchicago.edu"); + cy.get("#id_password").type("mentor"); + cy.get("#login-form").submit(); + cy.location().should((loc) => { + expect(loc.pathname).to.eq("/account/"); + }); + }); + + it("login valid admin user", () => { + cy.visit("/account/login/"); + cy.get("#id_login").type("gregoriofs+admin@uchicago.edu"); + cy.get("#id_password").type("admin"); + cy.get("#login-form").submit(); + cy.location().should((loc) => { + expect(loc.pathname).to.eq("/account/"); + }); + }); +}); + +describe("Logout User", () => { + it("logout user", () => { + cy.visit("/account/logout/"); + cy.location().should((loc) => { + expect(loc.pathname).to.eq("/"); + }); + }); +}); diff --git a/test/cypress/integration/we-all-code/nav_test.spec.js b/test/cypress/integration/we-all-code/nav_test.spec.js new file mode 100644 index 00000000..1f3e52c8 --- /dev/null +++ b/test/cypress/integration/we-all-code/nav_test.spec.js @@ -0,0 +1,43 @@ +describe("Test navigation links", () => { + it("Tests every page on nav bar", () => { + cy.visit("/"); + const pages = ["Our Story", "Programs", "Team", "Join Us", "Log In"]; + pages.forEach((currentPage) => { + const url = + currentPage === "Log In" + ? "/account/login" + : currentPage.replace(/\s+/g, "-").toLowerCase(); + cy.visit(`/${url}/`); + + pages.forEach((page) => { + if (page !== currentPage) { + cy.contains(page).click(); + const url = + page === "Log In" + ? "login" + : page.replace(/\s+/g, "-").toLowerCase(); + cy.url().should("include", url); + cy.go("back"); + } + }); + }); + }); + + it("Tests links in footer", () => { + cy.visit("/"); + const pages = ["Our Story", "Programs", "Team", "Join Us"]; + pages.forEach((page) => { + const url = page.replace(/\s+/g, "-").toLowerCase(); + cy.visit(`/${url}/`); + pages.forEach((currentPage) => { + cy.get("footer > nav > .grid-container > .grid-x") + .children() + .contains(currentPage) + .click(); + const url = currentPage.replace(/\s+/g, "-").toLowerCase(); + cy.url().should("include", url); + cy.go("back"); + }); + }); + }); +}); diff --git a/test/cypress/plugins/index.js b/test/cypress/plugins/index.js new file mode 100644 index 00000000..59b2bab6 --- /dev/null +++ b/test/cypress/plugins/index.js @@ -0,0 +1,22 @@ +/// +// *********************************************************** +// This example plugins/index.js can be used to load plugins +// +// You can change the location of this file or turn off loading +// the plugins file with the 'pluginsFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/plugins-guide +// *********************************************************** + +// This function is called when a project is opened or re-opened (e.g. due to +// the project's config changing) + +/** + * @type {Cypress.PluginConfig} + */ +// eslint-disable-next-line no-unused-vars +module.exports = (on, config) => { + // `on` is used to hook into various events Cypress emits + // `config` is the resolved Cypress config +} diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js new file mode 100644 index 00000000..119ab03f --- /dev/null +++ b/test/cypress/support/commands.js @@ -0,0 +1,25 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) diff --git a/test/cypress/support/index.js b/test/cypress/support/index.js new file mode 100644 index 00000000..d68db96d --- /dev/null +++ b/test/cypress/support/index.js @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/index.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') diff --git a/test/package-lock.json b/test/package-lock.json new file mode 100644 index 00000000..c6b27da1 --- /dev/null +++ b/test/package-lock.json @@ -0,0 +1,3231 @@ +{ + "name": "test", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "cypress": "^7.7.0", + "faker": "^5.5.3" + } + }, + "node_modules/@cypress/request": { + "version": "2.88.5", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.5.tgz", + "integrity": "sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@types/node": { + "version": "14.17.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz", + "integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA==", + "dev": true + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.3.tgz", + "integrity": "sha512-E1dU4fzC9wN2QK2Cr1MLCfyHM8BoNnRFvuf45LYMPNDA+WqbNzC45S4UzPxvp1fFJ1rvSGU0bPvdd35VLmXG8g==", + "dev": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, + "node_modules/@types/yauzl": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cypress": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-7.7.0.tgz", + "integrity": "sha512-uYBYXNoI5ym0UxROwhQXWTi8JbUEjpC6l/bzoGZNxoKGsLrC1SDPgIDJMgLX/MeEdPL0UInXLDUWN/rSyZUCjQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "^2.88.5", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^14.14.31", + "@types/sinonjs__fake-timers": "^6.0.2", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.0", + "commander": "^5.1.0", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "eventemitter2": "^6.4.3", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.5", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "ramda": "~0.27.1", + "request-progress": "^3.0.0", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "url": "^0.11.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dayjs": { + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.6.tgz", + "integrity": "sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eventemitter2": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", + "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==", + "dev": true + }, + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/faker": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", + "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.1.1" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true, + "engines": { + "node": "> 0.8" + } + }, + "node_modules/listr2": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.10.0.tgz", + "integrity": "sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^1.2.2", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rxjs": "^6.6.7", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/mime-db": { + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "dev": true, + "dependencies": { + "mime-db": "1.48.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", + "dev": true + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", + "dev": true + }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", + "dev": true, + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + }, + "dependencies": { + "@cypress/request": { + "version": "2.88.5", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.5.tgz", + "integrity": "sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@types/node": { + "version": "14.17.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz", + "integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA==", + "dev": true + }, + "@types/sinonjs__fake-timers": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.3.tgz", + "integrity": "sha512-E1dU4fzC9wN2QK2Cr1MLCfyHM8BoNnRFvuf45LYMPNDA+WqbNzC45S4UzPxvp1fFJ1rvSGU0bPvdd35VLmXG8g==", + "dev": true + }, + "@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, + "@types/yauzl": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-table3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "dev": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^4.2.0" + } + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "optional": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "cypress": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-7.7.0.tgz", + "integrity": "sha512-uYBYXNoI5ym0UxROwhQXWTi8JbUEjpC6l/bzoGZNxoKGsLrC1SDPgIDJMgLX/MeEdPL0UInXLDUWN/rSyZUCjQ==", + "dev": true, + "requires": { + "@cypress/request": "^2.88.5", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^14.14.31", + "@types/sinonjs__fake-timers": "^6.0.2", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.0", + "commander": "^5.1.0", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "eventemitter2": "^6.4.3", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.5", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "ramda": "~0.27.1", + "request-progress": "^3.0.0", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "url": "^0.11.0", + "yauzl": "^2.10.0" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "dayjs": { + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.6.tgz", + "integrity": "sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw==", + "dev": true + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eventemitter2": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", + "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==", + "dev": true + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "requires": { + "pify": "^2.2.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "faker": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", + "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "requires": { + "async": "^3.2.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true + }, + "listr2": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.10.0.tgz", + "integrity": "sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw==", + "dev": true, + "requires": { + "cli-truncate": "^2.1.0", + "colorette": "^1.2.2", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rxjs": "^6.6.7", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "mime-db": { + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "dev": true, + "requires": { + "mime-db": "1.48.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", + "dev": true + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", + "dev": true + }, + "request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", + "dev": true, + "requires": { + "throttleit": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/test/package.json b/test/package.json new file mode 100644 index 00000000..4269ea18 --- /dev/null +++ b/test/package.json @@ -0,0 +1,17 @@ +{ + "name": "test", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "start": "cypress open", + "test": "cypress run" + }, + "keywords": [], + "author": "Ali Karbassi ", + "license": "MIT", + "devDependencies": { + "cypress": "^7.7.0", + "faker": "^5.5.3" + } +} diff --git a/test/yarn.lock b/test/yarn.lock new file mode 100644 index 00000000..90d333d5 --- /dev/null +++ b/test/yarn.lock @@ -0,0 +1,1148 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@cypress/request@^2.88.5": + version "2.88.5" + resolved "https://registry.npmjs.org/@cypress/request/-/request-2.88.5.tgz" + integrity sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +"@cypress/xvfb@^1.2.4": + version "1.2.4" + resolved "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz" + integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== + dependencies: + debug "^3.1.0" + lodash.once "^4.1.1" + +"@types/node@*", "@types/node@^14.14.31": + version "14.17.5" + resolved "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz" + integrity sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA== + +"@types/sinonjs__fake-timers@^6.0.2": + version "6.0.3" + resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.3.tgz" + integrity sha512-E1dU4fzC9wN2QK2Cr1MLCfyHM8BoNnRFvuf45LYMPNDA+WqbNzC45S4UzPxvp1fFJ1rvSGU0bPvdd35VLmXG8g== + +"@types/sizzle@^2.3.2": + version "2.3.3" + resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz" + integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== + +"@types/yauzl@^2.9.1": + version "2.9.2" + resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz" + integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== + dependencies: + "@types/node" "*" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +arch@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/async/-/async-3.2.0.tgz" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +blob-util@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz" + integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== + +bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +cachedir@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz" + integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +check-more-types@^2.24.0: + version "2.24.0" + resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz" + integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= + +ci-info@^3.1.1: + version "3.2.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz" + integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-table3@~0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz" + integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== + dependencies: + object-assign "^4.1.0" + string-width "^4.2.0" + optionalDependencies: + colors "^1.1.2" + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + +colors@^1.1.2: + version "1.4.0" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cross-spawn@^7.0.0: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cypress@^7.7.0: + version "7.7.0" + resolved "https://registry.npmjs.org/cypress/-/cypress-7.7.0.tgz" + integrity sha512-uYBYXNoI5ym0UxROwhQXWTi8JbUEjpC6l/bzoGZNxoKGsLrC1SDPgIDJMgLX/MeEdPL0UInXLDUWN/rSyZUCjQ== + dependencies: + "@cypress/request" "^2.88.5" + "@cypress/xvfb" "^1.2.4" + "@types/node" "^14.14.31" + "@types/sinonjs__fake-timers" "^6.0.2" + "@types/sizzle" "^2.3.2" + arch "^2.2.0" + blob-util "^2.0.2" + bluebird "^3.7.2" + cachedir "^2.3.0" + chalk "^4.1.0" + check-more-types "^2.24.0" + cli-cursor "^3.1.0" + cli-table3 "~0.6.0" + commander "^5.1.0" + common-tags "^1.8.0" + dayjs "^1.10.4" + debug "^4.3.2" + enquirer "^2.3.6" + eventemitter2 "^6.4.3" + execa "4.1.0" + executable "^4.1.1" + extract-zip "2.0.1" + figures "^3.2.0" + fs-extra "^9.1.0" + getos "^3.2.1" + is-ci "^3.0.0" + is-installed-globally "~0.4.0" + lazy-ass "^1.6.0" + listr2 "^3.8.3" + lodash "^4.17.21" + log-symbols "^4.0.0" + minimist "^1.2.5" + ospath "^1.2.2" + pretty-bytes "^5.6.0" + ramda "~0.27.1" + request-progress "^3.0.0" + supports-color "^8.1.1" + tmp "~0.2.1" + untildify "^4.0.0" + url "^0.11.0" + yauzl "^2.10.0" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +dayjs@^1.10.4: + version "1.10.6" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.6.tgz" + integrity sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw== + +debug@^3.1.0: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.1, debug@^4.3.2: + version "4.3.2" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enquirer@^2.3.6: + version "2.3.6" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eventemitter2@^6.4.3: + version "6.4.4" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz" + integrity sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw== + +execa@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +executable@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz" + integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== + dependencies: + pify "^2.2.0" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extract-zip@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +faker@^5.5.3: + version "5.5.3" + resolved "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz" + integrity sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +figures@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +getos@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz" + integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== + dependencies: + async "^3.2.0" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob@^7.1.3: + version "7.1.7" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.6" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +is-ci@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz" + integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== + dependencies: + ci-info "^3.1.1" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-installed-globally@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +lazy-ass@^1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz" + integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= + +listr2@^3.8.3: + version "3.10.0" + resolved "https://registry.npmjs.org/listr2/-/listr2-3.10.0.tgz" + integrity sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw== + dependencies: + cli-truncate "^2.1.0" + colorette "^1.2.2" + log-update "^4.0.0" + p-map "^4.0.0" + rxjs "^6.6.7" + through "^2.3.8" + wrap-ansi "^7.0.0" + +lodash.once@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +mime-db@1.48.0: + version "1.48.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz" + integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.31" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz" + integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== + dependencies: + mime-db "1.48.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +ms@2.1.2, ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +ospath@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz" + integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pify@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pretty-bytes@^5.6.0: + version "5.6.0" + resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +ramda@~0.27.1: + version "0.27.1" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz" + integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw== + +request-progress@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz" + integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= + dependencies: + throttleit "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rxjs@^6.6.7: + version "6.6.7" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +safe-buffer@^5.0.1, safe-buffer@^5.1.2: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +throttleit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz" + integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= + +through@^2.3.8: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +tmp@~0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0"